The Bug - Ellen Ullman - E-Book

The Bug E-Book

Ellen Ullman

0,0
9,59 €

oder
-100%
Sammeln Sie Punkte in unserem Gutscheinprogramm und kaufen Sie E-Books und Hörbücher mit bis zu 100% Rabatt.

Mehr erfahren.
Beschreibung

The debut novel by the acclaimed American novelist and former computer programmer Ellen Ullman, The Bug is both a novel of ideas and a suspense story. 'Thrilling and intellectually fearless . . . If more contemporary novels delivered news this relevant and wise they'd have to stop declaring the death of the novel' — The New York Times In one of the computer-dictated pauses that now constantly intrude on our lives, Roberta Walton starts to think back twenty years, to her first job in computing, to the bug she found there and the man it destroyed. Ellen Ullman's acclaimed first novel compellingly, thrillingly explores the connections between us and our machines, and between programming, obsession and madness. As the bug - bug UI-01017, The Jester - teases, defies and threatens its creators. Ellen Ullman's The Bug is published by Pushkin Press. Ellen Ullman's Close to the Machine, a memoir of her time as a software engineer during the early years of the internet revolution, became a cult classic and established her as a writer of considerable talent; with her second book, The Bug, she became an acclaimed and vital novelist; By Blood is her third. All three are published in the UK by Pushkin Press. Her essays and opinion pieces have been widely published in venues such as Harper's, The New York Times, Salon, and Wired. She lives in San Francisco.

Das E-Book können Sie in Legimi-Apps oder einer beliebigen App lesen, die das folgende Format unterstützen:

EPUB

Veröffentlichungsjahr: 2012

Bewertungen
0,0
0
0
0
0
0
Mehr Informationen
Mehr Informationen
Legimi prüft nicht, ob Rezensionen von Nutzern stammen, die den betreffenden Titel tatsächlich gekauft oder gelesen/gehört haben. Wir entfernen aber gefälschte Rezensionen.



THE BUG

a novel

ELLEN ULLMAN

PUSHKIN PRESS LONDON

CONTENTS

Title PagePART ONEThe PauseA Vacation in TimeThe ScheduleA ReturnAnd AnotherPART TWOA MilestoneThe Code ReviewA Ride in the ChairThe DebuggerNourishmentPART THREEMemory LeaksMallocThe Troll’s WarningThe Night Systems AdministratorA Week in the MountainsBreakpointPART FOURA Map of the CodeThe Core DumpThe Key to All MythologiesJoanna’s BetrayalThe Miracle in the MechanismLifeProgrammer’s PostscriptAcknowledgmentsAlso Available from Pushkin PressAbout the PublisherAbout the AuthorAlso by Ellen UllmanCopyright

RULES OF THE GAME OF LIFE

“Life” as defined by the mathematician John Horton Conway is a digital universe consisting of two-dimensional squares, or “cells,” laid out in a grid. Each cell has exactly eight neighbors: one on each of its four sides, and one at each of its four corners. On each pass, or iteration, over the grid, the program decides the fate of each cell by applying three simple rules:

A cell is born (grid-point turned “on”) if it was previously “dead” (grid-point “off”) and exactly three of its neighboring cells are alive.

The cell survives (remains as it is) if it has two or three live neighbors.

If the cell is crowded (has more than three live neighbors) or isolated (has less than two neighbors alive), it dies.

PART ONE

“It is remarkable,” he said. “A man cannot make general observations to any extent, on any subject, without betraying himself, without introducing his entire individuality, and presenting, as in an allegory, the fundamental theme and problem of his own existence. This, Engineer, is what you have just done.”

—SETTEMBRINI TO HANS CASTORP THOMAS MANN, THE MAGIC MOUNTAIN

THE PAUSE

A computer can execute millions of instructions in a second. The human brain, in comparison, is painfully slow. The memories of a single year, for instance, took me a full thirty seconds to recall. Which is a long time if you think about it. Imagine a second-hand sweep going tick by tick halfway around the face of a clock. Or the digital readout of light-emitting diodes, with their blink, blink—thirty blinks—as they count off time.

“Passport, please.”

The immigration agent at the San Francisco airport was a pleasant-faced young man, not at all threatening, the sort who does his job without particular fervor.

“Countries visited?”

It’s right on the landing card, I wanted to say, but I’d learned not to be belligerent in circumstances like these. “One. The Dominican Republic.”

He kept his face toward me, a certain blankness undoing his pleasant expression, as his hand disappeared under the counter of the little booth that stood between us. I knew he was putting my passport through a scanner. The first page of the United States passport has been machine-readable for years.

Then we waited.

“Nice trip, Miss, uh …”

“Ms. Walton. Yes.”

“Roberta Walton.”

“Yes.”

The immigration agent looked down at his computer terminal, his hands still under the counter of the booth.

Then he said, “Good weather there this time of year?”

“Hot. Yes.”

“Humid?”

“Yes. Not too bad.”

Chitchat. Filler. His face trying to take on its pleasant expression again. Undone by his eyes flicking toward the screen half hidden under a shelf in the corner of the booth. He was waiting for an answer. Should I be allowed to pass, or should I be questioned? Was I what I seemed to be: an innocuous middle-aged woman who’d gone to get herself some sun in mid-November? Or was I a well-disguised drug runner, money launderer, sex slaver? He could do nothing until he heard from the system.

And so we waited. Tick-tock, blink-blink, thirty seconds stretched themselves out one by one, a hole in human experience. Waiting for the system: life today is full of such pauses. The soft clacking of computer keys, then the voice on the telephone telling you, “Just a moment, please.” The credit-card reader instructing you “Remove card quickly!” then displaying “Processing. Please wait.” The little hourglass icon on your computer screen reminding you how time is passing and there is nothing you can do about it. The diddler at the bottom of the browser screen going back and forth, back and forth like a caged crazed animal. All the hours the computer is supposedly saving us—I don’t believe it, in the sum of things, I thought as I stood there leaning on my luggage cart. It has filled our lives with little wait states like this one, useless wait states, little slices of time in which you can’t do anything at all but stand there, sit there, hold the phone—the sort of unoccupied little slices of time no decent computer operating system would tolerate for itself. A computer, waiting like this, would find something useful to do: check for other processes wanting attention, flush a file buffer, refresh a cache, at least.

