Recent Articles

Feb 2010

Salmiak Attack

by in Souvenir Potpourri on

Ever since the first Free Sticker Week ended back in February '07, I've been sending out WTF Stickers to anyone that mailed me a SASE or a small souvenir. More recently, I've been sending out the coveted TDWTF Mugs for truly awesome souvenirs. Nothing specific; per the instructions page, "anything will do." Well, here goes anything, yet again! (previous: Surprise!).


Finland, I surrender.


Problematic Problem, Problem supply, and a Text-Destroying Problem

by in Feature Articles on

Problematic Problem (from Ben)
Way back when, I was responsible for doing on-site support for a fairly complex ERP solution that our company sold. My support radius was 100 miles, which meant I was on the road a lot and traveled to places I wasn't all that familiar with. My trusty navigation aide was a compass and a Rand McNally map book. Fancy, online mapping services weren't around yet, let alone super-fancy GPS units.

One day, I was assigned to visit a customer on the far end of my region (99.9999999 miles), first thing in the morning. It meant that, not only would I need to battle rush-hour traffic through the city, but then drive another 60 miles once that cleared. I was not a fan of early mornings, and getting that client on that wintry day meant a 5:30A departure with a 2.5 hour commute.


Rendered Pointless

by in CodeSOD on

"The mastermind behind our system is the Senior Developer," wrote Daniel, "he's naturally an expert at all things code, but he especially excelled at back-end systems. After all, true geniuses always value function over form."

"The Senior Developer liked to do things a little differently, but we got over his quirks. Take, for example, this handy dandy function to ease the pains of those complicated cast operations we all hate."


Testing the Path to Pain

by in Feature Articles on

from user'Jinx!' on FlickrTest plan development. Regression analysis. Systems documentation creation. Test case execution. Regression testing.

If you're anything like me, then those words may as well have been boring, tedious, mind-numbing, tiresome, dreary, and the-worst-thing-in-the-world. Sure, they're all important and necessary, but you found out that, due to budgetary constraints, you couldn't personally do any of those things and could only focus on coding, you probably wouldn't complain. Julien G. certainly didn't mind, especially since the "drudge work" would still get done by the overseas team while everyone state-side was fast asleep.


isValidNumber()

by in CodeSOD on

"When my company, a large financial corporation, decided to outsource overseas," Ned wrote, "they went for the best: CMMI Level 5. Not Level 3 or Level 4, but Level 5. 'Heck,' the CTO told us half-jokingly, 'the offshore team will make us look bad!'"

"It's hard to describe the 'high quality' code that gets checked-in to our repositories. 'Bloat' just isn't quite strong enough, nor is 'incredibly horrible mess that makes me want to smash everything in sight'. There were a lot of issues with the code, but this one is my best short examples: isValidNumber()."


Tell a programmer

by in Error'd on

"I guess the contact lens service that sent me this package couldn't read the label," wrote Mike Totman, "Maybe they should double check their prescription."


Where's Our Webserver?

by in Feature Articles on

“HERE IT IS!” exclaimed Miha’s boss with a victorious look. “See! I told you that I’d find you a computer! Now we can get you doing something other than fetching coffee!” he chuckled.

The ‘new’ desktop was a rather outdated SGI Indy with a brownish patina that made it seem like it had been tucked away in a closet for years. But it was better than nothing! Up until this point, Miha had been doing nothing more than reading through outdated manuals for the one product that the company he was interning at developed and supported. He welcomed the lil’ blue marvel.


Last, Last, Last, Last, Last, Last, Last Year

by in CodeSOD on

"At my previous job," John S writes, "we had a good amount of formality in the development process. Business 'customers' would define requirements (or bugs), business analysts would write requirements to implement those, and we would write code against the requirements."

"When I took a new job at a small company, I knew the processes wouldn't be a little more 'casual', but I never quite expected this. Even the code is written casually, avoiding unnecessary formalities like arrays and loops."


Bessy Keeps You Safe

by in Feature Articles on

For some reason, Violet K. couldn't show her sex video to the class.

Though the YouTube-posted "Mammalian Reproduction Systems" had loaded for last period's grade 10 biology class, all that came up now was an all-too-familiar screen:


Probeility of Success

by in CodeSOD on

The Fearless Leader at Randy's company had heard wonderful things about Service-Oriented Architecture, and knew that's exactly what their in-house applications needed in order for the company to remain competitive. Obviously, in-house developers couldn't possibly have the skill or knowledge to develop such things, so the Fearless Leader brought in consultants to develop the service suite.

One of the web services that the consultants developed was the Global Customer Search. Essentially, it searched for customers through a handful of different systems throughout the entire enterprise. "According to the documentation," Randy wrote, "the GES uses an advanced scoring algorithms to determine how close of a match a record may be when someone searches using the web service. As you can see from the code, the consultants started off on the right foot... and then decided to give up at the end. "


Sunited States of Americans

by in Error'd on

"This came for Susan H, who is one of the professors in our department," Nathan wrote. "This is probably why REPLACE(address,'USA','United States of America') isn't the best strategy."


The Great Cascade

by in Feature Articles on

It was not the best start to a Monday morning. When Chris K. got in, the entire IT department was in full-panic mode because the Linux mail server that he administered was unresponsive.

