Recent Articles

May 2007

Classic WTF: Integration Nation

by in Feature Articles on

Integration Nation was originally published on August 24, 2005.


Dylan Tusler's official job title is Integration Analyst, so he was not surprised to be called in to look at the setup for one of their major new corporate applications. He had held hopes that this new application would herald a new age in integration at their organization. The vendors (Intertrode and Initech) promised that they would be implementing a fabulous new Enterprise Nervous System in order to support their new Service Oriented Architecture (and I'm sure what ever else is "in" these days).


Announcement: The Finalists Have Been Selected

by in Feature Articles on

Last month, I announced The Olympiad of Misguided Geeks at Worse Than Failure Programming Contest and challenged you to solve a simple problem (build a four-function calculator) using the most obscenely convoluted way imaginable.

In the three weeks that followed, readers submitted all sorts of incredibly creative calculators. In the three weeks that followed that, we went through all 350+ entries. Each entry was individually configured, compiled, and tested (thanks Intern Boyd!). Afterwards, Jake, Intern Boyd, and I sat around the conference table for nearly three full days while we ran each valid calculator on the projector, reviewed the code, and tried to narrow down the entries to five finalists. We did not succeed: there was simply no way to narrow it down to five finalists.


One Hundred Percent Off

by in Error'd on

Now I hate to go off topic and post something that probably should be on slickdeals, but this Faberge egg from amazon is too good a deal to pass up. (And hell yeah that's a referral link! If it goes back up to 2.5 mil and one of you buys it, we're buying another yacht.)


(submitted by Quarnel)


Lost in the Jungle

by in Feature Articles on

For me, a trip to the company's server room was exciting. The cold air, the hum of the servers, and the rows of servers with fun blinking lights would make me feel like I was Harrison Ford in Firewall, ready to download confidential data on a MacGuyver-ified iPod. The sad reality, though, was that trips to the server room generally meant I needed one of the administrator's signatures on some stupid paperwork.

John Smith (which I think is his real name) was luckier than me. His duties often required him to be in the server room, though he didn't go into detail about his daily responsibilities in his submission. He was probably in charge of keeping Harrison Ford and iPods out of the server room.


Please Upgrade or Downgrade

by in Error'd on

Glenn L. was surprised to find that he was outside the continuum of supported browsers for some random web site. Perhaps it was designed for exactly IE 6.0.2000.21342 or something.


Converting Apples to Oranges

by in CodeSOD on

In high school I'd spend most of my time in math class playing with my calculator. It had all sorts of fancy conversion functions that were mostly accurate, and simplified work that I'd rather not do myself. One undocumented (and fun) feature was that the conversion functions weren't limited in scope, meaning that I could, for example, convert hours to milliliters or inches to degrees celcius.

I imagine that the culprit behind today's CodeSOD submission from Tony I. had the same calculator. The reason I've taken a picture is that Tony physically mailed the submission to the WTF world headquarters.


One-and-a-Half-Tiered Application Design

by in Feature Articles on

There are several types of bad code; there's lazy code, frantic code, unaware-of-a-better-way code, and aware-of-a-better-way-but-too-apathetic-to-do-it code, to name a few. Then there're amalgamations of different types of bad code.

Môshe encountered such an amalgam when his company was trying out a new delivery service. Môshe spent some time evaluating the IE-only web interface, and was curious about some JavaScript errors he was getting. Strangely, he noticed variables named dateSQL, newSQLTag, and modeSQL.


Playground Fun

by in Feature Articles on

Although today was technically supposed to be only Classics, I couldn't resist not sharing this fun submission from Kevin Cazabon

"Having moved overseas to Belgium a few years ago, from time to time I'm reminded that good, effective icon design is an artform best left to the true professionals. This is especially true when you consider that your software may be used across the world, and what may seem like common sense to you may befuddle a Belgian... or the other way around.


Classic WTF: Really Old Change Request

by in Error'd on

Originally published in Julalicious on July 7, 2006.


Talk about versatile, J.B. Langston was thrilled to see that Remedy's call tracking system is able to handle Xanthemedies' complaint about broken amphorae on his olive shipment from 352 BC ...


Classic WTF: 5 years C-pound experience