Which is what I suppose my mind began doing with the pause at the immigration counter: some mysterious housekeeping process of the brain, some roaming through the backwaters of the synapses, trolling memory, cleaning lost connections …

It’s the Telligentsia database! came the thought out of somewhere. Then came an understanding, step by step, like a syllogism: The system we’re waiting for was made by Telligentsia. Telligentsia, where my technical life began. So it’s my fault. This particular wait state is something I myself helped visit upon the world!

I looked behind the counter at the agent’s terminal: Yes. That damned transaction interface. The Immigration Service was one of our first customers. In 1986, they were going to “revolutionize” international arrivals with our database. And here it still was after all these years, our software, its transaction interface, that sluggish component we testers had complained about to the programmers, too slow, too slow, who’ll put up with this waiting? Ah, I saw how the immigration agent had learned to tolerate this waiting. A certain suspension of himself; an unattractive slackness in his body, his mouth; a gone-to-nowhere look in his already vague eyes. Odd how adaptable human beings are. The programmers had long accustomed themselves to waiting on machines, and then we, the software testers, soon adapted; and with every shipment of our software, out it spread like a virus to the world: human beings everywhere learning to suspend themselves, go elsewhere for little slits of time, not exactly talking or working or doing anything, since any moment—you never know which one—the system may come back, respond, give you the answer.

The long thirty seconds … Funny: It was the same pause we complained about. Strange how in all this time no one had tuned or fixed it. But of course it was still there. Who could have possibly worked on it? Soon after we went public, Telligentsia was sold off to another company, then that company was sold off as well, and our software disappeared further and further into the hands of people who’d never met us. Who would there be in all those changes to remember our problems, our arguments, the things we tried and abandoned? Funny to think of the code remaining there, unchanged, as it passed from hand to hand, newer and newer layers of code laid down over it like sediment. And inside—deep inside, in the places no one understood anymore so they just left them alone because that part of the code seemed to work—down in there the long pause still lived. The programmers and testers had moved on, changed, grown older, but here was the code, frozen, mindlessly running itself over and over: thoughtless robotic artifact of the lives that created it.

Ethan Levin.

Through the time tunnel of the long pause came his name. Ethan Levin, Telligentsia’s senior engineer for client-side computing, inadvertent creator of the bug officially designated UI-1017. I tried to push him away. Standing there sweating by my luggage cart, I was not ready to remember what happened to him. UI-1017: the one thousand seventeenth bug in the user interface. One thousand and sixteen had come before it; thousands more would come after; and so what? Let it alone, I told myself. Don’t dwell on this one ruined life. The world has moved on to other follies involving other programmers. Everyone seems so happy with the world we technical people have created. See here: even the immigration agent, after his little wait at his terminal, has gotten his answer, and now a real smile makes his empty, pleasant face almost remarkable as he taps data into his keyboard.

But Ethan Levin would not go away. That relentless bug of his I found, what happened to him while it came and went, what I might have done and didn’t—all that was waiting for me in the long thirty-second pause. There was no way out now. There was no way to go home and forget all over again what had happened. I would have to remember the database as I first saw it, in the late fall of 1983. I would have to remember when I was a failed academic, a linguist with a Ph.D. during the Ph.D. glut of the 1980s, itinerant untenured instructor of Linguistics 101, desperate striver out of the lumpen professoriat. And how I became—through the recommendation of a friend, unbelievable to anyone who’d known me—a junior quality-assurance “engineer” at the start-up software company called Telligentsia. Where I was the primary tester of one Ethan Levin, a skinny, apparently confident man of thirty-six who’d been programming for twelve seemingly accomplished years when the bug designated UI-1017 first found him.

Time circled back on itself. Nineteen eighty-four. The IBM PC was three years old; the Apple Macintosh had just been released. I was seeing for the first time the famous Super Bowl ad that introduced the Mac to the world: The woman in running shorts breaking into the auditorium where men, dressed alike like prisoners, sat mute before a screen. On the screen that same huge head lit by a blue light—Big Brother, IBM, known as Big Blue for the color of the company’s logo. And all over again, I knew what the woman must do.

And then she did it: she reeled and hurled a hammer at the screen, smashing it, breaking the prisoners’ spell.

Rejoice! The age of the behemoth corporate computer was over. Individuals would now have computing power in their own hands. Somehow this would change everything. Oh, what a perfect advertising moment! The smashed specter of 1984. And done by a woman. Geraldine Ferraro was running for the vice presidency of the United States, the first-ever women’s marathon would be run at the Olympics, so why shouldn’t a woman in running shorts symbolize the end of technological tyranny?

“Welcome home, Ms. Walton.”

The immigration agent, smiling pleasantly out of his pleasant face, offering me back my passport.

I only stared at it. I didn’t want to touch that passport now. The whole story would open up out of its pages.

Tap, tap: the agent touching the passport to the counter.

“Thank you,” I said, not meaning it.

Everything was in order. Page stamped, passport returned. The date and port of my arrival duly recorded by the system. The old database—traitor, time shifter—had not confused me with a terrorist. Later someone would enter the data from my landing card: where I’d been, for what purpose, how much I’d spent, on what. And later yet, some researcher might pore over the great masses of data accumulated in our marvelous Telligentsia database (maybe using the “data mining” software from the second start-up company I worked for). And he’d learn how frequently I traveled, never on business, always alone. And the researcher’s report will conclude that I am rich—as I am, perpetual leisure traveler at the age of forty-eight. Nominal occupation: computer consultant. Home address: San Francisco.

I wheeled my cart toward customs and saw myself perfectly profiled through the computer’s eyes: silicon mini-millionaire, stock-option retiree, lucky inheritor of the revolution proclaimed on television in 1984 by the woman in running shorts. In another mood, I might have been proud. The database, still working after all these years. The database, keeping an eye on us, watching over my comings and goings and those of my fellow citizens—my personal private contribution to the end of tyranny.

