Skip to content

Instantly share code, notes, and snippets.

View mikkoh's full-sized avatar

Mikko Haapoja mikkoh

View GitHub Profile
@mikkoh
mikkoh / index.js
Created April 7, 2015 15:11
requirebin sketch
var fill = require('lodash/array/fill');
var arr = fill(new Array(10), function() { return 'test' });
var arr2 = fill(new Array(10), 'test');
document.body.innerHTML = JSON.stringify(arr) + JSON.stringify(arr2);
@mikkoh
mikkoh / index.js
Created March 26, 2015 03:27
functional particles
var rafLoop = require('raf-loop');
var COUNT_PARTICLE = 100;
var MAX_VELOCITY = 5;
var FRICTION_MAGNITUDE = 0.07;
var els = array(COUNT_PARTICLE, createElement);
var positions = create(COUNT_PARTICLE, [window.innerWidth * 0.5, window.innerHeight * 0.5, 0]);
var velocities = create(COUNT_PARTICLE, [rand(-MAX_VELOCITY, MAX_VELOCITY), rand(-MAX_VELOCITY, MAX_VELOCITY), rand(-MAX_VELOCITY, MAX_VELOCITY)]);
@mikkoh
mikkoh / gist:af9c50d654825e07819c
Created December 12, 2014 15:42
JS Private and Public
module.exports = MyClass;
function MyClass() {
var myPrivatVariable = 10;
return {
publicMethod: function() {
plugin( req )
.model( require( '../model' ) )
.dataHBS( require( 'fs' ).readFileSync( './src/hbs/record.hbs', 'utf8' ) )
.then( modelstatic )
.then( handlebars )
.then( domappend )
.then( function( data ) {
var model = data.model;
//originally from https://github.com/mattdiamond/Recorderjs/blob/master/recorder.js
var url = (window.URL || window.webkitURL).createObjectURL(data);
var link = window.document.createElement('a');
link.href = url;
link.download = 'output.wav';
var click = document.createEvent("Event");
click.initEvent("click", true, true);
link.dispatchEvent(click);
@mikkoh
mikkoh / gist:9561426
Created March 15, 2014 03:24
File Browser For Substacks Terminal-Menu
var fs = require( 'fs' );
var path = require( 'path' );
var terminalMenu = require( 'terminal-menu' );
var getUnderline = require( './getUnderline' );
var FileBrowser = function( settings, onFileSelect ) {
this.title = settings.title || 'Browse browse browse';
this.startIdx = 0;
//POSSIBLE CONDITIONAL SYNTAX
node1.matchesWidthOf( layout )
.ifWidthGreaterThan( layout, 600 ).widthIsAPercentageOf( layout, 0.5 )
.ifWidthSmallerThan( layout, 200 ).widthIsAPercentageOf( layout, 0.2 );
//OTHER POSSIBLE CONDITIONAL SYNTAX
node1.matchesWidthOf( layout )
.is( layout ).widthGreaterThan( 600 ).widthIsAPercentageOf( layout, 0.5 )
.is( layout ).widthGreaterThan( 200 ).widthIsAPercentageOf( layout, 0.2 );