Authors: Stephen Graham Jones
A camera.
Just that.
It wasn’t supposed to kill us.
~
What our app would have going for it was what RJ called the ‘chill factor.’ It was what he’d wanted to call the thing, even—nobody else was using it for an app yet—but I talked him down from that particular ledge, pulled us back to the realm of the sane: ‘No Takebacks.’ Even though takebacks was pretty much exactly what our app was about.
RJ’s complaint about wishing we’d seen my dad’s Corvette lecture coming? We were marrying that to a handheld device, then, if everything panned out, amping it up into a portable haunted house.
The idea was that, when you had that feeling somebody was behind you, just kind of lurking, waiting—Simms in Marketing taught us this last year: find something everybody alive shares, then winnow that down to a product they can buy—when you had that feeling, you could just ‘check your messages’ or whatever (this is you, calling the app up) then lower your hand back down, the phone still palmed there, and snap a pic of the world directly behind you.
Which you could already do, sure—the problem with global anxieties is that there’s usually a global fix already in place—especially if you had the know-how to re-assign your shutter to a mechanical button. But, as we tested and found, it took some pretty serious skill and no small amount of dumb luck to keep that camera straight up and down. Pushing that mech button, it turned out it wasn’t just your finger muscles that got involved. Your whole hand tensed up, whether you told it to or not, and right at the wrong moment: when you were pushing the button.
If you hack into the image stabilization routines and crank them up, they can scrub most of that motion out, yeah. But that just leaves you with a fairly clear shot of whatever you’ve got in the frame. Which is to say that, when you’re not looking, your aim tends to be off. Big surprise, I know. It turned out we were real good at snapping pics of the floor or the ceiling or our own asses, but hardly ever got what was behind us lined up properly.
Our revolutionary solution, then, was to hook a line or two of code between the phone’s gyroscope and the camera’s shutter, so that the image would only capture when the phone was straight up and down, perfectly vertical, giving it a straight look back.
As for lateral, though, the side-to-side—well, the app was going to be free, right? The only thing that could correct for that would be . . . a Bluetooth tie-in with a near-eye device strung up like a periscope? some infrared sensor to square the phone with the room? a fisheye lens? We could fake the fish-eye trick anyway, just stretch the image, let it distort out, but that wouldn’t change the original field of view, would just suggest it had been wider than it was, and the market was already spilling over with this kind of sleight-of-hand tomfoolery.
Finally we just stole another of RJ’s dad’s garage beers, smuggled it to the bushes, toasted Cedric (the dead, headstoned dog), and started in with the field trials.
The app worked perfectly. Better than we could have dreamed. A thousand people should have thought of this already.
We took turns trying to sneak up on each other, caught ourselves on film each time, without having to look back. And it was good we ran the tests, too, or we never would have figured out to make the flash optional, and, in case there were some legacy phones out there not playing the game (ours did), we fiddled with the autorotate, to keep the image from getting flipped, because, when you’re trying to catch some slender dude ghosting up behind you, you don’t need to be worried about if you’re phone’s upside down or not.
The lateral still sucked, of course, but what we’d lucked into there was that, when the washed-out, black-and-whited image of us playing backdoor ninja was only
half
in the image, it was approximately eighty-
five
times creepier.
Score one for the good guys.
So we went back to the drawing board (RJ’s basement room, the door locked), put a fat-fingered toggle on the flash, dialed up the contrast some, and then spent the rest of our last before-school weekend trancing on how to layer in random pics from the phone’s gallery, the same way those ‘zombie yourself’ apps stenciled gore over your face.
The difference there, though, was that those apps were more participatory, always asked you to position your face in the dotted green lines, please, and, even with that kind of help, still, the final image kind of sucked.
The other problem was the random pics being sucked from the phone’s gallery. What if, instead of a snap of your mom cooking hamburgers—we’d just copy her outline over, fill the rest with textured shadow—what if what the app sucked across to pretend was sneaking up behind you, what if it was a pretty sunset, an idyllic windmill?
So we killed hours and many many braincells coming up with just five stock images to bundle in with the app: a girl crawling on the ‘wall,’ a guy just standing there, a hand starting to reach around some corner, a pair of floating eye smudges, and a simple wisp of smoke you could take to be whatever you wanted, or didn’t want. And we figured how to fade them into these ‘takeback’ shots like they’d been there all along. It was spooky as hell.
Except.
One thing you learn, coding, is that there’s always an ‘except.’
It was RJ who stumbled onto it: when you download those stupid rotating wallpaper apps or one of those ‘innocent maze with a jack-in-the-box zombie’ numbers, there’s always that download lag, where the server’s sneaking those hidden images across. It wasn’t so much that we were worried about people watching the progress bar, keeping a close eye on the running printout right above it—we
would
, but that was us—it was that, sneaking stuff into somebody’s memory like that, caching it they-don’t-know where, that was a porn move. And even if it was just a machine reviewing our app, not a real person, still, that kind of underhandedness, even if it was all in good fun: we were going to get filtered.
Never mind that, after our app cycled through all five
sneak_up
images, the joke’s tired, the app deleted, only rated on how it ended, not how it was.
We stole another beer, considered things.
No, a windmill wasn’t scary, even if it was three foot high and sneaking up behind you in the hall.
No, it wasn’t scary to see that same girl crawling along the side of the hall.
What we finally settled on, though it was going to slow the process down, was upping the array of stock images from five to a cool hundred, and rigging the recursion such that it would iterate through however many images we made available, really. We were in it for the long haul, after all, and RJ was a serious whiz with fake randomnocity, and me, my job was to strip each of these images down to the bare bones. My goal was to get each down to about five kilobytes, but the wall I ran into was, of course, pixelation, which, unless you’re somehow in the game, isn’t all that scary. So what I finally lucked onto was letting the images swell back up to a whole fifteen kilobytes—they were all greyscale, had some definite blur built-in—but
then
just scaling them down to micro. Bam: seven kilobytes per, about. We had to dial the smoothing up a bit to compensate, but all in all, it was working.
All that was left was to push these little
sneak_up
images into some buried directory online, .htaccess it for all time (though ‘Lindsay’ could probably break in . . .), and we were on to the second round of trials.
The app was light, it didn’t glitch, it had a hooky name, some promised fun, and we’d left some space at the bottom of each image for all the banners that were going to run.
“So?” RJ said, standing up from his bed.
“It’s Sunday night,” I told him.
Our eyes were bloodshot, our fingertips raw, our pores were exhaling cheese puffs—another weekend gone, lost forever between two curly brackets no one would ever properly appreciate.
But it had been worth it, too.
Screw college, right?
RJ walked me across his driveway, my dad’s security light popping on as soon as we stepped up onto the concrete.
The app was on both our phones, of course, and our laptops too.
“Don’t take any pictures I wouldn’t,” RJ said, stopping at the free-throw line to sail an imaginary one in, and I saluted him, spun slow and fake-drunk on my heels—just another sailor, looking for my gangplank home—and leaned into whatever my dad had waiting for me after not checking in all weekend again.
Tomorrow was the first day of senior year, though.
There was nothing he could do to me that would matter.
2.
By Wednesday, RJ was a ghost.
Not literally (not yet), but that was kind of just his place in the cafeteria, in the halls, in the parking lot.
Usually, I’d be right there with him, but somehow the Life Sciences I was having to make up from sophomore year, it had taken off. Mostly because I wasn’t the only one having to make it up.
Lindsay was in there too. My new lab partner.
It was taking me longer and longer to get ready each morning. My dad would grumble over the breakfast table about the girl I was becoming, and how pretty I was getting, and I’d just chew, swallow, and float to second period again.
I’d like to say I had no illusions about Lindsay and me, about homecoming and prom and life, but it went way past that. I was neck-deep in that particular fantasy, and sinking fast.
At lunch I found RJ, leaned in, told him my plan.
“
Her?
” he said back.
Her phone was newer, brighter, better, was supposed to be harder to hack. I wanted to try the app there, if she was game.
“Maybe we’ll play some Naked Leapfrog too,” I told him, shrugging, trying to come off more lecherous than I was.
“I put a text button on it,” RJ said back.
“Link-with-attachment, right?” I said, suddenly concerned.
He didn’t dignify that.
Of course it would be link-with-attachment. Trying to build our own cute little text program
inside
our app, we’d have to be poring through different carriers’ protocols, asking permission for this, not stepping on that.
“What about the Lonely Brigade?” I asked.
It was our code for the social networks.
“You think?” he said, kind of doing his sneer thing.
We were really talking now. Like it had always been.
“Why not?” I said. “That’s where we want the pics to show up, don’t we?”
“There’s no revenue for second-hand impressions,” he said. “You know that, right?”
Because there would be no real way to track them.
“But we can brand them, anyway,” I said. “Just clear-letter, discrete. Directing them back to the app, keeping it part of the chain, all that.”
RJ shrugged one shoulder, was watching somebody across the cafeteria.
It was Lindsay. I could tell by the way he let his eyes keep skating past her.
“Remember that toddler game?” he said, coming back to me. “That my dad said?”
“Red light, green light. Go directly to college.”
“That’s all he could use it for, wasn’t it? For his MIT application. Because—putting banners on it would be stupid, wouldn’t it? Who advertises to babies?”
I blinked, focused.