March 5, 1984, a day full of error. Erratic bugs were not supposed to show themselves; jealousy and suspicion were not supposed to ruin the day. My plan that day had been to find something wrong with recursion: queries within queries, questions inside questions. Select the customers whose last names started with S; from those select the ones with balances-due greater than $200; from those the ones who did not live in New York; from those the ones who were females; and so on, ad absurdum, to an arbitrary depth of fifty-three queries within queries. I was looking for a condition I could pinpoint. At a certain depth: crash. One level back: works fine. A model error, an exemplary bug, an on/off condition that came and went reliably, a relief from the confusions of the world.

Here is how the day was supposed to go: I was to drive my boyfriend James Havermeyer to the airport (he managed a traveling chamber orchestra; he was always coming or going somewhere), I was to go to work and run my excellent test (perfectly, predictably crashing the system at a specific recursive depth), and then I was to go home and work on the poem I was writing (poem-writing, a morbid habit I kept up the way I kept on smoking, imposing my exhalations upon others). Susanna Cantor, James’s great unrequited love, should not have come up. Memories of my bad start with James—no. The stark, lost sensation that came over me as I drove into the Telligentsia parking lot—I didn’t imagine the day would begin that way. A planned disaster was what I was looking for. A failure under my control. A perfect test.

The day began too early, 6 A.M., on the road to the airport for James’s flight to New York, connecting there for Vienna, where the orchestra was performing. Even the weather was wrong that day, too hot for the season, the third of three days without fog, the sky going green at the edges like spoiled cheese. James was in a bad mood, rushed and harried and anxious. He was a small, compact man whose face could project a sweet boyishness, but more often than I cared to realize, he was the way he was that morning: distracted, unaware of me, lost in his own sense of being burdened.

“I’ll park,” I said as I signaled for the airport freeway exit. “I’ll park in the garage, walk you to the gate, kiss you madly, then wave a little white hanky you can watch from the window of the plane.” It’s not a pleasant thing to remember, these attempts of mine to get his attention. I was trying my baby chatterbox approach, my pose of happy abandon, soothing devotion.

What a fool.

“Oh, just leave me at the curb,” he said. “I have to meet up with … someone.”

Someone. The first of many errors on that day full of errors. In another person’s life, I would have found it funny. Someone. Oh, yes, I suppose I now must remember all this: the situation I so stupidly put up with, the person I was then, a woman who was—what was I exactly? lonely? self-destructive? simply too lazy to look for something better? I’d rather not start the story here; I’d like nothing better than to forget about James, another unhappy note in a story that can’t possibly have a happy ending. But with the bug must also come James, the two of them linked in my memory in an odd synchrony, as if James somehow brought on the bug or the bug, James.

So James must enter the story: James Havermeyer, thirty years old, two years my junior, my lover of over a year—and a man still pining away for a certain someone. I knew all about her: Susanna Cantor, graduate of Juilliard, Ph.D. from the Eastman School of Music, the orchestra’s first violinist and concert mistress. A woman with long dark hair for whom James had felt the kind of insane unrequited love that no one past the age of twenty should ever feel. They were supposedly friends now, his passion for her over. But James still could not say her name to me in a normal tone of voice. Whatever existence they still shared—a conversation on the phone, a meal in a restaurant, seats together on the plane—he tried to keep secreted in a place that did not include me.

I should have known from the start; James was a man who liked his secrets. On a Sunday morning six weeks into our relationship, a mad woman came pounding on my door. James slept on, snoring. Through the peephole, I saw wild-flying blond hair, tearstained puffy eyes, a smeared-lipstick mouth, someone nearly tearing off the screen door. “I’m Sarah,” screamed the woman I’d never seen before. “Sarah Postman. His girlfriend!” I opened the door. Her blouse was misbuttoned; her skirt hung askew. “Well,” she sneered at me, “imagine my surprise to find I’m the ex-girlfriend. Where is he? Where is that lying bastard?”

I stared back at her. I had never even heard her name, had no idea she existed. His girlfriend. Who?

I sent her in to get James.

And there were others, I learned later, all musicians, all in his orchestra and still in his life in vague and suggestive ways. Before the wild woman pounding on my door there was Barbara, a cellist; and before her was Celine, a pianist. And directly before me, overlapping with the unhappy and duped Sarah Postman, was the unequaled Susanna. Someone. As I pulled up to the curb in front of United Airlines, I wondered: Had I once been a someone to the poor, wild-haired Sarah?

“Oh, really?” I said to James as I watched him take his bags out of the trunk. “Who’s this someone you’ve got to meet up with?” It was cruel of me. I knew he would lie reflexively, floridly.

He fumbled with his suitcase. “Oh, just a contact from the tour operators. A guy. About the connections in New York.” He went on: discounts, rebates, packages, faxes. The answer was too long, too detailed to be true.

“You’re such a poor liar,” I said to him, but almost tenderly, touching the back of his neck as he stood with his suitcases at his feet.

“I don’t know what you mean,” he said. He had a scared look on his face. He had lovely blue eyes, small but clear, and now they looked at me from behind a defensive squint.

“Good-bye,” I said.

“See you in only six weeks,” he said. He ran a hand down my back, kissed me briefly on the mouth.

“Good-bye,” I said, slamming down the trunk.

Plans, rules, order—I should have known better. The relief I looked forward to at my desk, my perfect test—I should have realized even before I logged on to the system that morning that something else was going to happen. A linguist knows that following the rules is no assurance of anything. “Colorless green ideas sleep furiously,” the linguist Noam Chomsky once famously said, his perfectly well-formed sentence: grammatically correct, signifying nothing.

Colorless, green ideas sleep, furiously.

Colorless green, ideas sleep furiously.

Colorless green ideas: Sleep! Furiously!

The parking lot at Telligentsia, the wasted feeling of having driven through traffic to arrive nowhere: a lake of asphalt in Fremont, California. The workstation in a cubicle. The morning begun not with hello but with a system prompt. Everyone’s day begins like that now, but on that morning of March 5, 1984, only programmers and testers lived that way. From log-in to log-out, e-mail to e-mail, mouse click to mouse click—we were just then starting to make computers “friendly” for everyone, preparing the world for a programmer’s life. In 1984, it was still possible to find it strange, and hate it: the monitor that showed me my face in its blank glass stare, the system that beeped at me when I mistyped my password, the machine whine that rose up from everywhere, like being sealed in a roomful of mosquitoes.

