News: 1747034952

  ARM Give a man a fire and he's warm for a day, but set fire to him and he's warm for the rest of his life (Terry Pratchett, Jingo)

So your [expletive] test failed. So [obscene participle] what?

(2025/05/12)


Who, Me? Sometimes, a favor done for friends years ago can come back to bite you in a very corporate way. Welcome to another cautionary tale from the files of [1]Who, Me?

Today's annecdote comes from an event at the Centre for Computing History in which a recount of swears and shocked suits was told by someone we'll Regomize as "Bob," for that is not his name.

Our story takes us back to the white hot heat of the Microprocessor Revolution tm in the early 1980s. Bob was a wet-behind-the-ears hacker, working in a small team involved in the creation of some novel chippery initially destined for the company's own products.

[2]

"The team were all friends," he recalled, "very informal with lots of questionable banter, and lots of pub-time together."

[3]

[4]

Bob was tasked with writing test cases for the new chip. He came up with many little test cases to check its nooks and crannies for odd behavior.

"The tests," he said, "mainly reported nice polite happy messages because the device mostly worked as the specification had said, such as the rather tautological "*** TEST PASSED OK ***"

[5]

"But if the test failed, the informality of the team meant that messages saying "--- <module> F**KED ---" were the order of the day.

"Remember this for later!"

All went well; the new devices worked fine after a couple of iterations and the test suite was deemed useful and correct. Bob moved on within the company, still writing machine code and C for the same devices, before eventually leaving for pastures new.

[6]

In the meantime, that new chip design spawned follow-ups and turned out to be useful for other purposes than the company's own products. A spin-off occurred, although the new chip company was more Chipzuki than Chipzilla in those days.

And Bob's test suite? Still there. In fact, it was occasionally shipped to customers. However, since the chips all worked fine, no questionable messages emerged until...

"One customer insisted on re-implementing things to take advantage of their specialization," Bob told us.

"They did a good job, but one module was problematic; inevitably it was one of the ones with a sweary report as above. Worse, said customer was an older, US-based company, very into their suits [*clothing, not law-] and serious."

Bob was long gone by this point, but he continued to enjoy a drink and gossip with those who were still around. "And they found what followed hilarious!"

[7]Teens maintained a mainframe and it went about as well as you'd imagine

[8]What the **** did you put in that code? The client thinks it's a cyberattack

[9]Static electricity can be shockingly funny, but the joke's over when a rack goes dark

[10]To avoid disaster-recovery disasters, learn from Reg readers' experiences

"Apparently, the US company was rather upset, and a manager in the UK company got wind of this, and sent an all-developers email round condemning this lack of professionalism, the offence caused, and demanding to know who was responsible," he recalled.

The finger of blame pointed at Bob... who had left years ago. In fact, he'd never even worked for the chip company.

"It's all a lesson about using software developed in one context far beyond its shelf-life, and in a wildly different context, where customers can see, and image matters," Bob remembered.

"At least I was far enough away to laugh at it when it finally hit the fan," he wrote, "and 40 years later I'm still dining out on it, occasionally literally."

Ever had an angry email about a favor you'd long forgotten about? Or been that person wondering exactly what the programmer of Christmas past was thinking? Send an email to [11]Who, Me? . ®

Get our [12]Tech Resources



[1] https://www.theregister.com/Tag/Who,%20Me?/

[2] https://pubads.g.doubleclick.net/gampad/jump?co=1&iu=/6978/reg_software/front&sz=300x50%7C300x100%7C300x250%7C300x251%7C300x252%7C300x600%7C300x601&tile=2&c=2aCHGv0Bn7zjH6q00VzGTmgAAA5A&t=ct%3Dns%26unitnum%3D2%26raptor%3Dcondor%26pos%3Dtop%26test%3D0

[3] https://pubads.g.doubleclick.net/gampad/jump?co=1&iu=/6978/reg_software/front&sz=300x50%7C300x100%7C300x250%7C300x251%7C300x252%7C300x600%7C300x601&tile=4&c=44aCHGv0Bn7zjH6q00VzGTmgAAA5A&t=ct%3Dns%26unitnum%3D4%26raptor%3Dfalcon%26pos%3Dmid%26test%3D0

[4] https://pubads.g.doubleclick.net/gampad/jump?co=1&iu=/6978/reg_software/front&sz=300x50%7C300x100%7C300x250%7C300x251%7C300x252%7C300x600%7C300x601&tile=3&c=33aCHGv0Bn7zjH6q00VzGTmgAAA5A&t=ct%3Dns%26unitnum%3D3%26raptor%3Deagle%26pos%3Dmid%26test%3D0

