Makers - Part 63
Library

Part 63

"I was an only child, but sure, OK, I see that."

"It's nothing," she said. "Really. Bring him a nice souvenir from Florida when we come back to Madison, take him out for a couple beers and it'll all be great."

"So we're cool? All the families are in agreement? All the stars are in alignment? Everything is hunky and/or dory?"

"Perry Gibbons, I love you dearly. You love me. We've got a cause to fight for, and it's a just one with many brave comrades fighting alongside of us. What could possibly go wrong?"

"What could possibly go wrong?" Perry said. He drew in a breath to start talking.

"It was rhetorical, goofball. It's also three in the morning. Sleep, for tomorrow we fly."

Lester didn't want to open the ride, but someone had to. Someone had to, and it wasn't Perry, who was off with his midwestern honey. Lester would have loved to sleep in and spend the day in his workshop rebuilding his 64-bit registers -- he'd had some good ideas for improving on the initial design, and he still had the CAD files, which were the hard part anyway.

He walked slowly across the parking lot, the sunrise in his eyes, a cup of coffee steaming in his hand. He'd almost gone to the fatkins bars the night before -- he'd almost gone ten, fifteen times, every time he thought of Suzanne storming out of his lab, but he'd stayed home with the TV and waited for her to turn up or call or post something to her blog or turn up on IM, and when none of those things had happened by 4AM, he tumbled into bed and slept for three hours until his alarm went off again.

Blearily, he sat himself down behind the counter, greeted some of the hawkers coming across the road, and readied his ticket-roll.

The first customers arrived just before nine -- an East Indian family driving a car with Texas plates. Dad wore khaki board-shorts and a tank-top and leather sandals, Mom was in a beautiful silk sari, and the kids looked like mall-bangbangers in designer versions of the stuff the wild kids in the shantytown went around in.

They came out of the ride ten minutes later and asked for their money back.

"There's nothing in there," the dad said, almost apologetically. "It's empty. I don't think it's supposed to be empty, is it?"

Lester put the roll of tickets into his pocket and stepped into the Wal-Mart. His eyes took a second to adjust to the dark after the brightness of the rising Florida sun. When they were fully adjusted, though, he could see that the tourist was right. Busy robots had torn down all the exhibits and scenes, leaving nothing behind but swarming crowds of bots on the floor, dragging things offstage. The smell of the printers was hot and thick.

Lester gave the man his money back.

"Sorry, man, I don't know what's going on. This kind of thing should be impossible. It was all there last night."

The man patted him on the shoulder. "It's all right. I'm an engineer -- I know all about crashes. It just needs some debugging, I'm sure."

Lester got out a computer and started picking through the logs. This kind of failure really should be impossible. Without manual oversight, the bots weren't supposed to change more than five percent of the ride in response to another ride's changes. If all the other rides had torn themselves down, it might have happened, but they hadn't, had they?

No, they hadn't. A quick check of the logs showed that none of the changes had come from Madison, or San Francisco, or Boston, or Westchester, or any of the other ride-sites.

Either his robots had crashed or someone had hacked the system. He rebooted the system and rolled it back to the state from the night before and watched the robots begin to bring the props back from offstage.

How the h.e.l.l could it have happened? He dumped the logs and began to sift through them. He kept getting interrupted by riders who wanted to know when the ride would come back up, but he didn't know, the robots'

estimates were oscillating wildly between ten minutes and ten hours. He finally broke off to write up a little quarter-page flier about it and printed out a couple hundred of them on some neon yellow paper stock he had lying around, along with a jumbo version that he taped over the price-list.

It wasn't enough. Belligerent riders who'd traveled for hours to see the ride wanted a human explanation, and they pestered him ceaselessly. All the hawkers felt like they deserved more information than the rubes, and they pestered him even more. All he wanted to do was write some regexps that would help him figure out what was wrong so he could fix it.

He wished that Death kid would show up already. He was supposed to be helping out from now on and he seemed like the kind of person who would happily jaw with the marks until the end of time.

