Skip to content

Instantly share code, notes, and snippets.

View citizen428's full-sized avatar

Michael Kohl citizen428

View GitHub Profile
@citizen428
citizen428 / safaritweet.rb
Created February 27, 2009 16:35
Tweet the currently active Safari tab
#!/usr/bin/ruby -W0
=begin
Quick and dirty way to tweet the currently active
Safari tab (title + shortened URL). Hashtags get
passed in as parameters (the hash sign gets added
by the script, so don't do it yourself)
Adapt to your needs!
=end
OS X 10.5.6, GCC 4.0.1 (Apple Inc. build 5490)
[snip]
vm/test/cxxtest/cxxtest/TestSuite.h: In function 'bool CxxTest::equals(X, Y) [with X = rubinius::Object*, Y = rubinius::MethodContext*]':
vm/test/cxxtest/cxxtest/TestSuite.h:56: instantiated from 'void CxxTest::doAssertEquals(const char*, unsigned int, const char*, X, const char*, Y, const char*) [with X = rubinius::Object*, Y = rubinius::MethodContext*]'
./vm/test/test_instructions.hpp:368: instantiated from here
vm/test/cxxtest/cxxtest/TestSuite.h:47: error: comparison between distinct pointer types 'rubinius::Object*' and 'rubinius::MethodContext*' lacks a cast
rake aborted!
Command failed with status (1): [gcc -Ivm/external_libs/libtommath -Ivm/ext...]
@citizen428
citizen428 / lyrics.rb
Created March 18, 2009 20:56
Googles for the lyrics of the currently playing song in a new Safari window
require 'rbosa'
song = OSA.app('iTunes').current_track.name.gsub(/\(.*\)/, '').gsub(/\s/,'%20')
system("open -a Safari http://www.google.com/search?q=#{song}+lyrics")
@citizen428
citizen428 / rps.rb
Created March 27, 2009 17:00
Rock-paper-scissors Sinatra app
require 'rubygems'
require 'sinatra'
get '/' do
erb :index
end
post '/' do
erb :index
end
module Enumerable
# operand can be a String or a Symbol
def filter(operand, value)
raise(ArgumentError, "Invalid operator") unless %w(> < >= <= ==).include?(operand.to_s)
return self if self.class == String
self.select { |el| el.send(operand, value) }
end
end
#!/usr/bin/env ruby
src = STDIN.read.gsub('<', '&lt;').gsub('"', '\"')
`echo "[code ruby]\n#{src}\n[/code]\n" | pbcopy `
#!/usr/bin/ruby
results = Hash.new(0)
`awk '{print $1}' ~/.bash_history`.split.each { |c| results[c] += 1 }
results.sort_by { |e| -e[1] }.each { |k, v| puts "#{k}: #{v}" }
@citizen428
citizen428 / LazyLists.rb
Created June 18, 2009 09:34
Quick and dirty lazy lists in Ruby, based on Hashes. This is just a quick proof of concept hack, not a real implementation.
class LazyList
def initialize(&block)
@ll = Hash.new &block
end
def take(x)
(1..x).inject([]) { |ret, i| ret << @ll[i] }
end
def take_from(x,y=1)
def get_random_char
(r = rand(36)) < 26 ? (?a+r).chr : (?0+r-26).chr
end
# building a string using the above method
def generate_string(len)
raise ArgumentError if len < 1
(1..len).map { get_random_char }.join
end
Number dividesBy = (x):
self % x == 0.
sum = 0
1 to 999 (x):
if (x dividesBy(3) || x dividesBy(5)): sum += x
_x
(sum, "\n") join print