I’m Old, Part XV: The Bug Hunt

One of the things that happened routinely at Adobe was The Bug Hunt. When a new product was slated for release from the Applications department, QA would reserve a training room, arrange for the cafeteria to provide free sandwiches and cookies,  and host a bug hunt.

H96566k

In the bug hunt, employees who didn’t work on the product could sit down and try out this new version of the application and try to find bugs in it. They had means of classifying the bugs and would very often set up prizes for certain amounts of unique serious bugs found.

If the engineers were foolish, they would hang around and watch the carnage. When there was a bug hunt, word spread like wildfire and very often, engineers from one project would descend together to ruin the next few weeks for the engineers working on the software under bug hunt.

There was a lot of vengeance visited upon the engineers from one team onto another as a result. “Oh, remember that time when you ruined my life on the last release of Illustrator? Payback is a bitch.”

There was a release of Type Align for Windows. The product would let you draw out a Bezier curve and then fit the baseline text to that curve. Then it would give you a parallel curve to the top of the text and you could modify either curve and warp the letters.

I sat down and selected the Bezier tool and started sketching. And sketching. And sketching. I kept going and going, treating the Bezier tool as if it were the pencil tool in MacPaint until I had painted the entire screen black.

Why? Well, I’m a programmer and I guessed that they had set aside a chunk for memory to record points from the cursor for later fitting a curve to. I also guessed that the chunk of memory that they had chosen was big, but not ridiculously big, which was why I was sketching for a good 10 minutes.

What ended up happening was that I overflowed the chunk of memory they had set aside and the program started recording  points into the stack of the program. When I let go of the mouse, I took out the entire system. Blue screen. Booyah!

Another favorite of mine was for apps running on any version of MacOS before X. I would create a document and name it “^0” and save it. Then I would make a change to that document close the document or quit the app. The app would inevitably put up a box that said, “Do you really want to discard changes to ‘^0’?”. Or at least it would try. MacOS had a built-in tool for putting up these boxes with OK and Cancel buttons. To prepare the box, there was a toolbox routine you would call named ParamText(). You could pass in up to 4 strings that it would use to replace text within the next Alert box that was displayed. Wait – how would it know what to replace? Well, if your Alert box had the characters ^0, ^1, ^2, or ^3 in it, it would substitute the parameters into those slots.

Problem was that if your Alert text was “Do you really want to discard changes to ‘^0’?”, and your file was named ^0, the Alert code would substitute ‘^0’ for ‘^0’ and continue. Then it would substitute ‘^0’ for ‘^0’ and continue. And if you haven’t figured it out, the Mac would lock up, hard.

So even though this really convenient routine existed, you should never call it because of this problem. Yet, lots of engineers are either hurried or lazy or both and just use this routine to get the task done.

Adobe release an early WYSIWYG web page editor. It was from a new group that had came in from an acquisition. They had never encountered an Adobe bug hunt before. My goodness, it was like shooting fish in a barrel. On this particular bug hunt, they were offering gift certificates to Tower Records (remember them?). I ended up with a certificate for $150 for the bugs that I found. For example, I typed in a sentence and did the following (using keyboard short cuts):

Select All, Copy, Paste, Paste, Select All, Copy, Paste, Paste, etc.

It didn’t take long until I took out the machine. Suckers.

Then again, I took the same pain when Acrobat went into bug hunts.

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.