Выбрать главу

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 it.”

“I think it’s working now,” I said. “Now that Russ has finished his port.”

“Show me now,” said Russ coldly.

We left Jack and Jill, who got back to their boxes. Sketchy Albedo was on the other Sphex. Janelle Fuchs had been praising Sketchy to me. “He’s a skater,” she’d told me. “ Sketchy is a skater word. He’s a fun guy at a party. He just likes to harsh on older men. He doesn’t mean anything by it.” For his part, Sketchy had decided I was okay when he found out about the wide range of court charges against me. I was practically a cryp.

“Gronk,” said Russ to Sketchy. “Gronk gronk gronk.” Russ squinted his eyes shut and opened his mouth wide as he did this. He tilted his head back so that his beard rose up off his chest. God he was ugly.

“Russ means can we use the machine,” I said.

“The lawn-dwarf and the twit,” said Sketchy, quoting from our private e-mail flame letters. Sketchy read whoever’s e-mail he felt like. “I was thinking-can you spazzes teach Squidboy to skate?”

“Maybe,” I said. “Provided there’s a physically accurate cyberspace skate simulation that the program can practice in.”

“Sure there’s a program like that,” said Sketchy. “ Cyberskate. Silicon Graphics ships it with their deck along with a spring-mounted feely-blank skateboard that you stand on for your interface.”

“If someone could set up message-passing between Cyberskate and the Adze code it would be feasible,” said Russ. “But neither of you amateurs has a prayer of doing it, and I’m not about to. Guess what?” Russ mimed a false hobbit smile, then scowled and began yelling, “Marketing has gotten Brie and Gyorgyi to sign off on a schedule which gives Sun Tam, Jerzy, and me six days from now to give Developer Services and Quality Assurance some working code. That’s next Monday. So get your feeble butt off the Sphex! For future reference: that’s what gronk stands for!” Sketchy sprang up and Russ plopped himself down into the Sphex’s Steadiswivel chair. I sat down next to him, and we each pulled on two gloves.