It was perfect timing for Doug Crockford, the legendary Ajax curmudgeon, to come to Google to discuss Gears and the mashup problem. The same week that he chatted about the issues that we face, we saw some innovation and fun mashups abound (for example, this Campaign Trails mashup created with the Google Mashup Editor).

Vortex is another library that sits on top of Google Gears to add functionality through a nice layer of abstraction. The library will detect if you are online or offline, and have a system to handle one use case for sync issues. Brian Dunnington liked what he saw with the Dojo Offline Toolkit, and took a lot of the ideas from there, giving us a version that isn't coupled to a particular Ajax library. Libraries like this are exactly what we want to see. Gears is aiming to give the community rock solid, low level components, and we expect to see interesting abstractions on top. XMLHttpRequest is to Prototype/Dojo/GWT as Gears it to [insert your cool new offline framework here].

After the GWT 1.4 launch / coming out of beta was announced, Bob Vawter of the GWT team was able to let his hair down and he created a GWT application for the iPhone to see what the experience was like. His take-away was:

The Google Web Toolkit can be used to create applications that, in the same code base, work well on an iPhone and a traditional desktop browser.

In other GWT news we interviewed folks from Queplix, an open source CRM company, about their experience building their products which use a lot of GWT, various Google APIs, and even the Google Mini!

Sticking to JavaScript for just a touch more, the Google Maps API team have added a new Local Search Control which makes it simple to search the map that you are on. You can add this control to your Maps mashup with a line of JavaScript.

I was recently in New York City and had the chance to meet Steven Yaskin and Paul Tenberg of Queplix, a company that is trying to change the face of CRM using an open source business model. Steven and Paul are both old timers in the CRM industry, and it was very interesting to discuss their vision.

The interview focuses on QueWeb, the open source customer care application that they released. The application is built using GWT and uses a slew of Google APIs and products (such as the Google Mini). We discuss how open source affects their business, how their architected this CRM framework and details on some of the magic that allows you to slurp up legacy applications and hand you back an open source version built with GWT widgets. This enables you to tweak the functionality without being in the proprietary black box. As part of this effort, they created a slew of GWT widgets for reuse. All of this is hosting in their Google Code project.

T.V. Raman is a Research Scientist at Google who knows a thing or two about accessibility. We took the opportunity to interview him, and Hubbell, his seeing-eye dog (who was nice and quiet).

We started out by asking the honest question that developers ask about accessibility: "What is in it for me?". T.V. discusses the practical issues, and what you should be doing with respect to accessibility, and how it is one piece of the usability picture.

We then delve into the problems of developing accessible websites, and solutions to some of the problems.

If you listen to the interview you will learn:

How not to develop in a user-agent specific manner

Fun issues with screen readers

How audio CAPTCHA brings equality to the pain of CAPTCHA, and how people who can see use the audio ones

We had a really fun week with launches and news across a myriad of products. From a technical perspective, it was really exciting to see the launch of a new GData JavaScript library that enables full CRUD access from the browser. No need for proxies. Jun Yang, engineer on the GData team, sat down to explain the API and how it works. People will remember when the mainstream thought it was impossible to do full read/write authenticated cross domain access in a secure way.

Speaking of JavaScript APIs, The Digg Oracle is a new Google Gears application that showcases the pattern of sucking down data, and allowing you to do local manipulations and data filtering in the client. It makes heavy use of the WorkerPool and the local database. See it in action.

The Google Gadget and AdSense universes combined for the introduction of Google Gadget Ads, which are customized "mini-sites" that run as ads on AdSense publisher websites. These ads are interactive, engaging, and will appeal to your users, simultaneously providing value to advertisers while getting visitors to stick around your site. The end result is that advertisers get more engaged users, users have a richer ad experience, and publishers opted in to image ads may see increased competition for their ad space.

These videos could have included a presentation, and now you can create presentations from within Google Docs itself. Now we the great collaboration experience that we have for docs and spreadsheets can be had for your presentations. Please use this power for good, and no slides with 20 bullet points!

