Once upon a time, at a workstation far, far away, my computer was a work environment established through hours of installation and configuration.
I do a lot of different things. Write books, edit video, create websites, program Flash, Flex, C++, write games, and create graphic/sound resources for video games. Each of these functions requires its own special program(s). And, each program seems to require some form of special configuration.
Putting my computer work environment together is a many hour job that could stretch over the course of several weeks.
The approach to setting up my computer is not unlike the approach of an organic gardener may take with a parcel of land. The gardener would add mulch and nutrients to the soil over the course of years to build it up. This same gardener may balance the pH, monitor and improve the local fauna -- such as worms and other soil friendly critters. It can take a gardener many seasons to get the soil just right.
Taking this type of approach makes the notion of selling the farm and moving down the road a few miles a bit daunting.
For me it is the same. Given the amount of time that I put into setup and configuration of my computer environment it is easy to assume the posture of investment in the computer as a parcel of tilled soil. With digital mulch and binary nutrients turned into the bits and bytes.
However, after yet another computer death, it has become painfully obvious that I need a different approach to the computer.
As of now I am taking the tack that any computer I use is rented and subject to repossession at any time.
Previously configuration was a "by hook or crook,just get the job done" type of affair. Now it is more important to document the configuration and create mechanisms for reestablishing the configuration should the need arise.
The first C++ environment I created required several years -- adding custom components bit by bit over the course of many project.
The second C++ environment was created over the course of several very painful days as I strained my meager mental resources to remember where and why and how I stuffed the various components around on my computer.
The third C++ environment was created over the course of a single (slightly less painful) day. On this occasion, I spent most of my time normalizing the component installations so that I had easy to capture and easy to re-install folder mappings. I gave up on the notion of putting my source on a d drive or e drive or any other drive than c. Why? Because I could not be guaranteed that whatever new computer I was forced to use would be partitioned.
Speaking of partitions, I have given up on the notion of working within partitions. That whole view came from ancient computing when it mattered that certain functions were on separate (physically separate) drives. This would optimize the trashing and access. Now I just put it all in C. This way I am not put into the position of needing to run Partition Magic and re-create folder arrays every time I start to use a computer. This is especially important on computers and I'm more or less "renting". It may not be possible to partition. Thus, it is simply easier to work on one big C drive.
I have affirmed and doubly committed myself to working in patterns. All of my Flex 3 projects live in a folder called c:\flex3. This way, when I move projects from one computer to another I don't have to worry so much about updating search path parameters. The project used to look for a class in c:\flex3\something-or-other, and by Gadsby that class has been moved into the same folder on the new setup. If I was smarter I suppose I could do something wicked clever with the search paths.
This kind of nomadic approach to computing has given me renewed respect for applications that don't embed themselves into every nook and cranny of the registry. Pegasus (my email client) is a wonder to behold. Copy that puppy onto a new drive and it just flat out runs. Now if only I could get the programmers to let the drive localization be stored in a single setup file, then I could put this application into any drive and let it run.
I believe there is going to be a migration of more and more applications into a nomadic friendly form. (Egads what a pun.) Even so, it will be a good move.
It would be so sweet if each application had a single configuration file (or small set of configuration files) that would hold all the special information, AND, then allowed for easy export and import of this information.
It would be doubly sweet if more and more applications where thumb drive friendly. Let me have Maya on a thumb drive. Then when it comes time to create a 3d model I just insert the Maya USB drive and work away.
I have several programs that each time I migrate from one dead hulk of a computer to a new computer I am forced to call the manufacture and ask special dispensation to move the application. Believe it, this is influencing my purchase decisions. If the manufacture is tracking which computer is "home" to the installation and, if they get all uppity when I am forced by ram, motherboard, or power supply to move to a new computer, then that manufacture goes on the "dump it as soon as you find a replacement" list.
I anticipate the time when my programs and data are stored on a memory device with no moving parts to fail (along with a backup of said device). Then when I want to do anything, I insert that bugger into the appropriate compartment on my "computer" then work away. When I done, I remove the storage device and move along. Basically my data and applications need to be as removed as possible from any of the riff-raff imminent obsolescent computer components that are just a matter of time away from going up in smoke.
Heck darn, I can even see a Raid like array of non-volatile ram with automatic checksums and a little repair light that brightens when I need to excise a ram chip and insert a replacement.
But, then I would be back to the same situation of building a "home" where the gigabytes roam. While the above vision of transportable environment would be nice. One day I can "rent" time on a computer optimized for video rendering, the next day I could "rent" time on a computer optimized for program debugging. Ah sigh, would be nice. But it is still heavily involved with the notion of an established home base. And that concept itself is flawed.
What's really required is for me to develop the ability to find myself in a new situation, quickly establish a working environment from pieces readily available in that environment, then get down to work.
The process of establishing a "working environment" is partly a mechanism for imposing one's view of what one was -- rather than creating a way to be the way one is -- or needs to be.
So while I believe it is worthwhile to work out mechanisms to more quickly re-establish my programming/working environments, I think it is even more important to exercise my ability to mutate with the flux.