Skip to content

Instantly share code, notes, and snippets.

View duncanbeevers's full-sized avatar
🔊


Duncan Beevers duncanbeevers

🔊

View GitHub Profile
Prototype.CrossFrame = function() {
// Common functionality
var url_src_matcher = /^(https?:\/\/.+)\??.*/,
url_name_matcher = /\W/g,
urlForLocation = function(l) { return l.match(url_src_matcher)[1]; },
nameForUrl = function(url) { return url.replace(url_name_matcher, '-'); };
// Parent-specific closure locals
var url_map = {}, sentinel_created = false,
createSentinel = function(url) {
var EventDispatcher = (function() {
var api = {
addEventListener: function(event, callback) {
initialize(this);
if (!this.eventListeners[event])
this.eventListeners[event] = [];
this.eventListeners[event].push(callback);
},
dispatchEvent: function(event) {
initialize(this);
@duncanbeevers
duncanbeevers / MapProjection_WinkelTripel.rb
Created September 28, 2009 16:44
Wikel Tripel Map Projection in Ruby
# Usage
# projection = MapProjection::WinkelTripel.new(w, h)
# projections.project( latitude, longitude)
# => [ x, y ] # cartesian coordinates
# Where x and y will be between 0, 0 (upper-left) and w, h (lower-right)
# suitable for compositing images on a bitmap
module Math
DEG2RAD = PI / 180
#!/usr/bin/ruby
require 'stringio'
class HangMarkus
attr_reader :solutions
FILL_IN_CHARACTERS = (32..176).map { |k| k.chr } - [ '_' ]
def sub_puzzles p
0 == p.count('_') ?
p : FILL_IN_CHARACTERS.map { |c| sub_puzzles(p.sub('_', c)) }
var spectrum = [];
var signal = [];
var peak = [];
var bufferSize = 2048;
var calculateDFT = function(buffer, sampleRate) {
var complexValues = [];
for ( var k = 0; k < buffer.length/2; k ++ ) {
@duncanbeevers
duncanbeevers / hex2rgb.js
Created January 15, 2010 19:10
Convert a hex color string to an object representing the red, green, and blue parts
function hex2rgb(hex) {
var c, o = [], k = 0, m = hex.match(
/^#(([0-9a-f]{2})([0-9a-f]{2})([0-9a-f]{2})|([0-9a-f])([0-9a-f])([0-9a-f]))$/i);
if (!m) return {r:0,g:0,b:0};
for (var i = 2, s = m.length; i < s; i++) {
if (undefined === m[i]) continue;
c = parseInt(m[i], 16);
o[k++] = c + (i > 4 ? c * 16 : 0);
}
Compare = function(fn1, fn2, i) {
var time = function(fn) {
var now = new Date();
fn();
return new Date() - now;
},
spinOn = function(fn, i) {
return function() { for (var ii = i;ii;ii--) fn(); }
},
fn1_time = time(spinOn(fn1, i)),
class Hash
def recursively_stringify_keys
recursively_xify_keys(:to_s, :recursively_stringify_keys)
end
def recursively_symbolize_keys
recursively_xify_keys(:to_sym, :recursively_symbolize_keys)
end
private
@duncanbeevers
duncanbeevers / mount_secure_volume.bash
Created February 19, 2010 00:07
Mount a secure DMG, execute the deploy_credentials.sh script within it to set up deploy environment, unmount dmg
# Read Secure Volume credentials for deploy
export VAULT_DMG="~/Sensitive.dmg"
alias mount_sp="hdid $VAULT_DMG > /dev/null"
alias sp="SECURE_MOUNT_INFO=\`hdid $VAULT_DMG\`; SECURE_MOUNT_DEVICE=\`echo -e \$SECURE_MOUNT_INFO | cut -d ' ' -f1\`; SECURE_MOUNT_PATH=\`echo -e \$SECURE_MOUNT_INFO | cut -d ' ' -f2\`; . \$SECURE_MOUNT_PATH/deploy_credentials.sh; hdiutil eject \$SECURE_MOUNT_DEVICE > /dev/null; unset SECURE_MOUNT_INFO SECURE_MOUNT_PATH SECURE_MOUNT_DEVICE"
@duncanbeevers
duncanbeevers / db_uptodate.rake
Created February 22, 2010 23:49
Check whether migrations need to be run without requiring the whole app
namespace :db do
task :uptodate do
if pending_migrations.blank?
puts "Migrations are up-to-date"
else
puts "The following migrations are pending:"
puts pending_migrations.map { |mp| "%s\t\t%s" % [ mp.version, mp.name ] }.join("\n")
end
end