Idea Man
Page 6
There was always a push-and-pull with us. It manifested itself at Lakeside in the rivalry between Ric and me, on one side, and Bill and Kent on the other; they were two years behind us and had something to prove. At bottom, the Lakeside Programming Group was a boys club, with lots of one-upmanship and testosterone in the air. And while we were all bent on showing our stuff, Bill was the most driven and competitive, hands down. We were friends from the day we met, but there was an underlying tension, too.
Midway through twelfth grade, I was minding my own business in the school’s computer room when Bill began taunting me: “Paul, there’s something hidden here that you should know about, but I bet you can’t guess what it is.”
I said, “Oh, really, Bill? What would that be?”
And he said, “I can’t tell you, but it’s something you wish you had.” Bill being Bill, this went on for a while. Unbeknownst to him, however, I knew his secret. Some weeks earlier, an auction had sold off C-Cubed’s remaining assets, including dozens of DECtapes. Bill and Kent snapped them up for a few pennies on the dollar and never breathed a word of it. But Ric had spotted them hiding their booty in the Teletype’s pedestal base, and passed the intelligence on to me. Later that day, after the others left, I scooped up the tapes, carried them home in a box, and hid them under my bed.
The next day, the worm turned. Bill was furious. “You knew those DECtapes were there the whole time,” he said. “What did you do with them?”
“Really, Bill?” I said. “You had some DECtapes? Where did you get them?”
Bill was beside himself. Kent called me a thief and threatened to sue. It got loud enough that Fred Wright came in and took me aside, and I agreed to return the tapes.
That kind of conflict, though, was rare for Bill and me. In a series of senior-year essays about those near and dear to me, here is what I wrote about him:
A short, bright, smart, humorous and generally likeable person. Thinks school is a snap. Just as smart as me in most everything (but English) and very often superior even though he is only a sophomore. I know quite a bit more about the sciences and the world in general. Magically able to laugh at himself in almost any circumstance. Loves computers and gadgets as I do. Very suggestible and is ready to jump at any chance to have fun in strange ways. We fit together very well.
AT MY LAKESIDE commencement exercise, a classmate named Stu Goldberg played the piano in virtuoso style. For a while I’d been weighing two possible career paths: rock guitar or computer programming? Hearing Stu, who would land with John McLaughlin and the Mahavishnu Orchestra the following year, reaffirmed my choice of computers.
After the ceremony, as I walked off with my parents, Fred Wright came chasing after us with a sheet of paper in his hand. It was my last time-sharing bill, somewhat north of two hundred dollars. My father grumbled a little as he made out the check. I was planning to major in computer science at Washington State University, but my parents were still dubious about the field’s profession. They saw it as more of a sideline until I found my real future.
The Class of ’71 was Lakeside’s last as an all-boys’ school; it merged with St. Nicholas to go coed that fall. As a parting gift, we left a tombstone that still rests on the campus. In misspelled Latin, it reads: Vivat virgor virilis, or, “Long live male virginity.”
CHAPTER 5
WAZZU
I was glad to be on my own at Washington State (or Wazzu, as we called it), three hundred miles from home, but college life wasn’t quite what I’d hoped. My intro courses were less than challenging. I missed my family and my girlfriend and got distracted by the social hubbub. Some people thrive when they first go out on their own, but I was not one of them.
I also missed the PDP-10. Early on, my nights were spent writing programs on batches of cards for an IBM mainframe. “It is different to be using IBM equipment but it really isn’t bad at all,” I wrote to Ric Weiland in November, putting a good face on it. New computers always intrigued me, even the baroque, slow, unwieldy ones. I read up and tried to think up tools to improve the IBM programming experience. My progress was slow.
The more rewarding part of college was the broader world I found there, especially at Phi Kappa Theta. A small underdog fraternity at the far end of the row, it perched on a slope so steep that it took two people to mow the lawn: one to push the mower and the other to hold the rope that kept it from rolling down the hill. Just behind the house was a switching yard where they put trains together at three in the morning. For the first two weeks I couldn’t sleep, and after that I could sleep through anything.
But I loved that place. Thrown in with a lively mix of hippies, eccentrics, and ROTC cadets, I got a kick out of nearly all of them. There was Mike Flood, the frat president and wry ringleader who assigned me dishwashing duties; Gary Johnson, who saved on room fees by living with two dogs in his truck in the driveway; Simon Karroum, aka the Big Syrian, a massive, kindly soul whose English had been corrupted by a summer job on the Portland docks. We had to edit his papers and cross out the four-letter words, because he didn’t know any better.
I was the computer guy, the one who would happily help you debug your homework; I could glance at a piece of FORTRAN code and quickly pinpoint what was wrong. But I also played hours of H-O-R-S-E in the driveway, where my notorious “matador” shot was hard to beat, and I snapped center on our intramural flag football team. Our quarterback, Jerry Morse, was a former New York Yankee farmhand with a gun of an arm. I wasn’t blessed with great speed, so Jerry would tell me in the huddle, “Ten yards and turn around.” If Simon and Mike were covered, he’d rifle it into my chest. I rarely dropped a pass.
Back from programming at one or two in the morning, I’d unwind with my electric guitar, a habit that annoyed some of my frat brothers. Mike Flood would ask me to stop, and I’d lay the guitar down after a final chord or two. But one night a muscular guy named George Shea burst into my room in a fury and hoisted me up against the wall. I looked at George and his clenched fist and considered the beating I was about to get. For someone who’d grown up in a family where no one ever got visibly angry, it was an out-of-body experience.
“Put him down.” It was Mike Haspert, one of my guitar buddies, crouched in a karate stance. Word had it that he was a black belt. George weighed his options, dropped me to the floor in disgust, and stormed off.
A typical day at Phi Kappa Theta was less eventful: marathon hearts and chess games, Star Trek in the basement TV room, Pizza Shack and Taco Time. There were drives over the Idaho state line, where the legal drinking age was nineteen and beer was cheap. On Saturdays I’d join the throng to watch the Cougars get slaughtered by the likes of USC. I was mostly carefree until I drew 99 in the 1972 draft lottery, a number that could send me to Vietnam. By then the war looked grim, hardly worth dying for. But I would have served had they called me, as my father had in World War II.
As it turned out, they suspended the draft before my student deferment expired.
ON MAY 28, 1972, in a UW mountaineering class, my Lakeside friend Kent Evans was crossing a snowfield on Mount Shuksan when he slipped. Unroped and unable to check himself, he tumbled more than six hundred feet down the slope, hitting several large rocks. He was evacuated by a navy helicopter and died before he got to a hospital. Kent was seventeen years old.
Bill was torn up by Kent’s death, just crushed. A few days after the funeral, Kent’s parents asked us over to see if we’d want any of his computer things—a few manuals, nothing of importance. It was kind of them, but we felt strange sorting through Kent’s belongings. We didn’t stay long.
Bill had contracted with Lakeside to write a scheduling program in FORTRAN during summer vacation. “I was going to do it with Kent,” he told me. “I need help. Do you want to work on it with me?” Though I wouldn’t make much money, I was glad to step in and get reacquainted with a PDP-10. Bill stayed depressed for weeks, but his spirits gradually lifted as we immersed ourselves in the project, going at it full-bore in McA
llister Hall like old times. Often we’d work past midnight and sleep on cots we’d brought to campus. The program was a challenge, with lots of moving parts: required courses, staggered sections, electives, double-period labs. I was impressed by how cleanly Bill broke the job into its component parts, and especially how he “preloaded” himself into an English class with a dozen or more girls and no other boys.
Bill and I became closer that summer. Our age gap no longer seemed to matter; we had what I call high-bandwidth communication. Diving into a problem, we’d start “popping up the stack,” computing jargon for the sequence for subtasks in the CPU: last in, first out. In conversation, the phrase meant that we’d shift from one topic to an earlier one without bothering to acknowledge the new context. Someone overhearing us would have made no sense of it:
“So then we can move this string …”
“You’re right, the other thing will never happen if that’s true. …”
“Exactly! That’s the variable we used the last time.”
Another strong commonality was our shared sense of the absurd. One night, after going far too long without sleep, we were grinding away for hours over some scheduling code—we just couldn’t find the bug. Bill kept glaring at the problem page, and suddenly he said, “X!” and collapsed into helpless giggles. I took another look and saw what he meant: We’d left a meaningless hanging variable stuck in the middle of a line. “X!” I shouted. Then both of us were rolling on the ground, calling out “X!” in the empty building, exhausted and hysterical.
For breaks we’d go to the movies; we must have seen more than five hundred together over the years. My favorite theater was the Kokusai in Seattle’s International District. It had double features with English subtitles, and the second film was always samurai. Bill didn’t go in much for foreign fare, but one night he agreed to see “anything but one of those stupid movies with a little dog in it.” No sooner had we settled into our seats for a contemporary Japanese drama than a noisy terrier was running across the screen.
“Not the little dog,” Bill groaned out loud.
We had fun that summer, but we never stopped thinking about our next business opportunity. Bill had taken on a data processing job for a company that measured traffic flow patterns by counting the car wheels running over pressure-sensitive rubber tubes. At fifteen-minute intervals, a machine would punch a pattern of holes on special sixteen-channel paper tape, representing the number of cars. The tape had to be read manually, with the results recorded in longhand and then transferred to batch-loaded cards. The process was monotonous, inefficient, and murder on the eyes; Bill had farmed it out to younger students at Lakeside whom he paid fifty cents a tape to act as human paper-tape readers. One day he said, “Those kids are going blind trying to read those things. We’ve got to find a way to automate it.”
I wondered aloud about using one of the modern minicomputers. The latest Texas Instruments models were especially compact and cost in the low four figures, but that was still too much money for us. Then I had another idea: What about Intel’s new 8-bit microprocessor, the 8008? Based on what I’d read, the chip could run calculators, elevators, even smart terminals. Since its release that spring, little had been done to use it for data analysis. But if it worked as its specs suggested, the 8008 would be up to our task. “We could make our own chip-based system, that’s the cheapest way to do it,” I said. As Bill warmed to the proposal, I added a salient point: “We have to find someone to build the machine.” Hardware was not our strength, so we’d need a third partner.
A mutual acquaintance told us about Paul Gilbert, an electrical engineering student at UW, and we tracked him down later that summer. After a few meetings, Paul had a workable sketch for Traf-O-Data, the name we’d use for both the traffic machine and our partnership. (Much later on, I asked Bill how he’d come up with it, and he said, “I got it from jack-o’-lantern.” I thought that was really strange.) In that first flush of entrepreneurship, we had grandiose dreams about the money coming our way. Armed with our easy-to-read data charts on hourly traffic flow, municipalities would know just where to place their stoplights or to focus their road repairs. Wouldn’t every public works department in the world want a Traf-O-Data machine?
Paul Gilbert wangled a UW discount and we special-ordered an 8008 chip at a local electronics store. Bill and I scraped together $360 and drove by to pick it up. The sales clerk handed us a small cardboard box, which we opened then and there for our first look at a microprocessor. Inside an aluminum foil wrapper, stuck into a small slab of nonconductive black rubber, was a thin rectangle about an inch long. For two guys who’d spent their formative years with massive mainframes, it was a moment of wonder. “That’s a lot of money for such a little thing,” Bill said. But I knew what he was thinking: That little box contained the brains of a whole computer. We brought it to Paul Gilbert in the physics building, and he set to work.
In developing the Traf-O-Data software, Bill and I faced a dilemma. We knew that it would be painful, if not futile, to try to create software on the 8008 itself. We needed to build a set of development tools from the ground up, including a customized assembler, a program that could translate assembly language instructions into actual bytes. While the 8008 could address 16K bytes of memory, Bill and I could afford only a quarter of that in memory chips, not nearly enough for the tools.
So how would we program such a limited microprocessor on a machine that didn’t yet exist? For me, the answer seemed clear: I’d simulate the 8008 environment on a mainframe. Simulators had first cropped up in the literature in the midsixties, when an engineer named Larry Moss devised a way for an IBM 360 to “emulate” earlier-model computers and run their software. Moss’s work reflected a truism in technology circles that harkened back to the theories of Alan Turing in the 1930s: Any computer could be programmed to behave like any other computer. Software trumped hardware. Although I hadn’t read about anyone simulating a microprocessor, I figured it should be easy enough—I’d simply trick a big computer into acting like a small one. In the meantime, we could exploit the big computer’s abundant memory and advanced development tools.
We had no idea how much adversity lay in store for us. Using UW’s lab equipment and facilities, Paul Gilbert went about constructing a fiendishly intricate prototype, with more than a thousand copper wires wrapped around dozens of gold-plated posts on two circuit boards. The box design and layout went smoothly, but Paul spent a year trying to get the noise-sensitive memory chips to work. Meanwhile, back at Wazzu, I struggled to build the simulation package on the IBM 360. Debugging on a batch-processing computer was downright Sisyphean, two steps forward and a step and a half back.
When Bill came out to Pullman during a hellacious cold snap that winter and we walked the two miles to the campus computer center, we noticed that a bank’s reader-board thermometer was stuck at 13 below zero. The air was so frigid that it almost hurt to talk. By the time we reached our destination, my beard was stiff with ice. And Bill said, shivering, “Does it always get this cold in Pullman?”
I don’t remember him coming out in the winter after that.
OVER CHRISTMAS, Bill got a call from Bud Pembroke, the guy who’d hired us to do the ISI payroll program. A massive software project for the Bonneville Power Administration’s electrical grid was behind schedule, and Bud was scouring the region for programmers who knew their way around a PDP-10. I was not quite twenty and Bill was only seventeen, but age was not a criterion. “And you’re going to be on salary,” Bud said.
Bill said, “How much?”
And Bud said, “One hundred sixty-five dollars a week.”
Four dollars an hour was a pittance for an experienced programmer, even then, but Bill and I couldn’t believe our good fortune. Here was a chance to work together again on a PDP-10, and for pay! I was glad to take a leave of absence from Washington State. Bill had completed his required courses at Lakeside and got approval to pursue an off-campus senior project for his final
semester. We told Bud to count us in.
Bill and I piled into his orange 1967 Mustang convertible and drove south to Vancouver, Washington, a land of strip malls, car washes, and a vintage A&W Root Beer drive-in stand where we’d become regulars. We found a cheap two-bedroom apartment and showed up for work on a Monday in January 1973. Our employer was TRW, a big aerospace company that had contracted with the Department of the Interior to set up a real-time operating and dispatch system, or RODS—the first system of its kind in the country, we were told. The government already had software that controlled Bonneville’s generators along the Columbia River, distributing power to eight Western states. The point of RODS was to refresh that information each second and respond more efficiently to shifting power needs.
TRW management had projected that a handful of software engineers would need two years to finish the job, a drastic underestimate. Converting DEC’s TOPS-10 into a real-time system was like turning an apple into an orange—and a new variety of orange, at that. More than a year into the project, with overrun penalties soaring, TRW’s new software was still full of bugs. Wheeling into crisis mode, management went out to recruit every able-minded programmer they could find to get RODS up and running. By the time we got there, more than forty people were working on it around the clock.
Bonneville’s hardened control facility was across the river from Portland, built mostly underground. They even had a shower room for washing off nuclear waste in the event someone pushed the button. Bill and I took the elevator down for what seemed like forever under the reinforced concrete. After passing several doors secured with combination locks, we were shown into a computer room with a raised floor and chilly air conditioning, the place where we’d test and run our code. I was excited to see that we’d be sharing the space with dual PDP-10’s; I’d never worked so close to a computer.