Stupid Developer Tricks: Portable Apps
Carry your Windows Apps with you on a USB key drive. A developer's vision now a full-time job.
For developer John T. Haller, it all started back in March 2004 with an innocent thread on the Mozillazine.org forums. What if you could tweak the Firefox browser so you could bring it with you in a USB key drive and run it on any PC? As it turned out, Firefox 0.8 beta had just been released with a structure that allowed just that.
Over the following weeks, John tuned the open source browser so that it would store temp files and settings in local folders, rather than on the client system's hard disk. By May 2005, John had set up a site and was accepting donations. Today, PortableApps.com is a full-time job. John maintains dozens of portable versions of popular open source software and fields millions of free downloads. I spoke with John about his career-changing experience.
You made Firefox portable back in 2004. Why not stop there?
We added Mozilla Thunderbird and Sunbird because they were based on the same code base. So making them portable from a technical perspective was sort of the same thing. The Gecko rendering engine along with the XUL [user-interface language] have the same inter-components, [so] you can redirect the same [resources] for the different applications.
How much programming is involved in tuning applications?
That depends on the app. Some of them are relatively lightweight, such as Miranda [IM client]. Some are more heavyweight. GAIM [IM client] is one of the heavyweight ones. Current versions of Firefox are actually more heavyweight because of things they've added. It depends entirely on the application and how it keeps track of the current data.
How difficult is it for dev shops to make custom Windows apps portable?
It depends. A lot of apps along those lines are developed in VB, for instance. Visual Basic, at least the pre-.NET versions-you wouldn't believe how many pre-.NET applications are in corporate America and aren't going away-generally they're well contained. All you need is the VB runtime and a local store. .NET apps are a different story, because you need the .NET runtime. Generally C and C++ apps are pretty easy to make portable because they are self-contained. Even Python apps, if they are compiled-it's the same thing.
Is there any reason proprietary apps can't employ this model?
Not at all. I actually have several software providers that I'm working with that have done portable versions of commercial applications: for example, RoboForms Password Manager, Passtogo and Sign-Up Shield.
I know you've been busy. How is the portable business these days?
It's been picking up progressively, month over month. Probably about 8 million individual applications have been downloaded. Firefox is most popular. The 2.0 release [launched in November] will bump that figure.
Michael Desmond is an editor and writer for 1105 Media's Enterprise Computing Group.