Susan sat alone in Node 3, waiting for her tracer. Hale had decided to step outside and get some air‑a decision for which she was grateful. Oddly, however, the solitude in Node 3 provided little asylum. Susan found herself struggling with the new connection between Tankado and Hale.
“Who will guard the guards?” she said to herself. Quis custodiet ipsos custodes. The words kept circling in her head. Susan forced them from her mind.
Her thoughts turned to David, hoping he was all right. She still found it hard to believe he was in Spain. The sooner they found the pass‑keys and ended this, the better.
Susan had lost track of how long she’d been sitting there waiting for her tracer. Two hours? Three? She gazed out at the deserted Crypto floor and wished her terminal would beep. There was only silence. The late‑summer sun had set. Overhead, the automatic fluorescents had kicked on. Susan sensed time was running out.
She looked down at her tracer and frowned. “Come on,” she grumbled. “You’ve had plenty of time.” She palmed her mouse and clicked her way into her tracer’s status window. “How long have you been running, anyway?”
Susan opened the tracer’s status window‑a digital clock much like the one on TRANSLTR; it displayed the hours and minutes her tracer had been running. Susan gazed at the monitor expecting to see a readout of hours and minutes. But she saw something else entirely. What she saw stopped the blood in her veins.
“Tracer aborted!” she choked aloud. “Why?”
In a sudden panic, Susan scrolled wildly through the data, searching the programming for any commands that might have told the tracer to abort. But her search went in vain. It appeared her tracer had stopped all by itself. Susan knew this could mean only one thing‑her tracer had developed a bug.
Susan considered “bugs” the most maddening asset of computer programming. Because computers followed a scrupulously precise order of operations, the most minuscule programming errors often had crippling effects. Simple syntactical errors‑such as a programmer mistakenly inserting a comma instead of a period‑could bring entire systems to their knees. Susan had always thought the term “bug” had an amusing origin:
It came from the world’s first computer‑the Mark 1‑a room‑size maze of electromechanical circuits built in 1944 in a lab at Harvard University. The computer developed a glitch one day, and no one was able to locate the cause. After hours of searching, a lab assistant finally spotted the problem. It seemed a moth had landed on one of the computer’s circuit boards and shorted it out. From that moment on, computer glitches were referred to as bugs.
“I don’t have time for this,” Susan cursed.
Finding a bug in a program was a process that could take days. Thousands of lines of programming needed to be searched to find a tiny error‑it was like inspecting an encyclopedia for a single typo.
Susan knew she had only one choice‑to send her tracer again. She also knew the tracer was almost guaranteed to hit the same bug and abort all over again. Debugging the tracer would take time, time she and the commander didn’t have.
But as Susan stared at her tracer, wondering what error she’d made, she realized something didn’t make sense. She had used this exact same tracer last month with no problems at all. Why would it develop a glitch all of a sudden?
As she puzzled, a comment Strathmore made earlier echoed in her mind. Susan, I tried to send the tracer myself, but the data it returned was nonsensical.
Susan heard the words again. The data it returned . . .
She cocked her head. Was it possible? The data it returned?
If Strathmore had received data back from the tracer, then it obviously was working. His data was nonsensical, Susan assumed, because he had entered the wrong search strings‑but nonetheless, the tracer was working.
Susan immediately realized that there was one other possible explanation for why her tracer aborted. Internal programming flaws were not the only reasons programs glitched; sometimes there were external forces‑power surges, dust particles on circuit boards, faulty cabling. Because the hardware in Node 3 was so well tuned, she hadn’t even considered it.
Susan stood and strode quickly across Node 3 to a large bookshelf of technical manuals. She grabbed a spiral binder marked SYS‑OP and thumbed through. She found what she was looking for, carried the manual back to her terminal, and typed a few commands. Then she waited while the computer raced through a list of commands executed in the past three hours. She hoped the search would turn up some sort of external interrupt‑an abort command generated by a faulty power supply or defective chip.
Moments later Susan’s terminal beeped. Her pulse quickened. She held her breath and studied the screen.
ERROR CODE 22
Susan felt a surge of hope. It was good news. The fact that the inquiry had found an error code meant her tracer was fine. The trace had apparently aborted due to an external anomaly that was unlikely to repeat itself.
Error code 22. Susan racked her memory trying to remember what code 22 stood for. Hardware failures were so rare in Node 3 that she couldn’t remember the numerical codings.
Susan flipped through the SYS‑OP manual, scanning the list of error codes.
19: CORRUPT HARD PARTITION
20: DC SPIKE
21: MEDIA FAILURE
When she reached number 22, she stopped and stared a long moment. Baffled, she double‑checked her monitor.
ERROR CODE 22
Susan frowned and returned to the SYS‑OP manual. What she saw made no sense. The explanation simply read:
22: MANUAL ABORT