Mr Speaker

Google Gears: The Mega Cookie

Big CookieOOooh, I'm all giddy! Moments ago I discovered today's release from Google: Google Gears. It's like they reverse-engineered some advanced cookie technology from a crashed web-based UFO. Or something similar.

I'm typing this post as I explore, so we'll see how my opinions of it change from now to the end of the post - I predict I'll be impressed, but a little wary.

Google Gears is a cross-browser extension that integrates all manner of nifty tools to allow web application providers to make their apps work off-line. There are two main aspects to the release: database and local server.

Google Gears Database
The database is the cookie you've been dreaming about. Oh wait, we all hate cookies. No we don't. What? LOOK OVER THERE. The database allows you to persist data on the client side (hmm sounds familiar) buuuut, unlike a cookie the data is not removed if you go Clear Cookie Data. Clever!

The idea is that large(r) amounts of data can be stored in a local SQLLite database, allowing you to work with a web application client-side, and sync up when you get off the aeroplane. Or whatever. The database is accessed via JavaScript and supports standard SQL (looking) queries for manipulating data. Here are some example statements from the Google Gears docs:

db.open('database-demo');

db.execute('create table if not exists Demo' +
               ' (Phrase varchar(255), Timestamp int)');

db.execute('insert into Demo values (?, ?)', 
               [phrase, currTime]);

var rs = db.execute('select * from Demo');

Pretty nifty hey? Possibilities and security concerns abound.

LocalServer
Having your data available off-line is all well and good, but not very useful if you can't do anything with it. So Google whipped up LocalServer. LocalServer is a local server.

Poor marketing aside, it's a way to have your web-applications cache and run required web resources locally. These resources can interact with your database and hey-presto: off-line application!

Annnd...
There are a couple of other aspects to Google Gears: A "factory" module for setting everything up, and an awesome looking worker-pool module which allows you to do processor (or time) intensive tasks asynchronously. This can add some much needed UI snappiness to larger applications.

Impressed? Wary?
Yes, yes, impressed and wary. Google Gears will certainly usher in a new wave of can't-live-without features to today's web applications. Which means if you make web applications, you'd better get your thinking caps on and figure out how this kind of off-line availability is going to affect your market segment.

But I don't have any web apps out there, so I'm going to finish this up now (before the nerdy-excitement wears off) and see if I can't get Gears working with GreaseMonkey. Awwwww yeaaaah!

5 Comments

  1. From the title of your post I assumed you were talking about Google Gears being the ultimate target for cookie-style theft. Which it is.

    First you get The Mega Cookie, then you get the power. Then, you get…umm….3. profit!!!! (?)

    Thursday, May 31, 2007 at 1:16 pm | Permalink
  2. I’m hungry now.

    Thursday, May 31, 2007 at 2:08 pm | Permalink
  3. Imagine if you had an application that ran in an environment with an unreliable or unnatural Web connection. Like a drinking establishment or corporate foyer.
    Now Gears can keep your applications running without a persistent connection.
    It would be a “disgrace” to not be excited :)

    Friday, June 1, 2007 at 8:59 am | Permalink
  4. Be wary, very wary… I think this is just another for Google to get a hold of the data deep in other databases. Now you can expose you DB structure, business logic and heaps of data directly to a Google monitored plugin. They’ve always said they want to index “everything”.

    Saturday, June 2, 2007 at 12:59 pm | Permalink
  5. OT: I am missing posts on Peak Oil. The last one was 2005? Did you miss it? ;-)

    Saturday, July 14, 2007 at 8:27 am | Permalink
Captcha! Please type 'radical' here: *
How did you find this thingo? *