Skip to content

Instantly share code, notes, and snippets.

@starstuck
starstuck / compass-retina-sprites.scss
Created August 3, 2012 15:33 — forked from thulstrup/compass-retina-sprites.scss
Using Compass to generate normal and retina sprite maps
/**
* Setup images sprite having high resolution variant for retina displays.
*
* It will create class names for all available icons.
*
* This uses custom function to prefix selectors from array. To get it working you will need to include following snippet in your config.rb
*
* module Sass::Script::Functions
* def prefix_each(array, prefix)
* return Sass::Script::String.new array.to_a.map{|item| prefix.value + item.value}.join(", ")
@starstuck
starstuck / test-rest.js
Last active June 8, 2023 09:09
Exaple of using node.js + mocha + expect.js for testing/validating REST'full services
/*jslint node:true*/
/*global describe, it, before*/
/**
* Example of channel REST service specification
*
* To get it running call in folder where you have put test_channel.js
* npm install -g mocha # if you have not installed mocha in your environment already
* npm install expect.js
* mocha test_channel.js
@starstuck
starstuck / esi-server.js
Last active December 17, 2015 16:19
Simple server expanding esi:include tags from local html files. Very usefull to test your static pages before uploading to Akamai. Written in node.js.
/**
* Simple server expanding esi:include tags from local html files.
* Very usefull to test your static pages before uploading to Akamai.
*
* $ npm install express
*
* Now you are ready to run preview server:
*
* $ node esi-server.js
*
@starstuck
starstuck / jstags.sh
Created July 19, 2013 17:16
Build etags from javascript files including names exposed using global namespace convention and properties assigned to prototype
#!/usr/bin/env sh
SYMBOL="[a-zA-Z_][a-zA-Z0-9_]*"
CAP_SYMBOL="[A-Z][a-zA-Z0-9_]*"
GLOB_SYMBOL="${CAP_SYMBOL}\(\.${SYMBOL}\)*"
if [ -z "$1" ]; then
echo "You need to provide at list one path where to search for js files" 1>&2
exit 1
fi
@starstuck
starstuck / build.js
Created July 25, 2013 07:20
Example of maven project using npm for managing js dependencies, lessc for CSS preprocessing and r.js for js modules assembly.
#!/usr/bin/env node
var exec = require('child_process').exec,
mkdirp = require('mkdirp'),
projectPath = __dirname + '/../..',
targetPath = __dirname + '/../../target/assets';
// Task execution helpers
// ----------------------
@starstuck
starstuck / run-jasmine-in-mocha.js
Last active December 20, 2015 05:19
Running jasmine tests in phantom while sending results back to mocha on node to have nice console reporter
#!/usr/bin/env node
var server = require('./test-server'),
child_process = require('child_process'),
port = server.port;
console.log('');
console.log('------------------------------------------------------------------------');
console.log('Running jasmine tests in phantomjs');
@starstuck
starstuck / emacs.el
Created September 4, 2013 18:02
Add compilation-error-regexp to make Emacs recognize jstestdriver and jslint output
;; Define various js test/linting compilation errrors matchers. You can say,
;; which you want to consider on matching output from compilation, by
;; customizing compilation-error-regexp-alist variable.
;;
;; (setq compilation-error-regexp-alist (list 'jstestdriver 'jslint-file 'jslint-line))
;;
;; If you are using desktop.el, you may want to keep compilation customizations
;; in your project deskto file
;;
;; (add-to-list 'desktop-globals-to-save 'compilation-search-path)
@starstuck
starstuck / text-outline.svg
Created October 9, 2013 08:47
Svg text outline using filters
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
@starstuck
starstuck / wheel-event-polyfill.js
Last active March 11, 2018 14:23
Mouse 'wheel' event polyfill for webkit browsers
/**
* Mouse wheel polyfill inspired by cross-browser example on mdn wiki.
*
* It supports relatively modern browsers, which already support addEventListener and Array forEach methods.
* Effectively it is targeting webkit based browsers. I didn't have opportunity to test it on old Firefox.
* Method addEventListener is supported in IE9, which already supports wheel event. I guess one could combine
* it with polyfill for addEventListener to have support in IE 6-8. In that case one would have to also wrap
* all addEventListener methods provided by the polyfill (last block below).
*
* @see https://developer.mozilla.org/en-US/docs/Web/Reference/Events/wheel?redirectlocale=en-US&redirectslug=DOM%2FMozilla_event_reference%2Fwheel#Listening_to_this_event_across_browser
@starstuck
starstuck / proxy.js
Created November 1, 2013 15:05
Simple forward proxy in node.js, which intercept calls and let you add custom scripts to live sites/web apps. In this example it is adding skewer script, so you can mess around with live pages from emacs.
/**
* To run it you will need to install
*
* $ npm install http-proxy
*/
var http = require('http'),
httpProxy = require('http-proxy'),
port = 3001,
proxiedHost = 'localhost',