By Graham L. Wilson
Written in gedit 3.0.6 on Fedora 15.
Copyright (c) 2012, 2014 Graham L. Wilson.
Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is included at this link: see my profile page.
New version edited with more segmented paragraphs per reviewer suggestion; a compromise.
Yet newer version with proper formatting completed with LibreOffice Writer.
Part One: Technician
Note: Yes, I was trying to go for a reinforcement of my ideas through repetition somewhat in this part. Also, I realize this is somewhat similar to Bond of Code.
I awoke that morning and immediately regretted opening my eyes. It was not, as I would stress to anyone who asked, a result of the fact that I had only went to bed around 4:30 in the morning - I was perfectly used that. It was after all 12:42 on my clock, as I saw then. Truth be told, I got around a fairly average eight hours of sleep last night. Of course, that does not mean I did not feel pain around my eyes, but it was a pain of pride. You do not get that feeling from simply staying up watching the late night movie, but from really pushing yourself to keep on working on whatever it was that was keeping you up so late.
No, my reason to regret this particular morning was the sight I saw out of the rooftop window adjacent to my top bunk. Storm clouds, probably snow clouds - or worse, freezing rain. Ah well, I would make do. I did have things I wanted to work on inside the house. Well, 'wanted to' was a stretchable word. I had spent all of last night finishing the enjoyable parts of the project, rationalizing that it would be better to tackle the harder parts after a night's sleep. On the day, of course, one fails to see it that way. No, as far as you on the day are concerned your past self was a selfish prat for taking all of the fun jobs.
What was the task, you may ask? A dread that all but the most dedicated programmers wince at. Debugging is never that enjoyable when one is in most moods, but when you are trying to adapt someone else's code, well, that was something else entirely. One has no conception of what is where, and how to even begin. One simply has to dig in and poke around, and convert the most obvious inconsistencies. Yes, this was not only not my own code, but it was code written in a different programming language. Sure, they were of the same dialect, but that does not make it any less annoying when it refuses to execute until you correct about fifteen little subtle syntax differences.
Yes, I would moan and whinge and carry on as long as I could - since as long as I did that I would be distracting my mind away from the obligation of actually booting it up and beginning work. Sadly, having now written that down, or having articulated it in my mind as I did then, my mind immediately realizes that I am trying to trick it and returns with a barrage of cold logic: do this now or throw the entire effort behind schedule. Sure, all of these deadlines are actually pretty arbitrary and decided only by myself, but to not head them would be inviting the whole structure to fall down on top of my head. If I did not abide by my release dates, I would spend the rest of my life experimenting and never ever release a finished usable program.
At the age of eighty two, I can see myself, finalizing module 692345 of my great disjointed, uncoordinated monster masterpiece - which only I can fathom being anything else than a jumble of random expressions, of murky undocumented features. More than that, I can see myself having spent my entire life at my machine in a cave, separated from the rest of life. There would be advantages to this scenario, and from a purely research point of view it would be an ideal way to build up my knowledge base to its natural peak. Of course, what would be the point of that if I have created no workable examples in any form by which to impart my knowledge to others?
Besides, I am not just a typist's hands with a brain to control them, and I do have some ambitions beyond the mere algorithmic. That was why I was so bummed out by the weather, beyond the basic drives of human emotions and the desire for the warmth of the sun. There are other things I spend my life doing, in any number of environs, and that was why I had to adhere to schedules - to allocate my time rationally and so allow me to build upon all of my areas of interest bit by bit. Truth be told, I should be glad that I had this challenge ahead of me to distract myself from the thoughts I might otherwise be having. My activities are not entirely committed due to dedication to my craft, but also, I suppose, a simple exercise in keeping myself busy. All to avoid those sort of thoughts.
What about my life is so terrible, you may ask? Yes, you may. Well, I do have my problems, money is a big one, decaying infrastructure is another, but I am more referring here to a lack. Still, is it rarely productive to ponder upon intangibles, but what of the non-existent? No, after all, I had work to do. Work was there to make me not ponder the intangibles, since I should not ponder those intangibles due to having work to do. And so on, and so on - and thus I keep my mind fed, sedate and friendly to my greater aims. I had by then gotten my computer fully up and running, and was ready to load up both my IDE (integrated development environment to the uninitiated) in one workspace and the foreign code files in my text editor on another.
The process after that was simple, at least at first: copy from one workspace into the IDE and try and run it. Of course, it will scream at me quite a few times before that code file launches, but one had to start tidying the pile to begin with. Another problem was retying all these disparate class files together into a complete whole, which will also give me trouble with regards to what is a syntax incongruity and which is it calling a sub or something that I have not ported over yet. Who knows, I might get through all of the files and it still will not load. There is nothing more irritating than that, at least nothing besides the results of the thoughts I am still avoiding.
There are some tricks that one learns to deal with the strain, repetitive or otherwise, that the most difficult programming challenges may offer one up. The first is purely and straightly chemical. This varies among programmers, some liking cola, coffee, tea or some bizarre form of direct caffeine and sugar injection. My chosen poison is powdered iced tea, in just the right concentration, in my small metal rimmed plastic drinking bottle. Get yourself on a sugar rush and you can get quite a bit down, and when you crash, well, there is always another jolt - or perhaps it is time to simply let your brain rest, or time to start testing the beast.
The other trick one should do for an ideal coding session is to set up the right atmosphere. Get yourself seated comfortably, with your keyboard, mouse and screen in front of you, and with everything in reach and in view. After that, slap on some headphones and play some coding music. That title is purely functional, and in no way details a certain musical style or genre. As with how we take our sugar and caffeine, I am sure everyone has different ideas of what is perfectly ideal. I have coded to many different types of music, and even have a tendency to code to songs that many would consider rather dark, depressing or sad, or twisted for that matter.
At any rate, the one strain of commonality I can sense is that the music must fulfill two criteria: first, it needs to be encompassing enough to neuter outside influences, and so allow you to focus in on what you are doing. Second, it needs to have a driving and preferably somewhat repetitive beat throughout. Not only does this aide in the already cited concentration area, but it gives one a rhythm to which one can find themselves typing to.
After having put all that work into my preparations, I finally had psyched myself up to the point of being able to actually get started. In the end, I suppose I must have done a good job of setting myself up. I typed and worked and clicked and processed for five hours straight, and by the end was quite close to completing the final port. Though I must admit that by then my head was spinning.
There is a very specific kind of headache one gets after prolonged sessions of coding. It is a mix of dehydration, exhaustion and your brain's attempt to seize up and get you back to relaxing or finding food. You know, the important things. I drank, rested, ate, and in any number of ways fulfilled my body's demands, before bending my mind towards over-viewing my accomplishments that day, and plan out the road ahead.
It was a long and winding one indeed. The reason why I was porting this program over in the first place was that I was unable to find an example with similar functionality in the language I was using. Thus I was porting this over in order to study the technique. Here is the sad thing, as I realized just then: despite all the effort I put into converting this code over, I was still no closer to learning the technique I was after.
The code that did it was ported over flawlessly, as it was finicky interface details instead that had taken up my time. So when this was done, I still had to begin my investigations fresh. Then after that I can start using this technique in my multitude of upcoming programs, to meet my upcoming release dates. I walked back to my computer and decided to start playing a video game instead for the foreseeable future.
I fell asleep a few hours later, representing my mind's thrust to adapt somewhat to a a strange new paradigm involving sleep during the nighttime. My sub-conscious broke free of my metal controls and drifted around through my thoughts, feelings and ideas. As it did this, as minds are prone to do, it generated images, sights and sounds. Sigmund Freud had made a great deal about dreams, though then again he had made a great deal out of poles and shafts of varying kinds quite a bit as well. That does not mean that I would utterly discount his ideas, but personally I more agree with his admission that "sometimes a telegraph pole is merely a telegraph pole" on the latter consideration.
The me inside my head was going through an all too familiar scenario, one that I revisited quite a bit - whether by conscious choice or by the reflections of my deeper mind. As usual, it embodied within aspects of my day beforehand and thus I found myself in a dimly lit room staring into a large glowing cathode ray tube monitor. It seemed like tonight my brain was going after a rather retro style for my vision. Looking down at my hands, my interior avatar found such a thought confirmed by the thick, rough beige keyboard and mouse.
What was this? 1991? Ah well, there was something to be said for tough and bulky rather than sleek and breakable. My representation suddenly seemed to remember what its aim was and began banging down onto the keys in a sharp successive series of clatters. Line after line appeared up onto the screen inside the equally old-fashioned IDE fashioned entirely out of light grey text on a black background. I, well him, pressed a quick sequence of keys, my own customized macro, and initiated the interpreter function. On the bottom of the screen, red text subtly but sharply blared "Error on line #243", and I swore equally sharply. A figure approached from the doorway and studied me coolly. I spun around my now decrepit office chair and lowered my eyes to identify the interloper.
"Still having trouble with that module?" she stated flatly, neither smiling, frowning or anything. The expression on Janice Parker's face rarely ever moved. Truth be told, the computer in front of me probably had more of a visible personality than she did. That did not stop me from minding the comment however, if any thing it made me more annoyed.
"Well, yes. I just rewrote it from scratch and it still won't build" I replied. Janice's lower lip raised about a quarter of a millimetre.
"Rewriting a flawed function will not make it work" she said, again without sneer or affection. I sighed.
"No, but it might have allowed me to correct human error - or at least generate newer, easier to identify ones."
"The human error persists" she concluded. I frowned, and tapped my fingers against my thigh. Janice stood in front of me, and I felt distinctly as if a camera had been installed in the roof above me. It was the feeling of being watched, without the sense of being judged, empathized or understood. Janice had always dressed the same way every day since I had met her when I took this job a year and a half ago. She kept her blonde hair tight and impeccably calm, never having a stray follicle out. Her face was always framed though perfectly symmetrical, perfectly sturdy, perfectly straight black rimmed rectangular glasses. I have never seen her neck, as she always kept it and the rest of her figure swathed in a black turtle neck with matching black pants.
Bellow that were shiny, tidy, you guessed it, black shoes. Given she never left the technical department, a quite dark region indeed, the most anyone ever saw of her most of the time was a hovering ball of blonde hair or stable, straight, peering dark blue eyes. She was the only woman on the entire team, but no one ever bothered her for it. No, most people tended to treat her like a statue - inanimate, inconsiderate, inhuman. Oh sure, she was very, very good at her job, but most of the department, hell, most of the company were actually scared of her. I was the only one, as far as I could see, who was not, and that if anything made it worse. It meant that I took what she said seriously, rather than simply treating her like a steeple gargoyle.
"Alright" I returned finally, "do you think you can fix it?"
"Of course I can" she declared, but without vanity. She was not arrogant, she never was. She simply knew that if it was a problem, she could correct it if she tried hard enough. I rolled myself away from the desk space, clearing the way for her to lean over my keyboard. I did this with the utmost of respect, but I get the feeling that she did not really care how far away from her I kept myself. She could maintain herself as utterly separate from someone equally from one metre to two, and all she needed was the room to complete the task at hand. Still, I kept myself back, not wishing to offend her. The thought had occurred to me that everyone probably kept away from her, for previously said reasons, and she might actually have preferred it if I did not keep quite as much of a distance.
I wondered whether or not she ever felt isolated or alone, but with her it was impossible to tell. Her light, pale hands flew out of her dark sleeves in a bright contrast as they landed on my keyboard, and they were in many way her last remaining trace of femininity. She did not paint her nails and as far as I knew did not wear scent or even use skin cream, but whenever I saw her hands I felt that yes, there was a woman under there after all.
She could not change the shape as she had for her hair, nor could she do as with the rest of her form hidden in black; it was something of an irony that the expressions of her perfectly rational mathematical brain were generated from those hands. She almost never communicated any of her thoughts verbally, and I honoured that silence and merely watched her work from my distance. It was taking longer than I had expected, and I almost began to think that for once she could not figure out the solution either. I did not know how that would make her feel, to finally be defeated before my eyes.
"Problem?" I asked, and her eyes rolled in my direction. Upon her face was the slightest sense of strain, as much as I could see she was trying to contain it.
"No, no" she protested, her voice quavering ever so slightly. She glanced out into my screen again and pondered upon it briefly. "No, no" she repeated, her voice returning to its even tone. This, I knew, meant that she had found a new line of inquiry, and I could not help but smile at the idea that she might just, ever so slightly, be feeling incredibly relieved just then. Within forty-five seconds she hit a few keys and the machine started to build the code. I was surprised, as she had used my personal custom macro. Either she had learned it merely by observing me, or she had been using my computer without my knowing it. I knew her better than to honestly suspect the latter, but the former still seemed a little too incredible even for her.
Any question of her ability however, vanished when at long last my program executed itself properly and colourfully onto my screen in glorious 256 colours. Janice exhaled, and backed away from the keyboard, before straightening the side of her shirt with one swift sweep of her arms. I rolled back into position and tested the program with cathartic exhilaration - I had not gotten this to boot for two days! Now it was running absolutely perfectly, it was even running faster than it was before!
"What did you do?" I inquired, not looking away from the ecstasy of my error free screen.
"It was your calculating function" she replied.
"Math error?" I mused. She shook her head.
"No, not your's. The program you are calling upon seems to have a bug, and I wrote a workaround." I sat back further against my chair and sighed.
"Two damn days..." I fumed, having expected her to have left already as usual, as she rarely ever bothered with either a greeting or a farewell. I was wrong.
"There was something else in your code directory" she began, startling me, "other than this and the code you were calling." My eyes grew and I spun around again.
"Yes?" I asked, not knowing what she meant. As usual, her face remained stone cold solid.
"You have been working on something else on here" she explained, "on company time." I grinned guiltily and dished out the most immediate of worker defences.
"You're not the boss" I said, "why should you care?" She closed her eyes, in what struck me as a rather curious fashion. I did nothing to stop her as she approached the computer again, and started utilizing the interface. She closed my main code file, and loaded up the extra file she found in the same directory. A flash emanated out from the computer screen, as it refreshed and formed into new different lines of code. She activated the interpreter, and within a few seconds my dirty little secret revealed itself to her. It was a puzzle platformer, and from behind the main menu screen a game demo rolled, the player character scrolling along casually.
"How long have you been working on this?" she asked, her eyes staring into my monitor. I shrugged, and tried to recall.
"A few months, when I was too burned out to work on the control system" I replied. She nodded. Well, she had heard my side of the story.
"You do not really enjoy your work here do you?" she asked, a strangely personal question for her. I was not certain how to respond to that.
"It pays the bills, well mostly" I replied, letting the player character continue its exertions to dig its way into the next passage.
"That did not answer my question" Janice challenged. I looked away from her, not believing what I was hearing. She never, ever inquired into the lives of others.
"Truth be told" I admitted, "it does lack something in terms of creativity." Janice nodded again.
"What would you like to be doing then?" she persisted. Her face was as solid as ever, but her voice was giving her away.
"Well, I think you can guess" I said, gesturing to the screen, "only bigger, grander, with more vision." She nodded again.
"Tell me about it" she requested, and I finally could not hold my confusion in any longer.
"I take it this means you are not going to tell the manager?" I asked. She shook her head.
"I am not in management" she clarified, "and I want to hear about your ideas." I smiled.
"Well..." I began, "it all comes down to this. How would you define a video game?" Janice blinked briefly.
"I suppose as a series of virtual environments with various challenges for human players" she decided. I grinned.
"How about instead of players moving through environments, they are thrown at the player to react to, or tweak?" I asked. Janice stayed still.
"You seek to create an infinite, remouldable, dynamic world?" she postulated. I smiled again, and clapped my hands together.
"I think you get it" I remarked, "you get it." Janice raised her eyebrows.
"Why wouldn't I?" she asked, staring at me with her now strange alien eyes. My mouth curved downwards and I felt a desire to eat my previous words.
"It's just I do not know if most people would get the difference" I said, "its nothing special about you." To my surprise, her mouth and chin actually moved.
"So you don't think I'm strange?" she asked, suddenly, "Abnormal?" To see a frown, however slight, on her visage was absolutely shocking. I stood up out of my chair and approached her, her deep blues trailing me as I went. I faced her directly, and placed my hands onto her shoulders - grasping into the darkness. She shook a little to my touch, but did nothing to stop me.
"You..." I began, composing my words carefully, "are the most normal person I have ever met." She blinked at me again. "Everyone else is merely insane" I concluded. I felt her shoulders relax under my grasp, her face, her body soften. It was like rock turning first to wood and then finally to actual flesh and bone. A stray tear dripped down her left cheek.
"I'm human?" she asked quietly, meekly. I slid my arms down from her shoulders and around her back, pulling her closer.
"You feel so to me" I whispered into her ear, and she reached out to embrace me. We held that way for moment after moment.
"I knew you were different" she said eventually, "you weren't freaked out by me, you weren't scared, you simply talked to me."
"You're very good at your job" I returned, "to avoid you would have been to my detriment." She grinned, her tears falling down my back.
"Why don't we work on that idea of yours?" she asked finally, "Together?" I held her tighter.
"That sounds like a wonderful idea" I stated, leaning down towards her face. Finally, we released, and I held her hands in mine. Staring down at them, I did not notice as she craned and began orienting her mouth to meet mine...
I awoke with a start and glanced out at the clock. It read 3:45 AM, and I cursed to myself. Now my natural clock was going to be utterly warped, and worst of all was the fact that I was enjoying the dream. There is a school of thought that states that fantasy may well seem more real than the sensory impulses which dominate our perception of the material world. Magnify that by the truth that I have never really had an experience similar to that shown to me within my head, and you have a very potent image indeed. The idea of Janice was created by my mind, and now it did not want to give it up. It was actually physically painful to come to terms with having gone through all that and in fact being just as lonely as I was before. She did not exist, end of story - yes, the story was over.
This was the fact that I implied earlier kept me going after my work, as there are no controlled, rational blondes waiting behind me as I type. I was simply me, working on my own somewhat petty projects, endeavouring in her stead. I thought of those hands, her endearing womanly hands. I remembered the feel of them, and the sensation of her wrapping them around my own. I really could feel it. I glanced down and found my right hand stroking my left soothingly.
I hastily separated them, and decided that it would be wise to attempt to try and cease thinking those thoughts. Auto-eroticism as a form of relief from sexual frustration is normal enough, but auto-armory in such a fashion was just a bit too creepy for me. I can cease thinking about it, if I try hard enough, but I can not make the lack vanish, or fill the hole in my psyche. All I can do is stuff it with transitory thoughts and efforts, and sleep. I can try and fill it up with sleep, I thought, as I closed my eyes again.