Authors: Charles Stross
“But what use is it?” Couper looks upset, more than anything: “It doesn’t make sense!”
“It’s simple enough. Most people will tell the truth, especially when we tell them we just want to know their five top items, so we can verify them against our database.”
“But there isn’t a database—” Couper stops dead.
Elaine nods, smiling a little smile. “But they don’t know that, do they?”
“Oh. Right, well then.” Couper shakes his head.
“I’ll need admin access to the auction-houses,” Jack adds.
Couper splutters. “You can’t be serious! They’re in this to make money. They could sue us into the ground if we let you mess with their stock—”
“Read-only,” Jack says firmly. “I need to write a scraper that can trawl their database for hot property.”
“Talk to Wayne, or Beccy. I can’t give you access without their sayso.” Sam crosses his arms stubbornly. “Go on. I can’t help you.”
Elaine looks at you and raises an eyebrow. “Sounds like a plan,” you tell her. The thought of giving Wayne Richardson, Prize Twat, a bad case of indigestion holds a curious appeal for you. “Let me handle this.”
It’s about eight fifteen when you finally get out of Hayek Associates’ offices and summon a taxi to whisk you back to your hotel room. You are, not to put it too pointedly, dog-tired. On the plus side, at least you made some progress. That cop, Sergeant Smith, looks like she’s going to be a useful contact, and Jack is certainly paying his way. When you left him back at the bunker, he was elbow deep in whatever it is that programmers do, oblivious to everything else. Which is kind of annoying, because he’s about the only person up here who you know who isn’t a co-worker, and now you’ve got to face an evening in a strange city on your own, but what the hell. They call this place the Athens of the North—there’s got to be something you can do by yourself on a summer night, hasn’t there?
Well, no.
Back in your room, you have a quick shower, then check the eating-out guide, by which time it’s past nine and you’re half past hungry. You’re not keen on going back to the places you went into with Jack, not on your own, and the room service menu looks okay, so you order up a big green salad in penance for yesterday’s business meeting, then it’s ten, and the hotel gym’s closed, and
where the fuck did the day go?
It’s even worse than a weekday in London—at least there you can break the commute home in a cocktail bar with some friends.
It’s ten thirty and you’re glumly contemplating an early night and a seven o’clock session in the gym when your phone rings. You look at the display with a sinking feeling: It’s a particularly tedious LARP called
SPOOKS
, a real-time game in which you’re acting your parts in a shadowy pan-European intelligence agency locked in a struggle for global hegemony with the forces of Chinese military intelligence, the Russian FSB, and, of course, the CIA.
“Yes?” You try not to snap.
“Elaine Barnaby? This is Spooks Control. Are you busy right now?”
You glance around your beautifully decorated and utterly sterile worker cell: “Not particularly. You know I’m in Edinburgh?”
“That’s why we’re calling.” Your nameless Control sounds drily amused. “On behalf of our sponsors.” The spooks at the centre of the organization in the game you play. “Your authenticator is—” He rattles off a string of nonsense words, just to prove he’s got access to your Control file.
“I’m on business…”
“So are we. We were hoping you could do us a small favour while you’re there.”
“How small?” As usual, there’s no face to go with the call, just the eye-in-a-glass-pyramid-in-Docklands logo. If this was a video call, at least you could glare at him. “It’s half past bloody ten!”
“We need a small parcel delivering.”
“A small parcel. What’s wrong with FedEx?”
“Well, as you just pointed out, it’s half past ten at night. The parcel’s sitting downstairs in your hotel lobby. It needs delivering to—” He rattles off a set of Galileo co-ordinates. “That’s about half a kilometre away from where you’re sitting.”
“Humph.” You look at the phone speculatively. “What’s it worth?”
“To you? A twenty-minute walk before bedtime. To the recipient? Priceless.” Control sounds smug. You can picture him sitting in some bed-sit, working through his check-list of in-game tasks in order to convince himself he’s got a life.
There’s no easy way to say no without giving offence, and anyway, you were thinking about doing something before bed—“I’ll do it.”
“Thank you. I’ve been told to tell you, Agent Barnaby, that a hell of a lot depends on this package being in place before midnight local time.”
“Sure.” You hang up, pull your shoes and glasses on, grab your jacket, and go downstairs.
It’s dark outside, and there’s a single tired-looking clerk on reception. You smile at him tentatively. “I understand you’ve got a parcel for me? Barnaby, room 214.”
“I think so, let me just go and see…” He shuffles off into the back office, then returns, holding a DHL package. “If you’d sign here, please?”
“Sure.” You swipe your phone across his reader and thumbprint the signature. “Thanks.”
Outside, the evening air is cool and smells faintly of the cherry blossom that’s piling up in the gutters at the side of the pavement. You pull on a disposable plastic glove then pull the tab on the parcel.
This recording will self-destruct in thirty seconds.
Rumour has it that the first
SPOOKS
campaign got the beta-testers arrested and questioned for a week under the Terrorism Act before the police realized it was a game; that’s why you carry a special endorsement on your ID card. The parcel turns out to contain a bland-looking matte black plastic box about the size of an old-time DVD case, and some heavy-duty outdoor bonding pads. There’s also a brief, printed note on paper. “Attach to front of building above eye level facing the street. When attached, initiate pairing with your phone to ‘unnamed device 1142.’ Passcode is 46hg52Q. Once paired, dial ##*49##*, and leave the area. When home, text Control.”
Bloody typical.
You pocket the bugging device, or whatever it is, key the co-ordinates into your specs, and let the overlay guide you along the pavement towards the target building. This sort of nonsense is partly why you’ve been thinking of retiring from
SPOOKS
; it’s almost tediously realistic. Not James Bond swigging cocktails by the pool in Grand Cayman, just “pick up package X, transport to location Y, phone number Z.”
Location Y turns out to be an impressive crescent of Georgian stone town houses. They’ve got flights of steps like stone drawbridges, jutting out over a dry stone moat with windows in the basement—and steps down to them, for these are garden flats. You hunt around for a few minutes until you find the right set of steps, then approach the door. There’s a row of ten buzzers next to the entrance, and right at the top of the row someone has chalked a blue rectangle with your
SPOOKS
cell warchalk sign. You take out the box and the adhesive pads, position it carefully, and jump through the digital hoops to switch the thing on. (It’s probably just a ten-euro inventory tracking phone and a camera to snap the back of another player’s head as they leave for work tomorrow: but what the hell.) You wait till you’re halfway home before you text Gareth.
You’re just keying in a brief message when your specs vibrate for attention. You glance up: The
SPOOKS
overlay is active, and it’s telling you
TWO-PERSON TAG TEAM DETECTED.
The dictates of the game require you to take it seriously, even though you’re too tired for this shit, and you want to go to bed. Besides,
SPOOKS
tries to map non-player characters onto real local objects—and you can really live without two strangers trying to follow you. You speed up slightly, not glancing round—that’s your glasses’ job—and mumble quietly, calling up a course into the densely occupied area around the corner of Princes Street and Lothian Road. You change direction, darting into a side street, and behind you the blips on your head-up display turn to follow you.
This isn’t good. “Phone, get me a taxi,” you mutter, and break into a jog. The side street is almost deserted, cars parked on either side of its cobbled quaintness, but you can see lights and hear traffic ahead. There are footsteps behind you, and you accelerate, running—
And a taxi’s headlights show up, swerving in towards the kerb in front of you. “Where to, miss?” asks the driver, as you pull the door shut. “Hotel—” You try to remember. “Hotel Malmaison…”
Behind you, the tail team falls away in the darkness as the taxi carries you back to the illusion of security.
It’s like that first alcoholics anonymous meeting: “Hi, my name is Jack. And I have a code problem.”
You’re a grown-up, these days. You don’t wear a kamikaze pilot’s rising sun headband and a tee-shirt that screams
DEBUG THIS
! and you don’t spend your weekends competing in extreme programming slams at a windy campsite near Frankfurt, but it’s generally difficult for you to use any machine that doesn’t have at least one compiler installed: In fact, you had to stick Python on your phone before you even opened its address book because not being able to brainwash it left you feeling handicapped, like you were a passenger instead of a pilot. In another age you would have been a railway mechanic or a grease monkey crawling over the spark plugs of a DC-3. This is what you are, and the sad fact is, they can put the code monkey in a suit but they can’t take the code out of the monkey.
Which is why you more or less missed out completely on a very entertaining barney between Elaine and some weedy intense-looking marketroid in casual-Friday drag and fashionable specs who seemed most upset about something. You were off in your own head, trying to figure out a strategy for reducing the Himalayan pile of junk data that your query agents are going to pull out of the Zone database, and you just wished they’d all shut up so you could go back to drawing entity-relationship diagrams on the walls in green crayon. In fact, you were so far out there that the mummy lobe forgot to threaten to set Sergeant Smith on you on account of your overdue library books. You even managed to forget about the weird phone call last night. You were, in short, coding.
“What’s up with him?” you remember the cop asked Elaine.
“Not sure. If I didn’t know better, I’d say he was stoned, but he keeps twitching his fingers: I think he’s in keyboard withdrawal or something.”
So you surfaced for long enough to explain what you needed, and they got the marketroid to tell Sam to log you on to the code repository and give you the authentication tokens, then they found you a nice padded beige cubicle and parked you in it so you could design a tool for the job of trawling through several million transactions.
An indeterminate time later, an irritating voice inserted itself into your awareness. “Jack. Hello? Have you got a spare minute?”
“No—” You shook yourself. “Uh.” Your bladder was threatening to go on strike, your left calf was standing in for a pincushion at a convention of Belgian lace-makers, and your eyes ached. “Hang on a moment.” You check-pointed the project and pulled your glasses off, then leaned back and stretched your arms over your head. “Okay, I’ve got a spare minute now.”
Elaine leaned against the door-frame. She looked tired and irritable. “It’s nearly six thirty. Are you getting anywhere?”
“Give me another three hours or so, and I might be ready to switch it on. Assuming you posted the insurance ad?”
“Yes, that’s been authorized.” She fidgeted with her hands, clasping one palm in the other and flexing her wrist back and forth, then the other. “We’ve already got some responses. I thought you said this would be fast?”
“Give me a file of magic items and miscellaneous loot in well-formed Structured Treasure Language, and I’ve got a tool that can search one or more auction-houses for stuff resembling each item in it, and give you back a proximity metric and some information about the seller. I’ve got one auction-house plug-in nearly completed and four more to write, but they’re all variations on a theme after the first one. Trouble is, your responses won’t be in STL, so I’ll have to run them by hand. Best thing would be if you give me five or ten sample items, and I can leave it crunching overnight on the test data. Then if it works, tomorrow I can set the rest going.”
She rolled her eyes. “Okay.” She sounded unconvinced, and
that
got your attention; it was the sound of
1000 an hour slipping away.
“Ever written a large spreadsheet?”
“Yes.”
“And then tested it? Making sure that what comes out is what’s meant to come out?”
“Yes, but—” She stopped.
“What I’m doing here is like working up a pivot join, then some complex statistical break-downs across six or seven different tables, a couple of which are in different formats. If I rush it, it’ll come out wrong. Worst case, it’ll come out
looking
right but full of plausible garbage.”
“If it’s like writing a spreadsheet, then”—she raised an eyebrow—“what do I need you for?”
“Because you don’t have a couple of years to learn the Zone APIs and the Python 3000 language for scripting it. How long did it take you to write that spreadsheet?”
“Ah.” You could hear the
clunk
as the gears engaged between her ears. Then she smiled, reassured. (
Advanced Programming 401: managing the managers
—first of all, figure out how to tell them what you’re doing
in their own language
. Writing a big spreadsheet with lots of macros was a bit Mickey Mouse, but you had to admit it wasn’t too far removed from what you were doing. It was all data reduction when you got down to it.) “Okay. I’ll email you the data I’ve got. If you can run a test tonight…when will we know?”
“If it doesn’t crash and burn, first thing tomorrow. At least we’ll know something, even if there’s nothing but smouldering wreckage—if we’re lucky we’ll hit pay-dirt overnight.” If it didn’t work, you’d fix it, then run it tomorrow with all the insurance claims you could get.
“Good. I need to go get something to eat: I’m starving.” She paused for a couple of seconds: “Well, see you tomorrow, then.”
You smiled. “See you.”
A minute later you sat bolt upright in your chair and swore at yourself for missing a hidden query—but you’re more at home with SQL than socialization: Innuendo wasn’t a language they taught in CS lab.
Ah well,
you thought. You were just going to have to face up to another night with only a fish supper and your games console for company. It could have been worse: You might be unemployed as well.
When you finally stretch and kick back from the laptop keyboard, it takes you a minute or two to remember where the hell you are. There’s the usual moment of disorientation, a kind of existential dizziness as you re-enter the everyday time-stream in which most people spend their lives: Hours have slid by unnoticed, feeling like minutes (except for the ache in your neck and the gritty heat in your eyes). Sometimes you doubt that any time has passed: But when you look at your clock you realize it’s nearly ten at night. Chucking-out time. But at least the search’n’sniff program you threw together is running. The laptop is plugged into Hayek Associates’ own router—physically connected by actual
wires
—and is trawling through the distributed database, distilling tens of gigabytes per minute into useful candidates.
You switch off your glasses and blink as you stumble out of the office, noticing for the first time that you’re really hungry. HA have inherited the office layout of the former government military bunker—not much point in trying to tunnel through steel-reinforced concrete walls half a metre thick—but they’ve replaced the old wooden doors with transparent lexan panels that darken to opacity at the touch of a fingertip, replaced ancient fluorescent strip lights with smart OLED panels that brighten in front and dim behind you. The effect is strangely claustrophobic, surrounding you with a pool of carefully sculpted daylight as you walk towards a shadowy exit.
Most of the offices you pass are empty and dark, but a faint rime of light frosts the night ahead of you as you near it. Glancing sideways, you see that the door is set to opaque; the light barely leaks out around the edges, and if the passage hadn’t been dark, you’d never have noticed it. You hesitate as you reach it, on the verge of knocking out of sheer curiosity, but then you hear the ugly voices.
“—right off! We’re in deep shit if this goes on. They raided the MacDonald tenement, did you know that? And those bastards from DBA are digging too deep. If they keep on going, it’ll be obvious what’s going on.”
“And I’m telling you that if we chill and sit still until the put options vest, they won’t be able to prove anything. It’s running on rails, yes? And we
haven’t
done anything. So, we’re being targeted. Luckily they don’t know what they’re looking for, and they can’t prove anything. So, just—chill. Stop fretting. Lie low and wait for it to blow over.”
“What about your friends? Can they do something for us? Arrange a distraction, maybe? Muddy the water?”
“I’ve got them working on it already, but I can’t promise anything. Leave that side of things to me. What I want to know is, can you hold up
your
end?”
Pause.
“I’ll do my best. It’s just, with these fucking pests sniffing around underfoot, they keep getting in my face. If we don’t get them out of here soon…”
“Leave them to me, I said. My friends are working on getting them pulled out.”
The voices fall, and you suddenly realize you’re standing here outside the door, and the mummy lobe gooses you with a red-hot trident:
Don’t you know it’s rude to eavesdrop?
It screeches in your ear. You wince, and tiptoe guiltily away, trying not to think too hard about what whoever they were were talking about. It wasn’t entirely clear, but it sounded like they were simply talking about ways of getting Dietrich-Brunner to pull out. And if you were in their shoes, what else would you do?
Up on the surface, you let yourself out of the office, and the door swings shut behind you before you realize that you’ve got no way back inside. The last vestiges of daylight stain the sky a pale blue above the black silhouettes of the trees. You haven’t booked a taxi, either. You trudge down Drum Brae towards the distant rumble of traffic from Queensferry Road, bringing up a bus map overlay on your glasses. You’ve just missed one by three minutes, and they’re down to three an hour at this time of evening.
Great
. At least it’s a warm night, without any real risk of a spring deluge.
When you get home, you find a letter lying on top of the pile of spam on the floor just inside your front door. (At least, it looks like a real piece of correspondence—lately the junk mailers have been wising up, disguising advertising come-ons as tax demands and gas bills.) It’s addressed to you by name and they used a real old-fashioned postage stamp. You tear it open and four glossy photographs fall out.
Heart pounding, you pick them up and hold them where you can see them properly, under the hall light. The first photograph is the entrance to Hayek Associates’ offices. You flip past it to the second. This one looks like a primary-school playground. There’s a cluster of wee ones playing in it, and you don’t need the dotted red circle someone’s helpfully Photoshopped into the image to tell you you’re meant to be looking at Elsie. You feel sick, but you can’t stop yourself looking at the third picture. It shows the front door of a house you know quite well, and that was your sister on the doorstep, her and Mary in her school uniform, in the early-morning light, looking very young. The picture’s a little blurry, as if the photographer was trying to conceal the camera. As well they might, because as soon as you get a good look at the fourth picture, you put them all down and speed-dial the number the policeman gave you after the dodgy voice call, hyperventilating and trying not to panic.
The last photograph shows an empty butcher’s slab.