Book Read Free

The Pattern

Page 3

by JT Kalnay


  “Who codes the objects, runs the servers?”

  “Somebody else. The sorting Gods I guess.”

  “And you trust them?”

  “Mostly. I don’t really have a choice.”

  “Okay. So tell me about sorts anyway,” the man persisted. “I always liked the quicksort algorithm.”

  “Yeah that was fun in college, walking the pointers back and forth and moving the fence. I used to be a Teaching Assistant for an algorithms class, that’s when I met my absent girlfriend. Divide and conquer. It was more than just a sorting algorithm. But no-one uses that old thing today.”

  “Oh?” the man asked. He raised a furry eyebrow. The barkeep turned away and suddenly became engrossed in the television hung at a precarious angle above the bar.

  “Nah. There’s a whole bunch of better sorts out there today.”

  “Yeah?”

  “Yeah,” Craig answered, then launched into an academic discourse on the state of the art in searching algorithms, including discussing their big Ohs and their Omegas. The man listened.

  “Frank. You got a pen and paper?” The man asked the barkeep.

  “Sure thing,” the barkeep answered. He handed over the writing tools and Craig thought he saw a knowing glance pass between the man and the barkeep.

  “Craig was it?” the man queried.

  “Yeah.”

  “You said you were a C programmer right?”

  “Right.”

  “So show me how you would swap these two numbers in C.” The man wrote:

  int x = 7;

  int y = 3;

  “Easy,” Craig answered, taking the pen and paper he added:

  int temp;

  temp = x;

  x = y;

  y = temp;

  “Why did you use the temporary variable?” the man asked.

  “Have to,” Craig answered.

  “Don’t think so,” the man said. The barkeep became even more interested in the television as he tried to stifle a building laugh.

  “Sure you do. Otherwise you would lose the value of one of your variables,” Craig said.

  “Still don’t think so,” the man said.

  “Well if you can swap them without using another variable and not lose the values, there’s a Nobel prize or a Turing award for you,” Craig said dismissively. He slid the paper and pen back down the bar to the man.

  “A Turing what?” the man asked.

  “A Turing award. It’s an award given for major advances in computer science. Guys like Djikstra and Knuth get it.”

  “Oh? May I try?” the man asked.

  “Sure. Buy you a beer if you get it. Call it a down payment on the Turing.”

  The barkeep moved with a resigned air towards Craig and his new friend. He corralled the man’s beer stein and pulled the well worn tap to draw a Utica Club into the bucket sized glass. The man wrote something, scratched it out, started over, then looked up.

  “Now I’ve got it,” he said. “Are you familiar with the xor operation?”

  “Sure,” Craig answered. “You use it to flip bits.”

  Then look at this. The man had written:

  XOR

  0 0 0

  0 1 1

  1 0 1

  1 1 0

  a xor b xor b = b

  a = a xor b;

  b = a xor b;

  First I’ll do this,” the man said.

  a = a xor b;

  a = 7 0 1 1 1

  b = 3 0 0 1 1

  a = a xor b; 0 1 1 1

  0 0 1 1

  --------

  0 1 0 0 This is now a.

  “Then I’ll do this.”

  b = a xor b; 0 1 0 0

  0 0 1 1

  --------

  0 1 1 1 This is now b.

  “Then finally I’ll do this.”

  a = a xor b; 0 1 0 0

  0 1 1 1

  --------

  0 0 1 1 This is now a.

  a now equals 3

  b now equals 7

  “The values have been reversed. No temp used,” the man finished. At the instant the pen came to rest the mammoth beer stein appeared beside the pen and paper.

  “Will that be a Nobel or a Turing?” the barkeep asked.

  “A U.C. is fine, as usual Frank,” the man said. Craig sat slack-jawed. He wrote, tried some examples on the paper, scribbled, scribbled some more.

  “Are you sure? Does this work all the time?” Craig asked. The man nodded.

  “He’s been taking programmers for beers on that for twenty years kid. But I’ve got to admit, you’re the first to promise him a Nobel prize or, what was it, a Tuning award?”

  “How come I never saw it before?” Craig asked the man.

  “You’re a software guy right?” the man asked.

  “Yes.”

  “Did you do any hardware in your four years of college?”

  “Five years actually. Got my B.S. in three and a half years and my M.S. in another one and a half.”

  “Then did you do any hardware in your five years of college?”

  “Nope. Never did any hardware,” Craig said.

  “Maybe you should look into it,” the man said.

  “I guess so.”

  The man extended his hand, and smiled a comforting smile that erased the embarrassment Craig was feeling. “My name is Tim Ford. Nice to meet you Craig. Thanks for the pizza. And the beer. Let me have that paper back and I’ll show you some more hardware goodies,” Tim said.

  “How’d you learn to do that?” Craig asked.

  “Years ago, we didn’t have megabytes, and gigabytes and terabytes of memory. We didn’t have object request brokers and we sure didn’t trust anyone else. We had a few registers and maybe an assembler. So we learned all these little tricks. Let me show you.”

  The two men sat at the bar, finished the pizza and drank beer late into the night.

  Chapter

  February 21st, 1994

  San Francisco, California

  “Do you feel alright?” Rufus the guard asked Craig as he shuffled through the APSoft lobby still wearing his tilted sunglasses.

  “No,” Craig answered.

  “Flu?” Rufus asked, raising an eyebrow.

  “Something I ate,” Craig half lied. He signed in and headed for his office.

  “Umh-huhn,” the guard said knowingly to the monitor tracking Craig as he shuffled down the hallway.

  #

  YOU HAVE 142 COMPILE AND LINT ERRORS the computer displayed.

  “Shit,” Craig spat. He rubbed his eyes with his knuckles and took a long pull straight from the half empty two liter Diet Coke bottle on his desk. Craig got up and paced around the office. A vile belch gurgled up from his sour stomach. “Ugh.”

  He sat back down and started to type. After a few keystrokes the phone rang.

  “Craig Walsh, APSoft.”

  “Hi babe,” Stacey said from Washington D.C.

  “Hi.”

  “You don’t sound so good,” Stacey said, both concern and suspicion registering in her voice.

  “I don’t feel so good today,” Craig said.

  “Uh huh,” Stacey scolded.

  “Something I ate,” Craig alibied.

  “Uh huh,” she repeated, scolding further.

  “Okay. I’m busted. I am hung way over, so just shoot me.”

  “Just as long as drinking was all you did, you loser.”

  “Well. Actually, I ate almost a whole pizza.”

  “Craig! You are a pig. Pizza for lunch then pizza for supper? What kind of pizza?”

  “Triple cheese.”

  “Triple cheese? Or triple cheese, triple sausage and triple every other cholesterol laden, artery clogging, life shortening product on the face of the planet?”

  “Okay. I confess. Triple cheese, triple pepperoni, triple sausage.”

  “Craig!”

  “Don’t worry though. I hit the john when I puked most of it up this morning. So at least I won’t be carry
