Debugging Devices, to be sure to be sure.

First things first, Happy St. Patrick's Day! I'm finishing work soon to partake in a wee drop o' the black stuff. Cheers to all youse ex-pats, and all youse back in Norn Iron.

I'm so pleased that my current job doesn't isolate me from my first love: programming devices. I've been working with a programming writer, on debugging some sample code for the documentation and came across a wonderful bug. The problem was this: the code didn't seem to work when they brought her device into my office, and yet she swore it had worked perfectly five minutes ago.

If you have done any debugging, in other words, if you have done any programming, you know this issue very well indeed. Chances are you made one tiny change that you were completely sure was insignificant, and later on something else apparently unrelated stopped working. You swear nothing has changed, but of course something has changed - you don't didn't think it mattered.

In this case, the programmer writer- who, by the way, can squeeze almost an entire application into the initialization parameter of a single for() statement - also promised she hadn't changed anything, and she was right. And yet, when she walked into my office to demonstrate her program, it had stopped working.

It turns out the application made use of Bluetooth, and by walking down the corridor into my office, her device had picked up an extra Bluetooth device within range. This caused an index counter to be one too many, and the program stopped working.

I live for bugs like this :-)