This is where I publish my personal blog posts as well as technical posts and tutorials on topics such as Drupal, PHP, Tailwind CSS, automated testing, and systems administration.

Weeknotes: June 12th

Developing on Windows, organising dotfiles, and helping organise DrupalCon.

Ignoring PHPCS sniffs for PHPUnit tests

How to exclude certain PHPCS sniffs within your PHPUnit tests, so that you can write your tests methods how you'd like without getting coding standards errors.

Published my first NPM package

Yesterday I published my first module onto NPM, and it’s a plugin for Tailwind CSS to be used alongside Vue.js.

Sculpin and Twig Resources

A list of resources that I compiled whilst preparing for my Sculpin and Twig talk at DrupalCamp North.


A look back at 2014.


Thanks everyone or their comments about my move to the Drupal Association.

Some Useful Git Aliases

Here are some bash aliases that I use and find helpful for quickly writing Git and Git Flow commands.

Useful Vagrant Commands

Here are the basic commands that you need to adminster a virtual machine using <a href="" title="The Vagrant Home page">Vagrant</a>.

Going to DrupalCon

Precedent are sending myself and two of our other Drupal Developers to Drupalcon Prague.

My Sublime Text 2 settings

<a href="" title="Sublime Text 2">Sublime Text 2</a> has been my text editor of choice for the past few months, and I use it at home, in work, and on any virtual machines that I run. So rather than having to manually re-enter my settings each time, I thought that I'd document them here for future reference.

Dividing Drupal's process and preprocess functions into separate files

If you use a lot of process and preprocess functions within your Drupal theme, then your template.php can get very long and it can become difficult to find a certain piece of code. Following the example of the Omega theme, I've started separating my process and preprocess functions into their own files.

Adding Custom Theme Templates in Drupal 7

Today, I had a situation where I was displaying a list of teasers for news article nodes. The article content type had several different fields assigned to it, including main and thumbnail images. In this case, I wanted to have different output and fields displayed when a teaser was displayed compared to when a complete node was displayed.

Site Upgraded to Drupal 7

As the vast majority of the Drupal websites that I currently work on are built on Drupal 7, I thought that it was time that I upgraded this site.