Recent Articles

Nov 2010

SuperRand

by in CodeSOD on

Nearly six years ago, Brian J gave up being a software developer to start a career in law enforcement. He specifically avoided the world of high-tech cyber crime, and wanted to start life anew as your everyday suburban cop. Of course, with a computer engineering degree and several years of IT experience, technology challenges tend to follow him wherever he goes.

For being a suburb, Brian’s department is pretty big and has a wide variety of posts that range from patrol to accident investigation. In addition, certain officers are trained to do certain things, and others have a preference... especially against the few horrible posts – such as manning the speed trap – that just suck the life out of most people for eight hours. As a result, shifts and schedules change from night to night.


A (Non) WTF Classic: Print or Fish

by in Feature Articles on

It's Thanksgiving Day here in the States, so instead of a normal tale of incompetence, failure, or disaster, here's a fun story that's kind of the opposite of that. "Print or Fish" was originally published on 2005-11-22, and never seems to grow old...


By the time he was twenty-one, Roy had already earned the title "drop out." College just wasn't his thing: he attended three different universities -- one after another -- and didn't even come close to earning a degree. His "drop out" title was only solidified when he started work as a roll-machine operator at the local paper factory. Worse yet, the factory was by the docks, which meant that Roy had to pass through the outdoor fish-market every day on his way to work. Talk about a great way to start the day. But Roy wasn't fazed; he became inspired.


Learning Something New

by in CodeSOD on

"When I was tasked to do a few quick changes to the CMCalc 'application', I knew I'd be in for a treat," writes Will, "it's been the bane of all developers on the team: a spreadsheet designed by an end-user who knew too much that was coded by a developer who thought he knew a lot, and maintained over a decade by developers who mostly knew nothing."

"Being that it was VBA, I didn't expect much... yet somehow, I was blown away. It was here that I learned that yes, VBA supports GoTo statements. And line numbers, too. And for whatever reason, those are preferred to a simple If-Else block."


Just One Port

by in Feature Articles on

Photo Credit: Lou Angeli Digital @ Flickr By day, Jeff is an IT Administrator and, by night, a volunteer fire fighter. Both positions occasionally involve fighting fires, but Jeff’s duties and the training he receives while at the fire station are a complete 180 from what he does for a living and, in fact, is exactly why he enjoys it so much. However, on occasion, both worlds collide, especially when the fire department needs some IT expertise – such as when the doors and locks were to be upgraded to use keycards for access.

Over the course of several evenings, Jeff reviewed several vendors, determined which doors needed to be fitted with the new locks, calculated total cost of ownership - basically, all the due diligence he would normally do at his day job when someone would request the purchase of a new piece of computer hardware. Prior to the installation date, Jeff asked Tom, a fairly technically-minded colleague who specialized in smoke alarm and sprinkler systems, to act as the go-to guy for the installer when he arrived by answering any questions that might arise.


Boolean Truths

by in CodeSOD on

As a bright-eyed and bushy-tailed soon-to-be graduate, Andrew was thrilled to get a job offer before he even graduated. Sure, it involved some new, real-world programming languages that he hadn't worked with, but he was just as confident as his soon-to-be employer that he could pick them right up. And besides, how great would it be to have some solid, real-world technologies like CICS (which probably has something to do with Cisco) and VSAM (Virtual Something Something Something... clearly a cutting-edge technology).

And then the first day hit. Turns out CICS and VSAM were much older than he was, and COBOL was the preferred language of choice. At least I get to work on a mainframe, he told himself. That is, until he learned they were no longer room-sized behemoths staffed by operators wearing cat-eye glasses and bouffant hairdos. It was nothing more than a big ole box called an AS/400.


XXXXXXXXXXXX

by in Error'd on

"I received this bill from my health insurance company," Jeroen wrote, "normally, you'd expect insurance companies to be pretty precise about collecting money, but this time I'm still wondering how much money they want me to send them... or where I should send it to."


The Password Reset Façade

by in CodeSOD on

Marius' coworker is a big fan of the façade pattern. Not the software engineering façade, but more the old Wild West town movie set façade. And Although his tenure has long since expired, his elaborate implementations still persist to this day.

Submitted for your approval is this recently uncovered "self-service password change" page. For nearly eighteen months, users had no way of changing passwords on their own; most would simply keep the password they had, while a select few would contact tech support to do it. It took quite a few support tickets to realize that the problem didn't exist between the keyboard and the chair, and it took development just as long to believe that there was a bug. Eventually, Marius was assigned to "fix" it, and he's pretty sure that it took less time to develop the actual code than its façade.


Virrus Attack!

by in Feature Articles on

photo credit: Rocky X @ Flickr It was Friday afternoon, and Mike was 78% of the way out the door and into the parking lot when he heard the pitter-patter of footsteps behind him. Don't look, don't look… he thought, intent on getting out the door and starting his weekend.

He turned around and looked. One of Mike's fellow admins ran down the hall; his company-mandated tie flapped around, and one of his shirt-tails had worked loose in the chase. "Mike! There's a virus attacking the VAX!"


Dear Sybase: MessageBoxes Don’t Belong In Drivers

