As part of my work with UglyDuckling, I gave this Introduction to Docker talk at the Edinburgh techmeetup.
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.
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 […]
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 […]
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 […]
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 […]
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 […]
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()/node()” I pulled this code out of diffxml and re-licensed it under the Apache licence, […]
(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 […]
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.