Recent Articles

May 2012

The Long Glow

by in CodeSOD on

"It was around 2005 when I landed my first job at a small software company," writes Derek, "I was the youngest programmer on the team by at least a decade, and my coworkers certainly made sure I remembered it. Fortunately, it was all in good fun, but they reminded me that I had a long way to go and that I should learn from older, more experienced folks – presumably like them."

"In the midst of 'learning' from them, I noticed that on many of the companies projects used the same pattern where the main window five different buttons and three stock photos. Each button had a glow that appeared on hover and the first three buttons would trigger a corresponding stock photo to display. Nothing too crazy, though this hi-tech feature took my predecessor astonishing 280 lines of code… in each project it was implemented in."


The Beacon of Hope and A Positive Attitude

by in Tales from the Interview on

The Beacon of Hope (from Pete)
My phone interview for a senior developer position in the banking industry started off pretty well. The jovial and affable development manager told me that my CV stood out "like a beacon of hope compared to the vast oceans of crap applicants" he had been sent by HR and various recruitment consultants. "I just have one question," he said with a smile in his voice, "how soon could can you start?"

I chuckled, and then he told me it was time to do some actual interview questions. He started with a simple one: "Have you used WCF?"


The Extensible Menu

by in CodeSOD on

"The product we maintain has come a long way," writes Tod Hoven, "the backbone is a three-tier VB6 application that is slowly being ported and rewritten in .NET languages (VB.NET / C#)."

"But some code, however, just isn't quite cut out for conversion. Take, for example, the navigation/authorization mechanism used by many of the core screens:"


Docking Ejection

by in Error'd on

"I think my Docking Station is docked to my docking station," writes Tod Hoven, "I wonder which one my laptop is docked to?"


Papering Over the Problem

by in Feature Articles on

There are certain baselines that telecom companies care about. If, for example, your company is responsible for a set of network devices at the local airport, detecting and correcting failures quickly was very important.

Miguel was the IT support for the team ulitmately accountable for those devices. His first major project for them sounded fairly simple: when an alert condition occurs, generate a printed report. He was given a generous budget and told to do whatever it took for delivery.


Representative Table

by in CodeSOD on

"This is a small peek into the production database of one of our client's systems," writes Walter. "I wish I could say that this was an unused table, an isolated occurrence... or even that I had some other job prospects. But sadly, none of those are the case."


Confessions: The Soft CPU Upgrade

by in Feature Articles on

"Years ago," writes Maxime, "we found ourselves plagued with a brand new, unusably sluggish website. Most of the team blamed the esoteric VMCMWTH-based architecture (i.e. View-Model-Controller-Model-What-The-Huuhhhhh) that was pioneered by the Chief Developer. But the Chief Developer and the CTO (who also happened to be his uncle), blamed the hardware. More specifically, it was the 'inferior, off brand' CPU."

"Now despite the fact that this 'inferior, off brand' CPU commanded over 40% of the market, and that no one had ever experienced any performance problems on it ever, the powers-that-be refused to even consider the possibility that the non-performance was a result of their poorly-designed system."


Element of Violence

by in Error'd on

"Avast blocked itself from updating on reboot," Tejio writes, "if it can't trust itself, who can it trust?"


Sanity Check

by in Representative Line on

"Lucky me," Ryan wrote, "I got assigned to work on Legacy, an application whose name accurately describes itself. I'm pretty sure that this system manages to have a WTF/line ratio greater than 1.0, especially if we include the 'minor' ones, like the System.Environment.Exit calls peppered throughout library code that causes the app to inexplicably exit."

"But beyond minor annoyances like that, or the random number generator class that seems to exist solely to duplicate the behavior System.Random, I discovered this gem inside a class method."


Long Distance

by in Feature Articles on

Lawrence's employer had heard that this newfangled "Desktop PC" could reduce their IT costs, and they wanted in on it. It was the mid 80s, and at the time, their plants scattered all over Alabama connected to a central mainframe via dumb terminals connected over very expensive leased lines. It was time to upgrade, and Lawrence wasn't in charge of it. He didn't get called in until things went wrong.

