kode vicious

are often hundreds, and mark the ones I think might be related to my bug. I then tweak them one by one until I get a result. While this is a tedious process, it has been the one I’ve seen that has worked best.

Often you will not have a good way to interact with the hardware other than an already malfunctioning device driver. As devices have become more complex, vendors have released test and configuration programs that can be used to talk directly to the device—for example, over the PCI bus. If your hardware has such a program, and it works, then you are truly blessed. If, on the other hand, it does not come with such a program, there is a set of tools you can use to debug PCI-based devices, PCI Utilities, described in the accompanying sidebar.

PCI Utilities have been ported to several operating systems and something similar may exist in Windows, but, happily, that is not a form of pain to which I have been subjected.

If none of these yields results, and you still have to “just get the thing working,” it’s time, alas, to call for help. The quality of the help you can get from a vendor seems to be linearly related to the price of the device. A cheap device usually comes from a low-cost producer who does not have the money to keep high-quality engineers on hand to help with problems, whereas an expensive

device is more likely, but by no means guaranteed, to be produced by a company with experienced engineers. If you’re specifying a device for a project at work, pick the one from the company that seems to have the better engineers. All devices have problems, but the ones that get fixed are the ones that have good engineering resources behind them. Cheap goods are cheap goods, in the end.

Once you reach a field or customer-support engineer, you need to be nice to them. I know, you’re thinking, “What have you done with Kode Vicious?”, but it’s true. Screaming at people and telling them they are idiots because they didn’t consider your personal corner case is not the way to get your bug fixed quickly, even if you work for a large corporation and you have your CEO calling their CEO every day for a fix. You will need to work with this person or these people at least for the duration of your bug, so it’s important to deal with them politely and professionally. Go back and read that again—I’ll wait.

Lastly, you need to take good notes on the problem. There is nothing that is more frustrating than a bug report that says, “It’s busted”—and don’t dare laugh, I’ve seen more than a few bug reports that say pretty much that. You need to be able to say how it is busted, when it was busted, if it stays busted, how to get it into the busted

The Right Language for the Job

A Survey of the Language Landscape

Domain-specific Languages

Avant-garde JavaScript

PLUS

An Interview with Van Jacobson

Coming Soon in Queue

8 November/December 2008 ACM QUEUE

rants: feedback@acmqueue.com

References:

mailto:feedback@acmqueue.com

Archives