It took me half an hour to enter my test. Queries within queries, questions inside questions—point-click, point-click, a graphical query. A diagram with lines and boxes and arrows and field names that scrolled endlessly off to the right side of the screen. The first working part of the user interface, barely more than a demonstration module, full of errors, dead spots, bugs. I cursed at it it—clumsy mouse clicks and arcane control-commands, CONTROL SHIFT CLICK all at the same time. Ethan Levin and his boss had designed the interface, stupidly, I thought. But what did any of us know about this business of graphical user interfaces? There was only the two-month-old Macintosh for a model, and the primitive graphics system on the SM workstation we were using. In those days, most computer monitors were monochrome character terminals. When you started up the system, there was nothing on the screen but a prompt. Until you entered a command, nothing happened. Windows, icons, buttons, menus—we were just then figuring out how all this should work. There might have been a hundred better ways to talk to a computer, but Ethan Levin had copied the Mac, which had copied the Xerox Star, which was later copied by Microsoft Windows. Who knew our mistakes would prove so durable?

I fought the interface and finished the query. Then I clicked on the menu RUN. It dropped open, and I moved the mouse toward the menu line CURRENT QUERY. I was about to click again, RUN CURRENT QUERY, but I was distracted and mistakenly moved the mouse outside the menu. I was about to move it back—when suddenly a long beep sounded, mad, like a stuck car horn. The display was a mess of lines, boxes, strange characters. The cursor stuck itself at the bottom of the screen. The keyboard was frozen. The mouse: dead.

A bug. One more in a cast of thousands. But not the one I was looking for. My query hadn’t even made it to the database.

“Kill me, will you?”

I said this over the top of my cubicle to my neighboring tester, Mara Margolies. My workstation was dead. The only way to get it working was to kill the program from another terminal. Mara and I knew each other’s passwords; we were used to cleaning up each other’s rogue programs with the UNIX kill command. “Meep!” came the reply from Mara, a small, round person who had the extremely annoying habit of going around meeping like a robot.

And I thought that would be the end of it. I thought I’d report this unexpected bug, send it on to the responsible programmer—Ethan Levin—who would investigate it using the “core,” a file full of hexadecimal numbers that showed the program’s state at the moment it was killed, the contents of its “memory,” what it was doing when it died. Then I’d go back to my test, my perfect test, the disaster I’d been waiting for.

But here was the next error on that error-prone day.

“Mara, where’s the core?”

“Shit. I sent it a minus nine.”

“Minus nine! How the hell could you send it a minus nine?”

The command kill -9, unconditional program death. A sure and certain way to kill any program. But one that did not produce a core file. No core. No record of the program’s state at time of death. No postmortem by the programmer.

“I spaced out,” Mara said.

“Spaced out! Shit, Mara. You’re a tester!”

I didn’t know then that this would be the bug’s pattern—to escape without letting anyone capture its image in a core file. It would be some months before I understood that Mara, a new tester, would simply be the first of many novices who let this tease of a bug get away. At the time I blamed her for her stupidity, but there was nothing I could do. The program was dead; she didn’t get a core; and now the body of the program had vanished without a trace.

But how had this bug come about? I still had to find the exact sequence of keys and commands that had led to the crash. Without notes to prove what I’d done, without a core file to show the result, I had to retrace my steps, reenter the entire query, go through the whole clumsy user interface over again. Which I did, impatient, irritable. Click open the menu, slide just past it … but nothing. No mess of windows. No stuck cursor. No beep. Everything fine.

“A flakey bug,” my boss Wallis Markham pronounced it. “But a level-one.”

Flakey: comes and goes. Level-one: crashes the system or freezes it. Needs investigation by the programmer even if it can’t immediately be reproduced.

“Too bad about the core file, though,” she said. “Oh, well. Just fill out a report and have a little chat with Ethan Levin.”

“Oh, yes. A nice, friendly chat with Ethan Levin.”

“Well, he can’t exactly kill you.”

“No, not exactly.”

So I wrote up a report, and then didn’t think much more about the bug. What was bothering me that morning as I filled in the particulars of the bug report (screen: VISUAL QUERY, menu: RUN) was something else, a jitter in the stomach that would not go away. The memory of Sarah Postman. The wild hair. The smeared-lipstick mouth of the betrayed. The ridiculous revenge scene as she tore the bedclothes from the naked James. Could that be me someday? Of course it could. One day I could learn that James had been with someone else for a month or two, that he’d finally won over Susanna, or moved on to a flutist—no, James hated the sound of the solo flute, perhaps to another pianist; yes, that’d be it, a pianist. And there I’d be with my clothes all askew on a Sunday morning, a wild, raging woman pounding at the door. Why not? I’ve learned there’s a good chance you’ll wind up like the person who came before you. People tend to repeat themselves in these sorts of things, is my experience. That’s how it happens: they leave you the way they came to you.

“Put it over there,” said Ethan Levin.

He was a tall man, lanky, sitting with his legs vining around the legs of his chair. A twitch of his long, poky neck indicated a pile of papers at the back of his desk.

And there I put it: the bug report, the first notice describing the bug that had just been officially designated UI-1017, its count of days open now set to zero and ticking. Ethan never even looked up. And I didn’t bother to be annoyed. There were three programmers in that office: Ethan; Albert Herring, called “Fishy” by the testers; and Bradley Thorne, called, inevitably, “Badly Torn.” I didn’t like them, and they didn’t much like each other. The quiet in that room was like lead crystal. If you broke it, you’d be cut by shards.

So I put the piece of paper on the pile and left. And that was it: a tester found a bug, a programmer ignored a tester, a bug report went to the top of a pile on a programmer’s messy desk—nothing could have been more normal than what had just happened. Ethan went back to work. And I went back to work. And later I went home, to a desk and a yellow pad, to my twin nasty habits of poetry writing and smoking, breathing in and blowing out late into the night, jealous colorless green ideas not sleeping, unable to sleep, furiously. We could both be forgiven for not noticing that a turn of events had begun.

A VACATION IN TIME

DAYS OPEN: 0

