For some godawful reason, people like to explain object oriented concepts via analogy to biological taxonomies. I suppose it's easy to understand an "is-a" relationship (a cat is a mammal), but the down side is you get a complex and increasingly leaky analogy that over-emphasizes the importance of inheritance. That's not to slight Alan 's choice of using it to anoymize today's code. It's just a br
12 Oct 2026Curious Perversions in Information Technology
Latest posts
Matias shared a standard sort of flubstituted fail-merge error'd; not really egregious, just routine. "I am {{emotionType}} to hear this." And another mail-not-merged from Reinier B. "When the package from [SELLER] seemed to be lost in the mail, I was very [EMOTIONAL_STATE] with the refund of [AMOUNT]. I can now buy another [ITEM] instead." Dave A. didn't care for this mail flub, though it's hardl
9 Oct 2026Robert G sends us a WTF from the outside, but I think we can come up with some hypotheses about what actually happened. Robert was traveling by train. For complicated train reasons, the car he was seated on was not actually scheduled to continue with the train he was booked to ride, the replacement car missed its scheduled arrival, and the result was that Robert was left at a station needing to re
8 Oct 2026A junior dev on the team had a simple question: in Java, how do I correctly read user input from the CLI and act on it? Now, we can wonder about a junior dev not having such basic knowledge, but maybe they're new to Java specifically. Who knows. But Robert 's team has a senior on it who "likes to mentor". This senior has strong opinions about how to write software, extreme confidence in those opin
7 Oct 2026Many years ago, DJ got his start doing odd web development jobs for a low hourly rate. He was only 19 when he got started, and what he lacked in experience he made up for in being cheap to hire. As I said, that was many years ago, and he has since learned a lot. But he still has some code from his very first "someone paid me for this" project. This particular function needed to pick a random bit o
6 Oct 2026Today's anonymous submitter sends us some legacy Java code. The task is this: check what time it is. And fortunately, even in the older Java datetime libraries that were terrible , this was an easy task. You just needed to do something like new Date() , which constructs a date time object set to the current time. getTime() picks off just the time portion. Or, you could do this. Timestamp current =
5 Oct 2026We have for you this week a full set of the Error'd we most love to hate: the perverse password policy. An anonymous reader drops this, with little to say except to note "Speciaal passwords". Evidently they supplied a password which satisfied each of the five green critera, but still it was rejected. It would be nice to know where this offense originated, Intrepid Michael R. explains "note: Handy
2 Oct 2026Today's anonymous submitter shares with us the function their company uses to validate authentication tokens. public bool IsTokenValid ( string token ) { //TODO return true ; } This is running in production. So that's fun. The user they've authenticated as is tracked separately at the start of their session, which makes it at least marginally harder to pretend to be someone you aren't, but for aut
1 Oct 2026Fritz 's team needed to see if one point was within a certain distance from a center point. You or I would likely try and answer this question using a simple distance calculation, since that's the question we're trying to answer . But what if you didn't understand distances at all? Then you could write this little piece of genius. private bool IsWithin (Point point, int radius) { for ( int x = -ra
30 Sep 2026Nikolai M 's team had a flaky CI/CD build. About 0.5% of the time, one of their tests would fail: frequent enough to be annoying, but not so frequent that it motivated management to assign anybody to investigate. Nikolai eventually dug in, taking the initiative. Microsoft's implementation of UUIDs calls them GUIDs. The GUID is, per the docs, really just a wrapper around UUID algorithms, and suppor
29 Sep 2026Our submitter Tim C. is back as his bureaucratic nightmare continues. Read Part 1 here . After I'd thrown the WTF Exchange (WTFX) for a loop, they managed to eventually right the ship. But then I faced another hurdle: I had run out of disk space. The software was not live, we were still developing the customer-specific customisations, but I was a bit stuck without a few more gigabytes. The exchang
28 Sep 2026I know it's not nice to mock mistranslations, but would you believe we're laughing with them, not at them? In response to recent criticism of the difficulty of identifying precisely what is at issue, two of our readers have chosen to highlight the offending element. Thanks for saving me the trouble!" "Bad Dutch translation, or is't?" asketh Mike V. "I visited the Dutch Dell site https://www.dell.c
25 Sep 2026Tim inherited a fairly antique Visual Basic application some time back. Yes, Visual Basic, not VB .Net. The application is old enough that we might consider it "vintage" or "historical"; it certainly dates from before the millennium. But it has its own unique approach to handling historical dates: mnYear% = CInt ( Year (vntDate)) If mnYear% < 1000 Then msYear$ = "0" & Trim$( CStr (mnYear%)) Else m
24 Sep 2026Our submitter Tim C. shares his tale of an especially brutal culture clash: I had co-founded a software startup doing stock market surveillance. In the early 2000s, the WTF Exchange (WTFX) was a major customer of ours. We were one part of a major project of theirs, a complete overhaul of their trading engine and IT systems. Compared to our other clients, WTFX was quite bureaucratic. There seemed t
23 Sep 2026David C sends us a true confession. For my job, I write C++ code as if it was a scripting language (long story) to produce programmatic animations for videos. Given that these are "write-and-run-once-and-never-look-at-it-again" programs, I tend to not try as hard to make my code good. But once I wrote this line of code, I had to take a step back and reevaluate my life choices. fade_out (scene, len
22 Sep 2026