Rubick.com

Photos

Exercise motivator

Want free reminders to workout? And public shame if you don't?

New parent meal registry

Want to organize meals for after the birth of your child? Sign up for your free meal registry

Recent books read by Jade:
Implementation Patterns by Kent Beck
Beck is great.

Posted by Jade Rubick on April 17, 2008 - Permalink
Software Estimation by Steve McConnell
Another great book by Steve McConnell. I'd read his other books first, which are classics, but this is also really good.

Posted by Jade Rubick on April 17, 2008 - Permalink
Patterns of Enterprise Application Architecture by Martin Fowler
Very heavy reading, but fascinating.

Posted by Jade Rubick on April 17, 2008 - Permalink
Recent books read by Kate:
Name All the Animals : A Memoir by Smith, Alison
My dad sent me this book after he heard Smith read in Northampton, MA.  Brave memoir about the loss of her brother when she was very young, and how that event shaped the future of her family.

Posted by Kate Rubick on December 02, 2004 - Permalink
Dangerous Angels: The Weetzie Bat Books by -
I read the first book when it came out years ago on the advice of a very astute young adult librarian I know named Marin.  I picked this up in the airport in Portland on the way to NY.  I saw the title Dangerous Angels and somehow missed that it was all Weetzie Bat. Anyway, I read it all and was charmed.  Wow, who would have thought that Weetzie would ever grow up...

Posted by Kate Rubick on December 01, 2004 - Permalink
The Secret Life of Bees by Kidd, Sue Monk
A friend gave this to me early in the summer.  I don't know, I guess I get tired of the American coming of age of the abused child story.  There was some delicious imagery with the hives and some eccentric characters.  It read to me more like a YA novel than an adult one.  Which is not necessarily a bad thing, but it didn't even read like an unusually good YA novel.  I give it a B.

Posted by Kate Rubick on December 01, 2004 - Permalink
Jade's weblog

Making git bisect play nicely with Rails

At New Relic, we use Hudson to continuously run our test suite. When something breaks, we usually know exactly who broke it, and we fix it right away.

Occasionally, however, the test is hard to fix, or the person is unavailable to fix it. Then things start piling up and it's difficult to tell when something broke.

Also, sometime you get a regression and write a new test that duplicates the failed test, and you want to find out when it initially broke.

The usual tool for finding when something broke it using git bisect. It does a binary search and finds the exact commit that broke something. And, it even can use the output of a script to automatically determine the exact commit, based on the result of a test script.

However, a big problem in Rails is that your environment gets out of sync with the codebase pretty quickly. You have to run bundle each time git bisect updates, and then migrate your database to keep it in sync. It can be quite a pain to do it manually, and these things tend to prevent you from running the automatic scripts.

I hacked together a very rough script (based loosely on this one: http://pivotallabs.com/users/jnoble/blog/articles/1678-using-git-bisect-to-find-where-something-broke) that automates everything. It's probably slower than if you did it manually, but it IS automatic, so you can go get a cup of coffee and come back with the answer to where it broke.

WARNING: This will blow away your database, AND any uncommitted work!

Here's a very early version of these scripts (I'll probably modify them as I use them more):

script/git-bisect.sh


#!/bin/bash
set -e

if [ -z "$1" ]; then
echo This script automates the process of finding what broke a particular test
echo To use it, go to the base directory of the core site project, and type:
echo
echo $0 path_to_ruby_test.rb
echo
echo note the ruby test script should not be saved in git
echo The script will use git bisect to find the initial commit that broke the test
exit
fi

echo We assume it is currently broken, and that it was okay a month ago

WEEKS_AGO=`ruby -rdate -e '(Date.today - ARGV.first.to_i).display' 31`

git bisect start
git bisect bad
git checkout `git rev-list -n 1 --before="$WEEKS_AGO" master`
git bisect good

git bisect run script/git-bisect-run-one.sh $1


script/git-bisect-run-one.sh


#!/bin/bash
set -e

if [ -z "$1" ]; then
echo usage: use git-bisect.sh, which calls this
exit
fi

git checkout .
bundle
rake db:drop
rake db:create
rake db:migrate
rake db:test:prepare
ruby -Itest $1

01:40 PM, 19 May 2011 by Jade Rubick Permalink | Comments (0)

Setting up SSL locally for rails development [www.silverchairsolutions.com]

This is useful if you want to modify your /etc/hosts to test how local code interacts with another production service.

02:23 PM, 17 Mar 2011 by Jade Rubick Permalink | Comments (0)

I published my first gem this morning. It takes a two latitude longitude pairs and returns the English heading. For example: North, South, East, West.

12:35 PM, 27 Dec 2010 by Jade Rubick Permalink | Comments (0)

XML