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.

Ruby
API first developmentAPIs are core curriculum for any developer these days, whether it be building a JSON API to support interactive pieces of UI through AJAX, a…

Rails
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…

Testing
Real 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…

Rails
Custom 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…

Rails
Vanilla RailsVanilla Rails is something we have arrived at after several years of growing and maintaining Rails applications at Alt Labs . Update 9th…

Operations
Auto renewing SSL certs for freeI’m mainly writing this post for my own reference, I’m assuming most people have heard of letsencrypt.org and their free tool certbot for…

Rails
PostgreSQL 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…

Swift
The 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…

Rails
Using 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…

Rails
Lean 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…

Rails
Search 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…

Rails
Manage 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…

node
A 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…

Rails
Clearance vs. DeviseThoughtbots clearance gem is an alternative to the more popular Devise gem that allows you to easily add authentication to a Rails app…

Rails
How 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…

Testing
Testing 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…

Misc
2014 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…

Rails
Rails DeployRails deploy is an opinionated set of ansible scripts that take the pain out of setting up and deploying Ruby/Rails applications. The basic…

Rails
Production 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…

Rails
Better Rails loggingWhen insignificant messages are clogging up your application logs it can be very difficult and time consuming to debug errors happening in…

Rails
Bundling 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…

Testing
Tiny 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…

Operations
Digital 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…

Operations
VagrantVagrant is a helpful command line interface to various cloud and local virtual machine providers, most notably virtualbox. This tool allows…

PHP
Laravel 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…

Ruby
Self 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…

Testing
Testing 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…

Middleman
Turbolinks 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…
Photography
Nikon 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…
Photography
Wee 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…

Web Apps
Way 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…

Jekyll
JekyllI've recently made a few tweaks to my blog, mainly stylistic and adding in a few web fonts, but the biggest change is a transparent one, the…

Testing
Automating 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…

Testing
Testing 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…

Testing
Testing 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…

Development
Architecture 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…

JavaScript
Module 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…

Misc
Going 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.

Misc
Wrapping 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…

JavaScript
Backbone.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…

Development
Don'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…

Web Apps
Making 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…

JavaScript
Modular 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…

Testing
Trying 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…

Misc
2012 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…

Misc
What 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…

Web Apps
Working 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…