"c211" - читать интересную книгу автора (Burt Andrew - Noontide Night)

NOONTIDE NIGHT - Chapter 21.1
Chapter 21.1

8:24 A.M., Thursday, February 3, 2000
Halifax, Nova Scotia


"You heard the man," Littlefield said. "We'll each take one program and work down the list in order." Morgan saw an opportunity to improve the scheme. "Wouldn't it be better if we open one box instead, and take whatever's in there? Then we won't have to hunt through all those boxes to find each one." "I think you forgot you're in the military, Hyland. I gave an order. Now let me hear a 'sir, yes, sir.'" Nate had been right. Littlefield was a bozo. "You don't say 'sir' to enlisted men, Corporal." "You will address me as 'sir' when nobody else is around, is that clear? That's an order." Nate stepped up to Littlefield. The mere act of standing was painful for Nate, Morgan knew. His pain must have blazed from his eyes, as Littlefield backed up a foot. "Or what?" Nate asked. "They may have drafted a million programmers, but they need us more than we need them. Maybe you big blue types are cool with this, but most of the programmers I know react pretty badly to lame orders. They can't throw us all in the stockade. We're too valuable for that." "Not if you're not working. If you soldiers don't get to work, I'll put you on report for disobeying orders and refusing to work. Then they won't have any reason to keep you out of the stockade, will they?" Morgan could tell there was a showdown brewing between Nate and Littlefield. He ran though his mind futilely for a way to defuse it, or at least postpone it for another day. He thought of many ways to make matters worse, but as a guy, almost anything he said, guy on guy, would be taken wrong. Ortega seemed to sense the same thing. "Corporal? I'm supposed to look at a program called LDPRSFL. Could you help me find it in the boxes? I can't reach those high ones." Littlefield scowled. "Hyland, Zamora, help Ortega find LDPRSFL. Then get to work." He went over and sat at one of the AS/400 terminals, apparently intent on avoiding a paper program himself. The confrontation was over, but like a shut off faucet, it was still under pressure. Morgan and Nate hefted the boxes down onto the tables. "Let's inventory them, at least," Nate whispered. So as they unloaded and searched through each one, they wrote on a sheet of paper the box's contents. They numbered each box with a ballpoint, and the matching sheet, to make a crude index. Littlefield noticed, but didn't object. Morgan found the LDPRSFL program, but whispered that they should put it aside, and pretend to find it in the last box, so they could finish the inventory. They settled into a daily routine of slogging the boxes around to find the next program on the list (Littlefield somehow never moving a single box), then sitting for endless hours staring at faint print on fanfolded sheafs of wide, green-bar paper. Logic that used dates was not necessarily easy to locate. When a program variable was labeled as being of type 'date,' rather than integer, or string of characters, that was the easiest to find. And the most likely not to need fixing. Languages with built in date types rarely needed much fixing within the program. It was when the programmer used other types, such as integers or strings, that caused the most problems. Who was to say if the variable called 'y' represented a year, or a harmless coordinate on an x-y grid. Who was to say if the variable named 'srd' didn't stand for Shipment Received Date? Or the variable might simply be called 'received' or 'r', or any other semi-random concoction of letters. Once found, who was to say whether the year part of a date was present, and if so, was only stored as two digits; and if so, whether it would have a problem with '00'. The main source of the Y2K problem lay not in the lack of a century per se, but when two two-digit years were compared to each other. 00 does not follow 99 numerically. Morgan had to chase down each use of a year variable to see if it was used, or could be used, in a cross-decade comparison. The dates in the programs were like flying fish, suddenly appearing, leaping prominently into view, then diving back into the murky depths of code. They could arise from human input, from saved data files, from interrogating the system's current time, or from computations based on a kelp-like tangle of other data. Heuristic methods—looking for key data types, variable names, etc.—might locate 80% of the instances of dates. But the devil lay in the other 20%. An operation as simple and non-date-sounding like taking the last filename from a directory list could, ultimately, be date oriented—if, for example, a date were silently encoded in the characters of the filename itself. Morgan found himself absorbed by the process. He luxuriated in detailed logic work, tracing a variable across thousands of pages of printout for a particular program. Page 1 called to page 349, which called to pages 82 and 760, from there to 901, 42, and 499, back and forth. He sat rocking in his chair, pencil in mouth, five or six fingers marking key places in the stack of printout on his lap, sticky notes marking dozens of others. In the back of his mind he kept repeating the key questions: Was there a Y2K problem here? And if so, how complex would it be to repair? Was it so ingrained with two digit dates, with filenames lengths already maxxed out yet needing more room than would fit, would there be years' worth of data to convert, or was the logic just so convoluted nobody could disentangle the spaghetti? Triage: Was it hopeless, fully functional, or in between? All this was complicated by the programs being written in programming languages Morgan had never really seen. Usually the languages were obvious, like a Francophone might muddle through a text in Italian, but he couldn't help feeling he might overlook something important. Every programming language had nuances, figures of speech, as it were, that he felt sure he was missing. The whole "hacker draft," as they'd come to call it, seemed unreal, a throwback to World War II. His father had described the army during the war. His father hadn't really been in the army, of course, but his magical tales to a young urchin on his lap had the ring of reality. When he was in college, Morgan stumbled with horror on his father's stories. At first he thought his father had written the book—Catch-22—before he realized his father had simply read it. He'd felt betrayed, somehow, even though he rationally knew his father had every right to tell him stories from a book. It was a natural thing. Yet it rendered the crazy, vivid tales as mere fiction, stripped them of their factual basis. But now, as Morgan lived those same surreal escapades amidst regulations that made no sense, he couldn't help feeling he was reliving his father's past; that he was Yossarian, hearing that he would be crazy if he flew more missions, and would have to be grounded, but if he didn't want to, then he was sane, and had to fly. It was only ten days into their routine when Morgan had one of those catch-22 moments, the kind where his internal logic sensors said, "This is the tiny little bump of the Titanic hitting the iceberg." Nate scooted over in his Scandinavian kneeling chair (scooting since a castor had broken after the first day, so he'd removed them all). Morgan thought he was coming over to discuss trying to call their sweethearts tomorrow for Valentines day. Morgan had even mailed Desiree a handmade card. He smiled as Nate approached. Nate whispered behind a hand into Morgan's ear. "Look at this one!" He waved a printout. "The comments say it controls the entire country's beef inspections. It's got a priority code of 1A. I'd hate to think they're holding all the beef until they can clear it through this stupid program. And here's the thing. It's a cinch to fix. It's only got one date, and it's always the current century, so all I'd have to do is insert a named constant for the current century and fix a couple places that say '19'. If I had the source on-line I'd just edit it, but even so, I could write the fix on this paper. We've got to send it back, then the whole beef inspection system for the country is back on-line. There's something odorous about this look-don't-touch policy. I think we've got a duty to convince Sam to let us send this upstream, wouldn't you agree? If we team up together, he can't refuse." And there it was. The Unauthorized Fix. They'd been strictly told not to try to fix anything, no matter how slight or obvious. That it was a direct violation of their orders even to waste a single iota of time even daydreaming about fixing a program. Fixing was strictly the domain of those so assigned. The CyberCorps was rigid, painfully not adapting to the inherent efficiencies of work the programmers identified. Don't Fix meant Don't Fix, even if that was a ridiculous policy. Morgan agreed it was a bizarre scheme, but presumably someone had a good reason for it. Besides, rumors floated around that half a dozen programmers had already been court martialed and imprisoned for attempting to push a fix back toward the source. Not to mention the insubordination that would be involved of circumventin< Littlefield to go directly to Sam. Even if Sam said shhh, no, Littlefield would delight in pressing charges on any counts he could. Morgan sighed. "Oh, man. I thought you wanted to talk about tomorrow; trying to make phone calls. Christ. You can't do this to me." Nate looked back with that certain gleam in his eye that said Oh Yes He Could. The one thing Morgan had learned about Nate was that he had the tenacity of a pit bull.


