Hi.

I'm a software developer based in Nottingham, England.

This site is mainly concerned with code. There's a lot of content here discussing Atlassian Confluence and related technologies, and some stuff about web analytics too.

2014-04-22

Tutorial: Using the PII Viewer for Google Analytics Chrome extension

Sending personally identifiable information (PII) to Google Analytics is strictly prohibited, but sending a unique user ID is permitted. This is a tutorial to aide users of the PII for Google Analytics Chrome extension. The extension allows you to map the user ID stored in Google Analytics to PII such as name and email address […]

2014-04-20

Tutorial: How to send user IDs to Google Analytics

Sending personally identifiable information (PII) to Google Analytics is strictly prohibited, but sending a unique user ID is permitted. This is a tutorial to aide users of the PII for Google Analytics Chrome extension. The extension allows you to map the user ID stored in Google Analytics to locally-stored PII such as name and email […]

2014-02-27

An alternative to renderConfluenceMacro(…)

In the “good old days” of Confluence plugin development, when plugins add-ons were still called plugins, people used to throw wiki markup into themes and plugins with wild abandon. Just like this: With the arrival of the XML storage format and the new XHTML Macros in Confluence 4, this kind of thing no longer worked. […]

2014-02-26

Reading from properties on the file system for Atlassian Confluence add-ons

Jobin Kuruvilla wrote a neat little blogpost “Reading from property file in v2 plugins” for JIRA plugins. This got me thinking that while people have asked, no one had written up how to do the same for Atlassian Confluence. It’s relatively straightforward, but while Jobin shows you how to read the properties file from WEB-INF/classes/ […]

2014-02-22

Extending AJS.params in Atlassian Confluence

Have you seen all the good stuff there is in AJS.params in Atlassian Confluence? OK, it’s not that exciting, but if you’re a Confluence add-on developer it can be a treasure trove for client-side DOM manipulation. As an add-on developer, you can add to AJS.params very easily. All you need is to create a Web […]

2014-02-21

Creating new Puppet modules for Boxen

I’ve been using Boxen to create a consistent environment on my development machines. There are plenty of Puppet modules for almost all people, but I have a few extras requirements that I couldn’t find. I decided to create my own but had no previous experience of Puppet. To create your own Puppet modules, grab the […]