Friday, May 27, 2011

A new means of releasing software

From a recent conversation with a colleague, I learned that worms have been around a lot longer than I imagined:

.                      JOHN WALKER   JANUARY 1975
.
.
. THIS PROGRAM IS A TOTALLY NEW WAY OF DISTRIBUTING VERSIONS OF
. SOFTWARE THROUGHOUT THE 1100 SERIES USER COMMUNITY.  PREVIOUS
. METHODS REQUIRED THE DELIBERATE AND PLANNED INTERCHANGE OF
. TAPES, CARD DECKS, OR OTHER TRANSFER MEDIA.  THE ADVENT OF
. 'PERVADE' PERMITS SOFTWARE TO BE RELEASED IN SUCH A MANNER THAT
. IF SOMEONE CALLS YOU UP AND ASKS FOR A VERSION OF A PROCESSOR,
. VERY LIKELY YOU CAN TELL THEM THAT THEY ALREADY HAVE IT, MUCH
. TO THEIR OWN SURPRISE.

Self replicating software a decade before the Morris worm.

Cool.

One thing that I keep in the back of my mind is that even with nearly 30 years of computing experience, I’m still a newbie. There is a vast body of knowledge and experience that precedes me, and much of that is locked away in the archives of the minds of the brilliant people who invented the things that I use today. It’s unfortunate that only a fraction of that knowledge gets passed on from one generation to the next.

An example of this is my maternal grandfather. He was born early in the 20th century, grew up on a farm, worked as a machinist, factory worker and owned a small engine repair shop. He knew nothing about technology and probably didn’t know anything about combustion, yet he could listen to an engine for a couple seconds, pull out a screwdriver, turn a couple screws on the carburetor and make it run like new.

As a teen, he was responsible for heating the house. That meant spending the winter cutting down trees and splitting the logs needed to keep the house warm two winters into the future (the wood from the current winter had to dry a couple years before it could be used to heat the house). So he knew how to look at a tree, place the chain saw in the right place at the right angle and drop the tree right where it needed to land.

When I was a teen, we had various storms and other events on the family farm. Dozens of trees were damaged and need to be cut down. My grandfather couldn’t run the chain saw anymore (heart attack), but he knew how to drop trees. I could run the chain saw, but I had no clue how to drop a tree. (Or – I knew how to drop a tree…I didn’t know how to drop a tree in a predictable direction.)

You see where this is going…. Winking smile

As we walked the farm from end to end, he eyed up each damaged tree. Three puffs on his ever present pipe, an eyeball on the most off-balance, mangled, crooked tree around, and he knew how to make it fall. He pointed to a spot on the trunk and held his hand at the angle that I needed to hold the chain saw. As I wrestled the 1960’s vintage gasoline powered saw, whose power to weight ratio was far more weight than power, he tweaked the angle of his outstretched hand and I tweaked the saw to match.

Every single tree fell exactly where it needed to go.

And of course if the saw wasn’t singing the right melody, he held up his hand, I paused, he pulled the ever present screwdriver out of his shirt pocket, touched it to the carburetor and the chain saw magically changed it’s tune.

What I regret most is that I was only able to retain and use a tiny fraction of his knowledge. I’m sure that if I did that today without him guiding my saw, the trees would fall in a direction modeled by some function involving /dev/random, and the saw’s melody would pain the neighborhood.

This happens every generation, and certainly happens in system administration, development and the other foundations of our technology.

Too bad.