Recent Articles

Jul 2007

Eh, Don't Worry About It

by in Feature Articles on

The chemistry department is always one of the coolest places on any college campus. It's a place where students show up to class, and rather than getting boring instruction or lectures, their mad scientist professors mix chemicals together and cackle over a boiling beaker of awesome radness in front of the class. The rooms are adorned with exposed metal prongs with arcing electricity, torches, and fog machines. I should note that I didn't take chemistry in college, but this is what I'm pretty sure chemistry classrooms look like.

About 10 years ago, Bowie P. managed to score a job at his university's Department of Chemistry. It was awesome, too. He was given keys to the building, 24 hour access to all the francium he could dream of, and his job had him working between two buildings full of people he actually liked. Plus, just from reading the labels on doors in the buildings, he learned fun words like "photoelectronspectroscopy," "postneuroelectrondefenestration," and "floccinaucinihiliblackmetalipilificationbicarbonateblutausnord."


Diary of a Programmer Analyst

by in CodeSOD on

Well over a decade ago, James Kirk started his career at as a lowly Programmer at a large company. In a short six months, through lots of hard work and dedication, his title and pay was upgraded to Programmer Analyst. At that point, he was happy with his career. Then came the hiring freeze. And the wage freeze. And the extension to the wage freeze. As the moths turned into quarters and the quarters into years, James saw less and less of an opportunity for any sort of advancement.

Of course, being that this is all ancient history, James had forgotten all about it. Recently however, a friend of his started working at James’ old workplace and stumbled upon some of his unhappiness…


You Get What You Ask For

by in Tales from the Interview on

Nothing screams “easy money” like headhunting. Twenty-five to thirty percent of your recruit’s first annual salary? Twenty dollars off the top of each hour worked by your contractor? With that kind of bling, who wouldn’tsign up as a headhunter?

Of course, recruiting good people is no trivial task (that’s probably why it costs so damn much), but that certainly doesn’t stop a whole lot of wannabes from trying. Like the fine folks behind this email that Chris M recently received …


Your Name Does Not Compute!

by in Error'd on

Donovan should have been named John or Steve if he really wanted Lasik surgery:


EnterFlag Technology

by in CodeSOD on

Jan Krüger shares with us the unique EnterFlag Technology that he came across recently ...

"We all know it is very difficult to validate user input on web pages. Specifically, a problem that has been baffling scientists for years is finding out whether the input form on the page to be displayed was submitted in the current request. Luckily, this problem is now solved once and for all, thanks to a colleague of mine, who was tasked with preventing the form validation code from showing error messages when the form was not even submitted yet.


I'll Pass on the Full Version

by in Error'd on

You know those action movies that start with the main character's father saying "Biff... Biff... listen to me. Before I die, I have one last thing to say. You absolutely must... *cough* *cough* (pause) *dies*" Yeah, Kenneth hates those, and by extension he also hated this error message.


One at a Time

by in CodeSOD on

While looking for a mortgage company to refinance his loan, Evgeny Potashnik came across Australian Mortgage Options. They seemed decent enough; they even had an online loan management site. Curious to see what it offered, Evgeny took a peek…

The first thing he was greeted with on their loan service page was a rather peculiar login. Customers are asked to enter their loan number, one digit at a time:


Sir, Seriously, Sir?

by in Feature Articles on

The military trains you to be a machine. You will carry out your orders and you will love it, and you will not complain, private! Even if it's something you wouldn't do in a million years otherwise!

After his military career ended, R. B. found some work as a contractor for a different branch of the military. He was tasked with timing I/O operations in a new system that they were testing. This system included several computers with different RAM and CPUs, but that wasn't part of the testing. No, R. B. had to test I/O time for the floppy drives on the various systems.


Yet Another Operator Overloading Abuse

by in CodeSOD on

If you've worked as a C++ programmer for long enough, I'm sure you have plenty of stories about operator overloading abuse. Today, Jake Wyland shares the worst abuse he's seen to date ...

"The company I used to work for went on a hiring binge to staff up for a big project. The work required a lot of domain experience working with a gargantuan plug-in API. To make learning the API easier, we decided to have weekly code excursions where people would come in and present the code they were working on and show off how to use the portion of the API they were working on. During one such code excursion, I saw the following code scroll by in the image projected on the wall:


I Need This Right Away

by in Feature Articles on

Not too long ago, a job posting at Steve D’s university called for “a student familiar with C++ programming” that could help “develop software to interface with radio receiver cards using an existing API.” The ad also mentioned, using big, bolded letters, that the candidate “MUST BE AVAILABLE IMMEDIATELY” and that the project had a “TIGHT, THREE WEEK DEADLINE.” While that would have been a warning sign to most, to a cash-strapped student, it was a great opportunity to make some extra cash. Steve emailed his resume right away.

Two weeks later, having mostly forgotten about the job, Steve received a reply back. The good news was that they were “very interested” in having him work on the project. The bad news was that the project still needed to be done right away. And the project needed to be complete in three weeks time. And they were only able to pay for ten hours of work per week. And they could only pay $5.50/hr.


Error'd Outside

by in Error'd on

As much as I hate the stereotype of the antisocial basement-dwelling computer nerd, I can't deny that I'm an antisocial basement-dwelling computer nerd. While I'm not a fan of being outside, where I could encounter (ugh) people, I'm also missing a bunch of real-world error'ds!

David R. witnessed firsthand a "Staten Island Ferry Boot Disaster." (His words.)


In the Garden of Admin

by in Feature Articles on

When Eve was tempted by the serpent and ate from the tree of knowledge, God was furious. In spite of his omniscience, God didn't find out that Eve had screwed up until he found Adam and Eve holding leaves and squirrels in front of their swimsuit areas in shame. Still, it was a failure of security on God's part — the tree was just sitting there, waiting for its fruit to be eaten.