"This new PC system is really slow," he was told while on a plant tour. That didn't sound likely- the PCs were running blisteringly fast 4.77MHz, 8088 CPUs with 16Kb of RAM, and since someone had connected "arithmetic-heavy accounting usage" to "floating point processing", they all had 8087 co-processors. There was no way they were slow, especially since half the time they were just running a 3270 terminal emulator.


FAIL FAIL,FAIL FAIL,FAIL FAIL and More

by in Coded Smorgasbord on

"We're had been using a manufacturer's web service, but started getting errors all of a sudden," wrote Peter Lindgren. "Something has really, really failed."

<StatusCode>InternalServerError</StatusCode>
<StatusDescription>Internal Server Error</StatusDescription>
<WebHeaders>
  <X-Backside-Transport>FAIL FAIL,FAIL FAIL,FAIL FAIL</X-Backside-Transport>
</WebHeaders>

Squared Interior Design

by in Error'd on

"I found this ad for an interior design company," wrote Wouter, "they probably do a lot of rectangular designs."


Epoch Billing System

by in CodeSOD on

Everybody in the IT department was quite happy -- even a little surprised -- with how well the outsourced project to replace the legacy billing system was progressing.

Well, actually, the project managers weren't all that surprised. Over the past four months, they'd pumped out reams of specs and design documents, often boasting that their level of planning hadn't been seen since the Apollo missions. So, for them, the fact that everything was turning out as designed spoke volumes about the success of their planning and processes.

New Billing Code


The Online Ordering System

by in Feature Articles on

Local businesses aren't exactly known for their web savviness or IT prowess. And for the most part, that's just fine. You'd be better off judging a prospective attorney on the suit he wears rather than the website he maintains, as that at least has some tangential relationship to practicing law. But usually, you'd just go with whomever a trusted colleague recommended, anyway.

For restaurants however, this is quickly changing. With smartphones becoming the norm, many people will use the web to discover the restaurants around them, see what menus they have, and get a general vibe for the place. And as such, local restaurants do become judged by their web savviness – or at least, their ability to maintain a halfway-decent website.


The Bit Setter

by in CodeSOD on

"Bit manipulation can be tricky," writes Nathan, "especially if you have no familiarity with bitwise operators or logic."

"At least, that's what my smarter-than-built-in-language-features colleague must have thought when he authored setBit. Fortunately, his code was the only one that utilized this function, as it doesn't quite work as advertised."


Sponsor Appreciation, nullnull, and More Error'd

by in Feature Articles on

Please take a few moments to check out the great companies that sponsor The Daily WTF.

TDWTF Sponsors

JRebel Logo   JRebel is a JVM-plugin that makes it possible for Java developers to instantly see any code change made to an app without redeploying. JRebel lets you see code changes instantly, reloading classes and resources individually and updating one at a time instead of as a lump application redeploy. Download your FREE Trial Today!
Joyent Logo   Joyent - This cloud ain't for storing music. Running your apps on Joyent's open-source SmartOS is a different, smarter cloud choice. Automatic and Free 400% vertical scaling, copy-on-write with ZFS, DTrace for killer visibility (heat maps! flamegraphs!) Come check out our stack.
Inedo   Inedo - the makers of BuildMaster, the free, and easy-to-use, web-based deployment and release management tool. Going far beyond Continuous Integration and into Continuous Delivery, BuildMaster delivers a series of robust features unparalleled by other build-promote-deploy-distribute tools. They're also behind the upcoming ProGet, a NuGet package repository that lets you host and manage your own personal or enterprise-wide NuGet feeds.

And now back to our regularly scheduled program...



Mybad

by in CodeSOD on

"At my company," writes Ryan L, "we have a 'certain' developer who has been here a while but is very reluctant to learn or improve. In fact, he actively works against the rest of us when we want to implement pesky things like proper version control, design patterns, or architecture to our code behind having 3000-line code-behind files."

Ryan continues, "I was exploring our SVN logs and came across something checked in by this "engineer". It was a single file, with a commit message of 'Mybad'. The file turned out to be a config file. Here was the previous version checked in: