Who, Me? Surprise! It's Monday again! The weekend has evaporated once more, so pour a coffee, steal one of the expensive executive biscuits and tuck in for another tale of reader woe in The Register's Who, Me? feature.
"Paul" told us of his days working on a project that was running on an IBM System/36. A hefty beast compared to today's hardware, the machine succeeded IBM's System/34 and was usually programmed in IBM's legendary Report Program Generator (RPG) language. Launched in 1983, the machine lasted over 10 years before being succeeded by the AS/400.
The project, he explained, "was an automated process that would pop up screens and ask user[s] for input in order to continue." The process itself was already in place; Paul was just tweaking it for the customer's specific needs.
The help definitions were also there, "but I was trying to modify it just a little in order to add the bit of code I needed."
Dude, where's my laser?READ MORE
Paul didn't need everything, just certain pieces. He created some extra test code for his validation library, declared the project complete and shunted it into production.
For the uninitiated, accessing help on the System/36 required the user to hit the F1 function key. Users were trained that if they were stuck, pressing the F1 key would show some text to tell them what to do next. Simple stuff.
Paul was at another client when the inevitable phone call came in.
"Paul, my computer just told me to Bite Me. I am not sure what I need to do."
"Bite you? What are you talking about?"
"I was running the new process, and it popped up the screen to enter the value, and I didn't know what I needed to enter, so I press the F1 key to get help, and I got a message that said 'Bite me Bitch!' I don't know what I am supposed to do."
There was a pause as Paul doubtless experienced the bowel-emptying sensation all too many developers have felt when a forgotten bit of test code comes back to, er, bite them.
After gathering his wits, he instructed the confused user to hold fire until he could "look at it," apologised to the client he was working at and raced over to the site.
It took half an hour to reach the unfortunate user, who had left the message shining brightly on the screen and was flummoxed as to what she had done to merit such ire. "I started looking at it," recalled Paul, "and it was 'Oops, my very bad'."
Paul's mistake was a simple one. He hadn't wanted to copy over all the old code and had inserted the "Bite me Bitch!" into the old template for the help text so he knew help was working in the old part. "Then when you get to the new part, my new help would pop up like it was supposed to."
His plan was that he would simply put the newly created code into production, where the old Help still lurked. So everything would work as it always had.
Alas, he confessed: "I had named my template for my test help the same as what was in production. I had inadvertently copied the template over to production when I installed it, and shame on me, didn't test the old Help function when I was done."
"I did test the new," he added. "It worked fine."
His bacon was, however, saved by a tape backup he'd taken before the "bite me" file had been inflicted on the customer's System/36.
We're sad to report that Paul did not come up with an excuse involving a tortured "Byte Imperative Transfer Exception Move Execution in the Bit Integer Throttle Channel Handle" backronym, but instead opted for the simple truth and confessed his misdeed. The user, he recalled, "wasn't too mad [and] we both laughed because the computer told her to bite me."
"I did have a conversation with her boss about using the word Bitch," he remembered, "but it was more, I shouldn't use that language."
We've all seen the odd bit of embarrassing debug code rear its ugly head in front of a user, right? No? Just us then? What excuse did you come up to justify the suddenly potty-mouthed behaviour of an otherwise innocent application? Confess all with an email to Who, Me? ®