My Golden Rules of Personal Computer Management

To date this blog has been about just one thing, SharePoint, and that isn’t about to change. However, for some time I have wanted to share some general computer management tips, I’m hoping it just might be useful to others, and in some ways it follows in the footsteps of Andrew Connell’s discussion around how he uses Virtual Machines. Anyway, maybe in my list of  “Golden Rules” you will find a gem, maybe not, regardless, you can rest assured knowing I will be back to normal programming very shortly.

Now, onto my “Golden Rules”.

These “Golden Rules” are basically principles I have developed over the many years that I have been using PCs. In fact, some of these rules have been in place since my very first IBM Compatible PC (for the record an Amstrad 1512DD, though I had a Commodore 64 before that) (have you ever noticed how us geeks love talking about our “first PC”), others are more recent, all are practices which I find make the relationship I have with my computer that little bit more rewarding, and I think thats all any of us really want, right? <grin>

1. Know exactly what is on your computer
Whenever I get a new computer I do the following:

a) Discard the manuals (what self respecting geek doesn’t)
b) Get it up and running and have a very quick play
c) Open the vendor support site and download the latest version of all drivers
d) Copy these over onto a USB drive
e) Trash the hard drive and reinstall vanilla Windows XP

The reason I take all these steps is to get rid of the programs (well, little bits of software) that hardware vendors install to “add value” (Omar discusses it briefly here, Ed here). Sure, some are these are useful, but the reality is that most are not, in fact I’m often frustrated watching family and friends struggle with all the “clutter” on their new machines…but I digress.

Taking such drastic action can of course be a bit of a headache, as in many cases you will need drivers that are not provided by Windows. This is why I performed steps (b) and (c) above, there is nothing worse than a “Catch 22” where you need to download the network card drivers but can’t connect to the network because you don't have the network driver (it happened to a friend of mine). While these should also be provided on a CD with the machine, downloading them ensures you have the latest version and provides a good opportunity to get to know exactly what all those “little bits of software” or “value” do for you, as the web sites often provide brief descriptions.

Recently, the machines I have received have come with “Rescue Disks” rather than plain copies of Windows. This means the only media you can rebuild your machine with leaves you with a build that includes all of that “value” software. It also means you don’t have a separate “Drivers” disk, making the download step (c) all the more important. Anyway, if this is the case, “Add/Remove Programs” is your best friend.

2. D: is for Data
Soon after getting my Amstrad 1512DD PC I grasped the importance of separating “Programs” (The binaries and configuration files) from “Data” (Unique, user generated content). While Windows, specifically Windows XP, has worked toward making this separation easier (think “My Documents”), I believe we still need to go further. For example the “Application Data” folders stored in your User Profile is very difficult to move, and in many cases the information here is a mix of data and application configuration files. To make this separation really clear, I create a second partition on my hard drive, the D: drive, and I move “My Documents” (Right Click “My Documents” and then find the “Move” button) onto it. In addition to this I ensurethat, wherever possible, the data from any of my applications is stored there. Some examples of this include the Outlook Express Data Files and Outlook Personal Folders.

The downside to an additional partition is the restriction it places on managing your hard disks free space, with you effectively having to make a prediction about how much Data versus Programs you will be storing. To overcome this, I recently purchased Partition Magic to make “after the fact” tweaks, I have found it does the trick very nicely!

3. Backup, Backup, Backup
I know, everyone talks about this, but I have to include it because I have found it so important, and in recent years, it has become very quick and easy.

I’m happy to say, that despite any number of minor disasters, machine rebuilds and country moves, I have never lost any important data. I have close to every email I have ever written, I have applications that I wrote when I was a DataEase 4.53 wiz and documents carefully crafted using Wordstar . This actually makes me feel incredibly grateful as I have heard many a friends horror story, and I have to say, I don't know what I would do if I ever lost it all!

The reason I have been successful in protecting my data comes down to being disciplined about backing up, and frankly, I see very few people who actually are. In many ways PCs are too reliable and we forget just how vulnerable all those little 1’s and 0’s are! With portable hard disks at very reasonable prices I don't think any excuses remain.

