Skip to content

Instantly share code, notes, and snippets.


Tom Clark Whitespace

View GitHub Profile
Whitespace / postgres.sql
Last active Dec 20, 2016
Common Postgres SQL Troubleshooting Queries
View postgres.sql
-- Heroku has a bunch of awesome queries
-- View slow queries for widgets table
SELECT query, total_time/calls AS avg_time
FROM pg_stat_statements
AND query LIKE '%widgets%'
ORDER BY avg_time DESC;
View bench_rails_memory_usage.rb
require "net/http"
def start_server
# Remove the X to enable the parameters for tuning.
# These are the default values as of Ruby 2.2.0.
@child = spawn(<<-EOC.split.join(" "))
Whitespace /
Last active Aug 29, 2015
Setup Rails app to use Capybara


Not every app is setup to run capybara tests, but many have an existing testing framework that we'll have to integrate with. Here are some common frameworks we'll come across.


If there's no existing testing framework, let's setup this app with rspec, which is preferred.

View long_running_transactions.sql
SELECT userid, dbid, left(query, 100), total_time, rows FROM pg_stat_statements WHERE total_time >= 1000 ORDER BY total_time DESC;
Whitespace / types.rb
Created Apr 13, 2015
Gradual Type Checking for Ruby
View types.rb
# inspired by
module Types
def self.included(base)
class << base
def typesig method, signature_hash
arg_types, ret_type = signature_hash.to_a[0]
self.send(:alias_method, "__#{method}".to_sym, method)
define_method method do |*args|

Keybase proof

I hereby claim:

  • I am whitespace on github.
  • I am whitespace ( on keybase.
  • I have a public key whose fingerprint is C9B9 3355 72A5 6AF5 008D 43AE 082C 9F6A F98D 34C9

To claim this, I am signing this object:

Whitespace / monad.rb
Created Apr 9, 2013
Couldn't sleep, so I added some monads to Ruby
View monad.rb
require "minitest/autorun"
module Monad
def return(val)
def bind(&block)
self.return yield @value
Whitespace /
Created Apr 2, 2013
Some helper functions for heroku deploys. This uses the heroku cli's -r feature to run commands on a git remote, so you need git remotes for production and staging to respectively named.
function p {
shift 1
heroku $command -r production $@
function s {
shift 1
heroku $command -r staging $@
Whitespace /
Created Aug 28, 2012 — forked from jessedearing/
Git branch cleanup
git checkout master
git fetch
git remote prune origin
git branch --merged master | grep -v 'master$' | xargs git branch -d
echo "The following remote branches are fully merged and will be removed:"
git branch -r --merged master | sed 's/ *origin\///' | grep -v 'master$'
git branch -r --merged master | sed 's/ *origin\///' | grep -v 'master$' | xargs -I% git push origin :%