04. Character encoding
I’m still out here. I know you think I’m gone, but I’m still here.
I need you to listen carefully. I can’t tell you why - not on this channel - but you’re in danger. You need to leave. Right now.
I can’t tell you where I am, but you need to find me. And soon. There’s something coming that’s very bad, and I’m afraid only you can stop it. Before it’s too late for everyone.
I’ve sent the message over to Sal and they’re looking at it in a hex editor.
Most of our lenses don’t allow us to look at the underlying message structures - the protocols and low-level bits and bytes that power the network - but Sal still has a software developer’s access.
The network is no longer operated by anyone. It just runs as a decentralized volunteer effort, and was designed to be able to survive the sort of apocalypse we experienced, even if its original designers are long gone. The access permissions that were established years ago are still in place. It’s not perfect - developer credentials can be bartered for a lot, because no more can be created; admin credentials could get you your own island - but because Sal still has access, it suits me fine today.
I can’t see Sal’s screen, of course: it’s on their lens. Instead, I watch their eyes dart from place to place, deep in concentration, and wait.
“It’s using an onion router,” Sal says, after a few minutes.
“I noticed that. Is there anything we can do to trace beyond the exit node?”
“Not … feasibly,” Sal says, double-checking. “The nodes he routed through were ephemeral; there’s no history stored anywhere of their characteristics, which means the trail is running dead. If a routing node has gone away, I can’t figure out where the message was routed from to get to it. I’ve got the addresses of the nodes, but nothing else about them. So we’re stuck there.”
“Is there anything else you can figure out?”
“Well, there’s one thing,” Sal says, rubbing their shaven head in thought. They flick a readout from their hex editor over to my lens. “You see this?”
I see a bunch of numbers and letters, for sure. “Yes, but I don’t know exactly what I’m looking at.”
“This is the encoding for his message. Each of the characters you see in the human-readable message is encoded with underlying values that tell the network and your lens what to display. Each character that you see on your screen has a different underlying code.”
“Like Unicode,” I say.
“Right. In the old days, they used Unicode to represent different characters - latinate alphabets, emoji, and so on. It was a standard that every device used so they could all display more or less the same things. An iPhone would display an emoji in its own way, and an Android tablet would display it another way, maybe with different styles of illustration, but they’d both have the same underlying code.”
I nod. “Right. We’re on the same page. So we’re looking at Unicode?”
Sal shakes their head. “It’s funny. This isn’t a character encoding standard I’ve seen. So it’s something different. It’s compatible, mostly, but it’s not quite the same.”
“Why would it be different?”
“I don’t think the message was sent on a lens,” Sal says. “That would just create a standard message with all of the standard encoding you’d normally expect to see. When a lens sends an audio or a video message, or anything, really, it sends along its text equivalent at the same time. But that’s not what happened here. There’s something else going on.”
The wind outside is howling. Sal’s window frames rattle dangerously. Vince seems to be dry; he emerges out from under his towel to glare at us before disappearing back underneath to sleep.
“I’m such an idiot,” Sal says suddenly, slapping their forehead.
“What is it?”
“It’s not that this is a non-standard character encoding. It’s just that there are non-printing characters,” Sal says. “After some of the visible ones. In the old days, invisible characters were used for things like sending printer instructions for hard-copy prints, but now …”
They’re furiously typing on an invisible keyboard now. Most of us just think what we want to say if we’re not recording an audio message, but some old-schoolers like the feeling of typing on keys, and developer lenses are happy to provide.
“I’ve got it. There are two kinds of groups of the characters: sometimes you get one on its own, and sometimes you get two characters together. Take a look at this.”
Sal sends data to my lens and I take a look.
,, . ,. .,.. ,,,
“What am I supposed to be seeing?” I say.
“Here’s the first message,” Sal says. “I’ve used a period to represent the single characters and a comma to represent the doubles.”
“What does it mean?”
“I’m not completely sure, but let me extract the other two and send them to you all together. One second …” They continue to type furiously in the air.
After a few more seconds, more data appears on my lens:
,, . ,. .,.. ,,,
.,,. ., .,. ,.,
,.,. ,,, .,. .,,. ,,, .,. ., , .. ,,, ,.
It’s morse code. Of course it is. No fancy encryption, no weird encoding. Just simple morse, invented two centuries ago and virtually unchanged ever since.
Sal has to go find a morse code detector on the network, and eventually finds one on an indie node maintained by some history buff halfway across the world. Nobody uses it anymore. Except for Let, apparently.
Briefly, I wonder how many other secret messages are stored in public data on the network, hidden in plain site, just waiting to be found. And then Sal flicks the decoded message to my lens.
“Menlo Park?” I say.
“It was a town in the San Francisco Bay Area,” Sal says. “Over in Silicon Valley. Lots of rich people. It’s gone now; the whole Bay Area. Swallowed by the rise.”
I nod. I remember when Silicon Valley fell. “So he wants us to look into a corporation from there?”
“Maybe. There were a few famous ones out there. But I think it might be simpler than that.” Sal flicks a node to my lens. “Take a look at this.”
It opens across my full field of vision, blocking out Sal, the rattling windows, and everything else. Just one line of text, written in brilliant white on a dark grey background: MENLO PARK CORPORATION.
Underneath the banner text there’s a red thumbprint, hovering in space. I hold my own thumb up to it; the lens haptics help me feel its edges and that it gives way just slightly when I touch it. It wants to be pushed.
I depress the thumb-print button and it clicks into thin air. It looks like I’m about to enter the node, and then everything fades to the darkest black. I feel a chill; goosebumps rise across my skin.
“Denied,” a voice in my ear whispers. And then I’m back in the room.
I try and bring up the node again, but my lens has closed down. A notice in my peripheral vision lets me know that it’s rebooting.
I look across to Sal, who has clearly had a similar experience. They look pale.
“What is the Menlo Park Corporation?” I ask.
“I don’t know.”
“Do they have Let?”
“I don’t know.”
“How do we begin to find him?”
“I don’t know.” Sal looks exasperated. “I don’t know what’s going on. I feel clueless, and I’m worried, and most of all, I’m worried for you. There’s something really weird about this.”
I nod. I’m worried about Let’s warning - You’re in danger. You need to leave. Right now - and what it means for me. I’m worried that if I really am in danger, I don’t know what or who I’m in danger from, and why. And I’m worried I’ve led whoever or whatever it is to Sal.
I should leave, I think, and then I hear the rain, the wind, and the roar of the sea.
And then I realize: that’s not the sea. Behind the wind and the rain, I hear something else entirely.