View debug.coffee
debug = (obj, seen)-> | |
printProps = (obj)-> | |
#Edge case to handle is [1,2,3][9] = 'foo' | |
#Need to factor the conditional out to check if the prop is a number less | |
#than the array's length | |
return ((if ! /^\d+$/.test prop then prop + ": " + debug(obj[prop], seen) \ | |
else '') for prop of obj).join(', ') | |
seen = seen or [] | |
if obj in seen |
View default.rb
require 'rubygems' | |
require 'json' | |
CONF_PATH = '/tmp/clouddial_conf.json' | |
cookbook_file CONF_PATH do | |
source File.basename CONF_PATH | |
mode '0444' | |
backup false | |
end |
View closures.coffee
makeLogger = (prefix) -> | |
(message) -> console.log "#{prefix.toUpperCase()}: #{message}" | |
fooLogger = makeLogger 'foo' | |
barLogger = makeLogger 'bar' | |
fooLogger n for n in [1..10] | |
barLogger n for n in [1..10] | |
fooLogger n for n in [11..20] |
View tipper.js
var tipper = function (percentage) { | |
return function tip(total) { | |
return total + (total * (percentage / 100)); | |
}; | |
}; | |
var generous = tipper(20); | |
var normal = tipper(18); | |
var stingy = tipper(8); |
View Model.coffee
addConvenienceMethods = -> | |
for prop, value of this.attributes | |
((prop) -> | |
#Define a setter/getter function | |
this[prop] = (newValue...) -> | |
if newValue.length | |
this.set prop, newValue[0] | |
return this | |
else | |
return this.get prop |
View gist:3165384
So the question was: should programming languages use a different syntax (or character) for comments intended to be read by developer vs comments whose purpose is to disable code. For example, in my mind, these two scenarios are semantically entirely different intents: | |
# Add 2 px to account for border | |
width += 2 | |
vs ...... | |
#def someFunc(): | |
# pass |
View gist:3717688
//Note, works with either Backbone.Model or Backbone.Collection | |
//Returns a function that will fetch the provided model and works with | |
//async's callback API | |
function asyncFetch(model) { | |
return function (callback) { | |
model.fetch({ | |
success: function (model) {callback(null, model);}, | |
error: function (model, response) {callback(response);} | |
}); | |
}; |
View ncsend.sh
NCSEND_PORT=6666 | |
ncsend() { | |
local DEST_HOST="${1-smair}" | |
pbpaste | nc "${DEST_HOST}" "${NCSEND_PORT}" | |
} | |
ncreceive() { | |
while true | |
do | |
nc -l "${NCSEND_PORT}" | tee /dev/tty | pbcopy |
View prefs.sh
#Export like this: prefs export iterm | |
#import like this: prefs import iterm | |
prefs() { | |
local OP="${1}" | |
shift | |
case "${OP}" in | |
export|import); | |
;; | |
*) |
View emitter_demo.js
var emitterModule = require('./emitter_module'); | |
emitterModule.on("e1", function () { | |
console.log("emitterModule.e1 handler invoked", arguments); | |
}); | |
emitterModule.func1(); |
OlderNewer