Thursday, April 27, 2006

The Hidden Gospel

Last night I mentioned Cliff, the born again Christian.

We were working on a 4GL system. Remember those? An idea whose time hasn't come and probably never will. But we were trying and our system had evolved into a 3 megabyte executable. This was 1987 and that was pretty big for the time; you couldn't possibly have had such a large executable on a PC without the overlay manager and if you had it would have run like a dog that died last week! If you didn't experience 1987 PC technology you don't know what you missed and you don't know what a bullet you dodged! :-)

Our system ran on Unix. One night we were working late trying to hit a deadline. I was working on my bit of the executable, Cliff on his, Simon on his and so on. We'd type 'make whatever' (I can't remember what the whatever was) and it'd invoke 'make' which did whatever steps were necessary to build the file. CS 101 stuff.

The problem was that our makes all failed. It was 10 PM and Cliff, the family man, had gone home. Simon and I investigated. Our makes failed because we had less than 3 megs of disk space left for the entire team.

So we ran the Unix 'du' utility (my memory may be a trifle vague about the exact commands but the result is accurate) and found a 10 meg shortfall between what was shown as free space and what was shown as disk usage. In 2006 when you can buy a 500 gig disk drive for less than US$300 a mere ten megs is nothing. Heck, that's barely enough space for a few minutes of audio in MP3 format!

Somehow I have a vision of a veteran of 1966 computers saying much the same thing about the resources we had available in 1987. Heck, when I was working (says the hypothetical 1966 veteran) 4K was more than enough to implement a complete symbol table. Doubtless 40 years from now our almost unimaginable 500 gig hard disk will be smaller than on chip cache!

Well, that's the past and the future and the now of 2006. In 1987 Simon and I had a 10 meg shortfall to explain that was seriously impeding our ability to meet the deadline!

We dug a little deeper and discovered that Cliff's 'du' and 'ls' totals exactly matched the 10 megs we were missing. Some headscratching as we looked at the listing of his home directory and then I noticed that he had 2 (count em, two) directories called . (dot). More head scratching as we tried to work out how on earth he could have two directories with the same name! The penny dropped. He had one called dot and one called dot space. A cd into dot space and the mystery was solved. He had the entirety of the bible stored there!

Well that fitted. We did an 'su' to root and deleted dot space and suddenly our builds completed.

Given that this was a violation of company policy something had to be done. Perhaps we chose the wrong 'to be done'. We modified the MOTD file (Message Of The Day file, the file that is displayed to Unix users when they log in) to advise that Cliff had found a way of hiding stuff.

The bastard ran his directory stuffup script on my home directory again. I hadn't remembered to modify the admin audit files to hide my tracks!

No comments: