About this


This blog began life as a chronicle of my life inside a touring band with a music/business idea. The early days were me writing about letting go of an old dream so that I could have a new one. Then it sort of turned into an autobiography of the last 8 or so years of my life - moving from the music business into the tech business, fatherhood, life and all that.

For the last 8 years I've worked with, thought about, and written about a variety of web technologies - Drupal, Rails, Linux, AWS. My LinkedIn resume is here. I still think and occasionally write about the music business and other personal things but I think it's about to turn into a blog about learning Python for web and doing "data stuff".

So welcome and please have a look around.

Recent Posts

Programmatically creating taxonomy terms in Drupal

Because sometimes you need to roll out a bunch of taxonomy terms across 26 sites, and you just don't feel like clicking those buttons.


$terms = [
    'Case Study',
    'Application Note',
    'Data Sheet',

$vocab = taxonomy_vocabulary_machine_name_load('vocab_machine_name');

foreach($terms as $term) {
    $t = new stdClass;
    $t->name = $term;
    $t->vid = $vocab->vid;

Save ...

Migrating the Drupal public filesystem to S3


  • You're working with a managed hosting provider and have begun to run out of room on the local/networked filesystem. Vendor wants to upsize your storage for a charge.
  • You've got several different environments that you're working with (local|dev|prod|etc) and syncing the filesystem between them is an annoying chore in 2016. The various ...

Programmatically creating image styles in Drupal

Because sometimes you need to roll out an image style across 26 websites, and dammit you just don't feel like dealing with Features.


 * Adds mobile_content_image style
 * @param $sandbox
 * @return bool

function hook_update_N(&$sandbox) {
  $style = image_style_load('mobile_content_image');
  if (!$style) {
    $style = image_style_save([
      'name' => 'mobile_content_image',
      'label' => 'Mobile Content Image (500 x 250)'
    $effect = [
      'name' => 'image_scale_and_crop' ...

Prev/Next as linked lists in Django

So it took me a month to puzzle this out. Here's the use case --

I want to be able to link a set of posts together in an order. If there is a next post relative to the one I'm on, I want a button to show up that says "next post" and links to it. If there ...

The blog archive ->