ing it up the hill.”

  “Can’t I leave you for one minute Craig? Were you such a loser before we met? Do I have this to look forward to once the bloom’s off the rose?”

  “Stacey I’m sorry. And hung over. Come home soon okay?”

  “Tomorrow,” Stacey said. “And it’s a bona fide mountain, not a hill.”

  “I miss you.”

  “I miss you too.”

  #

  Craig took another hit on his soda and started typing slowly. Drips of condensation ran down the outside of the now nearly empty bottle. Two hours later Craig was ready to start a test run on his latest changes.

  “Okay let’s see if this bad boy will fly,” Craig said to the empty office. He started the program, watched it for a second and headed out for lunch. When he came back an hour later, it was still running. “Hey. Not bad. I haven’t crashed anyone yet,” Craig said. Then he picked up the phone and dialed his boss.

  “Stan? You got a minute? I’ve got sixty seven minutes of data on what may be our last addition to this beta. Do you want to see it?” Craig asked.

  “When it gets to two hours bring me a sample,” Stan replied.

  “Got it,” Craig said, and hung up the phone. He watched the graphs and dials on his screen move in a rhythmic dance. His fingers tapped on the desk while he watched. He jiggled his feet. He looked around the office. Two liters of caffeine laden Diet Coke were coursing through his hung over system and he just could not sit still. As he looked around the office a poster of the Marauder caught his gaze.

  Craig opened a window on his workstation and pulled up the Marauder source code into a text editor. He stole a guilty look out of his office door, touched Stacey’s picture standing beside his computer and dove into the code.

  “So let’s see what we’ve got here,” Craig said. Before long there were four more windows open, each with a text editor showing a different part of the birthday present source code. Craig was adding comments and print statements and changing variable names so he could track the execution of the program. He called it “building an audit trail.” Most programmers would have used a debug session but Craig knew his method, and figured it was better, as all programmers figure their way is better.

  “Nice,” Craig said. He nodded his head slowly, admiring the code. He selected some code from one window and pasted it into another. “Let’s try this now,” Craig said to himself. Then he began a compile of a test program he’d written to drive a small section of the Marauder game.

  YOU HAVE 0 COMPILER AND LINT ERRORS the computer displayed.

  “Well then let’s run it,” Craig answered to the computer as he typed the commands to make the test run. The small portion of the game started. Craig made a few test keystrokes and mouse movements, checking his changes and embedded print statements. His face drew closer to the screen. His body learned over the keyboard.

  “How’s the test going?” Stan Maxwell asked.

  Craig nearly jumped out of his seat. He swiveled around in his seat and saw the bulk of Stan parked in his doorway. Craig’s heart was beating a million beats a minute while he laid his head back against his chair and took a few deep breaths.

  “Stan! You are going to kill me one of these times sneaking up on me like that.”

  “Sorry. You looked pretty absorbed in that code. I’ve been standing here for nearly five minutes and you haven’t even blinked you’re looking at that code so hard. What is it?”

  “Oh. Well. It’s some code I’m cleaning up,” Craig equivocated.

  “So how’s the test going?” Stan asked, a knowing harrumph escaping his corpulent jowls.

  “Fine. Good. I was, I was just coming to get you,” Craig said.

  “Of course you were. Let’s see what you’ve got.” Craig’s fingers drifted to the mouse and closed the window where the game test was running. He pulled up the simulation results of his auto-pilot software test. It was still running perfectly, and thus the plane that was his model was still flying.

  “Check this out,” Craig said. Stan leaned in and started poring over the numbers on the screen. As Stan leaned over Craig noticed that Stan’s trousers were slightly torn in the back. He also noticed that Stan smelled like he’d taken one too many hits on the Jack Daniels at lunch.

  “Is that all real?” Stan asked.

  “It’s going against our number one QA test suite,” Craig answered. “You know the one that crashes everyone in five minutes?”

  “The rollover left program with the thunderstorm, wind shear, and wing icing version?”

  “That’s the one.”

  “Doesn’t that one have the mandatory ‘go around’ module in it?”

  “Yes.”

  “Great. When will you have the new beta CD cut?” Stan asked.

  “Well, I’ve got one last little change, then a couple of more days testing, so, end of next week?” Craig said.

  “Great,” Stan said. He clapped Craig on the shoulder and turned to go. Craig watched the little tear in Stan’s pants as he left the office. Then Craig took a big hit on his Diet Coke, emptying the bottle with his last gulp. His right hand went back to the mouse and reopened his Marauder code windows and his test program. After another look over his shoulder to see if Stan was trying one of his tricks, heading down the hall then stealing back and lurking in the weeds like a forty pound muskie, Craig was back inside the code. He didn’t hear the phone ring or notice when the hall lights went off.

  #

  Hours later a huge growl erupted from his stomach and rumbled the room like a passing garbage truck. “Jimminy Christmas,” Craig said. “No wonder I’m hungry.” He picked up his phone and ordered Chinese from the strip mall down the block then dialed the front desk to let Rufus know about his food delivery.

  “Hey Rufus. I ordered some Chinese. I remembered to get you some fried dumplings so let me know when it gets here okay?”

  “Sure thing Mr. Walsh.”

  “Thanks,” Craig said into the phone. Craig pulled himself up out of his chair and spent several moments adjusting his spine. After cracking every bone he could, Craig headed down the hall to the bathroom. He ran the water cold, then splashed it up on his face. Bleary red eyes and a two day old beard stared back at him from the mirror.

  “Nice look,” he said to the mirror. He splashed some more water then made his way back down the hallway to his office, bending and stretching with every step to another cacophony of popping joints. He had just sat down when the intercom buzzed.

  “Your Chinese is here Mr. Walsh,” Rufus the guard informed him.

  “Thanks. I’ll be there in a minute.” Craig started a compile and headed for the guard station. “Did you pull your dumplings out?” Craig asked.

  “Yes I did. Thank you very much Mr. Walsh. It’s very kind of you to think of me like that. Maybe that’s what Ms. Horner sees in you.”

  “You know Rufus, when there’s no-one around. You can just call me Craig.”

  “Why thank you very much Mr. Walsh. I’ll remember that Mr. Walsh sir.”

  Craig shook his head and walked away. He thought he heard a tiny laugh behind him, but would not give Rufus the satisfaction of looking back, so he just shook his head again. When he arrived back at his office, his compile was done.

  Craig started eating an egg roll. While he munched he continued editing and cutting and pasting and coding. When he finished his egg roll he connected to the Internet and started up a Marauder session.

  “Let’s see how much I’ve learned,” Craig chuckled. He hunkered down in his chair. The remaining Chinese food sat just out of reach. The game progressed. The food got cold.

  Craig cornered the Marauder on a rusty metal I-beam on the forty-eighth floor of an unfinished high rise. Craig was sure he had the misty warrior once and for all. Suddenly, in his virtual world, the floor began to give way beneath him. As his virtual form fell forty-eight virtual floors, he twisted in the chair, like a cat dropped above a swimming pool. As his virtual self crashed in
