Skip to content

Instantly share code, notes, and snippets.

View nfeldman's full-sized avatar

Noah Feldman nfeldman

View GitHub Profile
@Gozala
Gozala / example.js
Created January 29, 2012 03:46
Workaround for lack of "tail call optimization" in JS
// Lack of tail call optimization in JS
var sum = function(x, y) {
return y > 0 ? sum(x + 1, y - 1) :
y < 0 ? sum(x - 1, y + 1) :
x
}
sum(20, 100000) // => RangeError: Maximum call stack size exceeded
// Using workaround
@tbranyen
tbranyen / use.js
Created January 13, 2012 01:21
A RequireJS compatible plugin to provide shimming capabilities declaratively.
(function() {
var buildMap = {};
/* RequireJS Use Plugin v0.2.0
* Copyright 2012, Tim Branyen (@tbranyen)
* use.js may be freely distributed under the MIT license.
*/
define({
version: "0.2.0",
@voidfiles
voidfiles / actionQueue.js
Created November 27, 2011 19:42
actionQueue
(function(A) {
var registered_ids = {},
id_to_module_map = {},
interim_actions = {},
cleanup_actions = {},
clicked_ids = {},
queueing = {};
function register_id(id, callbacks, required_module) {
id = id.replace('*', '.*');
@voidfiles
voidfiles / flickr_action_queue.js
Created November 25, 2011 22:43
Flickrs actionQueue code isolated
(function(F) {
var registered_ids = {},
id_to_module_map = {},
interim_actions = {},
cleanup_actions = {},
clicked_ids = {},
queueing = true;
function register_id(id, callbacks, required_module) {
id = id.replace('*', '.*');
@Yaffle
Yaffle / gist:1336740
Created November 3, 2011 15:14
javascript Approximate string matching
// http://en.wikipedia.org/wiki/Approximate_string_matching
function fuzzySearch(t, p) { // returns minimum edit distance between substring of t and p
var a = [], // current row
b = [], // previous row
pa = [], // from
pb = [],
s, i, j;
for (i = 0; i <= p.length; i++) {
s = b;
b = a;
@WebReflection
WebReflection / properties.js
Created October 5, 2011 15:46
could be used by an IDE to inspect objects runtime
// could be used to inspect objects runtime
// e.g. with IDE for suggestion
// requires a modern JS engine in the IDE
var properties = function (
getNames, // alias Object.getOwnPropertyNames
getDescriptor,// alias Object.getOwnPropertyDescriptor
has, // alias {}.hasOwnProperty
toString // alias Function.prototype.toString
) {
// (C) WebReflection - Mit Style License
@WebReflection
WebReflection / module.js
Created October 5, 2011 08:30
implicit require
var module = (function create(
namespace, handler, module, Proxy
) {
// ------------------------------------
// (C) WebReflection - MitStyle License
// ------------------------------------
// @dependency npm install node-proxy
// ------------------------------------
// var sys = module.sys;
// sys.print("it works!");
@pithyless
pithyless / gist:1208841
Created September 10, 2011 21:49
Install Python 2.7 (homebrew + pip + virtualenv) on Mac OS X Lion

Install Python

$ brew install readline sqlite gdbm
$ brew install python --universal --framework
$ python --version
Python 2.7

Symlinks...

@jed
jed / README.md
Created September 3, 2011 06:34
testing namespace collisions for 2-byte abbreviated keys for the document object

experimenting with a more general way of hashing a namespace, for future javascript golf. the idea is that existing browser objects can be hashed so that wasteful strings like createDocumentFragment can be avoided entirely, and keys from several objects (such as document, window, String, etc.) can be hashed into one namespace.

for example:

d = document
d.body.appendChild(d.createElement("script")).src="URL"

could be shortened to

@subzey
subzey / LICENSE.txt
Created June 22, 2011 14:43 — forked from 140bytes/LICENSE.txt
parseRoman
DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
Version 2, December 2004
Copyright (C) 2011 subzey <subzey@immelman.ru>
Everyone is permitted to copy and distribute verbatim or modified
copies of this license document, and changing it is allowed as long
as the name is changed.
DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE