Sunday, August 10, 2008

Portability

I'm sure many of us are used to this when we get a new computer:
  • spend one full day to install all the applications you need
  • and spend the rest of the week to get all the patches up to date
  • then spend the rest of the month to customize all the settings to your taste
These things are also very common:
  • installing all our programs on every PC that we need to use the program on
  • try to copy a program to another machine only to find that it does not work
  • you have to install!!
Which is bad for our mental well-being because we:
  • feel helpless whenever we are not using our own machines
  • have no idea where the applications stores our files and settings
  • thus will be at a loss when it comes to migrating to a new system
We have always been doing it, and we wouldn't think of any other way to do it, simply because this is was all we knew. So we've been putting up with this.

No longer. I'm starting to move myself onto the next wave - running portable applications. These portable applications allow you to carry your applications with data and settings everywhere you go.

The prevalence of large and affordable thumb drives allow people to carry their all their applications and data on a tiny stick small enough to fit into a wallet.

In this increasingly IT literate world, most tech savvy people would have access to, or even own and use more than one computer at the same time. For example, a PC at home, a personal laptop, a company laptop, a company PC, ... (you get the idea). In huge companies, the IT department even disallows users to install their own applications (not even for development work) due to the huge logistical and support complexity of managing so many machines and so many people. Users are given write-access only to very limited locations (like their Desktop), and installing any application is out of the question.

When you start to use a new application, or install and updated version, you will have to install it on every machine that you own or work on. This can really be a hassle, especially when you have to make all the same configuration changes each time. Program installation can be a highly interactive process, and for some of us with high hourly rates, this process is certainly a waste of our time.

The solution to this: portable applications. Portable applications distinguish themselves by storing data and preferences in the program directory. The program folder can simply be copied over from anywhere, or extracted from the 'installation' package. All the files, data, and settings are stored inside the program directory, no registry entries are changed, and no other files are changed anywhere on the host system.

So after setting up 20 of your favourite applications once in the portable way, you just need to COPY the whole bunch to another computer, should the need arise. What usually takes a good 2 to 3 hours to do (when you install and customize manually, clicking tons of buttons throughout the entire process), becomes something that you can copy in 5 minutes (and all you need to do is just drag-and-drop at the beginning).

There are several portable solutions:

I recommend PortableApps.Com because it is convenient, flexible, has an open, active community, and most importantly, it is FREE! You can install and use PortableApps anywhere, on your hard disk, and even on your IPOD! Recently, I have even chosen to use the PortableApps version of a software on my home laptop, instead of using the installer program. Better yet, there are a LOT of applications that have PortableApps packages (including my favourite Wireshark, Programmer's Notepad, Firefox, Thunderbird, etc), and the list is still growing!

But why not installers? After all, every user on the same system gets to use the program, which only needs to be installed once, thus saving hard disk space. I think, for large applications like OpenOffice, it does make more sense to have a central installation which can be shared by everybody. But for smaller applications (~25MB or less), it doesn't make much of a difference compared to the amount of user data that is being generated/saved. Moreover, often, a system is being used by only one person during any period of time. Using the portable applications paradigm, when one discontinues the use of a machine, he/she will copy the app+data to the new machine, and remove the original from the old machine.

The U3 system is a proprietary system for putting applications on specially formatted thumbdrives. U3 is pre-installed on certain 'premium' thumbdrives (like my Sandisk Cruzer Titanium *wink*) which auto-launches when the drives are plugged-in, giving the user another "Start Menu"-like mechanism to launch applications. Since it is not as flexible as PortableApps, why do I still mention/recommend it? Well, after all, PortableApps is for slightly techically savvy people. U3 is suitable for people who could benefit from the convenience of carrying all their applications and data around in a thumbdrive that comes pre-installed, starts automatically, and allows you to do almost everything with an easy-to-use graphical interface. In short - "it just works".

Are you convinced yet? Try your portable apps today!

No comments: