Recent Articles

Mar 2008

Flirting With Disaster

by in Best of the Sidebar on

Originally posted by "jjeff1"...

I’m exposed to a certain application twice a year. It’s used for a fund raising drive: fifty volunteers man the phones, people call in, and the volunteers take a poll and then enter data into the VB application on their workstations. These fundraising events are tied to schedules beyond our control, and there are absolutely no do-overs. That means the application needs to be rock solid.


1.24: Last Chance

by in Mandatory Fun Day on

Not Always Coca Cola

by in Error'd on

Marten van Wezel notes, "seems like it isn't quite 'Always Coca Cola' on Piccadilly Square in London."



Zoom!

 


1.23: Consideration

by in Mandatory Fun Day on


Jed Code

by in CodeSOD on

"About two years ago," Simon writes, "I worked for a small telecommunications company. Turnover was fairly high, leaving not much consistency in the way applications were developed."

"Shortly after starting, I was tasked with fixing a report. For whatever reason, it wouldn't show any data newer than two months. So, I went to the reporting website and loaded up the report page. Eight minutes of watching the hourglass cursor turn, I verified that the report did not, in fact, display any new data. So I dug in to the report code.


Out of Balance

by in Feature Articles on

Excitement was in the air. It was the turn of the century and the dot-com boom was in full effect. The bubble just kept growing and growing, and it was probably invincible! The consulting company that Chris G. worked for had gotten their largest contract yet — the first they'd ever had in the seven figure range. Their goal? Build a sister site for a major investment bank that would serve news and analysis on the latest in the investment world.

Going in, the client made it clear that they wanted to do things right and that money was not an object. This was the height of the bubble, after all. In addition to Chris's company, top consultants from IBM and Sun were hired and involved in virtually every aspect of the project. After the majority of the analysis was done, it was time to discuss the bank's hardware needs.


Your Feedback WILL Improve The System!

by in Error'd on

"This note came along with my home piano course book," Nela mentioned, "I bet Mac users will appreciate the thoughtfulness."


The Sage

by in Feature Articles on

Jared D.'s time at the hardware store's paint department was mostly uneventful. At 16 years old, he worked over the summer to make some extra money before starting his sophomore year of high school. Day in, day out he'd guide customers to rollers, brushes, primers, tapes, and sponges. It wasn't as boring, though, when he got to use the paint machine.

The paint machine was pretty awesome — a customer would bring up a paint swatch, Jared would key in the color, and the machine would mix the appropriate amount of each primary and secondary color, producing something that matched the swatch. Even better, shortly after Jared started, a second system was added — one with an optical sensor that could find the closest paint match to any physical object. He'd then take its output and key it in to the paint machine. One side effect of the new system, though, was that it would crash somewhat frequently. And when it did, there was only one guy who could fix it: The Sage.


1.22: Working For The Man

by in Mandatory Fun Day on


Barely Missing the Concept

by in CodeSOD on

Sometimes you see some code and can feel the frustration of the original developer. Sometimes it's because of profanity-laden comments in the code, other times it's because you can tell that they were right on the brink of a major breakthrough, but gave up.

In this case from Oliver K., the developer did his research, found the right tools for the job, and started coding. He realized that the task would be best handled with interfaces and probably toiled for hours trying to figure them out, eventually checking in the following:


Announcement: WTF in Français

by in Feature Articles on

It's time once again to announce a new locale branch: The Daily WTF: Edition Française at fr.TheDailyWTF.com.

Edition française is headed up by Jocelyn Demoy, a French IT developer who recently managed to escape from a small IT company rife with worst practices and anti-patterns. He's now a developer at a major insurance company. Jocelyn adds...


Student Initiative

by in Feature Articles on

A few years ago, Rob Bateman worked as a programming lecturer at Bourenmouth University. Like many instructors, Rob put his notes, assignments, and resources on his webpage, available for all to see. It wasn't anything particularly interesting or exciting, mostly just stuff like this...


sometimes headers get that do long

by in Error'd on

"This strange tooltip popped up while playing with some code in Dev-C++," J. K. writes. "It seems to be saying something important but unfortunately doesn't make any sense."


Announcement: See You At Notacon!

by in Feature Articles on

In April of 2004, Cleveland, OH became much more awesome. You see, that was the opening day of Notacon, the annual un-conference conference centered around technology, philosophy, and creativity. This year's event - Notacon 5 - will run April 4th thru 6th, and I have the honor of being one of the speakers.

Unlike the “corporate conventions” so many of us are used to, Notacon is put together by enthusiasts for enthusiasts. While that means attendees won’t walk away with swag-bags of pens, sticky pads, and logoed squishy-balls, they will most certainly learn a lot and have a great time. Here's some of the going-ons...


The Green Email & Site-to-Site-to-Site-to-Store

by in Best of the Sidebar on

The Green Email
George Baker observed, "Some people take this 'green computing' thing way too seriously."


1.21: An Offer You Can't Refuse

by in Mandatory Fun Day on


N-Replace Zero-Test

by in CodeSOD on

Thomas Nordlander writes: "The Swedish Church of Scientology's scary personality test contains some pretty awesome JavaScript validation. Consider the ingenious way that they make sure they are dealing with numbers."

"I don't think I've ever seen the N-Replace Zero-Test pattern before..."


A Business Analyst's Views on QA

by in Best of the Sidebar on

Originally posted by "snoofle" ...

One of our BA's was nosing around for me to make some changes under the radar. We are under strict orders to do everything via our Change-Management system - no exceptions. The BA knows this. He says that if we put it into the CM system, that the QA people will know about it. I pointed out that that's the whole idea of CM.


1.20: Retention Plan

by in Mandatory Fun Day on


Not So Simple

by in CodeSOD on

"It should be pretty simp--" David M cut himself off. He learned his lesson. Nothing at his new job was Pretty Simple.

Earlier that day, David decided to pick up a task from back log called the "Search For Location" feature. He figured it'd be a quick thirty minutes of coding: use the existing Location class, write a new stored procedure for the search, add a sproc-wrapper in the data provider layer, and leverage the existing Data-to-Object mapper code. Then he'd just have to write a new web service method -- SearchForLocationByName(string location) -- to call the DataProvider, reconcile with the LocationMapper, and chuck out the returned collection. Easy, right? There was just one problem: David could not find the "Location" table.


Making a Difference

by in Feature Articles on

When Chris walked off the platform with a computer science degree in hand, he knew one thing for sure: He'd have to start all over again in the business world. And with a dizzying smorgasbord of technologies and a whole world of concepts never broached in school, Chris knew he'd need guidance from a mentor.

Fortunately, Chris didn't have to look too far. He was offered a job as a .NET Web developer and Gary, his new boss, was more than ready for the mentoring challenge.


Stupid, Isn't It?

by in Error'd on

"Browsing an archived article at the Herald Sun," writes Ben, "I saw a box labeled 'Also in Opinion' with the single entry WARNING WARNING - DO NOT ADD STORIES TO THIS SECTION. This is what came up when I clicked on it."

 


The Computer Vote Totals

by in Feature Articles on

The early 1970's sure were fun. Of course, I'm not quite old enough to know that first hand – and, based on the last reader survey, neither are most of you – but, longtime reader and contributor G.R.G. certainly remembers. You see, by that time, computers were starting to become a novelty.

There was the computerized this and the computerized that - if something didn't have the adjective "computer", had no blinking lights, and couldn't even make a beeping noise, then it was booorrring. Think back to those old Computer Football or Computer Hockey games that you saw at the flea market and then quickly passed up because they were nothing more than, well, a stupid board game with a few blinking lights that occasionally beeped. It should come as no surprise that the local television news programs went computerized, too.


1.19: More Surfing

by in Mandatory Fun Day on


Type Safety Considered Harmful

by in CodeSOD on

Submitted anonymously: "I found this in a data access layer for an application testing framework. The object has fields that are obviously meant to contain integers, doubles, and DateTime objects, but they are all strings and this is the only constructor:

class LineItem
{
    // SNIP: 28 public string fields
    public LineItem(Object[] fields)
    {
        int index = 0;

        //limit initial memory assigned for line items due to infrequent use
        lineItems = new List(0);

        foreach (Object field in fields)
        {
            switch (index++)
            {
                case 0: category = field.ToString(); break;
                case 1: paymentMethod = field.ToString(); break;
                case 2: transDate = field.ToString(); break;
                case 3: amountCurrency = field.ToString(); break;
                case 4: exchangeCode = field.ToString(); break;
                case 5: exchangeRate = field.ToString(); break;
                case 6: documentNumber = field.ToString(); break;
                case 7: location = field.ToString(); break;
                case 8: dateFrom = field.ToString(); break;
                case 9: dateTo = field.ToString(); break;
                case 10: deduction_breakfast = field.ToString(); break;
                case 11: deduktion_lunch = field.ToString(); break;
                case 12: deduktion_dinner = field.ToString(); break;
                case 13: mealDeduktion = field.ToString(); break;
                case 14: accountNumber = field.ToString(); break;
                case 15: projectId = field.ToString(); break;
                case 16: description = field.ToString(); break;
                case 17: salesTaxGroup = field.ToString(); break;
                case 18: itemSalesTaxGroup = field.ToString(); break;
                case 19: additionalInformation = field.ToString(); break;
                case 20: miles = field.ToString(); break;
                case 21: rate_per_mile = field.ToString(); break;
                case 22: advanceRequestedDate = field.ToString(); break;
                case 23: department = field.ToString(); break;
                case 24: cost_center = field.ToString(); break;
                case 25: purpose = field.ToString(); break;
                case 26: timeFrom = field.ToString(); break;
                case 27: timeTo = field.ToString(); break;
            }
        }
    }
}

