Jake Vinson

Jan 2009

Noticing Something Strange

by in Feature Articles on

Jon works for a small company that sells electronic biofeedback monitors and provides a website that allows customers (mainly health professionals) to upload and interpret the collected data. Not too long ago, they hired an "experienced web developer" named Nigel to help on the web-end of things. After a few weeks of minor site maintenance tasks, Nigel was given his first real feature to implement: a notification system.

The Spec

The idea behind the notifications system was to allow management to communicate with customers about new products, system outages, industry news, and so on. The new feature had to accomplish the following:

  1. Provide a means for management to display notices to customers.
  2. A given notice may be intended for just one user, or for multiple users.
  3. On the notices page, the customer should see all notices that they haven’t yet acknowledged.
  4. The customer should be able to acknowledge notices so that they’re no longer displayed.

The Design

Delaying the Evitable

by in CodeSOD on

Wow, Paul thought to himself, "signing up for a new account takes a little while, huh? He was new on the job and clicking through to get a handle on the application he'd be maintaining. He opened the code to see what the signup button was actually doing behind the scenes.

The design was kind of strange; all HTTP requests were routed through Actions. Most Actions inherited from other Actions – for instance, LoginAction and SignupAction inherited from DelayableAction, which inherited from ActionBase.

Feeling Aggregated

by in Feature Articles on

"All right, Jory, we're gonna start you off simple here, kid!" Jory B.'s boss was a large man with forearms like hairy hams, and he spoke in a gruff, deep, and loud voice. "Yer gonna learn about The Aggregator by adding a simple feature. I want it to be sendin' emails whenever someone signs up at one of our locations!" He continued on his throaty, saliva-y explanation of what should appear in the emails, which mail server to use, and so on. "Welcome aboard, kid," he said warmly, extending a hand with fingers that looked like sausages.

Jory dodged flying saliva droplets while his boss spoke. "Thanks. And can do!"

The Aggregator

Scratch One Inevitability

by in Feature Articles on

Before Curtis even got to sit down at his desk, he was accosted by a frenzied, sweating junior developer. "OhmygodCurtis," he began. Curtis extended his hand in a "calm the hell down" gesture and allowed him to continue. "A whole bunch of our stores had no data posted last night and I'm not sure why orwhat to doabout it or whoIshouldtalktoand-" Curtis gestured again, to which the developer handed him a thin stack of papers. After a deep breath, the developer continued. "It's a list of the stores that didn't post last night."

The stores in question were part of what we'll call Hewitt & Liberty Block – a reasonably large tax preparation company serving a handful of states with over 2,000 retail locations. Each of the locations was set up to post tax data and sales records to the central computer at the main facility. According to Curtis's list of stores that hadn't posted any data, it was nearly 1/4. It was going to be a long day.

Your E-tailer Hates You

by in CodeSOD on

You'd think that buying things online eliminates the human element of shopping in a retail store. And you'd almost be right.

Nolan heard about one of his company's "problem customers" from a friend of his in the customer service department. This customer was satisfied exactly as often as he was not right – never. If there was a coupon code for $5 off five items, he'd be calling to ask why it didn't work for one item. If they caved and gave him the discount, it'd only result in more calls demanding more and more discounts. If his order arrived on the last day of the estimated shipping date, he'd bitch and moan until the shipping cost was refunded.

Curiosity, Ignorance, Malice

by in Feature Articles on

Jim B. stared wistfully in the mirror at the wrinkles near his eyes and the few stray gray hairs that he’d accumulated over the last six months. On the way back to his desk, he stopped by his friend Mike's desk. “Point three six,” he said as he banged his head against Mike's cubicle wall. “Point three six.”

His work was about as high-stress as it gets – he was on a team building a security system that was responsible for keeping ne’er-do-wells out of data belonging to nine-figure financial companies and an array of three-letter government organizations, many of which Jim had never heard of. But if he failed and a hacker got into the data, Jim would be sure to find out exactly what the FQD was when they had him deported.