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

"We don’t have to freeze our boundaries exactly where we are. The part of the Wild Wood closest to the Fringe was human territory once anyway. But we can’t have uncontrolled expansion."

"Then tell us how to prevent such expansion, Lord."

"If we don’t prevent it we’ll be at war."

The old wizard sighed heavily. "Then, Lord, my advice is to prepare for war. For the people will not obey us on this."

All up and down the table the wizards looked even grimmer. But none of them disagreed with Honorious or offered an alternative.

Twenty-Three: Brainstorm Time

At some point in the project you’re going to have to break down and finally define the problem.

programmer’s saying

"Okay," Larry Fox said, "what about corned_beef?"

Wiz had spent most of the previous afternoon and a good part of the morning meeting the team and reviewing what they had done. Now he was beginning to tackle the problems Jerry had dumped in his lap—literally—two days before. All the stalls in the Bull Pen were taken so they had wedged a table in down by the whiteboard and tea urn. He and Larry had spent hours going over obscure bits of code and untangling particularly strange demons.

"corned_beef is a hashing routine, obviously," Wiz told him between bites of his third sandwich of the afternoon. "It’s a fast way to search for a demon—a routine—by name."

"But where’s the rest of it? We figured out that it was doing a hashed look up, but we couldn’t see how you searched the entries."

"Mmmf," said Wiz around his mouthful of sandwich. He shook his head and swallowed hard. "It’s a perfect hash. One item per entry, always." He took another big bite of sandwich. "You take the first characters of the demon’s name, multiply that by a magic number. That gives you the number that serves as a subscript to the array. If you pick your numbers right you always get a unique entry for each item."

"That’s weird!"

Wiz shrugged. "It works."

"One more question. Why do you divide by 65,353?"

"Because you’ve got to divide by a prime number, preferably one at least twice as large as the number of entries you want in the hash table. 65,353 is a Mersinne Prime and it was the largest prime I could remember."

Larry frowned. "Are you sure 65,353 is prime? I don’t think it is."

Wiz shrugged and took another bite. "It worked."

"Okay," Larry said, "I’ll clear the rest of these changes with Jerry or Karl and get right to work on them."

"No need for that. I intended to fix those other points anyway and it’s in the language specification."

Larry hesitated. "I’d still better clear them."

Wiz started to object and then stopped. It really wasn’t his project any more, he realized. The original specification might be his, but even that had been modified in the process of development. Now it was a team project and Jerry Andrews was the team leader. It hurt to recognize that, but fighting it would only damage the project.

"Fine," he sighed. "Let me know what Jerry wants to do about it."

The next afternoon the entire team gathered in the Bull Pen. One of the long trestle tables had been cleared and stools and benches were pulled up around it. Wiz sat at one end of the table with Moira and Jerry by his side. In the center was the new version of the Dragon Book, with the small red dragon curled peacefully asleep atop it.

"The news from the Council isn’t good," Wiz told them. "I was hoping they could solve their immediate problems by traditional methods once they understood what the problem was. They’ve been pushing for us to wave a magic wand," he smiled wryly at the phrase, "and make them go away. Well, as of this morning, it is definite. There is simply no way they can do it. We’ve got to come up with a magical means to head off a war."

"Not much to ask, is it?" Nancy said.

"Okay," Wiz said. "We’ve got two problems here. One of them is the hacked version of that protection spell. The second one is we’ve got to keep people from penetrating further into the Wild Wood until we get things straightened out."

"What’s the main problem?" Judith asked.

"The spell, I think. That’s what seems to be doing the most damage right now. We’ve got to either neutralize it or keep people from using it."

"Can you not neutralize their magic as you did at the City of Night?" Moira asked.

"The worms? That’s too non-specific." He shook his head. "No, we can’t afford to soak up all the available magic. That would leave the humans right back where they were before we started. We need something more subtle."

"But we have to have it quickly," the redheaded witch said. "We cannot afford to waste time in pursuit of the ’elegance’ you keep talking about."

"So we’re gonna need something quick and dirty." He held up a hand. "But not too dirty. Does anyone have any ideas?"

"Sounds like a job for a virus," Nancy said.

"Naw, as soon as they see the program is infected, they’ll switch back to the old one."

"A birthday virus!" Danny shouted suddenly.

"A what?" Wiz asked.

"A virus that doesn’t trigger until a specific event occurs. We set the magic event far enough in the future that the program will have had time to spread everywhere. Then it triggers," he waved his hands, "poof! The spell doesn’t work anymore."

"You know," Jerry said suspiciously, "you talk like you’ve had a lot of experience at this."

The other shrugged. "It’s, you know, been a special interest of mine."

Jerry snorted. "When we get back, remind me never to use any software you had anything to do with."

Wiz ignored the byplay. "Okay, what keeps them from going back to the old spell?"

There was silence down the table.

"We can’t just wipe it out of their memories, can we?" Jerry sighed.

"Even if we could, there are sure to be written copies around. When the new program self-destructs, they’ll just go back to the old one."

"Can we come up with a spell to attach itself to demon_debug and destroy it?"

Wiz thought hard. "I did something like that against the Dark League. The problem is, when it destroyed the spell it took out everything for about thirty yards around in a humongous blast. We don’t want to kill them and it would be a big job to weaken the effect."

"Aw, they’d get the message after the first couple of explosions," Danny said.

"No," Wiz said firmly.

"Well…" The young programmer’s face lit up. "Hey wait a minute! Suppose they get the idea the spell’s no good?"

"The problem is that it is good against magic. Too good."

Danny smiled an evil smile. "Not if we’re the ones making the magic."

Wiz looked at Danny and then at Jerry. "Now that’s got possibilities. Suppose we cook up something demon_debug doesn’t work against?"

"Yeah," Jerry said slowly. "Something that will convince them they don’t ever want to mess with demon_debug again. Danny, stick around after the meeting, will you? I think I know how we can put that arcade-game mind of yours to work."

Wiz made a check mark on the slate in front of him. "Okay, that gives us a handle on one problem. Now for the other one, keeping humans out of the Wild Wood."

"I don’t suppose we can just make a law?" Jerry asked hopefully.