back | next
home


NOONTIDE NIGHT - Chapter 21.1
Chapter 21.1

8:24 A.M., Thursday, February 3, 2000
Halifax, Nova Scotia


"You heard the man," Littlefield said. "We'll each take one program and work down the list in order." Morgan saw an opportunity to improve the scheme. "Wouldn't it be better if we open one box instead, and take whatever's in there? Then we won't have to hunt through all those boxes to find each one." "I think you forgot you're in the military, Hyland. I gave an order. Now let me hear a 'sir, yes, sir.'" Nate had been right. Littlefield was a bozo. "You don't say 'sir' to enlisted men, Corporal." "You will address me as 'sir' when nobody else is around, is that clear? That's an order." Nate stepped up to Littlefield. The mere act of standing was painful for Nate, Morgan knew. His pain must have blazed from his eyes, as Littlefield backed up a foot. "Or what?" Nate asked. "They may have drafted a million programmers, but they need us more than we need them. Maybe you big blue types are cool with this, but most of the programmers I know react pretty badly to lame orders. They can't throw us all in the stockade. We're too valuable for that." "Not if you're not working. If you soldiers don't get to work, I'll put you on report for disobeying orders and refusing to work. Then they won't have any reason to keep you out of the stockade, will they?" Morgan could tell there was a showdown brewing between Nate and Littlefield. He ran though his mind futilely for a way to defuse it, or at least postpone it for another day. He thought of many ways to make matters worse, but as a guy, almost anything he said, guy on guy, would be taken wrong. Ortega seemed to sense the same thing. "Corporal? I'm supposed to look at a program called LDPRSFL. Could you help me find it in the boxes? I can't reach those high ones." Littlefield scowled. "Hyland, Zamora, help Ortega find LDPRSFL. Then get to work." He went over and sat at one of the AS/400 terminals, apparently intent on avoiding a paper program himself. The confrontation was over, but like a shut off faucet, it was still under pressure. Morgan and Nate hefted the boxes down onto the tables. "Let's inventory them, at least," Nate whispered. So as they unloaded and searched through each one, they wrote on a sheet of paper the box's contents. They numbered each box with a ballpoint, and the matching sheet, to make a crude index. Littlefield noticed, but didn't object. Morgan found the LDPRSFL program, but whispered that they should put it aside, and pretend to find it in the last box, so they could finish the inventory. They settled into a daily routine of slogging the boxes around to find the next program on the list (Littlefield somehow never moving a single box), then sitting for endless hours staring at faint print on fanfolded sheafs of wide, green-bar paper. Logic that used dates was not necessarily easy to locate. When a program variable was labeled as being of type 'date,' rather than integer, or string of characters, that was the easiest to find. And the most likely not to need fixing. Languages with built in date types rarely needed much fixing within the program. It was when the programmer used other types, such as integers or strings, that caused the most problems. Who was to say if the variable called 'y' represented a year, or a harmless coordinate on an x-y grid. Who was to say if the variable named 'srd' didn't stand for Shipment Received Date? Or the variable might simply be called 'received' or 'r', or any other semi-random concoction of letters. Once found, who was to say whether the year part of a date was present, and if so, was only stored as two digits; and if so, whether it would have a problem with '00'. The main source of the Y2K problem lay not in the lack of a century per se, but when two two-digit years were compared to each other. 00 does not follow 99 numerically. Morgan had to chase down each use of a year variable to see if it was used, or could be used, in a cross-decade comparison. The dates in the programs were like flying fish, suddenly appearing, leaping prominently into view, then diving back into the murky depths of code. They could arise from human input, from saved data files, from interrogating the system's current time, or from computations based on a kelp-like tangle of other data. Heuristic methods—looking for key data types, variable names, etc.—might locate 80% of the instances of dates. But the devil lay in the other 20%. An operation as simple and non-date-sounding like taking the last filename from a directory list could, ultimately, be date oriented—if, for example, a date were silently encoded in the characters of the filename itself. Morgan found himself absorbed by the process. He luxuriated in detailed logic work, tracing a variable across thousands of pages of printout for a particular program. Page 1 called to page 349, which called to pages 82 and 760, from there to 901, 42, and 499, back and forth. He sat rocking in his chair, pencil in mouth, five or six fingers marking key places in the stack of printout on his lap, sticky notes marking dozens of others. In the back of his mind he kept repeating the key questions: Was there a Y2K problem here? And if so, how complex would it be to repair? Was it so ingrained with two digit dates, with filenames lengths already maxxed out yet needing more room than would fit, would there be years' worth of data to convert, or was the logic just so convoluted nobody could disentangle the spaghetti? Triage: Was it hopeless, fully functional, or in between? All this was complicated by the programs being written in programming languages Morgan had never really seen. Usually the languages were obvious, like a Francophone might muddle through a text in Italian, but he couldn't help feeling he might overlook something important. Every programming language had nuances, figures of speech, as it were, that he felt sure he was missing. The whole "hacker draft," as they'd come to call it, seemed unreal, a throwback to World War II. His father had described the army during the war. His father hadn't really been in the army, of course, but his magical tales to a young urchin on his lap had the ring of reality. When he was in college, Morgan stumbled with horror on his father's stories. At first he thought his father had written the book—Catch-22—before he realized his father had simply read it. He'd felt betrayed, somehow, even though he rationally knew his father had every right to tell him stories from a book. It was a natural thing. Yet it rendered the crazy, vivid tales as mere fiction, stripped them of their factual basis. But now, as Morgan lived those same surreal escapades amidst regulations that made no sense, he couldn't help feeling he was reliving his father's past; that he was Yossarian, hearing that he would be crazy if he flew more missions, and would have to be grounded, but if he didn't want to, then he was sane, and had to fly. It was only ten days into their routine when Morgan had one of those catch-22 moments, the kind where his internal logic sensors said, "This is the tiny little bump of the Titanic hitting the iceberg." Nate scooted over in his Scandinavian kneeling chair (scooting since a castor had broken after the first day, so he'd removed them all). Morgan thought he was coming over to discuss trying to call their sweethearts tomorrow for Valentines day. Morgan had even mailed Desiree a handmade card. He smiled as Nate approached. Nate whispered behind a hand into Morgan's ear. "Look at this one!" He waved a printout. "The comments say it controls the entire country's beef inspections. It's got a priority code of 1A. I'd hate to think they're holding all the beef until they can clear it through this stupid program. And here's the thing. It's a cinch to fix. It's only got one date, and it's always the current century, so all I'd have to do is insert a named constant for the current century and fix a couple places that say '19'. If I had the source on-line I'd just edit it, but even so, I could write the fix on this paper. We've got to send it back, then the whole beef inspection system for the country is back on-line. There's something odorous about this look-don't-touch policy. I think we've got a duty to convince Sam to let us send this upstream, wouldn't you agree? If we team up together, he can't refuse." And there it was. The Unauthorized Fix. They'd been strictly told not to try to fix anything, no matter how slight or obvious. That it was a direct violation of their orders even to waste a single iota of time even daydreaming about fixing a program. Fixing was strictly the domain of those so assigned. The CyberCorps was rigid, painfully not adapting to the inherent efficiencies of work the programmers identified. Don't Fix meant Don't Fix, even if that was a ridiculous policy. Morgan agreed it was a bizarre scheme, but presumably someone had a good reason for it. Besides, rumors floated around that half a dozen programmers had already been court martialed and imprisoned for attempting to push a fix back toward the source. Not to mention the insubordination that would be involved of circumventin< Littlefield to go directly to Sam. Even if Sam said shhh, no, Littlefield would delight in pressing charges on any counts he could. Morgan sighed. "Oh, man. I thought you wanted to talk about tomorrow; trying to make phone calls. Christ. You can't do this to me." Nate looked back with that certain gleam in his eye that said Oh Yes He Could. The one thing Morgan had learned about Nate was that he had the tenacity of a pit bull.


back | next
home