Eventually he gave up. He set the sign explaining what had happened (or rather, not explaining, since he didn't f.u.c.king know yet) down in the middle of the counter, bolted it down with a couple of lock-bolts, and retreated to the ride's interior and locked the smoked-gla.s.s doors behind him.

Once he had some peace and quiet, it took only him a few minutes to see where the changes had originated. He verified the info three times, not because he wasn't sure, but because he couldn't tell if this was good news or bad news. He read some blogs and discovered lots of other ride-operators were chasing this down but none of them had figured it out yet.

Grinning hugely, he composed a hasty post and CCed it to a bunch of mailing lists, then went out to find Kettlebelly and Tjan.

He found them in the guesthouse, sitting down to a working breakfast, with Eva and the kids at the end of the table. Tjan's little girl was trying to feed Pascal, but not doing a great job of it; Tjan's son sat on his lap, picking at his clown-face pancakes.

"Morning guys!"

Suzanne narrowed her eyes and looked away. The table fell quiet -- even the kids sensed that something was up. "Who's watching the ride, Lester?" Tjan asked, quietly.

"It's shut," he said cheerfully.

"*Shut*?" Tjan spoke loudly enough that everyone jumped a little. Lyenitchka accidentally stabbed Pascal with the spoon and he started to wail. Suzanne stood up from the table and walked quickly out of the guesthouse, holding on to her phone as a kind of thin pretense of having to take a call. Lester chose to ignore her.

Lester held his hands out placatingly. "It's OK -- it's just down for a couple hours. I had to reset it after what happened last night."

Lester waited.

"All right," Eva said, "I'll bite. What happened last night?"

"Brazil came online!" Lester said. "Like twenty rides opened there. But they got their protocol implementation a little wrong so when I showed up, the whole ride had been zeroed out. I'm sure I can help them get it right; in the meantime I've got the ride resetting itself and I've blackholed their changes temporarily." He grinned sunnily. "How f.u.c.king cool is that? Brazil!"

They smiled weakly back. "I don't think I understand, Lester,"

Kettlewell said. "Brazil? We don't have any agreements with anyone in Brazil."

"We have agreements with everyone in Brazil!" Lester said. "We've got an open protocol and a server that anyone can connect to. That's an agreement, that's all a protocol is."

Kettlewell shook his head. "You're saying that all anyone needed to do to reprogram our ride --"

"-- was to connect to it and send some changes. Trust is a.s.sumed in the system."

"Trust is *a.s.sumed*? You haven't changed this?"

Lester took a step back. "No, I haven't changed it. The whole system is open -- that's the point. We can't just start requiring logins to get on the network. The whole thing would collapse -- it'd be like putting locks on the bathroom and then taking the only key for yourself. We just can't do it."

Kettlewell looked like he was going to explode. Tjan put a hand on his arm. Slowly, Kettlewell sat back down. Tjan took a sip of his coffee.

"Lester, can you walk me through this one more time?"

Lester rocked back and forth a little. They were all watching him now, except for Suzanne, who was fuming somewhere or getting ready to go home to Russia, or something.

"We have a published protocol for describing changes to the ride -- it's built on Git3D's system for marking up and syncing three-d models of objects; it's what we used all through the Kodacell days for collaboration. The way you get a ride online is to sync up with our version-server and then instantiate a copy. Then any changes you make get synced back and we instantiate them. Everyone stays in sync, give or take a couple hours."

"But you had pa.s.swords on the Subversion server for objects, right?"

"Yeah, but we didn't design this one to take pa.s.swords. It's a lot more ad-hoc -- we wanted to be sure that people we didn't know could get in and play."

Kettlewell put his face in his hands and groaned.

Tjan rolled his eyes. "I think what Kettlewell's trying to say is that things have changed since those carefree days -- we're in a spot now where if Disney or someone else who hated us wanted to attack us, this would be a prime way of doing it."