Thursday, July 3, 2014

The First Time I Attempted Suicide

This is not a suicide threat as a suicide at this stage of life isn't a statement but rather a joke.

The Y2K problem was great fun for late-night talk show people but the reality is that the problem was immense, particularly on IBM mainframes where some of the code had been written decades earlier and no-one could even find the source.  There is incredibly-elaborate software to manage application programs now but there are many that were written before that software existed.

This is the realm of Things That Can Never Change.  We hear all the time of such Things, that this or that cannot possibly change.

The date on a mainframe is stored in a four-byte field using the packed decimal format.  Prior to 2000, the date could always be discovered by using only the rightmost three bytes and the year was always in the second byte from the left ... until the year 2000 when that byte rolled down to zero and all programs that performed arithmetic using date fields exploded.

Over the years, programmers had started using shortcuts to refer to the date.  The year is always in that one byte so all I need to fetch is that and I'm all set.  Others would fetch only three bytes, etc.  While these techniques had some marginal benefit in reducing coding, they had the long-term effect of creating, excuse the pun, time bombs.  As soon as the fourth byte comes into use for the year, all of those programs break.  If those programs are running in a bank then you have a Bona Fide Situation.

Y2K was an event that was predictable from the advent of the Gregorian Calendar and yet it turned into a full-tilt international panic with people working overtime, week-ends, and doing all manner of ludicrous tests to ensure everything still worked on The Following Day.

After over twenty years of mind-crushing computer exercises and massive hours to learn systems programming, this was the acme: helping a bunch of lame-ass applications programmers make sure their stinky programs work and to do the same with a bunch of lame-ass systems programmers because they are even more sneaky about how they write code.  I know because I did it too.

That was more absurdity than I could handle.  If this is the peak of a career then that career meant absolutely nothing.  Fuck it.  The game is over.  I took a combination of pills that would lower blood pressure and lower respiration as I figured that would be sufficient to terminate the program without it being inordinately unpleasant.  And so I faded off to sleep.

But.

That wasn't enough to get it done and I was incredibly sick from it.  This was the morning of the conversion and when I went in that evening I could hardly walk and I just stumbled into the machine room.  Maybe they thought I was stoned or something but no-one said anything.

I should have made the break at that point as computers and I were obviously through with each other.  But my boss offered me the chance to lead the z/OS installation and that's the Big Time in systems programming.  I don't think he knew I had never done it before and I was attracted to not knowing how to do it as this made it a Suitable Challenge for a knight who is bored with palace intrigue.

What I didn't know then and you may not know now is how little you really need of what you've got. There's all this stuff around you but if you really get objective about it, likely you'll find most of it is stuff you just keep in case it might be interesting someday.  In my world now, there is almost nothing I have that I don't use every day.


The point is not my own personal melodrama in reaction to it but rather the Thing That Can't Change.  In fact it did change and with relatively-little fuss.  That there was little fuss is what systems programming means: the best job is when no-one knows you have done it.  There was a tremendous amount of work in it and I don't take any pride in that as in my view it was just changing the tires on a car.  That it was incredibly difficult to change them is the absurdity as the net result was zero.  The new tires aren't really better than the old ones, they just aren't flat.


Social welfare systems Can't Possibly Change.  United States foreign policy Can't Possibly Change.  America's national commitment to the manufacture of military hardware Can't Possibly Change.  The list is endless ... and all of it is rubbish.

Of course there is blue sky thinking as without that thinking the blue sky will never come.  The example of Y2K shows something so egregiously trivial and yet it is perfect for the moment as a great many things are stalled because They Can't Possibly Change.  Through the efforts of thousands of people working in concert around the world, Y2K did change ... and was nothing more than a joke on talk shows.  That it became a joke like that was the success of it.  That it happened at all shows Things Can Change.

The consequence of handling Things That Can't Change is not individually in terms of what it did to me but rather in the longer view of it strangling America.  If it's really true these things cannot change then humans are no more than machines serving some twisted economic model and have no more purpose than the wheels in a clock.  You see now a country with almost no view to the future.  Conservatism is meant to restrain Liberalism, it is not meant to stop it.


The problem at the bottom was programmers failing to dream big enough.  They failed to believe their programs would still be running after 1999.  Dream big, it just might happen.

No comments: