How to Recover From Rails Database Schema Conflicts When Rebasing

This is something which comes up every so often when working on Rails projects with a branching git workflow.

Checking Out Branches From Tig

I use tig for my git tree browser. My normal usage is to look at the the commit tree (normally viewing all branches with tig --all) but it’s a powerful tool with a lot of features, some of which I’m starting to integrate into my daily work.

Migrating From Octopress 2 to 3

I’ve just migrated this blog from Octopress 2 to 3 and since there doesn’t seem to be a definitive migration guide yet (and inspired by a similar post by @samwize) I wanted to share what I did.

Some tools for faster blogging in Octopress

I’ve been to a number of conferences and talks recently and I’ve developed a habit of live-blogging my notes: getting them up online as quickly as possible.

Execute ruby code inline in the editor

I’ve often wondered how in Ruby screencasts they magically execute code inline in the editor, e.g. they type:

Unboxed Event notes: "Unstick your digital products"

I’m at a speaker session from Unboxed consulting

Setting up a Ruby dev environment on

EDIT: Apparently it’s not possible to run docker inside a Bowery instance because Bowery uses docker and docker has a hard time running inside a docker container - see this post on the forum

How your base PATH gets generated in OSX

On OSX and linux it seems to be fairly common practice to totally define the PATH in a .profile or .bashrc file. This gives total control over the order in which various locations are searched through. Here’s the line from my .profile:

How to not break permalinks in WordPress

I’ve written a blog post for work about how much you can and can’t mess around with urls in WordPress before old links stop working. It boils down to 5 rules:

Managing identity in git

When using git, your commits are labelled with your name and email address. These are usually based on the and fields in a global .gitconfig file in your home directory, ensuring that these values are always available.