Recent Feature Articles

Jun 2007

WARNING: Corroding Application

by in Feature Articles on

Trevor D. recently got a job at a company that has provided all of Europe the means to ship dangerous materials for decades. He wasn't specific about which dangerous materials they deal with, so I'll speculate: radioactive, flammable, toxic, corrosive, or biohazardous chemicals, and maybe bees and cobras.

Whatever these dangerous materials are, Trevor maintained an application that could print labels for whatever dangerous goods were being shipped. These labels would list why the contents were dangerous and any necessary precautions for handling them. For instance, chemicals that can explode get a "combustible" designation, biohazardous materials get the logo of defunct New York old-school hardcore band Biohazard, and cobras and bees are labeled "warning: this package is full of goddamn cobras and bees!"


The Batch Process Manager

by in Feature Articles on

Ahhh, e-cards. Once a fun way to express those delicate emotions in a way that only hundreds of retina-burning animated GIFs and a midi version of Rush's "Tom Sawyer" can. Now, a surefire way to get your email added to spammers' mailing lists. Still, it's hard not to smile when you get an e-card.

Years ago, T. I. was working as an intern in the IT department of a small company. On their web site they offered a free e-card service, built by an outside vendor. An outside vendor named Frank. T. I. was tasked with integrating Frank's e-card infrastructure with the company's on-site servers.


Broken Communication

by in Feature Articles on

Rrrrrriiiinnngggg. Ahh, yes. The 2:00AM support call. There’s nothing else quite – rrrrrriiiinnngggg – like it to remind us that no place, not even Happy Dreamland, is – rrrrrriiiinnngggg – a sanctuary from work. “Hun,” Michael’s wife grumbled, “Aren’t you going to get – rrrrrriiiinnngggg – that?!” Michael rolled out of bed and answered the support phone. There was apparently a pretty serious problem with one of the dedicated communication servers.

“Did you check the operations logs?” Michael asked. Surprisingly, the operator had already done that. And attempted to resynching the connection. And cleared the message queue. And everything else on Michael’s step-by-step failure procedure, up to and including calling Michael when all else failed. As pleased as Michael was to find a competent operator working that shift, he still had to go into the office and fix whatever was wrong. The stock exchange was opening in seven hours, and there’d be a lot of unhappy investors if his company couldn’t relay trades.


Confusingly Confidential

by in Feature Articles on

When companies need IT work done, they tend to go to one of three places: consultants, contractors, or freelancers. Consultants fill the gap when an organization needs to leverage their collective synergy with a quality-driven approach that focuses on delivering key objectives. Contractors are great when the only remaining solution is throwing more bodies at the problem. And freelancers, they’re perfect for companies on a budget, hoping to build their technology infrastructure ten dollars at a time.

As a freelancer, Allen G. is able to provide inexpensive (often “quick and dirty”) software to small businesses who couldn’t otherwise afford custom software. Though rewarding to some, finding work as a freelancer can be pretty difficult, especially without any formal qualifications or experience. That said, Allen was pretty excited to find an opportunity for a “big” freelancing project at a local web design shop. They were interested in talking and wanted him to sign their standard Non-Disclosure Agreement before divulging any details. 


Sacrebleu!

by in Feature Articles on

In the mid 90s, Ken W. was working in the distribution center of a large commercial printing company. Since the department didn't generate any revenue, it was treated as a cost center. As such, getting purchases approved had a difficulty level somewhere between squeezing a camel through the eye of a needle and being rich and getting into heaven.

Since the printing branch was sending order information in Word documents or Excel spreadsheets, the distribution center needed Office licenses. Office costs more than $0, however, and the vehement opposition to approving purchase requests trumped the need for the software.


We Prefer Our Way

by in Feature Articles on

Most people think that Their Way of doing things is the best way. After all, it works, it’s always worked, they’re good at it, and there’s no need to change it. The folks inside D.T.N.’s company feel the same way: the corporate office has Their Way of doing things (which is obviously superior) and D’s branch office has Their Way of doing things (which is also obviously superior). And being that the corporate office houses the CTO (as we learned in the case of The Fully Automated Manual System), Their Way always trumps the branch office and Their Way.

