Thursday, September 4, 2008

Gray Laptops and Luminous Clouds

Last Friday my new laptop arrived, throwing me into a dark, confused fog that is only beginning to lift. I know, I know, it should have been a joyous and exciting time for me, but the time commitment needed to make it functional has been somewhere between distracting and onerous.

The machine is impressive enough: a Sony VAIO FW (no, not the recalled model) with 4GB of RAM, 250GB of disk, and a Blu-ray device with HDMI output built-in. Although large, it was a concession to a round of deliberation about how I use computers. My old machine, a Gateway with a 13 inch screen and 1GB of RAM running XP, was simply too slow and lacked sufficient screen real estate for effective software development. With 10 Firefox windows open and a running Eclipse instance, things would start to drag and switching became ponderous. Part way through my deliberations over what to get, I seriously considered a Mac Air, which would have not met my requirements at all but was just so delicious I had to give it consideration. I thought briefly that the Air would work because I have five Linux servers hosted in a high-rise in San Jose, California and could use them remotely for my development needs. Almost--but not quite--due to networking speeds and the need to sometimes work offline. The larger Macs were also considered, although the price points to get serious bang were too steep. In the end, the VAIO was a good trade-off, with the Blu-ray add-on a concession I made to myself because I was not going for the high-end Mac.

And then the work began.

Luckily, I have cultivated a model of continuous holographic reflection of all work-related materials through the use of a source code control system called Subversion (SVN for short). In this model, every document, note, source file, image, etc. I create is checked-in to a repository hosted on one of my servers through an HTTPS connection and WebDAV. Change logs are maintained on the server, and periodic backups are created to other machines in the cluster as well as to a portable USB drive and, soon enough, to Blu-ray writeable media tossed in the trunk of a car.

So the first thing I did was install SVN on my new machine and check out everything to my local hard drive. Nice. But to get everything working took 4 days of software installations and configurations. I configured 10 different POP and IMAP accounts, PHP5, Apache HTTPD, MySQL, PHP5 plugins, Eclipse, Subclipse, ITunes, FabFORCE DB Designer, The GIMP, Microsoft Office, Microsoft Visual Studio 8, Adobe Flash CS3, Cygwin, Inkscape, Firefox, Propel, Xemacs, and many more. I updated everything to the latest versions and got automated and manual patches. I rebooted many times (wasn't that supposed to be fixed back when I worked on Windows 2000?)

All the complexities were smoothed out gradually and incrementally, of course, and I am fairly happy with the screen real estate and performance of the new machine after I disabled most of the security features of Vista. I even picked up the Blu-ray edition of Blade Runner, The Final Cut and ran HDMI to our LCD TV to confirm it all worked (note: no start-up lag unlike some BD console players; also, HDMI and LCD can't be running simultaneously due to HDMI-based DRM policies, which seems like ridiculous overkill).

But I wondered why I can't have a computing universe where the ease of the SVN management of my own resources was replicated in the software installation world? There is a hint of that capability in recent Linux installations that can download and install software packages and their dependencies with a single, short command. Still, configuration and customization remains daunting and can even be exacerbated because the installation process doesn't communicate all the details about where resources go (and the destinations change with some regularity).

Ideally we can imagine a computing cloud where apps are no longer installed locally, just web-based, and all of our configuration settings and password management is remote (and trustable) as well. Hints of that have been emerging with Java Web Start, Adobe AIR, Microsoft Silverlight and, to a lesser degree, Google Chrome. Each is an attempt to move web-based applications away from the limitations of a browser-based model and support more sophisticated interaction models. One company I work with has shown the model can work for specialized enterprise computing needs, so I think there is hope, but the evolution is nevertheless slow and may even require re-imagining the computing platform itself.

I'm guessing I have several dozen more gray laptops, virtual tablet devices, holographic mental interfaces and whatnot to go before everything becomes as neat and easy as I'd like, disconnected from individual platforms and universally available on-demand from some luminous computing cloud where replicants slave away maintaining and upgrading software in those tilt-up buildings in Silicon Valley.

No comments: