Skip to content

Instantly share code, notes, and snippets.

View gf3's full-sized avatar
🍊
workin' goodly

Gianni Chiappetta gf3

🍊
workin' goodly
View GitHub Profile
# Find closest point to a set of points.
findClosestPoint = (needle, haystack) ->
(init = new Point).diff = Number.MAX_VALUE
comparator = (memo, point) ->
point.diff = Math.abs(needle.x - point.x) + Math.abs(needle.y - point.y)
if point.diff < memo.diff then point else memo
_.foldl haystack, comparator, init
@gf3
gf3 / git-feature
Created May 3, 2011 22:45
Git Feature Command – Feature Branches
#!/usr/bin/env zsh
# git-feature
# Written by: Gianni Chiappetta <gianni@runlevel6.org>
# Requires: git 1.7.5+, zsh 4.3.11+
# Screenshot: http://cloud.gf3.ca/6TPb
function c_list { echo " \033[1;32m✔\033[0m $1"; }
function e_list { echo " \033[1;31m✖\033[0m $1"; }
var elemDisplays = {},
// Store the iframe outside the function to reuse it
iframe;
function defaultDisplay( nodeName ) {
if ( !elemDisplays[ nodeName ] ) {
// Try the classical method first, which is far faster
var elem = document.createElement( nodeName ),
display;
document.body.appendChild( elem );
@gf3
gf3 / gist:941238
Created April 25, 2011 21:12
An Example Class
function User( options ) {
(this.options = options || {} ).__proto__ = User.options
// Private
function utilityMethod() { return "oh hai" }
// Public
this.say = function say() {
return this.options.awesome ? utilityMethod() : ':('
}
@gf3
gf3 / Exam Study Terms.txt
Created April 21, 2011 18:07
Exam Study Progress
3 tenets of science: measurability, falsifiability, and repeatability
Advertising and lack/desire
Advertising as an imagined future
Analogue/Digital
Appadurai, Arjun
Baudrillard, Jean
Beaubourg
Benjamin, Walter
Bilal, Wafaa
Brand, Stewart
@gf3
gf3 / fancy-instances.js
Created December 12, 2010 22:48
Fancy Instances
// Proto-classy
function Book ( a_auth, a_email, options ) { var author, email
this.options = options || {}
this.options.__proto__ = Book.options
author = a_auth
email = a_email
accessor.call( this, 'author'
, function() { return 'Author: ' + author }
(function() {
var css =
[ '/css/default.css'
, '/css/section.css'
, '/css/custom.css'
]
, i = -1
, link = document.createElement( 'link' )
, head = document.getElementsByTagName( 'head' )[0]
, tmp
@gf3
gf3 / LOLheritence.js
Created September 29, 2010 03:46
Executable child instances
/* ------------------------------ Main Class ------------------------------ */
// Returns "instances" of itself which are actually functions.
function Ben ( greeting ) { var Parent, scope
function Scope () {
// Here is where you put your normal constructor junk
this.greeting = greeting
this.colours = [ 'yellow', 0xFFFFFF ]
}
// Magic
@gf3
gf3 / gist:469685
Created July 9, 2010 16:31
Function#bind for V8/node
/**
* Function#bind(context [, arg1 [, arg2 [, argN]]]) -> Function
* - context (Object): Object context to bind to.
* - arg1 (?): Optional argument to curry.
*
* Bind a function to a given `context`. Optionally curry arguments.
*
* ### Examples
*
* var new_func = my_func.bind(my_object, "no u");
@gf3
gf3 / gist:457702
Created June 29, 2010 19:40
Regenerate ctags on checkout
#!/bin/sh
# Regenerate ctags on checkout
# project/.git/hooks/post-checkout
DIR=$GIT_DIR
if [ 0 -eq $3 ]; then
# file checkout
else
# tree checkout