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

August 17, 2016

Here's a Magento snippet showing how to use a Group By clause on a Magento collection model.

August 5, 2016

Homebrew is easy to use and makes installing services such as MySQL or Elasticsearch a breeze. Here's how to manage those services.

August 4, 2016

I'm pleased to announce that I have recently passed the Magento Certified Developer exam.

July 28, 2016

I've had a problem on a few older projects where composer dies with "????%" after running `composer update`. Here's the fix.

July 26, 2016

I had the idea a while ago of creating a basic starter app containing the boilerplate code needed to get started on an idea - so here it is. Introducing my Laravel Starter App - Hit the Ground.

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.

July 9, 2016

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

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

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

February 29, 2016

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

February 22, 2016

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

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,...

October 6, 2015

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

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

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