[5] https://pubads.g.doubleclick.net/gampad/jump?co=1&iu=/6978/reg_software/front&sz=300x50%7C300x100%7C300x250%7C300x251%7C300x252%7C300x600%7C300x601&tile=4&c=44aCHGv0Bn7zjH6q00VzGTmgAAA5A&t=ct%3Dns%26unitnum%3D4%26raptor%3Dfalcon%26pos%3Dmid%26test%3D0

[6] https://pubads.g.doubleclick.net/gampad/jump?co=1&iu=/6978/reg_software/front&sz=300x50%7C300x100%7C300x250%7C300x251%7C300x252%7C300x600%7C300x601&tile=3&c=33aCHGv0Bn7zjH6q00VzGTmgAAA5A&t=ct%3Dns%26unitnum%3D3%26raptor%3Deagle%26pos%3Dmid%26test%3D0

[7] https://www.theregister.com/2025/05/05/who_me/

[8] https://www.theregister.com/2025/04/28/who_me/

[9] https://www.theregister.com/2025/04/14/who_me/

[10] https://www.theregister.com/2025/04/01/on_call_dr_lessons/

[11] mailto:whome@theregister.com

[12] https://whitepapers.theregister.com/



Been there, done that...

big_D

I've worked on projects where tests were included in the final code that "could never be reached". If that part of the code was ever reached, it meant heavy corruption of the source data had caused the code to execute an illegal branch that should never ever be executed.

Therefore the error text was something along the lines of "you f'ed up roally, you useless piece of..."...

Same thing, after I left the company, somebody changed the code and they made a mistake in the logic and the code started being foul-mouthed!

Re: Been there, done that... who hasn't?

MiguelC

As I've recounted here before, I was once tracking a mainframe bug report (a bit over 25 years ago) and got a message on my terminal stating that "if you reached this point you're fucked".

Although the original coder was no longer working with us, I eventually confirmed his prescient statement.

Re: Been there, done that...

Michael H.F. Wilkinson

Any code "that could not be reached" will be.

Just another variant of Murphy's Law

Christoph

Nearest I came was when a client wanted the source code, and I had to give it a quick once-over for any non-diplomatic comments.

big_D

Yes, I've been through and done that on a few projects, also for error messages when they went from test to production. The one above was internal and went into production after I left, and nobody sanitized the error dialogs!

Good to keep a sense of humour

Anonymous Coward

We got a code drop from a supplier, and one of our engineers was looking through it to see what was new. He found the line 'printf("Fuck me, no memory left!\n")' and sent a note to the team saying "maybe we should change this?".

He got an immediate reply from our manager, saying "absolutely, it's not properly internationalized!"

Re: Good to keep a sense of humour

Elongated Muskrat

Quite, it should at the very least be printf(ErrorMessages.FuckMeNoMemoryLeft);

Re: Good to keep a sense of humour

Anonymous Coward

"not properly internationalized!"

# include

printf ( _("Fuck me, no memory left!\n"));

Ça suce, plus de mémoire! # LC_MESSAGES=fr_FR

Oh Dear, we appear to have exhausted memory! # LC_MESSAGES=en_US

Elongated Muskrat

For the avoidance of this very situation, I have long since perfected the art of highly sarcastic euphemisms in comments, usually in response to the naïveté of one of my predecessors. Every now and then, I see one of the other devs chuckling away to themselves when they read one of these amongst the thousands of lines of long-forgotten code.

vogon00

This is anecdotal, but knowing the source I believe them :-)

Source code for a new 'build' of telephone exchange code (Running nationwide!) was shared with $CUSTOMER. Their review process found a comment along the lines of 'How the f**k did I get here? Never mind, I'll just call to TRAP). Needless to say, 'trap' was a very bad thing :-)

Hilarious!

Michael H.F. Wilkinson

Nothing sweary involving words (although some expletives were heard in my office), but I once got a weird error from a NAG (Numerical Algorithms Group) library routine for solving ordinary differential equations (ODEs). In this case I was using a routine with the perfectly sensible name of D02BAE (FORTRAN with its limits of 6 characters for identifiers at work). I was running several instances on the 32-processor Cray J932, and got an error message:

IMPOSSIBLE ERROR

Apparently, a negative value was found at some point in the loop where negative values should be impossible. The cause was fairly simple: FORTRAN doesn't deal with the notion of scope well, and data frequently needs to be shared through "common blocks". Apparently, D02BAE used some other elements of the NAG library, and shared data in a common block. However, in this case a single named common block was being shared by 16 different instances of D02BAE and its helper routines. so different instances of the routine were overwriting each other's data. They had forgotten to compile the library on our Cray J932 (long since dead) with the --taskcommon switch, which makes private copies of common blocks. There was no workaround for that (AARGH), so I wrote my own ODE solver.

Re: Hilarious!

GlenP

