Skip to content

Instantly share code, notes, and snippets.

View janewang's full-sized avatar

Jane Wang janewang

View GitHub Profile
@janewang
janewang / gist:3410267
Created August 21, 2012 01:20 — forked from alexclare/gist:3410169
Hacky IRCCloud ping script
import json, pycurl, subprocess
class ChatStream(object):
def __init__(self, sessid, handler):
self.handler = handler
self.buffer = ''
self.curl = pycurl.Curl()
self.curl.setopt(pycurl.URL, 'https://irccloud.com/chat/stream')
self.curl.setopt(pycurl.COOKIE, 'session=' + sessid)
self.curl.setopt(pycurl.WRITEFUNCTION, self.chunk)
@janewang
janewang / gist:3310559
Created August 10, 2012 02:49 — forked from nicholasbs/gist:3259846
Implementing the "new" operator in JavaScript
// New is a function that takes a function F
function New (F) {
var o = {}; // and creates a new object o
o.__proto__ = F.prototype // and sets o.__proto__ to be F's prototype
// New returns a function that...
return function () {
F.apply(o, arguments); // runs F with o as "this", passing along any arguments
return o; // and returns o, the new object we created
}
@janewang
janewang / gist:3308203
Created August 9, 2012 21:28 — forked from aphyr/gist:3200829
Node.js message passing test
var cluster = require('cluster');
var m = 10000000;
function bounce(msg, out) {
if (msg < m) {
out.send(msg + 1);
return null;
} else {
console.log("Finished with", msg);
@janewang
janewang / gist:3308201
Created August 9, 2012 21:28 — forked from aphyr/gist:3200862
Clojure message passing test
(ns messagepassing.core)
(import [java.util.concurrent LinkedTransferQueue])
(def m 10000000)
(defn queue-test []
(defn bounce [in out m]
(let [value (.take in)]
(if (< value m)
(do
@janewang
janewang / gist:3259869
Created August 4, 2012 20:55 — forked from arjans/gist:3259868
Recursive and Memoized Y-Combinator Fibonnaci Functions
// timer
// console.time('fib');
// console.timeEnd('fib');
//Recursive fibonnaci
var fib_recur = function (n) {
if (n == 0) return 0;
if (n == 1) return 1;
return fib_recur(n-1) + fib_recur(n-2);
};
@janewang
janewang / gist:3233545
Created August 2, 2012 04:25 — forked from swannodette/gist:3217582
sudoku_compact.clj
(ns sudoku
(:refer-clojure :exclude [==])
(:use clojure.core.logic))
(defn get-square [rows x y]
(for [x (range x (+ x 3))
y (range y (+ y 3))]
(get-in rows [x y])))
(defn init [vars hints]
@janewang
janewang / mini_chat.erl
Created July 23, 2012 21:09 — forked from ingrid/mini_chat.erl
Erlang Chat
-module(mini_chat).
-compile(export_all).
-define(ACTIVE_OPTIONS, [{reuseaddr, true}]).
% Commands start with "/", char 47
is_command(Str) -> hd(Str) =:= 47.
chatroom(Users) ->
process_flag(trap_exit, true),
@janewang
janewang / state-monad.coffee
Created July 8, 2012 04:15 — forked from igstan/state-monad.coffee
State Monad in CoffeeScript
push = (element) -> (stack) ->
newStack = [element].concat stack
{value: element, stack: newStack}
pop = (stack) ->
element = stack[0]
newStack = stack.slice 1
{value: element, stack: newStack}
bind = (stackOperation, continuation) -> (stack) ->