He was running the compiler when the bug report came across his desk. The compiler, the program that translates a programmer’s code into machine-readable bits—Ethan Levin had laid his code before its merciless gaze, and now he stared into his screen to see its verdict. Was he aware of the tester passing behind him? Did he take any notice of how carefully she slipped between his whiteboard and his chair, holding in her stomach so as not even to brush against him? No, of course not. Oh, all right: perhaps peripherally. Literally in his peripheral vision he might have seen her, and the thought “tester” might have formed in his brain, which would have led to the automatically accompanying idea that testers only bring news of trouble, and so why bother with whatever trouble she was bringing him now?

He was occupied by other troubles. Warning messages were scrolling up his screen, the compiler’s responses, notices that this and that little thing in his code might not be legal, might not parse according to the rules, might prevent the compiler from turning his routine into an “object file,” a little file full of ones and zeros, ready to be linked up with other object files to create the executable program. He wasn’t getting fatal errors—no, not on this pass. There was nothing yet that caused the compiler to issue the awful message that began “Fatal error” and then, abruptly, stop. But such fatalities had already befallen him many times this morning, how many times, he’d lost track—twenty, fifty, a hundred? On each occasion, he had fixed whatever little thing wasn’t legal, didn’t parse, prevented his code from becoming machine-readable bits; and then he ran the compiler again.

Warning. Warning. Warning. Fatal error. Stop.

Fix the little thing in the code that wasn’t legal. Run the compiler again.

Warning. Warning. Fatal error. Stop.

Fix the next little thing.

Warning. Warning.

“It’ll compile this time” was the only thought Ethan Levin kept steadily in mind, over and over, on that morning of March 5, 1984. Even the phone had to go on ringing—once, twice, three times—until it reached him, three rings to get inside his window of attention so tuned to the nervous refresh rate of the screen: Warning. Warning.

“What! Are you still there?” said the voice on the phone. “You’re supposed to be here!”

He sat confused for a moment. Yes, he knew the voice was Joanna’s, but the words “there” and “here”: What exactly did they mean? Then, all at once, his attention snapped into focus: It was Joanna, he was supposed to take her to the airport, and he was late.

“I’m leaving!” he said.

“I mean now. Are you leaving now?”

“I’m leaving, I’m leaving,” he said again, but vacantly, automatically, because despite himself, his eyes had been drawn back to the screen, to the irregular pulse of the messages as they appeared: Warning. Warning.

“Hello? Are you there?”

“Yeah, yeah. I’m here,” he said, just as the compiler suddenly displayedthe message “Fatal error: MAXWINSIZE not defined,” and came to a stop.

“Shit!” Ethan Levin muttered under his breath.

“Ethan! You’re compiling! I know it!”

“Yeah, yeah, sorry,” he said to Joanna McCarthy, who, as his girlfriend of four years, knew all too well the sort of exclamations he made when he was programming and compiling. “Sorry,” he repeated, but again automatically, because—though he knew better than to do this now—his mind immediately began ranging over the places where MAXWINSIZE should have been defined. On one side of his attention was Joanna, the month-long trip to India she was taking with Paul Ostrick, husband of her best friend, Marsha Ostrick, and the promise Ethan had made to take them to the airport—and be on time! he swore! But on the other was this sudden and unexpected problem of MAXWINSIZE, this branching trail of questions that led off in many directions, curious and puzzling, down which his mind involuntarily started traveling. …

“It’s an airplane, Ethan! It’s not going to wait for a compile!”

“Shit! Yes! I’m leaving now.”

“That’s like now now, right? Not like a one-more-compile now?”

“Now now,” he repeated, as much to himself as to Joanna. “Now now.”

Still, even after he’d stood up and grabbed his jacket from the back of his chair, the face of the screen drew him back. He sat down again, reread the messages on the monitor, typed a command to the system that set it searching through the entire code library for all occurrences of MAXWINSIZE. Yes, much better now. The system would tell him where the problem was. Then, tomorrow, he’d fix it.

They rented a tract house on a street of tract houses. San Leandro, California, a “nowhere,” as Joanna described it, its chief attraction being its location about half an hour from other places: from Ethan’s office in Fremont to the south; from Joanna’s job in downtown Berkeley to the north; from San Francisco, barely visible across the bay from their freeway exit at the top of the hill. The day was unseasonably hot and dry, just a degree or two cooler than yesterday, which had been the hottest March 4 on record. The overheated houses—uninsulated, in varying degrees of neglect—had sent the neighbors into the street. Horace, a black man of about thirty who lived next door, whose last name Ethan never knew, was tossing a football with his son, a spindly boy of about nine. A woman from across the street, whom Ethan thought of as “Carolyn-with-the-baby,” was sitting on her porch with the baby. They eyed Ethan as he drove up but said nothing; it was Joanna who was neighborly.

Joanna glared at him from the front porch. “You’re late!”

Ethan glanced at his watch. “Not very.”

“Forty minutes! Or Marsha would have taken us!”

Immediately, the little grouping on the porch went into motion, Joanna dragging her heavy suitcase down the three porch steps, Marsha helping Paul haul his across the tiny patch of grass Joanna worked hard to keep tidy. Ethan got out of his car and found himself in a shower of white petals. The stunted old plum trees that lined the street had gotten themselves shocked into bloom by the heat, Ethan thought, as he watched the blossoms drifting down in the hot, still air. The trees were all that was left of the orchards that once climbed the hillsides before the subdivisions were built, according to Joanna, who knew things about trees and plants.

“Hey, Joanna!” said Ethan. “It’s plum-blossom time again!”

“Goddamnit, Ethan! At least pop the fucking trunk!”

Ethan arranged the two bags while Paul Ostrick looked on. “Give you a hand?” Ostrick said finally. He was a wan-looking, skinny man with a kind of watery asceticism Ethan found extremely unappealing. Ethan himself was thin, but next to Ostrick he felt like Charles Atlas. “No, thanks,” Ethan said. “I’ve got it.”

“Oh! You two will have such a wonderful time!” cooed Marsha, as she took her husband around, hugged him to her, and engaged him in the kind of kiss that made Ethan turn away. Ethan and Joanna were supposed to go to India together, a vacation Joanna had started planning a year in advance. But then Ethan had started work at Telligentsia, eight months ago, where it had been made clear that no one would get a vacation for at least a year. “I can’t go,” he’d said to Joanna over her protests. “I can’t go to India.”

