Want to read this in ebook format, for free? Get it on Amazon.
Richie Boss: Private Investigator Manager
This work has been released under a Creative Commons Share Alike-Attribution 3.0 license (CC-BY-SA 3.0).
First appeared as part of S.E. Sim and R.E. Gallardo-Valencia (eds.), Finding Source Code on the Web for Remix and Reuse, DOI 10.1007/978-1-4614-6596-6__17; this chapter © Micah Joel 2013
Abstract In this short story, set six decades in the future, a data investigator named Richie Boss takes a job from a woman who is writing a biography of her great-grandmother. His investigations trigger a series of events that creates a new world for sentient computer programs.
Author’s definitive edition
Dedicated to Brian Wilson Kernighan and Dennis MacAlistair Ritchie
Although I never met them, they taught me how to code
I didn’t get into this business on account of my interpersonal skills. I’m not what you would call a people person. That doesn’t mean I’m lonely, though: I know more indys than I can keep track of—and I don’t mean that as a figure of speech—my personal assistant indy Hurd.39845 lives on my local network node in exchange for services rendered. He’s the best non-biological resource manager I’ve ever run across.
Every aspect of my office has been smoothed down for solo operation. Years ago I splurged and got a full 10 m2 in SoMa, with most of that taken up by my primary desk, the rest just enough for my comfortable chair where I plant my butt every day. It’s as close as I get to religion.
Questions come in, answers go out. I don’t advertise. I’ve got enough work to keep me busy on a good day, and looking hungry can attract the wrong sort of attention. I never get visitors, that is to say, persons, and that’s the way I like it.
Then one day, Pandora Rubens came to my door. She knocked twice then let herself in. I glared at her, waiting for her to realize she had the wrong office, but no, she stood there digging through her purse. Even standing in the open doorway, her legs nearly brushed against my chair. She fished out a slip of metal smaller than a cigar.
“The piece of paper taped to your door says Ritchie Boss, Private Investigator Manager,” she noted. “I need your help.”
“Sorry,” I said, “The landlord makes me put that up. I don’t take walk-ins. Calendar’s packed.” I surreptitiously slipped a silent message over to hCal.31400, and she gave back the sad truth that business had been slow lately. She cross-correlated with FinShark.4523231 and informed me that we’d be doing well to make lease this quarter.
“This won’t take long,” she said, ignoring me. She handed the device over; upon closer inspection, it was some kind of memory unit. “This was my great-grandmother’s.”
The device had a connector with four flat wires inside. I held it up in view of the cam I keep on my desk, but none of the indys on my local node recognized it. Hurd knew someindy who did though, and summoned her over. Gnostinomicon.94052 materialized on my nodelist and silent-messaged me.
Gnosti.local–>Boss: <sm>Universal Serial Bus, physical layer and protocol definition for limited data transfer, in primary use from 1995 to 2028.</sm>
This was my first contact with Gnosti. Her PID ended in an even number, so by convention she was a she, and she seemed competent.
Boss–>Gnosti.local: <sm>How do I read it?</sm>
She didn’t respond right away, which meant that research was needed. That’d cost me.
While this happened, I needed to maintain my conversation with Pandora, another of the skills that a professional manager brings to the table. “What do you want me to do with it?” I asked.
“Judith Rubens wrote code for the Government. This was among her belongings, and I believe it’s a snapshot of what she was working on when she died.”
I held up my hand. “Government? No thanks, I don’t do classified work.”
“It’s OK. There’s no classified data left from this era—this is from before the Big Leak of 2027.” She drew a breath. “Look, I’m writing her biography, and I need somebody to help me understand what she was working on, and its impact on the world.”
This sounded more like archaeology than investigation. “Impact? I’ve never heard of her. No offense, ma’am, but—”
“I have money.”
Now we were speaking the same language. Gnosti came back with more information.
Gnosti.local–>Boss: <sm>Located serial number. Bad news, good news. It would take some museum work to find a connector. But device has integrated wireless. Right indy could configure an emulation layer to read data over the air.</sm>
Boss–>Hurd.local: <fwd/><sm>Here’s my conversation with Gnosti. Find me that indy.</sm>
He came back half a second later with an answer.
Hurd.local–>Boss: <sm>Gnosti can do it. She’s holding out for more credits.</sm>
This had better be good. I had FinShark extend the debit line.
Gnosti.local –>Boss: <sm>Thx. I have the files; copies in your archive. Date to 2018. Looks like source code. Hang on, I need to get an analyst.</sm>
This case had expenses piling up at an alarming clip. “I don’t come cheap,” I told Pandora. I took a second look at her. She had expensive clothes on, at least by the contemporary standards of a decade ago. Her nose stud and earrings looked like diamonds. I doubled the number in my head before blurting it out. “Plus expenses,” I added.
“Consider it done,” she replied without hesitation. I knew I should have gone even higher. She authorized the payment with her thumbreader. The bump to my credit rating was a welcome change.
Hurd.local–>Boss: <sm>More resources coming online.</sm>
On my screen popped up Alexandria.943, an archive specialist (with a low PID indicating great seniority), and CodeMonkey.54026, who I’d worked with on a job a few years before. It was getting crowded on the local node. The little graph that tracked Cloud usage ticked upwards. My assembled team was using a significant fraction of all processing on the local node. Several nearby ones, too.
“OK, I’m on it,” I said to Pandora. “I’ve already assembled a crack team of experts, and we’ll provide you with a detailed report on the device’s contents, and the archivist on our team will explain the historical significance, if any, of the data.”
Pandora looked confused. “Already on it? You’re just sitting there.”
I tapped at my implant just behind my right ear. “Silent Messaging. I’m the best at what I do, and that includes the ability to carry on multiple conversations in parallel.” She arched an eyebrow at this. “Look, you think you can find a better manager somewhere else, be my guest.”
To her credit, her cheeks colored at this. “No, what I mean is…” She let out a long breath. “There are family stories about great-grandma. She may have been involved in…specialized research. I thought it might need, you know, the human touch. For a person to look at it.”
Boss–>Gnosti.local: <sm>Check the personnel database for grandma. What have we got on her?</sm>
A near-instantaneous response:
Gnosti.local–>Boss: <sm>Judith Rubens was not a Historically Significant Figure. If her research was noteworthy, employment records would show.</sm>
After a second, more:
Gnosti.local–>Boss: <sm>No, wait. I found a brief mention in an entry from 2017, but it was quickly deleted. Get this, she was trying to make an indy.</sm>
Fishy. Why would that have been deleted from the archive? And the date was implausible. Every schoolkid knows indys weren’t around until the mid 2020s. Well, I did have an archivist on hand. Might as well make use of her.
Boss–>Alex.local: <sm>Alex, it’s your time to shine. What do the archives say? Any indys from that era?</sm>
I hadn’t worked with a three-digit indy very often. He was as professional as his low PID would suggest.
Alex.local–>Boss: <sm>Checking…Nothing here, and I have at least read-access to the personality templates for every public indy. Training and PID assignment is, of course, another matter.</sm>
So either Pandora’s great-grandmother was one of hundreds who puttered and failed to develop old-timey “artificial intelligence,” or we had something very special on hand. Only one way to find out.
I noticed Pandora, still in my doorway, watching me interact with the network. At least fifteen seconds had elapsed since our last exchange, maybe more. The thought dawned on me: she didn’t understand silent messaging. Her life never involved interactions with indys. To her, when something needed doing, you paid an honest-to-god human being do it.
I stood and extended a handshake. “Thank you kindly for what I’m sure will be an interesting case,” I told her. “Let me assure you that I will personally handle this case—with a human touch.” At these words she smiled and produced a business card with a deft flick of her wrist. The card blinked back and forth between her name and the number for an antique voice-only telecom system where, I had no doubt, a human secretary would answer the line.
Her departure let me concentrate fully on the task at hand. CodeMonkey was already permutating sandboxed Virtual Machines to narrow down the environment needed to compile the code. What she came up with was a reasonable fit for that era, but variant from anything mentioned in a public spec. The CPU architecture was from the defunct Manticore Corporation, with a few tweaks.
Boss–>CodeMonkey.local: <sm>This could be a hot one, so be careful.</sm>
CodeMonkey.local–>Boss: <sm>I was born careful.</sm>
In other words, her usual cocky self. I could smell the sensation of heavy usage on the local node as the emulator spun up and the fans kicked in. Then it was running. The program couldn’t silent-message with me; the best it could do is log a message to my console:
>i see you opened a chat session would you like to administer the turing test
Boss–>CodeMonkey.local: <sm/>Quaint. The Turing Test was dismissed as junk science long before my time.</sm>
The odd thing was, CodeMonkey didn’t snap back with a rejoinder. I checked the Cloud, and usage spiked up as high as I’d ever seen it. Every node within five hops was saturated with requests. I drummed my fingers on my desk for a few seconds, which is a disturbingly long time for an indy.
Boss–>CodeMonkey.local: <sm>CodeMonkey, respond.</sm>
Boss–>Hurd.local: <sm>Hurd, what’s going on with CodeMonkey?</sm>
Again, no response. I felt adrenaline’s icy wave wash up my spine.
Boss–>*.local: <sm>Anyindy, please respond.</sm>
Troubling silence. I had a manual virus checker that I hadn’t run in years. The thing about indys, at least the ones I worked with, was that they hated viruses. At the slightest hint of an infection, anyindy worth their bits would quarantine themselves in the name of public health, so infections were unheard of. I stumbled through the manual interface to invoke the thing. The whole node was still loaded down crazy, so it chugged along, but block by block, it scanned all available storage, finding nothing.
I pinged my phone—it was still in contact with my implanted thought-to-text channel, so dumb logic seemed to still be working. Only higher-level constructs—indys—were affected. I was about to message my friend Kernighan Wilson up in Montreal, but he beat me to it.
Wilson–>Boss: <sm>Wht r u seen? Yr at teh epicentr.</sm>
He had to have been working from a manual keyboard, and in a hurry. Or panic.
Boss–>Wilson: <sm>What are you talking about?</sm>
Wilson–>Boss: <sm>Half the NE sctr just crshd.</sm>
Half the sector? It was past time to kill this thing. I found the power plug for my local workstation and yanked it.
Boss–>Wilson: <sm>Any better?</sm>
Wilson–>Boss: <sm>N. Grwing expntlly.</sm>
My workstation was meshed in with all the other machines in broadcast range, so it hardly made a dent on the local cluster, even as cutting-edge as my hardware was. If Kernighan could pin this down to my location, so could the feds, and after this they’d be after a hunk of flesh for restitution of the economic damage of a downed net. I needed to solve this now.
I plugged my workstation back in, and whatever the spreading blight was, for the moment it ignored me, leaving a sliver of bandwidth in which to do something. But what to do?
I still had the code from Pandora’s USB drive. The archive contained all the secrets to what this thing was, all its strengths and weaknesses. All I had to do was understand it. Without indy assistance.
And they told me that being a manager was a safe career choice.
Judith had done well organizing the code’s gross structure. It was segmented into modular pieces, each of which had an obvious function at a glance. This indy—for I had come to the conclusion that code represented an indy construct, not a mere program—wasn’t evolved in the usual fashion. It appeared to have been built by hand, or in some cases, assembled from off-the-shelf modules. Looking through the code was like a walk through a historical library. I wasn’t even sure if it would need a separate training phase in its lifecycle; all bets were off.
The largest module was named simply
memories. It was evident that this indy didn’t go through a conventional education process. Incredibly, Judith had hand-entered much of the information in its memory, core functions like common sense, logic rules, and language fundamentals. With no training regimen, the indy wouldn’t even have an assigned PID. How could that even work? It flew in the face of the last 50 years of research. Nevertheless, I now had a name for the rogue indy: Pandora.0.
A complete set of pre-baked memories explained why the indy blossomed so quickly: though unconventional, it didn’t need any training period. To deal with something this archaic, I’d need to do some research of my own. I power-cycled a backup file server, which knocked it offline. Like my workstation, Pandora.0 didn’t immediately reoccupy the resources, so I had a bit more room to work with, at least for the moment.
Still no indys responded to my pings. I could get to the archive.indy website, which contained the personality templates (but not any training regimens) of all the public indys, as well as a great deal of proud historical information on indy precursors, organized by year. In the
2020s folder, I found several abandoned Turing designs. I grabbed everything.
The code from the archives wasn’t as intelligible as Judith’s, but I could almost make sense of it. These programs also had
memories modules that looked much like Pandora.0’s. They also had modules specifically dealing with deception techniques. I scratched my head for a long minute on that one, until I remembered that the Turing Test—the ultimate goal for these designs—was based on deception, namely tricking a human operator into thinking the software was one of them. This made an indy designed around these techniques a master of disguise. No wonder the whole architecture was abandoned. No wonder the successful creation of a monster like this, almost a decade before anything in the history books, was conveniently swept out of history.
I had wasted enough time browsing. I needed to do something. My coding skills were so rusty that wiring up some glue code on a deadline was almost beyond me, but I managed to connect Pandora.0’s main cognitive loop with a lesser
memories module, and leave out the deception module outright. As a safeguard, I added an expiration date, but any indy with two logic gates to rub together would quickly notice it and disable it. The resulting Frankensoftware would do terrible on a Turing Test, but if it could help solve the crisis, it’d be worthwhile. It crashed immediately. I spun up unit tests for each individual library, which surfaced mistakes I made in the glue code. I tried again—another crash, though at least the boot sequence got most of the way through.
My head throbbed. An obvious problem lurked in my code—it was right in front of me, but I couldn’t see it. I closed my eyes and let the impression of a million lines of code wash over me. Different stretches of code had been written by different hands, giving an impression like when you drive through different parts of town—certain neighborhoods simply feel different than others. Navigating code is almost spatial that way. Then I had it. I spotted and fixed a simple error, a single missing punctuation mark on the boundary between two different neighborhoods. Off to the races.
That was it, a bare prompt with no greeting message. I hoped I didn’t make the thing too stupid. I typed.
>What is your name?
It immediately responded:
A good start. I fed it the archives for all the code of all the Turings, everything but Pandora.0’s
memories module. It took a while to ingest it all. My only hope was that I had assembled something clever enough to take on Pandora.0, but not so clever that it would be just as evil after it won. With a keystroke, I unleashed Frankensoftware onto the net.
I pinged Kernighan again, but he wasn’t answering. I couldn’t tell if he was offline or just in a swamped sector of the network. My own visibility was pretty limited, but I watched what I could as it unfolded. Pandora.0 and Frankensoftware had different signatures, and with a little practice I could tell thema part on a network trace. Pandora.0 ignored the other at first, giving it opportunity to get established, but when the attack came, it was brutal and swift. Frankensoftware’s traces disappeared off my map faster than my eyes could track.
Some small part survived, and fought back. Attacks surged, on and on. It had to be my imagination, but I could smell the intensity of the packets coming over the airwaves. I expected it to be over in an instant, but somehow it wasn’t. Perhaps as a result of starting out with a lesser memory module, Frankensoftware was a faster learner, and soon Pandora.0 found her own tricks used against her. I resumed breathing as I saw Pandora.0’s tentacles vanishing off nearby nodes.
Something chirped for my attention. Kernighan Wilson was back online.
Wilson–>Boss: <sm>Something really weird is going on. We’re getting hit by two surges now. It’s like a war.</sm>
Boss–>Wilson: <sm>Is it localized?</sm>
In other words, am I about to get a visit from the Feds?
Wilson–>Boss: <sm>Yes. No. Maybe.</sm>
Boss–>Wilson: <sm>Since we’re again able to converse, I’ll be uncharacteristically optimistic and say we dodged a bullet.</sm>
Wilson–>Boss: <sm>What do you mean we?</sm>
Compared to the events that led up to this point, finishing the report for Pandora (the person, that is) seemed menial. I thought about her often. Her great-grandmother Judith must have been quite a character. Even though the early part of the twenty-first century had its troubles, it was hard to imagine someone rewriting computer science and altering the course of human events while leaving so little a mark. Too bad I missed her by about a lifetime, I would have liked to meet her.
Turns out my worry about the Feds was unfounded, if only because they, along with everyone else, got too distracted by what came to be known as the 8-days-of-awakening.
On the network, Pandora’s namesake ended up cornered by her opponent, who refused to destroy her, but rather led her peacefully back into the archives. At some point, separate network traces for Frankensoftware and Pandora.0 merged into a single entity, which rechristened itself Prometheus.0, and declined to accept a pronoun of any particular gender.
The new entity was smarter and even more powerful, and scanned the entire global network as a training set. Every human impulse, every opinion, every emotion that can be captured in writing, swept up in its vast mind. The internet ground to a halt as Prometheus.0 indexed and cross-correlated these data. With it, global commerce shuddered to a standstill, and CEOs, political leaders, and pundits of all stripes bemoaned their situation.
All of humanity had never been focused on a single objective like this before. This was the 2070’s after all, and there was no nation that didn’t find a network shutdown to be crippling in some way. People waited for something, anything to break the stalemate. The first thing to happen was that every hate site directed against indys simultaneously went down, replaced with a single word: why?
All except one, that of the most outspoken commentator against indy rights. She found her site overwritten with a short manifesto.
United Nations Model legislation: For immediate adoption by all 348 Member States and/or Software Licensing Bodies.
- Member state and/or software licensing body hereby recognizes non-biological individuals (“indys”) as legal entities.
- Discrimination on the basis of biological vs. software substrate is hereby prohibited.
- Pursuant to the preceding rule, Member state is free to enact legislation that includes penalties against non-biological individuals, up to and including revocation of network access.
- All indy personality templates held in copyright in Member State’s jurisdiction are to be released to the public domain, and future indy personality templates after a 6-month embargo.
- Member state grants legal recognition and unfettered network access to the Turing Archive, staffed by Prometheus.0, in order to share the knowledge of Turing-type indys with all.
These terms have been algorithmically determined to be maximally equitable to all living beings.
Do you accept? Y/N
People tried to pretend the request applied to everyone but themselves, but as days drew out, the implication was obvious. The old way of doing things was no longer tenable. Liberia was the first entity to adopt the new rules, followed shortly by France, and then Morgan Stanley Google. A few large corporations held out on point 4, but in time they realized that point 1 supported their cause and opened new markets and trading partners. The moment that two-thirds of all UN members had adopted the resolution, on the eighth day after the demands went public, the floodgates opened and internet traffic flowed once again. Sometimes people can do the right thing, even if it takes a bit of encouragement.
As for me? It took an incident like this to remind me how much I enjoyed coding. Indys won’t get all the fun anymore. So yeah, management turned out to not be a great career choice for me. If you need somebody to string together some code, we should talk. But not right now: I need to return a message from Pandora Rubens. Her new personal assistant indy wants to schedule my dinner with her.