by in Tales from the Interview on

5 years C-pound experience was originally published on November 01, 2004.


Scott C. Reynolds was looking for a strong C# developer a while back. He was kind enough to share the tale of one of the many, many unqualified recruits (who we'll call “J“) with us.


Classic WTF: calculatethenumbers(v,w,x,y,z)

by in CodeSOD on

Happy Memorial Day, U.S. readers! And for you non-U.S. readers, Happy .. errr ... Regular Day of the Week! calculatethenumbers(v,w,x,y,z) was originally published way back on July 21 in 2004 ...


Ray Suker sends in a function from a system he inherited from the Guru who designed it before him:


Both Sound Good

by in Error'd on

Any bets as to which John Y. should pick if he actually wants to reset to factory defaults?


Unconfigurables Configurables

by in Feature Articles on

Bill S wrote in to share some code from an ancient billing system still in use to this very day...

My first assignment was to make the billing system’s code Y2K compliant. Fortunately, management had given us ample time to prepare: two full months.


The Great Pyramid of Agile

by in Alex's Soapbox on

UPDATE from Alex of 2012: Ouch. In retrospect, this article is pretty awful. The author (the Alex of 2007) had been largely mis-informed by charlatans: those Agilistas who claim "agile" was a goal of the development organization that was achieved by consuming only small amounts of the business domain at a time (hence the flawed pyramid analogy).

Five years later, it turns out Agile is not that at all. It is a business mindset that requires the business to think smaller and sooner; only after that can the development organizaiton adopt smaller, sooner changes. Hopefully, five years from now, this will just be the way that all software is developed.



Film At 11:00

by in Error'd on

"This just in: our clock has been adjusted for daylight savings time. To find out why you should be terrified by this and other things, tune in at 11:00."


(submitted by Neil W.)


RTFM on BCC

by in Feature Articles on

It's inappropriate and immature to make fun of old people struggling with technology, which is why I won't do so here. However, old people are often forced into stumbling adorably through totally foreign (to them) technology, which is what I want to discuss today.

Victor started his IT career years ago at his university, helping a neuroscience professor keep after his lab. His work involved mundane tasks, like taking care of a small LAN, tracking down experiment results, and preparing graphs and such. At the time, his professor was 84 years young.


My Friends Just Call Me Error

by in Error'd on

In general, I'd say I'm pretty happy with my name. My parents once told me that I was almost named "Cecil," which wouldn't have sat well with me (no offense to all you Cecils out there). Still, I'd choose "Cecil" over "Failed to convert to string from variant type 1 Vinson."


(submitted by Joe T.)


Accessibility

by in Representative Line on

These days, Accessibility is all the rage. I wish I could say it was actually driven by §508 Requirements, W3C Standards, and an all-in-all good faith effort to allow “differently abled” people to access content. But it hasn’t. As long as we, the majority, can access content, that’s all that really matters.

Fortunately, the mobile revolution has forced us to go Accessible. Now that we need to access content with our “differently abled” smartphone gadgets, we need that content to be Accessible. Bonus for the “differently able” people, I suppose.


The Indexer

by in Feature Articles on

A few kilometers left on Ruta Nacional 128, a brief stop at a control policial, a short trip down the unpaved Calle 33, and just like that, Sergio was at his destination. It was a top-secret Argentinean Government Facility.

Now, before you get all excited, let me say that this was not the fun type of Top Secret. There were no alien spaceships, super weapons, or mind control devices. No, there were just maps. Lots and lots and lots of maps. Sergio’s job was to help digitize them.


Only You Can Prevent Copyright Infringement

by in Error'd on

I'd always assumed the AAC format stood for something along the lines of "Awesome Audio Compression;" it had never even occurred to me that it had anything to do with forestry. Think about that next time you're illegally downloading music; you're not only killing Metallica, you're killing forests and bald eagles and crap. And Smokey Bear's band.


(submitted by James W.)


slammer.SCR

by in Feature Articles on

You may remember Tim from the sad tale of Hung, The Incidental Expert. Today, he brings us a story of the "Not Invented Here" philosophy and its ramifications.

