Recent Articles

Nov 2014

Classic WTF - The Defect Black Market

by in Feature Articles on

For us, the day after Thanksgiving is typically known as "Black Friday". There is nothing sinister about it - oh no - just lots and lots of opportunities to go shopping and save cash along the way and take businesses from the "red" (loss) to black (profit!). This reminded me of an article from July 2012 that I'm positive that you'll enjoy.


When Damon's coworker stopped by his cubicle for a chat, Damon wondered if they should have met in a dark alley somewhere. Damon, a developer, and his coworker in quality assurance were meeting to trade bugs on the newly created Defect Black Market.


Classic WTF - Yes, The Table is Still There

by in CodeSOD on

Our Discourse forum has received a mixed approval rating. Many folks like it, but others still find it lacking in areas in certain clients. Well, no matter your opinion, I can guarantee that, as it was true when the article first ran, our forum doesn't have the same problem mentioned below.


"Having recently upgraded my forum software," Kinta wrote, "I noticed that my site had been running incredibly slow."


What Kind of Grass Do They Have in Canada?!

by in Error'd on

For those of us in the US, today is our "Friday" in lieu of the Thanksgiving holiday. So, in honor of our nation's most hallowed day of feasting (and deep discount shopping the day after), here's an Error'd two days early. (Don't worry non-USians, we'll have classics running the rest of the week.) Enjoy!


"I was browsing for Grass Trimmers on the Canadian Tire website and...well...I'm not sure these would quite do the job," Brent W. writes.


Genderize

by in CodeSOD on

If someone suggested that you write a function which, given a person’s name, tells you what gender they are, you might caution that this is a hard problem. You might suggest a solution like a Bayesian classifier, which could be trained, or you might say, “Maybe we should just let the users tell us.”

There are a few things you almost certainly wouldn’t suggest. You wouldn’t suggest using ColdFusion , because CF is constructed out of sin and unicorn tears. And you certainly wouldn’t suggest trying to use regexes to do this job.


An Interesting Way to Find Even

by in CodeSOD on

While combing the server logs for clues as to what might have caused the latest incident in staging, Steve was startled to find that the box he was looking at hadn't logged anything for months.

Was logging disabled? No, it all looked fine. He accessed the box directly and the site came right up, complete with an entry in the access logs. So where were the logs for the past three months?


Turn Off Your Uter

by in Error'd on

"Not quite sure what to do here... should I, or shouln't I turn of my computer... and what about my uter?" wrote Peter P.


What a SAP

by in Feature Articles on

On day one of the project, Kenneth was given a single rule that was to be followed under all circumstances. “You do not talk to the SAP contractors. They’re too busy, and their time is too valuable. They do not have time for front-end developers.”

As a front-end dev, Kenneth was used to being told to take his crayons and get back to work. A front-end dev forbidden from talking to the developers behind the back-end? What could go wrong.
Gift box icon
What’s in the box? And why does it smell so bad?

The product was a “redeem points for cool products” system. A customer could purchase a gift-box. The outside of the box was labeled with a public code, and the inside was labeled with a private code. A user could enter both codes into the system to redeem points. Those points could then be used to buy tchotchkes from their web store.


WTF from A to Z

by in CodeSOD on

Alex's customers were having issues with a web project management console developed by a coworker. Upon opening the code to see what was causing all the JavaScript errors, he learned that the original developer was clearly an expert in web development standards. The code file itself was JavaScript. The use of the .css() function definitely proved his mastery of Cascading Style Sheets. Hard-coded tags demonstrated his deep knowledge of HTML. Finally, his variable naming scheme is essential to maintaining the coveted "Now I Know My ABC's" certification.

