KENNY'S GREAT BIG PROJECT

The folder Kenny was supposed to read was sitting on the airplane seat table in front of him. He was thinking about his stock-picking program. He had given up on it a long time ago, but he had worked hard on that program, for a little while, and now he couldn't stop thinking about it.



Cambridge, MA

August

He had to do something. He could barely sit still. It was the Itch.

Kenny's lanky body, bare except for white undies, was stretched out desperately on the rickety chair in front of his computer. It was 2 a.m., dark outside and sweltering both in and out of his apartment. He couldn't sleep, so he would write another stupid program. Sweaty, hot. The Itch.

He was too impatient for activities such as reading or watching an old movie. They wouldn't help. They weren't doing anything, making anything. He wanted to do something, and the only thing he knew how to do was write computer programs. The only problem was that he didn't know what program to write. He never did.

The cursor blinked on the screen, waiting for him.

A scan of the folders on his computer told a story of a computer programmer with nothing to program. ASCII Face: a program that took a photo and converted it into a rough likeness composed of letters and keyboard characters. ASCII Face didn't work well; Kenny had only worked on it for a couple days. Pic Grabber: a program composed after ASCII Face that had lain stale for a week. Pic Grabber would autonomously navigate to a few preselected news sites and download the photos on those pages to Kenny's hard drive. Pic Grabber had been intended to collect pics for the ASCII Face program. It performed its task correctly, but Kenny never put it to use.

Triangle Drawer drew triangles on the computer screen, and then added lines connecting the points of some triangles with those of other triangles. Kenny had spent 43 minutes writing Triangle Drawer.

Number Guesser would guess what number you were thinking of, taking "higher" and "lower" as inputs. It would also choose a number and let you do the guessing, leading you on with a series of taunts. ("Too low. Try again, idiot.") Number Guesser had been an active project for a grand total of 1 hour and 53 minutes.

What would it be tonight? How about Program Idea Generator, he thought. That would be useful. None of his classes or teachers ever addressed what was worth programming. Everything was an exercise to build skills and tools. Homework. Endless preparation for a Great Big Project that was never named or described or even alluded to, and which he doubted would ever come. There appeared to be no point to what he was learning. Computer science ceased to be something he was interested in. Then it was just something he studied because he had to study something.

Graduating had not solved the problem: he had to do something. Getting a job seemed like a loathsome proposition. So he had looked at graduate school. He was good enough to get recommended into a top graduate program. His professors didn't seem to think he was anything special (they didn't seem to think there was a Great Big Project for him, either, evidently). He just happened to be better than most of his classmates -- the ones who hadn't gone off to become bankers, at least. He was a little surprised when he got in and when it dawned on him that the graduate stipend would cover his living expenses. For a few months he was almost excited.

In grad school his adviser had made him choose his own projects. There were no homework assignments. But he kept rejecting Kenny's proposals as not "serious." That word was in every email from Kenny's adviser. Serious. Apparently programming was pretty serious business. Serious. What a serious idiot. At first Kenny interpreted "not serious" to mean "too easy." He suspected later that the only "serious" projects were the ones closely in line with his adviser's own research, which Kenny found absurdly esoteric. Kenny didn't care much what he worked on, but he couldn't give up hope that whatever he did might be connected, however faintly, to that mysterious Great Big Project waiting for him out there. Insisting on that point had made it difficult to get along with his adviser and was the main reason he had dropped out of grad school.

That hot summer night was the same problem, same blinking cursor. But it was the night he started the stock-picking program.

The traces of history on Kenny's hard drive gave no indication as to why he would tackle picking stocks. He had never shown any interest in the subject, and he knew almost nothing about it. He had only a dim idea of what a stock was.

A car drove by outside, past the peeling white paint and dark screen of the open window by the street. Kenny clicked open a few web pages describing the basics of the stock market. You can trade stocks online, right? And you could look up stock prices online. But the market closed, right? You can buy stocks at other times, can't you?