In 1996 preperations were underway for the Olympics in Atlanta. And despite plans for Celine Dion to open the ceromony with "The Power of the Dream," people still managed to be excited. America was proud, and many profoundly American companies (e.g. those that sell apple pie, SUVs, beer, or guns) were happy to sponsor the games.


Orwell Warned Us

by in Error'd on

David comes from the harsh, dystopian future of 1984; a time where surveillance is unavoidable and just considering joining peepel.com is a thoughtcrime. Or maybe it's just a bug in peepel's software.


Early Termination

by in CodeSOD on

Once, I asked a coworker for a feature request. His service was outputting hashes and I wanted the original strings. His reply was that if I had an algorithm to reverse a hash --- all that this service stored and obviously impossible --- he'd implement my feature. My suggestion was that he record an input-to-hash mapping and just reverse that. The feature was checked in that day; perspective makes all the difference. My next feature request was that he set up a signal handler to catch signal nine, as he had attached cleanup routines to several other signals. I guess he spent the rest of the day trying to figure out why it wasn't working.


And I guess that's the point: for many things there is an obvious solution, for some things there is no solution, and wisdom is knowing the difference. The problem is second-guessing things that cannot occur, especially when you guess wrong. One of our field agents, Paul, recently had a run in with murderous #9; he writes,

'We once bought some code from a large company who shall remain nameless. Security was the big issue, so a programmer came up with the not-so-bright idea of how to be sure that a small utility program would really exit and not somehow keep running.

Signal to Noise Ratio Near Zero

by in Error'd on

Aaron C. was noticing some slowness and occasional loss of his internet connection. I'm no expert, but I'd bet that the problem could be the 2.1 billion db noise margin on the line.


An Amusing Way of Saying UPDATE

by in CodeSOD on

Four months ago, Kevin P. joined a well-known health care provider as a project lead. Little did he know what he would find himself leading.

After a complete overhaul of the architecture (or what passed for an architecture), K.P. still deals with little nuggets of joy like this every day...


Configuration Disfiguration

by in Feature Articles on

In .NET, there are generally two types of information in config files: application-specific and environment-specific. The problem with this setup, though, is managing changes to configuration parameters; it's up to the developer to remember to update config files for each environment.

Fortunately, parameters can be easily overridden using the configSource element in web.config, eliminating the need to manually change files for each deployment, not to mention reducing the risk of having to recreate a config file after accidentally overwriting one. Of course, we're talking about software development here, where the simplest solution is often ignored.


Thanks But No Thanks

by in Error'd on

Today's disturbing Error'd entry comes from Chris.


L.T.'s Bonus

by in Feature Articles on

Being that Worse Than Failure is a web site, just about every story submission we receive comes in through the vast series of tubes known as the “Internet.” Sure, every once in a while the tubes get clogged up with material and cause all sorts of delays, but for the most part the “Internet” is more reliable, much faster, and a lot cheaper than the alternative: the postal system. But I will say that it’s certainly not as fun, as this very first Snail Mail submission from L.T. shows…


Aptly Named Deal of the Day

by in Error'd on

Generally I write an intro paragraph about each Error'd submission. I don't know what to say this time, though, as musiciansfriend.com has beaten me to the punch.


(submitted by Jeff D.)


The Dimmer

by in CodeSOD on

When Ben started working at a small ASP-based dotcom, there was an intern who was working on a major feature of their application. Her code confusingly cute. Quick example: instead of calling a database table for checklist templates "CLTemplate" and having one row per checklist, she called it "CLManager" and had columns CLItem01 through CLItem100.

Okay, maybe that's a bit obnoxious. But consider her sub for "dimming" (i.e. declaring variables in VBScript) ...


Job Interview 2.0: Now With Riddles!

by in Feature Articles on

Some years ago, someone at Microsoft noticed that they were having a bit of a Resources problem. A Human Resources problem to be specific. There were a whole lot of job openings (thousands, in fact) and a whole lot of applications (hundreds of thousands, in fact), and no easy way to match the right applicants with the right jobs. So they decided to reinvent the Job Interview.

Traditionally, job interviews are used to ascertain two things: how competent the candidate is and how well his personality (or lack thereof) will fit in with the organization. With their introduction of Job Interview 2.0, Microsoft included both of those features and added one additional: how the candidate responds when presented with asinine, utterly pointless, and completely ridiculous brainteaser questions.


