A collection of articles and snippets I've collected over the years.

Magento Custom Variables

July 12, 2016

Magento provides an interface for you to define your own custom variables. You can use these in CMS pages, static blocks, email templates and phtml templates. Here's how to use them.

MySQL Foreign Key Tutorial

July 9, 2016

Here's a quick tutorial on creating foreign keys with MySQL.

Testing Magento Email with

May 26, 2016

Have you discovered how hard it is when testing Magento email? Have you ever tried getting Magento to use a separate SMTP server to send emails? I have, and got very frustrated with it. My solution...

How to backup and restore with Magento 2

March 1, 2016

Magento 2 comes with built-in functionality to backup and restore the code, media, and database. You can choose to backup and restore code, media, or database separately. Here's how to backup and...

Product and Breadcrumb Rich Snippets in Magento

February 29, 2016

Here's how to add products and breadcrumb Rich Snippets in Magento.

Magento Snippet: How to set and get cookies in Magento

February 22, 2016

Here's how to get and set cookies in Magento.

Solved: PHP Imagick ‘unable to open image’ PDF

October 29, 2015

I've recently stumbled across an issue where PHP Imagick can't open a PDF file despite the file being there and readable. This is using Mac OSX El Capitan with Homebrewed PHP5, Imagemagick,...

Magento Snippet: Admin grid currency type with currency symbol

October 6, 2015

Here's a snippet for using a currency column type with the currency symbol prefix in Magento admin grids.

My Current Podcasts

August 30, 2015

Like many web professionals, I listen to a lot of podcasts when I have the time. They generally fall into two categories which cover my interests; tech and music, and so I thought I'd list my current...


July 17, 2015

Today I learned that `FLUSH PRIVILEGES` isn't needed by Scott Lindsey in the comments. After double checking locally that Scott was correct I looked it up and found a great explanation why MySQL...

MySQL fix: Field ‘xxxx’ doesn’t have a default value

June 22, 2015

I've recently been working on a few of our older websites with newer MySQL installations and am coming across the following error: SQLSTATE[HY000]: General error: 1364 Field...

20 years of PHP #20yearsofphp

June 9, 2015

On 8th June 1995, Rasmus Lerdorf announced the release of Personal Home Page Tools Version 1.0. To celebrate the 20th anniversary, Ben Ramsey has asked the PHP community to share their PHP...

Useful Oh-My-Zsh plugins

May 3, 2015

Oh-My-Zsh describes itself as a 'community driven framework for managing your zsh configuration' and comes with lots of zsh plugins (189 currently) but none are enabled by default. Some zsh plugins...

Install Beanstalkd on Ubuntu 12.04

April 22, 2015

A simple guide on how to install Beanstalkd on Ubuntu 12.04.

How to pear install HTTP2 and HTTP_Request2

April 16, 2015

Whilst working on a project recently I've found the need to install the HTTP2 package from the pear repository. I couldn't find any useful notes on how to install HTTP2 via pear so here's my notes on...

Staffs Web Meetup February 2015

February 21, 2015

On Thursday night I attended the Staffs Web Meetup, a monthly event aimed at providing an informal environment for people involved in all aspects of the web industry to meet up.