Intro to Docker Talk

May 26th, 2014

As part of my work with UglyDuckling, I gave this Introduction to Docker talk at the Edinburgh techmeetup.

Book Review: Clojure for Domain-specific Languages

January 26th, 2014

I’m clinging to the excuse that I had only read the title of the book before volunteering to review it. If I had even got as far the sub-title, I would have thought twice.

(How To Do) XML Schema Validation

November 21st, 2013

Judging by the popularity of this question on StackOverflow (and my answer), it seems that a lot of people struggle to check the validity of an XML file against an XML Schema. It’s a shame that what should be a trivial task has wasted hours of developer’s lives. In this article I’ll try to offer […]

Network Audio Players and Linux Revisited

January 24th, 2013

In my previous post Network Audio Players and Linux, I described some ways in which to stream music from a Linux server to network audio player (primarily the Denon DNP-720AE). In the comments to that post, mjheagle suggested I try out MPD, which I’d missed when trying out various solutions. This post describes the benefits […]

Clojure and Google App Engine

August 16th, 2012

I recently finished an MVP version of Edinburgh Festival Roulette, the first web app I’ve written using Google App Engine and Clojure, and I thought I’d share some of my thoughts and experiences. Clojure and Compojure were definitely a good choice; I was able to get something up and running quickly despite having limited experience […]

Network Audio Players and Linux

May 30th, 2012

This is a short guide to using network audio players (sometimes called media streamers) with Linux. It mainly pertains to the Denon DNP-720AE, as this is the network audio player I use. However, the techniques and issues are likely to be similar for most network audio players. There are two things you probably want to […]

Minimal TODOs for Linux

January 7th, 2012

Up until now I’ve just used bits of paper for my TODO system. This has served me quite well, but the problem is that bits of paper are too easily lost or mislaid. So, after reading Minimally Awesome TODOs I wanted to set something similar up for my Ubuntu box. Minimally Awesome TODOs describes a […]

XPathGen Released

January 5th, 2012

I’ve just released XPathGen, a simple utility class for generating XPath paths that uniquely identify DOM Nodes in Java. For example: Document testDoc = createDocument( “<a>aa<b attr=’test’>b<!– comment –>c<c/></b>d</a>”); //Grab text node “aa” Node aa = testDoc.getDocumentElement().getFirstChild(); System.out.println(XPathGen.getXPath(aa)); //Should print “/node()[1]/node()[1]” I pulled this code out of diffxml and re-licensed it under the Apache licence, […]

An Intro to Lisp Editors and IDEs

December 22nd, 2011

(or Lisp IDEs where for art thou revisited) A while ago I wrote a post berating the lack of full-blown IDEs available for the various Lisp languages (cue the sound of Emacs fanboys sharpening their knives in the background ;) ). To some degree I regret that post, as although its popularity proved it hit […]

On Code Quality

August 22nd, 2011

As part of the Enhanced Visual OGSA-DAI Workbench project, I’ve been asked to keep a developer’s blog. My latest article in this series is titled On Code Quality, where I investigate what it means to write good code.