My disciplined routine involves using a tool called SyncBackSE ,  its sole job in life is to copy, from notebook hard drive to portable hard drive, just the files that have changed since it last ran. This particular piece of software can even handles open files. I have it scheduled so that it runs every night, and when you combine this with Golden Rule #2 overall management becomes pretty easy, you just backup the D: drive.

One further note is to try and ensure your backup drive is safely stored somewhere you aren’t. For example, there is no point taking your portable drive with you in your travel bag, if someone steals the bag then you have managed to lose both copies of your data instantly. It’s all about avoiding that single point of failure! <grin>

Actually, this nicely leads me on to encryption. To date I have used Windows XP EFS , however, I have just started to use TrueCrypt, after a Scott Hanselman recommendation, on my backup drive. You don't want that data of yours falling into the wrong hands, and the one disadvantage of a portable hard disk drive is that they it’s…well….ummm…portable. <grin> 

4. Automate Maintenance.
In the last year or so I have moved to a policy whereby I leave my PC on overnight. Why? Because the twilight hours are a great time to do all your PC housekeeping, ensuring optimum performance during the daylight hours. In the past I found I could get away with a manual once-a-week maintenance window, but times they are a changing. With the emergence of RSS feeds pumping into .PST files and VPC disks fragmenting your drive, spyware and malware lurking in every corner and growing amounts of data making desktop search essential, I concluded that to get the most out of my machine, maintenance would have to be done every night. This can get pretty complicated for the average user, so it’s no wonder Microsoft is working on software like OneCare .