var i = "DivContainer";
var j = "DEFAULT";
var k = "DEFAULT";
var l = a(document.createElement("select")).css("min-width", "200px").append(a(document.createElement("option")).val(""));
var m = a(document.createElement("select")).css("min-width", "200px").append(a(document.createElement("option")).val(""));
var n = a(document.createElement("select")).css("min-width", "200px").append(a(document.createElement("option")).val(""));
var o = a(document.createElement("input")).attr("name", "group1").attr("id", "RessRadio").attr("type", "radio");
var p = a(document.createElement("input")).css("width", "250px").attr("type", "text");
var q = a(document.createElement("input")).attr("id", "HiddenRessID").attr("type", "hidden");
var r = a(document.createElement("input")).attr("name", "group1").attr("type", "radio");
var s = a(document.createElement("input")).css("width", "250px").attr("type", "text");
var t = a(document.createElement("input")).attr("type", "hidden");
var u = a(document.createElement("a")).addClass("JButton").text("Display");
var v = a(document.createElement("label")).css("color", "Red");
var w = a(document.createElement("label")).text(" Display all employees assigned to a project: ");
var x = a(document.createElement("label")).text(" Display all projects assigned to an employee: ");
var y = a(a(this)[0]);

y.append("");
f = a(document.createElement("div"));
f.css("border-top", "1px solid Gray").css("width", "450px").css("padding", "5px");
f.append(a(document.createElement("table")).append(a(document.createElement("tr")).append(a("").append(a("").text("President:"))).append(a("").append(l))).append(a(document.createElement("tr")).append(a("").append(a("").text("Vice-president:"))).append(a("").append(m))).append(a(document.createElement("tr")).append(a("").append(a("").text("Head office:"))).append(a("").append(n))));
y.append(f);
y.append(a(document.createElement("br")));
y.append(u);

Selling Out Again… with Puppet Labs!

by in Announcements on

Several years back, I confessed to selling out. But there was a catch: instead of running those rubbish Google ads, we would run hand-picked ads from relevant tech companies.

This worked out wonderfully and, as many of you commented, you first heard about some really cool tools and services, here on the site. So, to commemorate the site relaunch, we wanted to do something really special and work with a select group of tools/companies in the industry to sponsor some entertaining content for you, our readers. You know, things like Radio WTF's Make It Work, OMGWTF Contest, or even Mandatory Fun Day.


The 8K Bug

by in Feature Articles on

The scene: late Friday afternoon, a medium-size company in a big-size panic. Tom and the other web developers churned through last-minute fixes on a client’s new e-commerce site- a site that should’ve been done and deployed two weeks earlier.

Cromemco 8K Bytesaver (1976)

Tom committed his latest changes on a CSS file to the SVN repository, wiping sweat from his brow. He updated his local repository, then went back to Dreamweaver, shaking his head. The company’s web designers insisted the devs used Dreamweaver. It wasn’t that bad, Tom supposed, but there were several better-


Committed to Committing Commissions

by in CodeSOD on

Simon worked in a small shop that supported a sales system. One of the features of the system was that sales commissions were stored in the database. For the sake of simplicity, the sales commissions were stored as the multiplier factor needed to compute the total sale. For example, a 5% commission on $100 would be $5, so the factor would be 1.05 so you could just multiply: 100 * 1.05 -> 105.

Of course, when they needed a report that showed the percent commission for a given sale, they had to work backward from the multiplier to get the actual value.


A Bad Day for Recovery

by in Error'd on

"I guess this gives new meaning to 'Read-Only Fridays'," writes Petr S.


Citizen Blaine (Pt 2)

by in Feature Articles on

Citizen Blaine is the story of one genius developer’s career. Last time, we saw the start of his arc of success. He started by accomplishing the seemingly impossible, and moved on to design the impossible system.
We last left Rich, the desparate developer on a deadline, trying to trace the mystery of Blaine’s last word- “Rosebud”. His search brought him to Dave, the salty and rude developer who maintains SLED, part of Blaine’s legacy.

“So, Blaine leaves the SLED team to go start his supply-chain crapfest, right?” Dave said. “And allllll of the problems with SLED are somebody else’s fault.” Dave’s eyes picked up an evil gleam as he turned to Rich. “He was home free… until Franz came in.”

SLEDding Uphill


