My main computer at home died the other evening; there had been subtle signs of illness (disk errors, mysterious freezes, blank screens and poor scores in Diablo II), but I was in denial. It quit for good while I was on a potty break. So after putting the Gibber to bed, I went back to the office and tried to debug things. I wound up tearing it completely apart. During the surgery it beeped a few times (“beep beep beep I was sick and getting worse and worse and you ignored me, so here’s your due, you schmuck”), then went totally silent, even when stripped down to bare essentials. I reseated everything, tried a different power supply, tried swapping out processors, did the three inch drop, nothing. Suck. I guess the smoke inside got tired or something.

Well, in the bigger picture it’s not a problem. I keep regular backups and the old disks were still readable (with a little effort). The system was about five years old and I’d been kind of expecting this, but was hoping that I was off of the upgrade treadmill until (say) next year.

So, $1200 and two days later I’ve got a machine that is *lots* quieter, and I have most of my files back, but I’m still reinstalling the stupid software. Somehow I managed to get through nearly five years without reinstalling Windows, and I’d become dependent on things that I hadn’t realized I was dependent on.

[I won’t talk much about the hardware I bought because that’s boring, except to say that (1) SATA disks are pretty neat and God damned fast, and (2) the old machine had dual processors, and you can really notice that you’re on a single processor machine, even with hyperthreading, even when the old machine was one third the speed. Finally: I buy reliable computing equipment, not bloody light shows or overclocker’s playthings; salestypes who try to sell me LEDs and cases with windows and stupid blinking lights and so forth can go hang.]


A partial list of stuff to install: The OS and drivers, updates and optional components. Office and its updates. Geek tools: Epsilon (my favorite Emacs clone), Perl, Visual Studio, a few random tools. CD burning software. Anti-virus and anti-spyware stuff. Games (the ones I’m still playing, having given up on Freelancer and such). Printer, image editing and camera software. Media player (I’m probably going to ditch iTunes, see below). That’s probably about half of the list. Wups, email client. And . . . you did remember all of your passwords, yes, the ones that you conveniently had your apps save for you?

There are a class of applications that I consider “renting.” Omnipage Pro (at least the version I have) is one of these; the app refuses to install without a “fresh” certificate (first you type in the product key you got when you bought the app, you give that to a server which produces the activation certificate that is good for like thirty days. You can do this whenever — you “own” the software — but a stale certificate won’t work). The problem is that the bastards turned off the certificate-generating server for my version. So a $100 package is really only good for maybe three years.

So, fuck Omnipage Pro [I didn’t try setting my system time back, but I will.] Same deal for some Symantec software; I’m done with that package, it needs cooperation from the server to install the latest working pieces of itself, and the server is just gone. I don’t mind paying for decent software. I do mind paying for forced upgrades that I don’t need, or for software that breaks because the company went out of business or lost interest in ‘supporting’ my version (to the extent that maintaining a server with old, unchanging updates is ‘support’).

Then there are “limited install” programs, such as the ones Popcap games sells. At least these folks are honest about things up front (but note that they can still get bored and turn off their authentication server).

The DRM’d stuff is probably the worst blow; renting your own data SUCKS. I may be able to recover the encrypted iTunes content (not sure), but if I can’t, I’m stuck with the somewhat lossy MP3s (and, of course, the backup audio CDs). Ditto for the audio books managed by Audible’s DRM software; I have many backups of the audio, but the original purchased files are probably unreadable.

So, fuck DRM’d content. I’m not going to do that again.

We can do better than this

You could certainly imagine an OS environment that didn’t require you to reinstall everything in a painful, serial, hands-on fashion, each app with its own tweaky little installer, each app wanting to put you on a mailing list, or re-EULAing you, or ‘calling home’ to let the mothership know that you’re reinstalling, or maybe accusing you of being a pirate.

There should be a similar story for the DRM’d data; why couldn’t it be keyed to something really obvious that you’d have to be a bozo not to back up, perhaps with keys stored on an escrow server somewhere? I’d pay a buck a year for a service that stored my iTunes DRM key for me (and say twenty bucks each time I needed it; insurance).

