Kwirkey, being Lisp-grounded, had an utterly different idea of memory than did SuperC. Russ’s Kwirkey interpreter needed to waste megabytes of space and kiloclocks of time on creating and then cleaning up the “frame diagrams” required to convert Kwirkey commands into machine instructions. And there were lots of other things-maddeningly fiddling little thinglets that nobody except Sun Tam would ever want to have to know about.

Russ Zwerg was not a likable person, but I ended up feeling some sympathy and even respect for him as he hacked his way through the vicious undergrowths that separated the kingdoms of Kwirkey, SuperC, and the Y9707 machine language of the Adze.

While Russ hacked from within, I worked from without, getting familiar with Kwirkey by learning how to do some simple things. I was excited when my first Kwirkey program for the Adze actually worked; a program called Hello Squidboy.

There was a rudimentary cyberspace viewer connected to my desktop workstation. The viewer was like a pair of binoculars connected by a wire to the machine. Inside the binoculars were swinging inertial sensors that knew exactly to what position you turned the binocs. You could look all around a scene, and there were buttons on the binocs to zoom you forward, pan sideways, or whatever. It was as if you were looking through the viewfinder of a video camera while you moved your head.

When I ran the Hello Squidboy program on my machine, I’d see a little black-and-white copy of Our American Home with a model of Squidboy sitting in the kitchen. Whenever I moved my viewpoint into the kitchen, the Squidboy figure would wave one arm and say, “Hello Squidboy,” through my workstation’s speaker. It wasn’t much, but on any system, getting your very first program to run is half the battle. It’s like the first wheel, or the invention of fire. I began building on Hello Squidboy step-by-step, continually testing each improvement out in my workstation’s cheap cyberspace. Sun Tam helped me more than Russ did.

West West Home Products General Manager Otto Gyorgyi was calling Ben Brie in for daily meetings and asking him about my progress. Keep in mind that I was into West West for three million dollars at this point. No doubt Gyorgyi was wondering if just maybe what GoMotion said about me was true-that I was a destructive incompetent.

“Are you, Russ, and Sun ready to like schedule some milestones and benchmarks?” Ben asked me after a few days. He handed me some sheets of paper. “These are the Adze performance specs that Marketing has decided to run with. Janelle basically took the Veep specs and made everything twenty-five percent better. I’m going to feel a hell of a lot more confident about all this when our software starts doing more than saying, ‘Hello Squidboy.’”

I labored frantically to prove that I was indeed worth three megabucks, and slowly, as I dug deeper into Kwirkey, my feelings about the language underwent a flip-flop, the kind of flip-flop that had happened to me a dozen times before.

With a new language or a new machine, it was always like having someone say, “Here, Jerzy, here’s this list of part numbers, and here’s a picture of a car you can build with the parts,” and at first I would think, “Fuck this, I already know how to build a car with the old kind of parts I’ve been using,” but then I would get curious and start trying to use the new parts, and they’d be shaped weird-the new parts would have their own unfamiliar logic that at first I couldn’t accept-but then I’d manage to build a wheel and it would roll, and then I’d get more curious and start seeing cool things to do with the new logic, and by then I’d be well into the flip-flop. The fact that I was willing and able to do this to myself so often was what made me a hacker.

One of the things I began loving about Kwirkey was that it was a frobbable language. A frob is something you can pick up in the palm of your hand and walk off with, something about the size of a book of matches or the size of a trestle support for a model railway. Frob is a transitive verb as well. “Where did you get that cool spin button?” “I frobbed it from a dialog box.” High-level Kwirkey code was totally modular, with none of SuperC’s entangling data commitments, and you could frob Kwirkey code with a will.

I was ready to crank up a full-scale Kwirkey port of the SuperC bag of tricks that I’d written to work with Roger’s ROBOT. LIB machine code for the Y9707, but Russ’s automatic interpreter still wasn’t happening. Port was the word hackers used to mean taking software that worked on one kind of system and trying to get it to work on another kind; it was kind of like portaging a canoe on your head over rocks and through underbrush.