Fortunately, the corporate and branch offices are fairly separate and are allowed to enjoy a whole host of separate policies and procedures, from when Crazy Shirt Day is to which side toilet paper rolls are hung on. Both attendance taking and conference room scheduling fall into this category: both are mandated throughout the company, but how exactly it’s done is up to the Office Manager.


Announcing the OMGWTF Winner

by in Feature Articles on

The Olympiad of Misguided Geeks at Worse Than Failure Programming Contest was not easy to judge. With their use of OCR, Extreme Hardware Virtualization, and Fractions for math, each finalist represented a very unique and a very wrong way of implementing a simple calculator. We truly believed that each finalist deserved to win, but as Connor MacLeod would say, “there can be only one [OMGWTF Winner].”

To make the determination, we asked our panel of judges (Raymond Chen, Joel Spolsky, and Jeremy Zawodny) to decide. “I’m impressed by all the work people put into this,” wrote Joel, “I guess it’s possible to take pride in just about anything, which explains how some of the code I’ve seen got written in the first place.”


Tonight... We Lunch... In HELL!

by in Feature Articles on

J Cooper sat down with his buddy Holden for lunch. They'd eat together pretty much daily, enjoying a meal while discussing work. While they were eating, Holden mentioned a particularly irritating issue that he was troubleshooting.

Holden explained the process as it should work — clients would submit flat files which would automatically be read into the PICK database, then invoices would be generated. If there was an import error, it'd send an email alert to the representative that handled that particular client.


OMGWTF Highlights #3: Code

by in Feature Articles on

While going through contest entries, we were bummed that we don't have more high-res JPGs (and laptops) to give out. Here are some highlights that didn't quite make finalists, but got the Honorable Mention award. For which the prize is an honorable mention in this article. This is the third and final entry in a three-part series.


Massimo's ASMCalc avoids expensive built-in arithmetic functions, instead using a function pointer to assembly code patched at runtime:


Who is Kyle Söze?

by in Feature Articles on

The First Day of a new job is almost always slow and uneventful. A bit of paperwork in the morning, a quick walkthrough of the system, and possibly a trivial First Assignment. Nick’s First Day at the International Shipping Company (as I’ll call it) was no exception. In fact, it was so slow that it seemed like the First Day would last all week. That is, until a frantic coworker burst into his cubicle.

“Hey, New Guy, do you know anything about SQL Backups?” Before Nick could even nod affirmatively, he continued, “’Cause, the backup on our Tracking Application is failing, and that’s a big problem. Oh, I’m Dave by the way.”


OMGWTF Highlights #2: Misc.

by in Feature Articles on

While going through contest entries, we were bummed that we don't have more high-res JPGs (and laptops) to give out. Here are some highlights that didn't quite make finalists, but got the Honorable Mention award. For which the prize is an honorable mention in this article. This is the second in a three-part series.


Pete Bassett's "Petes Pants Calc" took the easy way out - rather than writing complicated C code, it shells out to VBScript for all arithmetic operations. (Petes Pants Calc)


It's Like Raiiiiiin

by in Feature Articles on

Regardless of what Alanis Morissette may tell you, irony isn't like ra-i-aiiiiin on your wedding day. It's more like someone making an offhanded remark to reassure you, but rather making you feel worse.

