Recent Articles

Mar 2011

Somewhat Unclear, Maybe it's the drugs, and More Support Stories

by in Feature Articles on

Have support-related stories of your own? Then by all means, send them on in!


Somewhat Unclear (from Bob S)
After working in Tech Support for several years, I have come to value the rare request that actually contains enough information to solve the problem. Below is the worst technical support request I have received so far. The kicker is that it arrived with no subject line, no signature, and of course no attachment.


Fundamental Misunderstanding

by in Representative Line on

If there's one phrase that Salvatore could attribute to his predecessor, it'd be fundamental misunderstanding. He had a fundamental misunderstanding of the business requirements. He had a fundamental misunderstanding of how to transform business requirements into code. He had a fundamental misunderstanding of how to write maintainable code. He had a fundamental misunderstanding of tools like source control. He had a fundamental misunderstanding of maintaining a modicum of documentation... even the passwords needed to access the server where the codebase (and production application) resided.

But of course, his colleague's fundamental misunderstandings went far beyond the world of software development and transcended into other areas, as this column from one of the database tables illustrates.


Prank'd

by in Feature Articles on

That Saturday, a fierce debate raged in the high school auditorium. Well, it was actually a match between debate teams, so the ferocity level matched an annoyed squirrel, but it was fierce enough for debate club. Since Bill's school was playing host to the match, he volunteered to help run things. During the day, he had plenty of idle time to find mischief.

In an unlocked classroom, Bill found a Macintosh LC, unsupervised, unattended, and equipped with a microphone. In the actual computer lab across the hall, Bill and his classmates constantly pranked each other's machines, and it struck him as a good idea to play a prank on this one. Quickly, he recorded himself proclaiming, "This computer has been hacked. I am in complete control of this computer. BWAHAHAHAHA." Bill placed the audio file in the machine's Startup folder, shut the machine down, and went back to the debates.


No Letters Allowed!

by in CodeSOD on

"The data validation requirements for a telephone number are dead simple," writes Chris M., "Just the numbers and that's it. The user can enter their numbers with dashes, brackets, parens, whatever.  Only the numbers should be saved."

"You would think that filtering out the non-numeric characters should be a simple thing to do with regluar expressions or heck, even walking the string would be feasible."


Only Spicy Food Gives Me an Explosive Gain

by in Error'd on

“One of our developers (who has since left) scoured the internet and grabbed every single Spam Assassin rule that he could find,” writes Vivin P., “Even the weird ones.”


Gary Strikes Again

by in CodeSOD on

Back in January, Gary taught us a lot during his tenure with Initech.

Whenever Jake would offer him an idea on how to get something done in his ASP.NET project, Gary would say that it could not be done for one or more of a list of stock reasons: “security issues”, “incompatibility with ASP.NET”, “.NET doesn’t have that feature”, et cetera. One wonders which of these motivations produced the following code for copying the business database customer table to the database that backs the web presence.


Testing Done Right

by in Alex's Soapbox on

It’s been a rough couple weeks. Not only did I have all sorts of catching-up to do after Code PaLOUsa, but it also happened to be release week. And oh, do I hate release week.

Don’t get me wrong, I’m just as excited as anyone else when a new release of BuildMaster comes out (it was release 2.3, in case you were wondering), but new releases mean testing. And fixes. And more testing. And still more testing. And oh, do I hate testing.


TAG++

by in CodeSOD on

C++ has a consistent and fairly simple syntax for defining classes and class members. While this syntax would still look like gibberish to a non-programmer, an entry-level coder could probably understand it after flipping through C++ for Dummies. Kevin Day's predecessor must have been concerned that the former group might be maintaining the system.

Fast forward a few years, and management, not surprisingly, decided that the best folks to maintain their C++ codebase would be, in fact, C++ programmers. And that's where David came in. Faced with the common dilemma understanding a foreign architecture of a foreign product in a foreign business domain, David had at least one bit one thing going for him: a good working knowledge of C++. But since the original designers decided to #define a meta-language in C++, and then use that meta-language to represent all of the key classes, his knowledge hardly came in handy.


The Glitchy SVN

by in Feature Articles on

The Human Resources department at Eddy B’s company had a bit of problem. With new people being hired every few weeks, the company’s organizational documents – phone list, org chart, seating chart, etc. – needed lots of frequent updates.

