Makers
Page 36
“I don’t think you’re supposed to be doing this on your own,” Hilda said, as he sawed awkwardly at it with the utility knife. It was made of something a lot tougher than the fiberglass one he’d had when he broke his leg falling off the roof as a kid (he’d been up there scouting out glider possibilities).
“So you do it,” he said, handing her the knife. He couldn’t stand the smell for one second longer.
“Uh-uh, not me, pal. No way that thing is supposed to come off anytime soon. If you’re going to cripple yourself, you’re going to have to do it on your own.”
He made a rude sound. “Fuck hospitals, fuck doctors, and fuck this fucking cast. My arm barely hurts these days. We can splint it once I get this off, that’ll immobilize it. They told me I’d need this for six weeks. I can’t wear this for six weeks. I’ll go nuts.”
“You’ll go lame if you take it off. Your poor mother, you must have driven her nuts.”
He slipped and cut himself and winced, but tried not to let her know, because that’s exactly what she’d predicted would happen. After a couple days together, she’d become an expert at predicting exactly which of his escapades would end in disaster. It was a little spooky.
Blood oozed out from under the cast and slicked his hand.
“Right, off to the hospital. I told you you’d get this thing wet if you got in the shower. I told you that it would stink and rot and itch if you did. I told you to let me give you a sponge bath.”
“I’m not insured.”
“We’ll go to the free clinic.”
Defeated, he let her lead him to her car.
She helped him buckle in, wrinkling her nose. “What’s wrong, baby?” she said, looking at his face. “What are you moping about?”
“It’s just the cast,” he said, looking away.
She grabbed him by the chin and turned him to face her. “Look, don’t do that. Do not do that. If something’s bothering you, we’re going to talk about it. I didn’t sign up to fall in love with the strong silent type. You’ve been sulking all day, now what’s it about?”
He smiled in spite of himself. “All right, I give in. I miss home. They’re all in the middle of it, running the ride and stuff, and I’m here.” He felt a moment’s worry that she’d be offended. “Not that I don’t love being here with you, but I’m feeling guilty—”
“OK, I get it. Of course you feel guilty. It’s your project, it’s in trouble, and you’re not taking care of it. Christ, Perry, is that all? I would have been disappointed if this wasn’t worrying you. Let’s go to Florida then.”
“What?”
She kissed the tip of his nose. “Take me to Florida, let’s meet your friends.”
“But…” Were they moving in together or something? He was totally smitten with this girl, but that was fast. Even for Perry. “Don’t you need to be here?”
“They can live without me. It’s not like I’m proposing to move in with you. I’ll come back here after a while. But I’m only doing two classes this term and they’re both offered by distance-ed. Let’s just go.”
“When?”
“After the hospital. You need a new cast, stinkmeister. Roll down your window a little, OK? Whew!”
The doctors warned him to let the new cast set overnight before subjecting it to the rigors of a TSA examination, so they spent one more night at Hilda’s place. Perry spent it going over the mailing list traffic and blog posts, confirming the plane tickets, ordering a car to meet them at the Miami airport. He finally managed to collapse into bed at 3AM, and Hilda grabbed him, dragged him to her, and spooned him tightly.
“Don’t worry, baby. Your friends and I will get along great.”
He hadn’t realized that he’d been worrying about this, but once she pointed it out, it was obvious. “You’re not worried?”
She ran her hands over his furry chest and tummy. “No, of course not. Your friends will love me or I’ll have them killed. More to the point, they’ll love me because you love me and I love you and they love you, too.”
“What does Ernie think of me?” he said, thinking of her brother for the first time since they’d hooked up all those months ago.
“Oh, hum,” she said. He stiffened. “No, it’s OK,” she said, rubbing his tummy some more. It tickled. “He’s glad I’m with someone I care about, and he loves the ride. He’s just, you know. Protective of his big sister.”
“What’s he worried about?”
“Just what you’d expect. We live thousands of miles apart. You’re ten years older than me. You’ve been getting into the kind of trouble that attracts armed cops. Wouldn’t you be protective if you were my bro?”
“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 chec
k 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 hell 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 fucking 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-glass 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 fucking 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 assumed in the system.”
“Trust is assumed? 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-dee 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 passwords on the Subversion server for objects, right?”
“Yeah, but we didn’t design this one to take passwords. 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.”
Lester nodded. “Yeah, I figured that. Openness always costs something. But we get a lot of benefits out of openness too. The way it works now is that no one ride can change more than five percent of the status quo within 24 hours without a manual approval. The problem was that the Brazilians opened, like, fifty rides at the same time, and each of them zeroed out and tried to sync that and between them they did way more than 100 percent. It’d be pretty easy to set things up so that no more than five percent can be changed, period, within a 24-hour period, without manual approval.”
“If you can do that, why not set every change to require approval?” Kettlewell said.
“Well, for starters because we’d end up spending all our time clicking OK for five-centimeter adjustments to prop-positioning. But more importantly, it’s because the system is all about community—we’re not in charge, we’re just part of the network.”
Kettlewell made a sour face and muttered something. Tjan patted his arm again. “You guys are in charge, as much as you’d like not to be. You’re the ones facing the legal hassles, you’re the ones who invented it.”
“We didn’t, really,” Lester said. “This was a real standing on the shoulders of giants project. We made use of a bunch of stuff that was on the shelf already, put it together, and then other people helped us refine it and get it working well. We’re just part of the group, like I keep saying.” He had a thought. “Besides, if we were in charge, Brazil wouldn’t have been able to zero us out.
“You guys are being really weird and suit-y about this, you know? I’ve fixed the problem: no one can take us down like this again. It just won’t happen. I’ve put the fix on the version-server for the codebase, so everyone else can deploy it if they want to. The problem’s solved. We’ll be shut for an hour or two, but who cares? You’re missing the big picture: Brazil opened fifty rides yesterday! I mean, it sucks that we didn’t notice until it screwed us up, but Brazil’s got it all online. Who’s next? China? India?”
“Russia?” Kettlewell said, looking at the door that Suzanne had left by. He was clearly trying to needle Lester.
Lester ignored him. “I’d love to go to Brazil and check out how they’ve done it. I speak a little Portuguese even—enough to say, ’Are y
ou 18 yet?’ anyway.”
“You’re weird,” Lyenitchka said. Ada giggled and said, “Weird!”
Eva shook her head. “The kids have got a point,” she said. “You people are all a little weird. Why are you fighting? Tjan, Landon, you came here to manage the business side of things, and that’s what you’re doing. Lester, you’re in charge of the creative and technical stuff and that’s what you’re doing. Without Lester, you two wouldn’t have any business to run. Without these guys, you’d be in jail or something by now. Make peace, because you’re on the same side. I’ve got enough children to look after here.”
Kettlewell snapped a nod at her. “Right as ever, darling. OK, I apologize, all right?”
“Me too,” Lester said. “I was kidding about going to Brazil—at least while Perry’s still away.”
“He’s coming home,” Tjan said. “He called me this morning. He’s bringing the girl, too.”
“Yoko!” Lester said, and grinned. “OK, someone should get online and find out how all the other rides are coping with this. I’m sure they’re going nutso out there.”
“You do that,” Kettlewell said. “We’ve got another call with the lawyers in ten minutes.”
“How’s all that going?”
“Let me put it this way,” Kettlewell said, and for a second he was back in his glory days, slick and formidable, a shark. “I liquidated my shares in Disney this morning. They’re down fifty points since the NYSE opened. You wait until Tokyo wakes up, they’re going to bail and bail and bail.”
Lester smiled back. “OK, well that’s good, then.”
He hunkered down with a laptop and got his homebrew wireless rig up and running—a card would have been cheaper, but his rig gave him lots of robustness against malicious interference, multi-path and plain old attenuation—and got his headline reader running.
He set to reading the posts and dispelling the popups that tried to call his attention to this or that. His filters had lots to tell him about, and the areas of his screen designated for different interests were starting to pinken as they accumulated greater urgency.
He waved them away and concentrated on getting through to all the ride-maintainers who had questions about his patches. But there was one pink area that wouldn’t go. It was his serendipity zone, where things that didn’t match his filters but had lots of interestingness—comments and reposts from people he paid attention to—and some confluence with his keywords turned up.