Remy Porter

Computers were a mistake, which is why I'm trying to shoot them into space. Editor-in-Chief for TDWTF.

Jul 2013

The Page at Fault

by in CodeSOD on

Long before humans walked the Earth, dinosaur network engineers noticed that networks could be slow sometimes. Sending thousands and tens of thousands of lines across a network could be a serious performance problem. A particularly clever Tyrannosaur used its stubby arms to type out the first paging algorithm.

This ancient technology is well understood. So this particular bug report perplexed Kamen:


A Crony Joke

by in Feature Articles on

Steve set aside his Turkish pizza and borek and answered the phone. He was taking lunch around the corner from the office.

“The server is down!” his boss grumbled into the phone. “Where are you? Can you come back in? This is production! Production is down!”


SQL Injection Not Found

by in CodeSOD on

The bug ticket complained, “When I try and update a certain page in the CMS, I get a ‘file not found’ error.” It included more details, explaining what page in specific was the culprit, but Michael was still confused. This application had been in use for over a decade, and no one had ever had a complaint like this. He also couldn’t replicate it, at least, not until he got the user to provide the specific text they were trying to use in the update.

As soon as he noticed the sentence: “Stop; declare your intent!”, he realized it must have something to do with their SQL injection protection .


The Accounts were Pounded

by in Feature Articles on

Shortly before the global banking system chucked itself out of a 30 story window, one large bank purchased another. It may be a common financial transaction, but from an IT standpoint, the problem of integrating these two systems is always unique, always cumbersome, and fraught with problems. Sajid was one of the lucky individuals tasked with the great undertaking of moving these banks to one information system.

Sajid’s business contact at the new acquisition was Karel. The latest round of requirements from Karel described a system to track the movement of trade data from his office, in the Netherlands, to Sajid’s, in London. The underlying business logic was simple, but the nature of financial data added layers of complexity. Moving data around was insufficient- there needed to be auditing, tracing, regulatory compliance. The project needed a risk management plan, the tool itself needed a clearly documented backup and recovery plan, and on top of all of that there was the simple management overhead of doing anything in a large organization.


Success Overcompensates for Failure

by in Error'd on

Brian found that SharePoint considers a “Success” an error worth noting. Oh, Brian, we know. We know.

World of Tanks is apparently a pretty great MMO, but it looks like Jaakko won’t be joining them any time soon.


Stringing a Replacement

by in CodeSOD on

Philip inherited a large Java application. It was the sort of application that needed to solve a clear business problem, so the original programmer started by building his own “template engine”, to simplify the process of generating output.

A template engine needs a simple way to do string replacements, but unfortunately, Java doesn’t offer a String class with a variety of “replace” methods for different situations. No, this Architect had to invent this wheel, using nothing but used chewing gum and his own wits.


Ternary Over a New Leaf

by in Coded Smorgasbord on

Dimitry likes it when the bad code he finds can be sung aloud. This particular line can be sung to the tune of “Rule Britannia”.

for (var html in data["html"])
   $(data["html"][html][0]).html(data["html"][html][1]);