Version Control

Home > Science > Version Control > Page 36
Version Control Page 36

by Dexter Palmer


  “Do you understand? Does that make sense to you?”

  Alicia looked at Rebecca for a little while as she thought about it. “I would not have done this, if I were you,” she said eventually. “But I think I can see why you did it. You wanted to be close to the thing that was the physical incarnation of the idea. The way I see it, the ideas that Philip had don’t need things to make them real—the causality violation device is the result of an idea and the potential proof of its truth, not the idea itself. But that’s just me. I think I see why you acted as you did.”

  “Thank you,” said Rebecca, who knew Alicia well enough by now to take her statement as an expression of her genuine sympathy.

  “Okay,” said Alicia. “Enough of that. Second order of business. I have a problem at work. And I’m hoping you can help.”

  “I’m all ears. Hey, you sure you don’t want a beer?”

  “I don’t,” Alicia said, “but feel free to get another for yourself.”

  Rebecca got another.

  When she sat back down, popped the top, and took a gulp, Alicia began. “Here’s the problem. I have had to admit to myself, since I’ve taken over the Steiner lab, that this project is a mess, and in deep danger of failure. Even DAPAS with its bottomless pockets is starting to get impatient: they want to see some results. And the worst thing is that it’s not a problem with the ideas. We still believe the ideas are solid: it’s just a matter of producing the evidence that will get everyone else in the field to agree with us. The worst thing, for me, is that it’s a problem of lab management. It was incipient in the lab when Philip was running it, but he did his best to stay on top of it. But when I took over the lab I didn’t. I let it go, and it got worse, and now it’s coming back to bite me on the ass.

  “The difficulty has to do with version control of the software we developed that drives the causality violation device. Needless to say, it’s quite complex—over a million lines of code by now, written by dozens of people over several years. And with code that complex you can’t just have one person signing it out, working on it, and signing it back in. You want several people to be able to work on it at once—it’s so complicated by now that anyone who’s an expert in one section will find another section she won’t be able to make sense out of at all. So to avoid forking—that is, the development of multiple versions of the software being developed independently that diverge from each other in content over time—you institute a version control protocol. And you use an additional piece of software to track changes between versions.

  “There are a couple of ways to do this. The most practical, and the one we should have stuck with, is called copy-modify-merge. Two programmers check out copies of the software, make their changes independently, and then check the software back in. A version control system checks both copies for changes, and creates a new version of the program that incorporates the changes from both programmers. If both programmers work on the same section of code, which is highly unlikely, the version control protocol throws up a conflict flag. Then the programmers compare code, decide which of their revisions was best, and pick that one. It sounds chaotic, but it works well in practice.

  “So that’s the version control protocol we used in the lab for several years. But when we accepted funding from DAPAS, it came with some conditions. We had a guy come up from DC—his name was Michael Cheever—to ‘streamline our process.’ And it was clear that Cheever would keep his hands off our science, but if we didn’t take his advice on process, further funds might not be forthcoming. And his heart was in the right place—he was genuinely enthusiastic about what we were doing, and he and Philip got along well. But one of the things that Cheever absolutely insisted on is that we shift from a ‘copy-merge-modify’ protocol to a ‘lock-modify-unlock’ protocol. He wanted one person at a time to check out the entire code for the CVD, make revisions, and check it back in: while one person had signed it out, no one else could make changes to it.

  “A moment’s thought will show what a bad idea that was. But at the end of the day Cheever was a bureaucrat, and though he understands the science and he cares about it, he has to report to people who don’t understand the science at all and have to be convinced to care. And in his report it looks better if he can say the CVD software went through a number of distinct iterations in a given time period, while with the copy-merge-modify protocol the numbers don’t look quite as solid. So, because we weren’t idealists, we did what he said.

  “The result was disastrous. We all copied the CVD software to memory sticks to work on it on our own, because the new version control protocol was too restrictive to let us get anything done. And even though we tried to keep track of it off the books, the code’s development forked every which way. I called a meeting yesterday and we finally admitted, all of us, that we don’t know what the hell we’re doing anymore: we’re driving in fog and our headlights are out. The code is a pile of spaghetti.

  “But if this cloud has a silver lining, it’s that there’s hope, a huge hope, that the problem isn’t with Philip’s theories, but with the code. So we’re fixing the code, generating a definitive version, getting everything straight. And that’s in part a management problem, so now I’m managing. Dennis is probably our most gifted programmer, but I chewed him out last week, right after that lab meeting, and I’ll tell you why. He would come up with these gorgeously elegant solutions to problems—something you’d expect would take a hundred lines, he’d do in sixty-five—but he wouldn’t write comment code if you put a gun to his head. Comment code is meant for humans to read, not compilers, and it’s marked as such—it explains in plain English how the software works so future programmers will know what it’s doing and how. But Dennis could never be bothered to write that stuff—I don’t know if it was out of laziness, or arrogance, or a combination of the two. Time and again if I did find one of his comments, it’d say ‘purpose and method of the above is self-evident.’ And ‘the above’ might as well have been a Zen koan for the sense I could make out of it. If it was a couple of years old Dennis himself couldn’t figure out the code he’d actually written—and I gave him a little test: I showed him five samples of his own uncommented code and he could only recognize the functions of two of them!

  “Philip, on the other hand, was great at commenting: highly scrupulous about it. He’d write ten lines followed by a whole paragraph, in grammatically perfect English, telling you what they did. Dennis would even complain about Philip’s coding behind his back, saying he couldn’t read it because all the comments got in the way! So in order to unscramble this mess, we’re trying to find every scrap of code that Philip laid his eyes on and marked up. And because the development forked so much, I need to entertain the possibility that Philip had a private version of the CVD driver that none of us saw, one that might help us dig out of this.

  “Which leads me to ask you: do you have a laptop of his that’s still around? And can I take a look at it, for a little bit?”

  After a few minutes of rummaging through Philip’s office, Rebecca found the laptop—there were three stacked on each other, but the one on the top had been his favorite, its case fashioned from titanium, its body so thin that it looked like you could cut yourself on it if its lid was closed.

  Back in the living room, Alicia slid a memory stick into a slot on the side of Philip’s laptop, plugged it in, and turned it on. “It wants a password,” she said. “Any ideas?”

  “Rebecca?”

  “Too easy. Not secure at all.” Without consulting her further, Alicia hammered out some keystrokes and got a foghorn of rejection. A second attempt got her in, though, and she smiled and laughed. Probably some kind of physics in-joke.

  A few minutes later Alicia’s face lit up. “This is good. This is good! Look at this, Rebecca: look!” She spun the computer around on her lap to face Rebecca. On the screen was a program that, for the most part, was completely unintelligible to her, but nestled amid the lines of computer instructions were glosses in Phil
