Unpacking from the pre-Christmas rush, as you might imagine our readers were running into
all kind of fun with packages and delivery and time warps. But first, proof that time warps
also afflict even web sites that ship only bits, not boxes.
Jonathan B.
wondered "What day IS it today?" when faced with this article.
Best of 2023: Modular Dependencies
by Remy Porter
in Best of…
on 2023-12-28
SQL is hard, but it's a lot harder when you're "clever". This tale highlights an… interesting solution to code reuse. --Remy
Many years ago, Valts and his spouse both worked for the same company. The company had an ERP system that started its life as a product back when ERP systems were novel and new. It was written in Delphi, and it was huge- so huge that the company needed to hack the Delphi linker to handle its size.
Well, their company got swallowed up by Initech, and after the buyout, things changed. Valts left, and a few years later so did his spouse. But they kept in touch with their colleagues, so it was over dinner that former co-worker Viktorija related the recent disaster she had stumbled across.
Best of 2023: Around the World (Around the World)
by Remy Porter
in Best of…
on 2023-12-27
Poor Sandra, this article is but one bad day in a slew of bad days dealing with geographic data and WTFs. --Remy
Now, one truth of geographic points is that they're bounded. We know, for example, that longitudes cover the range (-180,180), and latitudes are always (-90,90). Even if we change the coordinate system, it will still have bounds, as the Earth is a closed shape with finite boundaries.
Best of 2023: The Microservice Migration
by Remy Porter
in Best of…
on 2023-12-26
It's the last week of the year, and as per tradition, we look back at some of the best stories of the year. We start with this charmer, from February, a… little slice of brillant architecture. --Remy
"Why aren't we using microservices?"
It was an odd way to start a meeting, but it got Mr. TA's attention. TA was contracting with a client, and sitting in a meeting with their senior architects. TA and one of his peers exchanged a glance and a small eye-roll. They knew exactly what had happened: Alvin, the senior architect, had learned about a new fad.
Christmas in the Server Room
by Remy Porter
in Feature Articles
on 2023-12-25
It's the Holiday Season, so we're going to take a break from our usual content, and talk about holiday movies and TV specials. But we can't just completely abandon what The Daily WTF is about, so we're going to rate these holiday classics for the accuracy of their portrayal of the IT industry. We'll rate each on a scale of 5 floppy disks, where 5 has the documentary accuracy of Office Space.
A Charlie Brown Christmas
The story of A Charlie Brown Christmas focuses on the conflict between Christmas spirit and commercialism. The story contains no computers or IT professionals, and instead focuses on the annual Christmas play which the children are producing. In that regard, it's a story of a poorly scoped, poorly resourced project, with the actual responsibility for the project's success being left in the hands of unqualified children, while any sort of managerial oversight by adults is expressed as sad trombone noises.
I Sleigh Me
by Lyle Seaman
in Error'd
on 2023-12-22
Counting down to the end of the year, in prep for some
holiday or other, here are your penultimate five Error'ds
for 2023. I wonder if Debbie ever was a real person.
First, Dr.
Drk S.
has some odd network behavior to share.
"Sometimes inexplicable things happen in the cloud. Sometimes
you get alerts that just go away. Sometimes you detect curious
network traffic patterns. Sometimes it all averages out to nothing."
Radical Pricing
by Bobby T. Johnson
in Feature Articles
on 2023-12-21
Genesis stepped off the bus, splashing through puddles in neon-yellow rain boots, towards the old, rusted bay door of the "Radical Radiators" building. Her actual employer was "Radiation Programmers", which was either related to the heating company or had purchased the building cheap when the radiators went out of business.
Key in hand, she unlocked the door, walked past the "No Smoking" sign, and settled in beneath the buzzing fluorescent lights. Laptop on wi-fi, NPR murmuring in her headphones, Genesis settled in for her day: writing software to handle payment processing for fan fiction sites.
Vestigial Organs
by Remy Porter
in CodeSOD
on 2023-12-20
Matt inherited some C# code that reads from a JSON config file.
Benjamin doesn't have a lot of complaints about the project he works on. "There is," he writes, "no tale of daily woe." But even an otherwise healthy project isn't immune to WTFs.
For a variety of reasons, Robert's company needed to ship a small linux box with a USB ethernet adapter. The driver for said adapter was giving him some issues with their setup, but fortunately the driver was open source, so Robert could at least try and diagnose the problems.
In the file inst.c, he found this:
500 Miles
by Lyle Seaman
in Error'd
on 2023-12-15
Strictly speaking, closer to 700 miles than 500, but
if we really cared about precision we'd just go insaner.
Peripatetic
Jonathan
calls out an inappropriate use of lexical sort, as he wryly suggests he'd be
"Just popping over quickly to the nearby store which is 1200km away from me." But
he entirely missed also calling out the odd location of the Pargo Greatlinks cafe.
We've got you covered, Jonathan.
No Lifeguard in this Connection Pool
by Remy Porter
in CodeSOD
on 2023-12-14
Michael was debugging a system where the J2EE service would just… crash. It was running on a Windows host set to restart the service when this happened, so the outages were brief, but it was a serious problem.
He eventually tracked down the problem to a class called JdbcSchema, which is about 1,100 lines of homebrew database management code. It does "fun" things, like create extra tables in the database to track "foreign key metadata".
Monthly Totals
by Remy Porter
in CodeSOD
on 2023-12-13
Daniel spotted an array called $months in a PHP application. The data being stored in the array was some total of the sales of some commodity, for the past 5 months.
That much all made sense. What didn't make sense was how the array was indexed.
Secure Mentorship
by Remy Porter
in CodeSOD
on 2023-12-12
Sophia entered the software development industry through an "alternative" path. In Germany, they have a tradition of Ausbildung. Instead of going to university, you focus on on-the-job training with some classes mixed in. There are still exams and all the traditional academic trappings, but with one huge bonus: you're working closely with an Ausbilder- an experienced industry veteran who can show you the ropes.
Sophia's Ausbilder was named Tim, and at the company she was working at, he was widely hailed as a genius. He had designed their entire web system from the ground up in Java, which given that every other developer at the company only worked in Delphi, that made him a pretty unique talent. Everyone was pretty convinced he was brillant.
Padding the Amount
by Remy Porter
in CodeSOD
on 2023-12-11
Matt's co-worker needed to handle some currency values coming in as strings. As this was in C++, we're already in a fraught territory of having to worry about whether the callers and various APIs we're using handle C-style strings or C++ std::string.
Or, you can just mix-and-match in code and hope for the best, while having some interesting approaches to handling your inputs. That's what this developer did.
(Almost) Nought but Nulls
by Lyle Seaman
in Error'd
on 2023-12-08
For this week, it's mostly nulls. But first, Finn
Sami
provides a provocative hint that the LLMs might be
developing a theory of other minds. Says Sami:
"A coworker noted that when Copilot starts to have doubts
about Bing, this might be the real start of AGI." I've certainly
got my doubts about some of the Alleged GIs around.
A Nice Break
by Remy Porter
in CodeSOD
on 2023-12-07
Once upon a time, HTML had tags like <marquee>, which scrolled text across your page, and when combined with animated GIF backgrounds basically defined the Geocities aesthetic.
Since then, the HTML specification has been refined, and the choice has been made that HTML tags should (mostly) be about semantics- describing the structure of a page, the meaning of elements, and the relationship between those elements. It generally shouldn't describe the presentation of those elements (CSS should do that)- even though the semantics generally imply something about the display (paragraphs and divisions are block elements, for example).
Evaluating Perks
by Remy Porter
in CodeSOD
on 2023-12-06
Today's anonymous submitter works for a company that handles customer rewards perks. It's handling thousands of dollars of transactions a day, which isn't a huge amount, but it's certainly non-trivial.
Now, there's a conversion formula from points to dollars: points/100*1.7. Now how would someone implement this complex formula in PHP? Well, our submitter's predecessor did it this way:
TrUe Romance
by Remy Porter
in CodeSOD
on 2023-12-05
Mario's predecessor was writing some Java code that parsed textual input. Thus, it needed to be able to turn the string "true" into the boolean value true, but also needed to handle "True" and "TRUE".
Now, in Java, the obvious answer would be to use the equalsIgnoresCase String member function. if (value.equalsIgnoresCase("true"))…. I mean, obvious to you or me, anyway.
Capitalizing on Memories
by Remy Porter
in CodeSOD
on 2023-12-04
Gavin inherited some "very old" C code, originally developed for old Windows systems. The code is loaded with a number of reinvented wheels.
For example, they needed to do a case insensitive string comparison. Now, instead of using stricmp, the case insensitive string comparison, they wrote this:
A Brand New Bag!
by Lyle Seaman
in Error'd
on 2023-12-01
We've all been watching programming gaffes come and go, and they're almost always
some variation on a set of usual themes I've been trying to classify and name. But
today, we've got one for you that is amazingly, excitingly, fabulously novel! I'm
calling this one ecrash unless somebody's got a better idea.
Not to keep you waiting any longer than absolutely necessary, here's
Ian M.
with this week's winner:
"I don't even know how you do search like this, it's
somehow both way more complicated and way more
unsettling then it needs to be."