Ellis Morning
Author | Editor

Ellis Morning at The Daily WTF


The Daily WTF logo

I have a degree in Computer Science. During my corporate tenure, I fought in the trenches of Tech Support, occasionally crossing enemy lines into the Business Analyst and Project Management spheres of war. When I was offered the chance to write for The Daily WTF, it seemed like a natural fit, a place where I could give vent to all the IT-related atrocities I'd witnessed over the years.

Now I don't just write—I edit as well! And I'm always looking for new submissions.


Below, you'll find every article I've written to date.

2022 | 2021 | 2020 | 2019 | 2018
2017 | 2016 | 2015 | 2014 | 2013 | 2012


2022 Articles


Court-Martial
Fall in and present proof that your code didn't mess up our jets, maggot!

The Biased Bug
Your computer knows who's typing!

A Basic Print Algorithm
If only one person in the whole organization has experience with something, that doesn't make them an expert.


(Return to Top)


2021 Articles


Unseen Effort
Hard work is always rewarded? Well, maybe not quite the way you were expecting.

Worlds Collide
When sane and insane programming practices meet, sane tends to get annihilated.

Demo Most Dear
Sometimes the client who weasels out of paying their fair share gets their just deserts.


(Return to Top)


2020 Articles


A New Bean
Toss new developers into the deep end, and they're sure to swim ... into a hurricane.

Slow Load
Those long loading screens you sit through are always necessary, right? Right?

Bidirectional
Programmers learn how to swap variables early on. Not all of them retain this precious lesson.

Science Is Science
Alas, smart people are not interchangeably smart.

Faking the Grade
Fake it until you make it flunk night school and lose your job.

A Sterling Interview
You probably did better on that interview than you think, so don't bring up your total lack of integrity, OK?

The Renegade Datacenter
Critical banking infrastructure resides on a basement floor. Who's surprised?

Painful Self-Development
In the corporate world, it takes little to ruin even the best of intentions.


(Return to Top)


2019 Articles


Lying Metrics
Before patting yourself on the back over something that mysteriously improved, maybe go figure out WHY it improved.

The Support Game
Working Help Desk can be much more amusing than you ever imagined.

Once Bitten, Twice Tested
If you wonder why QA test plans include ridiculous scenarios, wonder no more.

