Skip to content

Instantly share code, notes, and snippets.

View sifu's full-sized avatar

Siegmund Führinger sifu

View GitHub Profile
@sifu
sifu / utils.js
Created July 17, 2012 09:02
quick & dirty module pattern for modules to be used in the browser environment and node.js
(function(exports){
exports.someExportedFunction = function( ) { };
})(typeof(window)!=='undefined'&&(window.utils={})||exports);
@sifu
sifu / setdefault.js
Created July 18, 2012 16:27
set a default value for a key and push to it in one line
var a = [ 'one', 'two', 'one', 'one' ];
var result = {};
a.forEach( function( key ) {
( result[ key ] || ( result[ key ] = [] ) ).push( key )
} );
console.info( result );
@sifu
sifu / test.js
Created August 30, 2012 14:15
proxy http -> https (cloudant)
#!/usr/bin/env node
var httpProxy = require( 'http-proxy' );
var server = httpProxy.createServer( function( req, res, proxy ) {
proxy.proxyRequest( req, res, {
host: 'sifu.cloudant.com',
port: 443,
https: true
} );
@sifu
sifu / groupby.js
Created October 15, 2012 09:19
a group-by implementation
function groupBy( array, key ) {
var result = {};
var by, property;
var item, i=0;
var isAlreadyFunction = typeof( key ) === 'function';
if( isAlreadyFunction ) {
by = key;
} else {
by = function( item ) {
return item[ key ];
@sifu
sifu / track.js
Created December 22, 2012 11:37
a google app script UiApp, that tracks clicks on a button in a spreadsheet.
function doGet() {
var app = UiApp.createApplication();
var button = app.createButton('Click Me');
app.add(button);
var label = app.createLabel('The button was clicked.')
.setId('statusLabel')
.setVisible(false);
app.add(label);
@sifu
sifu / app.js
Created February 11, 2016 12:30
make angular-new-router (v0.5.3) and gulp-ng-templates work together
function dashCase( str ) {
return str.replace( /([A-Z])/g, function( $1 ) {
return '-' + $1.toLowerCase( );
} );
}
$componentLoaderProvider.setTemplateMapping( function( name ) {
var dashName = dashCase(name);
return 'components/' + dashName + '/' + dashName + '.html';
} );