to the construction litter strewn on the ground, Craig heard the unmistakable laugh of the Marauder echoing down from up above. Craig sat back and ran his hands through his sweat soaked hair.

  “Shit,” he spat, wiping beads of sweat from his forehead. He turned and saw the Chinese food left on the desk and spooned some chicken fried rice into his mouth.

  “Cold. They always send this stuff over cold,” Craig said. He went down to the kitchen and nuked the opened containers of chicken fried rice and beef and broccoli. After a few test bites on the reheated food, Craig began replaying the game in his head. Finally, he headed back to office, sat down at his terminal and began typing.

  “How did you kill me this time?” Craig typed.

  “YOU FELL,” the computer replied. Craig looked over the statistics and diagnostic prints from the audit trail program from which he had run the session until his gaze fixed on something interesting.

  “Were you the building?” Craig typed.

  “NO.”

  Craig returned to the diagnostic audit trail and thought for a few moments.

  “Were you the beam?” he typed.

  “YES,” the session replied. Craig raised both arms in the universal touchdown sign. He clenched his fist and muttered “yes, yes, yes.”

  “Will I ever kill you?” Craig typed.

  “NO.”

  “We’ll see about that,” Craig typed. The game gave no reply, then suddenly and unexpectedly switched off. “That’s never happened before,” Craig said.

  He opened more windows and started editing more of the code. He started two separate runs of his driver program, then started a third. A small icon at the bottom of his screen indicated that the autopilot software simulation was still running.

  “So how’s that simulation going?” Craig asked himself. He opened the simulation window, looked at the display and reduced the window back to an icon. “Looks good,” he answered himself. “With luck that thing will run seventy two hours straight through the most God-awful conditions our simulators can concoct, and then we’ll be in fat city, time for rollout, bonus, and vacation.”

  As the simulation ran, the driver programs ran. Craig spooned in some more Chinese food. As he chewed, he thought of a comment to add to his auto pilot software to explain his most recent change. He opened yet another window in which to edit the APSoft code. Craig yawned long and loud. He searched the APSoft code for the correct location and started typing in his comment. Halfway through, one of the driver program windows beeped and flashed to get his attention.

 

‹ Prev