Skip to content

Instantly share code, notes, and snippets.

@jeremyruppel
jeremyruppel / find_mediator_event_mappings.rb
Created January 3, 2011 03:21
expanding on stray's idea for context event mapping synopsis
#!/usr/bin/env ruby -wKU
require "yaml"
=begin
TODO this could all use a little DRYing up
=end
class Event
TYPE_PATTERN = /public\s+static\s+(?:const|var)\s+([A-Z_]+)\s+:\s+String\s+=\s+(.*?);/
CLASS_PATTERN = /public\s+class\s+(\w+)\s+extends\s+Event/
class User < Struct.new(:name, :phone, :email)
end
# ---------------------------------------------------------------------------
# Extend on demand
# + no dependency on User class, could be reusable
# + composable
# - cannot unextend user object once extended, but this object could be short
# lived
# ---------------------------------------------------------------------------
@jeremyruppel
jeremyruppel / async.coffee
Created November 16, 2011 17:42 — forked from bmarini/async.coffee
async callbacks in a loop
app.get '/riders', (req, res) ->
redis.smembers 'riders', ( err, replies ) ->
pool = new RequestPool ( rider, callback ) -> redis.hgetall rider, callback
pool.push rider for rider in replies
pool.go -> alert 'Done!'
@jeremyruppel
jeremyruppel / encode.sh
Created February 5, 2012 03:26
ffmpeg encoding settings
# convert mov to ogv
ffmpeg -i RFI_CaseStudy_V3b_DS_720p.mov -vb 3221700 -f ogg RFI.ogv
# convert mov to webm
ffmpeg -i RFI_CaseStudy_V3b_DS_720p.mov -vb 3221700 -f webm RFI.webm
# get a screenshot at the 14s mark
ffmpeg -ss 00:00:14 -i RFI_CaseStudy_V3b_DS_720p.mov -vframes 1 RFI.png
@jeremyruppel
jeremyruppel / signins.js
Created May 18, 2012 20:47
MongoDB Seed Data
[{"timestamp":new Date( 2011, 0, 30 ),"identity":"john","event":"signed in"},{"timestamp":new Date( 2011, 0, 15 ),"identity":"john","event":"signed in"},{"timestamp":new Date( 2011, 0, 1 ),"identity":"john","event":"signed in"},{"timestamp":new Date( 2011, 1, 15 ),"identity":"paul","event":"signed in"},{"timestamp":new Date( 2011, 9, 15 ),"identity":"ringo","event":"signed in"},{"timestamp":new Date( 2011, 10, 15 ),"identity":"ringo","event":"signed in"},{"timestamp":new Date( 2011, 11, 15 ),"identity":"ringo","event":"signed in"}].forEach( function( event ){ db.events.insert( event ); } );
# This version works in Rails 3.2
require 'redcarpet'
class ActionView::Template
class Redcarpet
def call( template )
renderer.render( template.source ).inspect
end
@jeremyruppel
jeremyruppel / aws_client.rb
Created July 30, 2012 18:07
A simple fog/s3 client
require 'fog'
module AWS
class Client
def initialize( options={} )
@access_key = options.delete( :access_key ) or raise "AWS::Client requires an :access_key"
@secret_key = options.delete( :secret_key ) or raise "AWS::Client requires a :secret_key"
@bucket_name = options.delete( :bucket_name ) or raise "AWS::Client requires a :bucket_name"
@aws_region = options.delete( :aws_region )
end
@jeremyruppel
jeremyruppel / .ackrc
Last active October 8, 2015 18:47
AckMate Settings
--type-add=ruby=.erb,.haml,.rabl
--type-add=js=.coffee
--type-add=css=.sass,.scss,.less
--type-set=log=.log
--nolog
@jeremyruppel
jeremyruppel / deliver_message.rb
Created October 28, 2012 18:05
Switching from Resque to Sidekiq at Remind101
class DeliverMessage
def self.perform( id )
Message.find( id ).deliver
end
def self.before_perform_ensure_not_delivered( id )
raise Resque::Job::DontPerform if Message.find( id ).delivered?
end
[ :a, :b, :c ].inject( [ [] ] ) { |arr, n| arr.push( arr.last.dup << n ) }.reverse
# => [[:a, :b, :c], [:a, :b], [:a], []]
class Array
def countdown
inject( [ [] ] ) { |arr, n| arr.push( arr.last.dup << n ) }.reverse
end
end
query = {