Skip to content

Instantly share code, notes, and snippets.

View dbrady's full-sized avatar

David Brady dbrady

View GitHub Profile
# What is existence?
class Be
def initialize
end
def matches?(actual)
defined? actual
end
dbrady@robomonkey:~/lmp/market (sprint)$ ruby -e 'require "rubygems"; require "trollop"; puts Trollop.class'
Module
dbrady@robomonkey:~/lmp/market (sprint)$ ruby -e 'require "rubygems"; require "nokogiri"; puts Nokogiri.class'
Module
dbrady@robomonkey:~/lmp/market (sprint)$ cd
dbrady@robomonkey:~ $ ruby -e 'require "rubygems"; require "trollop"; puts Trollop.class'
Module
dbrady@robomonkey:~ $ ruby -e 'require "rubygems"; require "nokogiri"; puts Nokogiri.class'
./nokogiri.rb:4: uninitialized constant Nokogiri (NameError)
from /Library/Ruby/Site/1.8/rubygems/custom_require.rb:31:in `gem_original_require'
require 'rubygems'
require 'nokogiri'
doc = Nokogiri::HTML.parse(<<-eohtml)
<table>
<tr><td>9</td><td>MRobinson</td></tr>
<tr><td>10</td><td>RGoldblatt</td></tr>
<tr><td>11</td><td>JBrancato</td></tr>
<tr><td>XX</td><td><table><tr><td>Poo</td></tr></table></td></tr>
</table>
>> class String
>> alias :/ :split
>> end
=> nil
>> "foo"///
=> ["f", "o", "o"]
$ cat bin/localhost
#!/bin/sh
open http://localhost/$*
@dbrady
dbrady / gist:673524
Created November 12, 2010 00:41
Interleaved Unpacking...
# This takes about 2s for a 53Mb file.
bytes = audio_file.read_into(audio_buffer)
# This takes less than a second, BUT the data is interleaved
# (left, right, left, right, left, right, etc)
self.audio_data = audio_buffer.unpack('s*')
# Less than a second.
self.left_channel = NArray.float(2, audio_data.size)
self.right_channel = NArray.float(2, audio_data.size)
describe "Server" do
describe "methods" do
let(:put) { "put foobar beans 5\nhowdy" }
it "should be valid for a valid put method" do
# before all
@pid = spawn("bin/server")
# before each
@sock = TCPSocket.new "127.0.0.1", 3000
# One pattern I use so much I need to make an editor macro for it:
class Foo
attr_accessor :x, :y, :z, :w
# --> macro on above line should produce:
def initialize(x, y, z, w)
@x, @y, @z, @w = x, y, z, w
end
# --> end macro
@dbrady
dbrady / hanging_if_expression.rb
Created February 26, 2011 04:48
Semantically identical code, three idiomatic ways of expressing it
# Coders from from C often like this style:
log status == OK ? "OK" : "PROBLEM"
log "All done."
# But since if returns a value in ruby, you can spell it out:
log if status == OK
"OK"
else
"PROBLEM"
end
@dbrady
dbrady / change_case.el
Created February 28, 2011 01:02
emacs lisp defuns to change the case (camelCase <-> snake_case) of the word under cursor, or an entire region if selected. NOTE: the snake-case defuns do not work, they just camelCase. Ooops.
;; Grateful thanks are given to Brian Marick (@marick) for helping me
;; write these. I got the original idea while reading through
;; http://xahlee.org/emacs/elisp_idioms.html, but couldn't work out
;; the elisp regexes. Brian Marick (@marick) stepped in and helped. He
;; took my tortured and broken camelcase-region and turned it into
;; something that actually worked. I then created
;; camelcase-word-or-region. I then wrote the snakecase versions but I
;; see now that all I did was copy the camelcase defuns over and,
;; meaning to go back and finish them Real Soon Now, forgot all about
;; them. I've had a quick look (2011-02-27) but elisp regexes are