Strategies for building reliable user interfaces

Or, “unit testing of UI code is overrated”

This article is about how to make UI code reliable. By reliable I mean free from bugs. This implies that the software must also be maintainable, which is to say that you can easily add new features without also adding new bugs. By UI code I mean code that accepts input from users and displays results. In a modern JavaScript-powered web application, a lot of business logic is moved into the browser. For example, an online chess game may have a virtual opponent that can play against you, choosing the best move to make on each turn. Silly as it may sound to refer to chess as business, the code for this virtual opponent is “business logic” rather than UI, and you should probably unit test the shit out of it. UI code covers things like providing feedback as a player drags their chess piece across the board.

There’s something of a testing religion in software development. Mostly this is a Good Thing – unit tests are probably the most important tool for building reliable software. In this article I argue that in the context of UI development, there are better techniques for achieving reliability.

Continue reading Strategies for building reliable user interfaces

Making DNArtwork #8: Generating realistic painted shapes on-demand

DNArtworks are supposed to look like paintings, or at least like prints of paintings – with realistic brush strokes and no unnaturally straight lines:

Now a human may find it easier and faster to draw a sloppy picture than a neat one, but computers are the other way round. Drawing perfect geometric shapes is easy, but it takes much longer to make authentic-looking imperfections, both in terms of development effort and rendering time.

Continue reading Making DNArtwork #8: Generating realistic painted shapes on-demand

Project: DNArtwork

DNArtwork is a personal project to generate artwork from DNA. It took me 3 years, and is currently available at If you already have a DNA test from 23andme, National Geographic or, you can get your own artwork for free. If not, download and unzip this dummy DNA test result file so that you can see how it all works.

I’ve written a series of blog posts on various parts of the project:

Making DNArtwork #7: how does it work?

This article is available in Romanian thanks to Irina Vasilescu and in Czech thanks to Barbora Lebedova.

This article is part of a series documenting my project to make artwork from DNA. In the last article I showed off what the artwork looks like. In this post I’ll explain how I analyse an individual’s DNA to extract the information needed for an artwork.

It’s going to get quite technical, but I’ve tried to include enough information that the interested layman can understand it too, perhaps with a little googling.

Continue reading Making DNArtwork #7: how does it work?

Making DNArtwork #5: drinking the Microsoft Kool-Aid

This post is part of a series in which I explore the building of It’s about how I’ve decided to use Microsoft .NET and Azure as the infrastructure that supports the website because they’re cheaper and better than other technologies. There you go, that’s the conclusion of this article. If you’re reading this series for the DNA and the artwork, you can move along now.

If you’re interested in why this is surprising, then I’ll tell you a story about the computer industry. Not all that many years ago I was personally committed to fighting against Microsoft, which I and many others saw as a corrupting force in that industry. Now I’m actually quite excited about using their new software. This is quite surprising to me, and this article is my way of figuring out how this happened.

By the way, this is one of my occasional long rambling posts. You have been warned :o)

Continue reading Making DNArtwork #5: drinking the Microsoft Kool-Aid

Making DNArtwork #4: the pre-launch page

Since my last post where I decided that my DNArtwork prints should look somewhat like Kandinsky paintings, I’ve been busily coding away, making a computer program that can generate the individual shapes from which a composition can be built up. I’m still near the start of a long road that will hopefully end with a fully functional product later in 2016. But one modern trend in startups that I fully agree with is that its never too early to start selling, and to that end I’ve put a up pre-launch page at to introduce the product and collect email addresses.

Continue reading Making DNArtwork #4: the pre-launch page

Making DNArtwork #2: competitor analysis

There are quite a few companies offering artwork generated from DNA. This is a good thing – unique ideas are overrated, and if you come up with an idea that nobody else seems to have tried yet, it’s less likely that you’re a special genius that had the idea first and more likely that the idea doesn’t work!

Here’s a tour of the currently available offerings, during which I’ll analyse the pros and cons of each and build up a wish list of features for the perfect DNA-based artwork.

Continue reading Making DNArtwork #2: competitor analysis