The office suite of choice was Microsoft Office 2007 Professional Edition, but for whatever reason, the IT folks installed Microsoft Office 2007 Broken Edition on HR’s workstation. Unlike the Professional Edition, the Broken Edition would intermittently and inexplicitly delete large and important blocks of text when documents were saved. Broken Edition was also a culprit in ensuring that poor spelling, bad grammar, and HAVHING EVERYtHINGS IN AlL CAPPS were the norm.


A Spoonful of Sugar

by in CodeSOD on

John S. was doing some work on the search feature of a client's website when he noticed that he would receive a 500 Server Error if he tested against the API with an empty string.

This struck John as being pretty strange since not only had the search feature had been in place for years, but also, he could go to the search page, click on the "Search" button without entering anything and receive an "Item Not Found" response.


Notacon 8

by in Announcements on

I got some great feedback about Code PaLOUsa; everyone seemed to have a great time, and I really enjoyed the opportunity to meet up with some of you. So, along the same vein, the next community conference I'm headed to is Notacon. It's held in my home town of Cleveland, Ohio, and runs April 14-17.

Notacon ("not a con[ference]") is indeed a conference, but not of the typical variety: it's a community event driven by submitted presentations and projects. I realize that's not a very thourough description, but Notacon is a hard event to quantify. There are a handful of speakers and bunch of events including Anything But Ethernet and the PixelJam demoparty.


Dirty Laundry

by in Tales from the Interview on

"Your one o'clock is here," the receptionist said.

Roberto glanced at the clock and saw that it was 11:30. "Does his watch work?" Roberto muttered. "Put him in one of the conference rooms. The boss isn't going to be back until 1:00." He hung up the phone and got back to work.


The Disgruntled Bomb

by in Bring Your Own Code on

It's been quite a while since the last Bring Your Own Code. It's mostly because I haven't thought of any coding quandaries that fit in the "totally fun and doable over a quick break" difficulty; everything has been either hello world easy or graduate-level comp sci homework hard. If you've got any ideas, please do send them to me.

That said, today's BYOC is a little bit different than the previous ones. It was inspired by a submission from Mårten Rånge, who wrote "rumor has it that a disgruntled employee once left #define true false in a random header file in the codebase. Given our codebase, that would be a lot harder to debug than one might think."


Unusual Document Mixture

by in Error'd on

"I went to get $40 out of an ATM machine and I got this message," Joe Bui writes, "I braved the 'unusual document mixture' and hit Continue. It spit out $20 bills and a receipt."


The Speed of Code

by in Feature Articles on

"You need to help me with this crap!"

Alicia, the new hire, dumped a stack of design documents onto Jaimy's keyboard, and stood over him, arms crossed.


Logging the Logger

by in CodeSOD on

"My team has recently inherited a massive monster of a Java J2EE based system," writes Terence White, "some of the code leaves me to wonder if the reason these guys had no peer review was that they had no peers."

"One thing they were obsessed with was logging. And logging their logging. It's no wonder why the system required a handful of servers for a few dozen users..."


Enterprise Dependency: Big Ball of Yarn

by in Feature Articles on

Not too long ago, I posted The Enterprise Dependency. Essentially, it was a visual depiction of a good ole' enterprise framework that was "several dozen megabytes chock full of helper classes like IEnterpriseAuthenticationProviderFactoryManagementFactory." Inspired by the diagram, commenter "LieutenantFrost" shared his own "enterprise-ness and despair" with a dependency diagram that looks somewhat like an anglerfish.

But that got me thinking: like a Representative Line, perhaps dependency diagrams can help provide some insight into the pain that large applications' maintainers face each day. And just then, Jan-Hendrik sent in such a diagram. Note that each little box represents a class, and a line is its dependency to another class.


Confusing Multiples

by in Error'd on

"I found this on an ATM when trying to withdraw money," Putu Sanjaya wrote, "I suppose 0 is still a multiple of 10."


Hard Deadline

by in Feature Articles on

Lawrence walked through the lobby of his prospective employer. It was loaded with the trappings of a giant government (military) contractor; large glass gew-gaws signifying compliance with industry standard X29-Q hung on the walls beside pictures of the CEO smiling and shaking hands with various Presidents and Secretaries of Defense.

He was shown to a conference room where he met the head of IT. Smalltalk and background questions eventually led into the details of the job opening. "It's a pretty vanilla project. We want to move our old Honeywell system over to an AS/400 relational database before our old 5-digit date overflows on us."