Skip to content

Instantly share code, notes, and snippets.

@bmarini
bmarini / async.coffee
Created November 16, 2011 17:30
async callbacks in a loop
app.get '/riders', (req, res) ->
redis.smembers 'riders', (err, replies) ->
results = []
build_json = (rider) ->
redis.hgetall rider, (err, reply) ->
results.push reply
res.json(results, 200) if results.length == replies.length
build_json rider for rider in replies
@bmarini
bmarini / ui.js.coffee
Created January 2, 2012 18:54
Half-assed port of event-map feature from backbone
class UI
container: null
events: { }
constructor: () ->
this.bindEvents()
bindEvents: () ->
for event_type_and_selector, callback of @events
[event_type, selector] = event_type_and_selector.split(' ')
@bmarini
bmarini / potential-ff-api.rb
Created January 28, 2012 00:30
Toying with apis
it "has a nice api" do
# To set the video bitrate of the output file to 64kbit/s:
# ffmpeg -i input.avi -b:v 64k output.avi
builder = FastForward.build do |ff|
ff.input "input.avi"
ff.output "output.avi" do |o|
o.bitrate("64k").stream("video")
end
end
@bmarini
bmarini / .gitconfig
Created March 17, 2012 22:03
My global git config
[color]
branch = auto
diff = auto
status = auto
[color "branch"]
current = yellow reverse
local = yellow
remote = green
@bmarini
bmarini / Procfile
Created May 25, 2012 17:51
Goliath app to serve static files
web: bundle exec ruby app.rb -sv -e prod -p $PORT
@bmarini
bmarini / msplit.rb
Created March 3, 2013 20:47
Multi Split == Multi Recursion
module MultiSplit
def msplit(*delimiters)
return [ self ] if delimiters.empty?
if idx = index( delimiters.first )
[ self[ 0...idx ] ] + self[ ( idx + delimiters.first.length )..-1 ].msplit( *delimiters )
else
msplit( *delimiters[1..-1] )
end
end
@bmarini
bmarini / threads-and-queues.rb
Created May 4, 2013 18:00
Playing with threads and queues.
#!/usr/bin/env ruby
require 'thread'
# Usage ./list-files [DIRECTORY]
WORKERS = 5
queue = Queue.new
@results = Queue.new
threads = []
@bmarini
bmarini / app.coffee
Created November 7, 2013 23:45
ui router logging...
App.run ($rootScope, $filter, $log) ->
$rootScope.$on( '$stateChangeStart', (ev, to, toParams, from, fromParams) ->
$log.info('state change from ', from.name, $filter('json')(fromParams), ' to ', to.name, $filter('json')(toParams))
)

a simple git branching model

This is a very simple git workflow. It (and variants) is in use by many people. I settled on it after using it very effectively at Athena. GitHub does something similar; Zach Holman mentioned it in this talk.

The gist

@bmarini
bmarini / stdin.go
Created December 30, 2014 16:57
Read lines from stdin
package main
import (
"bufio"
"fmt"
"io"
"os"
)
func main() {