Forthcoming books

2014, the SF books I’m looking forward to are:

  • Steven Gould, Exo (in September)
  • Joe Haldeman, Work Done for Hire (in January)
  • John Varley, Dark Lightning (in August)
  • Charles Stross, The Rhesus Chart (July)

That is all.


Posted in Uncategorized | Leave a comment


Dear SOAP,

Please drop dead.


/s/ an engineer frustrated with over-designed, under-implemented and uselessly complex, bloated and generally fucked-up “standards”


SOAP replies

Dear Dadhacker,

I’m here to stay. Suck it.



Dadhacker’s response

Dear SOAP,

My name is Dadhacker. You killed my whole day. Prepare to die.


/s/ Your Nemesis

Posted in Uncategorized | 5 Comments

Another Assembler

For kicks I spent a few days writing a 6502 assembler in Python (I had a need for one, and getting there is half the fun).

It’s under the ABRMS license (“Anyone But Richard M Stallman”). So, in the unlikely event that you need a simple and nearly free 6502 assembler, and in the likely event that you’re not RMS, you’re in luck.


Posted in Uncategorized | 15 Comments

Sinofski on performance reviews


Since I left Microsoft a little over a year ago, I’ve written a few rants that I’ve never published. Amongst the subjects I tackled were some attempts at “what’s wrong with Microsoft’s performance review system?”. None of these efforts were worth posting; I guess I just needed to get it out of my system.

So here is a well thought out post by Steven Sinofski (ex of Microsoft) on the theory and practice of a performance review system. It’s level-headed, insightful, and definitely worth a read.

A couple of points of my own:

Space it out. Microsoft should seriously consider ditching the annual simultaneous review of everyone in the company. MS should do something like review people on their hiring anniversary (or at least, in initially random cohorts spread over the year). Stack rankings could happen more often (2-3 times a year?) so that decisions would have enough data.

This would dramatically reduce the political turmoil around the Big Review. It might give meaning to the self review system (which should otherwise be junked, as it is merely a post-facto substrate for the stack rankings which generally happen a month or more before people write their own reviews).

Eliminate the curve. Obviously the fixed stack rank buckets need to go. This has been said before. Conflating stack ranking and firing is a narrow way to look at things (there are valid reasons you’d want to fire high performers, for instance, and equally valid reasons to retain someone who’s not doing well).

Learn how to fire the right people. Microsoft conflates stack ranking with identifying the people to get rid of. I think of ranking as purely a gauge of comparative performance so that you can figure out how much to pay. You might want to get rid of people in the low buckets, or you might want to keep them all — it depends on the group. There are circumstances where you need to fire high performers, too (especially in situations where they are toxic or doing damage).

I keep hearing rumors that MS is going to make revisions to its review system (apparently people are turning down offers because of it). It’ll be mildly interesting to see if it improves.

Posted in Uncategorized | 3 Comments


A nice article on Douglas Hofstadter in the Atlantic: here.



Posted in Uncategorized | 1 Comment

Windows Updates Bedtime Story

“Tell me a story”

“Once upon a time, a bear went to apply the latest Windows updates to his laptop. For a while things went fine, but near the end, at the very last two critical updates, he started getting an obscure error. No amount of rebooting or re-running would make them work. So he went out into the forest and started asking the creatures about what to do.

“Ready Rabbit asked if he had rebooted his computer. ‘Yes, I did,’ said the bear, and continued on.

“SQL the Squirrel wondered if he had executed the turn off / turn on procedure. Bear said, ‘I don’t see what difference that would make, but okay.’ He turned the laptop off and then turned it back on again, and the updates still didn’t work.

“Fixxit Fox asked if he had installed the latest updates first. The bear ate him.

“Finally, Awl the Owl gave him a link to a half gigabyte “Update Readiness Tool” that would fix the problem. He went home and downloaded and downloaded and downloaded and finally ran that puppy.”

“Daddy, daddy, what happened next?”

“Well, what do you think happened?”

“I think that his laptop ‘sploded all over the ceiling!”

“Well, no.”

“Did the laptop melt into a puddle of silicon slime and start slagging down through the floor like the molecular acid in that scary space movie I’m not supposed to see until I’m 27 and you don’t have to pay the bill for a therapist?”


“Did the updates work? I’ll bet they worked, Daddy!

“No. The bear put the laptop away in a corner, went to his blog and wrote down a rant.”

“Then he ran Linux! With a real window manager and not that Unity garbage!”

“With a real desktop and not that Unity garbage, yes. Bedtime for you.”


I haven’t actually installed Linux on that yet, but I’m sore tempted.

Posted in Uncategorized | 15 Comments

Eject, eject!

In 1992 the Newton group at Apple was in a small, unmarked building a mile off-campus on Bubb Road. It was a pretty good location for a project that was secretive and needed isolation from the rabble on the main campus; while we didn’t have any special card locks on our doors, and any Apple employee could come by, the distance kept random people from coming over and let us work in peace.

Newton was one of John Sculley’s favorite projects, and that’s probably one of the reasons we were the first (or maybe second) group to move into the new Infinite Loop campus that Apple had started building near 280. They had nearly finished Building One, and we moved into it around the beginning of December. I remember it raining a lot.

