Dev skimmed down the code, then stroked the window to make it scroll. “Looks like it wanted to get out through the Ring into as many other ’cosms as it could . . .”
“Which would’ve been bad,” Giorgio said. “Each time one of these things got into a new ’cosm it would have cloned itself again. The system would’ve been flooded with them in minutes. But they couldn’t get out of the ’cosm . . . or rather they could, except only into other shuntspaces. The rogue logins couldn’t tell the difference between the shunts and the real spaces because all the code’s identical, right down to the accounting structures. But everything’s isolated from the main structure by design . . .”
Dev nodded slowly, looking at the nasty and elegant code in his hands. “So here they stayed until they expired.” He glanced up. “Though not all at once.”
“Nope,” Darlene said. “Expirations were pretty much random, though there were some clusters that might have been either lazy programming or something to do with the rogue logins not being able to execute their routines correctly—caught in loops, maybe.” She shrugged.
Dev flipped the page of code over to Giorgio, who crumpled it up and tossed it in the air, where it vanished. “Now all we need to figure out is why the CO shoved those logins into the shuntspaces,” Dev said.
Giorgio nodded. “We’re looking into that. So are Spike and Dietrich here—they were on last night helping with the analysis and cleanup after the first attack, and we called them over from network security to help us try to understand what was going on.”
“What we are all agreed on,” said the dark-skinned young man who to judge by his accent was probably Dietrich, “was that it was a good thing that so many of the illegal logins wound up being directed into the shuntspaces. They protected the rest of the system a little. Otherwise the battle might have gone very much differently.”
“As bugs go,” said Spike, a little Asian guy in a white shirt and business flannels, “it was more welcome than most.”
“Undocumented feature,” said one shuntspacer whose name tag read “AMALIE,” a young brunette woman in jeans and an Omnitopia hoodie.
“Yeah, well, I prefer them documented,” Dev said. “But you must have some theories about how this happened. Anybody?”
Heads shook all around the circle. “That’s why we left you all those notes, Boss,” said Giorgio. “You and Tau are the only ones with access to the CO. You two’ll have to figure it out.”
“All we can tell you,” said Darlene, “is that every one of those rogue logins had Conscientious Objector ID strings prepended to them. Though the format looked weird.”
Dev let out an exasperated breath. “Weird? Syntax errors, you think?”
“Like you would ever make a syntax error, Boss,” somebody said, sounding very dry.
Dev laughed. “Please. My perfection is a matter of public record.”
The snickering was no crueler than necessary. “Don’t know that it was a coding error, either,” Darlene said. “Or not one of yours. The other reason we called security was that, besides the CO strings, we also kept finding outside computer address strings appended to the attacker logins, whereas all the others we had been trying to follow up until then didn’t have any. Which makes sense, because that’s absolutely not the kind of thing you’d want to leave behind you if you were a hacker. We couldn’t understand where the appended addresses were coming from.”
“Code error at the other end,” Giorgio said. “Had to be. After all, the attack code has to have been millions of lines long. No way you can write that much stuff without messing up something somewhere—”
“Tell me about it,” Dev said.
“All it would have taken,” said Darlene, “was one line duplicated somewhere in those guys’ code—a semicolon forgotten or a pair of quotes or brackets not closed—” She shrugged. “Then you get this fragment of address information left hanging off the end of a login. . . . That might have been what made the CO react. But you’ll have to be the one to tell us that.”
Dev shook his head. “It sounds like we just got lucky,” he said. “Okay. Tau and I will look at your notes as fast as we can. Probably mostly Tau—my plate’s so full today . . .”
“Boss,” Giorgio said. “We know you’re . . . protective about the CO routines. We understand why.” Dev looked over at him, thinking, Protective being code for “paranoid.” “But it’s getting to the point that when you have situations like this, you’ve got to be able to hand them off to other people. Otherwise you’ve got all forty thousand of us sitting on your shoulder waiting for you to fix what’s busted, and it’s not fair to you.”
“Not fair to us” was what Dev had been expecting to hear, but now he felt ashamed of himself for underestimating the quality and the loyalty of the people he had working for him. He sighed. “Tau and I have been discussing that,” Dev said. “Just last night, in fact. We’ll be taking time to consider how best to go forward on the issue when the rollout’s finished and we’ve all had time to breathe.”
“Good,” Giorgio said. “Thanks.”
Dev got up and stretched. “So what else is going on with you guys?”
“We’re retrenching,” Darlene said. “Getting ready for the next wave.”
“Anybody here get any sleep?” Dev said.
There was hollow laughter from some of the Princes of Hell, but some scornful expressions, too. “Boss, please,” said Spike. “Sleep is for the weak.”
“Anyway, the next wave’s gonna be a lot more exciting,” Darlene said. “And there’s a lottery set up for who gets to be your bodyguard. Gonna kick us some bot butt. Human butt too, if we’re lucky.”
Dev raised an eyebrow. “So they did have people riding their bot programs—”
“Oh, yeah,” Giorgio said. “But the riders weren’t as careful about covering up their own tracks as the guys who programmed the machines were. The machines doing the automated part of the attack came into Omnitopian netspace on Internet addresses that changed three times a second, so that the programs proper jumped from machine to machine in a whole range of addresses—twenty or thirty for each machine. But the guys directing the attacks didn’t do that. Their machines kept the same addresses for, wow, maybe four or five seconds at a time.”
“That’s a long while in machine moments . . .” Dev said.
Darlene grinned. “They were trying to avoid latency issues,” she said. “They were apparently scared they might miss something vital during the attack, that some aspect of their own code would fail to run, if they changed machines too often. And they assumed they would have us so off- balance that we wouldn’t be able to devote enough resources to track them while the attack was going on.”
“Wrong!” chorused the other assembled Princes, and some of them laughed nastily.
“So the ambush is being planned even as we speak,” Darlene said. “Security’s busy tracking down the routes the zombie machines used to come at us—”
“They won’t use the same ones,” Dev said.
All the Princes rolled their eyes or made faces at their boss’ apparent slowness. “Of course they won’t,” Giorgio said. “But they established a pattern that showed us how they build and hub their network addresses. Once the first wave of the new attack starts hitting, we’ll be able to extrapolate their pattern backward along it, compromise their hub structure, pare them down to manageable numbers—”
“—say ten or fifteen thousand core machines—”
“—then suck those machines dry and inject our own code—”
“—so we can start compromising their function, get them to spill their guts, and ID the locations of the people riding the attack in real time before they self-destruct—”
“—it’s just going to be a matter of a few minutes to nail them to the ground, that’s all we need. So if we can make sure that the second attack nets them at least ten mil or so—”
“—maybe fifteen, but no more than that. We just have to keep them on t
he hook long enough to get them all thoroughly compromised—”
Dev’s mouth dropped open. “Whoa, whoa, whoa,” he said, “let’s just backspace a little. Did somebody just say ‘ten mil’ as in ten million? Ten million of my dollars?”
“Our dollars,” said Giorgio.
Everybody was looking at Dev as if he were insane at suddenly asserting personal ownership over something which the company line said belonged to all of them. Their expressions ranged from bemused to wounded. “We wouldn’t be suggesting this,” said Darlene, “if we weren’t going to get back ten times that much—”
“—twenty!—”
“—out of the lawsuits against the crooked IPs and spamhauser that made it possible for these guys to stage their attacks. Because there’s no way they could have done it without some level of complicity—”
“You can’t make omelets without breaking eggs, Boss,” Darlene said. “And the worm won’t bite on an empty hook.”
“Could you possibly mix that metaphor up a little more?” Amalie said.
“Oh, cut it out, you know what I mean! But it’s true.”
Dev rubbed his face. “All right,” he said. “Have you spoken to Tau about this?”
“About three this morning.”
“What did he say?”
“He said it was okay,” said Darlene.
“He said he’d be clearing it with you this morning after he talked to Jim and got the money end green-lit,” said Giorgio.
Dev suddenly flashed on Lola saying to him, with one of those winning smiles, “But Mama said I could!” And it was always a judgment call whether Mama really had. It wasn’t that Lola lied, precisely, but she so much wanted her version of reality to be true sometimes . . .
Nonetheless . . . it sounds like something Tau would have okayed: it has that reckless braininess about it. Dev sighed. “Okay,” he said, “let me get out of here: I’ve got at least as many things to do as you guys have. Just keep up the good work. I’ll talk to Tau later. Make sure you add anything new to your notes for him before we meet.”
“To hear is to obey, O Mighty One,” Giorgio said.
“Right. System? My door, please.”
It appeared in the air nearby. “And guys?” Dev said. “Good work. Keep on it. We’re all gonna have a big party when everything calms down.”
“Boss!” Giorgio said. “This is a big party. But we’ll come to yours.”
Dev smiled, waved at them, and stepped through the door.
Back in his virtual office, he stood silent for a moment, looking down through the darkly transparent floor at the Ring of Elich and thinking over what the Princes of Hell had told him. “Management?” he said then.
“Here, Dev.”
“Give me access to the CO routines.”
“What mode?”
“The same as last night.”
The view through the floor changed, showing him the rings of glowing trees as seen from thirty or forty feet above the base level and the floor opened, the stairway building itself again downward beneath him. Dev headed down the stairs.
Once down on the island that held the circle of a hundred and twenty-one trees, Dev paused on the shore, looking down into the roil of green light representing the CO routines. He reached into the air, pulled out the Sword of Truth, and stood there for a moment, considering the lines of code tangling and rolling liquidly at his feet.
Then he shook his head. “System management?”
“Here, Dev.”
“Is Tau viewing the CO routines at the moment?”
“No, Dev. Tau is in the Castle in consulting suite five, in conference with Cleolinda.”
“All right.” Still, he was feeling a little paranoid this morning, so—“Are any other Omnitopia personnel viewing the CO’s outrider programs?”
“The shuntspace staff on duty have a window open, but none are observing.”
“Good,” Dev said. “Alert me if either they or Tau begin observations.”
“I will, Dev.”
“Thank you,” he said. “Paradigm shift, please. Personal CO idiom—”
“As requested,” said the control voice.
The light changed, the landscape shifted. Suddenly the island looked like a real island—rushes and cattails down at the water’s edge, verdant sward underfoot: a clear sky above, with a big moon hanging low and silver in it. The forest of code behind him now looked like a real forest, the massive rough-barked trunks rearing up behind him, stretching out vast branches, every leaf of the overshadowing canopy edged with the silver of moonlight. In front of him, the liquid shift of the CO routines was now expressing itself as water, rippling pewter and silver under the moon, stretching away to the horizon in all directions.
Dev went down to the water’s edge and just stood there for a second, listening to the wind. Then he reared back and threw the Sword of Truth upward and out over the water.
It spun in the moonlight, fell toward the surface, but never had a chance to strike. White in the silvery light, a slender arm thrust up from the water and caught the sword by the hilt. For a moment the arm simply held it so: then water rippled as what held the sword started to move closer to the shore. More of the arm showed, and white silk fell back from it, shimmering in the pallid light as the shape to which the arm belonged made her way up toward the shore with the Sword of Truth in her hand.
She looked like Mirabel, but a different version of her: as fair as Mirabel, but instead of his wife’s blonde good looks, the woman had long straight hair dark as night and a glance nearly as dark. Over the trim little body was thrown a much longer version of the white silk bathrobe, with a white silk shift underneath it.
“Cora,” he said.
“Good morning, Dev,” said the Conscientious Objector.
“Take a walk with me?”
“Certainly.”
They walked toward the outermost ring of Macrocosm trees together, and for a good while in silence, while Dev decided how to proceed. This mode of debugging was one he had never used when anyone else was around; as far as he knew, not even Tau knew about it. But its roots went back a long way. In that distant past when he and Jim Margoulies were still running networked computer games with actual cables connecting their machines, Dev had added a voice to the help function in his first rough edition of Otherworlds. Jim had teased him unmercifully for days—first along the theme of “You want it to come alive and talk to you!” and then, much more painfully—especially because it was a female voice Dev had chosen—“You’re trying to build yourself a girlfriend!” Nor had Jim cared in the slightest about all the research that said female voices were easier to listen to than male ones and cut through the game noise better. He just laughed every time he heard the voice speaking. Dev, who then had had no girlfriend, hurriedly removed the voice from his machine.
But later, when Mirabel had come into his life and he was working on the new version of the game, Dev got a sudden stubborn impulse and stuck the voice back in. When Otherworlds debuted as a game that more people than just the two of them could play, though Jim had mocked him for it, the control voice had turned out to be one of its most popular features. It had something to do with the flexibility of the response routines that Dev had designed for it, and also with the actress Dev had hired—a woman who had done a lot of voice work for cartoons and who managed to sound engaged and comforting without ever getting gooey: neutral enough not to be your girlfriend, but not like your mom, either.
Jim’s mockery didn’t stop overnight. “I just like talking to my game,” Dev kept saying. But “You just like talking to yourself!” was Jim’s constant reply, until over time other subjects became much more important, and this one dropped off his grid. But it never fell off Dev’s, and when he got the idea a year or so ago of installing an experimental set of ARGOT modules at the edge of the CO for his own use, he somehow never got around to mentioning it to either Jim or Tau. His intention had been to build a comfortable way to interact directly with th
e CO’s so-called Rational Algorithm—the heuristic self-analysis modes that were the most important part of the Conscientious Objector, the key to having it run itself.
Since the original installation, Dev had been hacking at the self-expression part of the routine in a casual way every now and then. But there hadn’t been time to indulge such elective tweaking since the new hyperburst memory arrived two months ago. From then until now, just about all the time Dev normally set aside to deal with code issues had been given over to helping make sure the vast new memory heaps were working correctly. Now, though, he looked at the Lady of the Lake walking silent and serene beside him, and felt vaguely guilty for not having come to see her sooner. The Pathetic Fallacy, of course, he thought. It’s just a program. A very smart, very slick program.
But still, it’s my program. I should take better care of it. Visit it more often . . .
They passed into the first shadows of the moonlight, where the tallest branches of the outermost trees in the circle blocked the moon away; the dark hair of the woman walking beside him became a shadow, the eyes unreadable. “So how are things?” Dev said.
“Very busy right now,” said Cora, with a sidelong look at him. “As you know.”
Dev nodded, walking quietly under the shadow of the branches with “her”—saying nothing, waiting to see what she would say.
“It’s a surprise to see you here twice in two days,” Cora said. “Doubtless a report is required?”
“Well, yes,” Dev said. “Just what’s the matter with you lately?”
“You’re referring to the recent series of minor system malfunctions?” Cora said. “They have to do with the installation of the new memory and the relocation of the old memory functions into it.”
Dev rolled his eyes. “We’d kind of figured that out. I was hoping you might cast a little more light on the subject.”
“That’s not possible just yet,” Cora said.