Skip to content

Instantly share code, notes, and snippets.

View zerowidth's full-sized avatar

Nathan Witmer zerowidth

View GitHub Profile
@zerowidth
zerowidth / node_scope_test.js
Created August 3, 2010 15:20
js scoping demo (node.js)
var sys = require('sys');
var foo = {
name: 'foo',
bar: function() {
sys.puts('in bar, this is ' + this.name);
setTimeout(this.bar, 1000);
},
baz: function() {
var me = this;
# this is why AR3 and arel is awesome.
# bus route data, loaded from google transit data
# the usage
class StopsController < ApplicationController
def nearest
@stops = Stop.nearest_to(lon, lat).serving_route("SKIP").limit(5).all
end
end
@zerowidth
zerowidth / flatten.rb
Created November 5, 2010 16:51
generate flat map chunks for easy testing (minecraft alpha server)
#!/usr/bin/env ruby
require "fileutils"
require "pathname"
require "zlib"
world = Pathname.new File.expand_path("./world")
0.upto(3) do |x|
0.upto(3) do |z|
@zerowidth
zerowidth / mongomapper_json.rb
Created November 8, 2010 18:28
fix mongo mapper's as_json so it handles :include with sub-options (e.g. :include => {:foos => {:only => "name"}} )
module App
class Model
def as_json(opts={})
hash = super
if opts && inclusions = opts[:include]
case inclusions
when Array
inclusions.each do |key|
hash[key.to_s] = send(key.to_sym).as_json
end
module Golem
class ServerMapConverter
def self.convert(src_path, dest_path)
new(src_path, dest_path).convert
end
attr_reader :src, :dest
def initialize(src_path, dest_path)
@src = Pathname.new(src_path).expand_path
@zerowidth
zerowidth / ssh_sudo_root.sh
Created January 6, 2011 21:20
sshr for "ssh as root", but using sudo
function sshr() {
if [ -n "$1" ]; then
if [ -n "$2" ]; then
ssh -t $1 sudo $2
else
ssh -t $1 sudo su -
fi
else
echo "... specify a host, n00b"
fi
@zerowidth
zerowidth / trollop_modes.rb
Created January 19, 2011 19:18
hacky test at declarative mode / subcommand support in trollop, totally unfit for consumption!
require "rubygems"
require "trollop"
Trollop::Parser.module_eval do
def self.mode_parse(args=ARGV, &block)
parser = Parser.new(args, &block)
with_standard_exception_handling(parser) { parser.mode_parse args }
end
@zerowidth
zerowidth / Gemfile
Created February 24, 2011 03:00
comparison of mongo's grep vs. pcregrep on 400+MB of log files
source :rubygems
gem "bson_ext"
gem "mongo"
gem "logging"
Dreamer [Fischer], level [1], priority [19], policy [OTHER]
Dreamer [Cobb], level [1], priority [19], policy [OTHER]
Dreamer [Ariadne], level [1], priority [19], policy [OTHER]
Dreamer [Arthur], level [1], priority [19], policy [OTHER]
Dreamer [Eames], level [1], priority [19], policy [OTHER]
Dreamer [Yusuf], level [1], priority [19], policy [OTHER]
Dreamer [Saito], level [1], priority [19], policy [OTHER]
[Fischer] HIJACKED ! Open up my defense projections in my dream to the hijackers!
[Cobb] sees Fischers defense projections at work in the dream at level [1]
[Cobb] taking Fischer to level 2
@zerowidth
zerowidth / truncate_in_place.rb
Created May 23, 2011 23:20
test out truncating a file in place
#!/usr/bin/env ruby
log = "big.log"
words = %w(foo bar baz blech mumble what no ack aiee)
File.open(log, 'w') do |file|
1000.times do |n|
content = (0..(rand(100) + 10)).map { words[rand(words.size)] }
file.puts "#{n} #{content.join ' '}"
end