An anonymous submitter (we'll call him "Cody") had recently taken over a large internal application with a substantial userbase. With guarded optimism, he was excited to get to know the users and to learn and improve the application. Cody was eager to see the code and the database.


Assisted Processicide

by in Feature Articles on

Rebellious users are a pain. Introducing a feature that changes the standard workflow is a harbinger of confused users and new help-desk tickets. Eventually, a user might stumble onto some workaround to avoid the new feature, and this workaround will then be passed down and changed via interoffice oral tradition. Ancient tribes that were present for the creation of the world 6,000 years ago passed down tales of the earth mother. We pass down keyboard shortcuts.

Jesse B. worked on banking software years ago. As banks control lots and lots of (other peoples') money, they make the rules. Jesse was entangled in maintenance of an application for tellers and retail banking clerks. His time was dedicated to customization and enhancement for a particular client bank.


OMGWTF Highlights #1: Custom UIs

by in Feature Articles on

While going through contest entries, we were bummed that we don't have more high-res JPGs (and laptops) to give out. Here are some highlights that didn't quite make finalists, but got the Honorable Mention award. For which the prize is an honorable mention in this article.


Donald Straney was kind enough to give us a free enterprise-level license for his calculator software. It requires the user to minimize and restore the window to increment numbers or choose operands.


OMG Finalist Week Conclusion & Voting

by in Feature Articles on

I hope you enjoyed this week's edition of WTF! I had a lot of fun reviewing and writing up these fantastic entries:

Why not take a moment to vote on your favorite (Voting Page). Although the final decision will be made by the panelist of judges, let's see how their descision compares with yours....


OMGWTF Finalist #12: ExtensibleCalc

by in Feature Articles on

This is the twelveth article in a twelve-part series that discusses the twelve finalists and their calculator submissions for the OMGWTF Programming Contest. The entries are being presented in the order submitted, and the winner will be announced on June 18, 2007.


Out of all of the OMGWTF submissions, Entry #100342 (James Ng’s ExtensibleCalc) was the only one that shipped with ten DLLs. And for good reason: the ExtensibleCalc relies entirely on an external “calculation engine” to handle all of the mathematics.


OMGWTF Finalist #11: VICE, Virtual Integrated Circuit Engine

by in Feature Articles on

This is the eleventh article in a twelve-part series that discusses the twelve finalists and their calculator submissions for the OMGWTF Programming Contest. The entries are being presented in the order submitted, and the winner will be announced on June 18, 2007.


NPN TransistorVirtualization was not an uncommon theme among several of the OMGWTF entries. It only makes sense: why stop at abstracting layers of software when the entire hardware platform might need to be changed later on? Sure, some might argue that the “operating system” or “compiler” can handle all those changes, but why risk it? Entry #100336 (Randolpho St. John’s VICE, Virtual Integrated Circuit Engine) sure didn’t: it took the concept of a virtual machine way too far.


OMGWTF Finalist #10: FerronCalc

by in Feature Articles on

This is the tenth article in a twelve-part series that discusses the twelve finalists and their calculator submissions for the OMGWTF Programming Contest. The entries are being presented in the order submitted, and the winner will be announced on June 18, 2007.


There were a lot of entries that pushed the limits of C and C++: self destroying objects, self-modifying code, you name it, someone probably did it. Entries like this introduced a whole new level of convolution that leads to a progression of reactions: “… huh!?... is that doing what I think it is!?... who would even think of that!?... why would they even /allow/ that!?... huh!?” Within this category, we felt that Entry #100265 (Dennis Ferron’s FerronCalc) was the most ridiculous and most complete.


OMGWTF Finalist #09: Terry's Calculator

by in Feature Articles on

This is the ninth article in a twelve-part series that discusses the twelve finalists and their calculator submissions for the OMGWTF Programming Contest. The entries are being presented in the order submitted, and the winner will be announced on June 18, 2007.


Why spend time developing a new, unfamiliar User Interface when a perfectly good one has been in production for over thirty years? That must have been what Terry Lyons thought when he put together Entry #100253 (Terry’s Calculator). The long-established UI that he used was a bona-fide solar-powered desk calculator. Or, at least, a scanned picture of one on a wooden table:


OMGWTF Finalist #08: Universal Calculator

by in Feature Articles on

This is the eigth article in a twelve-part series that discusses the twelve finalists and their calculator submissions for the OMGWTF Programming Contest. The entries are being presented in the order submitted, and the winner will be announced on June 18, 2007.


If you’ve ever had the pleasure of working on or even using a giant, monolithic, internal application that was developed by the “crack team” of in-house programmers, then you’ll most certainly appreciate Entry #100252, Greg D’s Universal Calculator. It was designed to be the end-all/be-all of all calculators past, present, and future, and like the Titanic applications it was inspired by, the Universal Calculator fails at everything except being completely useless.


OMGWTF Finalist #07: Rube Goldberg's Calculator

by in Feature Articles on

This is the seventh article in a twelve-part series that discusses the twelve finalists and their calculator submissions for the OMGWTF Programming Contest. The entries are being presented in the order submitted, and the winner will be announced on June 18, 2007.


Developing Completely Incorrect Solutions to Non-Existent Problems (The Customer Friendly System, Enterprise Rules Engine, etc) takes a lot of effort, a whole lot of smarts, and an almost infinite amount of misdirection. Each of these CIS2NEPs are borne from a very basic and theoretical concept, each starting with a single phrase: “wouldn’t it be nice if…” In the case of Entry #100206 (Charles Nadolski’s Rube Goldberg’s Calculator), it was “wouldn’t it be nice if we could use something than decimals?”


OMGWTF Finalist #06: OMG!OCRCAL

by in Feature Articles on

This is the sixth article in a twelve-part series that discusses the twelve finalists and their calculator submissions for the OMGWTF Programming Contest. The entries are being presented in the order submitted, and the winner will be announced on June 18, 2007.


Yes, you read that title correctly. OMG!--O-C-R--CAL. That's right, someone just had to go and implement Optical Character Recognition for their calculator. But if that was all that Entry #100175 (Ivan Milyakov's OMG!OCRCAL) did, it surely wouldn't have made finalist. The OMG!OCRCAL is a bit more... in depth... than what you might think.


OMGWTF Finalist #05: WTF Web Calc

by in Feature Articles on

This is the fifth article in a twelve-part series that discusses the twelve finalists and their calculator submissions for the OMGWTF Programming Contest. The entries are being presented in the order submitted, and the winner will be announced on June 18, 2007.


All Real Applications these days have a few things in common: a Client/Server Model, a Web 2.0 Interface, and good amount of outsourcing. Entry #100123 - Dave C.'s WTF Web Calc - managed to accomplish that with an impressively minimalistic approach.


OMGWTF Finalist #04: TerseCalc

by in Feature Articles on

This is the fourth article in a twelve-part series that discusses the twelve finalists and their calculator submissions for the OMGWTF Programming Contest. The entries are being presented in the order submitted, and the winner will be announced on June 18, 2007.


I learned an interesting thing when reviewing Entry #100103 (Welbog’s TerseCalc): a whole lot of computers today don’t have mathematical coprocessors! I was a bit skeptical at first, but then I remembered something: our 386 computers had a slot for the 387 chip, i.e. Intel’s mathematical coprocessor, and my computer today does not have a slot for me to add a mathematical coprocessor! Therefore, this fact must be true. It was also written in an authoritative-looking PDF, so double-therefore, it must be very true.


OMGWTF Finalist #03: The estimator

by in Feature Articles on

This is the third article in a twelve-part series that discusses the twelve finalists and their calculator submissions for the OMGWTF Programming Contest. The entries are being presented in the order submitted, and the winner will be announced on June 18, 2007.


Before even hearing the problem description, “certain” developers already know what the solution will be: something with a Client-Server model. It could be .NET Remoting, Java RMI, or some homegrown protocol, but whatever it is, it should use network communication to interface between layers just in case it has to scale up for multiple computers. The Client-Server model was not an uncommon approach to the OMGWTF contest, but Entry #100099 – Keith Lucas’s estimator – did it in the most unconventional manner.


OMGWTF Finalist #02: The FileSystemHashMapNotepadCalculator

by in Feature Articles on

This is the second article in a twelve-part series that discusses the twelve finalists and their calculator submissions for the OMGWTF Programming Contest. The entries are being presented in the order submitted, and the winner will be announced on June 18, 2007.


It should come as no surprise that, after asking the WTF community to build a fairly useless calculator application on an operating system that already has a perfectly good, built-in calculator, there were some pretty interesting cases of code reuse. Or, more accurately, “application reuse.” Out of all of the “Window’s Calculator” wrappers, none were quite as spectacular as Entry #100066, or Dan U’s FileSystemHashMapNotepadCalculator. Let’s take a look at it in action (make sure you have Flash enabled):


OMGWTF Finalist #01: The Buggy 4-Function Calculator

by in Feature Articles on

This is the first article in a twelve-part series that discusses the twelve finalists and their calculator submissions for the OMGWTF Programming Contest. The entries are being presented in the order submitted, and the winner will be announced on June 18, 2007.


As Jake, Intern Boyd, and I sat around the conference table and scrolled through codefile after codefile, solution after solution, Entry #1000043 – Stephen Oberholtzer’s “Buggy 4-Function Calculator” – sucked us in. It didn’t feel like we were looking at a purposely contrived contest entry, it felt like a real, live, rotting codebase. The kind of codebase that plagues so many organizations: fragile, old, bug-ridden, and passed through the hands of several developers.