Archive for April, 2008

Staggering Failure of the Software Sort

Evidently California thought it a good idea to run their air traffic control system using software developed on Windows servers. Back in 2004 they failed, though not quite catastrophically:

The radio system shutdown, which lasted more than three hours, left 800 planes in the air without contact to air traffic control, and led to at least five cases where planes came too close to one another

Sometimes systems fail, particularly complex systems. What’s truly shocking to me about this story is this statement:

The failure was ultimately down to a combination of human error and a design glitch in the Windows servers brought in over the past three years to replace the radio system’s original Unix servers, according to the FAA.

The servers are timed to shut down after 49.7 days of use in order to prevent a data overload, a union official told the LA Times. To avoid this automatic shutdown, technicians are required to restart the system manually every 30 days. An improperly trained employee failed to reset the system, leading it to shut down without warning, the official said. Backup systems failed because of a software failure….

To be sure there was human error as a component of this failure but it doesn’t sound to me like it was with the “improperly-trained employee” (also known as “the scapegoat”). Looks like it lies with whomever designed and developed this system. And that such an incredibly important, mission-critical system needs to be manually rebooted. Manually rebooted because the auto-reboot doesn’t work properly. An auto-reboot that’s needed because the system itself doesn’t work properly. I say to you: wtf? Seriously?

Incidentally 49.7 days (aka 2^32 milliseconds) because of a design flaw in Windows:

After 49.7 days of continuous operation, your Windows-based computer may stop responding (hang).
This problem can occur because of a timing algorithm in the Vtdapi.vxd file.

States the article:

The FAA is now planning to institute a second workaround - an alert that will warn controllers well before the software shuts down.

An alert that’s needed because the manual reboot that’s needed for the auto-reboot that’s needed for the system that doesn’t work, doesn’t work.

To steal Uncov’s tagline: “epic fail.”

I wonder if they’ve upgraded since? Perhaps to a monkey that now watches for the alarm that….

No Comments »

chris on April 30th 2008 in /dev/random

Ted Gets Medieval

Dude, your app isn’t having scalability problems because of the architecture. It’s having scalability problems because you coded a ton of N^2 loops into it and you’re too self-important to get peer reviews on your commits.

- Ted Dziuba, “I’m Going To Scale My Foot Up Your Ass”

I’ve got nothing to say about the latest Twitter scalability slap-fest rending its way through the, well a couple dozen sites anyhow, but I do appreciate a well-crafted rant. I do indeed.

No Comments »

chris on April 25th 2008 in /dev/random

Today’s CSS Lesson Is…

If you take nothing else away from being awake today, take this:

One of the principles I took away from the Web Standards community was the concept that pixel perfect precision across the various rendering engines was impractical and a remnant of the table-based layouts of yesteryear.
- No CSS Reset

I personally am tired of battling designers who naively create mocks in Photoshop that demand pixel-level alignments and then shoehorn them into the webpage with brutal HTML and CSS, usually at the expense of usability and accessibility (and if you’re a designer or web developer who doesn’t know the difference between those two terms and why they matter, you should be shot.)

/rant

No Comments »

chris on April 17th 2008 in /dev/random

History Meme

Jumping on the shell command history meme:

history|awk '{a[$2]++} END{for(i in a){printf “%5d\t%s \n”,a[i],i}}’|sort -rn|head
   97	ruby
   64	cd
   45	telnet
   43	ss
   27	sudo
   25	ping
   25	mysql
   18	ll
   16	svn
   11	script/generate

Too much playing in Ruby, I think!

Interestingly, this variant:

history|awk '{print $2}'|sort|uniq -c|sort -rn|head

Produces a slightly different count for Ruby:

  95 ruby
  64 cd
  45 telnet
  43 ss
  27 sudo
  25 ping
  25 mysql
  18 ll
  16 svn
  11 script/generate

Tag, you’re it.

3 Comments »

chris on April 16th 2008 in /dev/random

Even Giants Trip and Fall Now and Then

Came into work this morning to find Twitterific gracefully informing me of an error on the Twitter servers:


twitter fall down

I post this not to mock the Twitter folks by any means but rather, as a developer with a development team who’s about to ship a new site in a matter of weeks, to remind myself that even giants trip and fall on occasion and it’s not the end of the world when it happens. The question is not “do you stumble?” but rather “how gracefully do you pick yourself back up again?”

(And to the inevitable “no excuse” fireand brimstone comments that are sure to follow: first stone and all that).

No Comments »

chris on April 7th 2008 in /dev/random

Useful Tidbits

The CBC has a Twitter feed: cbcnews.

The BBC has a Twitter feed: BBC.

And this Python script allows you to track your Domino’s Pizza order from the command line, which is gastronomically awesome! dominos.py.

Now I just need one to let me order from the command line. Surely Domino’s can hook my public key up to my phone number and address… and then hook it into cron to run every Sunday at 7pm….

No Comments »

chris on April 3rd 2008 in /dev/random

Working With Large Text Files in OS X

Much as I love TextEdit, it’s an in-memory editor so when I tried to open a 4.5 million-line, .5 Gig text file in it, it simply refused. Not good, that. Made me long for BBEdit which I seem to recall could manage huge text files with speed and grace.

I downloaded TextWrangler and gave that a go. It died with an error -116 (”Size Check failed”, obviously). Given that TextWrangler uses the same text engine as BBEdit, that makes me think BBEdit wouldn’t have fared any better.

Amusingly TextEdit can open it but is slow as molasses (which I don’t begrudge it, really, given the size of the file).

I also tried opening it in nano for fun but as my SQL import error is:

ERROR 1062 (23000) at line 2712199: Duplicate entry '52928' for key 1

and I don’t know how to search by line number in nano, it turns out that isn’t a very efficient way for me to work (I realize the issue there is me, and not nano… unless nano cannot jump to a line number in which case ignorance is bliss).

Ultimately it was Hex Fiend that did the trick, kind’a. Working in a 4.5 million-line text file in a hex editor really blows but at least it was fast and functional and let me find the conflict and fix it.

So if you know of another text editor that can handle massive text files with grace and aplomb, kindly let me know (unless you’re going to say vi or emacs or any variant thereof, in which case kindly bugger off).

4 Comments »

chris on April 1st 2008 in /dev/random