Blog

How to Use SVN on the Command Line for WordPress Plugin Development

12 May 2025
WordPress

In this tutorial I'll run through the main SVN commands I use the keep my WordPress plugins updated. In a...

A MusicXML Tutorial, Part 2 - Voices, Staves, Directions and Dynamics

24 Mar 2025
Music, MusicXML

In part two of this blog series, we'll expand on our initial example with some musical directions and...

Optimising Ubuntu for Audio and Music Production

1 Mar 2025
Music, Linux

In this short post I'll share how I configured Ubuntu 24.04 LTS for music production, and why I chose this...

A MusicXML Tutorial, Part 1 - Musical Markup for the Web

11 Feb 2025
Music, MusicXML

In this blog series, we're exploring the musical markup language that is MusicXML and how to get started using...

11twyg - Eleventy with Twig and YAML

28 May 2024
Eleventy, JavaScript

Eleventy is an elegant static site generator that I've become a little obsessed with lately. It's light, fast,...

Book Release: Generative Art with JavaScript and SVG

9 Apr 2024
Generative Art, JavaScript, SVG

Plug time! Apress have just released my book Generative Art with JavaScript and SVG. It's something I've been...

Book: Generative Art with JavaScript and SVG

22 Mar 2024
Generative Art, JavaScript, SVG

Here you'll find all the CodePen examples accompanying my book Generative Art with JavaScript and SVG,...

How to Launch an AppImage from the Ubuntu Sidebar

23 Dec 2023
Linux

In this quick tutorial, we'll cover how to launch an AppImage file like you would a normal desktop application...

Colour Perception, Contrast and Web Accessibility

30 Nov 2023
Accessibility

This post first appeared on ul.ie. In this article, we’ll look at the role of colour perception in web...

ChatGPT: The Content Creator’s Friend or Foe?

27 Oct 2023
AI

This article first appeared on ul.ie. Whether you’re an AI advocate or AI adversary, there’s no doubt that, as...

Generative Art vs AI Art Generators

9 Oct 2022
AI, Generative Art

Is AI-generated art a kind of generative art? Is it art at all? From the perspective of someone practising...

How to use Parcel and Tailwind with WordPress

30 Jun 2022
CSS, JavaScript, WordPress

I’m a big fan of the ParcelJS bundler.* It’s simpler and offers much more out-of-the-box functionality than...

Creating an Oscilloscope with JavaScript and the Web Audio API

12 May 2022
JavaScript, Web Audio

The oscilloscope is what you might call the archetypal audio visualiser, portraying sound in its most...

Should I Use p5js or Plain JavaScript (HTML Canvas)?

12 Aug 2021
Canvas, Generative Art, JavaScript

This is a question I gave quite a lot of thought before embarking on my Canvas API tutorials, so I'll try to...

Creative Coding with SVG: Circles, Rectangles and the ViewBox

20 Jun 2021
JavaScript, SVG

Update 2025: this was originally to be a series but later developed into a book on Generative Art and SVG....

From CSS to SASS and Back Again

21 Mar 2021
CSS

When I first discovered the benefits SASS (Synatically Awesome Style Sheets) could bring over plain old CSS, I...

The Canvas API, Part 4: Points, Paths and Colours

7 Mar 2021
Canvas, JavaScript

This is part 4 in a series on the Canvas API. Up to this Point So far, we've covered how the Canvas API came...

The Canvas API, Part 3: A Retina-Ready, Responsive Canvas

13 Feb 2021
Canvas, JavaScript

This is part 3 in a series on the Canvas API. Resolution In part 1 of this series I mentioned that the...

The Canvas API, Part 2: Basic Shapes and the 2D Context

21 Jan 2021
Canvas, JavaScript

This is part 2 in a series on the Canvas API. Boilerplate First, create a folder and call it something like...

The Canvas API, Part 1: The Background

4 Oct 2020
Canvas, JavaScript

What is the Canvas API? The Canvas API, or the ‘HTML5 Canvas’, allows for the creation of dynamic, interactive...

TrimPress - Trim the Cruft from WordPress

19 Aug 2020
WordPress

Over the weekend I released my third plugin, TrimPress. As the name (hopefully) suggests, its aim is to trim...

Guillotheme - a plugin to chop the head off your WordPress theme

14 Apr 2020
WordPress

Today I released version 1.0.0 of Guillotheme, a plugin that chops the front-end (i.e. the head) right off...

Ventus Weather Map Widget & Shortcode - v1.1 released!

21 Feb 2020
WordPress

My WordPress plugin for the Windy.com widget was updated today, adding the following features and changes:...