The Pedestal
Page 8
Me and my sorry, divided heart.
Ryan and Tim aren’t the only guys I know with liberal access to nexus profiles; they just happen to be the only ones with any obligation to give me the time of day. Following lunch, I make some calls. College professors, former employers and coworkers, fellow alumni—even some dork I met at a conference last year, who I’m pretty sure drank from my water glass during a luncheon—and I get nowhere. Not a single call manages to squeak past a receptionist, one of whom is even bold enough to claim her boss—who dated my college roommate’s little sister, and who still technically owes me ten credits on a lost bet—is out of the country, when his proximity sensors show he’s in the office.
I’m about out of ideas here. Maybe Tim’s right—maybe I should just drop it after all. I mean, what exactly am I hoping to accomplish, anyway? The list that more or less started all of this is out of my hands now, so it’s no longer my problem. Right? Sure, my company is knee-deep in a financial scrapstorm, but that’s hardly unusual in an industry as prolific as ours.
By the end of the day, I’m exhausted and immeasurably frustrated. What I need more than anything is to relax, to give my mind a much-needed—if not well-deserved—rest. Instead, all I can do is think. And the more I do, the more agitated I become. At this point, I’m not sure which is more disconcerting: that Keith so thoughtlessly dragged me into a mess that I’m too much of a simpleton to sort out, or that I was so close to making sense of it, to no avail. Part of me is still wounded that Arthur kept me in the dark, because that same part of me needs to be validated by a third party—to prove that I’m not a complete waste of flesh and energy. I hate that Arthur didn’t feel he could trust me, that I couldn’t handle the truth. Most of all, I hate that he might’ve been right to doubt me.
Adrian agrees that I should try to forget about all this. “Why don’t you just think about me?” she wisely suggests, and she kisses me.
Sold.
It’s Friday. I’m resolute, and after a good night’s sleep, I’m firing on all cylinders, ready to take my life back. I take a flying leap into our new project specs. I spend two solid hours mapping out programmatic components and checking them against our codebank—no reason to duplicate existing functionality if we can avoid it. I’m feeling pretty good about my progress so far—it’s actually a pretty good set of specs: well-constructed, plenty of contingency plans—and about my decision to move on with life.
Until I see it.
Buried in the specs is a flow map of databases—one of which contains NanoPrint profile IDs. My eyes bug for a second as I realize that—in one fatal swoop of fate—I’ve just gained access to the same database tables I failed to identify after many fruitless hours yesterday. I know I should ignore this and get on with the project. Indeed, the sensible side of me demands it. Yet, though I’m completely convinced that no good will come of indulging my morbid curiosity, I simply can’t rein it in.
With a nervous sigh, I begin writing a program—nothing fancy, just some quick and dirty code to export NanoPrint data into a temp database, index the tables for scanning, and run a query for women in the United States with the first name Mitzy. I expect millions, considering the enormity of our population here. I end up with less than one thousand.
I rerun the query several times, adding filters as I go—
>>Domestic Geography = ′Las Vegas, Nevada′
>>Minimum Age = ′25′
>>Maximum Age = ′35′
Et cetera.
—until I’ve narrowed my results down to three. I save their profile IDs to my MentalNotes, feeling confident that one belongs to the woman I’ve begun to think of as my Mitzy.
I should get back to my actual job now. I want to, in fact—I was really on a roll. But as it has so many times, my genetic proclivities prevent me from leaving well enough alone. I don’t know what Tim uncovered, but he pretty well told me all I need to know to unearth the truth on my own.
Well, almost.
Through creative querying, I can access schedules and even proximity sensors via the public nexus directory. With a little time, I can even access transaction grids. But the only way to access a person’s records by profile ID is by manually querying the databases. And the only way to do that is by accessing the nexus server matrix directly in the racks. This is turning into some sort of a secret-agent mission, only I lack any of the slick gadgets that give agents their legendary edge. I feel as if I’m gonna be taken out any minute—or, more likely, I’m gonna suffer through some stress-induced diarrhea.
I spend a few minutes fleshing out an overly elaborate con, and once I’m good and primed to pull it off, I jump to my feet and rush with bold determination toward the racks—where I promptly chicken out and run back to my office. Back at my desk, staring at the project specifications spilled across its surface, I realize there is one other way to do this.
The lights automatically engage as I slip inside IDS. My heart is throbbing like I’ve been running sprints. I’m in no danger of meeting anyone at this hour, yet I feel as though either Ryan or Tim is hiding behind every corner. My NanoPrint is in privacy mode, which is something I rarely allow. As much as I dislike my lack of privacy, hiding one’s day-to-day affairs from the nexus is an invitation for scrutiny; ostensibly, only thieves and adulterers have something to hide.
This situation is a case in point.
The door to the racks is locked. I’m neither shocked nor dismayed by this, because I expected nothing less. I pass my NanoPrint against the door scanner and the magnetic lock releases. I predicted this too, because our security system is integrated with our project requirements—the moment Keith assigned a project to me involving our databases, he also opened my access to their home in the racks.
God, I hope I don’t have to explain my presence here to anyone in the days to come—I’m a terrible liar, in case you’re wondering.
Since I’m already throwing caution to the wind, I don’t even bother with earplugs. If this all falls apart, the least of my concerns is becoming a little hard of hearing. Besides, I don’t want to risk anyone sneaking up on me.
As I walk through the racks, the lights flicker on to light my path and back off again as I pass—it’s an economy mode that I’m supposed to be using at home. One of my dirty secrets? Me and Stew disabled mine after I first bought my condo. I hate the feeling of walking around in a moving spotlight at night; it creeps me out. Thankfully, Stew sympathized with my plight enough to lend me his electronic genius.
When I reach the NanoRack, I realize for the first time just how naïve I’ve been to think I can pull this off on my own. The rack is filled from floor to ceiling with humming server blades; these aren’t even the tip of the iceberg, I know. The real nexus doesn’t call any one server-farm home—it’s everywhere. Our NanoRack is really an array of database clusters; from here, we can access NanoPrint data as if it were our own, thanks to our security clearance as a certified nexus development firm. I swipe my wrist across the scanner on the rack door and wait for the magic beep.
Nothing but the whine of fans.
A couple more tries yield similar results. Now what? I try the door and find it unlocked. I’m simultaneously relieved and outraged by the carelessness of this.
I pull out the rack keyboard and monitor, which are folded neatly into the space like a pizza box. When the monitor lights up, I encounter my first real problem.
Username and password, please.
Ah, scrap. Leave it to Ryan to pull something like this. Billions of credits running through this place in the name of technological advancement, and we’re using flimsy twentieth-century login technology? What a joke.
Naturally, it’s enough to stop me.
My assumption is that a generic set of credentials is floating out there, and that if Keith wanted me to have it, I’d have received it along with my project specs. I take a few stabs with no luck.
Then I get to thinking.
Any IDS employee with a need for
something sensitive from the nexus will ultimately find himself on Ryan’s doorstep. Until now, I assumed this convention existed because he was the only one with the requisite expertise. Now, I’m developing a new hunch. Something tells me Ryan’s not only fiercely competitive in the workplace, he’s also a control freak. If I’m right about that, there is no generic login. Rather, he’ll have given his own login global permissions in order to keep the flow of data under his scrutiny. The rest of us must beg for mercy.
I give it a shot, hoping against hope that Ryan was lazy enough to use something other than a random password. I type RWHITE into the username field, tab to the password field and watch the cursor blink.
Hmm.
I try a few of the old-school favorites—
>>data
>>darwin
>>stars
>>god
>>000000
>>123456
—without success. Then, out of sheer frustration, I try something too sarcastic—too blatantly mocking—to possibly work.
>>nexusmaster
I nearly soil myself when the login goes through. I’m laughing with glee, but I’m also immensely disturbed. It takes a special kind of arrogance—or carelessness, at the very least—to leave a NanoRack unlocked. It takes an absolute moron to use his own nickname—assigned in disrespectful jest, mind you—as a login credential. If I manage to get through tonight, remind me to report that scrapbag, will you?
I take a deep, cathartic breath. From here, the rest should be easy; our database administrative consoles launch automatically, so running my queries should be as simple as identifying a database and drilling down to the relevant tables. But since that would be too easy, the naming convention of NanoPrint tables turns out to be completely foreign. Instead of meaningful field names, like NanoProfsByID or NanoProxByID, they’re random sixty-four-character alphanumeric strings. Forget looking for a needle in a haystack—this is looking for a needle in a haystack factory.
I’m starting to sweat. Despite outsmarting Ryan, this excursion isn’t going particularly well—I gave myself twenty minutes tops for the whole operation, and I’ve been here for over thirty. I’m considering throwing in the towel and getting out of here while I still can with a little dignity when I have an idea.
I plunk around on the admin console, navigating through menus until I locate the activity logs. The onscreen frame lists the day’s processes, which scroll in real time—faster than I can keep up with the interlacing. I sort the processes by time stamp and filter out the automated processes to reveal what’s left, and that’s when I find it.
It’s some fifteen hundred rows down, so I’m very lucky to have noticed it. What caught my eye was the word delete in the description field, which is certainly not something I expected to see. The record is time-stamped just after two o’clock this afternoon. I select the row to expand the full transcript and begin reading. At first, I can’t believe what I’m reading—it has to be a mistake—but it gradually becomes very clear that it’s nothing of the sort.
DELETE FROM TO_BASE64(″master_nano_user_profile″) WHERE TO_BASE64 (″nano_profile_id″) = ′747719554136′
Command processed successfully in 0.000000000101 seconds.
It’s basic SQL, and it’s the first time I’ve seen it since college. I’ve never had the occasion to use SQL, but I know exactly what I’m looking at, even if I don’t understand what motivated it.
We use stored procedures for absolutely every programmatic interaction with the nexus—proximity searches, transaction queries, activity logs, testing stats—everything. Running an update or delete query on any of the nexus databases is essentially circumventing every security measure we hold dear at IDS—and it’s a surefire method for getting yourself blackballed in this industry.
Furthermore, at IDS, we have no procedure stored for deleting a user. Deleting a master user record is pretty much the Holy Grail of thou-shalt-nots—not only at this company, but at any facility with direct access to the nexus. When the nexus stumbles across an orphaned set of data—meaning child records that are tied to a nonexistent master, or parent, record—it automatically begins an internal cleanup process. Any data referencing the phantom master record is purged in a split second, never to be seen again.
As you can imagine, deleting a master record by accident would mean literally and irreparably cutting a person off from the rest of civilization. Only official nexus administrators—which we are not—are permitted to modify user records. So I’m more than a little shocked that the offending command wasn’t rejected—I doubt the president herself could gain clearance to run a deletion query—but I know that if anyone can manipulate the system to make something like this possible, it’s Ryan.
All of this begs the larger question: why in the world would Ryan delete a master record from the nexus?
Wait a second.
I call up my MentalNotes and locate the profile IDs I saved earlier today. Comparing them to the master ID in the query on my screen, I catch my breath.
Sure enough, one of them is a match. It seems that with a little help from Ryan, Mitzy has been absorbed by the identity of a complete stranger.
As for the meaning in all of this, I can only extract one bit of incontrovertible logic: Mitzy—the real one—has been completely deleted from the nexus. Now, I’m actually a firm believer in the beauty of coincidence, but I’m finding it hard to wrap my mind around one in which a man’s NanoPrint physically disappears from the planet—which has never happened—and the master NanoPrint record of that same man’s ex-wife disappears from the nexus—which seems like a much more plausible scenario, yet has also never been documented.
As usual, whatever is amiss is too deeply buried for me to plumb on my own. I need the benefit of wisdom that exceeds my years.
For once, I know just what to do.
I call Adrian on my way to Stewart’s. I tell her I’m not feeling well and encourage her to carry on without me tonight. The crazy thing is that I’m too freaked out to feel guilty or to consider how poorly I’ve sold my story—even if it’s not entirely untrue. I’ve just blown off a Friday night—the highlight of my week—with the best thing that’s ever happened to me. And I’ve done so for no tangible reason. My genetic helix must finally be cracking! Seriously, what’s wrong with me? All I can think about is profile IDs and databases, and how you never really know people.
Stewart is visibly annoyed at my dropping by this late, despite a ten-minute warning—he’s a stereotypical old fart: dinner by four thirty, in bed by seven; up again every half hour to pee—but he lets me in anyway. His pajamas are reminiscent of prison garb in old movies—drab, striped, and ill-fitted. He emits a strained little cough as I follow him inside, and if I wasn’t already frowning, I’d frown now at the ominous sound.
With every step, I know he’s gearing up to light into me, so I wait for it. Perhaps to passively admonish me, he doesn’t say a word; he just surreptitiously glances at my face as he walks, which must reveal my disquiet, and shakes his head sadly—not in judgment, mind you, but as if in observation of a dog he’s just witnessed a tram blow down.
It’s just a dang shame, Wil, his eyes seem to whisper.
Out loud, he finally remarks, “Ah, Wil. What’d you get yourself into now?”
I’m feeling a little shaky, so I let Stew lead me to the couch. It’s an old, saggy piece of furniture with a dated damask pattern woven into worn upholstery. Stewart can easily afford to replace it, but I know he’ll never get rid of it. I run my fingers across a shallow dent in one of the cushions, where my Aunt Gertrude used to sit with her feet curled beneath her, nibbling on pretzel sticks and warming our hearts. It’s never been discussed aloud, but neither of us ever sits on that sacred cushion. Gertrude may be gone, but she’ll always have a place here with us.
Stewart disappears into the kitchen for a moment and then almost immediately reappears with a mug of hot chamomile. I’m not yet sure which of us it’s meant for. He sits in h
is chair with the coffee table between us, where he can look me in the eye. His hands are shaking a little, and when he realizes I’ve noticed, he quickly grasps his tea cup to busy them. This is a new symptom. Added to the coughing and his recurring lethargy, his ailments have my worry meter rising. But what can I do?
Besides, as far as shaking hands are concerned, I have little room to talk—mine are trembling worse than his. Stewart takes a cautious sip of his chamomile and settles back into his chair.
“Tell me,” he says, and stifles a brittle cough.
So I do.
I keep thinking of something Stew said as I was walking out his door. “Be careful, Wil,” he whispered. “You know what they say about putting the cat back in the bag.” His words are foreboding enough alone, but they aren’t solely responsible for my wariness. There was also something unspoken, a sense of defeat buried in his limp posture. Watching him stand at the door in his prison pajamas, it was if he was seeing into the future, glimpsing something terrible. Something too saddening to put into words. Then, just as I hit the sidewalk, he called out to me in a voice marbled and tremulous with worry: “Love ya, kid. You know?”
At two thirty, I give up on sleeping and make some coffee. My stomach is in knots, but I gulp the stuff down anyway, both for the caffeine and the distraction for my restless hands. I’m looking through my pantry for something to snack on when my NanoPrint vibrates. I shouldn’t be startled—this is something that happens with such regularity, after all; I’m still getting notifications every time Nikes go on sale down the street, for crying out loud—but I guess I suddenly have a bad feeling. I close my eyes and filter through my updates. A couple of hundred have accrued since I last checked them; I scan to the most recent, past all the junk—
No, I don’t need more stamina in the bedroom.
No, I’m not ready to take my love for the cosmos to the next level.