Ethan had tried to explain. “The other programmers can’t start their work until I give them some working code. I’m a critical module!”

Joanna had given him a long look. “I’ll say you are.”

“I’m on the critical path!”

“Then stay there,” Joanna had said. “And I’ll go to India.”

He never imagined she’d go without him. He was certain she’d understand about his job, wait, put aside the plans. When she came to him and announced that she and Paul Ostrick were thinking of going together, he was more startled than anything else. “I thought you forgot about the trip,” he’d said. “Oh, no,” she’d answered. “You forgot.”

“We’ll both be travel widows!” Marsha sang to Ethan after Paul’s suitcase was in the trunk. She opened her arms to take Ethan in a hug. “Promise you’ll have dinner with me!” Marsha Ostrick was a big woman, with bangle bracelets running up her arm to the elbow, all of them jingling as she implored Ethan to meet her for dinner. “Sure. Of course,” he said noncommitally, ducking the hug. Marsha had wanted to make the trip, but she was a college teacher, committed to a semes-terful of courses. And Ethan had committed himself to a relationship with his compiler. On the other hand, Paul Ostrick was a musician, hardly made any money at all, and was, in the odd logic of the poor, free. Joanna had already arranged her vacation with the environmental-action organization where she worked as an administrator, and it had all been decided over a long dinner at the Ostricks’ house. Four courses, a decent red wine, a chocolate cake, a toast: “To India!” The two couples were such good friends, Paul and Marsha, Ethan and Joanna. They agreed, they laughed, ha-ha. Of course Joanna and Paul should go away together.

“What’s this?” Joanna asked, opening the passenger-side door and finding a ring binder on the seat.

“The window-system manual,” Ethan answered.

“You mean you took a manual to see me off for a month?” She threw it onto the driver’s seat.

“I thought I’d read it at the gate,” Ethan said. He put the manual on the floor, got in, and started the engine.

“Bye-bye,” Marsha called.

“Bye-bye,” Paul and Joanna answered.

“Have a great time!” the neighbors said in chorus, waving at Joanna.

The wind suddenly picked up, and white plum-blossom petals floated down all around them, drifting across Ethan’s slowly moving car and then over Marsha’s, as she too got in her car and started off. Toot-toot, went Marsha’s horn as both cars slowed down at the corner, toot-toot, under the shower of petals. “Bye-bye,” she called and waved, bracelets bangling.

Ethan sat at the gate with the window-system manual open in his lap, but he couldn’t concentrate. If they weren’t changing planes in New York, he thought, they would have left from the international terminal, where only passengers were allowed at the gate, and he could have just dropped them off at the curb. He didn’t like terminals and waiting rooms. He didn’t mind travel once he got somewhere, but the preparations and the actual transportation from place to place always unsettled him. It was the time distortion travel produced: your life getting stopped up like a dam behind that single moment when your plane took off. As he sat there amid the annoying jitter of people coming and going, he admitted to himself he was relieved he couldn’t go on this trip. He wouldn’t have to deal with Joanna’s need to get to airports and train stations two and a half hours in advance. A vacation, Ethan thought. Joanna can go off into her own conception of time—getting to the hotel before four in the afternoon, for instance, so as not to get the worst room in the place, as she was convinced would happen—and Ethan could go off into his, into his one-more-compile times, where the hours could simply bleed themselves out until he couldn’t think anymore.

“We should be boarding now,” said Joanna, looking down at her watch.

“Any minute,” said Paul Ostrick, looking down at his.

“If this flight’s late—”

“We’ll miss our connection in New York,” Ostrick said nervously.

Time compatible, Ethan thought. The two of them were certainly time compatible.

Otherwise, from their appearance, they were not so well matched, Ethan thought, as he looked across the row of seats at them, where they sat side by side clutching their carry-ons to board at a moment’s notice. Joanna was robust and hearty-looking, with light brown hair that was cut in a way that required no maintenance, and sturdy arms and legs, tanned and freckled from her daily bike rides or runs. Paul Ostrick, on the other hand, was skinny and slack muscled and hollow chested, a vegetarian’s body, thought Ethan, though Ostrick would eat fish and chicken, a “vegetarianism” Ethan considered silly if only for its inconsistency. Marsha and Paul had been Joanna’s friends. Otherwise, Ethan thought, it was highly unlikely he would have ever known someone like Paul Ostrick, who played some Indonesian instrument called the gamelan, and who affected what Ethan thought were phony “Eastern” ways of thinking and acting.

Their flight was called.

Joanna and Ostrick jumped up, then Ethan.

Joanna took Ethan’s hips in her hands, drew him toward her, hipbone to hipbone, and looked into his eyes. “Give me a real farewell,” she said.

Ethan knew he was supposed to feel something at moments like these. And when he tried to plumb himself, yes, he could just notice the beginnings of something that felt to him like anxiety. But what words could he possibly give to it? Could he say, I have this vague, uncomfortable feeling like something is stuck in my chest and I have to cough? He felt suddenly stupid to himself, an oaf, deficient in some kind of human graces other people seemed naturally to have.

He said what he was supposed to say. “I’ll miss you.”

“No, you won’t.”

“What do you mean?”

She withdrew her hands, backed up.

“No. You won’t. Bye, Ethan.”

Their row was called.

And immediately Joanna turned to go.

Ethan stood there, confused at the abruptness of the good-bye. To the end, he hoped Joanna would turn around and wave. But she set off with a jaunty, sturdy walk, swinging her carry-on, just missing Ostrick’s shins as he trotted closely behind her. The rest of the travelers crowded in, Ethan had a momentary glimpse of Joanna’s sensible, short new haircut, and then Joanna and Ostrick were suddenly gone, swallowed up by the long hall of the Jetway.

He opened all the windows when he got home, and he had the feeling that the air just whooshed out, heated to expansion. Then he could hear the clank of the neighbors’ pots and pans, the sound of someone turning sink water on and off, a baby’s cry, a dog barking from down the street. Without turning on the lights, he boiled water for pasta. It was his one staple meal: pasta and sauce from a jar with a shake of cheese on top.