ip’s precise English: # If the subroutine above returns a value outside the range of ±2 * 10^-3, the routine that computes galaxial drift should be run again. # There must be a better way than this to decrease latency: minimizing lag is of the utmost importance. Return to this with a clear head. And so on.

  “This’ll help,” Alicia said as she copied files to her memory stick. “This’ll help a whole lot. Thanks, Rebecca: I’ll save our asses with this. Watch.”

  In his bedroom, Sean played video games for a while on his tablet while his mom talked with Aunt Alicia. He had homework but that could wait until tomorrow morning—the game was more important. If Mom had watched the game for more than five seconds she would have flipped and taken it from him because it was for people older than him. It was about a bunch of kids who ran through mazes made out of the strange things of adulthood: old decrepit castles; and places full of sweat and steam; and other places with neon lights and curtains that were decorated with pictures of women who were all lips and butts and boobs. None of the kids wanted to be in the mazes—every time you told them they had to go they’d get sad and look down at the floor—but they had to rescue their friends from school who had been kidnapped and taken there, where they were guarded by demons. Sean thought he was old enough to play the game even though he wasn’t as old as the kids in the mazes: they were fifteen and sixteen. The game made it look like being that age meant that the world started dumping things on you whether you were ready for them or not. Sean felt like he could understand that.

  After a while he placed the tablet aside, changed into his pajamas, got under the sheets, and turned off the lamp on his nightstand. Tonight would not be a night when Mom tucked him in: he would have to tuck himself in. After Aunt Alicia left, Mom would have another beer. Maybe she would come in super late when he was already asleep, and wake him up with a smeary beery smooch and a tender good night whisper. It was annoying when that happened, because he was already asleep and then he woke up and then he had to get back to sleep again.

  As he drifted off, his father came to visit him, clothed in all his possible shapes. He wore an astronaut’s black latex spacesuit with six slits in the back, from which three pairs of idly flapping angel’s wings emerged. On top of the spacesuit’s helmet was a tall black stovepipe hat that was also a rakishly skewed fedora and a wizard’s pointy cap. In one hand he held a king’s scepter; in the other, a policeman’s baton. His feet were clad in roller skates that had switchblades in their toes in case he needed to kick someone.

  “Hello, my son,” Sean’s father said. “I am busy being a hero. But now it is time to tuck you in for bed: good night.”

  “Hey, Dad,” Sean said, keeping his voice down. “Whatcha doin’?”

  “I am climbing high mountains; I am making all the sciences; I am putting all the thieves in jail where they’ll die.” His wings shivered.

  “Thanks, Dad.”

  “Do you need help with your homework?”

  “Nah: I’m gonna do it tomorrow before school.”

  Dad chuckled heartily. “This is what you should do, because you are as smart as I am! Tonight, the other kids are looking at their homework and saying dirty words. They say I don’t understand this, and then they say the f-word.”

  “I know! I don’t know what their problem is.”

  “It’s because they don’t pay attention! They just sit there in class like duh.” Hovering in midair, Dad twirled in a tight circle. “Sean! I have to go save the princess from the tiger now: it’s already eaten off her foot! But remember: you are my one and only. Call me and I will forget the princess, and I will forget the mermaid, and I will forget God. I will be here as fast as I can! I will put all your enemies in jail!”

  “Thanks, Dad.”

  “Goodbye, my son; good night, good night,” Sean’s father said, and disappeared.

  24

  LEVITICUS TATTOO

  It sometimes seemed as if Rebecca’s father, Woody, might have taken Philip’s passing almost as badly as Rebecca herself. Though the irregular conversations he’d scheduled with Philip on abstract philosophical matters were his not-so-covert way of keeping an eye on the unknown quantity who’d somehow managed to snare the love of his only daughter, over time those discussions had grown into something rich and vital and perhaps inexplicable.

  Woody had, in fact, gotten a tattoo in Philip’s memory, at what he himself admitted was “well past the age when a man should think about getting inked up.” It was on his forearm, and read, in a font that looked lifted from a twentieth-century schoolbook, “Leviticus 19:28.” It got him dirty looks sometimes: the sight of it would inspire occasional atheistic hisses and comments about why he’d want to memorialize a book of the Bible so strongly opposed to basic human rights and the consumption of shellfish, but then he’d point out that that particular verse, in the KJV, read, “Ye shall not make any cuttings in your flesh for the dead, nor print any marks upon you: I am the LORD.” This brought people up short: sometimes, if he was lucky, Woody would get to have a good debate about the fallibility of texts, or the presence of comedy and irony in the Bible, or some other subject, right there in line at the hardware store or the local coffee shop.

  “My faith is at its strongest when it sits on its weakest foundation,” Woody had said, once, evasively, when Rebecca had come across him with a glass of Scotch in his hand and gotten him to talk about his decision to get the tattoo: she’d known better than to ask him who or what he placed his faith in, since that always resulted in some kind of cryptic question meant to make her meditate on the ineffable or some such. But Woody had delivered Philip’s eulogy, and in it Rebecca thought there might have been more of a clue of what he was thinking. “The man we lay to rest today was my son-in-law; he was a physicist at the cutting edge of his field; and though he did not attend my church, like at least a few members of my congregation, he was an atheist who believed in the necessity of evidence to verify claims made about the world in which we live. And though I disagreed with him on that last point, I wouldn’t have had him any other way.

  “When he first asked for my daughter’s hand in marriage, I set a condition: that he engage with me in conversation on matters of theology and metaphysics, areas in which I have to say I initially found his knowledge lacking, as smart as he might have been in other respects. We kept these meetings up for years, and I’m happy to say that he regularly proved me wrong, disturbing preconceptions I had about the world even as I tried to shake his own. I must admit that I entertained a faint hope of converting him, or at least getting him to acknowledge that if atheism was a valid way of relating to the world, it was not the only way. I imagined myself finally winning our long argument in my old age, and regarding it as one of my greatest achievements as a man of the cloth. Now I realize that if I had ever won that argument, I don’t know what I would have done. I never wanted to have the last word in our decade-long debate. Especially not this way. Especially not now.

  “Philip Steiner was a man who believed in the sanctity of evidence, in that which could be observed and verified. Well, death is the last brute fact. For some of you this is the first time you’ve been in a room with the dead; for most of you it won’t be your last. I have delivered eulogies at dozens of memorial services, and I’ve never gotten used to it. I always find myself wanting to shrink away from the bare fact of another person’s mortality, and with it, the reminder of my own. And as much as I hate this forced knowledge, I cannot imagine what it is like for my grandson, deprived by his father’s passing of decades of innocence that should have been his by right.

  “You get used to seeing the dead. But you don’t get over it.

  “So you use humanity’s most precious talent, the gift of language, to try to cheat the reaper, to keep the best part of yourself alive past the day your body drops. You speak to those you love and you try to copy your thoughts into the minds of others. You write things down in the hope that your words will come before the eyes of strangers. You try to be the