The building wasn’t /entirely/ finished, and there were pieces of it that were new and mysterious. The fire alarm system kept going off, for instance. Some of this was teething trouble and bad sensors, but rumor had it that the construction crews were hitting the alarm because they were frustrated at having to work around the Apple employees who had just moved in.  The alarm system triggered the dramatic closing of some big fire doors, the kind you might find in a “that’s no moon” kind of battle station. It was pretty cool the first few times, but after about the tenth twice-daily “accidental alarm” trip it got somewhat tiresome.

And there was a mysterious button near the bathrooms on our floor.  Just a metal plate with a little round, black button in its center. No sign or indication about what might happen when you pressed it, and nothing seemed to happen if you /did/ have the courage to press it.

Nearly everyone in Newton was working crazy hours at this point; eighty hour weeks were pretty common. While the end wasn’t in sight, we were making good progress on some hard problems. Well, handwriting recognition was still a big bet, and there were a lot of issues around memory footprint and storage, and the development environment was behind, and the language the applications would be written in was still being designed, and PCMCIA card support was rocky, and IR and faxing were flaky, and the built-in applications were still in a lot of flux, not to mention gesture recognition, shape drawing and sound, and battery life, and ROM space, and how we were going to patch ROMs with only a 20K budget of RAM. But aside from those issues, and a few other things (like the schedule), the project was going okay.

Meanwhile at home, I’d purchased a new Sony CDROM drive for my PC so that I could install the newly released Yggdrasil Linux (as if I had any time to do this, but hey). The drive came with a little sheet of sticky labels that you were supposed to apply to the drive’s bezel; there were a couple of arrows, some labels with “pause”, “play”, “eject” and “stop”, and a bunch of digits and letters. These looked very professional and were backed with wonderfully strong adhesive; someone at Sony wasn’t messing around. It seemed a shame to waste the sheet, so I put the labels in my pocket one morning and headed to work.

Around 10 or 11 that night I was wandering around waiting for a build to finish when I happened to pass by that mysterious button near the bathrooms. I looked around, and was alone in the hallway. I carefully peeled off a couple of the CDROM stickers and placed the “Eject” sticky and one of the arrows over the button.

It looked really official and imposing. I didn’t expect them to last more than a couple of days before some building manager or construction worker would see it, tear the stickers off and put up a real sign. But in the mean time, giving people a little more mystery seemed like fun.


I don’t know who first spotted my mini prank, but over the next few months people would have casual conversations about that button. “What does the ‘Eject button’ do?” /  ”I pressed it but nothing happened.” Going to the bathroom became “Visiting the Eject Button.” It came up a few times in meetings. What did it do? Did it actually eject anything? That seemed a little scary. There wasn’t any sound, how could that be?

Now that it had a name, it seemed that people were even /more/ puzzled by that button. I kept my mouth shut, except for a couple of friends.

More months passed. We shipped the Newton (a few months too early, in my opinion) and moved to another building in Infinite loop. About a year later I left Apple to join a start-up run by some other ex-Newton people. Eventually Newton was canceled by Steve, and people went their separate ways. I’ve worked with a number of ex-Newton folks over the years, at other companies. They’re good people.

A couple of days ago, one of my ex-cow-orkers emailed me this photo.


Ha. Over 20 years later, the Eject Button is still there. I had no idea it would last so long.

I wonder if Steve ever pressed that button, or wondered what it did?

(To clear up the mystery: The Eject Button turns on the after-hours air conditioning for a while. The contractors building the campus hadn’t bothered to label it, so I did it for them :-) Those of you still at Infinite Loop who had no idea what that button does, now you know. Nice job on the MacBook Pro, by the way; I rarely bother to get my Windows laptop out these days).

Posted in Uncategorized | 19 Comments

Dota2 hero designs

Our son hasn’t played Dota2 yet, but has seen some matches (and went to The International), and has some suggestions for additional heros:

First, Fallen Warrior and Storm Titan:



Dark Guardian and Bunny Warrior:


I think the Bunny Warrior would be absolutely terrifying, given the right abilities. The “Bunny Hail” ultimate certainly gives me pause.

Posted in Uncategorized | 3 Comments


Found this in a basement of the National Center for Atmospheric Research, in Boulder Colorado:


It’s the first Cray that shipped, just sitting there. Seymour hisself prolly helped wire the thing (and oh my, there are a lot of wires).

[I stand corrected, it's serial number 3. There's a page about it here.]

One of the computing center staff was walking by when I took this picture. He said that they have one in a museum in London that is roped off. When he remarked to one of the curators there that “Ours is better” they asked him why.

“You can sit on ours.” And indeed you can.

Of course it’s not plugged in or doing anything; your average cell phone will run rings around the CRAY-1, on less than a millionth of the power (115KW plus I/O systems plus cooling infrastructure, versus 200ma or so).

The NCAR is a nice visit. They have a good visitor center and I recommend the short film they have there on what they do. The view is nice, too.

I have photos of their machine room, but they’re just the usual boring racks and boxes on a raised floor. One thing that Seymour had was a sense of style.

Posted in Uncategorized | 6 Comments

virtual chikken


My son is (a) spawning hundreds of chickens, and (b) using a machine made of pistons and some other gadgets to squish them into oblivion. It’s Minecraft, of course. From Alpha to Omega, from squark to squawk, these are Minecraft-mediated virtual particles. Made of chicken.


In my own youth it was pulling legs off bugs and charring them with a magnifying glass. Ant hills were targets of opportunity. Today this mayhem is an online multiplayer event.


 ”Whahoo! Yay!” chicken3 ”I’m a chicken!”

==> [X] chicken3  [X] <==


We live in the future.

Posted in Uncategorized | 3 Comments