Developers have been able to work with our GData feeds from JavaScript for over a year, but only in a read-only capacity. There are plenty of mashups that can be done that way, but what if you want an application that ties into personal content? What if you would like to write an Ajax client that can create, update, or delete entries as well as read it?

Now you can. This release allows you full read-write access to Google Calendar from JavaScript. Instead of requiring server-side proxies to do this for you, AuthSub is fully supported from within the pure JavaScript client.

More than 200 people around the world devoted their time and brainpower to improving the Django Web framework this weekend, during a scheduled Django coding sprint. On Friday, September 14th, the first day of the sprint, some Django developers gathered at Google's offices in Chicago and Mountain View for the benefits of in-person communication, camaraderie and, yes, free food.

17 people showed up at Google Chicago, which was a sort of ground zero for the sprint, with the project's BDFLs Adrian Holovaty and Jacob Kaplan-Moss in attendance. Another 7 people participated from Google's Mountain View office, which was linked with Chicago via videoconference.

Python creator (and Google employee) Guido van Rossum even stopped by via videoconference to give a pep talk about Django version 1.0 and share some of his experience running a large open-source project.

The sprint was intensely productive, with more than 400 tickets closed in the Django issue-tracking system, 300 new patches/ticket attachments and more than 200 commits to the Django code base. All told, there were more than 2,440 changes, including wiki changes, ticket changes, patch uploads and code check-ins.

As you may know,Google allows its engineers to spend 20% of their time on projects independent of their regular day to day job. For my 20% time, I chose to continue and expand my work on maintaining the Linux man-pages.

Since April, we've managed to ship 21 new releases, with a dozen or so new pages, and around 400 major and minor improvements to existing pages.

I was lucky enough to be invited to the immediately following USENIX Linux Kernel Developers Summit, where I joined Google colleagues Andrew Morton, Paul Menage, and Martin Bligh to participate in the discussion of current topics related to kernel development, including the topic of kernel-userland API design, testing, and documentation.

You can read my talk, and in-depth coverage of the Kernel Developer Summit at LWN.net. It's available to LWN.net subscribers only until the 20th of September, but you can already see the obligatory group photo.

Googlers Andrew Morton and Paul Menage relaxing at the end of the Linux Kernel Summit, Cambridge, England

Our engineers conducted an independent analysis of the OOXML specification and found several areas of concern, which we communicated both to the ISO and to the public. These include and are not limited to the following:

for a specification of this size it was not given enough time for review;

the undocumented features of OOXML prevents its implementation by other vendors;

dependencies on other Microsoft proprietary formats and their technical defects makes it difficult to fully implement; and

the overall cost for vendors of implementing multiple standards (hence the lack of OOXML implementations in the marketplace).

It is also incompatible with the existing ISO standard ISO 26300:2006, the Open Document Format (ODF), which already offers a high degree of interoperability, wide support, and offers the level playing field the world needs. Google is a supporter of ODF and has successfully integrated this open format into Google Docs and Spreadsheets. ODF also enjoys implementation in over twelve other products.

The ISO approval required at least 2/3 (i.e., 66.66%) of the votes cast by participating (P) members to be positive, and no more than 1/4 (i.e., 25%) of the total number of national body votes cast negative. Neither of these criteria were met by the proposed standard.

The concerns from many technical experts around the world were submitted as comments by the voting bodies to ISO on September 2, 2007. These must now be resolved at a Ballot Resolution Meeting (BRM) on February 25-29, 2008. In contrast, ODF was approved unanimously (23-0 among P members, 31-0 overall) as an international standard by ISO in May 2006.

As we represented our position in many countries, we were encouraged by the process observed in some places that truly evaluated the proposed standard on its technical merits as well as the feasibility of implementing the standard for the people of the country. These countries successfully declined or abstained due to insufficient information about the standard or the lack of time to evaluate the specification. In addition, many irregularities have been reported in the voting process (see here, here and here).

Technical standards should be arrived at transparently, openly, and based on technical merit. Google is committed to helping the standards community remain true to this ideal and maintain their independence from any commercial pressure.

