Skip to content

Instantly share code, notes, and snippets.

View davidchase's full-sized avatar
📺
Working from home

David Chase davidchase

📺
Working from home
View GitHub Profile
@davidchase
davidchase / operators.js
Last active February 3, 2016 22:05
Most Operators
// experiment operators for most.js :D
import {from, of} from 'most';
import {complement} from 'ramda';
const siphon = (pred, fn, stream) => from([stream.filter(pred).tap(fn).chain(most.empty), stream.filter(complement(pred))]).join();
const partition = (pred, stream) => from([stream.filter(pred), stream.filter(complement(pred))]);
const partitionList = (pred, stream) => [stream.filter(pred), stream.filter(complement(pred))]; // [Streams]
siphon(x => x % 2 === 0, () => console.log('side-effect'), of(2)); // => side-effect
@davidchase
davidchase / index.js
Created December 7, 2015 02:28
requirebin sketch
var most = require('most');
var multicast = require('most').multicast;
var snabbdom = require('snabbdom');
console.log(multicast);
var patch = snabbdom.init([
require('snabbdom/modules/class'),
require('snabbdom/modules/props'),
require('snabbdom/modules/style'),
@davidchase
davidchase / index.js
Created November 10, 2015 19:06
requirebin sketch
var through = require('through2').obj;
var from = require('from2');
var most = require('most');
var count = 0;
var gen = function gen(size, next) {
if (count++ < 20) {
return next(null, {val: count});
}
};
@davidchase
davidchase / index.js
Created November 6, 2015 21:20
requirebin sketch
var most = require('most');
var s = most.iterate(function(x) {
return x + 1;
}, 0).take(100);
const tails = function(stream) {
const t = stream.multicast();
return t.constant(t).startWith(t);
};
// clear node repl
// \u001B[2J clear terminal
// \u001B[0;0f cursor back to position 0,0.
process.stdout.write('\u001B[2J\u001B[0;0f');
@davidchase
davidchase / index.js
Created July 17, 2015 23:14
requirebin sketch
var R = require('ramda');
var S = require('sanctuary');
var getElement = R.bind(document.querySelector, document);
var getElements = R.bind(document.querySelectorAll, document);
var container = getElement('.container');
var others = getElements('.other');
var log = R.tap(R.bind(console.log, console));
var noise = function(x){
console.log(x.target);
};
@davidchase
davidchase / functional.js
Created April 20, 2015 03:29
partial + partialRight
var partial = function partial(fn){
var args = Array.apply(null, arguments).slice(1);
return function(){
var lastArgs = Array.apply(null, arguments);
return fn.apply(this, args.concat(lastArgs));
};
};
var partialRight = function partialRight(fn){
var args = Array.apply(null, arguments).slice(1);
@davidchase
davidchase / gen.js
Last active August 29, 2015 14:07
Async with generators
// Tackling async events without
// callbacks using es6 generators
// http://kangax.github.io/compat-table/es6/#generators_(yield)
var async = function(parameters, callback) {
setTimeout(function() {
callback(parameters);
}, 1000);
};
var currier = function(fn) {
@davidchase
davidchase / .eslintrc
Created September 15, 2014 18:27
my eslint config
{
"env": {
"browser": true,
"node": true
},
"rules": {
"block-scoped-var": 2,
"complexity": [1, 5],
"consistent-return": 2,
@davidchase
davidchase / nodeEC2.md
Last active August 29, 2015 14:06
Setting Up Node on Amazon EC2

EC2 Amazon

Under EC2 select launch instances

Select the first instance linux box and proceed with the setup

Linux Box