New mail, old mail, a response from a client wanting code-- he'd need to get back to that one-- some buster upgrade spam... for now, nothing of importance. Trenn closed the leftmost display with a flick of the wrist, then moved on to the right. His mother had left a message. Was going to bring back milk. Apparently they were out? Trenn hadn't noticed. Another message, this one from his doctor about an exam they had scheduled for next week. He would go, of course.
No other messages. So Trenn closed that display with a second wrist-flick. And so it went on with each display, one after the other; each represented one or several things he needed to do at the desk, and once he was down to the last, he grabbed his PET and set it in the reader slot.
Soundman, currently inactive, appeared on the last display. Two more appeared to the right of it; one bore a slowly scrolling readout of Soundman's current statistics, including lines of code, the other was an editor for Soundman's base program itself.
Soundman had been created by Trenn when he was 15. Seven years ago-- one of his first-ever coding projects. Seven years was a long time; a lot had changed, both for him and for Soundman. The both of them had grown up, lived, watched friends die, fought adversity, killed viruses, seen stranger things than Trenn thought existed, even fought in a war or two. Lost a tournament in the first round, so that kinda sucked, but still. Today, Trenn planned to update and optimize Soundman's code. You didn't need eight years of coding experience to tell you that a fifteen-year-old made some half-assed, unoptimized code. Trenn recognized that. And so, today he was going to set aside-- well, the whole day-- to fix that. Soundman didn't need to deal with it, and neither did he.
Trenn looked at the readout.
Total lines: 5511242
That was.. a lothigher than it had been before. How did it get to that many? Most of the things in navi code weren't IN the base system; rather, they were subroutines, automatically run and compartmentalized. Trenn hadn't needed to code most of those, the signature attack module being the sole exception. Could it have been Runecross? No, Trenn had checked that when it had first occured. There wasn't a huge spike in the line number-- back then Soundman had read something like 1066k.
So where did these four million extra lines of code come from? Curious, Trenn typed in a random number in the 4 million range. The display blanked for a moment, displaying a 'loading' message, and then came back empty. He blinked, then tried it again with a different line in the five million range. Again, blank. A little startled, Trenn checked the access permissions to see who had read/write clearance for Soundman's code. Maybe he had just unticked 'read' at some point on accident or something. He knew it was a faulty excuse at best-- read and write were inextricably linked, and to enable the latter automatically enabled the former. But Trenn checked the permissions anyway.
What he found was surprising.
User - Read - Write
Soundman - X - X
TrennH - - - -
@%!*(^ - X - X
There was... a third user with permissions? And what was with that name? This did not look good. Trenn quickly edited the permissions to remove the third user and add his own, but that returned an error about being unable to remove a Navi's permissions to look over its' own code, along with a small link to the website of the ethical coding circle that had created the tools he used to edit Soundman. Irritated, Trenn closed those tools, found some others (With the fastest searches he believed he had ever typed), and immediately set about stripping the third user's permissions off. No error came back this time. That done, he re-opened Soundman's code, and hit the "Recent lines" jump to bring him back to the 4 million range.
@@&%H@BFH()@#H%(&@%)QBR*)%B@*)&%G_(%@(_All of it was like that. Junk lines, unreadable in their current format. But from what? Had someone tampered with Soundman? He had never showed up with errors on any compiles before. Stopping for a moment, Trenn tried telling the console to compile Soundman's code. A few moments passed, then a minute, then two, then five, and finally it was done.
2201401 errors found.
Trenn nearly collapsed. He looked pale, sitting in the light of the display. Shit, he felt pale. Okay, this was no reason to panic, right? He could just delete all of the faulty lines of code, probably just mass-delete the back 4 million and then fix any errors that still remained. Trenn made a 'tsk' sound with his mouth, then set about the task, starting with the big block of bad code at the end. He selected all of it he could see-- and then hit delete. Immediately, an unfamiliar warning dialogue popped up, telling him that removing this code would render another line of code inoperable. Trenn tapped the 'highlight affected code' button.
One single line lit up. And dread welled up in Trenn as he read it over. He remembered that line. It was a call function, meant to run another subroutine. Only there was a typo. The file it tried to run, every single time Soundman booted up, every single time he was online, was titled 'ro0t212.bat'. 'ro0t'. Not 'root', as it was supposed to be, 'ro0t'. That was one of the first he'd written up when Soundman was first coded.
He flashed back. He remembered that summer, those days spent with the keyboard still unwieldly and foreign in his hands; those days he had spent pouring over lines of text, pieces to a puzzle that did not yet exist. Pieces to a son. And a friend. And a brother. There was, however, relief in that the entire problem was just a simple typo. Trenn fixed it with a few small keystrokes, and then hit enter.
Warning: Altering this line of code will make other lines of code inoperable.
What was it this time? Trenn hit the 'Highlight affected code' button a second time, and--
The entire screen lit up.
Every single line of code, except for the 20 or so behind this line, lit up.
Every. Single. Last. One.
And it was then that Trenn realized he had made a horrible, horrible mistake.