Recent Feature Articles

Jul 2009

Mister Fix-it

by in Feature Articles on

K&R has magical properties.To the outside observer, Christopher M's work environment might appear to be a potential breeding ground for WTFs. They supported an "enterprise-level" product and, when a developer noticed a bug, the development manager expected him to just go in and fix it. No change controls, no QA oversight — those were far too time consuming and added little value. Almost anywhere else, this set up would result in chaos, but Chris and his four fellow coders were experts, and they were able to navigate the lack of process.

One day, the development manager decided that, to better handle the bug fixes for their applications and be able to support their growing user base, they needed a new developer. And he knew the perfect candidate. On paper, Winston looked as though he would be an ideal match, and he interviewed even better. Not only did he passed the developer test with flying colors, but when asked about his free time and hobbies, Winston responded with a stern and serious face: "I seek out and destroy poorly written code." His knowledge, attitude, and tendency towards geekery put him over the top, so he was asked to start the following Monday.

Getting Confrontational about Variables


A One-Year Job

by in Feature Articles on

ee... ee... ee... ee... ee... .........  "Good morning, Janet!" ee... ee... ee... ee... ee...

It had been just a couple of weeks, but the sound was the same every day. Chris L.'s boss, Phil, was wheeling his 286/12MHz personal computer in a handcart with a squeaky wheel down the aisle.


Pagination Consternation

by in Feature Articles on

Bruno was working on a PHP-based hotel reservation system and, thanks to the odd bug here and there, seldom had the time to look into the "feature requests" queue. But the good news was that the system was getting more and more stable with each release, and the really good news was that Bruno would be getting some help from a newly hired developer named Greg. Bruno even picked out the perfect first task for the new guy.

The system worked as you'd expect any online hotel reservation system to work – punch in the name of a city (optionally including the number of nights for your stay, smoking/nonsmoking preference, etc.), get a list of hotels back matching the criteria. Clicking the "Find Hotels" button would fire off a few operations; first retrieving a list of hotels from the database, then some light massaging of the list in PHP code, then writing out the results to the page. It was all well and good until you did a search for hotels in New York City, where you'd get a near-endless page with hundreds of hotels. The obvious, simple solution? Split up the results into multiple pages.


Support Should Never Be Necessary

by in Feature Articles on

Not too long ago, the CTO at Dudley H.'s company had a startling revelation: there should never, ever be a need for technical support. If a client has an issue using one of their products, then the problem is most certainly in the product. Maybe the UI is a little confusing. Maybe it's not documented enough. Maybe the documentation isn't clear enough. Whatever the case, every client issue means that someone — be it the developer, tester, or helpdesk technician — didn't do their job properly and should strive to improve themselves.

Of course, the counterargument to the CTO's revelation, lobbied primarily by the helpdesk staff, was that many users are simply lazy, stupid, or lazy and stupid, and no amount of improvement could ever change that. Not that it mattered, though. The CTO was determined and set a new policy that all client issues were to have "problem/improvement" reports written about them, and that all reports were to be reviewed at the higest level. Being the loyal employees that they were, Dudley and his fellow helpdesk technicians began developing these reports.


Bourne Into Oblivion

by in Feature Articles on

Bueller?Jerry wasn't the sort of guy who would normally vent frustration out loud at work, yet here he was - cursing into the air at two individuals in particular - the first round of explitives being directed at the toolbag, somewhere, who had botched months of server backups by reusing the same set of tapes for months and the other being a long ago departed developer whose name he was continually being subjected to in the comments of the rotten shell script he was now stepping through.

What had started out as a 7:30am ticket from an early-bird user getting a error message when trying to open a spreadsheet test plan from the week before had turned into a full-on, corporate-wide DEFCON 1.


What The Ad? - Not Even Then

by in Feature Articles on

Today's What The Ad? is courtesy of John D.. The general theme: business ads that wouldn't appeal to a typical business, even then.


BYTE, January 1982 - "FMS-80 Organizes Your Organization." Or, "Yes, you too can be just like organized crime!"


Secured Debugging

by in Feature Articles on

In 1968, when David Foskey finally had the opportunity to stand face-to-face with a Honeywell 8200, his expression was nothing short of awestruck. Technically, the 8200 didn’t have a face, it had a window that overlooked a room. And not just any room, but a room the size of a freakin' basketball court. In fact, Honeywell recommended that no less than six thousand square feet be dedicated to the 8200; any less and the sorters, collators, processors, storage devices, and computer operators would be a bit too cramped.

For David, his enthrallment wasn’t just about the sheer size – to reiterate, a freakin' basketball court – or the mainframe’s raw computer power – over 400,000 operations per second and 1,048,576 bytes1 of memory. It was also the fact that a Honeywell 82002 played a memorable role as war planning, Latvian army controlling, deviously plotting supercomputer in a recent Harry Palmer spy movie, Billion Dollar Brain. And not only that, but the Honeywell 8200 that David peered into was owned and operated by the Department of Defense.

Snapping Out of It


Sponsor Appreciation, Flushing Logic, Estmate Problems, and More

by in Feature Articles on

Please show your support for The Daily WTF by checking out the companies that have been kind enough to sponsor us. And, in doing so, I’m sure you’ll find some pretty cool products and services built by like-minded developers and IT professionals.

 