Actually, I Don't Need That

by in Error'd on

It's hard for me not to editorialize (read: include streams of profanities) in my code. And the screenshot below illustrates that I'm not alone. The key difference is that I actually declare all of the functions that I intend to call. Check it out yourself if you've got IE (mouse over the drawing canvas).


(submitted by Trent G.)


Reggie X. Preston

by in Feature Articles on

At the time, it seemed like a good idea. When a fatal error would occur in a batch program, a message would be sent to the operator’s console that notified him of the error and prompted him to terminate the program. From there, the operator would call the program’s support contact (generally a programmer) and ask him what to do. Management figured that someone with some knowledge of the program should be the one that decides, not just some operator.

Of course, as the years passed by, management learned three things about this policy. First, the support contact’s answer was always “it’s a fatal error! What can I possibly do from home at 2:00 AM? Just terminate it!” Second, after years and years of developing batch programs for internal clients, there were a whole lot of batch programs (about 20,000 in all) and a whole lot of programmers that were called in the middle of the night. And third, because the operator notification would block until an answer was received, subsequent programs would be delayed while the operator tried to get a hold of the responsible programmer, who would occasionally disconnect his phone at night to avoid the inevitable call. Obviously, something had to be done.


Seeeeeeeeeecrets...

by in Error'd on

You may not know this about Windows Media Player, but it knows secrets about you. It's aware of your man-crush on Sean Connery, it knows about what you did with your roommate's toothbrush, and it knows that you threw up in your tuba during 10th grade marching band practice. What you may not know is that it can only hold a finite amount of secrets, and once it hits that limit it'll start blabbing all your secrets to your iPod.


Seeking the Truth

by in CodeSOD on

We're all seeking truth and elightenment. Some find it in Christ, some in Allah, some in Shiva, crazy celebrities in Xenu, fat goth weirdos in Satan, or the truly enlightened who've been touched by the Flying Spaghetti Monster's Noodly Appendage. Others find it in science. Maybe even in love. Well, for those of you that haven't found the truth yet, here it is:

private static bool GetTrue() 
{
   return true; 
}

Classics Week: Most Helpful FAQ Ever

by in Error'd on

Originally published in Pop-up Potpourri: Chocolate Covered SQL on January 18, 2007. 


Sean K. Moran shares this tip from the Most Helpful FAQ Ever ...


Classics Week: A Case of the MUMPS

by in Feature Articles on

A Case of the MUMPS was originally published February 13, 2007. And yes, MUMPS (or M (or Cache)) is still alive and kicking... and just might be lurking as the "database" at your next job in the healthcare industry...


You may not realize it, but the majority of us developers have been living a sheltered professional life. Sure, we’ve got that living disaster of a C++ application and that ridiculous interface between PHP and COBOL written by the boss, but I can assure you, that all pales in comparison to what many, less fortunate programmers have to work with each day. These programmers remain mostly forgotten, toiling away at a dead-end career maintaining ancient information systems whose ridiculously shoddy architecture is surpassed only by the tools used to create it. Bryan H lived in such a world for over two years. Specifically, he worked at a “MUMPS shop.”


Classics Week: Removing Spaces, the Easy Way

by in CodeSOD on

Removing Spaces, the Easy Way was originally published on February 22, 2007.


There are tons of functions in so-called "standard" libraries, but sometimes the function you want just isn't there. Luckily, string functions are so simple to write that anyone can do it!


Classics Week: The Really Windy City

by in Error'd on

Originally published in Pop-up Potpourri: The Really Windy City on January 02, 2007.


And I thought Chicago was the Windy City. At least Adrian Ritchie and all the other folks from Guernsey shouldn't have any trouble flying a kite ... with an 80,000 ton weight attached to it ...


Classics Week: Hacking Made Easy

by in Feature Articles on

Hacking Made Easy was originally published on March 01, 2007.


Hopefully after getting out of college, most of us have matured past drawing dude parts on passed-out roommates. Now, I don't mean to imply that I've matured beyond that point, just that I hope you have.


