Active Memory
Anja smiled wickedly and pulled out a rabbit.
“That’s a rabbit,” said Sahara dryly.
“Yes it is,” said Anja. “Ten points to Gryffindor.” She set it on the table. “Come on! We’re in a virtual space: I can make the data look like whatever I want, and obviously I’m not going to waste my time programming a detailed virtual image of a piece of paper.” She pointed at the animal’s back. “Look: it’s written in the spots on his fur.”
“It’s adorable!” said Jaya.
“It’s an ID tag,” said Sahara, reading the pattern in the fur. “A rabbit’s not the way I would have presented the ID of a chop shop gangster, but: okay. We’ve got it. Now we just have to find . . .” She read the name: “Braydon Garrett.”
Jaya looked more closely at the numbers in the ID tag. “This isn’t a Johara ID, so I can’t just look it up in our database.”
“So we have to hack another service provider?” asked Fang. “That’s going to take months.”
“Weeks, if we do it right,” said Anja, “but yeah. Sorry. I was hoping maybe the bunny rabbit would soften the disappointment.”
“We don’t need to hack a provider,” said Marisa, staring closely at the code. She looked up with a sly smile. “Who else keeps track of location data? Even more closely than the service providers?”
Fang laughed. “Tā mā de, you’re right! Advertisers.”
“You can’t walk five feet in this city without getting your ID scanned by a storefront or a billboard,” said Marisa. “Service providers have airtight security, but some mom-and-pop taco truck is barely going to have any security at all.”
“One taco truck won’t give us everything,” said Sahara. “We need the central server. Most of these little shops sell their customer data to advertising co-ops: you visit a storefront, it logs you, and then every other storefront in the area knows you’re nearby. We need that co-op.”
“We use one of those at the restaurant,” said Marisa.
“Shopping preferences aren’t going to help us find him,” said Jaya.
“The location data will,” said Fang. “If enough of the places he visits use the same central adware server, all those logged visits will draw us a map of where he’s been in the city.”
Sahara smiled. “Spend enough time with that kind of data and we can probably pinpoint his house, let alone what neighborhood he lives in.” She gestured at the massive wall display. “Mari, mirror your djinni to the main screen, and pull up a map.”
“Wait,” said Jaya. “Tell me first what our plan is: we track down this chop shop guy and . . . then what? Turn him over to the police?”
“Turn him over to La Sesenta,” said Anja. “He still gets executed, but he suffers more first.”
“I don’t want to hurt anyone,” said Marisa.
“We’re just trying to find Zenaida,” said Sahara, and looked pointedly at Fang. “Who is not a ghost, and thus might still be alive. Braydon might know where she is—at the very least he’ll know where her hand came from.”
“You’re not going to talk to him,” said Jaya. “It’s too dangerous.”
“Not in person,” said Anja. “But we could spy on him. Get one of the nulis close enough while he’s talking to the rest of the chop shop, and we could learn all kinds of things.”
Marisa blinked, linking her Overworld program to an outside internet line, and then linked that to the wall display. A map of Los Angeles appeared; the city was massive, larger than some of the smaller US states, and covered almost edge to edge in streets and buildings. She whistled. “That’s a lot of space to cover.”
“We can narrow it down pretty quickly,” said Fang. “We already know the exact address of the shootout where they found the hand.”
“We’ll start there,” said Marisa, and fed the address into the map program. Instantly a street corner appeared, including an overhead view, a street view, and an option for a live camera feed. Marisa blinked on the option to show nearby stores, and suddenly the map was covered with little colored dots, like a digital garden blooming in a single second.
“Holy crap,” said Anja, “this neighborhood has a Yorma’s.”
“What’s a Yorma’s?” asked Jaya.
“Delicious,” said Anja. “I thought they were only in Europe.”
“Does Yorma’s do a customer loyalty program?” asked Marisa, blinking on the name. It looked like some kind of fast food bratwurst place.
“Deliciousness is the only customer loyalty program they need,” said Anja. “Let’s go right now.”
“We need a digital list,” said Marisa. “If we get lucky, some of these places we won’t even have to hack, they’ll just display—ha! There’s one.” She blinked on another orange dot, and the map zoomed over to a coffee shop called the Crowe’s Nest. “Crowe’s always keeps a list, like a leaderboard in a video game, to show who’s bought the most coffee at each location. We’ll just check Braydon Garrett’s ID against it, and . . . eso.” The name popped up on the screen, highlighted in the middle of the coffee list. “Braydon Garrett is the 2,137th most frequent customer at that location. So he doesn’t spend a ton of time there—it’s not his neighborhood coffee shop—but he is there occasionally.”
“Crowe’s is too big a chain,” said Sahara. “They’ll have corporate security, and they’ll sell to a big ad company with probably pretty good security of their own. We want the weak link—what’s nearby and looks super crappy?”
“The noodle store next door,” said Fang. “It’s called Noodle Bam, followed by the Chinese characters for horse, depression, and soap. There’s no way that’s owned by a big company.”
“Never underestimate stupidity,” said Sahara.
“They’re right next door, though,” said Marisa, “and any ID that goes to the one will be close enough to get read by the other. Garrett’s definitely on both, so we just need to find out which ad company Noodle Bam sells their data to.” She connected to the Noodle Bam computer and blinked through the menu, looking at the layout. “This is a prefab website, which means it came with a built-in password. If they didn’t change their factory settings, we should be able to log in to the admin section and find everything we need.” She studied the layout more closely, trying to guess which prefab company had made it. “Probably . . . Merchazoid?”
“CoinPress,” said Sahara. “I used to use them for my vidcast, and I recognize the menu.”
“I’m already on Lemnisca.te,” said Jaya. “They’ve got a whole subthread about CoinPress, including a list of preset passwords. Ready?”
“Ready,” said Marisa. Jaya read her the passwords one by one, but none of them worked. “Crap.”
“I hate it when people protect their technology wisely,” said Fang.
“Hold up,” said Sahara, and pointed at the screen. “There’s an ad on the sidebar of their menu.”
“Santa vaca,” said Marisa. “Why didn’t we just blink on the ad?” She blinked on it now, and it routed her through a series of rapid connections before arriving at an online T-shirt vendor. She traced the path and found the name of the ad company. “Vesch Networks,” she said. “Let’s see how hard they are to break into.”
“Slow down,” said Anja. “Maybe I want to buy a T-shirt?”
Sahara sighed. “Anja . . .”
“Just kidding,” said Anja, and blinked on something on her djinni. “Really I’m just going to buy some ad data.”
“That sounds expensive,” said Marisa.
“It’s my dad’s money,” said Anja, “and he’s rich, so what do we care? Looks like ¥90. That’s, like, a prom dress.”
“Yeah,” said Marisa, “and prom dresses are expensive.”
“Done,” said Anja. She took control of the wall screen, and filled it with a rolling cascade of names and columns. She blinked again to search, and soon they had Braydon Garrett’s entire life arrayed before them: every store he’d visited, every website he’d bought from, and every ad he’d blinked on. Eve
ry day for more than a year.
“Wow,” said Fang. “Now I get why Bao doesn’t have one of these.”
“And why La Sesenta are having theirs removed,” said Jaya.
“I’m kind of creeped out,” said Marisa.
“Privacy is a myth,” said Sahara. “I live stream my entire life because anyone who wants to can find all of this stuff no matter what I do to stop them. You go outside, people see you with their eyes; you go online, people see you with this stuff—ID readers, location data, ad blinks. You can’t just never go anywhere, so this is the life we accept.”
“Now I’m creeped out and depressed,” said Marisa.
“Look for patterns,” said Sahara. “The same store popping up over and over, or a specific store that he walks past every day at the same time—that kind of thing.”
“And start with big blocks of time,” said Jaya. “Maybe a restaurant or a train car or—”
“Or a dance club,” said Marisa, pointing at an item on the list. “Three hours last Saturday night.” She blinked through the list, scrolling to the previous week. “And three and a half hours the Saturday before.” She kept scrolling, looking at every Saturday in turn. She grinned. “Foxtrot City, in a neighborhood called Athens. Same place, same time, every single week.”
“Dude likes to dance,” said Anja.
“Or it’s a convenient meeting place,” said Sahara. “Maybe he lives nearby, or his boss does. And a dance club is the perfect place to spy on them, because we’ll blend right into the background.”
Marisa touched her left arm. It wasn’t metal in this VR simulation, but the dance club was in real life. Detective Hendel had said that the chop shops targeted prosthetics—would they target her? Her family had saved for years to buy that arm; it cost thousands of dollars, and Marisa was suddenly, terrifyingly conscious of how many people might want to steal it, and how easy it would be to do so. She would never walk around with thousands of yuan in her purse or her pocket, and yet here she was, with a lump of tempting, resellable treasure hanging off her shoulder, ready for the taking for anyone with a machete and a dark alley. A shady dance club full of chop shop goons was the last place she wanted to go right now.
We can find Zenaida, she told herself. We can end my dad’s stupid feud. I can do this.
“Tomorrow’s Saturday,” she said out loud. “If the pattern holds, they’ll be there.”
“These are the times I’m glad I live on another continent,” said Fang. “I hate clubbing.”
Anja stroked the rabbit’s fur and sighed happily. “I friggin’ love it.”
Foxtrot City was a large club, built into what looked like used to be a rec center. The walls outside were covered with digital screens with old-timey dancers in tuxedos and flapper dresses, projected in glacial black and white; inside it was a riot of color that looked more or less like every other dance club Marisa had ever been to. She felt fairly confident that no one had ever done the foxtrot in that building at any point in its history.
“Fan out,” said Sahara as the bouncer at the door let them in. She was dressed more simply than the other night—they’d barely been able to run when the chase broke out with the mysterious intruder, and they weren’t making the same mistake again. Sahara was wearing a yellow minidress with a black collar and no shoulders; pretty standard club clothes, except for her black flats. If they had to run, she was ready. “Get a sense of where everything is, where the doors are and the restrooms, and any private rooms Braydon Garrett might be meeting in. Don’t actually look for him, though—let the nulis do that. If we’re lucky they can do all the eavesdropping, too. The farther we stay from these chop shop psychos, the better.”
“Check,” said Anja. In contrast to Sahara’s elegance, Anja was wearing a pair of shredded black vinyl pants that showed more skin than vinyl, incongruously matched with a lacy cream-colored top and her long blond hair—half shaved off—dyed a deep, rich purple. The other half of her head was bald, right down to the eyebrow, leaving Anja’s cybernetic eye to draw even more attention than usual.
Marisa merely nodded and rubbed her arm nervously. She’d always been self-conscious about her missing arm, especially back when she’d had a cheap, clunky SuperYu prosthetic. The new Jeon one had helped her feel confident again, even beautiful, but now it just made her feel vulnerable. She wasn’t even wearing a dress, just black jeans, a black T-shirt, and a black leather jacket. Just like the green dress, the jacket had the left sleeve removed—she’d modified all of her clothing to show the arm off, and now cursed herself silently for it. She looked around for other cybernetic limbs in the club, and spotted a couple. So she stood out, but not much. She told herself it was fine, but put her hand in her jacket pocket and gripped her lipstick-sized pepper spray tightly.
Anja winked at her, mouthing “You’ve got this” before raising her hands in the air and diving into the crowded dance floor with a whoop, bobbing her head—her entire body—to the driving beat of the music. It was a Nigerian reggaeton band that Marisa knew she’d heard before, but she was too distracted to focus on it. Anja disappeared into the throbbing mass of dancers, and Marisa was alone. She skirted the edge of the dance floor and looked for somewhere to sit.
Sahara’s camera nulis, Cameron and Camilla, had been programmed with a variation of Sandro’s nuli algorithm from the science fair: instead of seeking out sick trees, they were nonchalantly skimming the crowd and scanning for Garrett’s ID. When one of the nulis found him—which might take a while, as their scanning range was relatively limited—it was programmed to alert the girls and move on. If the girls could find a nice hiding spot nearby, they’d send one of the nulis back in, with its microphone primed to listen in on whatever Garrett was saying. If they couldn’t, and there was no way to get the nuli close enough without being seen, then the girls had to move in themselves, sitting nearby or even—as a last-ditch effort—trying to turn on the charm and join the group.
Marisa desperately hoped that the nulis could do it by themselves. A part of her was even wishing that the nulis wouldn’t find Garrett at all.
Not a bad club, sent Sahara.
I prefer clubs less full of murderers, Marisa sent back.
There’s probably ten murderers here at most, sent Sahara. And now that I’m thinking about it, that’s probably true of most clubs we go to.
You’re not helping.
Get a drink, sent Sahara. Something with way too much sugar and caffeine—it’ll pep you right up.
Marisa found a row of couches and low tables, and sat carefully near the edge of one: out of the high-traffic zones, but with plenty of escape routes if somebody tried to bother her. Chop shops were only one of the dangers in a club like this. The table included a touch screen menu, and she ordered a Lift; a waiter nuli brought it almost instantly, and she nodded at the service. Usually they weren’t this fast. She looked around and nodded again, realizing that there were far more nulis than normal buzzing back and forth overhead. That was good; it would help keep Cameron and Camilla inconspicuous.
A movement caught her eye, somehow, in a room full of flashing lights and jumping dancers. She stared hard into that corner of the club and saw it again: something small and sinuous, completely out of sync with the rest of the party. It was another ZooMorrow chimera, a miniature lion no larger than a young house cat, prowling anxiously back and forth across a flat stretch of table. Its fur shone gold in the light, and its wide, bushy mane seemed to sparkle. The humans beside it, probably its owners, weren’t paying any particular attention to it; a narrow leash ran down to its neck, and with that to keep it from straying, the breathtaking miracle of science and nature was allowed to wander freely, unheeded by the people who must have spent thousands of yuan to get it.
Marisa stood up, curious, but before she could move any closer, a text message appeared from Camilla:
Found him.
Hot damn, sent Anja.
Marisa blinked on the map icon at the end of the nuli’s mess
age, and it showed her a basic floorplan of the club, with Garrett’s position marked in red. Not as sophisticated as an Overworld mini-map, but not too shabby, either. She blinked again, and the map was replaced by a soft blue arrow through the crowd. It pointed to the opposite side of the room, far away from the bonsai lion.
Camilla’s filming me now, sent Sahara, and I’ve got Cameron moving in to take a look at the chop shop. Keeping one camera “innocent,” separate from their intrigue, helped keep Sahara’s vidcast going; it continued the pretense that they were just here for a fun night out. Sahara paused a moment, then sent another message: It’s going to be tough getting close.
Marisa blinked into Cameron’s video feed, and grabbed a nearby pillar as a wave of vertigo swept over her. The nuli was flying over the crowd, high up where it wouldn’t be noticed, with its camera pointed straight down. A group of men, mostly middle-aged, sat around a table by the wall, deep in conversation.
No good place to hide a nuli, sent Sahara.
And no arm candy, sent Anja. These boys are all business.
All the more reason we have to hear what they’re saying, said Marisa.
The nuli passed over, and they lost their view. Marisa grabbed the pillar again as the room suddenly reoriented itself—the nuli camera had swiveled ninety degrees up, so that down was now sideways. I’m taking another pass to look at the wall and ceiling, said Sahara. If there’s a place Cameron can grab on to, I might be able to boost the gain on the microphone and hear what they’re saying.
How good is your directional mic? asked Anja.
Not great.
Then boosting the gain isn’t going to help you, sent Anja. You’ll just make the background noise louder. We need to get close.
Don’t, sent Sahara, but Anja’s only response was an animated picture of kissing lips. Arg, sent Sahara.
Cameron’s second pass turned up nothing—just like Sahara had thought at first, there was no good place to park the nuli.