My nightly “PC Detox” program includes the following:

  • I use PerfectDisk to defragment all my drives
  • I use a beta of Windows Defender to scan for Spyware
  • I update my File and Email search indexes using X1 (I’ll discuss why I don't use MSN Search later). I find a nightly update is all I need and don't risk the performance impact of “real-time indexing”
  • I backup my files as described in Golden Rule #3
  • I ensure new security patches are downloaded and then ready for me to install using Windows Automatic Update.

5. Be tidy Mk I: The Filesystem
While my house may not always be a shining example of “Feng Shui”, my computer folder structure probably is. I’m absolutely fanatical about ensuring data and programs are put in the “right” place. For example my C: root directory has just 4 visible subfolders (“Documents and Settings”, “Program Files”, “Temp” and “Windows”). My Data drive (see Golden Rule #2) has quite a few more, but with the emergence of a number of excellent local search tools, I have been gradually collapsing and consolidating these down.

The key folders that I maintain, as opposed to those maintained by other programs such as “My Shapes” for Visio and “My Notes” for OneNote, are as follows:

  • Archives – When I really don’t need something anymore, I take it out of circulation by dropping it here, often in a ZIP file (This is where those DataEase 4.53 databases are!)
  • Download – This is where I store any incoming files, including downloads from the internet, MSN Messenger file transfers, my download manager ( NetXfer ) , Bitorrent, etc. Under this folder I have the following subfolders:
    • Development – Where I drop any files related to software development, and therefore my development machine (See later)
    • SharePoint – SharePoint related tools for my SharePoint test machine (See later)
    • SmartPhone – Any software related to my Windows Mobile SmartPhone
    • Test PC – Software that needs to be tested before it’s installed (see Golden Rule #7), this is kind of like a quarantine.
  • Microsoft Documents – All Microsoft related documents
  • Personal Documents – All Personal documents
  • Product Resources – This is where I download SDKs, Whitepapers, Articles, etc. that relate to the applications I use (for example SharePoint)
  • Software Library – All the software I install on my PC is added here, except for all the Microsoft Software (since I install everything there is just too much! <grin>)
  • Utilities – As you will see in a future post I run lots of utilities, many of these do not require a setup program, are small in size, and don’t let you specify where to store their data. This makes it convenient to just place them on my data drive (yes, it bends Golden Rule #2, but thats what rules are for)

This folder structure, in a way, has become my personal “Taxonomy”. I reuse this taxonomy, wherever possible in other areas, for example in OneNote, Outlook, Onfolio and many other applications. Where folders on my D: drive contain sensitive information (for example “Microsoft Documents”) I use the Windows XP EFS , though recently I have been thinking about extending this policy to the entire D: drive. If only it were compatible with NTFS compression.

Anyway, I guess this rule simply says “Find a folder structure that suits you, keep refining it, leverage it across applications, and be really disciplined about it”.

6. Be Tidy II: The Desktop Environment
One of my pet hates is those Windows desktops you see with hundreds of icons, all lined up, one after the other, left to right. Tidy your desktops people! <grin> Now, I would like to hold mine up as a pure work of art!

In fact, I love my desktop. I love it so much that back in time I actually even liked the “Active Desktop”, going so far as to write ASP pages that could be hosted there to do things like display my Exchange calendar ( Konfabulator anyone?). but alas, we “depreciated” the feature and I have not bothered to take those otherwise useful tools forward. Again...I digress. The really important thing is something I have continued to do, that is, keeping my desktop very tidy by putting only my most commonly (and currently) used applications on it. 

That said, Windows does have one really annoying habit. Even if you lock your icons, there are still many “events” which can cause them to move, for example changing your screen resolution (perhaps to support old projectors). Now I know it needs to do that so you can still see them, but couldn’t they also be put back in their original location when you switch back again! Argh! Maybe a future version.

I mentioned  Konfabulator (now the Yahoo! Widget Engine ) and I’ve tried it (even before it was free), and think it’s pretty cool. It delivers on much of the promise of the “Active Desktop”, however, I had a lot of stability problems with it running, with my PC routinely hanging. I keep trying each new version, and it has gotten better, but I remain cautious.

7. Virtual PC changes your life Mk I: The Test Machine
The virtualisation of the PC is one of those incredible technological innovations that you quickly take for granted. Do you ever wonder what we did before we were able to create Virtual PCs? I do, and you can be sure our grandchildren wont believe that there was even a time….but I digress.

I have created a plain, vanilla, Windows XP virtual machine which has a type of “canary in the mine” function. It’s on this machine that I test every bit of software I download, then, when I’m finished assessing the products suitability to my primary desktop I use the undo disk functionality to rollback so it’s ready for the next test. I do this for two main reasons:

  • To check to see whether it is something worthy of my desktop (the bar is very high)
  • To ensure it is not going to do anything nasty (Spyware, install other unnecessary software, etc)

Nothing ruins a machines performance/reliability faster, or is more dangerous for its overall health, than installing and uninstalling lots of random software you find on the internet..

8. Virtual PC changes your life Mk II: The Development Machine
Along with my Windows XP Test PC (Golden Rule #7) I have created a “Development PC”. I did this because I got tired of effectively having two “Development” environments:

  • My primary Windows XP notebook with Visual Studio
  • A  virtual machine running Windows 2003 and Microsoft server products including SharePoint, with Visual Studio

It meant that I was running two copies of Visual Studio, one copy of MSDN (which was a pain to use from within my SharePoint VPC), that my development projects were split between two machines, and finally, that I was often “testing” the software I was writing, for example Outlook Add-ins, on the version of Outlook I relied upon to do my job. So, about 18 months ago I took the plunge and moved all my development onto a single Development VPC. I haven’t looked back. This has left my primary notebook environment with no development tools installed at all, everything is in my Development VPC. At a high level (I will go into detail in a later post) this includes:

  • Windows 2003 Server SP2
  • Exchange 2003 SP3
  • SQL Server 2005 SP4
  • SharePoint Portal Server 2003 SP2
  • Visual Studio 2005
  • Office 2003 SP2
  • lots of little development tools

I have written some batch files to flip services on and off (eg. “Start Exchange”, “Stop Exchange.bat”, “Start SQL.bat”, etc) to ensure maximum performance, but on a PC with 2 gig of memory and the VPC set to run with 800meg of memory, things move at a pace I’m certainly happy with (hey I’m not developing Vista here).

An important consideration when you are building up such a development machine is how to ensure your data is backed up (see Golden Rule #3). First of all, I apply the philosophy outlined in Golden Rule #2 to my development VPC. I create an additional “D: is for data” drive, I make sure all my data, including development projects, are stored there and then, since I store the VHD file on my physical “D: is for Data” drive, it get s backed up. Taking this approach is very important because by the time you install all the software listed above in a VPC you are looking at a 9gb Virtual Hard Disk file, backing that volume of data up every time it changes would just take too long.

Right, I’m going to stop there for this post, I have to say I got a bit excited writing it, think that makes me a geek. Don't think I’m done yet, if I get some encouraging feedback I will followup with some more Golden Rules over the coming posts…<grin>