Loma Prieta, at Apple

Though it wasn’t a Hollywood moment, the hamster made it out just fine; it had had plenty of practice.

It was the afternoon of a not-really-hot day in October 1989. The hamster in question belonged to a cow-orker in the Development Systems Group at Apple (the folks responsible for the Macintosh Programmer’s Workshop — and now you have another reason to teepee my yard). Our group was on the second floor of one of Apple’s older buildings, called Mariani 1, (if it is still standing, it’s across the street from Infinite Loop). Apple named buildings by the streets they were and added a number in the order the buildings were bought or leased, so Bubb 3 might be next to Bubb 5.

Ms. Hamster had been bonking around the office in her little ball for several weeks. You’d hear a small “pockity pock” in the distance that would gradually grow louder, and then the little beastie would roll into your cubie, bonk against your feet, and follow the wall out and on to the next cubie. That practice I mentioned earlier: Once the hammy found the stairs, which were raw, unforgiving concrete inset with hatch-marked steel bars for traction. You can’t tell if a hamster has been traumatized, but I always thought the bonking sounds were a little more tentative after Ms. H’s precipitous visit to the first floor lobby.

Anyway, just after five in the afternoon of this otherwise unremarkable day, the Great Giant Snake that lives under the Santa Cruz mountains to the west of Silly Valley got a tummyache, burped, and we found out about it a few seconds later as the P-waves arrived and started making a mess of things.

First: A bump, and a little bit of dizziness. Did a small truck just hit the building?

Then: No, the fluorescent lights are swinging, and the floor is definitely jiggling. Oh, this is moving lots more than the last quake, the tiny 4.5 we had a few years ago. Hey, that shifted my chair, and my monitor is doing a bobble-head thing, and it weighs like seventy pounds and is mostly made of glass and if it jumps off the desk it’s going explode and shower me with busted glass.

Against better judgment: This is really going strong. Is it the Big One? Maybe I should get out of here. Get up, start walking briskly to the stairs. Many people join me. We are all walking briskly; no panic, but with determination. Everyone is curiously silent. Intent on trying not to panic.

Someone does panic, and starts to run. Someone else (maybe me) yells out “WALK!” and they do.

Suddenly there’s a SLAM and the building feels like a whole metro bus hitting a curb, and it’s a scene from Star Trek on the bridge of the Enterprise; shields are down and the people around me are thrown right and then left, actually more competently than on the show. Rather, the building is being thrown left and then right, and we’re rattling around inside and being bonked by walls and stuff. The lights go out. There are screams (not me, I think).

The photon torpedo attack dies down. We briskly walk down the stairs and get outside. Car alarms are going off. A couple of motorcyclists are pissed because their bikes have been toppled.

—-

I wish I could truthfully add: And a hamster ball rolled out of the building’s front doors and stopped at our feet. That would have been a wonderful Hollywood moment, but it didn’t happen.

—-

We milled around for a while. After about an hour we were briefly allowed back in the building to collect essentials such as car keys and told to go home.

At the time I lived in an apartment a short distance from the Apple campus, so my commute was a simple ten minute walk. I was glad I didn’t have to drive anywhere; the power was still out, none of the traffic lights were working, and as near as I could tell things were just gridlocked.

At my apartment, one of my bookcases had been toppled, but that was the extent of the damage. I didn’t own a battery powered radio, however, so I had to go to my car and use its radio. I met some of my neighbors and we swapped stories.

Around six in the evening, helicopters from the local Naval air station (Moffett Field) came into view; perhaps four or five of them flying abreast, doing a grid-like search over the area. I imagine they were looking for things like fires; in the hour before dusk it looked a little like a scene from a Vietnam war movie.

The power came back on about ten o’clock, and we got to see footage of the really bad areas (Santa Cruz, the Marina district of San Fransisco, and the horror of the collapsed freeway in the East Bay). Those of us at work not actually involved in cleaning stuff up were told to stay away until things were under control (in DeAnza 3, the main engineering building, the fire sprinkler system had cut loose and sprayed rusty, dirty water into most of the computer systems, and people spent weeks drying systems out with hair driers and recovering data).

For several weeks, I couldn’t cross a freeway bridge without making plans in my head about what to do if there was a quake. And I bought a battery-powered radio.

Don’t get me started on that subject

“Reaction time is a factor in this test, so please pay attention. Now, answer as quickly as you can.”

“Okay.”

“Nine two six five three –”

“Those are digits of Pi.”

“What?”

“I memorized that when I was a kid.”

“Did you have fun doing that?”

“Yeah, I guess. Is this part of the test?”

“No, just warming you up, that’s all.”

“Oh, it’s not hard or anything?”

“You’re in a cube farm, going for coffee in the kitchenette, when you hear someone cursing.”

“Is this the test now?”

“Yes. You look into a cube, and you see someone staring at their program –”

“What one?”

“What?”

“What language are they using?”

“It doesn’t make any difference. You look down and –”

“But what am I doing at that company?”

“Maybe you’re hacking C++, maybe it’s Visual Basic or Perl, who knows? You look at the screen and their IDE is full of syntax errors…

“IDE, what’s that?”

“Know what Visual Studio is?”

“Sure.”

“Same thing. You just stand there and stare at all the errors –”

“Do you make these questions up, or do they write them down for you?”

“– the person is trying to fix them, but they just don’t get the syntax, they keep making things worse and worse and now they have thousands of errors, filling the screen. But you’re just standing there, not helping, they’re utterly lost but you’re not offering any advice –”

“What do you mean, I just stand there?”

“I mean, you don’t do anything. Why is that?”

(silence)

“They’re just questions. In answer to your query, no, these are written down on the interview sheet. It’s a test, designed to provoke a response. Shall we continue? Describe in single words, only the good things that come in to your mind about … installers.”

“Let me tell you about installers…”

More pithy observations

“They got over-paranoid and missed the difference between declaring types and declaring war.”

—-

“Ummmm . . . say, if aliens from planet Zorkon invaded us and demanded that we run our software on their 57-bit word, 11-bit byte, inverse-byte-order machines, are we prepared?”

“Naw, we’re just as screwed as we ever were on the hardware we already have.”

“Excuse me, I have to call the President.”

—-

“That’s certainly an interesting way to increment a variable.”

“Yeah, I’m afraid what we’re going to find when these guys figure out multiplication.”

[30 classes later]

“… and yes! We have a pointer dereference!”

—-

“I’m so far up this call stack that I can see my tonsils again.”

—-

“Bring me another beer, we’re gonna look at file buffering next.”

“Beer, hell. You’re going to need something stronger than what they were on when the wrote it to begin with. How ’bout a whiff of ether, for starters — I’m all out of LSD.”

—-

“Fizzbin.h declares the types for the Fizzbin subsystem, and you can control its operation via the Fizzbin database, or by a properly formatted fizctl.xml file. If the Fizzbin fobblegrabes or overflows the blagbuffer, just use the Fizzbin Control Center application to rebrodrify unavailable resources into virtual fimblekittens and restart the fizzerv with the FZQQR4.EXE utility (included in service pack 2.005.3224j). Note that the Fizzbin 6.21c API differs from that of 6.20b (patch 17), and that memory requirements have changed, but we’re not going to tell you how because we’ve been unable to talk our tech writer down from the window ledge for this release.”