Jump to page content

Bug of the moment 2007-04-23

There are various applications available that feel like the programmers have never actually used their own software, even when you would expect them to be using their software in their own homes.

I don’t imagine anyone would deny that it’s important to test and review software. Using our own software as developers is a good way to see if it lives up to our expectations. When it comes to software written in REALbasic, however, this issue takes a different turn. Unlike traditional cross-platform development, each platform’s REALbasic IDE can compile to every single target platform. This meant that I was able to build for Mac OS X and 32-bit Microsoft Windows long before I had a computer that could run either platform.

While I certainly do run most of the software I write (bespoke tools excepted), I only run my own software on the platforms that I possess. REALbasic 3’s Windows support was so abominable that in order to port HTTP Werkzeug to Windows, I had to dial into siggy’s computer in New York to do test runs over VNC.

I’ve had a lot more (unjust) faith in REALbasic’s Mac OS X support, while remaining depressingly ignorant of the differences between Mac OS 9 and X. Colour Selector, then, had very little testing in X, and has wound up with a lot of very strange bugs.

For example, dealing with the Help and Apple menus cross-platform fails in X, leaving you with two empty Help menus:

You also have to watch out for overlapping buttons, although this is a flaw in the Mac itself due to the strange way it draws tons of white space around controls on top of whatever else is there:

Designing for X involves keeping all the buttons separated far enough that they don’t tread on each other.

The following one is odd. By mistake, the image I embedded into the readme contained an alpha channel:

Under 9, the image displays correctly, but under X, the alpha channel is converted to 1-bit first. SimpleText has no problem displaying the image, but Photoshop and GraphicConverter both suggest that the image has no alpha channel. Nevertheless, there is one, and TextEdit in X fails to interpret it correctly. The “Read me” heading also appears in the completely wrong place, suggesting a very different rendering approach to SimpleText. Mr Anonymous will also deeply appreciate TextEdit’s … spelling “correction”.

The following bug is present in all my X applications – the final line of a simple dialog box does not show up:

The above example is relatively harmless but important information can of course go missing.

I did think that I had the text preview panel working–as it looks perfect in Mr Anonymous’s old Mac OS X screenshot, but in Tiger, the control sizes are mismatched and the font size doesn’t fit any longer:

A more esoteric bug of course is Unicode font names. REALbasic 3 has rather limited Unicode support and, as such, Unicode font names are not supported:

The program has other bugs, including the window failing to draw in, and problems with the colour sliders. One of the most annoying bugs is in Windows: hue/saturation/value mode is distinctly broken and can prove unusable.

Yet, I don’t recall any of the above illustrated bugs being reported. When people systematically fail to report bugs, you ask yourself, are they discarding my program as substandard, or do they not notice or care, or (more likely) do they use it for what it’s good at yet routinely curse it for its failings? It’s hard to tell. The issue becomes more significant as the bugs themselves become more sigificant, as is the case with HTTP Werkzeug.

As both a computer user and a software developer, I have come to realise the importance of software being created by appropriate people: the right men for the job. Too much software is created by people who lack the understanding and dedication to accomplish the task correctly, or are controlled by management who are too greedy and too stupid to manage programmers and thus drive the quality of the software into the ground.

Yet, all too often, the program that we need doesn’t exist and as such, we’re forced to write it for ourselves. I make no pretentions that I am a good programmer or could ever be, or that I have anything close to the right tools for the job, but I have to make the best with what I am and what I’ve got. I’ve written a number of programs for friends and acquaintances from chat rooms and e-mail lists (including the original Colour Selector), but most people (myself included) are not fortunate enough to encouter anyone willing to write code on their behalf. Your only options are to give up, or attempt to write the program yourself, no matter how much of a disaster you will spawn in the process.

Posted 23rd April 2007 – Comments and questions?