Temptation to Misuse Class Inheritance

It’s good advice for all OO programmers that inheritance between classes should only be used when the subclass has an is-a relationship to the superclass. It can be tempting to inherit from a class just because it has properties or behaviours that you want and inheritance is a convenient way to get them easily. The following is a fun story from a game developer dealing with some problems caused by them ignoring this advice.

Camera obscura

This is an older one, but Force 21 was an early 3D RTS which used a follow cam to observe your current platoon. Toward the end of the project we had a strange bug where Continue reading

Book: Effective Java (Second Edition)

For a number of reasons I currently have a bit of time on my hands but without access to my usual time-consuming activities (Netflix, fast internet, Playstation, and even housework). Consequently, I’ve been reading a few programming books (both old and new) and I’ve just been thinking about Effective Java (second edition). It was written by Joshua Bloch who you might know as the author of Continue reading

eResearch Conference 2014

I was lucky enough to have the opportunity to attend this year’s eResearch Australasia Conference in Melbourne. I have been once before, in 2012, so this time I had a better understanding of what to expect. The conference was good and there were heaps of interesting topics covered. Although I did mistakenly attend a talk about Fedora confusing it for the Linux distro of the same name.

At my most recent annual review at work I Continue reading

User-friendly progress indicators

I have a theory, which I’d like to share, about a way to make percentage progress indicators more user-friendly. When I say “percentage progress indicators” I’m talking about any UI element (text, progress bar, graphic, etc.) which indicates the progress of any operation as a percentage. The operation could by anything, such as: a file transfer, data import/export, progress through a series of forms, etc. Obviously, the indicated progress is important, so I believe that we should massage the truth to make sure we don’t send the wrong message to the user.

For starters, let’s consider an operation which has more than 300 individual steps. It’s not until Continue reading