Losing our history

Written by Andrew on April 22nd, 2012

This post was inspired by an aside in Neal Ford’s keynote at Devoxx France, about the difficulties of making long-term archives of digital data. Did you know that the archive tapes of the source code of the first version of emacs are sitting on tapes in storage somewhere in the US, but that no-one has the equipment able to read them? Neal asked: if you want to save some precious data (in his case it was the family chocolate cake recipe) for posterity, how do you store it so that it will still be readable in a hundred years from now?
Click to continue »


Devoxx France roundup

Written by Andrew on April 22nd, 2012

The first French edition of Devoxx was, first of all, a resounding success for the organisers: sold out with 1200 participants, I think we can be confident that there will be a second edition. It was also a success for the participants, or at any rate for me, in that what I got out of going there was worth the entrance ticket (notwithstanding that I went on my own time and at my own expense).
Click to continue »


Platform-as-a-service makes new business models possible

Written by Andrew on September 15th, 2011

I’m a developer, not an entrepreneur. But lately I’ve been thinking about the implications of platform-as-a-service for the way we developers work. I’d like to use you, readers, as a sounding-board for those thoughts.
Click to continue »


Living fossils, or, How do you preserve old development environments?

Written by Andrew on July 21st, 2011

What’s the average lifespan of a corporate software application? I’m feeling too lazy to find a serious study, but a licked finger in the air says that a quarter or so live out a decade.

We all know that a decade is a long time in IT, but one tends to forget just how long, until one encounters a living fossil – an application that hasn’t evolved in the last hundred million ten years. Click to continue »


The Elements of Style

Written by Andrew on June 16th, 2011

William Strunk Jr. would have written beautiful code.

The Elements of Style, by Strunk & White, is a style guide for English prose, widely used in writing classes in the US but less known elsewhere. I was introduced to it many years ago when I was attempting to become a biologist: my PhD supervisor, in despair at the inscrutability of typical scientific writing, would implore all his students to read it.

Reading it again recently, I was struck by how applicable it is to programming. Sure, writing clearly is a useful skill for programmers, since all of us find ourselves doing technical writing from time to time. But I mean that it was striking how much of what makes good prose also makes good code.
Click to continue »


Which language should you code in?

Written by Andrew on May 2nd, 2011

I don’t mean, “which programming language should you choose?” I mean, which human language should you use to name your classes, methods, variables and other artifacts?

If you’re thinking, “Why would I use anything other than English?” then don’t worry: this article isn’t for you. This article is for programmers in places where English is not the language of business. In that situation, there is a good argument for coding in English… and a good argument for not doing so. The question being: which argument wins?
Click to continue »


Solve foreign-key problems in DBUnit test data

Written by Andrew on February 15th, 2011

If you create small per-test datasets, as DBUnit advises, you’ll get intermittent build failures due to foreign-key violations. This post explains (1) why this happens, (2) why small per-test datasets are still a good idea, and (3) one simple way to get around the problem.
Click to continue »


Unit testing fundamentals

Written by Andrew on February 1st, 2011

This article describes the principles of unit testing, rather than the technical details. It’s aimed at beginners. Experienced unit-testers will get little from it, except perhaps the pleasure of pointing out mistakes.
Click to continue »


The Joy of DBUnit

Written by Andrew on January 13th, 2011

I like DBUnit. Well, I dislike using it, but that’s because I dislike writing persistence tests. I’d hate them a lot more without it.

I like it not only because it turns a dreaded chore into a mildly unpleasant one, but for how easy it is to extend and modify. Click to continue »


Maven profile best practices

Written by Andrew on January 5th, 2011

(A reworking of an earlier post, that I posted on DZone last month. I thought I should keep a copy of it on my own blog.)

Maven profiles, like chainsaws, are a valuable tool, with whose power you can easily get carried away, wielding them upon problems to which they are unsuited. Whilst you’re unlikely to sever a leg misusing Maven profiles, you can cause yourself some unnecessary pain. These three best practices all sprung from first-hand, real-world suffering:

  • The build must pass when no profile has been activated
  • Never use <activeByDefault>
  • Use profiles to manage build-time variables, not run-time variables and not (with rare exceptions) alternative versions of your artifact

Click to continue »