There was too much code for me to think of porting it by hand; even though I now understood Kwirkey, there were scads of little traps I wasn’t going to have time to figure out, lots of mosquitoes in the underbrush. Sun Tam knew about most of them, but the point was to have Russ automate the port. I began pestering Russ; I began reviling him for being so slow.

Russ’s verbal comments and e-mail messages grew ever more crazed and hostile. Even though we worked thirty feet apart from each other, we talked by e-mail lest we get involved in a public shouting match that might get us both fired. In our e-mail Russ called me a twit, a professor, and a charlatan; while I called him a lawn-dwarf, a dropout, and a nut.

An exceedingly hostile or schizophrenic e-mail message is called a flame. Even though Russ and I were still exchanging scientific information, we were at the same time in the throes of a flame war. But it didn’t really matter. As Roger Coolidge had once told me, “If you’re a serious hacker you don’t let flames bother you. Instead you grow thick scales.”

One fabulous Tuesday, two weeks after the GoMotion ant attack, something yielded, the jam broke up, and Russ had fully hacked a fast and beautiful Kwirkey/ SuperC interface. I could program the Adze in mixed Kwirkey and SuperC as transparently as if my hands were picking up sand dollars in clear water. I was like a kid in a candy shop. At the end of three dizzyingly wonderful hours, I found that I’d linked every single one of the Veep algorithms into our prototype Adze software. And, so far as I could check using the feeble cyberspace of my desk machine, my new code worked fine.

I told Russ and he was cautiously glad. Flame mode: Off. We hurried to the big Sphex monitor in the back room.

Jack and Jill, the jolly jock hackers, were on one of the machines, laughing excitedly and looking at their new program. The screen showed a box-shaped room that was full of tumbling three-dimensional boxes. The boxes were translucent and inside each box were more boxes, also translucent, and also with boxes inside them. It went down for as many levels as the screen resolution could handle.

“This is our new Kwirkey interface,” explained Jack when he noticed me watching. “Jill calls it Gizmos.” The boxes made noises as they bounced around, noises like boing whumpa boing. Jack’s pale eyes were glowing with excitement.

Brown-eyed Jill flew our view down into one of the boxes and the box seemed like the whole room. The boxes were moving so fast and smoothly that it was totally hypnotic to look at. Jill zoomed down and down through the rooms and eventually the view was the same as the start room. “We keep the top views down inside each of the smallest boxes,” said Jill. “So it has circular scale.”

“Or sideways scale,” put in Jack, making a gesture with his gloved hands. A web of lines sprang onto the screen, lines like bungee-cords connecting the wild boxes. “These are the bindings.”

“What are the boxes?”

“The boxes are gizmos,” laughed Jill and started moving her hands around, panning and zooming her gesturing glove icons about in the virtual space of the interface. The boxes became clothed in translucent shapes-a shovel, a crow, a house, an oak tree, a Scotty dog. Jack reached in and adjusted the cables between the gizmos; they began to writhe and move in twisty, nonlinear ways.

“So far we’ve been single-stepping,” said Jack. “But now I can speed it all up.” He made a fist of his hand and the images blurred with smooth, rapid motion. “And then it converges on one of the limit cycles of the attractor. Check it out, Jerzy.”

The images had locked into slow, deeply computed interactions. I was looking at an oak tree in front of a house, with a Scotty dog running around the yard. There was a ditch with a shovel next to it; the Scotty jumped over the ditch. The crow sailed down from the tree and cawed at the Scotty. The Scotty barked and jumped back over the ditch.

“Gizmos are object-oriented Kwirkey frames,” said Russ, who always made a point of knowing what his fellow programmers were up to. “Self-modifying structures of data and function pointers.”

Jack interrupted. “You should use it for the Adze. A gizmo could be an Adze eye or wheel or neural array. A gizmo can be a user, or it can be something the user wants to do.”

“Gizmos are God,” said Jill. She looked calm and pleased.

“So when are you guys going to have your Adze code happening?” asked Jack. “I’m ready to try and gizmofy

Вы читаете The hacker and the ants
Добавить отзыв
ВСЕ ОТЗЫВЫ О КНИГЕ В ИЗБРАННОЕ

0

Вы можете отметить интересные вам фрагменты текста, которые будут доступны по уникальной ссылке в адресной строке браузера.

Отметить Добавить цитату