Redesign By Committee
I invite you to relive that painful moment when you learned how the Business World really works (or doesn't).

Keeping Busy
At the end of the day, it's not about results. It's about keeping you out of my hair.

The Hardware Virus 2019 Classic WTF
A chilling tale exploring the dark and sinister world of infectious office supplies.

Greek To Me
You're gonna need Zeus to pull off a miracle!

Powerful Trouble
Try sticking with the specs from now on!

Suffer Not The Virus To Live
Thou shalt do as thine "IT Guru" commandeth.

Portage and Portability
This employee wants to be able to take his computer from place to place. How unreasonable!

The Three-Month Itch
Having a vision is easy. Sticking it out is the tough part!

Crushing Performance
Another pressing performance issue.


(Return to Top)


2018 Articles


Paper (Size), Please
Why not rely on a local peripheral device to keep your application humming? Well, if you're a global company, that device might not be so "local."

Westward Ho!
We'd better figure out why our customers are heading west before they die of dysentery!

Rectangle Marks The Spot
What is your bounding box of origin?

Reproducible Heisenbug
I can't figure out what's wrong. The error only occurs when logging is disabled!

Just One More Point
A reminder that behind every long load time, there may well lurk a stupid decision.

Shiny Side Up
The next time you're on a tech support call and you're being asked really dumb questions, remember that it's because of folks like these.

Why Medical Insurance Is So Expensive
We haven't had a really good "office from hell" story in a while, have we? Buckle up.


(Return to Top)


2017 Articles


Titration Frustration
When you're writing if-clauses that scroll sideways for 3 or for 4 screens, that's your first clue that you're doing it wrong.

An Array of WHY
Gargantuan effort, humdrum result.

Jumped The Gun
This Boss from Hell du jour can't even remember what day he fake-outsourced our poor protagonist's job.

10001 Problems
Your platform crashes intermittently. The log files say 10001 and nothing else. Where the heck do you go from here?

RAM On Through
Memory considerations are still a thing with embedded systems. Who knew? /s

Cases, Cases, Cases
This article just kept copying and pasting. Now we have quite the case of repetition!

Credential Helper
Welcome, random user. Here are the keys to the kingdom!

Plurals Dones Rights
Bad language assumptions are also hilarious language assumptions.

I Need More Space
Some people have ... different ideas about memory management.

Hard Reboot
Oh dear, a connection error! Shut. Down. EVERYTHING.

The Wrong Sacrifice
Ritual goat sacrifices simply do not fix multithreading issues.

My Machine Is Full
It's unwise to refuse tech support when you're dangerously stupid.

The Tokens That Wouldn't Die
The secret to near-immortality? Get your variables mixed up.

The Automation Vigilante
When there's no budget for common sense, you have to take matters into your own inexperienced hands.

Clean Up Your Act
This code sample is SFW—I think. Let's check this tiny, static array of cuss words to be sure!

Predict Correct
Wherein we discover the true cost of a poorly-thought-out cost-savings strategery strategy.

Mapping Every Possibility
The moment you're loading MAC addresses and ports into arrays is the moment things have gone horribly wrong.


(Return to Top)


2016 Articles


Pulling Teeth
You're about to inherit an app you know nothing about. It's a race against time to learn the details before the subject matter expert walks out the door forever!

Repeat Delete
You know the saying: it ain't over 'til you've run the DELETE query a bunch of times for no good reason.

Dollar Dollar Dollar Dollar Underscore
A variable naming convention that'll make you cry. $_$

The Case of the Missing Signal
Whenever you think you've seen everything as a support tech, you are always wrong.

Non-Threading
It's funny what people will go through to avoid multithreading.

Every Possible Case
This code sample might not have enough conditionals and try/catches. Maybe we should throw some around the whole article, just to be safe.

It Takes One Function
One seldom thinks to himself, "Wow, some case statements would've been a lot better," but here we are.

"Performant" ""Development""
Be grateful no one's forcing these "performance" ""improvements"" upon your code base!

It's Dark In Here
A hopeful young developer is about to explore a fresh new level of hell.

A Comment On Comments
In which we learn that all programming comments have the potential to be hilarious, insane windows into bygone eras.

It's Log, Log, Log
A delightful log base 2 implementation. I didn't realize you could sort integers by weight, did you?

Not A Fan
An IT staffer's worst nightmare: the clueless person who insists on taking matters into his own hands. I wonder how many of these people also go boldly tinkering through the body of their car whenever it makes a noise they don't like?

Dumb's The Word
It's often the simplest requirements that end up with the most WTF implementations.

The Mainframe Database
Here's what happens when someone with a COBOL-hammer sees a SQL Server-shaped nail!

What A Load
This thing's got PHP in its CSS! Or is that CSS in its PHP? Never mind, just why would you ever mix these things?!

Tough Cookies
Proof that high-traffic websites have more to lose when they promote (bizarre) code into production that wasn't properly load-tested.

The Pagemaster
When the user experience looks like a hacking attempt, you know something's up.

Widgety Gadgety Boo
A little warning box isn't displaying. Well, this should only take a minu—WHAT AM I READING?!

Website Hacker Best of 2016
Is a dangerous hacker on the loose? No, it's just a QA guy who doesn't know about modern developer tools.


(Return to Top)


2015 Articles


The Excel Expert
Complex issue? Check. Insufferable user? Check. Easy solution that support tech gets yelled at for? You better believe that's a check.

Mid-Stream Switch
I'm of two minds about this code. And so is the programmer!

Your Recommended Virus
FW: fw: fw: Fw: fw: How lax email forwarding rules can make YOU look dumb!!!

Just Following Instructions
With the ability to create bigger and better idiots, the universe will always defeat the support rep who's just trying to provide the clearest documentation possible.

You're Not My MIME Type
Because trusting the MIME type in the file header is too hard. Obtaining a fix is even harder!

'Tis the Season
It's time to get festive and fix a few things around here! Well, one out of two isn't bad, I guess ...

We're All Admins Here
There's nothing quite like that feeling of knowing you're about to introduce a whole slew of problems, and being forced to do it anyway.

Finally Clear
Are finally blocks really indeterministic? Someone with 15 years of Java experience sure thought so!

Take A Bold
ProTip: If you want to put code on your marketing materials, check with a coder first! Or, prepare to be BOLD.

Sea of SQL
I once had a boss give me 16 pages of PL/SQL that looked like this, asking me to figure out what it did. There were not enough pencils in the world to stab into my eye sockets.

Open And Shut
This WTF code sample makes insanely excessive use of write operations, because file I/O is safe and fast! Ami(w)rite?

Failure is OK
It's OK to write fail-tacular code as long as you leave a comment.

A Petite Change Request
Just add a new field to the screen. How hard could it be? Always harder than you think!

Dating Woes
Dealing with dates and times programmatically is tough. These many code samples are just the tip of the iceberg when it comes to date-related programming atrocities!

Barely Broken In
A typical Arkansas problem, with a typical Arkansas solution.

Common Sense Not Found 2018 Classic WTF
When's a server redirect easier than fixing a broken link? When the developer's lazy!

Stalled For Time
An IT story with a toilet involved. Core dump? Or disaster recovery?


(Return to Top)


2014 Articles


The 8K Bug
In which Dreamweaver destroys entire cities ... or at least paralyzes a company's web developers, thanks to one head-scratcher of a bug.
This article was shared to Reddit! The 8k Bug - The Daily WTF

A Stupid Comment
You may want to think twice about initialing code comments, lest someone copy and paste your initials into files you never worked on.

The Technobabble Prescription
Is it hackers? Aliens?! Who could possibly be typing all this garbage on my—ohh.

The Data Migration
Assignment: move data into DB2.
Reality: copy data from COBOL-based flat files to plain text to Oracle to plain text to DB2.
Shockingly, it doesn't go so well.

Don't Speak
Welcome, new hire! You're not allowed to talk to the guy with answers. Good luck!

Manual Automation 2016 Classic WTF
We can code it the right way, or we can code it the wrong way and charge thousands of dollars to fix it!

Flawless Compilation
Wherein we learn the subtle, tragic difference between "It compiles" and "It works."

Secure Development
We expect you to meet all your deadlines—but if you do any development in the secure development environment, you're fired!
This article was shared to Reddit! [WTF] Secure Development: "What's a Java?"

Spool Me Once
Witness the horror of the critical support ticket you can't fix, but are somehow still responsible for.
Based upon events that may or may not have happened to one (1) Ellis Morning. Names changed to protect the scapegoated!

Translation Server Error
Circuit board over. Corrosion = very yes.

The Killer Product
Is there anything better than finding out a madman's in charge of your next IT project? Traveling several hundred miles to find out in person, maybe.


(Return to Top)


2013 Articles


Long Distance to Valid
There's a time to be customer-first, and there's a time to explain to people that they have no idea how telephone numbers work. And not to toot my own horn or anything, but this is quite possibly the greatest conference call portrayal I've ever written.

Record-Setting Performance
When someone claims a huge performance boost on a particular job, you may want to ask just how big that job is to begin with.

Hashed Code
The only thing that could've inspired this use of Java hashing is chronic abuse of a different kind of hash.

The Curse of the Warped Bootstrap
The chilling tale of a server that never works. Two brave reps must decipher Java's demonic class loading behavior, or languish in Tech Support Hell!

Visionary Leak
Did you think it was possible to earn a promotion by making Java even more of a memory hog? Neither did I!

Hurry Up and Wait
For things like bridges and surgery, you're not supposed to proceed without plans. Software is subject to far different expectations.

To Con and Insult
Consulting's a sweet gig, if you can get it. The rest of us have to know what we're talking about. COOOOONNNN!

In Fool We Trust
A database "expert" lords over a bloated, poorly coded fiefdom, and crushes all challengers.

Servers Wild
When you just don't have time for silly things like "communication" and "protocol," bend reality to your expectations. What could possibly go wrong?

The Six Million-Dollar Patch
If all else fails, throw on another layer of arcane tightwad governance.

A Misleading Memory 2013 Classic WTF
First Commandment of Tech Support: Trust not thy caller.

A Burning Sensation
In the Navy, you never quite know the source, but it'll be expensive and painful to get rid of.

The Curse of the Night of the Ticket That Wouldn't Die
If you've never had to deal with ticket tracking software, consider yourself blessed.


(Return to Top)


2012 Articles


Power Supply
Question: Why was I billed $3,000 for sitting in a cold room for 45 minutes?
Answer: Uh, you'd better sit down ...

Wordy Invoice
Back in the day when computers couldn't store large values within a single variable, people had to resort to crap like this.

The White Flag
Somewhere out there is a Tab key that needs our help.


(Return to Top)