Building notes, projects, and occasional rants

Google Gears

Google announced Google Gears, a browser extension that allows web applications to have a offline-mode available.

Right now, most recent browsers are supported with two omissions: Safari (on which the team is working on - my bet is expect this with Leopard and the new, more powerful, WebKitaccording to the developer (7:00), you can build a Safari plugin from the SVN code but another post mentions that it will only works with the nightly builds of WebKit), and Opera (which is not even mentioned).

The two cool features I like about this is that they provide you two standard APIs: a SQL-based storage layer, using SQLite (with the fts2 full-text search extension which is a nice touch); and a worker-thread pool for long running jobs.

The other interesting thing mentioned is a strong focus on synchronization, which is for me the most important aspect right now when building any kind of application. I do believe that if you are starting a new application (web-based or desktop-based) and you don't think about synchronization between data-stores, the lifetime of your app is small and quickly getting smaller.

Synchronization is one of those things that is easier to do if you plan your data-store from the start with sync in mind, it will be a lot easier.

Taking this idea forward, and gluing it with SamePlace, the next step for me is to think how can we put both of these APIs inside a XMPP client.

Think XMPP-powered Grid applications, with a web interface, capable of working offline. Think of personal-assistant bots that can negotiate meetings with other personal-assistant bots.

update: the code is open source, it "almost" compiles for Safari.

update 2: Safari is supported, you just don't get a binary for download, and you need to compile from source.

update 3: Safari appears to be supported only with nightly builds of webkit so it seems that my first idea that it would be a Leopard only thing might be right after all. They mention that, with Safari, the Google Gears is both a plugin and a Input Manager. I heard somewhere that Input managers would be gone in Leopard so something doesn't feel right.