by in Feature Articles on

Dear Sybase,

Thank you for providing the development community with a free edition of your SQL Anywhere database. We also appreciate the work you put in to an ADO.NET DataProvider so that we can use SQL Anywhere from .NET. Now I'm not the type of guy who complains about free things, so please think of this as constructive criticism.


AT&T Mail Bomb

by in Error'd on

"Back in March, I changed the billing address on my account," wrote Jim Stutsman, "Shortly thereafter I received a postcard advising me that the address had been changed, and if it was in error I should contact AT&T immediately. A few days later another card arrived with the same message. And again. And again. To date I have received more than 80 postcards and two letters, all identical except for the date. If that's not love, what is? Thanks AT&T!"


We're All Administrators, Zoologically Educational, and White Space

by in Feature Articles on

We're All Administrators (from Tzveta)
My day job is in the IT group at a particularly large educational institution in the southern United States. We recently acquired a new high-end document/imaging system and were running into some problems getting it configured and running; the Associate Dean was not happy about this.

"Help me understand why we can't get the new printer/scanner to work?" he asked frustratingly, "it's been two days since it's come in, and every day it's not up, we're burning through money doing all this stuff manually!"


The Other If

by in Representative Line on

There are two development teams at Matt T's company: his group and the other group.

For the most part, they work on the same types of projects, but the other group tends to do things a big differently. For example, Matt's group uses issue tracking software to manage requirements, while they use other means to track requirements. And although they don't champion best practices, they make sure to use other practices. The code they write isn't quite functional or maintainable, but it does serve other purposes.


There Is No Cow Level, in School

by in Feature Articles on

If you can't find a "bird" class in your senior year of college, you probably don't deserve to graduate. It's the class you can fly through without doing any effort, which rounds out your credit count and polishes off any requirements.

Andy deserved to graduate. The CS department at his school switched from PASCAL to C++ his senior year, which opened up a few intro-level classes to him. A basic course in a language he already knew was a formula for an easy "A". The tail-wind in this "bird" course was the professor- he was going to a bigger and better school the following semester.


Thourough Username Validation

by in CodeSOD on

Ben recently inherited a massive PHP-based project that makes spaghetti-code look appetizing.

What's so impressive about this system is not the globally misspelled variables or the horribly written constructs, but the downright creative ways in which logic is implemented. Like this unique glued-together mess of PHP/Javascript used for user-name validation:


Free the Colors!

by in Error'd on

"I got this weird error message from my IM software," writes Sakari Nylund, "hopefully free colors won't do anything bad."


Technically an Interview

by in Feature Articles on

José knew exactly what he expected from the interview. The company was a startup, located in one of those up-and-coming urban industrial parks. They claimed to want the "best and brightest", and warned about long hours but promised interesting and exciting work. In other words, a typical startup. José was willing to roll the dice and see where they went.

Their building reinforced those expectations with 25,000sq. ft. of warehouse-turned-office-building, decorated in late-modern-artsy-fartsy furnishings. The receptionist showed José to the break room, wedged him into an uncomfortable but attractive chair, and offered him some coffee. "Your interviewer should be out in a moment."


The Email Tree

by in CodeSOD on

The case for case-sensitivity goes something like this: it's always been that way in this type language and, who knows, maybe someone will find it convenient to have two different variables named LogOnName and LogonName. The case for implicit variable declaration is less clear, but is something like: it's faster to code and coders should just learn to be consistent.

Of course, none of these are very convincing for Murray, who recently stumbled across a project with this.


Meet Rod

by in Feature Articles on

Katie’s start at Ace Software Solutions was fairly unremarkable. Hired as a technical “Jane of all trades,” she helped users by fielding MS Office questions, setting up hardware, upgrading drivers, uninstalling malware, and any other problems as they arose. Overall, the users at Ace were pleasant to work with and her manager Jennifer was a great person to work under. During busy times, she was willing and able to get her hands dirty, as she called it, in the daily support work as well.

Really, Katie’s only complaint was that once every month, (5:00pm on the last Friday of the month to be exact) the owner of Ace Software Solutions, Rod, would strut his way into the company’s large conference room and kick off the mandatory team meeting. He’d congratulate top salesman of the month, report the status of various current negotiations for various corporate accounts, new software upgrades coming out, and other goings on in the world. For the most part, everybody usually just zoned out, nodding occasionally to keep the illusion of interest alive enough to ensure the meeting wrapped up quickly.


Extensible XML

by in CodeSOD on

One of the inherent challenges that comes with data is that, once its structure has been defined, it can never be changed. Ever. Data structures are literally chiseled in stone, and the only way to use something different is to rewrite your application from scratch and throw the old application (and any server it touched) in the fires of Mount Doom.

This was actually one of the primary reasons XML was invented. At its core, it’s just one big ole’ human-readable string that’s flexible enough to define any data or specification… even the sacred XML spec itself. Of course, for all of its glory, XML still suffers from a fundamental problem with data: you have to know the data’s structure before you starting working with it. That means analysis, modeling, data dictionaries, and all sorts of other booooooring things that involve not writing code.