Robert H. writes, "I'm not sure if I'm interested in a new product called 'Internal Server Error'."



At his day job, Peter writes code for the manufacturing industry and, in doing so, works a lot with PLCs from GE. As of late, he's been working on an application that processes XML configuration files exported from GE's main programming IDE "Machine Edition" to generate extremely complex diagnostic information that the IDE doesn't provide. You know, things like, "Has that variable that you are using in a calculation ever been initialized?"

As he was looking through a 23,000 line configuration file that described the hardware setup of a particular project, Peter discovered 8,000 lines like the following that were used to store binary blob data.

John worked for an MSP with a broad range of clients. An hour after arriving home from work one day, he received a call from a local doctor’s office. Kelly, the office manager, barely let him finish his “Hello.”

“I’m so glad you’re there! I think someone’s hacked Dr. Gates’ computer!” she cried. “He’s trying to enter patient notes, and someone else is typing on his screen- like, no joke, I’m watching it happen! I thought it might be our software developer, Jason, but he’s on vacation this week and this doesn’t make any sense. Did someone hack in? Could they do that?"

Clevelanders*! Mark and Remy will be visiting my hometown this Friday (Sept 12), and we thought it'd be a opportune time to hold a Cleveland TDWTF get-together.

If you'll be in the area, please drop me a line and we'll figure out the specifics. There's an especially good chance I'll remember to bring swag this time!

Ancient Daze


Although we're professionals now, we all started out as humble students - wide-eyed and innocent of the ways of proper coding practices in the corporate world. Back then, everything was new, and we had no real way of knowing whether what we were looking at was wizardry or WTF.

When C. T. was still in school, he ran across a routine for validating dates. It was written in lowly assembler. He found it fascinating, and spent a great deal of time examining its innards. It was designed to run on a 32-bit machine that lacked multiply or divide instructions. It also did something else unusual for the day: it worked on four digit years.

Rebecca's first day at Mega Thrift Stores (or MTS) didn't start well. She was hired as an assistant to Maggie, the aging head of Quality Assurance, to handle issues and complaints from regional managers about their resource tracking software. Rebecca asked if they used Bugzilla.

"We don't use Bugzilla here," Maggie told her, with the look of a stern schoolteacher.

"If you insist on using Imperial weight measurements, you had better have pretty accurate scales," wrote Tom M..

Feeling Validated


Ugh...Address validation. Take some address strings, add to that a city, state, postal code, and country... make sure they are are all look syntatically 'valid' based on some business logic - it's not as easy as we'd hope to be able to handle EVERY possibility. But, no matter WHAT you come up with, I can guarantee that it's guaranteed to be much easier to digest than the block of validation code discovered by Mickey.

According to Mickey, there are a couple of special rules for this address validation that result in some of the WTF-ness. If an address is changed, and it's "close" to existing address, then the user needs to be prompted to confirm the address. And this prompt shouldn't take place unless the address itself has been changed. Wanna bet that the user specification for 'close' included the phrase 'you know what I mean'? That's probably the reason why the code doesn't actually address the idea of 'closeness'...the developers are still waiting for the definition.

Anyone with any significant amount of experience has had to estimate a project of some complexity. The only real way to do it is by breaking down the project into major parts. Then breaking each part into smaller parts and so on, until you have a list of units-of-work that you can reasonably estimate the amount of time that will be required to do that work. Then you figure in dependencies, see what can be done in parallel, factor in available staffing, add it all up, pad by as much as you think you can get away with to account for unscheduled changes, miscalculations, emergencies and management stupidity. Finally, you put it into a project management tool and make your presentation to the Powers That Be.

Rob worked for a company that brought in three consultants to do a major rework of their database structure. One of them was being paid about $85 an hour for the sole job of filling out and maintaining a Microsoft Project schedule for the project. The first thing the consulting team did was put together a proper schema diagram of the database to be reworked. Then they tracked down all of the code that wrote to or read from each table. Armed with all of this ammunition, Mr. Project was able to put together a project time line.

Matteo recently interviewed a candidate that was employed elsewhere as an “architect”. His responses to the standard soft-skills questions sounded a bit rehearsed, which made Matteo suspicious, so he started asking some more technical questions, like: “What’s the difference between an interface and an abstract class?”

“Well, in some logarithms , an interface is going to be internal to the system, but an abstract class has terminators that make it external.”

View Article Archives >>