Avoiding MUMPS & Arcadius

by in Tales from the Interview on

Avoiding MUMPS from Joe

A few years ago, I interviewed at the company featured in A Case of the MUMPS.


Software Bloat

by in Error'd on

Stefan K., how much freaking memory do you have in your computer‽


They're buffered

by in Best of the Sidebar on

Originally posted by "jjeff1" ...

This is going back a while, when I worked at a mom & pop retail computer store. We took in a repair for someone who'd tried to build their own PC. The problem was with the sound. As soon as the tech took the cover off, he called us all over to look inside.


1.18: Quitting is a Disease

by in Mandatory Fun Day on


The Alphabet... The Hard Way

by in CodeSOD on

James H. writes "If you had to programatically output a list of HTML <a> tags linking to anchors for the Alphabet like this:

<a href="#A">A</a> <a href="#B">B</a> ...

Stargate: Code of the Replicators

by in Feature Articles on

In the Stargate SG-1 universe, The Replicators are an incredibly formidable AI race. Made up of small, interchangeable blocks that communicate through subspace across the galaxy, replicators can form into just about anything, from crazy little spider robots to androids to entire fricken spaceships. Worse still, the replicators consume virtually everything in their path to create more replicators, and adapt to and integrate any technology they come across. Oh yes, they make the Borg seem like kittens.

I’ve always wondered, how might such an incredibly advanced system, with such incredibly complex adaptive logic, incredibly sophisticated networking, and nearly unlimited storage be built? Would the software that powers such a thing be like C++ hopped up on some funky alien steroids? Fortunately, the fine folks behind Stargate - The Ark of Truth figured it out. Take a watch at this quick video I strung together …


1.17: No One Leaves

by in Mandatory Fun Day on

The Unknown

by in Error'd on

What's the sound of one hand clapping? If a tree falls in a forest and no one is around to hear it, does it make a sound? Can Word edit the unknown?


(submitted by JDF)


The Haunted Door

by in Feature Articles on

Life was good for Jeremy. He'd just landed a good job with interesting coworkers in a nice, newly-remodeled office. His cubicle was at the perfect distance between the elevators, bathroom, and snack machines. His boss respected him, his coworkers wouldn't hesitate to help him, and it was work that he genuinely enjoyed.

In fact, the only things Jeremy could complain about were minor — the coffee sucked, the vending machine didn't have Whatchamacallits, and the keycard-protected doors were slow to open. It hadn't really registered with him until he was jogging down the hallway, late for a meeting, and found himself waiting for 10, 20, 30 seconds for the door to open after he swiped his keycard. The embarrassment was eased when another coworker showed up even later than Jeremy, complaining that "the damn door took like a minute to open!"


My Pi Goes to Twelve

by in CodeSOD on

The value of Pi is not as 3.14159265…ish as many of us would like to believe. Legislators in Indiana once declared Pi as 3.2, 4, and 3.23. Staunch biblical mathematicians insist that it's 3. The whole thing is a mess: everyone just has to have their very own Pi.

Maciek came across yet another value for Pi while a browsing the Java Swing documentation. I suppose this variation certainly the most enterprisey I've seen...


You'll Need to Come Downtown

by in Feature Articles on

When the H.R. director calls to rhetorically ask “can you come to my office for a chat… right now,” the conversation that follows rarely goes well. When one gets that call, goes to the office, and then finds two uniformed officers waiting, that conversation almost certainly never goes well. It sure didn’t for Steve.

“You’re Steve, Steve McDowan,” asked the younger, clean-shaven officer with a buzz cut. Steve nodded nervously. The officer ruffled through his notepad and continued, “that’s Steve McDowan, at… let me see here…  4875 East Bridge Street?”


1.16: The Search Begins

by in Mandatory Fun Day on


Customers Are Saying

by in Error'd on

Eric would've waited for a better testimonial before putting it online...


The Sub-Sub-Sub-Subcontractor

by in Feature Articles on

In Leon's country, most government institutions are legally obligated to disclose certain data on the internet — their structure, responsibility, public competitions, general announcements, and so on. Leon worked for a company that did government work exclusively, and during a lull in their normal projects, they noticed an unfilled niche — software designed specifically to make sharing of this information easy.

Management prepared the specs with dozens of citations referencing government-produced documents that outlined the rigid formatting requirements. Boiling it all down, though, it wasn't so bad. Just some document storage and retrieval, basic usage logging, and two-level security: users, who can read everything, and admins, who can edit everything. Business logic was simple, because all changes would be done manually by an admin.


