We've all been reading and thinking about the internet as operating system for a while, but now we're actually making the transition. I just finished setting up Google Gears and Fluid to run my Google Docs like a desktop application. Wow—
Fluid is an open source application that uses WebKit to wrap your favorite web applications into their own insulated single session browsers so that crashes or memory leaks in your other browsing sessions don't affect your Fluid apps.
Google Gears is another open source project that bundles a bunch of protocols for web applications to work with your desktop.
Together, these applications are bridging the gap between internet and personal computer, pulling the PC up into the network in a new way. While these technologies are both very exciting and very functional, they are only a temporary step in the direction of internet as desktop. We can expect the next generation of personal operating systems to log us in to a remote server when we sit down.
Once you install Gears on your computer, websites that use the Gears APIs can sync data while you are online, letting you use their web application when you are offline.
Gears sets up an SQLite database for each web app that uses the Database API. If you are using a Mac, the db files end up in the Application Support directory, under that web applications' name. So not only can I work on my files offline, but I get my own copy of them, which, as a documentphile, I love.
In addition to local file storing (the most exciting feature in this context), Gears offers developers other great tools. With the Geolocation API, Gears helps developers find information about where their users are on an up-to-date basis using IP address, WiFi hotspots, and GPS (on mobile devices).
With the Desktop API, web applications gain access to desktop functionality such as creating shortcuts, saving and opening local files, firing growl notifications, etc. The Desktop API's set of tools most closely mirrors the core functionality of Fluid, which I will talk about later.
The Blob API lets web applications treat binary files as blobs of data. This is particularly useful for file uploading. The Blob API helps web applications slice up large files, or sets of files, into small blobs of binary. So if the upload is interrupted, or paused, the uploader can start from the most recently successful blob without having to start from the beginning. Additionally, the Blob API reports back live data about the upload process for the web application to show the user.
There are a host of web applications currently running Gears, but I decided to use it with Docs for my first go. It strikes me as the most desktop-like web application available.
In order to get going, I had to upgrade my laptop to OSX 10.5.2 and Safari 3.1.2. When I restarted, I wrapped Google Docs in its own SSB Cocoa instance (using Fluid) and saved it as an app in my applications folder.
When I launched my new Google Docs app, I was prompted to check a box indicating: “I trust this site. Allow it to use Google Gears.” Since I trust Google, for some asinine reason, I checked “Allow.” The application then took about three or four minutes to download everything it needed. I quickly disconnected from the internet, relaunched Google Docs, and edited a document: “ASDFASDF.” I saved, closed, reconnected to the internet, and visited my Google Docs from one of the desktops in my office to see the changes. Sure enough, there was my edit.
Installation of Gears was slightly problematic. I ended up uninstalling and reinstalling it a couple of times. Though my browser and operating system were both up to spec, I ended up running a software update on my Mac to get the latest versions of my OS and browser before Gears would work. Who knows, maybe restarting my computer helped.
Fluid is a great application that lets you wrap your browsing sessions in their own runtime environments to protect them from crashes in your other open browser tabs/sessions (like Chrome). But Fluid takes it a step further, making the Site Specific Browsers (SSBs) feel like stand alone applications, creating .app files in your application folder, and allowing you to set preferences for each one. When you wrap a web application in an SSB, you have something that essentially feels like a desktop application.
While Gears does provide the desktop icon functionality with the Desktop API, it does not provide the memory insulation that is so important if we are to trust our web applications like we trust our desktop applications.
When you launch your SSB of say, Google Docs, there is no url bar by default. You can't browse away from the Docs interface, instead external links launch to your default browser. Since Fluid SSBs run on WebKit (the same rendering engine that Safari uses), everything loads lightning fast and looks beautiful.
After downloading and installing Fluid, creating an SSB is easy. Almost too easy— I now have about 10 SSBs for random sites that I kind of visit often enough to justify this.
When you launch Fluid, you are prompted to set the url, name, and desktop Icon for your new SSB app. That is it. The icon is created from the web app's favicon by default. If they are progressive, they send along a larger icon in with the REL attribute of a link element in the head. Otherwise you end up with a chintzy pixelated favicon, which I recommend replacing for aesthetics with a nicer one. Here is a nice Flickr pool of SSB Icons for your pleasure.
Once I got everything working properly and tested, it was time to leave the office. I was so pumped to write this article when I got to the train. I sat down to pull out my laptop, launched my newly created Google Docs application, and slap-in-the-face: the “New” button was grayed out. Turns out you cannot create new documents offline. It turns out this is all for bust. The future is not here yet, but it almost is— this workflow with docs is still pretty great for productivity, so I've walked you through it anyhow.
I'm now revisiting this article a few days later after having copied the introduction above out of text edit and into Google Docs. I'm waiting for the B Line at Government Center (I ride the train a lot). I can save this document and open any of the other documents from my Google Docs homepage. I can quit Google Docs, relaunch it, and browse through the entire site, (my docs, collaborator's docs, and support docs/help files)it has all been synced. Anything that the Google Docs team decided to have Gears sync, is here.