Exceptionally Secure

by in CodeSOD on

Error handling is not an easy task. Even the tiniest bit of code can fail in spectacular ways.

Luckily, modern programming languages tend to use at least some sort of exception model, which means that even if your program crashes, you’ll still be able to obtain more debugging information than a "Segmentation fault" or other generic error message would provide.


Citizen Blaine

by in Feature Articles on

Rich had a five-alarm project. Six months ago, the legal department became aware that government regulations on labeling would change. That information slowly ground its way through the intestines of the company, until a pile of poorly documented, barely specified changes landed on Rich’s desk. If he didn’t implement those changes in the next 48 hours, a half-million units of commodity chemicals were about to pour out of a processing plant and be illegal to ship.

The problem was confounded by the nature of the labeling system. It was tied into a home-grown, supply-chain management system. Theoretically, it was a one-stop shop for everything- formulations, MSDSes. In reality, it was a complicated thicket of unrelated applications which dragged data around between various silos, and usually crashed in the process. Rich had no idea what this change was going to involve. Only one person, the head of the Supply-Chain IT team, could point him in the right direction: Blaine.
Rosebud, the sled
Blaine’s office was normally crammed with the awards, trophies, and various “atta-boy” certificates which honored him for a job well done around the company. Today, the walls were bare, and all of those meaningless honors were piled up in a box on his desk. Blaine ignored Rich, and finished packing his box.


A Binary Number Generator

by in CodeSOD on

Rich had heard countless complaints from Cindy in Finances that the reports were "slow".

Mostly though, he'd blown them off -- anything shy of instant was "slow" to her, and there wasn't a lot of room to go wrong in an SSRS package. Still, she was pretty, so he decided to take a look. Maybe he could speed up the reports and earn her gratitude. How bad could it be?


Just Testing the News

by in Error'd on

Thanks to Jesse S. we know that the Sydney Morning Herald isn't afraid to do their testing in Production.


Serendipity

by in Feature Articles on

Given the title, most of you are expecting a story that goes as follows: Boy meets girl. Girl writes phone number inside a book in a used book store. Ten years pass and boy searches for book. Boy finds book and gets girl. But not this time. Instead, Andrew is the source of a story that ranks much higher on the believability scale.

Andrew's father worked for SmallishNicheCo where, like many small companies in the early 1990s, the sum total of IT knowledge was non-existent. Every problem and request was passed to an outsourced help desk, which in the tradition of solid customer service for which IT help desks have become renown, could take up to 3 days to acknowledge receipt much less dispatch a person to solve the problem. If you needed to have the brightness on your monitor adjusted, you were looking at 5-7 days. And that was after passing the gauntlet of questions to ensure the problem was 'real' (Is your computer plugged in? How about your monitor?)


The UntouchaDBles

by in CodeSOD on

Casa de Quixote is a small, state-run retirement community in La Mancha, in central Spain. Sergio continues his job as the sole developer of software managing hundreds of residents.

It's always a bonus when the same brave soul delivers multiple WTFs for our exasperation. Our very own man from La Mancha has been doing a lot of refactoring lately, retaining the GUI of his employer's Assistance-Management System while replacing the zany consultantware underneath with vastly improved code.


Marketing Software

by in Feature Articles on

We've all dealt with marketing people who, in the very depths of their souls, believe that if they promise something to a customer, it will magically happen. Regardless of actual manpower, time or cost. It will work perfectly the first time, and every time, because they promised that it would. It will be cheaper than they expected because, let's face it, how hard could it be to build something, even if it's merely software...?

Hope and Dispair

Aargle interviewed with all of the developers and technical folks in his new department. They all seemed sane, grounded in reality and realistic about what was - and wasn't - doable.


Brick by Brick

by in CodeSOD on

Jannik worked for a company known for a line of building products . They were an international company, which meant they had to make sure their website supported multiple languages. They embedded this information into the URL, eg http://company.com/eng/orders.

They tracked the list of valid languages in an array: