Gmail for mobile 2.0 is out. I've been an avid user of the 1.x version for years and here is my quick review:
The Good:
- Multiple account support, including Gmail for Domains support.
- Limited offline mode.
The Bad:
- The "Refresh" softkey is gone, replaced by a "Hide" one. "Refresh" is now a menu option and it apparently has no key shortcut. Thanks but no thanks. Most multitasking phones nowadays feature a dedicated "Home" or "Menu" key of some sort that hides the application. It would be fine to hide "Refresh" away in the menu if the application had push synchronization but that's not the case (not that it could anyway, long-lived push on J2ME is impossible on almost every phone. That's why "Refresh" should be in a easy, visible shortcut and not in the menu.)
I'm keeping this version for the multiple account support but I hope Google brings back the "Refresh" softkey or at least maps a key shortcut to it. Right now "Hide" is completely useless on my Nokia E61.
To celebrate their 10th birthday Google has made available for a limited time their 2001 index. Try to find how much of the pop culture trash we take for granted today didn't even exist seven years ago.
Google announced on Monday a proposal for a new HTTP compression scheme, called Shared Dictionary Compression:
Over the last few weeks we've been experimenting with a way to get better compression for HTTP streams using a dictionary-based compression scheme, where a user agent obtains a site-specific dictionary that then allows pages on the site that have many common elements to be transmitted much more quickly.
Its Google group is here and includes the specification and a very helpful presentation. A quick search reveals that it is based on VCDIFF.
It works like this: the server notifies the client of the potential dictionaries a resource can be based off with a custom header that points to another resource in the server (Get-Dictionary). The client then downloads the dictionaries and on subsequent requests the client tells the server what local dictionaries it has stored locally (kinda like cookies). Then the server sends the resource expressed as a VCDIFF delta over one of the dictionaries the client has downloaded in the past.
Some comparisons could be drawn to fragment-based Ajax, since the VCDIFF delta is effectively the minimal expression of what has "changed" in the page with respect to the dictionary. But since it is implemented as a Content-Encoding at the HTTP level it degrades perfectly on non-Javascript clients and is useful for static content.
Who remembers IFF nowadays? Google does:
Protocol buffers are a flexible, efficient, automated mechanism for serializing structured data – think XML, but smaller, faster, and simpler. You define how you want your data to be structured once, then you can use special generated source code to easily write and read your structured data to and from a variety of data streams and using a variety of languages. You can even update your data structure without breaking deployed programs that are compiled against the "old" format.
Skimming a bit the specs it reminds me a lot of the PList system from NeXTSTEP/Cocoa, with an added IDL-like layer on top. Looks like a nice alternative to XML for pure structured data.