The Adams and Eves of IT (developers (and it's a lot more Adams than Eves)) and Gods (System Administrators) still have a relationship like our early ancestors in the gaddah da vidah. But this time the sysadmins are smarter and do their best to verify that you're allowed near the tree (if you're in the Gods or Serpents groups in Active Directory). This analogy is falling apart fast, but on with F. B.'s story!


Tenth Time's The Charm

by in CodeSOD on

If you’ve ever noticed how completely unreliable computers are – you know, performing completely random and unpredictable actions when given a simple, explicit instruction – then you’ll appreciate today’s snippet from John P.

Today’s code was uncovered in a web application and attempts to solve the well-known problem of DateTime.Parse: in the event that the method fails the first time, it will probably correctly parse a string the tenth time.


A Backup's Backup's Backup

by in Feature Articles on

It was Ted’s first week on the job. He was brought in to replace another manager that had disappeared on “medical leave.” Although Ted suspected his predecessor had left or had been asked to leave for different reasons, he ignored it along with his initial instinct to flee.

Ted’s new company was very serious about its data. But not serious as in designing a properly normalized data model. Nor serious as in creating a database that could be easily extended or manipulated when needed. Nor even serious as in, having life-changing large-dollar, or other highly-critical information stored within. The company was serious about being unwilling to lose even the smallest iota of data. Ever.


An Asthmatic in the Amazon

by in Error'd on

Writing article introductions is hard, but shopping at Amazon is easy!

What Adam Z. didn't realize is that he just needs to spend $5.23 more and the shipping is free.


Protected Code

by in CodeSOD on

Every once in a while, we have no choice but to write “dangerous” code. The type of code that, when used improperly, can wreak all sorts of havoc on the system. Purging audit trail records, fast-swapping statuses, or, like in today’s example, code that toggles an object’s "IsUpdated" property regardless of whether that object has been updated.

It’s a good idea to protect such code, perhaps using access specifiers like “private” or “internal” or even runtime-enforced security like the System.Security.CodeAccessPermission namespace. Or, one could go the route of Riaan Hanekom's predecessor and use some sort of… password protection?


// TODO: fix before production

by in Error'd on

Don't you hate when your debugging code accidentally makes its way into production? Like that CurrentUser.IsAdministrator() that always returns "true" because you forgot to take that line of code out? Well, here's your opportunity to laugh at others that forgot to fix things before deployment.

Konstantin R. didn't know what he should expect after changing settings on his router:


Paging Dr. UPS

by in Feature Articles on

It was not the ideal way to start a Monday morning. Matt arrived at work to find his boss frantically pacing around the office. “Oh thank God you’re here,” he said as they locked eyes, “the CMB system is down. And Net Ops can’t get bring it back online.”

On the scale of All Things Bad, a downed CMB system falls somewhere between having all employees call in sick for the day and the spontaneous combustion of all computers throughout the company. No CMB meant that the company’s 600+ employees would have to rely on “manual processes” to do their jobs. And that meant that there’d be a lot of unhappy employees, managers, and customers.


Diary of a Government Contractor

by in Feature Articles on

Working for the US government can be a beautiful thing, especially if you manage to land a good position, like Sr. Developer or President. Even if you're a contractor, government jobs tend to pay well and are good for the resume. Like any organization, though, there are a lot of policies and procedures that need to be followed.

T. C. is a contractor working for the government on a systems monitoring product. As part of a migration, he needed to move his system and get a new IP address for it. To get things going, he had to follow the standard procedure.


Your Computer Fails

by in Error'd on

As a video game nerd, I'm always upset when new computer games come out that I can't play. As much as I'm looking forward to BioShock and Alan Wake, my computer just doesn't cut it. Not meeting the minimum requirements sucks, and through the magic of the internet, I've found others that share my pain:

Bruce's computer barely supports web 2.0.


It’s Just a Wiring Problem

by in Feature Articles on

As a freelance web developer, Erik finds himself doing all sorts of odd jobs. Fixing up an Access application here, installing a firewall there – he’ll gladly help his clients out with whatever they need, so long as they’re paying and he’s comfortable doing it.

His latest potential job, referred to him through a friend-of-a-friend, was at a small company that had a “simple wiring problem” with their network. Apparently, none of the local networking companies were willing or able to fix it, and Erik was their last and greatest hope. It was a rather high expectation for someone that had only set up one or two networks in his day, but Erik figured that he’d give it a shot. They were paying hourly, after all.


Special Savings

by in Error'd on

Ben Brandt is a bit underwhelmed at his grocery store's fuel savings plan. The one cents savings per gallon (up to $0.12) just doesn't make a meaningful dent in today's high gas prices ...


The Sharon System

by in Feature Articles on

Like many industries, IT has its share of charlatans. These people think they know what they're talking about, or don't know what they're talking about and fake it. This is because the business isn't aware of what it takes to make software; like a hospital's reception clerk isn't aware of how surgery works. But if a surgeon emerged from the operation room, soaked in blood, cursing the failure of Mr. Fairfax's operation to reconnect his hoozlevalve to the beppobone, some eyebrows would be raised.

Not so in IT, though. What we do is still black magic. And when we fail spectacularly, we can cause stakeholders to be skeptical of any future IT work. Such is the case on a job that Bruce W. took recently.


Front-End Comments

by in Error'd on

Chris M. was requesting a quote for motorcycle insurance when he noticed something strange about the site's birthdate selector.


Not the Most Thought Out Enumeration

by in CodeSOD on

Chris M is part of team that’s responsible for maintaining a giant mess that was once a fairly simple C++ application. Like so many organically grown behemoths, this application has its share of bad and rotting code.

Today’s example, however, is neither bad nor rotting. It’s simply bizarre. Code that never should have been, and that no sane person ever could have written …


I Told You So

by in Feature Articles on

One of the few things in life more satisfying than saying “I Told You So” is being told not to say it. As a freelance software developer, Jeff finds himself in that position rather frequently. Most of the time, it’s with his friend and colleague, Frank, who is a part-owner of a small marketing firm.

Frank is a rather frugal fellow. He’s the type of guy that would travel across state lines just to avoid paying a $1.50 “foreign ATM” fee. Recently, Frank asked Jeff to give him an estimate on setting up a web server for his company and its clients.


How Do I Use This?

by in Error'd on

It's hard to develop software that's easy to use. No matter how simply you lay out your controls or put big, giant buttons labelled "Print," users will still complain that they can't figure out how to print stuff. Well, here's to you, users — enjoy a few confusing dialogs.


(submitted by Dylan M.)


Lord of the Blogs

by in Feature Articles on

It was about frickin’ time -- Rob had finally landed himself a promotion. Technically, it was more an “absorption of responsibilities” than anything else, but the important thing was that his new role as “Global Editor” offered an excellent ROR (Return On Résumé). Really, how hard could it be to administer a handful of internal users writing a handful of blogs?

The previous Global Editor had left abruptly, and no one was really sure why. Some say he was fired, others say he just stopped coming in, and still others say he was committed. Fortunately for Rob, the previous editor left behind some extensive process documentation…


Your Feeding Back is Appreciative

by in Error'd on

Broken English sure is funny.


(submitted by Brad W.)


What Where We Thinking?

by in CodeSOD on

Back in the 90's, Andreas was working on various SmartCard projects. Most of it involved programming 8051 microcontrollers. One particular project required him to replace magnetic stripe card readers with SmartCard readers while emulating the exact behaviour of the previous hardware.

After weeks of back and forth between the customer and him, his final job was to clean up the code and comments for the final release. And this is when he found this little nugget ...


It's Not Really a Problem

by in Feature Articles on

As the “IT guy” guy at a small company, J.F.L. is tasked with all sorts of miscellaneous projects, from hacking together simple programs to setting up workstations for new hires. His latest assignment involved installing some rather expensive (as in, six-figure expensive) safety training software that would allow the company to keep track of which employees needed to complete which safety training modules.

One of the big selling points of the training software was its modular client-server design. The “server component” housed all of the videos, graphics, and course material, along with a database for employee accounts and testing certificates. The “client component” was a fairly basic application that connected to the server and allowed the end user to perform a variety of actions based on their security level. In theory, it seemed like a nice and clean design. In practice… not so much.


Dress Appropriately

by in Error'd on

You may want to bring a jacket if you live anywhere near Steve K...


I'm Sure You Can Deal

by in Feature Articles on

Not too long ago, there was a small furor in the local media about a major disaster at The State's Technology Services Division. The details were a bit sketchy – mostly because The State was “unable to comment on an ongoing investigation” – but what was reported was that, for two full days, employees of The State were unable to logon to their computers or access email, and that this caused business within The State to grind to a halt.

As the “investigation” carried on, the media lost interest in the story and moved on to more newsworthy stories like who Paris Hilton was partying with last weekend. Fortunately for us, a certain employee of The State named J.N. works in the Technology Services Division and decided to share what really was behind those fateful days.


Zero Tolerance

by in Error'd on

Keith W.'s high school mascot, Benny the Beaver, would not be pleased with the Bank of America's zero-tolerance-for-profanity policy.


Many Shades of Cout

by in CodeSOD on

For the most part, the Message Queue Processor at Andy's company is not a terrible application to work with. Most changes – such as setting up a new queue, changing trigger times, and so forth – can be done by changing configuration files. At least, that was Andy's opinion before having to make a change to its code…

Andy needed to add in support for serializing on multiple recipients, which mostly meant that he’d have to throw together an overload for the Serialize method. Not a big deal, until he made the fatal mistake of declaring a variable named cOut:


Securing Secure Security

by in Error'd on

Hudson Valley Federal Credit Union's online banking enrollment asks the typical security questions. Mother's maiden name, what school did you go to, what hood you grew up in, the why, the who what when, where, and the how, 'til you're grabbin' your hair and you're tearin' it out. Eventually, you have to choose text that would be displayed in a security image, which would be presented to you whenever you log in. That way, if you don't see the image with your phrase, you know something is wrong and don't enter your login information. Jay G.'s security phrase had a problem, though:


You Mean There's a Better Way?

by in Feature Articles on

"Crap, this address is wrong," Brenda sighed, cursing herself for screwing up another address label. Jason S. happened to be within earshot of the aggravated Accounts Receivable clerk, and having worked on the customer management application and label printing mechanism, he asked Brenda what she meant.

"These always get sent back to me when I go to send them to Australia and forget they're 'special,'" she explained. "Special" meant to Brenda what "international" means to the rest of us. Looking at the returned envelope, Jason noticed that no country was specified on the shipping label.


I Don't Need No Grammar Checker

by in Error'd on

Today's error'd speaks for itsefl.


(submitted by Marty)


When will users learn?

by in Feature Articles on

It may not have been named RUPP, but you’ve likely had to use – or worse, maintain – an application just like it. You know the type: a critical, internally-developed system designed by a “clever” architect to be as “extensible” as possible and hacked together over the course of several years. At Jude’s company, this application was RUPP.

You see, despite being a multi-user Access / Visual Basic Frankenstein that heavily relies on shared Word and Excel documents to store client records, the person to blame for RUPP’s frequent crashes is not its sole developer. Question number three on the FAQ explains it perfectly…


Unacceptable Use

by in Error'd on

As an employer, it can be a pretty big challenge to figure out what sites are work-appropriate and what ones aren’t. Game sites, news sites, shopping sites: obviously inappropriate and most certainly frowned upon. The company intranet and the company’s public website: appropriate, so long as it’s on your lunch break. It’s those “grey area” sites – such as the reference and education ones – that one could go either way on. Fortunately, Chad Moore’s company knew exactly where to draw the line …


Classic WTF: The Forbidden Parameter

by in CodeSOD on

Happy Independence Day, U.S. readers! And for you non-U.S. readers, Happy .. errr ... Regular Day of the Week! The Forbidden Parameter was originally published way back on June 16th, 2006 ...


When Steve Mitcham started at a new job a little while back, he spent some time reading through the documentation and implementation guide for the enterprise framework that the company developed in-house. There were a few things that seemed off, but one thing in particular stuck out ...


Peddling Pensions

by in Feature Articles on

When most people think of insurance companies, they picture boring, stuffy old buildings filled with bland leather chairs and humorless, pencil-necked guys in suits. And, in general, that tends not to be far from the truth.

CJ worked at a blue-chip insurance company that we'll call L&G. He worked at the helpdesk at their head offices in Surrey. This was years and years ago, when spellcheck was a young enough feature that users hadn't yet developed a healthy level of fear and respect for.


Check Yo Street Name

by in Error'd on

Cousin, you best be uncheckin' that checkbox labeled "frontin'" and enterin' yo street name if you know what's good for ya. Cuz the web server, he crazy and you don't wanna know what happens if front end validation don't work.


(submitted by Dennis Kim)


Achtung: WTF in German!

by in Feature Articles on

I am very excited to announce the launch of Worse Than Failure: German Edition at de.WorseThanFailure.com.

The German Edition is headed up by Matthias Bruch. If you'd like to help out, especially on the translation end of things, please drop him a line via the Contact Form. Like the Russian Edition, the German Edition will contain primarily translated articles and some original content. The RSS feed is located here: http://syndication.thedailywtf.com/WTF/DE.


Intern Turnaround

by in Feature Articles on

Internships are a rite of passage in virtually every profession. Unlike other industries, Information Technology interns aren’t required to do terribly degrading tasks, such as grabbing coffee for the boss, or acting as his human ottoman. Well, unless you intern at my company. Speaking of which… Intern Eric: you’re off ottoman duty; go grab me a triple venti mocha backflip latte!

Many companies offer some sort of intern training program. And for good reason: interns are so excited to gain actual experience in their industry that they’ll work an unheard amount of hours for a mere pittance. At least, that’s the theory. It didn’t quite work out that way for Chris Tribbeck’s interns.


Please Bypass Security

by in Error'd on

Balancing security and usability can be an awfully challenging task. On one hand, users want to be able to do things without being bothered by the system: yes, dammit! I’m sure! Yes, I’m sure I want to open this macro-laden Excel spreadsheet from my email. On the other hand, they want the system to warn them about dangerous things: well how was I supposed to know that a “money making proogram” from my “long-lost hig schol freind” that neglected to mention her name was a virus?

Excite.com seems to have found a unique balance to security and usability. For security purposes, they simply block all “unacceptable extensions.” And then provide some helpful advise on bypassing their security feature ...


Extra Sensitive Case Insensitivity

by in CodeSOD on

How often do you look within the bowels of your age-old "helper" classes? For most, including Sean, the answer is almost never. Why bother when it works just fine? Well, one reason might be to see what interesting techniques your predecessors employed in solving the simplest of problems... such as a case-insensitive search...

Fortunately, the original programmer never had to search for an 8 character string ...