Alex Papadimoulis

Founder, The Daily WTF

Nov 2010

SuperRand

by in CodeSOD on

Nearly six years ago, Brian J gave up being a software developer to start a career in law enforcement. He specifically avoided the world of high-tech cyber crime, and wanted to start life anew as your everyday suburban cop. Of course, with a computer engineering degree and several years of IT experience, technology challenges tend to follow him wherever he goes.

For being a suburb, Brian’s department is pretty big and has a wide variety of posts that range from patrol to accident investigation. In addition, certain officers are trained to do certain things, and others have a preference... especially against the few horrible posts – such as manning the speed trap – that just suck the life out of most people for eight hours. As a result, shifts and schedules change from night to night.


A (Non) WTF Classic: Print or Fish

by in Feature Articles on

It's Thanksgiving Day here in the States, so instead of a normal tale of incompetence, failure, or disaster, here's a fun story that's kind of the opposite of that. "Print or Fish" was originally published on 2005-11-22, and never seems to grow old...


By the time he was twenty-one, Roy had already earned the title "drop out." College just wasn't his thing: he attended three different universities -- one after another -- and didn't even come close to earning a degree. His "drop out" title was only solidified when he started work as a roll-machine operator at the local paper factory. Worse yet, the factory was by the docks, which meant that Roy had to pass through the outdoor fish-market every day on his way to work. Talk about a great way to start the day. But Roy wasn't fazed; he became inspired.


Learning Something New

by in CodeSOD on

"When I was tasked to do a few quick changes to the CMCalc 'application', I knew I'd be in for a treat," writes Will, "it's been the bane of all developers on the team: a spreadsheet designed by an end-user who knew too much that was coded by a developer who thought he knew a lot, and maintained over a decade by developers who mostly knew nothing."

"Being that it was VBA, I didn't expect much... yet somehow, I was blown away. It was here that I learned that yes, VBA supports GoTo statements. And line numbers, too. And for whatever reason, those are preferred to a simple If-Else block."


Boolean Truths

by in CodeSOD on

As a bright-eyed and bushy-tailed soon-to-be graduate, Andrew was thrilled to get a job offer before he even graduated. Sure, it involved some new, real-world programming languages that he hadn't worked with, but he was just as confident as his soon-to-be employer that he could pick them right up. And besides, how great would it be to have some solid, real-world technologies like CICS (which probably has something to do with Cisco) and VSAM (Virtual Something Something Something... clearly a cutting-edge technology).

And then the first day hit. Turns out CICS and VSAM were much older than he was, and COBOL was the preferred language of choice. At least I get to work on a mainframe, he told himself. That is, until he learned they were no longer room-sized behemoths staffed by operators wearing cat-eye glasses and bouffant hairdos. It was nothing more than a big ole box called an AS/400.


XXXXXXXXXXXX

by in Error'd on

"I received this bill from my health insurance company," Jeroen wrote, "normally, you'd expect insurance companies to be pretty precise about collecting money, but this time I'm still wondering how much money they want me to send them... or where I should send it to."


The Password Reset Façade

by in CodeSOD on

Marius' coworker is a big fan of the façade pattern. Not the software engineering façade, but more the old Wild West town movie set façade. And Although his tenure has long since expired, his elaborate implementations still persist to this day.

Submitted for your approval is this recently uncovered "self-service password change" page. For nearly eighteen months, users had no way of changing passwords on their own; most would simply keep the password they had, while a select few would contact tech support to do it. It took quite a few support tickets to realize that the problem didn't exist between the keyboard and the chair, and it took development just as long to believe that there was a bug. Eventually, Marius was assigned to "fix" it, and he's pretty sure that it took less time to develop the actual code than its façade.


Dear Sybase: MessageBoxes Don’t Belong In Drivers

by in Feature Articles on

Dear Sybase,

Thank you for providing the development community with a free edition of your SQL Anywhere database. We also appreciate the work you put in to an ADO.NET DataProvider so that we can use SQL Anywhere from .NET. Now I'm not the type of guy who complains about free things, so please think of this as constructive criticism.


AT&T Mail Bomb

by in Error'd on

"Back in March, I changed the billing address on my account," wrote Jim Stutsman, "Shortly thereafter I received a postcard advising me that the address had been changed, and if it was in error I should contact AT&T immediately. A few days later another card arrived with the same message. And again. And again. To date I have received more than 80 postcards and two letters, all identical except for the date. If that's not love, what is? Thanks AT&T!"


We're All Administrators, Zoologically Educational, and White Space

by in Feature Articles on

We're All Administrators (from Tzveta)
My day job is in the IT group at a particularly large educational institution in the southern United States. We recently acquired a new high-end document/imaging system and were running into some problems getting it configured and running; the Associate Dean was not happy about this.

"Help me understand why we can't get the new printer/scanner to work?" he asked frustratingly, "it's been two days since it's come in, and every day it's not up, we're burning through money doing all this stuff manually!"


The Other If

by in Representative Line on

There are two development teams at Matt T's company: his group and the other group.

For the most part, they work on the same types of projects, but the other group tends to do things a big differently. For example, Matt's group uses issue tracking software to manage requirements, while they use other means to track requirements. And although they don't champion best practices, they make sure to use other practices. The code they write isn't quite functional or maintainable, but it does serve other purposes.


Thourough Username Validation

by in CodeSOD on

Ben recently inherited a massive PHP-based project that makes spaghetti-code look appetizing.

What's so impressive about this system is not the globally misspelled variables or the horribly written constructs, but the downright creative ways in which logic is implemented. Like this unique glued-together mess of PHP/Javascript used for user-name validation:


Free the Colors!

by in Error'd on

"I got this weird error message from my IM software," writes Sakari Nylund, "hopefully free colors won't do anything bad."


The Email Tree

by in CodeSOD on

The case for case-sensitivity goes something like this: it's always been that way in this type language and, who knows, maybe someone will find it convenient to have two different variables named LogOnName and LogonName. The case for implicit variable declaration is less clear, but is something like: it's faster to code and coders should just learn to be consistent.

Of course, none of these are very convincing for Murray, who recently stumbled across a project with this.


Extensible XML

by in CodeSOD on

One of the inherent challenges that comes with data is that, once its structure has been defined, it can never be changed. Ever. Data structures are literally chiseled in stone, and the only way to use something different is to rewrite your application from scratch and throw the old application (and any server it touched) in the fires of Mount Doom.

This was actually one of the primary reasons XML was invented. At its core, it’s just one big ole’ human-readable string that’s flexible enough to define any data or specification… even the sacred XML spec itself. Of course, for all of its glory, XML still suffers from a fundamental problem with data: you have to know the data’s structure before you starting working with it. That means analysis, modeling, data dictionaries, and all sorts of other booooooring things that involve not writing code.