Casting Blame On The Air-Control Outage

Several news sites are beginning to parrot the meme that the root cause of last week’s outage of air-control in the Southwest US is Windows Server 2000’s “design” to shut down every 49.7 days “to prevent a data overload.“ This isn’t true. This is almost certainly referring to the GetSysUptime() function, which returns a 32-bit integer telling how long in milliseconds the system has been up (1000 * 60 * 60 * 24 * 49.710269618055555555555555555556 = 0xFFFFFFFF). Every 50 days or so, the GetSysUptime() function rolls over and starts at 0.

“…To avoid this automatic shutdown, technicians are required to restart the system manually every 30 days.” This is an all-too-believable system response to a minor software defect. How long would it take to change even a broad dependence on a 32-bit response? A few tens of work-hours?

FlexWiki: Another MS Project Goes Common Public License

FlexWiki, a Wiki project by Microsoft Program Manager David Ornstein, has moved from GotDotNet to Sourceforge and changed to a Common Public License. This is the third project after WiX and WTL that MS has placed on SourceForge. Clearly, Microsoft lawyers have worked their way through the CPL and found it acceptable. Whether “floodgates will open” or we’ll just see a trickle of projects, it’s good to see.

I joined the FlexWiki mailing list a while back, wondering if I could add Tablet PC inking to it. My first take is that the document structure isn’t quite what you want for an ink-based Wiki. The big wrench in the “Ink Wiki” plan is that text recognition can only occur on machines running the Tablet PC version of Windows XP, making Search significantly more difficult to pull off.

Crash Analysis Standards

Peter Coffee, eWeek’s astute analyst, says that Web Services should have a standard for crash analysis. The two biggest benefits to programmer productivity in the past decade are managed memory and exceptions that generate stack traces. I’m coming up to speed on a customer’s system for which I have a very specific task. My approach is to forego the incredibly poor documentation and write junit tests (yes, that’s right — it’s a Java project) that crash the system, generating exceptions as they go. The exceptions that are generated contain stack traces that show me, to the source code line, the state of the system at the junctures critical to the task at hand. This is actually faster than stepping through thousands of lines of source code trying to comprehend the system. Screw comprehension — tell me where it hurts.

I have yet to see an article in a magazine or journal that gives credit to structured exceptions as the productivity boon that they are. They’re essentially a “theory-less” beneficial feature. And yet the benefit is huge. This just goes to show how out-of-touch are most theories of software development.

Biggest Organism: Big Honkin’ Mushroom v. Great Barrier Reef?

There’s a Big Honkin’ Mushroom in Oregon that covers 2,200 acres and is claimed to be the “largest living organism.” My question is whether a mushroom is a single organism or if it’s communal and therefore in the same class as the Great Barrier Reef (which extends for more than 2,500 kilometers and has single bommies that cover 250,000 acres!)

(Googling for “mushroom communal organism” is terrifying proof that hippies know HTML.)

We know you have a choice of airlines…

I’ve been doing way too much flying lately.

Have you ever noticed that the pre-flight safety briefing starts with instructions on “how to buckle a seat belt” and moves without pause through “activating your on-board oxygen mask” to “transforming safety slides into liferafts in the case of a water landing”? I’d like to think that there are people who can step up the plate at the level of not knowing how to work a belt buckle but, by the end of a depressurization and water-crash, detaching the safety slides into 16-person rafts.