Databases: Null is not a value

Many programming languages contain the concept of a null “value,” which can mean “nothing,” or may be precisely equal to integer zero. When encountering this in a database, it would be natural to assume it means roughly “nothing.” This is a naive, although workable definition of null. As we’ve seen, simplified and even incorrect definitions […]

You're Doing Agile Wrong

Agile is the hip new software development methodology. Everyone from Fortune 100 firms to doughnut shops are trying to implement it these days. When even a US Department of Defense contractor is trying to become agile, a serious paradigm shift away from the traditional waterfall approach to a better methodology must be happening because agile […]

User Interfaces for Engineers

Because everyone and their grandma is coming out with a book on “usability for people who aren’t user interface designers,” I’ve decided that I too am qualified to say something on the matter. I’ve been writing some docs in preparation for my hiatus from Etna, and below I’ve included some snippets from those docs. This […]

The Fencepost Problem

If there’s anything I’ve noticed that plagues many less-experienced programmers, it’s what I refer to as the fencepost problem (or fencepost error, if you will). The problem can be most succinctly summed up using this thought exercise: Imagine a fence that is 100 meters long. A fencepost is needed every 10 meters. How many fenceposts […]