Google supports one open document format and calls on industry participants to collaboratively work on ODF. With multiple implementations of one open standard for documents, users, businesses and governments around the world can have both choice and freedom to access their own documents, share with others and pass onto future generations.

Earlier this year, the University of Washington partnered with Google to develop and implement a course to teach large-scale distributed computing based on MapReduce and the Google File System (GFS). The goal of developing the course was to expose students to the methods needed to address the problems associated with hundreds (or thousands) of computers processing huge datasets ranging into terabytes. I was excited to take the first version of the class, and stoked to serve as a TA in the second round.

But you can't program air, so Google provided a cluster computing environment to get us started. And since computers can't program themselves (yet?), UW provided the most essential component: students with sweet ideas for a huge cluster. After learning the ropes with these new tools, students finished the course by producing an impressive array of final projects, including an n-body simulator, a bot to perform Bayesian analysis on Wikipedia edits to search for spam, and an RSS aggregator that clustered news articles by geographic location and displayed them using the Google Maps API. Check out Geozette.

We are looking at ways to encourage other universities to get similar classes going, so we've also published the course material that was used at the University of Washington on Google Code for Educators. You're more than welcome to check out the Google Summer Intern video lectures on MapReduce, GFS, and parallelizing algorithms for large scale data processing. This summer I've been working on exposing these educational resources and other tools so that anyone can work on and think about cool distributed computing problems without the overhead of installing his or her own cluster. In that vein, we've released a virtual machine containing a pre-configured single node instance of Hadoop that has the same interface as a full cluster without any of the overhead. Feel free to give it a whirl.

We're happy to be able to expose students and researchers to the tools Googlers use everyday to tackle enormous computing challenges, and we hope that this work will encourage others to take advantage of the incredible potential of modern, highly parallel computing. Virtually all of this material is Creative Commons licensed, and we encourage educators to remix it, build upon it, and discuss it in the Google Code for Educators Forum.

Lastly, a quick shout out to the other interns who helped out on our team this summer: Aaron Kimball, Christophe Taton, Kuang Chen, and Kat Townsend. I'll miss you guys!

On the back of the stream of developer releases last week, we had some interesting activity in the community, and from our own product teams.

Omar Kilani, of the Remember The Milk team, did a fantastic, thorough write-up of his experience getting his product working offline with Gears. The article moves past an introduction to delve into the design decisions around an offline-capable architecture, and user messaging and presentation of state. We learn why Omar decided to go with the explicit offline mode, and then the five steps to offline conversion.

The Google Mashup Editor team has also been churning out new features based on your feedback. As a developer you can now enable public read only $user feed so that applications can share $user feeds to create social applications, edit XML, CSS and HTML files uploaded into the editor, work with Gadget files, and much more.

The cool easter egg of the week goes to the flight simulator that is in the most recent Google Earth application. There is something special about flying around the grand canyon, or over manhattan. Give it a try.

Flying is cool, but we all love searching. The Google Reader team released the much anticipated feature of being able to search across your feeds. If you knew that you had read about something a few days ago but couldn't find it, now you can.

Sharing is a kin to searching, and the Google Book Search, which had a significant Ajax facelift a year ago, has joined the two. A summer intern added the ability to save snippets from public domain books, and embed them to your website. It is as simple as selecting the text you want, and how you want to show it (an image of just text).

Featured Media

Mark Stahl, tech lead of the Google data APIs, talked to us about GData, the history behind it, the parts and pieces, and how people are implementing applications on top of it.

Quicksilver is a keyboard-driven launcher that is the first application that I install when I get a new Mac. Nicholas Jitkoff, creator of Quicksilver, is a Google employee on the Mac team, and they finally got him to talk all about Quicksilver: past, present, and future.

Mark Utting came to talk about Model-Based Testing and he compares two different kinds of test model: black-box models and white-box models.

Mark Stahl is a technical lead on the Google data APIs team. Many of the APIs that Google offers are part of the Google data API family, so we thought it would be prudent to get some time to chat with him, and discuss all things GData.