Computer maintenance and organization
Last updated: January, 2009
Occasionally I get questions from people regarding what software to use for email, IM, security, maintenance, etc.... There are some very simple ways to organize your computer as well as open source/freeware software programs that can help you with that. All these applications are available under Windows 7 (as that is the main OS I use on my laptop), but most of these freeware applications are also available under Linux.
Below a set of guidelines, structures and applications that I use to organize my computer related work. I try to keep things as simple as possible and shy away from bulky applications that can help with some of this. This is an intentional choice: do more with less. I believe in small applications that can do specific tasks very well. All applications mentioned below are freeware. The applications mentioned below are not an exhaustive list and depending on your needs and requirements, you might opt for different applications
Data Organization
As I remember events usually in time/place and name of the event, I tend to organize certain data: my documents, photos, video, etc... in a chronologically manner. I have several main categories: documents/academic/proposals, documents/academic/publications/, documents/academic/reports, documents/academic/presentations, photos, video . Under these main categories (represented as directories), I create subdirectories of the different years (2002, 2003, 2004, etc...), under which I create directories that start with the month and followed by the name of the event. E.g a presentation I did at a workshop in Miami for the Ultralight project in December 2008 would go into: documents/academic/presentations/2008/12ultralight. A photo taken in Italy in August 2002, can be filed under photos/2002/08italy . In the directory hierarchy I code some meta data information that is part chronological and part descriptive.
Due to the nature of my work I receive a lot of email and work a lot with IM (Instant Messaging). To keep track of my emails and IM messages I use Thunderbird for email and Pidgin for IM. Thunderbird stores the text part of your email in (ascii) files that are easy to search through or read with an ascii editor if I ever needed to. Pidgin has the option to use multiple IM accounts (as not everybody I work with uses the same IM infrastructure), and you can log the messages you send (and receive) into text files. Text file organization is done with time stamps (chronological) and thus it is quite easy (for me at least) to search them.
Due to the volume of email I created several categories for organizing my email. Broadly there are 4 categories under which additional folders are created: there is my (remote) inbox where all my mail comes in, development lists (auto generated messages on committing code and package), persons (messages from specific persons), and mailing lists (messages sent to a mailing list that did not go to the person folder. This organization enables me to quickly access and prioritize emails. Apart from my remote inbox, all other folders are local (I do make periodic backups). This enables me to work offline (e.g. in the train or in airplanes) and answer most of my emails before I connect.
Filters are set in such an order that they go through development list first, persons second, and mailing list last. The development folder enables me to keep track of changes in multiple projects I am involved. They are mainly auto generated messages but the overall collection gives me a good overview of what is happening in the projects.
The person folder contains sub folders of persons of which I would like to know whenever they send something (not only to me but also to a mailing list). Certain mailing lists are not that interesting overall except when certain persons (of authority), send an email. I keep track of these persons (who I think are important) as a way to deal with the large amounts of emails that are flying around on mailing lists. Finally all messages not caught by the development or person folders go to the appropriate mailing list folder or stay in the (remote) inbox if there is no filter for it. Organization of these folders is an iterative process and need to be occasionally updated.
A nice feature of Thunderbird is that it shows the number of messages you have not read in a sub folder next to the sub folder. So in one glance (if I have my sub folder directories expanded) I can see who sends what and how many (which is especially important for the persons folder). It enables to quickly identify the important messages. This feature also serves as a todo list. E.g. if an email requires specific action I mark it as not read and this shows up in the folder view where I quickly see what messages require action.
I am subscribed to many lists, some of which I do not have the time to read, but since Thunderbird has excellent search filters I use Thunderbird also as a knowledge base for my email, even if I never read all mails of certain mailing lists.
I mainly use Firefox for browsing and use its bookmark management tool for organizing my bookmarks. I use the bookmark toolbar, and categorize my bookmarks according several main categories (represented as folders) on my toolbar. Several of these main categories are: Cache (sites I use often), Dashboard (sites containing monitoring information on our IT infrastructure), Org (categorized web sites of companies and organizations), Location (sites specific to a region (e.g. tourist sites) ), Facts (collection of urls to traceable scientific research explained in human understandable terms) and Pending (bookmarks that need to be categorized). The main categories have their own sub categories. The procedure for new bookmarks is:
- Put it in the pending category (or directly to the proper (sub) category)
- Once per week move bookmarks in pending to their right (sub) category
- If a (sub) category grows too large, split it up and reorganize
- If a category grows too large, split it up and reorganize
- Occasionally reorganize if you cannot find your bookmarks anymore.
Sending emails
The above showed how I try to manage emails that I receive. When I send emails I try to send them in bulk and try to answer the (non) critical emails twice per day (morning and late afternoon). For this I use the ctrl-shift-enter option in Thunderbird, which puts all messages in the Unsent folder. There are several reasons for sending messages in bulk:
-I do not want to be distracted by every email that comes in after I just sent a reply. Email is sometimes used in an IM way, where people cc'ed in an email chip in their opinion in near real time.
-When there is a thread , to which I have replied to on an earlier message, my reply might have become irrelevant due to this current message (both of which were sent before I opened my email in the morning). If it is in the Unsent folder I have the possibility to delete it or edit it again.
-It enables me to correlate messages from different discussions (threads) and tailor my responses appropriately by sometimes cross referencing ideas/remarks/proposals.
-It allows me to add something to my initial reply if needed and to proofread certain replies again.
-Certain email discussions tend to evoke an immediate response. While going through my emails in the morning I do not want to be disturbed too much by replies to my replies.
Security
To ensure that sensitive data is not compromised I use TrueCrypt to create partitions on my hard disk, and USB stick. Using a sufficiently long password data on your USB stick should be relative save. It is easy to setup by creating partitions that are represented as encrypted files. If needed you can also hide your partitions (make them invisible). For secure communication I use PGP (Pretty Good Privacy) based on openPGP standard as defined by RFC4880. There is a Windows version for this including a graphical assistant (http://www.gpg4win.org) . PGP works with public/private key pairs. You generate one pair for yourself, and announce/advertize/give the public part to the people you need to correspond with. Whenever you send an email you can use your private key to sign the message. Using your public key receivers can then establish this message was send by you. You can go a step further by using the public key of the receiver to actually encrypt the message if you want to ensure that only you and the receiver can read the message.
Tor is software that helps you defend against traffic analysis. Tor protects you by bouncing your communications around a distributed network of relays run by volunteers all around the world: it prevents somebody watching your Internet connection from learning what sites you visit, and it prevents the sites you visit from learning your physical location. Tor works with many of your existing applications, including web browsers, instant messaging clients, remote login, and other applications based on the TCP protocol. I sometimes use Tor in my browser. If you go to some geo IP locater tool when Tor is turned on you see that the IP address is different from yours. Tor is great for anonymizing network traffic, but it is not a tool that encrypts data (you can use something like PGP for that if needed).
Nowadays most people have a large collection of login/password pairs for various accounts ranging from Shutterfly to GMail. Perhaps the easiest way to keep track of that is to use one password for all of them. Not the safest way, and occasionally sites or services will ask you to renew your password which means you need to change all the passwords at once. KeePass is an open source, light-weight and easy-to-use password manager that you can use instead. You can put all your passwords in one database, which is locked with one master key or a key file. So you only have to remember one single master password or select the key file to unlock the whole database. The databases are encrypted using the secure encryption algorithms (AES and Twofish), provided you choose a sufficiently challenging password. The nice thing of KeePass is that you can 'drag and drop' your passwords into most websites. So people can look over your shoulder but all they see is you dragging a sequence of asterisks into a text field. If you put the KeePass application in a secure partition on your drive you only need to remember two passwords. Be sure to make these passwords sufficiently large so that they are hard to crack as it protects all your sensitive information.
TrueCrypt + PGP + Tor + KeePass ensure that your data is sufficiently secure (although there is never a guarantee).
Application Organization
My 'core' operating system is Windows 7 at the moment. I run various virtual machines (Linux, Windows XP). In the Startup folder I placed one short cut to a 'startup folder'. This folder is automatically displayed during startup (see Figure 1).
Furthermore I try to minimize automated startup from background processes as much as possible (e.g. acrobat reader starts a program that scans for new versions, just as several other applications). For minimizing starting up too many applications and services, you can use the MicroSoft msconfig application but also make sure that when you install a program you turn off certain features (e.g. check for updates).
My 'startup folder' contains several scripts that contain a list of commands I want to have executed when I start working on my computer (however I do not want to start them up automatically). The scripts represent several profiles. One profile assumes no network, the other is my work profile and yet another is a minimum profile. The scripts start several applications in a sequence with a predefined 'wait' time between application start up. Below is the list of applications from my work script: It starts up VPN, calendar (Sunbird), IM client (Pidgin), VOIP (Skype), email (Thunderbird), a tool to measure how much I download per hour/day/month/year (Netmeter), a desktop switcher (Dexpot) and a folder called 'applications'
start "" "C:\Program Files\Cisco Systems\VPN Client\vpngui.exe"
ping 1.0.0.0 -n 1 -w 20000
start "" "C:\Documents and Settings\fvlingen\My Documents\Desktop\applications"
ping 1.0.0.0 -n 1 -w 2000
start "" "C:\Program Files\NetMeter\NetMeter.exe"
ping 1.0.0.0 -n 1 -w 2000
start "" "C:\Program Files\Mozilla Sunbird\sunbird.exe"
ping 1.0.0.0 -n 1 -w 20000
start "" "C:\Program Files\Dexpot\dexpot.exe"
ping 1.0.0.0 -n 1 -w 10000
start "" "C:\Program Files\Pidgin\pidgin.exe"
ping 1.0.0.0 -n 1 -w 10000
start "" "C:\Program Files\Skype\Phone\Skype.exe"
ping 1.0.0.0 -n 1 -w 20000
start "" "C:\Program Files\Mozilla Thunderbird\thunderbird.exe"
I hardly use the 'all programs' toolbar under the start menu, neither could I find a good task bar launcher. As a result I created a folder 'applications' which contains shortcuts to all the programs I frequently use (see Figure 2). It enables me to launch an application with one click. The programs are categorized by prefixing the name with its catagorie: audio-, browser-, comm- (for communication), info-, misc-, monitor-, photo-, sec- (for security), util-, video-. Figure 1 shows a screenshot of the list of applications I use frequently.
Backup
There are many backup programs available. The ones I use is SyncToy from MicroSoft. Backups are created by comparing the source with the target, if the target is an older file it gets replaced. My backup includes my local email folders (easy to do with Thunderbird), IM log files, and bookmarks of my browsers. Under my documents I have two folders called 'archiveDeep' and archiveShallow'. ArchiveShallow contains data that I frequently need (ussually not bigger than 1-2 GB) and has a backup on my USB drive. archiveDeep contains data that I do not need frequently (photos, video) but which I do not want to loose. This data is also backed up to my USB drive. Once this folder reaches 4.7 GB (the size of a DVD) it is backed up to a DVD and removed from desktop hard drive. This way I keep data on my hard drive to a minimum, furthermore the data is backed up twice on 2 different types of media (disk and DVD) which increase the chance that I can access backed up data if needed. The USB disk allows for quick access to all the data, while the DVDs provide redundancy and robustness (e.g. I can drop my DVDs but usually not my hard disk), but access time is higher if I want to retrieve data from a DVD. If you want to make sure data is copied properly you can do checksums on the copied data (makes the backup process much slower). I usually run the backup program once a week, so at worst I lose a week of data which is acceptable to me. It depends a little bit on your needs how often you would run a backup program.
Computer Maintenance/Cleaning
Operating systems (like Windows /) have the tendency to 'slow' down after a while. There are several checks I perform frequently to prevent this. I defragment my disk frequently using the application SmartDefrag and clean my recycle bin, caches, and registry frequently using CCleaner.
Computer Monitoring
Occasionally it happens that an application access network, disk, or cpu resources more than I anticipated (e.g. your hardisk is rattling, or all other applications are blocked). There are several utilities to discover what is going on. MicroSofts file monitor shows in real time what processes are reading/writing to harddisk. Another MicroSoft application Tcpview show which programs are making outbound connections. Process explorer (also from MicroSoft) shows all active processes currently running. While Autoruns gives a complete overview of all kinds of parameters. I also run the application NetMeter in the background (under Windows XP). It accumulates download and upload totals on daily/weekly and monthly basis and lets me quickly see when an application accesses the network.
External Information Sources
Besides browsing the web, I subscribe to several podcasts from multiple countries to keep up to date with current events, background, and technological news. You can find a complete list here: http://vanlingen.name/web/SuperPodder.xml The list is in a format used by an RSS download application I wrote called SuperPodder. For RSS feeds (to read) I use RSSOwl. I stepped away from the Google RSS feed service as I mainly use one computer (my laptop), and I did not want them to monitor my browsing behavior too much.
Todo list/calendar
As I have a socalled 'smart phone' I keep track of all my tasks and appointments using Google tasks and Google calender.
Browsers
I tend to use multiple browsers. In part to verify how HTML pages are rendered in different browsers, but also because not all sites support all browsers. Certain sites are still geared to MS explorer. Another reason for using multiple browsers is that the profiles kept in these browsers are are kept separate. So in my Firefox browser I let Google monitor my browser behavior but not in my other browsers. For example if I do online banking I do not want Google to know to which bank I go (or even other online purchases). If I really want to make sure that no records are kept I use a browser (called Browzar) which eliminates all cookies, history, etc.. after ending each session.
Portability Although I use my own laptop for most of the time, it sometimes happens that I need to work on another computer. For that I have installed the portable apps suite on my USB key (in an encrypted partition). This suite contains an email client, browser (Firefox), IM (Pidgin), Calendar (Sunbird), Putty (remote computer access) and a key vault (KeePass). The (user) files utilized by these applications are synchronized (usually once per week), so I always have up to date data with me when working on a remote computer.
Periodic Maintenance
To summarize, below is the procedure I use for periodic maintenance of my computer:
-Organize browser bookmarks if needed.
-Backup data using tools like SyncToy, to USB disk.
-Synchronize data from email, IM, calendar with portable apps data on USB stick.
-Create DVD if archiveDeep folder exceeds 4.5 GB (remove archive deep folder contents that are burned to DVD as we have now 2 backups: DVD and USB disk)
-Check if USB disk needs to be defragmented.
-Check for spyware using Spybot Search and Destroy.
-Do a virus scan.
-Clean registry, recycle bin, caches, etc... using CCleaner.
-Check if hard disk needs to be defragmented using SmartDefrag.
Freeware Sources:
-Open Source Living
-CNET Download
-Windows Sysinternals