And to make matters worse, he couldn't even get to the bottom of the issue. Almost every other minute, his phone would ring with someone, somewhere asking for a status update. When he turned his phone off, people started showing up at his desk. And then there were the status meetings where all he could report was "still broken." Finally, in desperation, Chris reserved an all-day “meeting” in one of the lesser used conference rooms, undocked his laptop and ducked for cover.


Quite Contrary

by in CodeSOD on

Mike writes, "Oh, the things that I find in our codebase."

"I have no idea who put this in, or why it was put in. But it's there, and it's somehow called in a few places. As tempted as I was to investigate how it was used, I figured I'd spare my sanity."


The Missing Interview, Infantile Expectancies, & More

by in Tales from the Interview on

The Missing Interview (from Charles Ross)
I went for an interview to work as a junior IT support Engineer at a certain Royal bank here in Scotland. It was a late interview, around 4:45 in the afternoon, and I turned up at 4:30, sharply dressed, and with all the documents I'd been requested to bring. Since this was a bank and security was a must, I had a full five year history sitting in front of me.

I sat down and was quickly ushered into an interview room. I sat there for 20 minutes waiting, occasionally sticking my nose out the room to see if anyone was coming. After another five or so minutes, it was about 4:55 and I decided to go hunting for someone.


Phishing for a Refund

by in CodeSOD on

As I'm sure is the case with many of you, I sure do love me some tax refund. Once my W2's and other year-end tax forms documents come in the mail, I get my e-File in and wait for my refund to be direct deposited.

Now, since the whole refund process involves computers and the internet, of course, it's a prime target for spammers and phishers who want nothing more than to ignite a little FUD and get some of your hard earned cash.


Sponsor Appreciation, Banzai Bouncer, Untraditional Data Rack, & More

by in Feature Articles on

Please show your support for The Daily WTF by checking out the companies that have been kind enough to sponsor us. And, in doing so, I’m sure you’ll find some pretty cool products and services built by like-minded developers and IT professionals.

 

The Daily WTF Sponsors

Microsoft WebsiteSpark   Microsoft WebsiteSpark - a great program for web shops and freelance web developers and designers where you get some great software (Visual Studio Pro, SQL Server, Server 2008, etc), at no upfront cost for three years; it also provides support and resources to help grow business
Peer 1   Peer 1 - provides award-winning Managed Hosting, Dedicated Hosting, Co-location, and Network services offered through 15 data center across North America. With over 10,000 businesses hosted on their legendary SuperNetwork™backbone, PEER 1 delivers one of the highest server performance and network outputs in the industry.
Mindfusion   MindFusion - a great source for flow-charting and diagramming components for a variety of platforms including .NET, WPF, ActiveX and Swing
SoftLayer   SoftLayer - serious hosting provider with datacenters in three cities (Dallas, Seattle, DC) that has plans designed to scale from a single, dedicated server to your own virtual data center (complete with racks and all)
SlickEdit   SlickEdit - makers of that very-impressive code editor and some pretty neat Eclipse and VisualStudio.NET tools and add-ins, some of which (Gadgets) are free. Check out this short video highlighting just one of SlickEdit's Visual Studio integration features.

Emergency Faxes

by in Feature Articles on

As far as technologies go, faxing is ancient. It predates the telephone by over a decade and, despite vast advances in scanning and email technology, the fax still remains a standard form of communication.

When a transmission goes out, the occasional telecommunication ‘hiccup’ or line noise can corrupt the fax. Most modern fax machines have some rudimentary error handling that will alerts the user that the fax should be resent.


Almost Counting Past 100

by in CodeSOD on

"At the contract shop where I work," writes John S., "I have been assigned to a new web-enabled mapping program to help take a look at some of the issues they've been having."

"When an item is added to a map, it is given a label, such as Item #1, Item #2, etc., with the number on the label incrementing for each new item. We had been having a problem where map labels were not being assigned uniquely when there were more than 100 items per map. It was always starting at Item #100 when reloading the map from the database. This was causing issues since it was the map label name that was being used for the unique identifier (don't get me started on that). Curious, I took a look at the code to decipher how the label ids were being assigned."

setCount: function(label) {
        var layer;
        var count;
        if (label.charAt(label.length - 2) == ' ' ) {
                layer = label.substring(0, label.length - 2);
                count = label.substring(label.length -1) * 1;
        } else {
                layer = label.substring(0, label.length - 3);
                count = label.substring(label.length - 2) * 1;
        }
       
        if (this[layer] < count) {
                this[layer] = count ;
        }
}

Passed Around

by in Feature Articles on

Photo Credit: pheezy @ flickr The rejection had taken three months to arrive, and now somebody, somewhere, owed Luis K an explanation.

Why had a required feature been rejected? He couldn't tell from the cryptic jumble of control codes and received/forwarded stamps that overflowed the "office use only" box. The internal trouble-ticket system just showed "handled externally".


Else... where?

by in CodeSOD on

"I had a professor once who said that given enough NAND gates, he could rule the world," writes Rob B. "This was a roundabout way of saying that, using a whole bunch of NAND gates, you could create the function of any other logic gate. You shouldn't, because the other logic gates exist and it would be hugely wasteful to use NAND gates to do the same thing, but it can be done. It turns out this applies to code as well."

"We got some utterly garbage C++ code from a subcontractor. The error-to-lines ratio was amazingly high, and there were a lot of things to hate about it (like having one global function to get bits from a binary value which didn't work, and several different localized one-off solutions which did work). My main WTF moment, however, was the following."