Chapter 12
I got up the next morning before my alarm sounded, lurching out of bed and into the bathroom in a mild panic over all the work I had to do that day. I pulled on a T-shirt that passed the sniff test (barely) and decided I could get away with the same socks I’d had on the day before. I was about to open my throat and tip a bowl of muesli down it when I saw the fat newspaper sitting on the kitchen table where my mom had left it. Thick as a hotel-room Bible: the San Francisco Chronicle, a newspaper that had thumped down on our doorstep every Saturday morning since time began.
Every Saturday morning. I put down my muesli mid-guzzle and flumpfed into a kitchen chair, all the get-out-of-the-house adrenaline leaving my body with an almost audible whoosh.
Five minutes later, I was still sitting there, contemplating the question of what I should do with my weekend. The last time I’d had a real weekend was back in high school, and even then I’d had all that homework. I decided it’d be good to make a big ole weekend brunch, something for Mom and Dad, with proper coffee (not the swill they normally drank) brewed up with my little AeroPress. Then I could have a leisurely shower, tidy up my room, stick a load of laundry in the machine, and meander down to Noisebridge and dust off Secret Project X-1 and see about getting my 3D printer going in time for next year’s Burning Man.
It was the best plan I could have made—for a change. I did crazy-ass 3D pancake sculptures (I cook a mean pancake AT-AT), and the coffee was “brilliant” (a direct quote from my mom). The parents were duly impressed with my room-cleaning, and by the time I shoved Lurch into my backpack and jumped on my bike, I was feeling like maybe I’d found some of that “normal” I’d been missing.
There weren’t too many Noisebridgers around by the time I rolled in at 10:30. I went to my shelf and grabbed down my box-o’-stuff, making puffs of playa dust rise off all the broken crap I’d brought back from Burning Man. I found a free workbench and nodded at the girl with the shaved head who was teaching her little sister how to solder at the next bench over. I got a can of compressed air and some soft cloths and started blowing out the dust and getting ready to wrestle with my printer anew. I slipped into an easy reverie, punctuated by Club-Mate breaks—this being the official drink of hackerspaces around the world, a sweet German soda laced with caffeine and maté tea extract, a jet-fuel–grade stimulant.
When the cleaning was done, I grabbed a multimeter and started testing all the circuits in X-1, starting from the power supply and working my way through the system. Partway through my checks, I thought I found the problem, a spot where it looked like a stepper motor had been mounted backwards, so I grabbed Lurch and went hunting for a diagram to see if I was right, thinking, Jeez, if it turns out that this was all that was wrong, I’m going to feel like a total derp.
Of course, once my laptop was open on the workbench beside me, it was inevitable that I’d have a sneaky peek at my email—looking at my laptop without checking in would be like going to the cupboard and not snagging a cookie.
To:
From: Leaky McLeakerpants
Subject: carrie johnstone d0x
2 use as u see fit
It was signed with a little ASCII-art Guy Fawkes face made out of punctuation marks and letters, and attached to the email was a gigantic ZIP file.
I had a pretty good idea what that was: every single fact and fantasy that could be had about Carrie Johnstone and what she was up to. I’d seen d0xxes that went back to second-grade report cards, ones that included the subjects’ kids’ medical records, everything. Nothing was off limits when you were being d0xxed.
I closed my laptop’s lid and closed my eyes.
A big part of me didn’t want to see the docs in that folder. I had plenty of secret docs in my life already. And I knew what it was like to be totally, absolutely invaded. Carrie Johnstone had done it to me. So had the jerks who’d rooted my laptop. Somewhere in the world, someone might be staring at an email whose subject line was “Marcus Yallow d0x.”
The thing was, I knew I was going to open that ZIP file. Of course I was. Who wouldn’t? Carrie Johnstone was a monster: kidnapper, torturer, murderer. War criminal. Power-tripping mercenary. Scumbag and commander of scumbags. She was hunting me, too. Let’s not forget that. Now that the story was out, wouldn’t Zyz be back? How long until I met Timmy and Knothead again? Would I end up at the bottom of the Bay this time?
I had to open it. It was self-defense. In fact, I’d bet the only reason Carrie Johnstone hadn’t had me whisked away to some private torture chamber was that she assumed that I’d been sneaky enough to gather this kind of dossier and had it ready to dump, on a dead man’s switch, if I got disappeared. People like Carrie Johnstone always assume everyone else thinks like them. Not like people like me. People like me are good people. We deserve to read other peoples’ dirty laundry. Especially bad people.
I was such a coward.
I unpacked the folder and started browsing the docs.
You would have done it, too.
* * *
“Marcus?” a voice said, some eternity later. It was Lemmy, the Noisebridger who’d given me and Ange our ride back from Burning Man. He was in his forties, an old ex-punk with stretched-out ear piercings and blurred tattoos up and down his arms. He was a demon in the machine shop, and was the first person I’d ask any time I had a question about something big, fast-moving, and lethal. I always got the impression that he thought my little electronics projects were cute toys, fun, but not serious like a giant piece of precision-machined metal.
I had the feeling he’d been talking to me for a little while, and that I hadn’t heard him.
“Sorry,” I said. “Engrossing reading, is all.”
He smiled. “Look, I was going to go join the rest down at the big demonstration, bring some UAVs along. Want to come along and be my crew?”
“There’s a big demonstration?”
He laughed. “Come on, buddy, take a break every now and then, will you? You know that big one that happened yesterday? Well, it looks like everyone who went yesterday’s come back again, and they brought all their friends. Downtown’s shut down. I’ve been playing with my quadcopters, think I can get them to produce some killer footage. They’re all rigged to act as WiFi bridges, too, each on a different 4G network, so we should be able to supply some free connectivity to the crowd. I’ve also got a software-defined radio rig in three of them that can triangulate on police and emergency bands. I think I’ve got it set so they’ll home in on any clusters of dense police-radio chatter, which should be pretty interesting. But you know, I’m not really much of a coder, so I thought I could use a pit crew to help me debug the code on the fly during the inaugural flight.”
Lemmy was also a UAV nut, though, again, I think he’d have preferred unmanned autonomous tanks or ATVs, anything with a lot of shiny, heavy metal. I looked at my screen, and my screen looked back at me, with everything I could have ever wanted to know about Carrie Johnstone and a lot more.
I couldn’t stop looking at it, but I didn’t want to keep looking at it.
“Let’s go,” I said, putting my lid down and sticking Lurch in my bag. “You can’t write code for shit, dude.”
“Yeah,” he said, cheerfully. “Code’s just details. I’m a big-picture kind of guy.”
Lemmy wanted to drive—it being hard to carry four miniature quadcopters the couple of miles to the periphery of the demonstration—but we probably could have crawled in less time than it took to beat the frozen traffic leading up to the march. I spent the time getting familiar with Lemmy’s control software, which built on some standard libraries I was already familiar with: systems for steering UAVs and for running software-defined radios, mostly.
Software-defined radio is hot stuff, and it’s kind of snuck up on the world without us noticing much. Old-fashioned radios work with a little quartz crystal, like the one in an electrical watch. Quartz vibrates, buzzing back and forth at a rate that’s dete
rmined at the time that it’s manufactured. You choose a crystal, build a circuit around it, and the radio is done—it can tune in to any signals that are inside the vibrational frequency of the crystal. One radio works for tuning in to GPS satellites, another to CDMA cellular phone signals, another for FM radio, and so on.
But SDR is programmable radio. Instead of a crystal, it uses a fast analog-to-digital converter, a little electronic gizmo that takes any analog signal off a sensor (say, light patterns off an electric eye, or sound patterns off a microphone) and turns it into ones and zeros. You connect the converter to a radio antenna and tell it what band to listen in on, and then you use standard software to make sense of what it receives.
What this means is that the same box can be used to read air-traffic signals, police band, CB radio, analog TV, digital TV, AM radio, FM radio, satellite radio, GPS, baby monitors, eleven flavors of WiFi, and every cellular phone standard ever invented, all at once, provided the converter is fast enough, the antenna is big enough, and the software is smart enough. It’s the radio-wave equivalent of inventing a car that can turn itself into a bicycle, a jumbo jet, a zeppelin, an ocean liner, or a performance motorcycle just by loading different code into its computer. It’s badass.
Lemmy’s UAVs had some off-the-shelf SDRs he’d bought from an open-source hardware company called Adafruit in New York. Adafruit sells electronics that come with full source code and schematics, complete road maps for remaking them to do your bidding. Everyone at Noisebridge loved their SDRs and other gear. And since there were thousands of hackers and tinkerers around the world who worked with the Adafruit SDRs (and all the other versions that Adafruit’s competition made from the same plans), there was a lot of very clean, very well-documented code for talking to them.
I dove into this in the passenger seat, vaguely aware that the car was lurching from stop to start, turning corner after corner, as Lemmy sought out a spot close to the protest.
“What’s the verdict, doc?” he said, as he engaged the parking brake. “Is my code going to live?”
I shrugged. “Looks about right to me. Am I right in thinking you’ve just pasted in the code examples from the tutorials with a couple of lines tying each module in with the last?”
He grinned. “Yup. I treat writing code like making a cake from a cake mix: pour it into a bowl, add an egg and a cup of water, stir, and throw it in the oven. It’s not always pretty, but it’s always a cake.”
“Well, let’s see if we’ve got a cake, then.”
I got out of the car, a tricky feat since we were parked on the upslope of a steep hill. I didn’t immediately recognize the neighborhood, but when I did, I was surprised. “Are we on the other side of Nob Hill?”
“Yup. It’s the closest I could get to the protest. That thing is huge.”
“But we must be, I don’t know, a mile away?”
“Oh, less than that. Plus the protest is getting bigger, from what I can tell. It might reach here before the day’s out. Something’s happening. People are pissed. I’ve been living here since the eighties and I’ve never seen anything on this scale.”
He dug around in the trunk and pulled out his quadcopters. Each one was an X of light, flexible plastic, with helicopter rotors at the end of each leg of the X. A round pod in the middle carried the battery and the electronics, radios, and control systems. Without the battery, each one weighed less than a pound, but the batteries doubled their weight. He handed me two of them, and I held one in each hand, awkwardly fitting my fingers around the sensors and antennae in the center disc, trying not to bend anything or smudge any of the lens covers.
Then he handed me one more, being much rougher with it than I’d dared to be (but then, it was his quadcopter to break, not mine). I stuck it awkwardly under one arm. He perched the remaining one on his hand and thumbed at his phone with his other hand. The four rotors spun up with a dragonfly whirring, the quadcopter wobbled twice on his palm, then lifted off straight into the sky in a vertical takeoff that was so fast it seemed like the quadcopter had simply vanished like a special effect.
He took back the extra copter from me and showed me his phone, which was showing the view from the copter’s lower camera, a receding landscape with the tops of our heads in the middle of it, shrinking to two little dots as the copter clawed at the air and pulled itself into the sky.
“Well, that works,” he said. “Thought it’d be useful to have a little overview as we got close. Here, I’m going to webcast the feed.” He thumbed some more buttons.
“Nice,” I said. This was exactly what I loved about technology: when it just worked and turned individuals into forces of nature. We’d just put an eye in the sky that anyone could tune in to. “What’s the link?”
“It automatically tweets the URL from my account when I start it up. Do you follow me?”
“Yeah,” I said. I got out my phone and punched up the Twitter client, found the tweet with the link, and retweeted it, tapping in, “Heading to the #sanfrancisco #occupy #protest. Bringing quadcopters. Aerial video here.”
We walked laboriously uphill to the top of Nob Hill, the copter hovering a hundred feet above us, high enough to be clear of any overhead wires or trees. From Lemmy’s phone screen, we could see the hairy edges of the protest, where people were still arriving. Farther in, it looked almost like static, all these little dots—peoples’ heads—moving in tiny, quick blips, packed as densely as oranges in an orange crate.
“Holy crap,” I breathed, as the copter rose higher, revealing the size of the crowd, which spread from Fell Street to Market Street, spilling out over the side streets, filling them back for blocks and blocks.
“Day-umn,” Lemmy agreed. “Want to buzz ’em?”
“Can you do that from here?”
“Yeah,” he said. “It’ll take the copter out of direct radio range, but we’ll still get its feed off the net. And we can check out the software, see if it really works.” I watched as he tapped out a flight pattern on his phone, tracing a zigzag over the crowd with his fingertip. Then he pressed GO. Over our heads, the copter zipped off toward the crowd, keeping its altitude for most of the journey, then gently descending to a mere five yards off the ground.
At this height, I could make out individual faces in the crowd, read the slogans on the signs. Then the flight path kicked in and the point of view swerved nauseously, tracing that zigzag with mathematical precision, sometimes shuddering as the copter got caught in a gust of wind. We stopped walking and just watched the feed for a while. I shouted “Look out!” at the phone’s screen when the copter nearly collided with another UAV, this one covered in markings from MSNBC. Either it had some kind of automatic avoidance routine built into it, or there was a fast-fingered human operator nearby, because it banked hard and barely missed the midair collision.
“Uh, Lemmy, what happens if that thing crashes? I mean, I don’t want to turn someone into hamburger.”
“Well, yeah, me neither. In theory, any two rotors can give it enough lift to slow its descent, and it makes a lot of noise if it goes in for an emergency landing, which should help people get out of the way.”
“Unless it’s so noisy that they don’t hear it.”
“Yeah. Well, that’s life in the big city.”
I wasn’t sure I agreed. Crashing the quadcopter into someone’s head would really, really suck. On the other hand, the knowledge that this might happen certainly gave watching the footage an air of extreme danger, which made it that much more compelling. As if it wasn’t compelling enough, watching the video of all those faces, thousands and thousands of them, ripping past at speed.
“Let’s get down there,” he said, and I agreed.
* * *
The demonstration was even louder than the one the day before, a roar like a PA stack that I could hear from two blocks away, over the honking horns of the cars trying to find their way around it. The sidewalk was too jammed with people to walk, so we joined the hundreds who were threading their
way through the stuck cars, dodging the bikes and motorcycles that were doing the same. Soon we could barely move, and I realized we were now in the demonstration, even though there were stuck cars all around us. I looked in one, saw a harried-looking woman with two little kids in the backseat who were losing their minds, one hitting the other with a toy car, both of them screaming like banshees, silent gaping mouths through the closed windows.
I locked eyes with the driver, who was looking resigned and frazzled. I wondered about all the other people who were stuck around me, wanting to get home and feed the kids or get to work and not get docked for being late or wanting to get to the hospital or the airport. I entertained a brief fantasy of directing traffic, helping all those people get unstuck and turn around and head away from the protest, get moving again, but there was no way I could do that. (Later, I read reports of other people doing just that, and of the crowds making way to help this happen, and I felt both proud of my fellow human beings and ashamed of not having the guts to try it myself at the time.)
Now we couldn’t move without a lot of “excuse me”s shouted into the ears of people who were shouting the same thing into the ears of the people ahead of them.
“This is insane,” I said.
“Pretty amazing,” Lemmy said, and smiled hugely.
Suddenly, it felt like the world was flipping upside down. It was amazing. Hundreds of thousands—millions?—of my neighbors and friends had taken over the city of San Francisco because they were pissed off about the same things I was pissed off about. They’d come and put their lives and liberty on the line because, well, because stuff was messed up. It wasn’t just the darknet docs, it wasn’t just the lobbying to make the deal over student loans even worse, it wasn’t just the foreclosed houses and all the jobs that had vanished. It wasn’t just the planetary devastation and global warming, it wasn’t just the foreign dictators we’d propped up or the private prison industry we supported at home. It was all of it. It was the fact that there was all this terrible stuff and no one seemed to be able to do anything about it. Not our political leaders. Not our police. Not our army. Not our businesses. In fact, a lot of the time, it seemed like politicians, police, soldiers, and businesses were the ones doing the stuff we wanted to put a stop to, and they said things like “We don’t like it either, but it has to be done, right?”