Finite State Arg

by in CodeSOD on

"It's not every day that you come across a hand-coded, table based parser," writes Joel Davis. "That's pretty hardcore. I figured it must have been needed for checking if millions of strings were uints in some super-important inner-loop. Obviously, there had to be a reason to avoid 'strtol', 'atoi' or even 'isdigit'..."

"Imagine my disappointment when I realized this was part of an argv parser."


Random Stupidity

by in Best of the Sidebar on

Originally posted by "snoofle" ...

I found this deep in the bowels of something written by our offshore counterparts, in it's entirety:


1.15: Code Security

by in Mandatory Fun Day on


Dear Mr. REVIEW XTRAC DO NOT USE

by in Error'd on

In addition to his normal statement from Fidelity, Ed has been receiving this every month...


Best of the Email

by in Best of the Sidebar on

It's Share Your Bizarre Email day! Here's three to get started...


James W passed along this email, originally sent by a manager at a certain non-profit...


1.14: Turnover

by in Mandatory Fun Day on


Boolean Integers

by in CodeSOD on

Pop quiz, hot shot. There are seven different true/false flags. You have only a single integer to represent them. What do you do? What do you do?

When Stephan E's predecessor was faced with this problem, he knew exactly how to handle things. He used the integer to store a bit pattern. Of sorts. Well... kinda...


We Need a Body

by in Tales from the Interview on

Although Brice hadn't been on the job for very long, he'd gotten pretty comfortable with leading technical interviews. He'd quickly compiled a stock set of questions that could weed out the hacks.

  • Questions that immediately disqualify you for the position if you get them wrong:
    • What is your first name?
    • Name a .NET language.
  • Questions that almost certainly disqualify you if you get them wrong:
    • What datatype would you use to store a string of characters?
    • Is it C sharp or C pound?

When Brice's company had five other developer positions to fill, he was called on for the technical portion of each interview. Not long ago, a candidate named Corey applied and was brought in for an interview. Brice couldn't put his finger on what it was exactly, but from the moment Corey walked in something just seemed... off.


Fortune Not Found

by in Error'd on

Daryl pulled this out of a fortune cookie at a Chinese restaurant recently...


Foiled by the Dictionary

by in Feature Articles on

'Maximum Number of Emails Per Hour Has Been Exceeded?' What the hell? The head of Golficionados was not pleased. He called James to get it fixed.

James and team had just launched the web site for Golficionados, a small golf supply business, the day before. As a part of the contract, James had to set up their email server and create accounts for all 30 users. He was surprised to be woken up at 6:30 by an angry client call.


1.13: Bad News

by in Mandatory Fun Day on


Pretty Simple

by in CodeSOD on

"It should be pretty simple," David M naïvely stated, "just look in the Agent_ProductLines table, right?"

"Uhhh," David's coworker, James, replied in a slightly condescending tone, "no." David was starting to get used to such responses. Nothing in his new job was "pretty simple" to simple to do.


Jurassic Programmers

by in Feature Articles on

When Russ started at InsuraCorp (as I'll call it), one thing was immediately apparent: There were two classes of programmers. The "rock stars," who were recruited from top universities and given first-class accommodations, like windowed offices with brand new computers and dual 21-inch LCD monitors; and the "dinosaurs," who were cramped in dimly lit cubicles each about the size of a refrigerator box. The dinosaurs were lucky if they had a fully working keyboard for their Windows 98 workstations.

It hadn't always been that way. About six months earlier, the dinosaurs occupied the nicer offices. They were responsible for maintaining -- some, originally building -- InsuraCorp's 25-year-old cash-cow product. Though it worked very well, the system ran on the VMS operating system and was written in the now-forgotten Digital Interactive Business Oriented Language (DIBOL), rendering it accessible only through a text-based terminal emulator. In the age of the Web, and competitors with a more modern product, customers demanded more.


Too Many Fingers

by in Error'd on

"The laptops that we got at work come with the latest in state-of-the-art security," writes B. N., "unfortunately, getting the Fingerprint Recognition set up is a bit, well, challenging..."


The One Script

by in Feature Articles on

"My company has a historical division between the IT Department and the Web Department," writes D. S. Black. "The IT Department does all the normal 'IT' stuff, while the Web folks mostly do non-technical like designing websites, creating simple databases, and configuring web servers. As a result, we've had a few web administrators who haven't quite been All There when it comes to things like reusable libraries, sensible documentation, and database design."

"One server I came across had at least a dozen different form-mail scripts. The earlier ones were written in Perl, but as the years passed, the secret of sending E-mail from Perl was lost. A few of the Perl scripts called Blat (a Win32 command line E-Mail utility), but eventually, even that knowledge was lost.


1.12: Social Networking

by in Mandatory Fun Day on