Posts Archive

Here's everything I ever wrote. God help you.

Github Releases are no match for

June 18, 2024
changelog, github, ux

I have noticed a trend recently of library authors abandoning their files, in favour of Github Releases. For a library author, the choice is understandable. A Github Release message contains much the same information as a changelog, so why duplicate effort and risk having no sourc...

Why, after 6 years, I’m over GraphQL

May 24, 2024
ruby, rails, graphql, rest, openapi

GraphQL is an incredible piece of technology that has captured a lot of mindshare since I first started slinging it in production in 2018. You won’t have to look far back on this (rather inactive) blog to see I have previously championed this technology. After building many a React SPA on top of ...

Server Side Rendering for React + Apollo GraphQL Client

January 2, 2019
ruby, rails, react, apollo, graphql

In a previous post I talked about how I set up server side rendering of React components in Rails with Hypernova. I went on to build a complex Ruby based GraphQL data pre-fetcher because I could not work out how to do asynchronous pre-fetching of data in Hypernova alone. Well, it turns out though...

Pre-fetching Data for Apollo GraphQL Client

August 5, 2018
ruby, rails, react, apollo client, graphql

UPDATE: This post has been made redundant by my discovery of a simpler approach. Please see: Server Side Rendering for React + Apollo GraphQL Client. In a previous post I talked about how I set up server side rendering of React components in Rails with Hypernova. One detail I skimmed over in tha...

Rails + React Server Side Rendering, with Webpacker + Hypernova

August 4, 2018
ruby, rails, react, hypernova, ssr, server side rendering

I recently discovered Hypernova, a wonderful tool from Airbnb, making the unimaginable possible: server side rendered React components, in a Rails app, with no Node server required in development, or even production. In the post, I’ll walk you through how to make this a reality in four steps: ...

Easy SuckerPunch Asynchronous Mailers

May 14, 2014
ruby, rails, suckerpunch

For a Rails side project recently I finally had the need for a background task handler. Now traditionally I’d jump at Sidekiq, and for good reason. It’s sexy, relatively simple, and comes with a ton of niceties like automatic exponential back-off retries. For this project however, at least at thi...

I, Car

February 12, 2014
thoughts, futurism

The topic that’s got me - and it seems a great deal of others - hot under the collar lately is that of the ‘self driving’ car. As Google and others further the technology necessary for a world free from steering wheels, one can’t help but wonder just what that world will be like. Many have dabble...

What they don't prepare you for

November 24, 2013
svip, america, chocolate

Time for some serious business. Buzzfeed level serious. Today we’re talking about something a Brit holds dear and oft claims Americans do not. Today we’re talking about… chocolate. One of the many things friends and family repeatadly warn you of before flying out is invariably how shit the chocol...

Pivot early, pivot often

November 13, 2013

This is how the weekend began. Its been a few days since the 48 hour coding grind that was the Launch Hackathon, and I think I’ve caught up on enough sleep to attempt a cohesive paragraph or two. Launch prided itself on being the largest hackathon ever, with 1,500 applicants. They didn’t all s...

Greater than the sum of its parts

October 19, 2013

Up until now I’ve found it hard to articulate exactly what it is that makes Silicon Valley such a different experience to the rest of the world, but after a few weeks of living it, I think I’ve got it now. Let me take you through some of the mad things than happen here that are just considered no...


October 13, 2013

[Advanced warning, this is very much a Mum post, don’t expect any philosophical insights!] Several trips to IKEA , and several Amazon orders later, I can finally say that the five of us are looking pretty settled in at 126 Coleridge. Naturally, the house hasn’t quite acquired much in the way of a...


September 28, 2013

As I woke up this morning, horrifically hungover from yet another ‘work hard, play harder’ Friday night, to a team of Asian men disassembling all the furniture in our bedroom, I couldn’t help but reflect on what an incredibly brilliant and bizarre few weeks its been. This situation at least is so...

Ubiquitous Design

September 14, 2013

It’s been a while since I blogged but the topic of this post has been on my mind since we landed. I’ve been noticing millions of subtle differences in the design of almost everything in the US compared to Britain. You might think that with no language barrier the experience couldn’t be that jarri...

The First Days

September 3, 2013

The first commute, yesterday, went less than smooth, though I only really have myself to blame. Californian public transport, though surprisingly ubiquitous, is very confusing! Unlike the UK where even if we do have many private companies running the rail, we still essentially have one rail syste...


August 31, 2013

Our first full day in SF started, for almost everyone in my 8 person dorm room, at about 6am. Bodies seemed to come to a consensus that despite all feeling absolutely exhausted, sleep was unnecessary. As such we were all waking up through the night, until most gave up as the sun rose. I don’t rem...

It Begins...

August 29, 2013

I write this first post 3 hours into my 11 hour flight from Heathrow to San Francisco. Several of you asked me to write up my ramblings over the course of this… expedition, for lack of a better word, so do please bear with me as the nature of this blog evolves and hopefully settles down in time. ...

Proper missing image reprocessing with Paperclip + Rails

May 30, 2013
ruby, rails, paperclip

As SNGTRKR is still in its infancy, we find ourselves tweaking the image sizes our models have on a semi-regular basis. Fortunately Paperclip makes that a doddle; just a one line change to the model definition and away we go. Now all thats left to address is the missing copies of this new image ...

Migrating from Paperclip to Carrierwave

April 7, 2013
ruby, rails, carrierwave, paperclip

After experiencing some problems configuring Paperclip to behave the way we wanted with S3, I decided to move SNGTRKR to the Carrierwave gem. I had feared this would be a horrible breaking change, but in reality it wasn’t too bad at all. Nevertheless there were some undocumented or poorly documen...

Deploying Sunpot / Solr with Capistrano

March 13, 2013
ruby, rails, solr

At SNGTRKR we needed something to make fuzzy searching in two models and across multiple fields easy. In other words we needed an indexer. This was my first time setting up any indexing engine, and my research led me to Apache Solr. Part of the reason for choosing Solr over any other solution was...

Hello, World!

March 12, 2013

I have decided, somewhat under the influence of 37signals brilliant book, Rework that its time I start documenting all the even vaguely clever webby things I get up to day to day. This blog is where that documentation will happen. At this stage, I have no idea whether this will be of use to anyo...