Posted:


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).

Just a few days after we released the ability to do authenticated, cross domain mashups with Google Calendar the JupiterIT folk created Traffik, a mashup that combines your Google Calendar with a Google Map, allowing you to login to view private events and create news ones. It is great to see early experiments with the API such as the Digg Oracle's use of WorkerPool that we went into more detail on.

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.

You can read more about the development of the GWT Feed Reader.

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.

In other API news, Jeff Scudder announced a new release of the GData Python client library which gives you access to various new releases and a refactored codebase.

What else?


As always, check out the latest tech talks, subscribe to the Google Developer Podcast and visit the Google Code YouTube channel.

Posted:


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.

Watch the full interview below, which ends with a short demo of QueWeb.



Thanks again to Steven and Paul for taking the time to meet.

Posted:




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
  • How painful is the Web to view for a blind person
  • Using the Google Web Transcoder (the other GWT!) to clean up pages
  • How CSS hasn't been as leveraged as much as we would like
  • How the increase in mobile and widget platforms has a side effect of accessible views
  • How RIA applications deal with accessibility
  • How T.V. has written custom clients for Google APIs
  • What standards groups are doing in the accessibility space
  • Dealing with Python, a language that cares about whitespace, as a blind man.
You can download the episode directly, or subscribe to the show (click here for iTunes one-click subscribe).

Also, check out an accessible web search for the visually impaired.

Posted:


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.

Jason Cooper, of the Google Mashup Editor team, took the new API that works with Google Calendar, and provided a mashup that is able to create new events in your calendar.

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 Maps API has also gotten some new features and news. First, a new IP based limit is coming soon, and new enhanced map tiles are available. You can also use custom map types via the Google Maps API Open Source Utility Library.

In the land of open source, Leslie showcased the summer of coders of 2007, and released a podcast on all things GCC. We also discussed our thoughts on the ISO decision on OOXML, and the Google Code for Educators program released a series of lectures on MapReduce.

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.

When you check out your ads, you can watch what is going on via Google Analytics, and the team has created a series of videos to teach you about many advanced features.

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!

To finish up, I can get quick access to results from two of my favourite sports. A quick cricket search gives me all of the Twenty20 scores, and iGoogle gives me the rugby world cup results.

All in all a great week! As always, check out the latest tech talks, subscribe to the Google Developer Podcast and visit the Google Code YouTube channel.

Posted:


I am really excited to see the release of the GData JavaScript Client Library for Calendar that allows you to do a lot more with Calendar GData mashups.

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.

You can login by doing something similar to:
function logMeIn() {
scope = "http://www.google.com/calendar/feeds";
var token = google.accounts.user.login(scope);
}

function setupMyService() {
var myService =
new google.gdata.calendar.CalendarService('exampleCo-exampleApp-1');
logMeIn();
return myService;
}
I got to sit down with Jun Yang, who worked on this code, and got his take on the new library:



Armed with this new functionality, I can only imagine how the mashups will become richer. I can't wait to see them!

Posted:


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.

Overall, the consensus was: "We should do this more often!"


The Chicago sprinters, hard at work (photo by Jacob Kaplan-Moss)

Posted:


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.

My work on the Linux Man-pages project man-pages led me to talk about kernel-userland interface design, testing, and documentation at the recent LinuxConf Europe, where my Zurich colleague Roman Marxer also spoke about Google's recently open-sourced Ganeti virtual server management software.

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

(photo credit: Michael Kerrisk)

Ed. note: Post updated to fix typo.

Posted:
Google welcomes the ISO decision to not approve the fast track of Office Open XML (OOXML) proposed standard DIS 29500 (ECMA 376).

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.

Posted:


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!

Posted:


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.

As always, check out the latest tech talks, subscribe to the Google Developer Podcast and visit the Google Code YouTube channel.

Posted:


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.


If you are new to GData, or want to learn more, listen to the podcast to hear:
  • What "Google data API" actually means (the parts and pieces)
  • What Atom, Atom Publishing Protocol, and other tech behind GData are all about
  • What GData adds to the mix on top of Atom and APP
  • How Atom compares to RSS
  • What are ETags? And how can they help me?
  • Why REST, the style, was chosen for these APIs
  • Where REST makes sense, and where it doesn't. Resource driven vs. RPC.
  • What the first GData APIs were
  • How the killer app of syncing data with Google Calendar
  • How you actually use the APIs? What do they need to learn? What tools do we give them?
  • Can you write APIs that implement the same GData APIs?
  • And much more.
You can download the episode directly, or subscribe to the show (click here for iTunes one-click subscribe).