Disks are big enough now that backups should just happen; you shouldn’t be able to turn them off. You get half of the disk; the OS figures out what’s valuable and makes sure things are replicated enough on the rest that you’ll be able to get to it later. You pop in a CDRW from time to time to safe the data. You get the ability to transport the DRM’d data to another machine under the supervision of that escrow service. All of this is doable. It would probably save the industry many megabucks in support hassles.

I think this is where “utility computing” may go. You do want your own hardware; UC is the infrastructure that makes it reliable. You pick the video cards and processor and OS (if you want), UC provides standard back-end stuff that keeps your valuables safe.

I guess we have a lot of work to do yet.



        Monday                 Yingle-Yangle               Shitstorm
 Mo Mo Mo Mo Mo Mo Mo      Su We Mo Tu Th Fr Sa      Ka Ta Bu Ty Ga Pu Wa
                  : 1:            1  2  3  4  5             1  2  3  4  5
  2  3  4  5  6  7  8       6  7  8  9 10 11 12       6  7  8  9 10 11 12
  9 10 11 12 13 14 15      13 14 15 16 17 18 19      13 14 15 16 17 18 19
 16 17 18 19 20 21 22      20 21 22 23 24 25 26      20 21 22 23 24:25:26
 23 24 25 26 27 28 29      27 28                    :27:28:29 30 31      
 30 31                                                                   

                           Su Mo Tu We Th Fr Sa

      Barfbag                  Eenee-Meenee                 Pork
 Su Mo Tu We Th Sa Fr      Su Mo We Tu Th Fr Sa      Su Mo Tu We Th Fr Sa
                    A       1  2  3  4  5  6  7                1  2  3  4
  B  C  D  E  F  G  H       8  9 10 11 12 13 14       5  6  7  8  9 10 11
  I  J  K  L  M  N  O     :15:16:17 18 19 20 21      19 20 21 22 23 24 25
  P  Q  R  S  T  U  V      22 23 24 25:26:27 28      12 13 14 15 16 17 18
  W  X  Y  Z AA AB AC      29 30 31                  26 27 28 29 30      

      Embolism                 Barge-Butt                 Hangnail
 Su Tu Mo We Th Sa Fr      Su Mo Tu Th We Fr Sa      Su Mo Tu We Th Fr Sa
                 1  2          1  2  3  4  5  6                  30 30 30
  3  4  5  6  7  8  9       7  8  9 10 11 12 13      30 30 30 30 30 30 30
 10 11 12 13 14 15 16      14 15 16 17 18 19 20      30 30 30 30 30 30 30
 17 18 19 20 21 22 23      21 22 23 24 25 26 27      30 30 30 30 30 30
 24 25 26 27 28 29 30      28 29 30 31               

      Harrison                KROWWWW-W-WHACK!             Friday
 Mo Su Tu We Th Fr Sa      Su Mo Tu We Fr Th Sa      Fr Fr Fr Fr Fr Fr Fr
                    1             !  @  *  &  ?                  16 21:26
  2  3  4  5  6  7  8       /  \  >  
  9 10 11 12 13 14 15      ||  ~ ++ --  #  )  {      1   5  9 13 18 23 28
 16 17 18 19 20 21 22       }  ]  . -> ?:  _  `      2   6 10 14 19 24 29
 23 24 25 26 27 28 29       '  "  ;  ,               3   7 11 15 20:25:30
 30 31                                                                   

Yes, I will get started on the clock at some point. That will require some Perl to figure out...

(I rather like the idea of a leap *month*, like Tween).

Windows kiosk security

I used to work with (well, more accurately, next to) James Bach, who has a web log. (Son of “Jonathon Livingston…” yeah, that Bach). Here’s an entertaining post on the insecurity of windows-based kiosks (link).

Another Scholarly Work

A Security Analysis of the SAURON Command and Control System


In this paper we describe an effective attack against SAURON, a distributed, heirarchical command-and-control system with unique user interface features. Given access to a master key, a procedure is described that allows complete destruction of the entire system. No special skills are required by the attacker, and N is extraordinarily small (complexity is in single digits, possibly unity). In view of these weaknesses we describe physical and logical countermeasures that should dramatically increase the strength of the system, and we also comment on the unusual decisions made in the design of physical key containers themselves.

Keywords: SAURON, Mordor, One Ring, Fellowship, Volcano, Thermal Dissolution, Goddamn Stinking Elves Again, Hobbitses, Who Ordered The Damned Thing With Invisibility?!?

Authors: Elron, G. Grey, Baggins, et al.

Dressing Up / Dressing Down

I dress the Gibber in the morning: A onesie underneath, then some kind of shirt and some kind of pants. I know enough not to put stripes and plaids together (though one morning I did do this), but I do not know why (perhaps some kind of anti-matter reaction?) We’re guys. It’s just clothing. You wear it, wash it, and at some point it turns into rags for wiping stuff up (or your “favorite shirt” vanishes somehow, very spooky, I’ve never figured that out). The world is a mysterious place.

Wife: “Don’t you want to use that shirt with its matching <somethingOrOther>?”

I have to admit complete bewilderment. These arrived in sets? How do you keep track of all of this?

I mumble something about “Well, that’s the way I planned it, because <inventedExcuse…>”, and so the Gibber goes to daycare dressed funny, a lot like his old man. Sometimes I wish the old “Um, I’m color-blind, remember?” worked on more than just red and green, say, types of pants. And plaid.

Raskin Comment

ACM Queue has a (posthumous) article by Jef Raskin on documentation. He wraps up by saying:

Prior, clear, and extensive documentation is a key element in creating software that can survive and adapt. Documenting to high standards will decrease development time, result in better work, and improve the bottom line. It’s hard to ask for more than that from any technique.

I might add to this: The problem with literate programming is that so few programmers are really literate. Before you fly off the handle: many, many engineers are smart and clearly have passed the hurdles of college exams and such, but if you intersect programmers with the ability to write well, and the desire to write well, you wind up with a very small subset indeed.

Then again, at 3am my tolerance for horsepucky is low indeed, leading to things like


and no further apologies. On the other other hand, maybe this is as expressive as documentation ever gets. 🙂

BK Fracas

Quick summary of the foo-fah-rah:

(1) Linus starts using BitKeeper to maintain Linux. BK is a proprietary revision control system that has various proprietary whizzy features, and is free (for Linus) as long as
(2) the author (well, CEO of the company producing BitKeeper), the curmudgeonly and not terribly lovable Larry McVoy, is happy;
(3) predictably, one fine day Larry becomes unhappy, and in his curmudgeonly way withdraws the free licensing of BK, whereupon
(4) Linus drops BK and starts looking for something else. What does the Linux community doooo? Hilarity ensues.

Betcha couldn’t see that coming from a zillion miles away.

Well, the attractive thing about BK was that it was (A) whizzy and did things that CVS didn’t do [1], and (B) BK was was or less free as long as Larry was happy. Now that it is not free (it never really was), Linuxites are crying foul and looking for people to blame (for once, Microsoft hasn’t been dragged into the Slashdot muck. Go figure).

What if BK was almost free? Say, ten bucks a head. Would anyone still cry foul? What about fifty? Or five? A quarter? What if BK users paid by the checkin or diff? What if using BK was cheaper than powering your computer 24/7/52?

This loose and inconclusive rhetoric brought to you by four hours of sleep and a really long day that was capped off by a lot of barf (not mine).

[1] CVS should have died years ago; it sucks (the only CMS that I know of that sucks worse costs many, many thousands of bucks). The fact that something is free tends to prolong its life far, far past its usefulness, just like charging megabucks for crappy “enterprise” software works because you couldn’t have made a mistake buying that package, could you? Oh, nossir.

[Correction: It was the other Larry, the McVoy one. Thanks, Steve.]