The stock picker was doomed from the outset. Kenny might have possessed the ability to make it work, but he lacked the commitment, and he knew it.

Serious. Maybe the stock-picking program was serious. Making money was serious. Providing for his girlfriend, or impressing her, would be serious.

But where could he begin? He reviewed some programs he had written recently. Word Quiz consulted a dictionary and gave you a word and four possible definitions, one of which was correct and three of which were selected randomly from other words in the dictionary. The quiz ended up being too easy, even for Kenny's modest vocabulary. Word Guesser navigated itself to a news page and tried to extract definitions from the page by snipping out text. Word Guesser didn't work at all, but it used a lot of the same code as the Pic Grabber, so Kenny had written it quickly. It would take a page with the sentence, Britney Spears is a complete disaster, and output the definition, Britney Spears: n. A complete disaster. That kind of program is called a "scraper," because it scrapes words and images from a web page.

Kenny reflected on the fact that he liked writing scrapers. There was instant gratification to scraping. That, and reusing programming code that other people had already written.

He clapped his hands. "Yes!" He leaned back. He had an idea. He would write his stock picker with the mother of all his scraper programs: Pats Suck. The stock picker still wouldn't work, probably. But he was pleased with his idea. It would provide a couple hours of something interesting to do.

He put on The Beatles (the White Album) and stood up to think. For a moment, the Itch was gone.

Supervirus
titlepage.xhtml
jacket.xhtml
Supervirus_split_000.html
Supervirus_split_001.html
Supervirus_split_002.html
Supervirus_split_003.html
Supervirus_split_004.html
Supervirus_split_005.html
Supervirus_split_006.html
Supervirus_split_007.html
Supervirus_split_008.html
Supervirus_split_009.html
Supervirus_split_010.html
Supervirus_split_011.html
Supervirus_split_012.html
Supervirus_split_013.html
Supervirus_split_014.html
Supervirus_split_015.html
Supervirus_split_016.html
Supervirus_split_017.html
Supervirus_split_018.html
Supervirus_split_019.html
Supervirus_split_020.html
Supervirus_split_021.html
Supervirus_split_022.html
Supervirus_split_023.html
Supervirus_split_024.html
Supervirus_split_025.html
Supervirus_split_026.html
Supervirus_split_027.html
Supervirus_split_028.html
Supervirus_split_029.html
Supervirus_split_030.html
Supervirus_split_031.html
Supervirus_split_032.html
Supervirus_split_033.html
Supervirus_split_034.html
Supervirus_split_035.html
Supervirus_split_036.html
Supervirus_split_037.html
Supervirus_split_038.html
Supervirus_split_039.html
Supervirus_split_040.html
Supervirus_split_041.html
Supervirus_split_042.html
Supervirus_split_043.html
Supervirus_split_044.html
Supervirus_split_045.html
Supervirus_split_046.html
Supervirus_split_047.html
Supervirus_split_048.html
Supervirus_split_049.html
Supervirus_split_050.html
Supervirus_split_051.html
Supervirus_split_052.html
Supervirus_split_053.html
Supervirus_split_054.html
Supervirus_split_055.html
Supervirus_split_056.html
Supervirus_split_057.html
Supervirus_split_058.html
Supervirus_split_059.html
Supervirus_split_060.html
Supervirus_split_061.html
Supervirus_split_062.html
Supervirus_split_063.html
Supervirus_split_064.html
Supervirus_split_065.html
Supervirus_split_066.html
Supervirus_split_067.html
Supervirus_split_068.html
Supervirus_split_069.html
Supervirus_split_070.html
Supervirus_split_071.html
Supervirus_split_072.html
Supervirus_split_073.html
Supervirus_split_074.html
Supervirus_split_075.html
Supervirus_split_076.html
Supervirus_split_077.html
Supervirus_split_078.html
Supervirus_split_079.html
Supervirus_split_080.html
Supervirus_split_081.html
Supervirus_split_082.html