Skip to content

Instantly share code, notes, and snippets.

View muraiki's full-sized avatar

Erik Ferguson muraiki

View GitHub Profile
@muraiki
muraiki / gist:96d746eff5f564c32990
Created March 19, 2015 18:54
updating KO model from json
// map the keys in json to the properties on your model
var desiredKeys = {
"foo": "foo",
"bar": "bar"
};
Object.defineProperty(self, 'updateFromJson', {
enumerable: true,
value: function (data) {
Object.keys(data)
def groupBy[A](xs: List[A]): Map[A, Int] =
xs.foldLeft(Map[A, Int]()) { (m: Map[A, Int], x: A) => m + (x -> (m.get(x).getOrElse(0) + 1)) }
@muraiki
muraiki / fib.pl6
Last active August 29, 2015 14:14
multi+cached+subset
subset NonNegativeInt of Int where * >= 0;
proto fib (|) is cached returns NonNegativeInt {*}
multi fib (0) { 0 }
multi fib (1) { 1 }
multi fib (NonNegativeInt $n) { fib($n - 1) + fib($n - 2) }
say fib(100)
@muraiki
muraiki / core.clj
Created October 8, 2014 22:21
ajax-to-websocket
(ns ajax-to-websocket.core
(:require [org.httpkit.server :as server]
[org.httpkit.client :as client]
[clojure.data.json :as json]
[clojure.data :as data]
[clojure.core.async :refer [chan <! >! go timeout onto-chan]]))
(defn channel-closed
"called when websocket channel is closed"
[status]