I had the reverse recently, albeit fairly trivial. I was using an external control chip for some LEDs in a multi-threaded application on a Raspberry Pi. The results were just strange, things not happening in the right order, LEDs being off when they should have been on, etc. It turned out the library supplied didn't store the state of the chip in a common variable, it simply read the state before writing so if two processes ran at the same time (which they typically would at start up) you'd get Read - Read - Write - Write and all sorts of mess ensuing.

The fix was the same, write my own routine that properly handled the multi-threading.

Re: Hilarious!

KittenHuffer

You have a problem so you decide to use threads. you problems.2 have Now

Re: Hilarious!

Anonymous Coward

Also not sweary, but a company I worked for acquired another company who had an NT 4 cluster. When it was ripped out and shipped to our office, it didn't work. I was asked to look at it. When I tried to start the cluster service it just popped up an error dialogue with the helpful message 'September'.

No Comment!

Headley_Grange

In the 90s I managed products with embedded code and the company discipline around comments was lax because the customer never got to see the source. We had a particularly awkward** customer QA, Pete, on one product and he could be a right-royal pain in the arse, which was frequently referenced in comments along the lines of "Pointless trap for an impossible error to keep the Pete-the-f***ing-pedant happy", and so on. What we didn't know is that the contract had a customer code-review option in the contract which Pete called up as part of final acceptance and we handed it over without even checking it ourselves! You can imagine the rest. No one was formally disciplined cos they'd have had to put the whole of SW engineering on a written, but stern words were had and it did result in a change in SW procedures on comments.

** i.e. good.

Don't look too closely...

Sam not the Viking

CAD was very new..... Our designers were tasked with creating a CAD drawing of the entire factory and offices on the new system to 'demonstrate its capabilities'.

Somewhere, in the corner of an office on the second floor at a scale unimaginable, Albert's caricature sits with arms folded in the classic pose as he admonishes a lowly apprentice.

Allegedly.....

I can neither confirm nor deny...

GeekyOldFart

...the presence or absence of vituperative error message in my code when something that should never happen occurs, usually due to the input data being so F-ed it deserved its own onlyfans account.

Buono estente

Roger Lipscombe

We once had a client ask "who is Chris Waddle and why is he in my network traces?"

It was ... tricky ... to explain. Here goes:

Why? Because Wake-on-LAN packets have a lot of FF in them, there was a bit of extra space in the ethernet frame, and we'd been watching far too much of "The Fast Show", specifically the "Chanel 9" skit.

I tried to be diplomatic

Will Godfrey

I was the person who made final sanity checks before the code was released to the great unwashed, and spotted a few 'interesting' comments in the latest pull request, so I replaced them, with an added commit titled "formalised some comments".

I got a somewhat embarrassed email from one of our best developers apologising profusely.

Anonymous Coward

Teachers fill in end of year reports, I proof read them for grammar, spelling, wrong pupil's name or gender used when copy and pasting comments etc.

I usually end up doing this late at night, so sometimes I miss things.

Also clearly working late at night, and sometimes after a few too many adult beverages, are the teachers who fill in these reports.

Usually the odd slip up is fine, but you only need to send one sweary report to a parent who happens to be a bishop for the shit to hit the fan, as I found out the next morning, and the teacher responsible found out an hour later.

I kept my job after stern admonishments, the teacher wasn't so lucky...

Similar but with a car

Anonymous Coward

Back in the day, I got hired by a new employer. As the new job was a very long way from my previous the company was kind enough to arrange for the car I had ordered to be available before I formally started work so I could find somewhere to live and move my meagre collection of belongings to #NewCity. IT was awash with high performance cars in those days and I took full advantage of this to bag a car that no spotty 20-year old had any normal right to be in charge of.

Dutifully collected the car and drove it home, proud as anything. Took it back out that evening to show off to my mates and my lack of experience shone out: I gave it far too much power coming out of a bend and ran out of road. Upshot: damage to the passenger door and rear quarter thanks to a metal barrier and a smashed-up alloy wheel rim due to violent impact with the curb. 156 miles on the clock and my job didn't start for another two weeks! Fearing getting fired before I'd even started, I had the brother of a friend work his magic: he bashed the door back into shape, filled the dents and resprayed the whole side to make it all blend in. One new wheel from the main dealer and the job's a good 'un. If you looked at it from the rear quarter, it was obvious the door wasn't aligned - but I always parked it nose-out in the company's car park and got away with it. On straight roads, it had a tendency to run towards the middle of the road so I suspect the wheel damage was more serious than we allowed for.

The job didn't really work out and, only a year later, I was safely working elsewhere. My car, still on its three-year lease, got used as a 'pool car' so any number of people borrowed it and its oddities were never really noticed. Thankfully, it got stolen shortly before the lease expired - which was a weight off my mind!

/Anon obviously.

Live within your income, even if you have to borrow to do so.
-- Josh Billings