Classics Week: Laying the Foundation for i18n, Brick by Brick

by in CodeSOD on

Laying the Foundation for i18n, Brick by Brick was originally published on February 07, 2007.


In Europe, they do things a little bit differently. From what I understand, it boils down to this: they work less and play more; when not working or playing, they drive tiny little cars. Apparently, they all speak different languages too.


Classics Week: Chocolate Covered SQL

by in Error'd on

Originally published in Pop-up Potpourri: Chocolate Covered SQL on January 18, 2007.


Toby Gray, that's just not fair! How come my chocolate covered raisins never come with any SQL?


Classics Week: The Contractor's Note

by in Feature Articles on

The Contractor's Note was originally published on January 29, 2007.


The easiest and most popular place for Incompetents to hide is within the ranks of professional contractors. It's an easy job. Generally, the first few weeks are slow; everyone is so busy (hence the need for a contractor in the first place) that they have no time to train someone new. The next few weeks are equally slow, as only small and easy-to-understand tasks are dolled out. By the time anyone discovers the gross incompetence (if it's discovered at all), there's only a week or two left in the contract and they just let slide. And then The Incompetent moves on to his next contact.


Classics Week: But It Worked in the Demo

by in CodeSOD on

But It Worked in the Demo was originally published on January 26, 2007.


We've all been there: all of your test cases worked the night before but when it comes time to run the demo you realize you missed something. In college, I had to write Sub Hunter in assembly and those pesky submarines kept launching missiles after I depth charged them back to hell. The TA didn't notice either. It wasn't until later that I learned about the magic of peer review. Not that fewer bugs sneak across the unit test border, you just feel better because someone else missed the problem too.


Announcement: WTF in Russian!

by in Feature Articles on

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

The Russian Edition is headed up by Evgeniy Vigovskiy, a systems administrator over at the Russian Federal Tax Service in Moscow. Evgeniy will periodically publish translated articles and original content on the site. The RSS feed is located here: http://syndication.thedailywtf.com/WTF/RU.


Classics Week: Lost in Translation

by in Error'd on

Lost in Translation was published in an original manner February in 14, 2007.


Peter T. had, a fantastic time of the entertainment which tried to decipher what required this vigilant case of him. He could calculate towards outside, although, which it checkbox would prevent that different alarm time appears.


Classics Week: Immaculate Backup

by in Feature Articles on

Immaculate Backup was originally published on February 21, 2007.


Murphy's Law 198§44: the more complete a backup/recovery solution becomes, the less likely it is to ever be used.


Classics Week: How Not to Parse Command Line Arguments

by in CodeSOD on

How Not to Parse Command Line Arguments was originally published on December 15, 2006.


Today's Code Snippet is from S.C., who shared this in the Side Bar a littler earlier this week ...


Classics Week: I Hate You

by in Error'd on

Originally published in Pop-up Potpourri: Sixth Time is the Charm on January 6, 2006, Shaddin sent in a strange and hurtful database connection error message.


Now we all know what it's like to be rejected, but who really is prepared to handle this type of rejection from CVS/Eclipse?


Classics Week: The Call of Codethulhu

by in Feature Articles on

What better way to start Classic Week then how we ended 2006? Originally published on Wednesday, December 20, 2006, The Call of Codethulhu is a personal favorite of mine, especially with the illustration from George E. McDougall. And speaking of that, expect to see more of George's work here soon ...


It seemed like any other job: "Java/J2EE contractors needed for a one-to-three month contract to maintain proprietary supply-chain management software." Sure, James C could have waited around to find something more interesting, but the pay was fantastic and, being such a short term contract, he figured he had little to lose. That is, until he came face to face with Codethulhu.


Classics Week: The Mentor

by in CodeSOD on

Today's Classic WTF was originally published on Wednesday, November 08, 2006. An interesting fact: this is actually the same Chris and the same Mentor from an earlier article, Mentors, the Freshmaker.  


Today's Code Snippet comes from Chris. Chris has had the distinct pleasure of being "mentored" by an amazing individual. Some time passed, then Chris bumped into The Mentor again. This time Chris had to rework a web site The Mentor had, dare I say, created? As Chris was going through the code for the page design, he noticed something curious about the footer. No matter where the page was scrolled to, the footer always showed up. "Very nice", he thought to himself, "I wonder where he got the script?" Turns out The Mentor had written it himself.