Microsoft/web   Microsoft/web - We teamed up with Microsoft/web to answer a burning question: with the dizzying array of languages, frameworks, tools, and technologies, what do you think about web development? It's all finished! Just let us know if you'd like a copy!
 

Decent Diversions

Comic Reader Mobi   Comic Reader Mobi - I'm not a big comic book guy myself,but Comic Reader Mobi looks like a good way to start. Simply tap any of the text bubbles to magnify; the app automatically detects the size of the text bubble and magnifies that text alone. You can also magnify a small area without expanding the entire page. It is an extremely handy feature that allows you to see the whole page and read the text without zooming in and out.

Cool Tools

Splunk   Splunk - Search, navigate, alert and report on all your IT data in real time. Logs, configurations, messages, traps and alerts, script, code, metrics and more. If a machine can generate it -- Splunk can eat it.
Caretta   Caretta Software - makers of GUI Design Studio, a specialized software prototyping and User Interface design tool for Desktop, Mobile and Web Applications. Quick and Easy to use, with No Coding! Why not give the 30-day trial a shot?
TechSmith   TechSmith - the world’s leading provider of screen capture and recording software for individual and professional use. Personally, I can't live without SnagIt, and am quickly getting addicted to Camtasia. The Jing project is also pretty interesting for instant sharing.
SlickEdit   SlickEdit - makers of that very-impressive code editor and some pretty neat Eclipse and VisualStudio.NET tools and add-ins, some of which (Gadgets) are free. Check out this short video highlighting just one of SlickEdit's Visual Studio integration features.
Software Verification   Software Verification - software engineering tools for memory leak detection, code coverage, performance profiling, thread lock contention analysis and thread deadlock detection, flow tracing and application replay on the Windows Vista, 2003, XP, 2000 and NT platforms.
 

Great Components

Mindfusion   MindFusion - a great source for flow-charting and diagramming components for a variety of platforms including .NET, WPF, ActiveX and Swing
div elements   Divelements - developers of WinForms, WPF, and Silverlight controls. Easily integrate the Office 2007 Ribbon Interface, Dockable Windows, and several other interfaces. All products are available with a 30-day trial.
Atlassian   Atlassian - the folks behind JIRA (which, in turn inspired Manual JIRA) wanted to let you know that they're not a "follow the rules" software company who realizes that there is no single recipe for practicing agile development. They were once hungry for practical tips, so they thought they should share their agile story.
 

Solid Hosting

go grid   Go Grid - the first multi-tier, cloud computing platform that allows you to manage your cloud hosting infrastructure completely on demand through an intuitive, web interface. Get powerful dedicated resources on a cloud computing architecture that you can buy as you need instead of deploying servers and building complex load balanced networks. Get a $50 credit when signing up!
Cushy CMS   Cushy CMS - a hosted CMS built from the ground up with ease of use in mind. It's incredibly simple to use: no PHP or ASP required. If you can add CSS classes to HTML tags then you can implement CushyCMS. And best of all, it's free. Spend a few minutes and try it out!
SoftLayer   SoftLayer - serious hosting provider with datacenters in three cities (Dallas, Seattle, DC) that has plans designed to scale from a single, dedicated server to your own virtual data center (complete with racks and all)

Slow, Difficult to Code, and Buggy

by in Feature Articles on

Back in 2006, Steve worked as a developer at mid-sized financial services firm. Like many organizations with central IT operations, departments within Steve’s company had the option to “buy” application development services from IT, or use an outside vendor for their business software needs, provided that the vendor’s software met IT’s security and technical requirements.

Generally, getting IT’s approval was easy: the purchaser just needed to set up a meeting between the vendor and an “integration services” developer on Steve’s team, and then wait a few days for approval. But every now and then – such as when the HR department hired GlobalComp to build a web portal – things get a bit tricky.

The GlobalComp Review


The Confidential Upgrade

by in Feature Articles on

Twenty five years ago, when Steve W. worked for a military subcontractor, he'd often roll his eyes when meetings were denoted "CONFIDENTIAL". It's not that he didn't take confidentiality seriously, it's just that everything they did was confidential. By labeling most everything "CONFIDENTIAL", there was no way of knowing when some things – like performance reviews and should-we-fire-so-and-so discussions – were really, really confidential. At least, not until you were actually in the meeting.

At one meeting, it was was really, really confidential. It was a one-on-one and across the table from Steve sat the Project Manager. These kind of solitary meetings took place either because you're doing something very wrong... or you're getting canned.


The Program Accelerator

by in Feature Articles on

As a postgrad in the late '80s, Neil Bowers made some extra book money by acting as a helper in the computing lab. At the time, undergrads were all working on a grindingly slow VAX-11/780, and Neil and his fellow postgrads were posted there for hands-on help. This tended to be focused at the start of the year, when there were groups discovering Unix and programming for the first time.

One time, an Irish girl asked Neil for some help, saying that she couldn’t understand what was going on: she thought her program looked right, but for some reason, each time she ran it she got partial output, and varying amounts of output each time. The homework assignment she was working on involved writing a program that generated various values and wrote the results in ascii tabular form to a file.