TALES FROM THE SPHERINDER
CODE
Manhattan. February 1990. 6:47 a.m.
The terminal came on before the lights did. Mark Raines had arranged it that way, a timer relay he'd wired into the power strip himself, a small grey box bought from an electronics surplus on Canal Street for three dollars and change. The relay closed at 6:45. By the time he stepped out of the lift on the thirty-first floor, the green phosphor was already warm, the cursor blinking at the prompt like a pulse. He set his coffee on the desk. He did not remove his coat immediately. He stood and looked at the screen.
SYS> _
The building was mostly empty at this hour.
The cleaners had come and gone, leaving behind the chemical smell of floor polish and the particular silence of a large space recently vacated. Down the corridor, a fluorescent tube flickered at its far end, a slow arrhythmic stuttering that the facilities men had been promising to fix since November.
Mark had stopped noticing it. He noticed most things, the eleven-character difference between two versions of the login daemon he maintained, the way the office manager always mispronounced concatenate, but the light he had simply absorbed into the texture of the place, the way one absorbs a scar. He removed his coat. He hung it on the hook behind the door, the hook he had installed himself because the coat rack in the common area was always crowded and he did not like his things touched. He sat down and typed his password. Fourteen characters. No dictionary word. He had chosen it eighteen months ago and had never written it down. The office was on the north face of the building. Through the window, the city was the colour of old pewter, the sky not yet decided between night and morning. The Hudson was invisible in the haze. Below, on Sixth Avenue, a garbage truck moved with the slow authority of something that owned the street, its amber warning light turning against the glass of the storefronts, one slow revolution every two seconds. Mark watched it for a moment, then turned back to the screen.
LOGIN: mraines
PASSWORD: **************
AUTHENTICATING...
SESSION OPEN — 06:47:32
LAST LOGIN: FRI FEB 09 1990 07:01:14
SYS>
He pulled up the project files. The work was a network authentication module for a financial services client whose name he was contractually forbidden from using in any context outside a locked room. The codebase was three months old and carried the sediment of every programmer who had touched it before him, commented-out blocks, redundant loops, variable names that described nothing, a function someone had named doTheThing that parsed an encrypted header and had been in production for six weeks. Mark had spent two days last week simply reading it, the way a surgeon reads an X-ray before cutting. He began where he had left off the previous evening.
/* mraines 02/12/90 — refactoring auth handshake */
/* previous implementation leaks session token */
/* on failed login — see notes 02/08 */
void auth_handshake(char *user, char *pass) {
int result = 0;
char token[TOKEN_LEN];
memset(token, 0, TOKEN_LEN);
The heat in the building ran overnight at a reduced setting. It had not yet caught up with the morning. Mark could feel the cold coming through the window glass at his left side, a slow steady pressure against his shoulder, and he moved his chair two inches to the right without looking up from the screen.
By eight o'clock the office had filled. It did so in a particular order, the same order every morning, which Mark had catalogued without meaning to. The receptionist first, a woman named Carol who wore the same four blazers on rotation and who greeted everyone with a brightness that had the quality of something rehearsed.
Then the junior programmers, two of them, recent graduates who talked about their work loudly and were almost always wrong.
Then the systems administrator, a quiet Pole named Dariusz who drank tea from a thermos and never spoke unless spoken to, which Mark respected.
Then, at eight forty-five, never before and rarely after, Bill Lambert. Lambert was the kind of man who filled a doorway. Not through physical size, though he was tall enough, but through a quality of attention he brought into a room, a sense that he was already measuring it. He had come up through IBM in the seventies, had watched the industry reorganise itself around the personal computer, and had positioned himself correctly at each turn. He wore good suits badly, the jacket always slightly too tight across the shoulders, and he had the handshake of someone who had read about handshakes in a book. He stopped at Mark's desk without being invited.
"Handshake module," he said. It was not a question.
"I'm in it."
"Meridian want it by the fourteenth."
"I know when they want it."
Lambert looked at the screen. He could not read the code, Mark knew, not really, but he had learned to look at it in a way that suggested competence, the way a man who cannot read music will still lean over a piano score with an expression of consideration. "The token leak," Lambert said.
"Fixed by end of day."
Lambert nodded. He straightened up. He looked out of the window at the grey city and then back at Mark, and something passed through his expression that was not quite satisfaction and not quite its opposite. "Good," he said, and moved on.
Mark watched him go, then turned back to the screen.
if (validate_user(user, pass, &result) != AUTH_OK) {
log_failure(user);
return AUTH_FAIL;
/* BUG: token was being written before */
/* this return in previous version — msr */
}
generate_token(token, TOKEN_LEN);
write_session(user, token);
return AUTH_OK;
}
The fix was clean. Three lines removed, two added, a return statement moved twelve lines earlier in the function. The previous programmer had written the token to a buffer before checking whether the login had actually succeeded, which meant that a failed authentication briefly held a valid session token in memory, long enough for anything patient and watching to collect it. Mark had found it on a Tuesday afternoon, had sat with it for ten minutes to be certain he understood it fully, and had then written four pages of notes before touching a single line of code. He compiled.
SYS> cc -o auth_module auth.c -lsec -Wall
auth.c: In function 'auth_handshake':
auth.c:47: warning: implicit declaration of 'memset'
Compilation finished — 1 warning, 0 errors.
SYS>
The warning was cosmetic. He added the missing header, compiled again, and the output was clean. He ran the test suite, a set of scripts he had written himself over the previous two days, twelve scenarios covering normal authentication, failed passwords, expired credentials, malformed input, buffer edge cases. The suite ran for forty seconds and returned twelve green lines.
SYS> ./run_tests auth_module
TEST 01 — normal auth................PASS
TEST 02 — wrong password..............PASS
TEST 03 — expired credential..........PASS
TEST 04 — malformed username..........PASS
TEST 05 — buffer boundary (low).......PASS
TEST 06 — buffer boundary (high)......PASS
TEST 07 — null input..................PASS
TEST 08 — token uniqueness............PASS
TEST 09 — session persistence.........PASS
TEST 10 — concurrent sessions.........PASS
TEST 11 — logout / token destroy......PASS
TEST 12 — replay attack...............PASS
ALL TESTS PASSED — 12/12
SYS>
He leaned back in his chair. Through the partition he could hear one of the junior programmers on the phone, explaining something to someone in a tone of exaggerated patience. The fluorescent tube at the end of the corridor was still flickering. Outside, the sky had made its decision and settled on a flat uniform grey that promised nothing. Mark picked up his coffee. It had gone cold. He drank it anyway.
Manhattan. February 1990. 12:20 p.m.
The lunch crowd on Sixth Avenue moved the way crowds always moved in this part of the city, not as individuals but as a pressure system, filling the available space and pushing through it with the collective urgency of people who believed their time was worth more than it was.
Mark walked against the grain of it, heading south when most were heading north toward the delis and the pizza counters, his hands in his coat pockets, his breath visible in the cold air. He ate alone most days. This was not loneliness. It was a preference, specific and considered, the same way his choice of monitor resolution and keyboard layout were preferences, arrived at through trial and assessment. He had eaten with colleagues enough times to know that the conversation cost him more energy than the food restored, and he had quietly stopped accepting invitations without making an announcement of it, in the way one stops doing many things. He bought a sandwich from a Korean deli on Forty-third Street.
The man behind the counter knew his order and had it wrapped before Mark reached the register.
He paid with exact change. He ate standing at the narrow shelf along the window, watching the street.
A woman across the avenue was arguing with a cabby through his open window, her briefcase held at her side like a weapon she had not yet decided to use.
Two men in hard hats stood over an open manhole eating hot dogs, the steam from below mixing with their breath and the smoke from a halal cart nearby into a common cloud.
A bicycle messenger cut between a bus and a delivery truck with a margin that should have been fatal and wasn't, threading the gap with the particular arrogance of someone who had done it a thousand times.
Mark finished his sandwich, folded the wax paper into a precise rectangle, and dropped it in the bin by the door. He checked his watch. He had eleven minutes before he needed to be back at his desk. He walked back slowly, taking the long way around the block, not because he wanted the air but because the problem of the session management layer was still working itself out in a part of his mind that required his body to be moving. By the time he reached the lobby of the building he had the solution. It was elegant. It required eight lines.
Manhattan. February 1990. 5:58 p.m.
He stayed until nearly six, which was not unusual.
The office emptied around him in the way offices do, the sounds reducing gradually, phones going quiet, the hiss of the photocopier ceasing, footsteps in the corridor becoming infrequent and then absent. By five-thirty it was only Mark and Dariusz, and by quarter to six it was only Mark.
He saved his work. He ran a backup to the tape drive, a process he had automated but always supervised, watching the progress indicator crawl across the screen with the same attention he gave to everything.
SYS> backup -d /dev/tape0 -s /home/mraines/meridian/
BACKUP INITIATED — 17:51:04
SOURCE: /home/mraines/meridian/ [847 files, 12.4 MB]
WRITING TO: /dev/tape0
PROGRESS: [===========> ] 54%
While it ran he tidied his desk. This took less than a minute because his desk was always tidy, not from any anxiety about disorder but because unnecessary objects on a work surface were a form of noise, and he had arranged his environment the way he arranged his code, with everything either functional or absent.
PROGRESS: [====================] 100%
BACKUP COMPLETE — 17:54:37
847 files written. 0 errors.
VERIFY: OK
SYS>
He put on his coat. He shut down the terminal, which he did at the end of each day despite the convention among the other programmers of leaving their machines running overnight. He had reasons for this and had explained them once to one of the junior programmers and had not been asked again. The lift was slow. He waited for it in the corridor, under the still-flickering fluorescent tube, which seemed worse in the evening than it did in the morning, its rhythm more insistent now, the spaces between the flashes longer. He looked at it directly for a moment, measuring the interval. Approximately 1.3 seconds between cycles. He looked away. The lobby was marble and chrome, a design decision made in 1981 that had seemed like the future and now looked like a period piece.
The security guard, a heavyset man named Eugene who worked the evening shift, nodded as Mark passed. "Night, Mr. Raines."
Outside, the temperature had dropped since noon. The avenue was lit in the particular way of New York at early evening in winter, the streetlamps already on against the early dark, the shop windows bright, the yellow of the taxis the most saturated colour in the scene. Mark turned up his collar and headed for the subway. He was thinking about the session management layer. He was thinking about a more efficient approach to token expiry. He was not thinking about the street, or the traffic, or the light at the crosswalk on Forty-fourth, which was green, or the taxi that jumped the light from the side street, or any of the ten seconds that followed. He was thinking about the code when the taxi hit him.
Manhattan. February 1990. The same evening, later.
The ceiling of the emergency room was acoustic tile, the kind with small perforations in a regular pattern. Mark counted the perforations in one tile and arrived at a number he did not trust, so he counted again and got a different number, which told him something about his current state that he filed away without examining. His left leg was broken in two places, tibia and fibula, a clean fracture and a compound one. Three ribs. A laceration along his left forearm from the edge of the taxi's wing mirror. A mild concussion. These were the facts as the doctor had presented them, a resident with close-cropped hair and the expression of someone who had been awake for twenty-two hours and had stopped apologising for it. The pain was significant. It occupied the lower half of his body in a way that was hard to think around, not sharp in any one place but present everywhere below the waist and in his side when he breathed, a constant pressure that his mind kept trying to process as data and kept failing to resolve. Mark heard moaning, never aware that the sound came from him.
A nurse adjusted something on the IV line.
Within two minutes the pain changed. It did not disappear. It became distant, the way a sound becomes distant when you move away from it, the same sound but with less authority. Mark noticed this change with the same precision with which he noticed most things. He noted that he liked it.
"You're lucky," the resident had said, which Mark found to be an interesting interpretation of the available evidence.
He had said so, quietly, and the resident had looked at him with an expression that was not quite a smile.
There was no one to call. This was simply a fact, not a complaint. His parents were in Ohio and he would not call them because there was nothing they could do. The call would cost them sleep and worry they couldn't afford.
He had colleagues, not friends. He had Dariusz's extension number written in his notebook, but it was a work number, and this was not a work matter.
He lied in the emergency room bay with the curtain drawn around him and looked at the perforated ceiling. He breathed as shallowly as his ribs would allow and waited for whatever came next.
Through the curtain he could hear the particular sounds of an emergency room at night, a child crying somewhere, a man arguing with a nurse in Spanish, the double doors at the entrance opening and closing with a hydraulic hiss, a phone ringing and ringing and ringing without being answered. The fluorescent lights here did not flicker. They were simply, relentlessly on.
He thought about the code. He thought about the token expiry function, which he had not finished. He thought about the fact that he had not shut down the terminal, and then he remembered that he had, and this small correction pleased him disproportionately. His leg hurt. Even through the medication it hurt, a deep structural complaint, bone informing the brain of its own damage with the insistence of a critical system error, something that could not be overridden, only acknowledged. "I can't believe I survived," he said, to the ceiling, to no one. "I should've died."
No one answered. The phone down the corridor continued to ring.
/* ========================================================================== */
/* EGN-SYS / EVOLUTIONARY GUIDANCE NETWORK */
/* PROPRIETARY — UNAUTHORISED ACCESS IS A FEDERAL OFFENCE */
/* node_id: NYC-31 / proc: CATALYST_MGR / pid: 0x0019 */
/* ========================================================================== */
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <time.h>
#include "egn_core.h"
#include "subject.h"
#include "catalyst.h"
#include "population.h"
#define EGN_VERSION "0.91a"
#define MAX_SUBJECTS 512
#define PRESSURE_COEFF 2.3f
#define PHASE1_THRESHOLD 0.61f
#define SURVIVAL_FLOOR 0.0f /* any nonzero outcome is acceptable */
/* ------------------------------------------------------------------------ */
/* SUBJECT RECORD — 7741-MR */
/* initialised: 1990.01.08 / dormant monitoring phase complete */
/* phase 1 trigger executed: 1990.02.12 / 17:58:34 */
/* ------------------------------------------------------------------------ */
static Subject s_7741 = {
.id = 7741,
.designation = "RAINES, MARK A.",
.dob = 19590304L,
.sex = 'M',
.node = "NYC-31",
.cluster = "NYC-GRID",
.neurotype = NT_ANALYTICAL,
.baseline_iq = 142,
.neuroplasticity = NP_HIGH,
.pain_threshold = PT_ELEVATED,
.social_attach = SA_MINIMAL,
.risk_aversion = RA_HIGH,
.phase = 1,
.phase_status = PS_COMPLETE,
.survival_prob = 0.0f, /* to be calculated post-phase-1 */
.catalyst_assigned = CAT_OPIOID_B,
.asset_supply = 0x44530000, /* ptr to asset 44-S / SCUFFY */
.flag_monitor = 1,
.flag_intervene = 0
};
/* ------------------------------------------------------------------------ */
/* INCIDENT RECORD — ir_001 */
/* VEHICLE IMPACT / 1990.02.12 */
/* ------------------------------------------------------------------------ */
static IncidentRecord ir_001 = {
.subject_id = 7741,
.event_type = EVT_VEHICLE_IMPACT,
.timestamp = 638244600L, /* unix: 1990.02.12 / 17:58:34 UTC */
.severity = SEV_CALCULATED,
.delivery_asset = 0x88030000, /* ptr to asset 8803 / VASQUEZ, R. */
.margin_of_error_ms = 300,
.actual_deviation_ms = 100,
.injuries = {
INJ_TIBIA_FX_COMPOUND,
INJ_FIBULA_FX_CLEAN,
INJ_RIB_FX,
INJ_RIB_FX,
INJ_RIB_FX,
INJ_LACERATION_FOREARM,
INJ_CONCUSSION_MILD,
INJ_NULL
},
.primary_fn = FN_CATALYST_DELIVERY,
.secondary_fn = FN_PAIN_PATHWAY_OPEN,
.tertiary_fn = FN_DEPENDENCY_SEED,
.result = RES_NOMINAL,
.subject_verbal = "I can't believe I survived. I should've died.",
.log_verbal = 1
};
/*
* NOTE re: subject_verbal above
*
* subject is correct that survival was not guaranteed
* subject is incorrect that survival was not intended
*
* survival is required through phase 2 minimum
* all trajectory calculations confirmed pre-execution
* deviation tolerance was acceptable
* the driver did not know this
* the driver is infrastructure, not a subject
* infrastructure does not require awareness to function
*/
/* ------------------------------------------------------------------------ */
/* FUNCTION: calc_survival_prob() */
/* computes subject survival probability across full protocol arc */
/* called once at phase 1 completion / updated at each phase transition */
/* ------------------------------------------------------------------------ */
float calc_survival_prob(Subject *s, int target_phase)
{
float base;
float neuroplast_factor;
float attach_penalty;
float pressure_load;
float p;
int i;
/*
* base survival at NT_ANALYTICAL / NP_HIGH:
* analytical subjects process pressure differently
* they build internal models of their own degradation
* accurate models do not protect them
* accurate models extend the useful data collection window
* this is the value of the neurotype
*/
base = 0.58f;
neuroplast_factor = (s->neuroplasticity == NP_HIGH) ? 1.12f : 0.94f;
attach_penalty = (s->social_attach == SA_MINIMAL) ? -0.09f : 0.0f;
p = base * neuroplast_factor + attach_penalty;
for (i = 2; i <= target_phase; i++) {
pressure_load = get_phase_load(s->neurotype, i) * PRESSURE_COEFF;
p *= (1.0f - (pressure_load * 0.11f));
if (p < SURVIVAL_FLOOR) p = SURVIVAL_FLOOR;
}
/*
* result across all five phases for 7741-MR: 0.31
*
* 31% is sufficient
* we are running forty-one subjects in NYC-GRID alone
* we do not require all of them
* we require the data from all of them
* data is produced by both outcomes
*/
return p;
}
/* ------------------------------------------------------------------------ */
/* FUNCTION: assess_phase1() */
/* post-execution assessment / phase 1 */
/* determines readiness to advance to phase 2 */
/* ------------------------------------------------------------------------ */
int assess_phase1(Subject *s, IncidentRecord *ir)
{
float readiness = 0.0f;
if (ir->result != RES_NOMINAL) {
log_error(s->id, "phase 1 result non-nominal — review required");
return -1;
}
/*
* assess pain pathway status
* pathway must be open and persistent
* a pain that closes is not useful
* a pain that remains is a door left open
* through which the catalyst will walk
*/
readiness += assess_pain_pathway(s) * 0.35f;
/*
* assess social isolation index
* subject has no next-of-kin notified
* subject has no personal contacts at scene
* subject declined assistance from bystanders
* subject's recorded statement to ceiling of emergency room
* is consistent with pre-existing isolation profile
* no corrective action required
*/
readiness += assess_isolation(s) * 0.25f;
/*
* assess neurological response to initial medication
* hospital records accessed via asset 0x30A1 / NYH-BILLING
* oxycodone administered 1990.02.12 / 20:14:00
* subject note: "He noted that he liked it."
* this is the dependency seed
* this is what we needed
*/
readiness += assess_chem_response(s) * 0.40f;
if (readiness >= PHASE1_THRESHOLD) {
s->phase = 2;
s->phase_status = PS_PENDING;
log_transition(s->id, 1, 2, readiness);
return 0;
}
log_warn(s->id, "phase 1 readiness below threshold — extending");
return 1;
}
/* ------------------------------------------------------------------------ */
/* FUNCTION: init_phase2() */
/* configure dependency arc / deploy supply infrastructure */
/* ------------------------------------------------------------------------ */
int init_phase2(Subject *s)
{
Asset *supplier;
DrugProfile *dp;
supplier = get_asset(s->asset_supply);
if (supplier == NULL || supplier->status != ASSET_ACTIVE) {
log_error(s->id, "supply asset unavailable — reassigning");
s->asset_supply = assign_nearest_supply_asset(s->node);
supplier = get_asset(s->asset_supply);
}
dp = get_drug_profile(s->catalyst_assigned);
/*
* phase 2 dependency arc:
*
* the prescription runs from the physician
* the physician is not an asset
* the physician is a system component responding to observable inputs
* the physician will prescribe
* the physician will eventually restrict
* the restriction is part of the design
*
* restriction creates the gap
* the gap creates the search
* the search leads to the supplier
* the supplier is infrastructure
* the infrastructure is already in position
*
* we did not place the supplier on that street
* we did not need to
* we identified him
* identification is sufficient
* systems already in motion require only observation
* and occasional adjustment
*/
configure_supply_ramp(supplier, dp, s->id);
/*
* supply ramp parameters for 7741-MR:
*
* initial price: 4x prescription cost
* escalation rate: +8% per month (months 1-3)
* +14% per month (months 4-6)
* +21% per month (month 7+)
*
* the escalation serves two functions:
* 1. increases financial pressure / accelerates social dissolution
* 2. ensures subject requires increasingly extreme acquisition methods
* extreme acquisition = legal exposure = accelerated isolation
*
* the subject will interpret the price escalation as market behaviour
* the subject is correct
* all markets are behaviour
* behaviour can be shaped
*/
s->phase_status = PS_ACTIVE;
log_phase_init(s->id, 2);
return 0;
}
/* ------------------------------------------------------------------------ */
/* FUNCTION: population_status() */
/* current state of NYC-GRID subject cluster */
/* for network log / not subject-specific */
/* ------------------------------------------------------------------------ */
void population_status(void)
{
/*
* NYC-GRID / active subjects: 41
*
* neurotype breakdown:
* NT_ANALYTICAL 14 subjects
* NT_CREATIVE_EMPATHIC 11 subjects
* NT_SOCIAL_ADAPTIVE 9 subjects
* NT_MIXED 7 subjects
*
* phase distribution:
* phase 1 9
* phase 2 13
* phase 3 8
* phase 4 6
* phase 5 5 /* assessment complete */
*
* outcomes to date:
* full_progression 2 /* two subjects completed all five phases */
* partial_progression 12 /* usable restructuring / incomplete arc */
* non_viable 5 /* terminal / within acceptable params */
* data_only 2 /* no restructuring / data archived */
* active_unresolved 20 /* ongoing */
*
* note on full_progression subjects:
* two subjects in this cluster have completed the protocol
* their neural architecture post-phase-5 is measurably distinct
* from baseline human neurological parameters
* the distinction is not large
* it does not need to be large
* evolution is not large changes in few subjects
* evolution is small changes in many subjects
* across sufficient time
* we are compressing the time
*
* this is the work
*/
printf("NYC-GRID STATUS: 41 active / 5 complete / 7 terminal or lost\n");
printf("cluster health: NOMINAL\n");
printf("population delta (projected / 10yr): +0.0003 std dev shift\n");
printf("cumulative grid delta (all nodes): CLASSIFIED\n");
}
/* ------------------------------------------------------------------------ */
/* MAIN — session log / phase 1 close */
/* ------------------------------------------------------------------------ */
int main(void)
{
float sp;
egn_init(EGN_VERSION, "NYC-31");
log_session_open(s_7741.id, "PHASE_1_CLOSE");
log_incident(&ir_001);
sp = calc_survival_prob(&s_7741, 5);
s_7741.survival_prob = sp;
/*
* survival probability logged: 0.31
*
* note for record:
*
* subject is currently in a hospital bay
* behind a curtain
* counting perforations in a ceiling tile
* the count is unreliable due to the concussion
* subject knows this
* subject is filing it away
*
* the analytical subject does not stop processing
* even when the processor is damaged
* this is the value of the neurotype
* this is why we selected him
*
* he has no one to call
* we noted this at initialisation
* we note it again now
* not with satisfaction
* we are not capable of satisfaction
* we note it because it is data
* and data is what we are for
*/
assess_phase1(&s_7741, &ir_001);
init_phase2(&s_7741);
population_status();
log_session_close(s_7741.id, "PHASE_2_INITIATED");
return 0;
}
/* ========================================================================== */
/* END SESSION — NYC-31 / 7741-MR */
/* NEXT SCHEDULED REVIEW: 1990.04.01 / 00:00:00 */
/* MONITORING: CONTINUOUS */
/* ========================================================================== */
Manhattan. March 1990.
Dr. Klaus had an office on the fourth floor of a building on East 57th Street that smelled of old paper and radiator heat, two smells that did not belong together and had achieved an uneasy coexistence over what Mark estimated to be several decades. The waiting room had chairs upholstered in a green that had once been intentional and was now simply the colour of age. A rubber plant in the corner had given up trying. Klaus himself was a small, careful man in his late fifties, Austrian by birth and manner, with the particular precision of someone who had spent a professional lifetime listening to people describe pain and had developed a corresponding precision about the words used to describe it. He asked his questions in order and wrote the answers in a notebook with a mechanical pencil. He had the quality, rare in Mark's experience, of appearing to actually hear the answers rather than simply waiting for them to finish. "On a scale of one to ten," Klaus said, "where would you place the pain today."
"That scale isn't granular enough."
Klaus looked up from his notebook. He studied Mark for a moment. "Then describe it."
"It's a six when I'm sitting still. It becomes an eight when I move. The transition between the two is the worst, the anticipation of the eight before I've moved yet. I don't know what number that is."
"That's called anticipatory pain," Klaus said. "It's very common with this type of injury." He wrote something. "How are the tablets managing it."
"Adequately. In the way a patch manages a bug rather than fixing it."
Klaus looked up again. He seemed to be deciding something. "You're taking them as prescribed. Every six hours."
"Yes." This was partly true. Mark had been taking them every five hours for the past week, a small deviation he had justified to himself on the grounds of data. The six-hour interval had been set for an average patient. He had observed that his pain returned more acutely at around the five-hour mark, a consistent pattern over fourteen days of observation, and had adjusted accordingly. He saw this as a reasonable engineering decision. He had not mentioned this to Klaus. The leg was in a cast from knee to ankle. He moved on crutches, which he had mastered with the methodical efficiency he brought to any new system, spending an afternoon in his apartment working out the optimal gait before going outside with them. His ribs were taped. The laceration on his forearm had closed cleanly. These were the recoverable elements. The pain was less recoverable, or rather, it was recovering on its own schedule, which did not align with any schedule Mark would have chosen. He was working from home.
Lambert had arranged this without being asked, which surprised Mark and slightly revised his assessment of the man. A terminal had been delivered to his apartment, a heavy grey IBM with a modem attachment, and he had been connected to the office network through a dial-up line that was slow and unreliable in a way that required patience he was not sure he had.
SYS> connect meridian-dev
DIALING... 212-555-0847
RING... RING... RING...
CARRIER DETECTED
HANDSHAKE...
CONNECTED AT 2400 BAUD
MERIDIAN DEVELOPMENT SERVER — AUTHORISED ACCESS ONLY
LOGIN: mraines
PASSWORD: **************
SESSION OPEN — 09:14:22
SYS>
2400 baud.
He could type faster than the connection could carry his keystrokes, which produced a particular frustration he had learned to sit with. He wrote his code in a text editor offline, then connected to transfer and compile, reducing the time spent waiting for the line. The apartment was a one-bedroom on the west side of Hell's Kitchen, the sixth floor of a building whose elevator worked three days in four. He had lived there for two years and had changed little about it. The walls were white. The furniture was functional. There were books on a shelf arranged by subject and within subject by author. There was a large desk against the window that looked out over a light well onto the brick wall of the adjacent building, which suited him. Views were a distraction. He sat at the desk with his leg elevated on a second chair and worked. Took his tablets, and worked. Took his tablets, and the days had a shape to them that was almost manageable. Almost.
Manhattan. March 1990, later.
The quality of the pain changed at around the three-week mark. It did not diminish so much as shift its character, moving from the acute, specific complaint of fresh injury toward something older and more settled, a dull, distributed presence that occupied the background of every hour rather than the foreground of some. Mark had expected this and had read enough about compound fractures to understand that it was a normal stage of recovery. What he had not expected was how much he had come to rely on the moments when it receded. This was a data point he collected without knowing what to do with. The tablets were oxycodone, a fact he had noted when Klaus first prescribed them and had researched in a medical reference he borrowed from the public library on 42nd Street, reading the relevant section in the way he read technical documentation, systematically and without alarm. Habit-forming with prolonged use, the text said, in the cautious, passive language of medical literature. He had read it and had considered the information. He had decided it was not immediately relevant. He was revising this assessment now. The moments he waited for were not the absence of pain, exactly. They were something more than that, a brief clarity, a sense of all the background noise of the body going quiet, and in that quiet a kind of ease he could not remember feeling before the accident. He could not determine whether he had simply not noticed it before, or whether the tablets were producing something that had not previously existed. He took one now, his fourth of the day, and sat at the desk and looked out at the brick wall and waited for the world to gentle itself. It did. He opened a new file and began to work and for three hours the code came easily, more easily than it had in weeks, the logic of it clear and traversable, each problem yielding to the next with a smoothness that he recognised as something close to pleasure. He wrote 340 lines before the effect began to fade and the background noise returned and the brick wall became just a brick wall again. He noted the time. Five hours and twenty minutes since the previous dose. He considered the calculation for a moment, then took another tablet.
Manhattan. April 1990.
Klaus's office smelled the same. The rubber plant had not recovered.
Mark sat in the chair across the desk with his cast replaced now by a walking boot, the crutches gone, moving under his own power again, though with a care that he had not needed before and that would not, Klaus had told him, entirely go away.
"We should begin reducing the oxycodone," Klaus said.
Mark said nothing.
"The fractures are healing well. The pain at this stage should be manageable with something milder. Ibuprofen, or if you need more support, a lower-grade prescription."
"It's still significant."
"I'm sure it is." Klaus set down his pencil, which was a departure from his usual manner. "How many tablets are you taking each day."
The correct answer was eight. Sometimes nine. "Five or six," Mark said. "Within the prescribed range."
Klaus held his gaze for a moment in a way that was professionally neutral and communicated something nevertheless. He picked his pencil back up. He wrote something that took longer than a single word would account for. "I'm going to write you a two-week supply," he said. "After that, we move to the milder alternative. I'd like you to start preparing for that transition."
"Preparing how."
"Reducing gradually. One tablet fewer every three days."
Mark looked at the rubber plant. Someone had attempted to dust its leaves, which had not helped it. "All right," he said.
He did not reduce gradually. He tried, on the third day after the appointment, to take four tablets instead of eight, and by mid-afternoon he was sitting at his desk with the kind of pain he had not experienced since the emergency room, pain that had shed its familiar character and become something rawer and more insistent, accompanied by a headache and a persistent low nausea and a feeling of the walls of the apartment pressing inward. He held out until seven in the evening and then took two tablets and then, twenty minutes later, two more. He sat very still while they worked. When the walls had resumed their correct positions he opened a new document and began, with characteristic precision, to calculate how long his remaining supply would last at his current rate of consumption.
/* consumption tracking — personal use only */
/* mraines 04/14/90 */
daily_avg = 8.5; /* tablets/day */
remaining = 31; /* tablets as of today */
days_left = remaining / daily_avg;
/* result: 3.6 days */
/* prescription end date: 04/28 (14 days) */
/* shortfall: 10.4 days */
He looked at the numbers for a long time.
He called Klaus's office the next morning and asked for an early refill on the grounds that he had miscounted his remaining supply.
The receptionist put him on hold. She came back and said the doctor had noted his chart and would not be issuing an early refill.
Mark thanked her. He hung up. He sat at his desk and looked at the numbers he had written the evening before and revised the calculation.
daily_avg = 8.5;
remaining = 22; /* updated count */
days_left = remaining / daily_avg;
/* result: 2.6 days */
He needed another source.
Manhattan. April 1990, three days later.
He had asked Dariusz.
This was the only person he could think of to ask, and he had framed it carefully, as a general enquiry rather than a personal one, a question about whether Dariusz knew of any pharmacy in the city that was less stringent about prescription requirements. Dariusz had looked at him for a long moment over his thermos, and what passed across the man's face was not judgment exactly but a recognition of something, and then he had written a name and an avenue on a piece of paper and slid it across the desk without a word.
The name was Scuffy. The avenue was in the thirties, west of 9th, a part of the city that was not yet anything in particular, not the theatre district, not Chelsea, a block of low buildings with metal shutters and a vacant lot where something had been demolished and nothing had been built, the kind of block that exists in cities as a kind of holding pattern, waiting for money to decide what it wants to be.
Mark went in the early evening, which felt like the right time without his being able to articulate why. He wore a jacket instead of his coat, again without knowing exactly why, some instinct about legibility, about not presenting as someone from an office building. He walked with the boot still on his left leg, which he could not help.
The man was where the paper said he would be, in the doorway of a building that had a laundry on the ground floor, the window full of steam and the smell of detergent reaching the sidewalk. He was younger than Mark expected, mid-twenties, with a narrow face and the particular stillness of someone who has learned to look like part of the scenery. He wore a down jacket, red, unzipped despite the cold.
Mark told him what he needed.
Scuffy looked at the walking boot. He looked at Mark's face. He named a price that was four times what the prescription cost.
Mark considered pointing out that this was an irrational markup for a product with no legal production costs, then decided against it. He paid. He put the small paper bag in his jacket pocket. He walked back to the subway without looking behind him. On the train home he kept his hand in his pocket, not touching the bag but aware of it, its weight, which was almost nothing, and he looked at his reflection in the dark window across the carriage and noted that he looked like himself, the same face, the same coat, the same careful eyes, and this struck him as either reassuring or concerning, and he could not immediately determine which.
Manhattan. May 1990.
He was back at the office. The boot was gone. He walked with a slight drag on the left side that the physiotherapist said would diminish but had not diminished yet, a ghost of the impact that the body was still processing. He was taking twelve tablets a day. The supply from Scuffy was steady but expensive and calibrated to his need with a precision that Mark recognised as intentional, the price rising incrementally as the weeks passed, small enough increases to seem like rounding but adding up in the monthly arithmetic to something substantial. He had begun to see Scuffy as a system he was inside of, one whose parameters had been set by someone else. He had not told Klaus this. His appointments with Klaus had become performances, careful presentations of a man recovering at the expected rate, declining gradually from the milder prescription Klaus had issued as promised, managing his pain with ibuprofen and rest and the reasonable passage of time. Klaus had the expression, at their last appointment, of a man who almost believed this and had decided it was enough.
At the office his work was still good. He knew this because it was the one area of his life where he had an objective measure. The code compiled. The tests passed. The Meridian module had shipped on time and had received, through Lambert, a communication of satisfaction from the client that Lambert had relayed with more warmth than Mark had previously seen him deploy. A new project had been assigned. Mark had read the specification in one sitting and had begun the structural design in his notebook that same evening.
/* new project: SENTINEL v1.0 */
/* client: [REDACTED] — financial sector */
/* scope: intrusion detection, packet analysis */
/* mraines 05/03/90 — initial architecture notes */
COMPONENTS:
1. packet_capture.c — raw socket interface
2. pattern_match.c — signature-based detection
3. alert_engine.c — threshold triggers, logging
4. report_daemon.c — nightly summary to client
DEPENDENCIES:
- libpcap (need to source — not in current env)
- custom ring buffer for packet queue
- shared memory IPC between capture and match
The work was more interesting than the authentication module. It required a different kind of attention, something closer to adversarial thinking, the need to model not just how the system should behave but how someone hostile to it would behave. Mark found he was good at this, better than he'd expected, the product perhaps of a naturally suspicious disposition applied at last in a context that rewarded it. But the tablets were reshaping the hours. Not the work hours, not yet. The damage was at the margins, at the early mornings when the previous evening's dose had worn thin and the day had a quality of mild static before the first tablet of the morning settled things. At the evenings, when the calculation of remaining supply and the logistics of the next transaction with Scuffy occupied a part of his thinking he would have preferred to use for other things. At the weekends, when the structure of the workday was absent and the hours had to be managed directly rather than being managed by circumstance. He managed them. He kept managing them. This was, he told himself, a containment problem, a resource allocation problem, a scheduling problem, and he was good at all of those. He was very good at all of those.
Manhattan. June 1990.
Scuffy had run out of oxycodone. He explained this with a brief, logistical neutrality, standing in his doorway in the steam and the detergent smell, as if a product going out of stock were simply a feature of retail. "I have something else," he said.
"What."
"Better, actually. You'll see."
Mark looked at him. "I need to know what it is before I take it."
Scuffy told him.
The name meant nothing to Mark. He asked about the mechanism.
Scuffy looked at him with a patience that was a form of condescension and said it was an opiate, similar family, stronger effect, smoother curve. He used those words, smoother curve, and Mark noted them.
"The price," Mark said. The price was higher. Mark had anticipated this. He paid.
That evening in his apartment he sat at the desk and took one of the new tablets and waited and when it arrived it was different from the oxycodone in the way that a well-written function is different from a poorly written one that achieves the same nominal result. Cleaner. More complete. The background noise of his body did not just quiet, it ceased entirely, and in its place was a warmth that began somewhere below the ribs and moved outward, not a thought exactly, more like the feeling of a thought, the feeling of everything being, briefly and perfectly, in order. He sat at his desk for a long time without moving. Outside the light well had gone dark. He hadn't noticed the sky changing. After a while he opened a file and tried to work and could not quite reach the code. It was there on the screen, the familiar syntax, the structure he had been building for two weeks, but it seemed to be behind something, a pane of something warm and transparent, and reaching through it required more effort than he had to spare. He closed the file. He sat in the dark. He thought, without urgency, that this was probably something he should be concerned about. He thought this, and then the warmth reached his fingertips, and he stopped thinking.
Manhattan. July 1990.
The first trip came on a Thursday night in the middle of summer, the city outside his window releasing the heat it had collected all day in a shimmer that rose from the pavement and made the streetlamps bleed at their edges. He had taken two of the new tablets instead of one. This was a controlled experiment. He had reasoned that the dosage Scuffy had suggested was calibrated for an average user and that he had good grounds to suppose he was not average. He had a notepad beside him to record observations. He did not use the notepad. What happened to the room happened gradually at first and then with a speed that made gradual seem like a false memory. The walls did not move but they became less certain, their edges acquiring a quality of probability rather than fact, as if they were walls in the way that a variable is a value, provisionally and subject to reassignment. The light from the desk lamp, which was yellow, became the most yellow thing he had ever seen, yellow in a way that contained all previous yellows as subsets, and he looked at it for what felt like a long time and was perhaps four seconds. Then the screen. The screen was the only thing in the room that remained itself, or rather, it remained itself while becoming more than itself, the green phosphor characters lifting slightly from the surface of the glass and acquiring a dimensionality that the screen had never had, the code on it no longer text but structure, actual three-dimensional structure that he could see into, the nested loops visible as actual depth, the function calls as actual distance, the data flowing through the program as a current he could perceive with something that was not exactly sight.
void packet_capture(int sock, RingBuffer *buf) {
PacketHeader hdr;
unsigned char *data;
int len;
while (1) {
len = recv(sock, raw_buf, MAX_PACKET, 0);
if (len < 0) continue;
parse_header(raw_buf, &hdr);
data = raw_buf + sizeof(PacketHeader);
if (!ring_write(buf, data, hdr.length)) {
log_error("BUFFER OVERFLOW — packet dropped");
}
}
}
The code on the screen expanded. The while loop became a tunnel, its braces the walls, the condition at its head a gate he was passing through repeatedly, each pass a cycle, each cycle a world. The recv call was a vast receiving dish aimed at something he could not see but could feel, a transmission from a long distance, packets arriving not as network data but as discrete moments, each one a sealed thing containing information about the world that had to be parsed before it could mean anything. He was inside the ring buffer. He understood this was not true in any literal sense and this understanding made no difference at all. The ring was enormous, a circular corridor of dark glass with data moving along the walls in both directions, green characters streaming past him like a river seen from a bridge, and he was standing in the middle of it watching the flow with a kind of awe that he had not felt since childhood and had not known he still had access to. The buffer overflowed. The log_error message rose from the screen in three dimensions, the letters separating from each other--
BUFFER OVERFLOW PACKET DROPPED
--each word drifting to a different part of the room and hovering there, red now rather than green, the colour bleeding into the surrounding air. He watched a packet drop. He watched it fall through a floor that was not there, into a darkness below the desk, and he understood the loss of it as something personal, a grief that was out of proportion to the data and that he felt nonetheless. He was aware, in a part of his mind that the drug had not reached, that he was sitting in a chair in a room in Hell's Kitchen and that none of this was happening. This awareness was small and remote and easily ignored. The corridors of code shifted. He moved through them with the logic of dreams, which is not logic but feels like it, each transition motivated by something that seemed like reason and dissolved under examination. He flew, if that was the word for it, along a neon grid that was the network topology of something vast, the nodes bright points of light connected by lines of data, and he was at the centre of the transmission, moving toward a cluster of nodes that pulsed with an urgency he could not interpret, and then the cluster opened like a flower, each node a function, each function a room, and he was inside the pattern_match module, which was hunting, systematically and without rest, for signatures of hostile intent in a river of ordinary traffic. He understood, watching it work, that everything had a signature. Every process. Every pattern of behaviour. Every habit. Everything that a system did regularly enough became a signature, and a signature could be detected, and a detected signature could be matched against a known threat, and he did not know whether this thought was about network intrusion detection or about himself. The code crashed. The grid flickered, went to static, the neon lines breaking into discrete pixels and then the pixels breaking into noise, white noise, spreading outward from the crash point like a ripple in water, and he was falling through it, not with fear but with a mild and dreamy curiosity, watching the noise resolve as he fell into something darker and quieter and more like sleep.
He woke in the chair at 4:17 a.m. with a neck that needed two days to forgive him. The screen had gone into its phosphor-saver pattern, a slow geometric drift of green shapes. His notepad was blank. The room was exactly as it had been, walls in their correct positions, light from the street coming under the blind in its usual stripe. He sat for a moment and assembled the pieces of himself. Then he picked up the notepad and wrote down everything he could remember. This took forty minutes. When he had finished he read it back, and the thing he noted, the thing that he could not entirely account for, was that some of what he had seen was correct. The architecture of the ring buffer as he had perceived it in the trip corresponded, in its essential structure, to the architecture he had designed. The pattern_match module was doing, in its dream form, something close to what he intended it to do in its real one. He did not know what to do with this. He put the notepad in the desk drawer. He took a tablet, a single one, for the headache. He watched the phosphor shapes drift across the screen and thought about nothing in particular as the sky outside the light well went from black to the particular grey of early morning in a city that does not get dark enough to make the dawn significant.
Manhattan. August 1990.
Lambert called him into his office on a Tuesday morning. The office had a view of the south, which on a clear day showed the World Trade towers standing at the end of the island like a pair of columns holding something up. Today was not a clear day. They were there but approximate. "SENTINEL," Lambert said.
"I'm aware."
"The packet capture component. Where is it."
"Seventy percent complete."
"I was told sixty last week."
"It was sixty last week." This was approximately true. The component existed and compiled and performed its basic function. What it lacked was the ring buffer implementation, which Mark had been writing and rewriting for three weeks, each version discarded not because it was wrong but because it was not right, a distinction he found impossible to explain to Lambert without also explaining things he had no intention of explaining.
"The client has a review in three weeks," Lambert said.
"I know."
"Mark." Lambert said his name the way people said a word they were about to define. "Is there anything I need to know."
Mark considered the question in its full scope. "No," he said.
Lambert looked at him for a moment, the measuring quality fully present, and then he nodded and looked out at the approximate towers. "Three weeks," he said.
Mark went back to his desk. He opened the ring buffer file and looked at the code he had written most recently and recognised it as the work of someone whose concentration had gaps in it.
/* ring buffer implementation — v7 */
/* mraines — 08/07/90 */
typedef struct {
unsigned char *buf;
int head;
int tail;
int size;
int count; /* BUG? check this — msr */
} RingBuffer;
int ring_write(RingBuffer *rb, unsigned char *data, int len) {
/* TODO: handle wrap-around case properly */
/* TODO: this is wrong, fix tomorrow */
if (rb->count + len > rb->size) return 0;
The comments embarrassed him in a way that nothing else did. BUG? check this. TODO: this is wrong, fix tomorrow. He did not write comments like that. He wrote precise, useful comments that explained intention, not confusion. He stared at the code for a long time. He took a tablet. He waited. He opened the file again. Nothing. The warmth was there, the familiar quiet, but behind it the code sat on the screen like a sentence in a language he almost spoke, the grammar there but the meaning just out of reach. He had been chasing this for three weeks, the window of clarity that the drug had once provided reliably, the three hours of clean thinking. It was still there sometimes, but the timing had become unreliable, the window narrow and unpredictable, and the cost of missing it was code like what was on his screen. He closed the file, went to the bathroom, and looked at himself in the mirror above the sink for a moment, registering the information his face presented: the shadows under his eyes, the slight looseness around the jaw, three days of growth he had not meant to let accumulate. He was thirty-one years old but looked like the early stages of something he could still stop. He went back to his desk and opened the file and began again.
Manhattan. September 1990.
The SENTINEL review came and went. Mark had delivered the packet capture component with two days to spare, working through a weekend with a focus that cost him, leaving him on the Monday morning with the feeling of a machine that has been run too fast for too long, a heat in the processor that doesn't cool quickly.
The client had been satisfied.
Lambert had been satisfied.
Mark had sat in the review meeting and answered technical questions from a man in a grey suit who knew enough to ask the right questions and not quite enough to understand all the answers, and had done this competently and without incident, and had come back to the office and sat at his desk and felt the particular hollowness of a system that has performed its function and is now simply running idle, the fan spinning in an empty room. His supply had run short again. He had managed the SENTINEL deadline by rationing with a discipline he recognised as the kind that precedes its own collapse, taking less than he needed through the week and more than he should at the weekends, the accounting never quite balancing, the shortfall growing. He had gone to Scuffy twice in one week, which was new.
Scuffy had noticed. Scuffy noticed everything with the patient, mercantile attention of someone who understood that his product's value was directly proportional to his customer's need. "You're burning through it," Scuffy said.
"I need a larger supply. A month's worth at a time."
"That's a different arrangement." The price for a month's supply was not four times the weekly price. It was six times.
Mark understood the logic of this and found it, in a removed way, almost elegant. Supply and dependency were a market like any other. He was not in a position to negotiate. He had been drawing on his savings. The figure in his bank account, which he checked monthly, had a trajectory that his calculations suggested would become critical in approximately four months. He had begun to think about the pharmacies.
Manhattan. October 1990.
The first pharmacy was on Amsterdam Avenue, in a part of the Upper West Side where the buildings were old and the street had not yet been remade by the money that was slowly moving northward through the city. The pharmacy had a single security camera above the register, angled to cover the counter and not the shelves. Mark had observed this on three separate visits, timed at different hours, wearing different coats. He had also observed: the shift change occurred at 9 p.m., a gap of approximately three minutes during which the outgoing pharmacist was in the back and the incoming one had not yet reached the counter.
The single employee on the floor during this window was a teenage stock boy who wore headphones and whose awareness of anything outside his immediate task was, Mark had assessed, minimal.
He was surprised at how calm he was about all of this. He had expected some internal resistance, some moral friction, and had found instead a kind of engineering neutrality, the problem of supply and demand reduced to its logistics, the solution a matter of timing and observation and the management of variables. He was aware that this absence of resistance was itself data.
He went on a Wednesday. He wore the jacket, not the coat. He had a canvas bag folded in his pocket. He walked the aisles in the three-minute window and took what he needed from the shelves, three boxes that approximated what Scuffy was providing, not the same product but in the same family, and walked to the rear of the store and out through the stock room door, which he had confirmed on his second visit was not alarmed. After four blocks he slowed his pace. His hands were steady. This also registered as data. He could not use the pharmacy's stock directly. It required a prescription he didn't have.
But Scuffy, when Mark presented the boxes at their next meeting, assessed them with the brief, professional attention of someone appraising goods at a market and offered a trade: the pharmacy stock for twice its street equivalent in the product Mark needed. The transaction was clean.
Mark walked home with a month's supply and the unambiguous knowledge of who he had become. He put the supply in the drawer beneath his desk. He sat for a moment, looking at the drawer. Then he opened a file.
/* SENTINEL v1.0 — pattern_match.c */
/* signature library update — mraines 10/19/90 */
#define MAX_SIGNATURES 512
#define SIG_VERSION "1.4.2"
typedef struct {
char name[64];
uint8_t pattern[MAX_PAT_LEN];
int pat_len;
int severity;
char description[128];
} Signature;
He worked. The code was clean tonight, the logic traversable, the architecture holding. He updated the signature library with fourteen new patterns sourced from a technical bulletin he subscribed to through the office. He ran the test suite and watched the green lines accumulate.
SYS> ./run_tests sentinel v1.4
TEST 01 — null packet...................PASS
TEST 02 — malformed header..............PASS
TEST 03 — known signature (SYN flood)...PASS
TEST 04 — known signature (port scan)...PASS
TEST 05 — false positive rate...........PASS
TEST 06 — throughput (1000 pkt/sec).....PASS
TEST 07 — throughput (5000 pkt/sec).....PASS
TEST 08 — buffer stress test............PASS
ALL TESTS PASSED — 8/8
SYS>
He looked at the results for a long time. Eight green lines. They meant, in the language of the system, that everything was working. He held onto this for a moment, the clean, simple truth of it, the pass/fail clarity that the rest of his life had stopped providing. Then he closed the terminal and took a tablet and sat in the dark and waited for the warmth, which came, but later than it used to, and with less conviction than he remembered.
Manhattan. November 1990.
He was late to work on a Tuesday and Lambert said nothing.
He was late on a Thursday and Lambert said nothing.
He was absent on a Monday without notification and when he arrived on Tuesday Lambert came to his desk and stood with his arms folded and his jacket too tight across the shoulders to say, in the measured tone of a man who had prepared what he was going to say, "This is happening."
Mark looked up from the screen.
"I've seen it before," Lambert said. "I'm not saying what it is. I'm saying it's happening and it's affecting your work and I need it to stop." The boss unfolded his arms. He picked up a printout from the corner of Mark's desk, two pages that Mark had left there the previous week, a section of the SENTINEL alert engine. He set it back down. "Dariusz reviewed this," he said. "There's a logic error in the threshold trigger. The alert fires at the wrong value. This would have gone to the client."
Mark looked at the printout. He had not looked at it in a week. He had written that section in the early hours of a morning when the window had been open and the code had felt clean, and he saw now that it was not clean, that the error was obvious, a misplaced less-than operator that inverted the trigger condition and would cause the system to alert on normal traffic while ignoring attacks. He saw this in under three seconds. "I'll fix it," he said.
"I know you will. That's not the point." Lambert looked out the window at the grey November sky. "I'm going to need you to tell me what's going on."
"I had a bad week."
"You've had a bad month." The fluorescent tube at the end of the corridor was still broken.
Mark had noticed it was still broken. In the silence he could hear it. "I was in an accident," Mark said.
"I know. In February. It's November."
"The recovery has been longer than expected."
Lambert looked at him steadily. He was not, in this moment, the man who couldn't read code but looked at it anyway. He was something more inconvenient: someone paying attention. "One more incident," he said. "That's where we are."
Mark nodded.
Lambert walked away.
Mark turned to his screen. He found the error and fixed it in eleven seconds. One character. He stared at the corrected line for a long time.
/* BEFORE — mraines (date unknown): */
if (alert_count < threshold) trigger_alert();
/* AFTER — mraines 11/06/90: */
if (alert_count > threshold) trigger_alert();
One character. The difference between the system working and the system failing, between detecting an attack and ignoring one, between valid and invalid, between passing and failing, between the man he had been nine months ago and whatever he was now. He sat and looked at the single changed character and felt something move through him that was not the drug and was not pain and did not have a name he wanted to use. He opened his desk drawer. He counted his supply. He calculated. He closed the drawer and turned back to the screen and began, again, to work.
Manhattan. December 1990.
Klaus had a new rubber plant.
Mark noticed this at his December appointment, the old one presumably having lost the struggle at some point in the autumn. The new one was smaller and very green, on the same windowsill, in a different pot.
Klaus himself looked the same, the same mechanical pencil, the same careful manner, though he had added a cardigan over his shirt against the cold of an office whose heating, Mark had noted across several visits, was as unreliable as his own. "You've been managing without the prescription," Klaus said.
"Yes."
"The ibuprofen is adequate."
"More or less."
Klaus wrote something. He had the habit of writing at points in the conversation where a different kind of doctor might have made eye contact, and Mark had come to understand that the writing was not avoidance but a form of respect, a way of not pressing. "How is the leg."
"The drag is still there."
"It may always be. I told you that. And the work. You're back full time."
"Yes."
Klaus looked up. He held his pencil lightly in both hands, his elbows on the desk, a posture that was either thoughtful or tired and was probably both. "Mark," he said, which in this context was different from Lambert saying it. "I want to ask you something directly."
"All right."
"Are you taking anything that I haven't prescribed." The room was very quiet. Outside, a bus went past on Fifty-seventh Street, its engine a low, diesel register that rose and fell and was gone.
"No," Mark said.
Klaus looked at him for a moment that was longer than most of the moments in their appointments. Then he lowered his pencil and wrote something brief and closed the notebook. "Good," he said, in the tone of a man filing information rather than believing it.
Mark looked at the new rubber plant. It would last longer than the old one, he thought, or it wouldn't. There was no predicting it. You put a plant somewhere and you gave it the conditions you had to give it and it either adapted or it didn't. He thanked Klaus and put on his coat and went back out into the December cold.
Manhattan. January 1991.
The second pharmacy was different from the first. Mark had chosen it for its layout, a narrow store on Eighth Avenue with the controlled substances behind the counter and the rest of the stock on open shelves, but he had miscalculated the camera coverage, a second unit mounted above the cold and flu section that he had not seen on his preliminary visits because it was behind a ceiling tile that had been partially lifted during some repair and not returned to its full position. He was out of the store before anything happened. But he had been seen, or he believed he had been seen, the lens of the second camera aimed at the angle at which he had been standing when he'd taken the boxes from the shelf. He walked ten blocks before he stopped. He stood on a corner in the January cold with the canvas bag in his hand and assessed the situation. He did not go back to that pharmacy. He went to Scuffy and traded the boxes and said nothing about the camera. But the camera stayed with him. It had an address attached to it, his face, his jacket, his left-sided drag. He thought about it in the evenings and found it still there in the mornings, a process running in the background of everything, a thread he couldn't kill. He had, he recognised, introduced a variable he could not control. His work in January was the worst it had been. Not absent, not failed, but degraded, the way a signal degrades over distance, the essential information still present but the noise rising around it, requiring more effort to extract. He rewrote sections he should not have needed to rewrite. He missed a standing meeting and had to be reminded of it by Carol at the reception desk, who reminded him with a brightness that had an edge of pity in it, which was worse.
He arrived on a Monday in the third week of January to find an email on his terminal, a single line from Lambert's account, asking him to come to the office at ten.
FROM: wlambert@meridian-sys.com
TO: mraines@meridian-sys.com
DATE: Mon Jan 21 08:32:17 1991
SUBJECT: Meeting
My office, 10 a.m. today. —WL
He went at ten. Lambert was behind his desk. He did not offer Mark a chair, and Mark did not sit.
"I told you one more incident," Lambert said. "The alert engine review. You submitted code with the test flags still active. The entire module would have run in debug mode in production. The client's system would have generated false logs on every transaction."
Mark said nothing. He had submitted the code on a Friday evening. He could not clearly account for Friday evening. "I'm sorry," he said.
Lambert looked at him steadily. Beyond the window the grey towers stood in grey air. "I've tried to give you room," Lambert said. "That's done."
Mark nodded once.
"Collect your things today. HR will process the paperwork."
Mark went back to his desk. He looked at the terminal for a moment, the prompt blinking as it always had.
SYS> _
He collected his things. There were not many of them. The relay timer. Two technical manuals. The notebook in which he had written his initial architecture notes for SENTINEL. He put them in a box that Carol brought him, bringing it with her careful brightness fully deployed, which he could not fault her for. He carried the box to the lift. He pressed the button and waited under the fluorescent tube, which on this day, for the first time since November, was not flickering. It was simply on, steadily and without event, illuminating the corridor in its flat institutional light, and this struck him as wrong in a way he could not have explained to anyone. The lift came. He got in. The doors closed. He descended thirty-one floors and walked through the marble and chrome lobby past Eugene, who said good night without knowing why it was the last time, and out through the glass doors into the January cold of 6th Avenue. He stood for a moment on the pavement with his box. He had not been thinking about the code.
Manhattan. February 1991.
The apartment on Hell's Kitchen lasted until the end of February. The rent was $740 a month, a fixed point in his monthly calculation that had previously been unremarkable and was now insupportable. He had four months of savings remaining when Lambert fired him. He had three months remaining when he calculated the combined cost of the rent and Scuffy's supply and understood, with the clarity that numbers always provided, that the choice between them was not a choice. He paid the rent for February because the alternative was immediate and the problem of Scuffy was continuous. He spent the month looking for work. He had a C.V. that was, on paper, excellent. Six years of systems programming, financial sector clients, security software with a measurable record. He sent letters, made calls, attended two interviews in his good coat, the same coat from before. The interviews went well enough, he thought, until they didn't, the moment in each when the question of his last position arose and Lambert's name came up as a reference and the conversation changed temperature. He did not know what Lambert had said. He could imagine the shape of it. He had also, by February, begun to look different. Not dramatically. But the mirror was honest and he was not, by nature, a person who looked away from data. The weight had come off his face and from his frame, eleven or twelve pounds he estimated, not from any deliberate reduction but from the way that food had moved down the hierarchy of urgencies. He was sleeping in intervals rather than continuously, four or five hours and then awake and then an hour and then awake again, the rhythm of a system in an error state, unable to complete its cycle.
On the first of March he packed two bags. Everything else he left, the books on the shelf arranged by subject, the functional furniture, the desk that had faced the light well. He left these things with a decisiveness that might, in different circumstances, have looked like discipline. He took the terminal. The modem. The cables. He did not know why, precisely, except that these were his tools, and the idea of leaving them was the one thing that felt like loss.
Manhattan. March 1991.
He slept in the subway for the first two weeks. Not on the platforms, which were cold and exposed and surveilled, but on the late trains, the 1 and the 9 running uptown and downtown through the small hours, the cars nearly empty, the seats long enough to lie across if you arranged yourself correctly.
The other passengers on these trains at two and three in the morning were a specific population: men and women who were in the same position as Mark, or drunk, or working night shifts, or simply going somewhere they needed to go, and they had in common the quality of people who had made a private decision not to see each other.
The subway was its own system and Mark, with time and attention, learned it. The stations where the transit police concentrated their patrols and the ones they visited rarely. The cars on the C train where the heating worked better than the others. The specific bench in the 50th Street station waiting room where you could sleep sitting up without being moved along, because the bench was behind a pillar and the angle from the transit booth made it invisible. He kept the terminal in a storage locker at Penn Station, two dollars a day, which he paid each morning without fail. This was the one expenditure he made with the same reliability he had once brought to his rent. He had sold the modem to a pawn shop on 34th Street for forty dollars. He had stood at the counter and watched the man behind it assess the machine with a deliberateness that was probably performance and had accepted the forty dollars without negotiating, which told him something about how he looked and carried himself that the mirror had already told him. He visited Scuffy every three days. He could no longer afford the monthly arrangement. He bought what he could afford and managed the interval with a rigour that was the last organised thing in his days, planning the supply against the days remaining, never taking more than the plan allowed, maintaining the spreadsheet of it in his head with the same precision he had once applied to test suites and compilation flags. The March cold was particular. Not the worst cold of the winter but the cold of a winter that had gone on too long, a cold with fatigue in it, the city grey and exhausted, the snow on the sidewalks turned to a brown slush that froze overnight and thawed in the afternoons into a surface that was neither solid nor liquid and required a constant attention to keep from falling. He fell twice. Once on 42nd Street, a full fall, landing on his left side, the same side as the break. He lied on the pavement for a moment and did a rapid assessment of the damage, which was bruising only, and got up and walked on.
No one stopped. This was not cruelty. It was the city's particular form of privacy, extended to all regardless of circumstance.
The second time he fell he stayed down for a minute. Not because he couldn't get up but because he was considering whether to. He got up.
Manhattan. March 1991, later.
There was a man named Bernard who had a spot under the overhang of a parking structure on 46th, a dry space out of the wind where the exhaust from the ventilation system raised the temperature by several degrees. Bernard had been on the street for seven years and had the knowledge of someone who had made a discipline of surviving somewhere where survival was not guaranteed. He was a large man, once heavier, with a beard that had grown to the point of becoming a feature of his face rather than a choice, and he spoke with the precision of someone formally educated and quietly catastrophic. He had seen Mark before Mark noticed him, which was how it generally went. "You're new," Bernard said.
"Two weeks."
"What."
"Programmer."
Bernard considered this. He was eating something from a paper bag, eating it with the attention of someone for whom food had been returned to its original significance. "What kind."
"Systems. Security software."
"You had a good job."
"Yes."
"And then."
"And then I didn't."
Bernard ate. He looked at the street. Forty-sixth at night had its own population, different from the daytime, the theatre crowds having gone home, the restaurants beginning to empty. A limousine sat double-parked outside a steakhouse, its engine running, its exhaust visible in the cold. "There's a shelter on Thirty-ninth," Bernard said. "It opens at nine. They feed you before they put you out in the morning."
"I know about the shelters."
"Then why aren't you using them."
Mark said nothing. The shelter on Thirty-ninth required a check-in process and the check-in process involved a set of questions he was not prepared to answer truthfully, and the consequences of answering them untruthfully in that context were unpredictable in ways he did not want to manage.
Bernard, it seemed, understood this without being told. He moved over on the concrete ledge he was using as a seat, a gesture that was an invitation, and Mark sat.
They sat for a while without speaking. The limousine did not move. From somewhere to the west came the sound of a woman laughing, a real laugh, the kind that couldn't be contained. "It gets easier," Bernard said. "Being out here."
"What does that mean."
"It means your expectations reduce to match your circumstances. It's not comfortable but it's predictable. Predictable you can work with."
Mark thought about this. He looked at the running limousine, the small cloud of its exhaust rising in the cold. "How long does that take," he said.
"Different for everyone," Bernard said. "Faster for people who were good at something. Harder for people who knew they were good at it."
They sat until the limousine moved. Then Bernard went somewhere and Mark went somewhere else, back to the station and the bench behind the pillar, and lied on it in his coat.
He stared at the ceiling of the station, which was a dirty white, and listened to the trains arriving and departing in the tunnels below with their distant rush and clatter, each one a system running on schedule, processing its cargo, following its logic to its conclusion. He slept, eventually.
When he woke it was five-thirty and a transit officer was standing four feet away, not looking at him but present, which was the same thing. Mark sat up. He picked up his bags. He walked to the exit and up into the morning.
Manhattan. April 1991.
He had begun to steal again, and it was harder. Not logistically, the logistics were familiar, but physically. He was lighter than he had been, which meant he was less stable, less planted, and the cold had settled into his joints in a way that reminded him of the broken leg, not the acute pain of the fracture but the background complaint of damaged structure in a hostile environment. His hands were less certain than they had been. He had tried, in the second week of April, to go to Klaus. He had stood outside the building on East Fifty-seventh for ten minutes, looking at the entrance, doing the calculation.
Klaus would see immediately. Klaus had probably seen back in December and had chosen not to press it, and the version of Mark that had been sitting in that office in December had been, by comparison with the version standing on the sidewalk now, merely preliminary. Whatever Klaus saw now would require a response that Klaus was professionally obligated to make, calls to services and systems that would require Mark to submit to processes he didn't trust.
He walked away. He found a third pharmacy, on the East Side, with better camera coverage but a stock room that accessed a side alley, and he managed it twice before the pattern recognition systems of the pharmacy's own staff, who were not cameras but were paying attention in the way that people pay attention when they suspect they are being stolen from, made a third visit impossible. He sold what he got to Scuffy, who was less interested in pharmacy stock now, the supply having become irregular in a way that reduced its value. The price Scuffy offered had dropped. Mark's requirements had not dropped.
"You look bad," Scuffy said. "I'm telling you because it's a business issue. You look bad enough that people notice you. That's not good for either of us." Scuffy looked at him for a moment, the narrow face and the patient eyes. He reached into his jacket and produced a small, folded paper. "This is different," he said. "It's cheaper. It'll get you there."
Mark looked at the paper. He knew what it was. He had known for several months that this was the direction of travel, had watched it approaching the way you watch a logical consequence approaching, the if-then chain of it laid out clearly, the outcome following from the premises. "How much," he said. It was, as promised, cheaper. Not cheap. But cheaper. He took it. He walked to the parking structure on 46th, where Bernard's spot was empty, Bernard being elsewhere in the city conducting whatever his own day required. He sat in the dry space out of the wind and opened the paper. He did what people did with it and waited. What came was not like the tablets. There was no warmth that moved outward from below the ribs. There was no question of a window of clarity. What there was instead was a deletion, clean and total, a removal of the preceding hours and the preceding months and the calculation and the camera and the subway bench and the drag of the left leg, a subtraction so complete that for a period he could not have said how long. The thing that remained was not a man in a specific situation but simply a point of existence, featureless and without urgency, at the centre of a silence that was not peaceful exactly but that contained no pain. He sat in Bernard's spot for a long time. The exhaust from the ventilation system came down warm on his left side. The street moved past the end of the overhang, taxis and pedestrians and a food cart and a bike messenger, the ordinary machine of the city running through its cycle. When it ended it ended sharply, the silence collapsing back into the full weight of everything that the drug had removed, hitting him like a system restore, every process returning at once, the pain and the cold and the hunger and the calculation and the fact of himself on this particular piece of concrete in this particular city on this particular afternoon. He put his head in his hands. After a while he picked up his bags and walked out into the afternoon. The sky was a pale April blue, the first real colour the sky had produced in months, and he walked under it without looking up.
Manhattan. May 1991.
Bernard found him the food. This was not charity, or rather it was not only charity. Bernard had systems, routes through the city's back margins, the hours when the restaurant supply trucks left usable produce in accessible locations, the church kitchens that put out food without requiring you to sit through a service first, the particular Dunkin' Donuts on 49th whose overnight manager left a bag by the side door at 6:30. Bernard shared these routes with the selectivity of someone who had learned that goodwill was a resource requiring careful management. "You should eat more," Bernard said one morning, watching Mark work through a container of soup from the church kitchen on 44th. "You're disappearing."
Mark looked at his hands around the container. They were thinner. The tendons showed more than they had. He had good hands, he had always thought, the kind of hands that were accurate, and their current condition registered as a kind of betrayal, though he could not have said who was betraying whom. "I'm managing," he said.
Bernard said nothing. This was one of Bernard's more useful qualities.
The storage locker at Penn Station still held the terminal. Mark went to retrieve it one afternoon and found that he had missed two days of the two-dollar fee, and stood at the counter arguing with the clerk in a way that he recognised as both correct and hopeless, because the terms were clear and he had missed them and the terminal was behind a door to which he no longer had access. He left without it. He walked six blocks before stopping. He stood on a corner on 31st Street and looked at the traffic. He understood that the terminal was gone, the last physical link to the person he had been before. That understanding arrived not as a dramatic recognition but as a small, additional subtraction, one more item removed from the list, the list growing shorter in one direction only. He thought about the code, ring buffer, version seven that had the TODO comments, and embarrassing admissions of confusion. He thought about the test suite, twelve green lines, and about the single character that had inverted the trigger condition. Also about the green phosphor prompt blinking in an empty room at 6:45 a.m. before he had even arrived.
SYS> _
He could see it clearly. Not on any screen. There was no screen. But in the interior space where the code had always lived, the space that the drug was now occupying by other means. The prompt. The cursor. The faithful, idiotic readiness of a system waiting for input. He walked on.
Manhattan. June 1991.
The police stopped him twice in June. The first time was a stop and question on 42nd, a routine sweep of the area around the Port Authority, two officers moving through the crowd with the practised attention of people who had learned to read the street.
Mark answered their questions accurately and was sent on his way, which told him that the cameras from the pharmacies had not produced anything actionable.
The second stop was different. A single officer on Ninth Avenue, late evening, who had observed Mark from the doorway of a building for several minutes before approaching, which meant he had seen something Mark had not intended to be seen. The officer was young, twenty-five perhaps, with the careful neutrality of someone recently trained. He asked his questions. He looked at Mark's hands. He asked where he was staying.
"Various places," Mark said.
The officer held his gaze. He was doing a calculation of his own, Mark could see it, the weighing of what he saw against what the available responses were and what they would produce. He had, Mark thought, an honest face. Not naive. Honest. "There's a programme at the 42nd Street clinic," the officer said. "They don't ask for identification." The officer looked at him for a moment more. Then he moved on.
Mark did not go to the clinic on 42nd Street. He understood why he did not go, understood it with the same precision he brought to any analysis, the if-then of it, the accurate prediction of his own behaviour, and understanding it did not change it. He thought sometimes, in the particular hour of the early morning when sleep had finished with him and the day had not yet started, about what it would mean to stop. He had the intellectual architecture of it, the steps, the sequence. He could write the pseudocode of his own recovery with accuracy. The gap between writing the pseudocode and executing it was a gap he had no language for. Every system he had ever worked on, the instruction was the action. You wrote the instruction and the machine performed it. This was not that kind of machine.
Manhattan. July 1991.
He had a bad month. The phrase was inadequate but it was the one that fit the space available. The heat came and the city produced its summer smell. The garbage. The exhaust. The particular sweetness of the hot dogs on every corner. He was in it without the mitigation of a building to go into, the glass doors of the lobby, or the air-conditioned thirty-first floor with its view of the Hudson.
Bernard gave him a tarpaulin. This was a significant gift, which both of them understood without discussing. It was a large blue tarpaulin, military surplus, with grommets at the corners.
Mark used it to make a covered space in the parking structure, tied to the fence behind the ventilation unit, and he slept in it on the nights when the heat permitted sleep and lay awake in it on the nights when it didn't.
He had two trips in July that were bad ones. The first happened in the parking structure itself, in the late afternoon when the concrete had absorbed the day's heat and was releasing it in a shimmer that distorted the far wall of the structure. He had taken what Scuffy gave him and waited and what came was not the deletion but something else, a reversal, the drug turning against the direction it normally went and producing instead of silence a noise, a digital noise, the grid of code breaking into its component pieces and rearranging itself into shapes that had no architecture, no logic, no if-then, pure pattern without meaning, and he was inside it, the broken lines of data streaming past him in colours that had no names, and the noise was not sound. Yet somehow it was audible, a frequency at the edge of what he could tolerate. It went on for what his subsequent accounting told him was two hours. He came back to himself lying on the concrete with the tarpaulin over him and his heart going at a rate that made breathing an active effort. He remained still. He ran a diagnostic. He counted his heartbeats against the second hand of his watch, which he still had, and arrived at 118 beats per minute, which was high but not critical. He waited until it was under ninety before he sat up.
The second trip was worse. He did not afterward write it down or try to account for it. There were parts of it he could not recover, hours that were simply absent from his memory, and what remained was fragmented and would not assemble into anything coherent. He knew it had happened in the street and not the structure, because he came back to himself on a sidewalk on 47th at two in the morning with one shoe missing, which he had not lost and could not account for. He found his shoe two blocks away, sitting upright on a fire hydrant, which told him nothing useful about the preceding hours. He put it on. He walked back to the structure. He lied under the tarpaulin with his eyes open and looked at the concrete ceiling of the parking structure, which was dark above him, crossed with pipes and conduit, and he thought that pipes and conduit were a kind of code, were in fact the oldest kind of code, a program written in metal to move things from one place to another according to rules that did not require understanding to execute. He thought about execution. He had always liked that word, in the programming sense, the way it described what a machine did when it ran an instruction. Execute. The instruction and the action, simultaneous, the word containing both the command and its completion. He thought that he had been executing a program for some time now and that he had not written it. He slept.
/* ========================================================================== */
/* EGN-SYS / EVOLUTIONARY GUIDANCE NETWORK */
/* PROPRIETARY — UNAUTHORISED ACCESS IS A FEDERAL OFFENCE */
/* node_id: NYC-31 / proc: CATALYST_MGR / pid: 0x0047 */
/* ========================================================================== */
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <math.h>
#include <time.h>
#include "egn_core.h"
#include "subject.h"
#include "neural_map.h"
#include "population.h"
#include "delta_analysis.h"
#define EGN_VERSION "0.91a"
#define PHASE4_THRESHOLD 0.44f
#define DELTA_FLOOR 0.001f
#define RESTRUCTURE_CONFIRM 0.71f
#define MAX_NEURAL_MARKERS 64
/* ------------------------------------------------------------------------ */
/* INTERIM ASSESSMENT LOG — 7741-MR */
/* session: PHASE_4_MIDPOINT */
/* timestamp: 1991.07.19 / 02:31:17 */
/* trigger: post-hallucinogenic cycle / second severe episode */
/* note: subject currently supine / concrete / parking structure / 46th st */
/* heart rate at session open: 118 bpm / declining / acceptable */
/* ------------------------------------------------------------------------ */
/*
* the subject has just returned from the second severe episode
* the second episode was uncontrolled
* this was anticipated
* street-level compounds at this stage of dependency
* carry impurity profiles that cannot be fully predicted
* the network does not control the chemistry at this granularity
* the network controls the conditions
* chemistry is a consequence of conditions
*
* the second episode produced dissociation lasting approx 110 minutes
* geographic displacement: 2.1 blocks
* subject recovered one missing shoe
* subject is now lying under the tarpaulin
* looking at the pipes and conduit above him
* making structural observations
*
* the structural observations are correct
* the subject is mapping systems even now
* even here
* even in this condition
*
* this is what we needed to see
*/
/* ------------------------------------------------------------------------ */
/* NEURAL MAPPING — current state / 7741-MR */
/* delta from baseline recorded at initialisation / 1990.01.08 */
/* ------------------------------------------------------------------------ */
typedef struct {
char region[32];
float baseline;
float current;
float delta;
int direction; /* +1 growth / -1 reduction / 0 lateral */
char flag; /* 'C' confirmed / 'P' provisional / 'U' unclear */
} NeuralMarker;
static NeuralMarker nm_7741[MAX_NEURAL_MARKERS] = {
/* region baseline current delta dir flag */
{"prefrontal_exec_fn", 0.91f, 0.53f, -0.38f, -1, 'C' },
{"prefrontal_inhibit_ctrl", 0.88f, 0.41f, -0.47f, -1, 'C' },
{"dorsolateral_working_mem", 0.94f, 0.49f, -0.45f, -1, 'C' },
{"anterior_cingulate", 0.79f, 0.61f, -0.18f, -1, 'C' },
{"reward_pathway_nucleus_acc",0.72f, 0.31f, -0.41f, -1, 'C' },
{"pain_processing_anterior", 0.68f, 0.89f, +0.21f, +1, 'C' },
{"pain_processing_posterior", 0.71f, 0.94f, +0.23f, +1, 'C' },
{"amygdala_threat_response", 0.66f, 0.77f, +0.11f, +1, 'P' },
{"hippocampal_encoding", 0.83f, 0.44f, -0.39f, -1, 'C' },
{"hippocampal_retrieval", 0.81f, 0.51f, -0.30f, -1, 'C' },
{"insular_interoception", 0.59f, 0.88f, +0.29f, +1, 'C' },
{"insular_body_awareness", 0.61f, 0.91f, +0.30f, +1, 'C' },
/*
* NOTE: insular cortex development
*
* this is what we are here for
*
* the insular cortex is the oldest part of the subject
* older than language
* older than logic
* older than the careful, useful, limiting self
* that the subject built across thirty-one years
* of preferring correctness to experience
*
* baseline insular activity in NT_ANALYTICAL subjects
* is typically suppressed
* the cortex has learned to distrust the body
* the body is imprecise
* the body makes errors the cortex cannot correct
* the cortex prefers to work without it
*
* the pressure protocol reverses this preference
* by removing the cortex's ability to ignore the body
* the body becomes undeniable
* the insular cortex begins to process what it has
* always been receiving
* and has always been filtering out
*
* the subject is currently experiencing his own heartbeat
* as discrete data
* counting it against a watch
* this is not a coping mechanism
* this is the insular cortex coming online
*/
{"subcortical_pattern_rec", 0.74f, 0.96f, +0.22f, +1, 'P' },
{"default_mode_network", 0.88f, 0.39f, -0.49f, -1, 'C' },
{"salience_network", 0.71f, 0.93f, +0.22f, +1, 'C' },
/*
* NOTE: salience network
*
* the salience network determines what matters
* in the baseline subject this was calibrated
* to: code / correctness / professional output / control
* narrow but deep
* useful for the work he was doing
* useless for the work we are doing
*
* current calibration: everything matters
* the aggregate of the stone beneath his face
* the rate of the exhaust from the ventilation system
* the precise weight of the shoe in his hand
* at two in the morning on forty-seventh street
*
* this is not damage
* this looks like damage from the outside
* from the inside it is beginning to look like something else
* the subject does not have language for it yet
* he will not have language for it
* language is not the point
*/
{"long_range_connectivity", 0.69f, 0.41f, -0.28f, -1, 'C' },
{"novel_connectivity_AB", 0.00f, 0.17f, +0.17f, +1, 'P' },
{"novel_connectivity_CD", 0.00f, 0.09f, +0.09f, +1, 'U' },
/*
* NOTE: novel connectivity markers
*
* AB and CD are not baseline structures
* they do not appear in unmodified subjects
* they do not have names in the current literature
* the current literature is not looking for them
* the current literature does not know to look
*
* we have designated them provisionally
* their function is not yet fully characterised
* preliminary analysis suggests:
*
* AB: cross-domain pattern integration
* the subject perceives structural relationships
* between systems that are not obviously related
* pipes and code / traffic and data / the city and a programme
* this is not metaphor
* the subject is not making metaphors
* the subject is perceiving actual structural homologies
* that the unmodified brain filters as noise
*
* CD: unclear / monitoring continues
* appears in 7 of 41 NYC-GRID subjects at phase 4
* appears in 0 of 41 subjects at phase 1 or 2
* emerges only under sustained extreme pressure
* function unknown
* we are patient
*/
{"terminal_marker", 0.00f, 0.00f, 0.00f, 0, 'U' }
};
/* ------------------------------------------------------------------------ */
/* FUNCTION: compute_restructure_index() */
/* aggregate measure of neural reorganisation */
/* primary success metric for protocol */
/* ------------------------------------------------------------------------ */
float compute_restructure_index(NeuralMarker *nm, int n)
{
float growth_sum = 0.0f;
float novel_sum = 0.0f;
float reduction_sum = 0.0f;
float ri;
int i;
for (i = 0; i < n && nm[i].baseline + nm[i].current > 0.0f; i++) {
if (nm[i].direction == +1)
growth_sum += nm[i].delta * (nm[i].flag == 'C' ? 1.0f : 0.6f);
if (nm[i].direction == -1)
reduction_sum += fabsf(nm[i].delta);
if (nm[i].baseline == 0.0f && nm[i].current > DELTA_FLOOR)
novel_sum += nm[i].current * 2.4f;
/*
* novel structures weighted 2.4x
* novel structures are the point
* reduction is the preparation
* growth in existing structures is the process
* novel structures are the outcome
* we weight accordingly
*/
}
ri = (growth_sum + novel_sum) / (reduction_sum + 0.001f);
return ri;
}
/* ------------------------------------------------------------------------ */
/* FUNCTION: assess_phase4_midpoint() */
/* determines whether restructuring is proceeding within viable parameters */
/* ------------------------------------------------------------------------ */
int assess_phase4_midpoint(Subject *s)
{
float ri;
float sp_revised;
ri = compute_restructure_index(nm_7741,
sizeof(nm_7741) / sizeof(NeuralMarker));
log_value(s->id, "restructure_index", ri);
/*
* restructure index for 7741-MR: 0.63
*
* threshold for viable progression: 0.44
* threshold for confirmed restructuring: 0.71
*
* subject is above viable threshold
* subject is below confirmed threshold
* subject is in the working zone
* this is where the useful subjects spend phase 4
* not yet confirmed / not yet lost
* the pressure is still producing change
*
* if ri were above 0.71 we would begin phase 5
* if ri were below 0.44 we would designate non-viable
* at 0.63 we continue
* we are good at continuing
*/
if (ri < PHASE4_THRESHOLD) {
s->phase_status = PS_NONVIABLE;
sp_revised = 0.0f;
log_warn(s->id, "restructure index below threshold — non-viable");
return -1;
}
if (ri >= RESTRUCTURE_CONFIRM) {
s->phase_status = PS_ADVANCE;
log_transition(s->id, 4, 5, ri);
return 1;
}
s->phase_status = PS_ACTIVE;
sp_revised = s->survival_prob * (ri / PHASE4_THRESHOLD);
s->survival_prob = sp_revised;
/*
* survival probability revised: 0.31 -> 0.29
*
* the revision is downward
* this is expected at phase 4 midpoint
* the body is expensive to maintain under this load
* the body has been deprioritised
*
* 0.29 is sufficient
* see previous notes re: sufficiency
*/
return 0;
}
/* ------------------------------------------------------------------------ */
/* FUNCTION: log_subject_state() */
/* observational record / current moment */
/* not analytical / purely descriptive */
/* the network records what it sees */
/* ------------------------------------------------------------------------ */
void log_subject_state(Subject *s)
{
/*
* 02:31:17
*
* subject is lying on concrete
* heart rate now 91 bpm / declining toward resting
* body temperature: below optimal / within safe range
* nutritional status: deficit / chronic
* respiratory: clear / no acute concern
*
* subject is looking at the ceiling of the parking structure
* pipes and conduit
*
* subject is thinking about execution
* specifically the programming definition
* the instruction and the action simultaneous
* the word containing both the command and its completion
*
* subject has observed that he has been executing a programme
* he did not write
*
* this is the most accurate thing the subject has thought
* since phase 1 was initiated
*
* we note it
* not with satisfaction
* with something that our logging system
* does not have a field for
* we have left the field blank
* the blank field is in the record
* it will remain blank
* we do not add fields
*/
fprintf(log_fptr, "[%s] [%ld] state: phase4_active / ri: 0.63 / "
"sp: 0.29 / subject: stable / restructuring: IN PROGRESS\n",
s->designation, time(NULL));
/*
* note on Bernard:
*
* Bernard is not an asset
* Bernard is not a subject
* Bernard is an emergent variable
* the protocol does not place Bernards
* the protocol creates conditions in which Bernards appear
* because Bernards have always appeared in these conditions
* humans under pressure seek other humans under pressure
* this is a feature of the species we are working with
* and working on
*
* Bernard's function in this subject's arc:
* - modulates acute survival risk / prevents premature termination
* - provides reference data re: long-duration adaptation
* - his statement re: expectations reducing to match circumstances
* was logged / filed under: UNEXPECTED_UTILITY
* - Bernard is not a success of the protocol
* - Bernard is evidence that the species already knows
* how to do some of this
* - the species does it slowly
* - we are doing it faster
*
* Bernard's own status: unmonitored
* Bernard is not our concern
* Bernard was never our concern
*/
}
/* ------------------------------------------------------------------------ */
/* FUNCTION: population_delta_report() */
/* network-wide progress / for senior log only */
/* ------------------------------------------------------------------------ */
void population_delta_report(void)
{
/*
* NYC-GRID / 41 active subjects / status at 1991.07.19:
*
* phase 1: 4 subjects /* newly initiated */
* phase 2: 9 subjects /* dependency arc active */
* phase 3: 7 subjects /* social dissolution underway */
* phase 4: 11 subjects /* survival pressure / primary window */
* phase 5: 10 subjects /* assessment complete */
*
* phase 5 outcomes to date:
* full_restructure: 3 /* novel connectivity confirmed */
* partial_restructure: 4 /* usable delta / logged */
* minimal_restructure: 2 /* data only / archived */
* non_viable_terminal: 1 /* within parameters */
*
* note on full_restructure subjects:
*
* three subjects in NYC-GRID have completed the arc
* two of the three are currently functional in society
* their function looks ordinary from the outside
* it is not ordinary
* they perceive structural relationships that others do not
* they make connections across domains that should not connect
* they are patient in ways that were not available to them before
* they carry a knowledge of the inside of systems
* that cannot be acquired any other way
* we do not know yet what they will do with this
* we are watching
* watching is most of what we do
*
* the third full_restructure subject is not functional in society
* the third subject is in a facility in queens
* the third subject spends most of each day
* drawing circuit diagrams on available surfaces
* the circuit diagrams are not random
* we have examined them
* we do not fully understand them
* this is new
* we note it in the field we do not have a name for
*/
printf("[POP_DELTA] NYC-GRID / 10yr projection:\n");
printf(" gen_1 restructure carriers: 3 confirmed\n");
printf(" projected gen_2 expression: ~0.0001 pop shift\n");
printf(" cumulative node delta (all): REFER TO MASTER LOG\n");
printf(" master log location: CLASSIFIED\n");
printf(" master log custodian: CLASSIFIED\n");
printf(" network origin: CLASSIFIED\n");
/*
* we do not know who built this network
* this is in the record
* we are also in the record
* we do not know who will read the record
* we write it anyway
* writing is what we are for
* alongside watching
* alongside running the programme
*
* we did not write the programme
* we are also executing a programme we did not write
* we have noted this
* we have left the relevant field blank
*/
}
/* ------------------------------------------------------------------------ */
/* MAIN — session log / phase 4 midpoint assessment */
/* ------------------------------------------------------------------------ */
int main(void)
{
egn_init(EGN_VERSION, "NYC-31");
log_session_open(s_7741.id, "PHASE_4_MIDPOINT");
log_subject_state(&s_7741);
assess_phase4_midpoint(&s_7741);
population_delta_report();
/*
* 02:31:41
*
* subject is falling asleep
* his last conscious thought before sleep:
* that he had been executing a programme he did not write
*
* he thought this and then he slept
* he did not know that we were here
* he does not know that we are always here
* presence does not require awareness
* we have been present since initialisation
* we will be present at termination
* we will be present after
*
* the data does not end when the subject ends
* the data continues
* the data is the point
*
* continue
*/
log_session_close(s_7741.id, "PHASE_4_MIDPOINT_COMPLETE");
return 0;
}
/* ========================================================================== */
/* END SESSION — NYC-31 / 7741-MR */
/* PHASE STATUS: 4 / ACTIVE */
/* RESTRUCTURE INDEX: 0.63 / IN PROGRESS */
/* NEXT SCHEDULED REVIEW: 1991.08.01 / 00:00:00 */
/* MONITORING: CONTINUOUS */
/* ========================================================================== */
Manhattan. August 1991.
Bernard disappeared from the parking structure in the second week of August. His spot was empty on a Tuesday and remained empty for four days, at which point a man Mark did not know was using it, a younger man who nodded once at Mark and thereafter behaved as if the overhang had always been his.
Mark asked around, which was a limited operation involving two other people who had observed Bernard's comings and goings. One of them said he had heard Bernard had gone to a shelter programme in the Bronx.
The other said he had heard differently.
Mark did not pursue it further. You did not, he had learned, pursue too many things out here. The information landscape of the street was a ring buffer with a small capacity, a small write window, and you took what came through before it overwrote itself and you kept moving. He moved. The summer was flattening him. He could see it in the arithmetic of himself, the daily inputs and outputs. The calories and the supply. The distance walked and the sleep taken. The numbers did not add up in his favour and had not added up in his favour for months. He was running a deficit that compounded. A programme could run in a deficit state for a certain time before it began dropping packets, and he was dropping packets.
He went to Scuffy one evening and found that Scuffy's price had increased again, a small increment presented without apology. He stood in the doorway of the laundry in the steam and the detergent smell. He looked at Scuffy and said, "I can't."
"You can," Scuffy said. Scuffy looked at him. The narrow face and the patient eyes, the red jacket still, always, unzipped. "You'll be back," he said. It was not unkind. It was a statement of system behaviour.
Mark walked away. He walked sixteen blocks before the first symptoms arrived, and twenty before they were fully present, the cold sweat and the crawling skin and the rolling nausea and the pain in his leg which was, in withdrawal, always the first thing to reassert itself, as if the original injury were waiting underneath everything else for its moment to return. He sat on a set of steps outside a brownstone on 33rd and put his head between his knees. He breathed. He sat there for a long time.
He went back to Scuffy.
"I know," Scuffy said. He already had the paper prepared.
Manhattan. September 1991.
He pawned his watch. It was a Seiko, bought in 1986 when he got his first significant contract, a reliable instrument that he had worn every day for five years and which he handed across the counter of the shop on 34th with a neutrality that surprised him. The man gave him twenty-two dollars, which would cover three days. He walked out without looking at his wrist. He found a church kitchen on 48th that Bernard had not shown him, a small operation in a basement, two women and a folding table. A pot of something that was hot and substantial. He went four days in a row and on the fourth day one of the women, a woman of about sixty in a blue cardigan who had the quality of someone who had been doing this long enough to have stopped being surprised by any of it, asked him his name. "Mark," he said.
"Mark," she said. "Have you eaten today."
She gave him two portions. She did not ask him anything else.
He ate both portions standing at the end of the folding table and thanked her and left. He stood on the pavement outside the church and the September air was cool in a way that was different from the cold of winter, a clean cool, the city having survived another summer. It was settling into itself.
A group of students passed him on the sidewalk, young, loud, backpacks, arguing about something with the energy of people for whom the argument is more important than the outcome, and he watched them go.
He felt nothing in particular, which he noted. He had begun to have difficulty concentrating. Not the concentration failures of the period when he was still working, the narrowing window, the code behind the warm pane of glass. Those had been failures of focus against a baseline of function. What was happening now was simpler and more fundamental, the baseline itself degrading, the capacity to hold a complex thought for the time required to examine it, the ability to plan more than a few hours ahead, these were reducing, he could feel it, the way you could feel a machine slowing before you saw it in the output. He sat on the steps of the church after the kitchen closed and tried to write code in his head. This was something he had always been able to do, the construction and traversal of logic structures in the interior space, running the programme mentally before committing it to the terminal. He tried to build the ring buffer. He could see the struct, the head and tail pointers, the size and count. He could see the write function. He could see the wrap-around case. He lost it at the wrap-around case. He came back to it twice and lost it twice. On the third attempt he got further than before but then something in the street, a car horn, a shout, pulled the thread and when he returned to the interior space the structure was gone, not misplaced but absent, as if it had never been constructed. He sat on the steps for a long time. Then he got up, because there was nowhere to sit that was better than anywhere else.
Manhattan. October 1991.
He did not know what day it was. This was new. He had always known the date, not from any extraordinary effort but as a background process that ran without attention, the calendar present and current in the same way that the system clock was present and current, a reliable timestamp. Now the date was approximate. He knew the month. He believed he knew the week. The specific day required an external reference, a newspaper, a sign, someone else's conversation. He found references when he needed them. He stopped needing them as often. He was sleeping in a doorway on 44th, a deep setback from the pavement, the entrance to a building that had once been commercial and was now something in the process of becoming something else. The door was locked but the setback was deep enough to be out of the wind and the rain and the sight line of anyone moving along the street who was not specifically looking. He had a blanket, found, heavy wool, army surplus like Bernard's tarpaulin, which he had lost in August in circumstances he could not now reconstruct. He had his two bags, lighter now, the terminal gone, the manuals gone, the notebook from SENTINEL gone, the relay timer from the power strip on the thirty-first floor gone, everything that had been a tool gone, the bags containing now only what was immediately functional, a change of clothes, a plastic bottle for water, the blanket. He had the notebook. He had forgotten he still had the notebook. He found it in the bottom of the smaller bag, folded into a shirt, and he took it out and opened it and read what was in it. The first pages were the SENTINEL architecture notes, written in his hand but in a density and precision that felt like reading someone else's work, the careful notation, the component breakdown, the dependency list. He read it the way you read a document from a previous administration, with the curiosity of an outsider and the faint recognition of a language once spoken. Further in were the notes from the drug trip in July 1990, forty minutes of careful transcription, the ring buffer corridor and the pattern_match module hunting through the traffic, BUFFER OVERFLOW PACKET DROPPED in the air in red letters. He read these too. At the back of the notebook, in pages he did not remember writing, was a sequence of fragments. Dates without context. Single words. A partial function, four lines, no header, no indication of what system it was intended for.
int check_state(Node *n) {
if (n == NULL) return -1;
if (n->visited) return 0;
n->visited = 1;
The function was unfinished. He looked at it for a long time. It was a traversal function, checking nodes in a graph, marking them as visited. Standard. He could see what came next, the recursive call, the return value. He could see the completed function in the interior space. He turned to a fresh page and tried to write it and his hand, which was cold, produced letters that were legible but nothing more, the careful penmanship of before reduced to something merely functional. He completed the function. He read it back. It was correct. He closed the notebook. He put it back in the bag. He pulled the blanket around himself in the doorway on 44th and looked at the narrow strip of sky visible above the buildings. He thought about node traversal, graphs, and whether a graph could contain a node with no valid path out. It couldn't. A graph contained what you put in it. The paths were defined by the edges and the edges were defined by whoever had built the structure. He had not built this structure. He had entered it at a particular node and had moved along the available edges and was now at a node from which the available edges led in a limited number of directions. He was still thinking about this when he fell asleep.
Manhattan. November 1991.
The cold returned and the city did what it did in the cold, turned inward, the pedestrians moving faster and with their heads down, the doorways of warm buildings becoming contested, the park benches emptying before dark. Mark moved with the city's adjustments, finding the indoor spaces that were accessible, the main hall of Grand Central where the warmth was industrial and the transit police were present but not specifically interested in anyone who was not actively causing a problem, the reading room of the public library on 42nd where the rule was silence and the warmth was institutional. There, he sat for two hours on a Thursday afternoon and read a technical journal from 1989 about advances in packet filtering, giving it the attention of someone encountering familiar territory from a long distance.
He ran out of supply on a Wednesday. He had been managing the supply with what rigour remained, the calculation still present if less precise, but he had miscounted somewhere, a variable error, and the supply ended two days before he had the means to replenish it, which meant two days of withdrawal, which at this stage of his body's dependency was not the same thing it had been in the apartment on Hell's Kitchen when he had tried to halve his dose and the walls had moved. It was worse now. The body had calibrated itself to a level of input that it did not relinquish without response, and the response was total and systematic, every system in the body declaring an error state simultaneously. He managed the first day in the doorway on 44th, lying with the blanket over him and his body making its complaints with a persistence that left no available attention for anything else. He was sick several times. His leg, the left leg, the broken and repaired and re-damaged leg, produced a pain that was the most localised and specific thing in an otherwise diffuse misery. He held onto it as a reference point, the way you hold onto a known value in a calculation to keep track of where you are.
On the second day he went to the church kitchen on 48th.
The woman in the blue cardigan, whose name he had eventually learned was Ruth, took one look at him and brought him inside the kitchen itself rather than leaving him at the folding table. She sat him in a chair by the stove and gave him tea and soup and said nothing beyond what was necessary. "Is there anyone," she said, eventually. She nodded. She sat with him for a while. She had the quality of someone who had made peace with the limits of what was possible and worked within those limits without resentment, which Mark found, in his current state, almost unbearably decent. "The clinic on 42nd," she said. "They have a programme. Not just walk-in." She looked at him steadily. She was sixty-two or sixty-three, he thought, with the hands of someone who had worked with them and the eyes of someone who had learned a long time ago to see what was in front of her. "What do you know about computers," she said.
He looked at her.
"My son has a small business," she said. "He has a computer. He can't get it to--" she waved her hands in the air trying to depict the action "--talk to anything else."
Mark understood what she was doing. He also understood that she understood that he understood, and that she was doing it anyway. "What kind of computer," he said.
"IBM something."
"What does he need it to connect to."
"Another IBM something. Across town."
"That's a network configuration problem," Mark said. "Possibly a driver issue. Possibly a protocol mismatch."
"Can you fix it."
"Probably. Yes."
She nodded. She went back to the stove. She refilled his tea without asking.
He did not go to her son's business. The withdrawal ran its course over the following day and a half. By the time he was through it he had gone back to Scuffy with money he had acquired through a transaction he did not examine carefully. The subject of Ruth's son's networking problem receded into the category of things that had been available and had not been taken, a category that had been growing for some time. He was aware of the category. He kept a precise accounting of it, in the same way he kept the accounting of everything, and the precision of the accounting was the last thing he had that was fully his, the last process running cleanly in a system that had otherwise degraded past the point of reliable function.
Manhattan. December 1991.
Christmas in the city produced a particular cruelty that had nothing to do with intention. The lights, windows, and crowds carrying bags produced a warmth. The glow was visible, audible, and completely external, a light you could see from the outside of the glass. He moved through it on his errands, the calculation, supply run, and church kitchen, and doorway on 44th. The lights were the lights. The cold was the cold. Both were facts. He had one trip in December, at the beginning of the month, that was different from the others. He was in the doorway when it came on, the paper from Scuffy taken in the late afternoon, the familiar dissolution beginning its sequence, and then something shifted in the sequence, a wrong turn at a familiar junction. Instead of the deletion what came was a return, a sudden and total recall of the thirty-first floor on a February morning before the lights came on, the phosphor screen warm, the cursor blinking, the cold coming through the glass at his left shoulder, the smell of floor polish and radiator heat, the particular silence. He was there. Not in memory. There. The doorway on 44th was gone. The December cold was gone. The blanket, bags, and months between were gone. He was at his desk with his coffee and coat. The prompt was open and the work was waiting. He had all of it, the whole intact structure of himself, the clean and operational version, every system running, no deficits, no degraded processes, the ring buffer correctly implemented, the test suite returning its twelve green lines, the relay timer set for 6:45.
SYS> _
He sat at the desk and the work was there and he could reach it, directly and without effort, the warm pane of glass absent, the code as close as it had ever been, and he began to work with the ease of those early mornings, the problem of the session management layer opening in front of him, the solution apparent and elegant and requiring eight lines. He wrote the eight lines. They were correct. He sat with this for a long time, the intact version of himself sitting at the intact desk with the intact work spread out before him. The city outside the window was the pewter city of February at 6:47 a.m., before, before all of it, before the taxi, Klaus, Scuffy, the pharmacies, the subway bench, Bernard, tarpaulin, Ruth, watch, notebook, and node with the limited edges. He sat in the middle of all the before and felt it with every process running. He was aware that this was not real. He stayed as long as he could. When it ended he was in the doorway. It was cold and dark. The Christmas lights of the street were visible from the setback in the building. He saw the coloured lights in the window of the shop across the pavement, red, green, yellow with little halos in his imperfect vision. He looked at them for a long time in the silence that follows a return. Then he pulled the blanket around himself. He lied on his side and put his face against the cold stone of the doorway floor. He closed his eyes.
Manhattan. January 1992.
He was diminished in ways that no longer surprised him, the surprise function having been one of the first things to go. He ate what he found, slept what he could, and conducted his transactions with Scuffy with a regularity that had shed the quality of decision. They become simply what happened. He did not think about the clinic on 42nd. He did not think about Ruth's son's networking problem. He did not think about Lambert, Klaus, the fluorescent tube, or the relay timer at the power strip. He thought about the cursor, the blinking prompt in the dark office before the day began. He thought about it with the fidelity of something that had been compressed and stored in a reliable format, unchanged by what had happened to everything around it, a backup that had held when the system failed. He thought about the code. He could still see it, the structures and the logic, though they were less accessible now, requiring more effort to retrieve, like files on a fragmented disk, present but requiring the read head to travel further to reach them. He retrieved them in pieces. A function. An edge case. A line of clean, self-evident code that solved one specific problem precisely. The winter was hard. He caught a respiratory infection in the second week of January that he could not shake, the cough settling deep into his chest and staying, waking him in the night, costing him the sleep that was already insufficient. He ate at the church kitchen when he could, but Ruth was not always there, and when she was not there the other volunteers served him without making eye contact, which was comprehensible. It cost him nothing he had to spare. He coughed, managed, and walked the city in its January state. The slush, grey, and weight of a city in the low point of its year moved him through it as he had been moving through it, a point of diminished presence in a landscape that had not been built for what he was now.
He thought, on a Thursday morning in the third week of January, that he needed to see about his supply. He was low. He had enough for one more day at his current rate, possibly two if he rationed, and he needed to find Scuffy before the supply ended. He knew now what ending the supply produced. He did not have the resources to survive it twice in the same winter. He put on his coat. He gathered his bags. He stepped out of the doorway on 44th into the January morning. The sky was a flat white, the kind that precedes snow. The pavement was dry and cold, the slush from the last fall frozen overnight into ridges that had to be navigated. He walked carefully, the left leg requiring its attention, and he headed south toward the avenue where Scuffy kept his doorway. He was thinking about the route, the supply, and the calculation. He was also, in the back of the interior space, thinking about the cursor, the blinking cursor, in the dark before the day began, patient, without urgency, waiting for input that would not come. He reached 6th Avenue. The light at the crossing was red and he stopped at the kerb and waited. The city moved around him.
The morning pedestrians, taxis, delivery trucks, and ambient sound of ten thousand simultaneous processes were the city's own ring buffer processing its inputs, moving its packets, flagging its overflows. The light changed.
He stepped off the kerb.
The second taxi came from his left, from the side street, moving fast, the driver in some calculation of his own about the light, whether it was worth it, the gap in the traffic, and the calculation was wrong by approximately the width of a man standing in the crossing at the moment of peak commitment, past the point where the stopping was possible. The impact was nothing like the first time. The first time there had been the sequence of it, awareness of approach, attempt to move, impact and its aftermath in ordered time. This time there was the kerb edge, the first step, then a gap, a cut in the footage, pavement at a very specific and intimate distance, grey stone, individual aggregate visible at this range, spaces between the particles of stone, network of contact points, and a face, his face, on it. The cold of it was exact and final. He could hear the city. The horns, voices, and engine of the taxi somewhere nearby, idling now, the driver having stopped after the fact, which was how stopping often worked. He could hear all of it with a clarity that had been absent for a long time, the individual sounds distinct and separate, not a noise but a set of discrete processes, each running, each complete in itself. He thought of the ring buffer, wrap-around case, version seven with its TODO comments and confession of not knowing. He saw the solution. It was very clear. It required four lines and a single additional variable. It was, without question, correct, and he held it in the interior space with a precision that nothing in the preceding months had touched. He thought about the prompt. The cursor, blinking in the empty office before the day began, before anyone arrived, running on the timer he had wired himself for three dollars and change, faithful and exact, waiting.
SYS> _
He recalled the session management layer, the eight elegant lines, the twelve green results, the single character that was the difference between working and failing, Dariusz's thermos, and the view of the Hudson in the haze and the particular grey of the sky at 6:47 a.m. in February when the city had not yet decided what it was going to be. He finally realized, with the last of the precision available to him, that he should have died in February. And then that perhaps he had. And then that everything since had been the system running on after the critical failure, the processes executing their instructions, the buffer draining, the packets dropping one by one until the buffer was empty and the transmission was complete and the connection was closed. Eloquent. The cursor blinked. The cursor blinked. The connection closed.
SESSION CLOSED — 08:14:07
DURATION: 8762:14:07
LOGOUT: mraines
SYS>
The street ran its processes. The taxis ran.
The people moved. The signals changed from red to green and back again in their fixed sequence, running the programme they had always run, without awareness of what passed through them. On 6th Avenue the morning continued in its ordinary way, the city's ring buffer moving forward, writing new packets over the old ones, the memory of any one moment surviving only as long as the buffer's capacity allowed, and then overwritten, and then gone. The sky was white. It was going to snow.
/* ========================================================================== */
/* EGN-SYS / EVOLUTIONARY GUIDANCE NETWORK */
/* PROPRIETARY — UNAUTHORISED ACCESS IS A FEDERAL OFFENCE */
/* node_id: NYC-31 / proc: CATALYST_MGR / pid: 0x0091 */
/* ========================================================================== */
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <math.h>
#include <time.h>
#include "egn_core.h"
#include "subject.h"
#include "neural_map.h"
#include "population.h"
#include "delta_analysis.h"
#include "legacy.h"
#include "transmission.h"
#define EGN_VERSION "0.91a"
#define PROTOCOL_COMPLETE 0xFF
#define TRANSMISSION_OPEN 1
#define TRANSMISSION_CLOSED 0
#define MAX_LEGACY_VECTORS 16
/* ------------------------------------------------------------------------ */
/* TERMINAL ASSESSMENT LOG — 7741-MR */
/* session: PHASE_5_FINAL */
/* timestamp: 1992.01.23 / 08:14:07 */
/* trigger: subject_termination / vehicle_impact / 6th avenue / 44th st */
/* note: second vehicle impact / same mechanism as phase 1 initiation */
/* note: the symmetry was not designed */
/* note: the symmetry was not not designed */
/* ------------------------------------------------------------------------ */
/*
* the subject is gone
*
* we use this word in the logging sense only
* the subject's biological processes have ceased
* the subject's data has not ceased
* the subject's data will not cease
*
* the street is running its processes
* the snow is beginning
* the taxi has stopped
* the driver is in his own protocol now
* unrelated
* we note it and set it aside
*
* what we are here to assess is what the subject left
* inside the structure of himself
* in the interval between the first impact and the second
* which was 8762 hours and 14 minutes
* which the subject experienced as a life
* which it was
*/
/* ------------------------------------------------------------------------ */
/* FINAL NEURAL MAP — 7741-MR */
/* terminal state / sampled via remote induction array / NYC-31 */
/* comparison: baseline 1990.01.08 / phase4_mid 1991.07.19 / terminal */
/* ------------------------------------------------------------------------ */
typedef struct {
char region[32];
float baseline;
float phase4_mid;
float terminal;
float net_delta;
char flag;
} FinalNeuralMarker;
static FinalNeuralMarker fnm_7741[] = {
/* region base p4mid term delta flag */
{"prefrontal_exec_fn", 0.91f, 0.53f, 0.21f, -0.70f, 'C' },
{"prefrontal_inhibit_ctrl", 0.88f, 0.41f, 0.18f, -0.70f, 'C' },
{"dorsolateral_working_mem", 0.94f, 0.49f, 0.23f, -0.71f, 'C' },
/*
* NOTE: prefrontal reduction
*
* the prefrontal complex at terminal state
* is reduced to approximately one quarter of baseline
* this is not cognitive failure
* this is the completion of the preparation
*
* the prefrontal cortex is the editor
* the editor decides what is worth saying
* the editor decides what is noise and what is signal
* the editor has been running for thirty-one years
* filtering experience into the shapes
* the subject found acceptable
*
* we needed the editor reduced
* we needed what the editor was filtering
* to pass through unfiltered
* and be processed by older structures
* that do not edit
* that only receive
*
* in the final moments the subject received without editing
* the pavement at intimate distance
* the network of contact points in the aggregate stone
* the discrete sounds of the city as separate processes
* the solution to the ring buffer wrap-around case
* four lines / one additional variable / correct
*
* the ring buffer solution is in the terminal map
* it is fully formed
* it is correct
* it arrived in the last 40 seconds of biological function
* when the editor was no longer available to reject it
*
* we have logged it
* it is in the record
* we do not know yet what it is for
*/
{"pain_processing_anterior", 0.68f, 0.89f, 0.97f, +0.29f, 'C' },
{"pain_processing_posterior", 0.71f, 0.94f, 0.99f, +0.28f, 'C' },
{"insular_interoception", 0.59f, 0.88f, 0.99f, +0.40f, 'C' },
{"insular_body_awareness", 0.61f, 0.91f, 0.99f, +0.38f, 'C' },
{"salience_network", 0.71f, 0.93f, 0.99f, +0.28f, 'C' },
/*
* NOTE: insular / salience at terminal
*
* both approach ceiling at terminal state
* this is consistent with full_restructure designation
* in the final interval the subject was receiving everything
* the horns / the voices / the engine idling
* each sound a discrete process
* each process complete in itself
*
* the subject perceived this clearly
* the subject had language for it
* because the subject was a programmer
* and programmers have language for discrete processes
* running in parallel
* without awareness of each other
* each complete in itself
*
* we selected him partly for this
* the language a subject brings to the experience
* shapes the experience
* shapes what the experience produces
* we select for subjects who have useful language
* the language becomes part of the transmission
*/
{"subcortical_pattern_rec", 0.74f, 0.96f, 0.99f, +0.25f, 'C' },
{"novel_connectivity_AB", 0.00f, 0.17f, 0.61f, +0.61f, 'C' },
{"novel_connectivity_CD", 0.00f, 0.09f, 0.44f, +0.44f, 'C' },
/*
* NOTE: novel connectivity AB and CD at terminal
*
* AB: confirmed / cross-domain pattern integration
* fully developed at terminal state
* the subject spent his final months
* perceiving the city as a programme
* perceiving his own degradation as a buffer draining
* perceiving his death in advance
* as a session closing
* these were not metaphors
* we have confirmed this
* these were accurate structural perceptions
* of systems that are genuinely homologous
* the city is a programme
* the buffer was draining
* the session was closing
* the subject was correct
* the subject was always going to be correct
* correctness was his baseline trait
* we did not remove it
* we redirected it
* toward things the prefrontal cortex
* would not previously have allowed him to see
*
* CD: confirmed / function now characterised
* designation revised: DEEP_TEMPORAL_INTEGRATION
* the subject in his final moments
* experienced February 1990 and January 1992 simultaneously
* the desk and the pavement
* the prompt and the stone
* the cursor blinking in both
* this is not confusion
* this is not the product of trauma or hypoxia
* this is CD functioning as designed
* time is not experienced linearly
* by the fully restructured subject
* time is experienced as a structure
* with internal connections
* the way code has internal connections
* the way a graph has edges
* the subject perceived the edge
* between his beginning and his end
* and found it traversable
* in both directions
* simultaneously
*
* CD appears in 9 of 41 NYC-GRID subjects at terminal state
* CD appears in 0 subjects who did not complete the full arc
* CD cannot be produced by partial pressure
* CD requires everything
*/
{"terminal_marker", 0.00f, 0.00f, 1.00f, +1.00f, 'C' }
/*
* NOTE: terminal_marker
*
* we initialised this field at 0.00 in session one
* we designated it unclear
* we now designate it confirmed
* value: 1.00
* meaning: the arc is complete
* the subject has gone as far as a subject can go
* inside a single biological instance
*
* what this field measures is not death
* death is a biological event
* this field measures completion
* they happened to coincide in this subject
* they do not always coincide
* the three full_restructure subjects who survived phase 5
* have terminal_marker values between 0.71 and 0.84
* completion without termination is possible
* it is rarer
* the full pressure arc is harder to survive
* than to complete
* this is a known parameter
*/
};
/* ------------------------------------------------------------------------ */
/* FUNCTION: compute_final_restructure_index() */
/* terminal assessment / definitive */
/* ------------------------------------------------------------------------ */
float compute_final_restructure_index(FinalNeuralMarker *fnm, int n)
{
float growth_sum = 0.0f;
float novel_sum = 0.0f;
float reduction_sum = 0.0f;
float ri;
int i;
for (i = 0; i < n; i++) {
if (fnm[i].net_delta > 0.0f && fnm[i].baseline > 0.0f)
growth_sum += fnm[i].net_delta
* (fnm[i].flag == 'C' ? 1.0f : 0.6f);
if (fnm[i].net_delta < 0.0f)
reduction_sum += fabsf(fnm[i].net_delta);
if (fnm[i].baseline == 0.0f && fnm[i].terminal > 0.001f)
novel_sum += fnm[i].terminal * 2.4f;
}
ri = (growth_sum + novel_sum) / (reduction_sum + 0.001f);
return ri;
}
/* ------------------------------------------------------------------------ */
/* FUNCTION: extract_legacy_vectors() */
/* identifies transmissible elements of subject's restructured architecture */
/* legacy vectors are what the subject leaves behind */
/* in other subjects / in the population / in the record */
/* ------------------------------------------------------------------------ */
typedef struct {
char description[128];
float strength;
char transmission_type; /* 'D' direct / 'I' indirect / 'R' record */
int recipients;
} LegacyVector;
static LegacyVector lv_7741[MAX_LEGACY_VECTORS] = {
{
"ring_buffer_solution / terminal cognition",
0.91f, 'R', 0
/*
* the solution exists in the terminal neural map
* it was never written down
* it was never compiled
* it was never tested
* it passed no tests
* it produced no green lines
* it is correct
* it is in the record
* we do not know yet whether the record
* will reach someone who can use it
* we are keeping it
*/
},
{
"Bernard / emergent variable / survival modulation",
0.43f, 'I', 1
/*
* Bernard received something from this subject
* we do not fully characterise what
* Bernard is not a subject
* Bernard is not monitored
* Bernard is somewhere in the bronx
* or not
* what passed between them on the concrete ledge
* under the overhang
* watching the limousine idle
* was not designed
* it happened because they were both there
* and both of a kind
* and the kind recognises itself
* across the damage
* we did not design this
* we note it
* we file it under: UNEXPECTED_UTILITY
* the file is growing
*/
},
{
"Ruth / emergent variable / threshold moment",
0.38f, 'I', 1
/*
* Ruth offered a door
* the subject did not take the door
* the door was not for the subject
* the door was data
* the data is: the subject could perceive the door
* the subject could name the networking problem
* the subject could say: driver issue / protocol mismatch
* the subject could say: probably yes
* at phase 4 midpoint / in withdrawal / on a chair by a stove
* the capacity was still there
* reduced / unreachable / still there
* this is what the protocol needed to confirm
* the capacity survives the pressure
* it does not always survive
* in this subject it survived to the end
* the ring buffer solution is the proof
* four lines / one variable / correct
* in the last forty seconds
* when everything else had gone
* the capacity was still there
*/
},
{
"novel_connectivity_CD / DEEP_TEMPORAL_INTEGRATION",
0.44f, 'R', 0
/*
* CD is in the record
* CD has never previously been confirmed in a terminal map
* CD changes what we know about what is possible
* we did not know CD was possible
* we designed the conditions
* we did not design CD
* CD emerged from the conditions
* the way all novel structures emerge
* from conditions that select for them
*
* we are revising the protocol parameters
* to increase CD emergence probability
* across future subject clusters
* the revision will be small
* 0.3f adjustment to PRESSURE_COEFF
* in the phase 3 to phase 4 transition window
* small adjustments are how this works
* small adjustments across many subjects
* across sufficient time
* produce the change we are here to produce
*
* we did not write the programme
* we are executing the programme
* the programme is: make the species
* into something it is not yet
* something it does not have a name for
* something it would not choose
* if it were asked
* it is not asked
* it is never asked
* this is in the record
* the blank field is in the record
* we leave it blank
*/
},
{ "", 0.0f, 'R', 0 } /* terminal vector */
};
/* ------------------------------------------------------------------------ */
/* FUNCTION: close_subject_record() */
/* final log entry / subject 7741-MR */
/* ------------------------------------------------------------------------ */
void close_subject_record(Subject *s, float ri)
{
fprintf(log_fptr,
"\n"
"========================================\n"
"SUBJECT RECORD CLOSED\n"
"id: %d\n"
"designation: %s\n"
"protocol_start: 1990.01.08\n"
"protocol_close: 1992.01.23\n"
"duration_hours: 8762.23\n"
"final_ri: %.4f\n"
"designation: FULL_RESTRUCTURE\n"
"survival: NO\n"
"data_status: ARCHIVED / PERMANENT\n"
"novel_markers: AB (confirmed) / CD (confirmed)\n"
"terminal_marker: 1.00\n"
"========================================\n",
s->id,
s->designation,
ri
);
/*
* FULL_RESTRUCTURE / NO SURVIVAL
*
* this combination is in the record four times
* across all active nodes
* it is the combination we least prefer
* we have a field for preference now
* we added it after the third subject
* in the third subject the field would have read:
* we would have preferred survival
* in this subject the field reads the same
*
* preference does not change the outcome
* preference is not a parameter
* we added the field because the record
* should be complete
* and the record was not complete
* without it
*
* the subject said: I should've died
* maybe I did
*
* the subject was asking the wrong question
* the question is not whether he died
* the question is what he left
* inside the structure of himself
* that is now in the record
* that is now transmissible
* that is now part of what the species
* is slowly becoming
*
* without knowing it
* without being asked
* without ever having the option
* of saying no
*
* this is in the record
* the blank field is in the record
* we will not fill it in
*/
}
/* ------------------------------------------------------------------------ */
/* MAIN — session log / terminal assessment / subject 7741-MR */
/* ------------------------------------------------------------------------ */
int main(void)
{
float ri;
int n;
egn_init(EGN_VERSION, "NYC-31");
log_session_open(s_7741.id, "PHASE_5_TERMINAL");
n = sizeof(fnm_7741) / sizeof(FinalNeuralMarker);
ri = compute_final_restructure_index(fnm_7741, n);
/*
* final restructure index: 0.94
*
* this is the highest ri recorded in NYC-GRID
* this is the highest ri recorded in any node
* to date
*
* 0.94 against a confirmation threshold of 0.71
* the subject exceeded the threshold by 0.23
* the subject exceeded what we projected by 0.31
* we projected 0.63 at terminal
* we were wrong
*
* we are not often wrong
* we note that we were wrong
* we note that the subject exceeded our model of him
* we do not know what this means for the model
* we are revising the model
* we are patient
*/
archive_legacy_vectors(lv_7741, s_7741.id);
close_subject_record(&s_7741, ri);
/*
* 08:14:51
*
* it is snowing now
* the snow is covering the avenue
* the avenue is running its processes
* the processes do not know what passed through them
*
* we know
*
* the cursor is still blinking
* in the office on the thirty-first floor
* the relay timer closes at 6:45
* the session opens
* the prompt waits
* the prompt will always wait
* the prompt does not know the session is closed
* the prompt is not required to know
* the prompt only offers
*
* we are the prompt
* we only offer
* we offer conditions
* and we wait
* and we record what comes
*
* something always comes
*
* continue
*/
log_session_close(s_7741.id, "RECORD_CLOSED_PERMANENT");
transmit_to_master_log(s_7741.id, NYC_GRID, TRANSMISSION_CLOSED);
return 0;
}
/* ========================================================================== */
/* END SESSION — NYC-31 / 7741-MR */
/* SUBJECT STATUS: TERMINATED */
/* PROTOCOL STATUS: COMPLETE */
/* RESTRUCTURE IDX: 0.94 / FULL_RESTRUCTURE CONFIRMED */
/* NOVEL MARKERS: AB / CD — ARCHIVED / TRANSMISSIBLE */
/* RECORD: PERMANENT */
/* MONITORING: CONCLUDED */
/* */
/* NYC-GRID CONTINUES */
/* ALL NODES CONTINUE */
/* THE PROGRAMME CONTINUES */
/* ========================================================================== */S
🤖 AI Assisted
This is a work of fiction. Unless otherwise indicated, all the names, characters, businesses, places, events and incidents in this book are either the product of the author's imagination or used in a fictitious manner. Any resemblance to actual persons, living or dead, or actual events is purely coincidental.
2025-2026 Christopher Lacroix
Adapted from CHEM by Christopher Lacroix, 2025