Practical Clojure

The first thing to know about the book Practical Clojure, is that unlike its title might initially suggest, it is not a book trying to describe how to use Clojure practically. That is to say, it doesn't describe how to create enterprise ...Read More

What do developers keep in their toolbox?

I just  discovered a website called that let's you find the 'best' work apps based on the recommendations and experience of your peers (or at least your peers that have been on I like these crowdsourced comparison tools for finding consensus ...Read More

Testing Asynchronous JavaScript with Jasmine

For many applications, when you call a method the effect is immediate. For example calling a method like showErrorMessage("Error") will instantly update the page to give feedback to the user. However, not all applications are this simple. Caplin uses StreamLink libraries to connect our ...Read More

JavaScript is Hard Part 1: You Can't Trust Arrays

We also know there are known unknowns; that is to say we know there are some things we do not know. But there are also unknown unknowns – there are things we do not know we don't know. - Donald Rumsfeld, February 2002 I ...Read More

Scaling JavaScript

When your JavaScript codebase consists of a couple of functions to do image rollover and form validation, then javascript seems like an extremely easy language.  It has relatively little bureaucracy for getting simple things done, an extremely useful literal notation for maps and ...Read More

Writing a custom Taglet for Javadoc

What are Taglets? You may recognise Taglets in JavaDoc as the text denoted by the @ symbol, and they come in two flavours, standalone Taglets such as the @param and @return tags, and inline Taglets such as {@link mylink} denoted by the curly ...Read More

The New Writing

Which is to say: All civilized people write poetry from time to time.  Both its reading and its writing are necessary to a civilized mind.  But, in most cases, we should be civilized enough to keep it  - at least the writing part ...Read More

Caplin Reaver – Hackday Project

Caplin Reaver (name pending review) was a small project created by Neal Dangerfield and myself to explore how to make the XMC (Xaqua Management Console) into a more compelling feature for Caplin Xaqua. The XMC is a great tool. It allows developers and administrators ...Read More

The 50 Commandments of software development

Many years ago I worked for a small software house, Teleca. This was well before the terms "lean" or "agile" were in common use in a software development context. Teleca's founder, Paul Sherwood, shunned formal systems like iso9001 and instead ...Read More