While waiting for the water to boil, he stared out the window, listeningto sounds of the neighborhood, for a while enjoying the spacey, empty feeling that water-heating always gave him. Then suddenly, despite the heat that had lingered into the twilight, a little shiver went through him. It was Joanna’s face that came to him, the last look she gave him before she turned to go down the Jetway, something wrong there, something he couldn’t quite put a name to. And he regretted all over again that he couldn’t say the right thing when he needed to, his clumsiness in the crafts of love. But immediately he cut off the train of thought. Just anxious when she travels, he told himself, as always. Besides, it was getting late, he was hungry, and here was the water, spitting steam from the sides of the lid.

He took his little meal to the dining table, where he turned on the light and surrounded himself with books. The window-system manual, the UNIX operating system guide, a data sheet for the graphics workstation, specifications for the VT-200 character terminal—a circuit of technology ringing his plate. Then for the next hour, he read and ate with a childish absorption, like the pleasure of stuffing his mouth with buttered popcorn in the darkness of a movie theater. Joanna’s being gone made it all the better: Time felt spacious, unbounded. All the little accommodations he normally made for her—not reading at the table, the how-was-your-day-dear conversation—were in suspension. He dove into his manuals the way he dove into his food. Soon spaghetti was stuck to the pages of the OS guide. Bread crumbs were folded into the workstation data sheet. Everything was dotted red with tomato sauce.

When all at once, as he reached for the one technical manual not yet in the circle—the database design document in its black leatherette binder—a panic came over him. It had a very specific representation, this panic, an image concrete and irrefutable: at his last job, only nine months ago, Ethan Levin had worked at an insurance company, coding input screens for claims clerks.

I don’t know what I’m doing, came the inescapable thought into his head.

The heavy document in its black binder fell, closed, onto the table. And his next thought was of Harry Minor, his boss at Telligentsia, and how even he knew that Ethan had no particular qualifications for the job he was doing. “No one knows shit about front ends to databases,” Harry had said at Ethan’s second job interview. “At least no one who’ll come work for us,” he’d added with a big jolly laugh.

Ethan could still remember that laugh: the cynicism in it, the resignation. Was it supposed to reassure him, the fact that they couldn’t find anyone better?

As it turned full night outside, and moths battered at the windows until they found their way inside to orbit the light, Ethan conjured up the interview, as he had many times before. And he slowly relived its most reassuring moment, Harry telling him that no one really knew what they were doing, that things were changing too quickly, and everyone was just making it up as they went along. “Look,” said Harry, “you’ve worked on UNIX, with a database, doing business stuff. I can’t find a single person in the world who has that combination. There are some of these academic guys I could get, but none of them has ever built anything that runs in the real world. They never had users. They don’t know crap about business requirements. As for the rest of it, you’re self-taught. You’re motivated. You’ll learn.”

The rest of it, Ethan thought as he sat there behind his red-spattered books and cold, half-eaten dinner. He looked at the manuals surrounding him, thinking of everything in them he had to learn, and the memory suddenly lost its reassurance. The rest of it. Device drivers and system kernels. Processes and signals and memory segments. All the operating-system services that before were always just there for his programs to use. He’d spent twelve years as a corporate coder, writing programs for general ledgers, accounts payable, order processing—insurance, forgodsakes. Now he had to take the covers off, go deeper, where the machine was not some notion he had of it, but a layer of code that sat on top of another layer of code, on top of another one, very little of which he exactly understood.

But Harry Minor had offered him the job, Ethan reminded himself. The same Harry Minor who’d written part of the Internet Protocol, who was a legendary hacker from the days when “hacker” was an honorific for a brilliant programmer. “I’ll help you,” Harry said at the second interview. “I’ve already started designing it, coding it. There’ll be you and me and six others. You won’t be doing this alone.” Harry had worked to convince him, and if Harry Minor, overweight bearded balding shaggy guy in a T-shirt who is the reason we have this stereotype of what a programmer should look like—if Harry thought he could do the job, Ethan said to himself, maybe it was true.

Then Ethan remembered what his group had to deliver: a newly designed user interface to a database. The front end and database running on separate machines, connected over an Ethernet network. A windowing system to support the UI. All of it in new code. Harry had dismissed the primitive windowing system that came with the workstation they were using. “Who knows if they’ll keep supporting this kluge?” was how he put it. Aside from a few basic routines to interact with the mouse and graphical screen, the front-end group would write their own windowing system, built to run on multiple operating systems, with different types of screens, different kinds of input devices—a mouse, a joystick, who knew what else might come along in ten years? As Ethan recalled all this, he also had to remember that he’d never thought much about user interfaces. That he’d never written a program that used a mouse. That one of the operating systems his interface was supposed to run on he’d never even logged on to in his life.

“It helps to be scared,” Harry Minor had said at the interview. “It keeps you focused.”

Then Harry had laughed and laughed.

Ethan sat in his dining room and remembered the moment when his bluff and self-sell suddenly failed him, when he found himself muttering something about there being a “skills mismatch” between himself and the job. And then Harry leaning forward in his chair (with great difficulty, breathing heavily at the mere exertion of shifting his formidable weight), telling him not to worry about not having finished graduate school: “It’s all mostly useless by now anyway,” he said. “Look, Levin. Programming starts out like it’s going to be architecture—all black lines on white paper, theoretical and abstract and spatial and up-in-the-head. Then, right around the time you have to get something fucking working, it has this nasty tendency to turn into plumbing.

“No, no. Lemme think,” Harry interrupted himself. “It’s more like you’re hired as a plumber to work in an old house full of ancient, leaky pipes laid out by some long-gone plumbers who were even weirder that you are. Most of the time you spend scratching your head and thinking: Why the fuck did they do that?”

“Why the fuck did they?” Ethan said.

Which appeared to amuse Harry to no end. “Oh, you know,” he went on, laughing hoarsely, “they didn’t understand whatever the fuck had come before them, and they just had to get something working in some ridiculous time. Hey, software is just a shitload of pipe fitting you do to get something the hell working. Me,” he said, holding up his chewed, nail-torn hands as if for evidence, “I’m just a plumber.”

I can be a plumber, Ethan thought as he looked at those hands. I’ve always been a plumber. All I’ve ever done is crawl around trying to figure out what’s going on.

