The Archive

A long time ago, in a galaxy far, far away...
I used to write about Ruby, Rails and a bunch of other random developer related topics, you can find some of that below.

I’m never using active admin again!I recently talked about our Vanilla Rails approach that we use in Alt Labs , in short it’s about minimising your dependencies and…November 13, 2017Real code: Testing a web crawler with RSpecThis is another post coming out of working on my side project Void . You often see articles teaching testing or TDD on an example topic (I…October 17, 2017Custom Rails error pagesThis is the start of an ongoing series extracted from building Void – a bookmarking and reading list tool. Void is one of my side projects…October 15, 2017Vanilla RailsVanilla Rails is something we have arrived at after several years of growing and maintaining Rails applications at Alt Labs . Update 9th…October 08, 2017Auto renewing SSL certs for freeI’m mainly writing this post for my own reference, I’m assuming most people have heard of and their free tool certbot for…February 24, 2017PostgreSQL UUID primary keys in Rails 5In a recent project I have been using UUIDs as the primary key type with Rails 5 and PostgreSQL. This can be useful if your objects IDs are…February 22, 2017The State of SwiftLet’s start with a little context... I’ve been doing quite a lot of iOS development over the last couple of years, nearly all of my native…February 14, 2017Using Vue.js + webpack with Rails 5 todayWith Rails 5.1 we’re going to get built in support for using webpack for our javascript, allowing us to use more advanced frontend tools and…February 05, 2017Lean JavaScript templates in RailsA little known Rails feature is built-in JST support and we can leverage this along with EJS to have a neat and tidy JS templating…October 21, 2016Search by proximity using PostGIS and RailsSearching proximity to a location is a task we have done before in a traditional database with some complex trigonometry algorithms. As we…November 11, 2015Manage cron jobs with whenever and capistranoKeeping track of your apps scheduled tasks is usually a bit of a pain. It can be handled outside of your normal code processes such as…November 06, 2015A robot for musicHaving chat controlled music for the office is certainly not a new idea , however I was a little disappointed when trying to set it up…October 19, 2015Clearance vs. DeviseThoughtbots clearance gem is an alternative to the more popular Devise gem that allows you to easily add authentication to a Rails app…September 04, 2015How I use TurbolinksFor many traditional multi-page apps turbolinks can offer a great perceived performance boost to your end users, however it can be tricky…July 14, 2015Testing duck typesI just finished reading Practical Object-Oriented Design in Ruby and I wanted to share one of the cool things I got from the last chapter…January 15, 20152014 year in reviewIn April 2014 I left my full time job at Typecast with nothing more than some savings in the bank and 3 months contract work on Niice…January 04, 2015Rails DeployRails deploy is an opinionated set of ansible scripts that take the pain out of setting up and deploying Ruby/Rails applications. The basic…January 02, 2015Production Rails appsThis isn’t a go-live checklist, just a couple of things that aren’t too difficult to setup and will give you a bit more peace of mind when…December 19, 2014Better Rails loggingWhen insignificant messages are clogging up your application logs it can be very difficult and time consuming to debug errors happening in…October 13, 2014Bundling bootstrapI am growing tired of seeing css or javascript frameworks and libraries being installed with bundler. When working on a rails app I want to…October 03, 2014Tiny testingI recently started getting a lot of spam enquiries through my portfolio site . This began to annoy me after several days of junk emails and…September 23, 2014Digital ocean cluster from $15/moWith digital ocean you can get a VPS for $5 / month so why not get a few small VPS’s and start to separate out your server architecture to…March 29, 2014VagrantVagrant is a helpful command line interface to various cloud and local virtual machine providers, most notably virtualbox. This tool allows…March 14, 2014Laravel 4 nginx configI’ve seen a lot of complicated nginx setups for laravel and other major PHP frameworks. Below is the setup I use and I think it is a more…February 15, 2014Self hosting Rack based appsI've been self hosting my own rack based applications (rails, sinatra etc) for some time, I want to show you my server setup and how to…November 09, 2013Testing sinatra APIsSinatra is often a great choice for writing restful web services. I want to show you what I have found beneficial when testing APIs and how…October 07, 2013Turbolinks in middlemanRails 4 now comes with Turbolinks enabled by default, I think this is great and would love to see more sites make use of this technology…September 14, 2013Nikon d7100 reviewI recently purchased a Nikon d7100, Nikons flagship APS-C DSLR, it has a lot of pro level features and is the best Nikon DSLR shy of moving…August 10, 2013Wee cameraPicked up a new camera today, a Sony SLT-A37 . I've only taken a few quick shots from the balcony in my apartment, but so far it seems…February 10, 2013Way Less CSSWith the redesign of my blog a few months back I decided I was going to try out this mobile first thing everyone was harping on about…February 09, 2013Automating your testsHaving a test suite is awesome, doing TDD is awesome too, but what if you make that really quick change and forget to run those tests? It's…January 08, 2013Testing node.js apps with mochaA couple of days ago I wrote an article on Testing Backbone.js with mocha , this was a primer on doing TDD in one of the easiest…January 06, 2013Testing Backbone.js with mochaThis is a zero setup quick starter to using TDD, it should take about 20minutes of your time max! Client side is one of the best places to…January 04, 2013Architecture processI've long wanted to jot down the elements to my architecture process so that I could measure and improve upon it. I think once you have…January 03, 2013Module loadingSo as I mentioned in my goals for 2013 I am working on a JavaScript framework, it has been really interesting so far and I am learning quite…January 02, 2013Going forward, plans for 2013So I have reviewed my progress for 2012, the first thing I have failed at is setting valuable goals. The biggest thing I took away from 2011 was focus, so it made made sense to me to set goals to focus on, however the taking away from 2012 would have to be value.December 31, 2012Wrapping up 2012Going back to my post at the beginning of 2012 when I set out goals for the first time, it has now reached the end of 2012 and it's time…December 31, 2012Backbone.js conventions (part 1)Backbone.js is a very popular client side framework, it is very flexible and thus has many different ways of doing things. I've found so…December 09, 2012Don't ever fix a bugWe'll start by a basic definition of a bug . A software bug is an error, flaw, mistake, failure, or fault in a computer program or system…November 03, 2012Making thingsIf I were to put a label on myself within the category of engineer, that would be "technologist". I love researching and playing with the…September 29, 2012Modular client-side developmentFrom using node.js and sinatra quite a lot in the past few months it has really been evident that our client side JavaScript code and…August 19, 2012Trying BDDWhen I started out as a developer and to this day I am always seeking ways to improve my workflow and the quality of the code I write…July 07, 20122012 is full of goalsAs this is the first time setting goals to measure myself against next year, I don't really have anything tangible to measure against from…January 15, 2012What I’ve been up toI haven't posted anything here lately, despite me looking at a lot of cool stuff. So I guess this post is a small catchup of some of the…September 22, 2011Working on large scale web projectsAs you may or may not know, I work for Crafty Devil, a web applications design company based in Belfast. We have a pet project (turning into…June 08, 2011