first to uncover a new truth about the world, so that when others repeat that truth it carries your name along behind it. But at the end of it all you have to face that last brute fact: not even the most cunning of us can negotiate with a stopped heart. And to be reminded of this, to see the bare evidence of it in front of us, is to remind us that we have so little time, and there is so much in the world to see and know, and that even if we use that time as best we can, even the most fortunate of us will see and know so little. Not even a neuron of God’s mind. Not even a drop of the great ocean.

  “But despite this, despite this confrontation with our own certain and inevitable failure, we keep trying. And sometimes we succeed, a little, and ensure that those who follow us will succeed a little more.

  “In 1834 Ralph Waldo Emerson wrote in his journal that ‘to distrust the deity of truth, its invincible beauty,’ is ‘to do God a high dishonor.’ And I believe him. And I hope that Philip Steiner would not be offended if he heard me say that I also believed that through doing science he was honoring God, in his own way.”

  Woody and Marianne Wright had a reception at their home after the funeral, and at Rebecca’s recommendation they had it catered by a Mexican restaurant nearby: there were foil trays full of enchiladas in neat rows and coolers full of craft beer in tallboy cans, and the physicists tucked into the food in reverent silence. Rebecca herself didn’t have much of an appetite—she mostly sat on the couch in the living room and received condolences, though at this point she’d rather have taken all these expressions of sympathy for granted: the performance of bereavement was tiring.

  If such performance was bad for her, it had to be worse for Sean, who could not be entirely certain what had happened, or what he was doing, or how he should think. She felt protective of him: she knew that there was a certain kind of well-meaning person who saw a child’s grief as pure in a way that an adult’s could not be, and who might offer him a treacly kind of insistent sympathy that would end up provoking him to public tears. So far he’d been holding up well, with occasional twitches of the lip during the service: Rebecca had held his icy hand throughout. But his reserves of composure had to be coming to an end. After he’d eaten a little she asked him if he wanted to go back to his grandparents’ bedroom to play video games on his tablet, and as he left the reception, his eyes already beginning to glisten, he seemed grateful to be relieved of duty.

 

‹ Prev