Skip to content

Instantly share code, notes, and snippets.

View kaosat-dev's full-sized avatar

Mark Moissette kaosat-dev

View GitHub Profile
@kaosat-dev
kaosat-dev / railway_oriented_programming.js
Created March 9, 2017 12:40 — forked from volodymyrprokopyuk/railway_oriented_programming.js
Railway Oriented Programming (JavaScript)
var _ = require('lodash');
var Success = function(success) { this.success = success; };
var Failure = function(failure) { this.failure = failure; };
var bindAll = function(fs) {
var bind = function(res, f) {
return res instanceof Success ? f(res.success) : res;
};
var bindF = function(f) { return _.partial(bind, _, f); };
@kaosat-dev
kaosat-dev / git-serve.md
Created February 24, 2017 07:13 — forked from datagrok/git-serve.md
How to easily launch a temporary one-off git server from any local repository, to enable a peer-to-peer git workflow.

Launch a one-off git server from any local repository.

I [tweeted this already][1] but I thought it could use some expansion:

Enable decentralized git workflow: git config alias.serve "daemon --verbose --export-all --base-path=.git --reuseaddr --strict-paths .git/"

Say you use a git workflow that involves working with a core "official" repository that you pull and push your changes from and into. I'm sure many companies do this, as do many users of git hosting services like Github.

Say that server, or Github, goes down for a bit.

@kaosat-dev
kaosat-dev / variable-periodic.js
Created February 23, 2017 12:58
Variable periodic (most.js)
settingsState$
.flatMap(function (pollRate) { // refresh data list every x ms
console.log('pollRate changed, do it every',pollRate)
const id = Math.floor(Math.random()*100,1)
return constant(id, periodic(pollRate))
})
.forEach(x=>console.log('combined state stuff',x))
@kaosat-dev
kaosat-dev / index.js
Last active February 23, 2017 11:22
Motorcycle.js test
import { run } from '@motorcycle/run'
import { makeDomDriver, div, button, h2 } from '@motorcycle/dom';
import {merge, of} from 'most'
function variants(){
const inc$ = sources.dom.select('.inc').events('click')
const dec$ = sources.dom.select('.dec').events('click');
@kaosat-dev
kaosat-dev / index.js
Created February 19, 2017 00:11
regl + cyclejs (onionify) test
import { run } from '@cycle/xstream-run';
import { button, div, input,
makeDOMDriver, h } from '@cycle/dom';
import xs from 'xstream';
import isolate from '@cycle/isolate';
import onionify from 'cycle-onionify';
import R from 'ramda';
import {pick, mix} from 'cycle-onionify'
import regl from 'regl'
@kaosat-dev
kaosat-dev / index.js
Last active February 18, 2017 15:27
Cycle.js Onionify issue
import { run } from '@cycle/xstream-run';
import { button, div,
makeDOMDriver } from '@cycle/dom';
import xs from 'xstream';
import isolate from '@cycle/isolate';
import onionify from 'cycle-onionify';
import R from 'ramda';
import {pick, mix} from 'cycle-onionify'
//simple helper for more terse syntax
@kaosat-dev
kaosat-dev / cycle-state-ramda.md
Created February 18, 2017 13:48 — forked from wclr/cycle-state-ramda.md
A way to handle state in cycle.js

A way to handle state in cycle.js

Simple state management with xstream and ramda, in more transparent fashion than onionify

import * as R from 'ramda'

// first we create factory for making special state stream 
// that will hold our stream value and will be modified with supplied streams of reducers
type StateReducer<T> = (state: T) => T

update object

var state = {
    id: 1,
    points: 100,
    name: "Goran"
};

var newState = {
@kaosat-dev
kaosat-dev / .babelrc
Last active January 15, 2017 07:35
Needed changes csg pkg
{
"presets": [
"es2015"
]
}
@kaosat-dev
kaosat-dev / jscad-node-out
Last active January 7, 2017 00:18
jscad-node.js
var jscad = require('openjscad')
var path = require('path')
var fs = require('fs')
const {generateOutput} = jscad
const inputPath = path.resolve(__dirname, './logo.jscad')
const script = fs.readFileSync(inputPath, 'UTF8')
jscad.compile(script, {})
.then(function (input) {