Then Harry said: “Your users wanted stuff all the time, right?”

Users: claims clerks and adjusters and accountants. “Sure.”

“And they didn’t give a shit when you said something like, ‘The system isn’t designed to do that’—whatever it was they were asking for, right?”

“Right.”

“And you had to make it do it anyway, right?”

“Right.”

“So you know.”

What did he know? Ethan felt like he knew nothing, had just wandered along from job to job, doing what he had to. What did he know?

As an undergraduate, Ethan hadn’t taken a single course in computer science beyond what he needed to know to use the university system. He’d majored in organic chemistry, intending to become an epidemiologist. The thought of traveling around the world trying to figure out the cause of some strange disease seemed to him noble work, intellectually challenging, and (he had to admit, despite the fact that people would probably be dying) fun.

But just as he was about to graduate from college, in 1971, he read an article in Scientific American that changed his mind about his future. It was about a cybernetic universe called The Game of Life created by the mathematician John Horton Conway. The Game, at first look, seemed silly, simpleminded. There was a grid of cells, like a field of ticktacktoe games, and three rules that decided if an individual cell was to be turned “on” or “off” or remain in whatever state it was in. The rules themselves were ridiculously simple, based entirely on the state of the eight neighboring cells (if a cell had less than two “live,” turned-on neighbors, for example, it was turned off, or died). But out of these simple prescriptions came surprising results. As the rules were applied over and over again, elaborate patterns sometimes emerged—stable arrangements of cells devotees called “life-forms”—all without design or intention. There came forms called blocks and beehives, boats and ships and loafs; the blinking shapes called oscillators; and the wonderful gliders and spaceships, moving forms that magically slid their way across the grid of the world.

Ethan found the implications of the Game tantalizing. He knew at once, with all the enthusiasm of an adolescent deciding to become an astronaut, that he had found his life’s work. Conway’s Game seemed to draw together everything he’d suspected while studying organic chemistry, feelings he couldn’t articulate to himself at the time but that Conway now crystallized for him: the sense that if he could just work his way down and down into the heart of living molecules, he would find something simple and clean. Maybe life, the real thing, in all its variety and complexity, had the same source as the forms in Life the game: from the workings of a glorious machine.

“The miracle in the mechanism” is how Ethan thought of it.

He was not alone in his enthusiasm, he soon found. The author of the piece in the Scientific American received hundreds of letters from mathematicians and computer scientists; one researcher started a newsletter, “Lifeline,” to which Ethan immediately subscribed. There he could follow the life histories of the forms as they were spawned from their cybernetic parents, the random starting-point arrangements named for their number of cells: the prodigious R-pentomino; heptominoes B and C; and heptomino D, which looked to Conway like the astronomical symbol for Uranus (h), whom he therefore named “Herschel.”

The important thing about the Game, as Ethan understood it, was that nothing in the rules could possibly predict the existence and shape of the resulting life-forms, the way there is nothing in the chemistry of two adjacent water molecules that gives any notion of the shape of a cloud. Yet still the cloud exists, unique and unpredictable, not designed from on high but emerging, somehow, from the many mundane, small, “neighboring” interactions of water and air operating dumbly from below. When he considered it, yes, he was sure that Conway’s Game was a way to understand the origin of life itself. How else to explain the emergence of organic life—living tissue, DNA, self-replicating—from a primordial soup of dead, inorganic chemicals? It was a mystery no science was able to explain: the leap from the predictable to the infinitely variable, from nonlife to life.

He absolutely had to be part of the Game.

He decided to abandon organic chemistry and epidemiology. The future of the study of life, he decided, was not at the lab bench but at the computer terminal. He became a seeker after the principles of artificial life. What makes humans any “realer” than some other form of self-replicating, self-directed life-form that might be created cybernetically? he thought. Why should we products of that inorganic primordialsoup be more privileged in our “naturalness” than some other sort of creature that might emerge? His enthusiasm became boundless. He even decided that his study of the Game allowed him to believe in God again. His problem had been with God-the-Master-Planner, with the idea that all the change and complexity in the world was foreseen, designed from the outset. Yet now the audacious variety of the universe did not have to be worked out in advance. God was in the details, Ethan was sure. God, like Conway, had devised the basic, simple principles of life, the smallest rules for the most fundamental particles of matter. Then God sat back and waited to find out what would happen.

Ethan was accepted into a Ph.D. program in computer science at Berkeley. He began work on what he called a “simulated ecosystem”—a collection of digital creatures and habitats, and simple rules for their interaction. For six months, he worked in a fever, devising his rules, starting to program.

Then one day, when the code was barely started, he received word that his father had died, a sudden heart attack. There were bills, debts, anxious relatives who’d loaned him money. For the first time in his life, Ethan Levin, fatherless, had to face the terror of having no money. He had to pay back his uncle. He had to quit graduate school. He found a job: programming, general ledgers. Then another: accounts payable. Then the next: order processing. Then finally: insurance.

Harry Minor had been very interested in the simulated ecosystem.

“Do you still work on it?” he’d asked near the end of the interview.

“Yes,” Ethan had replied.

“How often?”

Ethan decided Harry already wanted him, so there was no point lying to him. Ethan had long ago lost the mathematics to work as a researcher. He had no time to read new books as they came out. His journal subscriptions, one by one, had lapsed years ago. Of a whole way of life he’d wanted, only the simulation remained. “I work on it whenever it seems that my life has just gone from thing to thing without my having much to say about it,” he said, then paused. “Every six months or so.”

Which caused Harry Minor to laugh and laugh. “You really should come work here,” he said finally. “You’ll be way too busy to worry where the hell your life is going.”

The simulation was waiting for him, right where he’d left it eight months ago. He went up to his study, a small room in a kind of dormer on the second floor, sat down in front of the IBM PC the company had loaned him to induce him to work from home, and dialed in to the host at work. Then he sat listening to the screech of the modem. It was a sound he’d come to associate with his simulation, a sort of siren call, asking him to come back and work on it. He’d carried the program from machine to machine over the years, from minicomputer to minicomputer, and one failed attempt to rewrite it for a mainframe. Now, with Harry’s encouragement, his simulated world lived on a UNIX server at Telligentsia, where it had been running all these months in the dark internals of the machine.