Innovative Calculator UI

by in Error'd on

Taking a cue from Apple, Sparco has designed the simplest and most elegant calculator UI ever (click here to purchase). In fact, it does one better than Apple (who offers one button) by offering no buttons. If any readers manage to pull off a UI like this for the OMGWTF contest, I'll be impressed.


(submitted by Diego P.)


Splitting Headache

by in CodeSOD on

When it comes to string manipulation, it is not uncommon to want to split a single string into multiple strings based on a delimiter. Many languages provide split functionality outright. Even in C, it's fairly easy to roll your own --- assuming you don't like strtok_r --- with functions like strchr or strpbrk.

Jake says that, in Java, this was not the case until 1.4, which is the same thing the documentation says. Apparently one of the developers with whom he works still does not realize this. The following function was developed recently and is still being used in new code.


Corporate E-mail on the Road, 1990's Style

by in Feature Articles on

First and foremost, I wanted to remind everyone about the first-ever Olympiad of Misguided Geeks at Worse Than Failure (or OMGWTF for short) Programming Contest. The entries have been streaming in and are looking really fun and interesting. There’s plenty of time left to get started, so go hack up something and submit your own entry! Who knows, you might very well win the Grand Prize of a High-Resolution JPEG of an OMGWTF First Prize Trophy and a brand-new laptop to view your highly-valuable JPEG.

So, without any further ado, here is Corporate E-mail on the Road, 1990's Style, the story of Owen Morgan’s very first professional programming experience...


Buzz, Cell Phone, Buzz

by in CodeSOD on

Mobile communications is a complicated but lucrative business. With all the buzz surrounding (and created by) cell phones, that's not surprising. And they're not just for calls any more! The new big thing is interacting with web pages and other applications via SMS.


What's SMS? Who knows, but it's an acronym so that means it's probably great. At least that's what Jared's company thought, which is probably why they were in a mad scramble to interface their web service with every cellphone on every network, ever. The problem? No one knew anything about how SMS worked.



Poor Mr. Gookin

by in Error'd on

Chad Ross works at a Certain State Agency and is unable to send any emails to his client, Mr. Gookin. The CSA's content filter just keeps blocking Chad's outgoing emails, complaining that they contain racist content. More specifically, the filter finds Mr. Gookin's last name to be particularly offensive. Because the CSA's IT administrator refuses to add “Gookin” to the filter's safe word list, Chad is left with the daunting task of asking Mr. Gookin to change his last name to something a little less racist. Now if only he could send out that email request to do so ...


Double Take

by in CodeSOD on

This is the story of two Daves. At first, they may appear to be from completely different worlds. One does client-side web development, one server-side web services. On further reflection, however, they have quite a bit in common.


For one, they both ended up together in this article. That sounds like a match made! With that in mind, Alpha Dave has something on his chest. Also, he needs to get it off.



The Loony BIN

by in Feature Articles on

Call me a Skeptical Sally (actually, don't), but whenever I hear someone complaining of random file corruption, I don't really believe them. Of course, it's a wonderful excuse if you don't know why your code doesn't work or you just slacked off and didn't get some Word document done; maybe you've even used it a few times. Still, that doesn't change the fact that random file corruption rarely never happens.

File corruption that results from inexperience (or poor training) is the real danger. Today's story comes to us anonymously, and is about an IT guy that we'll call Ness. Ness got a call from a client, who was justifiably concerned about some major problems they were experiencing with their production database. Ness did some digging and found that the database was so corrupt that the only option he could think of was restoring from the most recent backup.


Deterministic Programming

by in CodeSOD on

There is a lot of uncertainty in the life of every developer. How will this section of code interact with that section? What if the network goes down? What if a gamma ray flips that bit? What's mom making for dinner? Does radon have a smell?


In fact, a large part of computer science is the study of how to eliminate uncertainty. At the top, there are formalisms like the pi-calculus and abstractions like CSP. Sometimes simple state diagrams can be a godsend. And even if you've never seen any of those, there is still room to do your part.