Tuesday, 29 June 2010
Facebook StumbleUpon Twitter Google+ Pin It

Visual Storytelling: The Little Prince and Our New Embedded Charts

“My drawing was not a picture of a hat. It was a picture of a boa constrictor digesting an elephant.”
The Little Prince, Chapter 1 - Antoine de Saint-Exupéry

Drawing Number One

Inspired by the Little Prince and in honor of
Antoine de Saint-Exupéry 110th birthday, we are dedicating this blog post to his timeless masterpiece The Little Prince.

The Little Prince starts with a picture titled “Drawing Number One”, which grown-ups typically interpret as a hat, but only the acute eye of a child can reveal is actually a snake digesting an elephant. Well, unfortunately we were those kids who just saw it as a sum of two Gaussians.

As the team responsible for Google’s Chart Tools, we continuously think about how to enrich your options for visual storytelling on the web. To be able to generate figures like the one above, we thought it will be cool to enhance the Image Chart API with the capability to draw TeX formulas and plot mathematical functions. Once we added these capabilities, we thought it would be even more useful to combine the two into one chart, and therefore developed a simple way to place one chart within another chart. This chart embedding is not just limited to formulas and equations; it can be applied to any combination of chart types.

As you can see, we are working hard to support all of your visualization needs, but please always keep in mind the saying of the little prince’s fox:

(a creative contribution to our user submitted charts by James Andrews)

Before saying goodbye, we invite you to open the figures above in a new tab. This way you can observe how they are rendered using URL based requests to our Image Chart server.

"And no grown-up will ever understand that this is a matter of so much importance!"

Roger Trias Sanz and Nimrod Talmon,
On behalf of the Google Chart Tools team

Save the date for Google Developer Day in your country

We are excited to announce the 2010 Google Developer Day schedule:
  • Sep 28: Tokyo, Japan

  • Oct 29: Sao Paulo, Brazil

  • Nov 9: Munich, Germany

  • Nov 12: Moscow, Russia

  • Nov 16: Prague, Czech Republic
We will hold technical sessions on mobile and web technologies including Android, Chrome, Google Web Toolkit, App Engine and more. It will also be an opportunity to meet both the Google team and other developers.

For any cities not listed above, here are some other events we host throughout the year:Registration is not open yet, but we will let you know when registration opens for each country in the coming months. For now, be sure to save the dates, and feel free to use our official hashtags for your discussions: #gdd2010jp, #gddbr, #gddde, #gddru, #gddprague.

Tuesday, 22 June 2010
Facebook StumbleUpon Twitter Google+ Pin It

HTML5 Rocks!

The term "HTML5" covers so many different topics that developers have a hard time getting up to speed on all of them. Some APIs and features are part of accepted standards, while some are still a work in progress. Additionally, there are a number of great resources out there, but most are still very hard to find. As announced on the chromium.org blog, Google is releasing a new developer resource dedicated to all that is HTML5, HTML5Rocks.com.

The site is broken up into four main sections:

Interactive Presentation
The presentation everyone is talking about! An interactive slide deck written entirely in HTML5 which demonstrates many of HTML5’s features. It even includes inline examples you can tinker with.

HTML5 Playground
The best way to learn this stuff is to try it out. The Playground is a sandbox area for editing and experimenting with live samples.

We're launching the site with an initial set of nine tutorials covering a bunch of different areas. We’ll continue to add more over time based on your input.

We've hand-picked some of our favorite tools, reference material, and sites; all generated by the online community. Do check them out. They’ll come in handy when developing your next web app.

We hope HTML5Rocks will help developers put HTML5 to use in the real world, today. We’d love to hear your thoughts on improving the site! Send us a tweet at @ChromiumDev or post to the Chromium HTML5 group with requests for content.

Monday, 21 June 2010
Facebook StumbleUpon Twitter Google+ Pin It

Interactive Transcripts and Automatic Captions for Developer Videos

Did you notice the new Interactive Transcript feature that lets you scan quickly through the full text of any owner-captioned video that you’re watching on YouTube? For videos from I/O, that means you can quickly scan through a 60 minute talk to find just the part of the talk that you need to see. Or use your browser search with the Interactive Transcript to find a mention of an API call, and then click on a word in the transcript to jump straight to that part of the video.

Because developers don’t all speak English (and because some developers speak really fast when presenting) we caption every video that we post to http://www.youtube.com/googledevelopers. Most of the year, that’s a pretty easy thing to keep up with. But last year, when we posted all the videos for Google I/O 2009, it took us months to get everything done.

This year, we captioned everything within 24 hours or less of the videos going live. I’m excited about that, because it wouldn’t have been possible without the new auto-caption and auto-timing features in YouTube. We also did something a little nerdy -- we used four different methods of captioning.

If you use YouTube to share talks from your own developer events, you might find this summary useful.

The two fastest options for producing and cleaning up our captions used auto-timing. We uploaded a transcript and had YouTube’s speech recognition calculate the timecodes for us.

The two auto-timing methods were:

  • CART live real-time transcript + auto-timing
    Because we had professional real-time transcriptionists at I/O, we could instantly caption anything that had a live session transcript. That’s how we got the keynotes captioned on the day of the event. We also used this method for the android talks.

  • Professional transcription + auto-timing
    This was less expensive than CART, and faster than full captions with timecodes, but slower than real-time transcription because we had to get video files to the transcribers.

Although these methods were fastest, auto-timing turned out not to be perfect for all videos. When mic quality varied, or we had too many speaker changes in a short period of time (e.g panel discussions or fireside chats), the timing sometimes slipped out of sync. You can still use the Interactive Transcript to see what was said, but it’s not ideal.

The two slower methods that we used were:

  • Pure 'traditional' captioning
    This is what we did last year for Google I/O 2009 videos. It’s slower, and more expensive, because you have to transcribe and set all the timecodes correctly. But the end result is 100% accurately timed. We did this to fix a video that the auto-timing had a lot of difficulty with.

  • Speech recognition (auto-captions) with human cleanup and editing
    This gave us perfect timecodes, just like traditional captions, and took less time than traditional captioning. It took slightly longer than auto-timing alone because we had to download the machine-generated auto-captions from YouTube to do the edits.

    Automatic captions are fantastic if you don't have time or budget to put any work into your captioning. But for I/O, we wanted our captions to be perfect on technical terms, so fully automatic captions weren't the best fit.

Not all of these methods are equal in terms of quality, but it’s interesting to compare. To see which method was used on a video, look for the track name in the caption menu. To compare owner-uploaded captions with pure machine-generated auto-captions, you can always choose ‘Transcribe Audio’ from the caption menu for our videos.

If you’d like to help improve caption quality, please watch a video and fill out our caption survey to tell us what you think of these captions! We know some of them are going to be a little off -- if you report issues, we’ll fix them.

About.com partners with Google to make the web faster

About.com logoAt About.com we've always valued coding and serving our Web pages efficiently. It's good business sense: reducing operating costs while delivering on the promise of giving users the relevant, quality knowledge they need to quickly and easily accomplish their needs.

Our collaboration with Google's 'Make the Web Faster' team this spring has focused on the following projects:
  • Combining multiple CSS and JavaScript files to reduce external page calls.
  • Serving static content from a domain without cookies.
  • Leveraging browser and server-side caching wherever possible.
  • Compressing image file sizes on output, and serving .png wherever possible.
  • Asking rich media vendors and the Internet ad industry at large to take performance considerations into account when building and serving rich media ads. Any improvements made will ultimately benefit the advertiser, the server, the publisher and the user.
Our efforts thus far have yielded positive results: we've improved page load-time by an average of 19% 1, and we expect to see further improvement through the fall as we incrementally roll changes through all 700+ sites on our network. While it's hard to see a causal impact on network-wide CPC2 RPM3 exclusive of market and other seasonal factors, results from two A/B tests have been promising: one showed a 0.9% increase in CPC RPM4 and the other a 0.4% increase in CPC RPM5 on the page and throughout the user session.

Overall, we're extremely pleased with the results and excited to move forward. The experience has invigorated About.com's commitment to providing quality content and good user experiences on light-weight pages.

[1] Percentage based on Google Webmaster Page Speed performance 03/15/10 vs. 06/03/10 on About.com's top ten sites.
[2] CPC is Cost Per Click, cost for the advertiser when the ad is clicked
[3] RPM is short for Revenue Per Mille (roman for thousand) pages. This is the revenue a website makes per thousand views of pages
[4] About.com network-wide A/B test combining external CSS and JS conducted 03/26/10.
[5] About.com network-wide A/B test serving images from a cookie-less domain conducted 04/02/10.

Wednesday, 16 June 2010
Facebook StumbleUpon Twitter Google+ Pin It

Google Storage for Developers: Sharing with Groups

Last month we introduced Google Storage for Developers with support for sharing with Google account holders. Today, we are enabling support for sharing with groups, giving you greater control and flexibility over how you share your data.

You can now easily share your Google Storage data with groups of users as well as individuals. Here are some examples of the things you can do with group sharing:
  • Share data with an entire department or mailing list
  • Make data publicly readable, but editable only by a group within your company
  • Keep access controls consistent with the current membership of a team
  • Add or remove a user's access to shared data via a single group membership change without having to change access control lists (ACLs) on all the buckets and objects involved.
You can share with groups by adding one or more Google Groups to the ACL of a bucket or object. A group member can be anyone with a Google Account, and members can authenticate using either their Google Storage credentials or in an authenticated browser session.

You can find more details on the new group sharing feature here. We have also updated our GSUtil command-line tool to support group sharing.

Thanks to everyone who has tested Google Storage so far. As always, we appreciate your feedback. Please let us know what you think on the Google Storage forum.

Tuesday, 15 June 2010
Facebook StumbleUpon Twitter Google+ Pin It

Reversing Code Bloat with the JavaScript Knowledge Base

JavaScript libraries let developers do more with less code. But JavaScript libraries need to work on a variety of browsers, so using them often means shipping even more code. If JQuery has code to support XMLHttpRequest over ActiveX on an older browser like IE6 then you end up shipping that code even if your application doesn't support IE6. Not only that, but you ship that code to the other 90% of newer browsers that don't need it.

This problem is only going to get worse. Browsers are rushing to implement HTML5 and EcmaScript5 features like JSON.parse that used to be provided only in library code, but libraries will likely have to keep that code for years if not decades to support older browsers.

Lots of compilers (incl. (JSMin, Dojo, YUI, Closure, Caja) remove unnecessary code from JavaScript to make the code you ship smaller. They seem like a natural place to address this problems. Optimization is just taking into account the context that code is going to run in to improve it; giving compilers information about browsers will help them avoid shipping code to support marginal browsers to modern browsers.

The JavaScript Knowledge Base (JSKB) on browserscope.org seeks to systematically capture this information in a way that compilers can use.

It collects facts about browsers using JavaScript snippet. The JavaScript code (!!window.JSON && typeof window.JSON.stringify === 'function') is true if JSON is defined. JSKB knows that this is true for Firefox 3.5 but not Netscape 2.0.

Caja Web Tools includes a code optimizer that uses these facts. If it sees code like

if (typeof JSON.stringify !== 'function') { /* lots of code */ }

it knows that the body will never be executed on Firefox 3.5, and can optimize it out. The key here is that the developer writes feature tests, not version tests, and as browsers roll out new features, JSKB captures that information, letting compilers produce smaller code for that browser.

The Caja team just released Caja Web Tools, which already uses JSKB to optimize code. We hope that other JavaScript compilers will adopt these techniques. If you're working on a JavaScript optimizer, take a look at our JSON APIs to get an idea of what the JSKB contains.

If you're writing JavaScript library code or application code then the JSKB documentation can suggest good feature tests. And the examples in the Caja Web Tools testbed are good starting places.

Friday, 11 June 2010
Facebook StumbleUpon Twitter Google+ Pin It

DevFest Tour - Coming to a City Near You

Just last month we had Google I/O and although we had attendees from all over the world join us for the festivities, we know that most of you could not join us in San Francisco. To help make up for that, we decided to do a DevFest tour and recently announced that we were on our way to visit Australia (Sydney), Israel, and Southeast Asia (Manila, Singapore, and Kuala Lumpur) in the next couple months. Then, there’s Spain (Madrid), Argentina (Buenos Aires), and Chile (Santiago) in October. Here’s your chance to hear about your favorite Google technologies and interact with the Googlers that work on them every day.

Today, we’ve updated the site to include the cities we’re visiting and topics we’d like to cover, along with registration links for the first round of events. Space is limited at each location and we cannot guarantee that everyone will be able to secure a spot so register early, check your email for confirmation and check back for any event updates.

For many of our international speakers, this is their first time visiting most of the cities on our tour, and they're incredibly excited to meet the local developer communities and learn what you're doing with our technologies - or what you're thinking of doing.

We hope to see you there!

Thursday, 10 June 2010
Facebook StumbleUpon Twitter Google+ Pin It

Page Speed for ads and trackers

At Google, we're passionate about making the web faster. To help web page owners optimize their pages for speed, we open-sourced the Page Speed web performance tool a year ago. Today, we're excited to launch a new Page Speed feature: Page Speed for ads, such as display and rich media ads, and trackers, also known as analytics.

Page Speed now enables developers to run a performance analysis of the ads, the trackers, or the remaining content of the page. Web developers can use Page Speed to determine how ads and trackers impact the performance of their web pages, and ad and tracker providers can use this feature to tune their services for speed.

For instance, when analyzing an example web page, Page Speed displays several suggestions that we can apply to make the page faster:

But which of these suggestions applies to the content on the page that we authored? Which apply to the ads and trackers? Using the "Analyze"menu, we can determine that, in this example, the ads are contributing to slowing down the page:

When we switch to analyze the content of the page, the score for the page improves to 93. We can in this case enable compression for the resource that is served uncompressed currently.

We hope that you try these and other new features and rules of Page Speed and find them useful to further optimize the speed of your web pages.

Please share your experience using this new feature in our discussion forum.

Wednesday, 9 June 2010
Facebook StumbleUpon Twitter Google+ Pin It

Help us improve the developer experience at Google Code

We'd like your feedback about how to make Google Code a more useful destination for developers to find information about using Google's APIs and developer products.

Please take our survey and give us your feedback, it should only take you a few minutes.


Everyone who submits the survey will have a chance to win a limited edition t-shirt.

The survey runs until midnight PST Friday June 11 2010 (that's this week!).

Tuesday, 8 June 2010
Facebook StumbleUpon Twitter Google+ Pin It

Save the date for Google I/O 2011

Google I/O just recently came to a close, but it won’t be long before we start gearing up for next year. And we’d like to make sure it’s on your calendars!

May 10-11, 2011
Moscone West, San Francisco

We’ll keep you updated when registration opens for I/O 2011 on the Google Code Blog, Twitter, and Buzz.

Posted by Christine Tsai, Google I/O Team

Monday, 7 June 2010
Facebook StumbleUpon Twitter Google+ Pin It

Geo at Google I/O 2010

Thanks from the Geo API team for a making Google I/O a great event yet again! We really look at I/O as being for developers by developers, so each year our API engineering team makes the pilgrimage from Sydney, Australia to personally present the new APIs and features they’ve spent most of their time working on. These features and new APIs are, in most cases, requested by the Maps API community so it’s a real thrill for us to deliver on these requests in person.

For those that were unable to make it, we’ve got you covered! The following is a summary of the key Geo API announcements that were made, along with a link to each session page that (as of today) now includes full videos and presentation materials. To bookmark all Geo sessions, use this YouTube playlist. Refill the coffee and get comfy!As our new and existing Maps APIs continue to evolve we would love to stay connected with you. Be sure to join our Google Group, check out the Geo Developers Blog or follow @GoogleMapsAPI on Twitter!

Google Wave at I/O: Learn new APIs & Build your own Wave

Google Wave was first unveiled at Google I/O in 2009, alongside our first draft of Wave APIs and specifications for the open-source world. We worked hard this past year to bring you a host of new features on our first birthday at Google I/O 2010: open sign-ups, attachments and data APIs and open-sourcing of a significant Wave component, the rich text editor.

From seeing demos in the Wave pod in the Developer Sandbox to having conversations with attendees in person, we were excited to see all of the ways people are using Wave and the Google Wave Federation Protocol inside enterprises. It was extremely valuable for us to hear your questions and feedback in person and via the session waves.

For developers out there who weren't able to attend I/O in-person, we hope you can join in virtually by watching the recorded videos of the various talks.
  • Open source Google Wave: Building your own wave provider - Learn how to get your own Wave server running using the currently open-sourced demos, and watch a demo of SAP Streamwork, Novell Pulse, and Google Wave all federating together.

  • Making smart & scalable Wave robots - Learn how to take advantage of version 2 of the Robots API to build more sophisticated robots, and watch a demo of the Go bot - the first example of a robot running on a non-App Engine server, written in the new open-source programming language.

  • Waving across the web - Learn how to use the APIs outside of Google Wave, including embedding waves for discussions on your site, integrating with the WaveThis service, and using the data APIs to build notifiers and alternative clients.

  • Google Wave Media APIs - Attachments can surf too!: Learn how to use the new media/attachments API for both retrieving and creating attachments, and watch demos of robots that turn waves into Powerpoint presentations -- and back!

  • Google Wave and the enterprise environment - Learn how different enterprises are using Wave today, see a walkthrough of Mr. Release, an extension built for our own software development enterprise use case, and watch a demo of SAP Streamwork, an enterprise collaboration software.

  • Google Wave API design principles - Anatomy of a great extension: Learn how to build gadgets and robots that are user-friendly and collaborative, and watch a demo of ProcessWave, a collaborative UML editor.

  • Fireside chat with the Google Wave team - Watch our answers to questions about integration between Google Wave and other products, future features for robots and gadgets, and much more.
In addition to the linked session titles where you'll find the videos and slides, you can also find all videos for Wave sessions in this YouTube playlist.

We welcome any follow-up questions in our forum for any of the video sessions above. Happy waving, and we look forward to seeing you all at next year’s Google I/O!

Google APIs at I/O 2010

Which three letters could you hear proudly proclaimed again and again throughout the sessions of Google I/O 2010? ...that’s right, A-P-I! Google APIs form the foundation of many of our developer products, and across the board, APIs made a significant impact at Google I/O.

This year, I/O saw the launch of a number of new APIs -- including the read-write Google Buzz API, the Google Font API, version two of the Google Feed API (with push!), the Google BigQuery API, the Google Latitude API, the Google Moderator API, and the Google Prediction API. Additionally, many of the sessions this year focused on how to better use existing Google APIs like the Google Analytics APIs and the YouTube APIs. And of course, we discussed many great topics during Office Hours and Fireside Chats, and after each session -- a big thank you to everyone who attended!

If you missed any of this excitement, today we’re pleased to announce that the following videos for the official Google API track are now available:

  • Bringing Google to your site - Google’s DeWitt Clinton and Jeff Scudder discuss a number of ways to integrate Google products with a site, including the Google Custom Search Engine, the Feed API with push, the Google Checkout Element, AdSense, Buzz Buttons, and more. DeWitt and Jeff also show how to “make the web beautiful” by announcing the new Google Font API.

  • Knowledge is (less) power: Exploring the Google PowerMeter API - Google’s Srikanth Rajagopalan and Rus Heywood discuss the concept behind, design of, and how to use the Google PowerMeter API.

  • Google Chart Tools: Google's new unified approach for creating dynamic charts on the web - Google’s Michael Fink and Amit Weinstein announce several new charts and features and expose the new look of the Google Chart Tools gallery. They also present the relative advantages of the Interactive Chart API (based on JavaScript) vs. the Image Charts API (based on server-side rendering), and show how they can work together to augment the users’ experience.

  • Google Analytics APIs: End to end - Google's Nick Mikhaelovski delivers an unprecedented sneak peak at how Google Analytics processes and calculates the data in reports. He also discusses the vision for Google Analytics integration tools and takes a look at how to integrate web analytics data with business data using the Google Analytics Platform.

  • Building real-time web apps with App Engine and the Feed API - Google’s Brett Bavar and Moishe Lettvin introduce two new tools to power the real-time web: the App Engine Channel API and the Feed API v2 with push updates. In a technical deep dive, they discuss how the Channel API pushes data from App Engine to a browser and how the new version of the Feed API subscribes to PubSubHubbub feeds and receive updates pushed to the browser.

  • YouTube API uploads: Tools, tips, and best practices - Google’s Jeffrey Posnick, Gareth McSorley, and Kuan Yong start off by discussing Android and iPhone upload best practices and how to resume interrupted uploads. They conclude by demonstrating the YouTube Direct embeddable iframe for soliciting uploads on existing web pages.

  • How Google builds APIs - Google’s Zach Maier and Mark Stahl discuss the foundations of Google’s API infrastructure, as well as a collection of different issues that shaped how APIs exist today. In addition, Google’s Yaniv Inbar demonstrates the new Java client library for Google APIs on Android, and Google’s Joey Schorr offers a sneak peak at Google’s internal API-building tool.

  • Analyzing and monetizing your Android & iPhone apps - Google’s Chrix Finne and Jim Kelm discuss how to build, launch, grow, monetize, and manage your Android app using AdSense for Mobile Apps. In a quick demo, Jim shows how to quicky implement Analytics in a mobile application.

We hope that you enjoy watching (or re-watching) these sessions as much as we enjoyed preparing and presenting them. Videos and slides for all of the individual presentations can be found on the pages linked above, but if you’d prefer to embark on an API-watching marathon, you should check out our YouTube playlist and watch away.

As always, it’s exciting to see the great and powerful products that you’re building with Google’s suite of APIs. We look forward to coding and innovating with you over the next year, and can’t wait to see you at I/O 2011!

Friday, 4 June 2010
Facebook StumbleUpon Twitter Google+ Pin It

Google Hackfest and Reception at RailsConf

Many of the developer and enterprise products presented at Google I/O are of great interest to the Rails Community. We know developers attending RailsConf are ready to roll up their sleeves to start hacking, so Google is hosting a hackfest and reception at the Renaissance Baltimore Harborplace Hotel in Maryland DF (5th Floor). The event will be on June 9th from 7:00pm to 11:30pm, and of course we'll have food, beer and swag. Space is limited, so please register now, we'll send out an email when your registration has been confirmed.

Steven Bazyl will be helping folks integrate their existing Rails apps into Google Apps Marketplace using OpenID, OAuth, and the Google Data APIs. The Google Apps Marketplace offers products and services designed for Google users, including installable apps that integrate with Google Apps.

Ryan Brown and John Woodell will be getting folks setup with Duby or JRuby on App Engine, and David Masover will be helping folks with the DataMapper adapter. Google App Engine enables developers to build and host web apps on the same systems that power Google applications. JVM languages like Duby and JRuby operate on App Engine for Java.

Seth Ladd will be available to talk about the Chrome Web Store. The Chrome Web Store a very easy way to distribute and monetize apps written in HTML, HTML5, or even Flash. The Chrome Web Store is a perfect way to market and distribute your Rails application, run that app on any platform or device (mobile or desktop), sign up users, and make money.

Seth will also be running two surveys at the conference, and would love your feedback on HTML5 and the Chrome Web Store. These in-person surveys are to help him gauge developer interest and knowledge in these technologies. To entice participants, he will have lots of t-shirts on hand to give away to attendees at the conference who participates in the survey. Look for him while at the conference, let him know your thoughts, and collect your t-shirt (while supplies last).

RailsConf attendees that sign up for the hackfest by June 8th, can request a Google Storage account to use at the hackfest. Google Storage for Developers a RESTful service for storing and accessing your data on Google's infrastructure. The service combines the performance and scalability of Google's cloud with advanced security and sharing capabilities.

We're looking forward to the great talks and to meeting lots of developers. Can't wait to do some coding with you at RailsConf 2010!

Tech Talks and Fireside Chats at I/O 2010

Today we’re releasing videos from the Tech Talks and Fireside Chats at I/O 2010. A look back on each track:

Tech Talks:

From new programming languages to venture capital to 5-minute lightning talks, the Tech Talks track at I/O was a veritable potpourri of geeky goodness.

You can find videos and slides for the Tech Talks on the linked session titles below:

  • Go programming - The Go programming language was released as an open source project in late 2009. Rob Pike and Russ Cox discussed how programming in Go differs from other languages.

  • Opening up Closure Library - Closure Library is the open-source JavaScript library behind some of Google's big web apps like Gmail and Google Docs. Nathan Naze talked about the library, its design, and how to integrate it in with your setup.

  • Optimize every bit of your site serving & web pages with Page Speed - Richard Rabbat and Bryan McQuade talked about Page Speed, an open-source Firefox/Firebug Add-on which allows web developers to evaluate and improve the performance of their web pages.

  • SEO site advice from the experts - Matt Cutts, Greg Grothaus, Tiffany Lane, and Vanessa Fox offered SEO feedback on a number of actual websites submitted by the audience.

  • Beyond design: Creating positive user experiences - John Zeratsky and Matt Shobe shared their tips on how to keep users coming back to your applications through a positive user experience.

  • How to lose friends and alienate people: The joys of engineering leadership - Brian Fitzpatrick and Ben Collins-Sussman regaled the audience with tips on how to lead vs. manage.

  • Ignite Google I/O - Brady Forrest and Ignite returned to I/O with an awesome line-up of speakers - Ben Huh, Matt Harding, Clay Johnson, Bradley Vickers, Aaron Koblin, Michael Van Riper, Anne Veling, and James Young.

  • Technology, innovation, computer science, & more: A VC panel - This year was the first time that we had investors/VCs speaking at I/O. Albert Wenger, Chris Dixon, Dave McClure, Paul Graham, Brad Feld, and Dick Costolo (moderator) debated hot tech topics including betting on start-ups with non-technical founders and open vs closed platforms.
The Tech Talk videos are also available in this YouTube playlist.

Fireside Chats:

In the 9 fireside chats at I/O this year, Google teams were eager to talk about the latest ongoings with their respective product areas, as well as spend most of the time on audience Q&A.

This year, we decided to record fireside chats because we know how popular they are not just with I/O attendees, but everyone interested in hearing from the engineers behind our products. You can find videos for the fireside chats below:

These videos can also be found in this Fireside Chats YouTube playlist or the YouTube playlist for each session track. (ex. the two Android Fireside Chats are also in the Android playlist)

On Monday, we’ll be posting the last batch of I/O videos from the Geo, Google APIs, and Google Wave tracks. Stay tuned!

Posted b

Thursday, 3 June 2010
Facebook StumbleUpon Twitter Google+ Pin It

Google Chrome at Google I/O 2010

We kicked off Day 1 of Google I/O this year by highlighting the progress of the web platform.

The Day 1 keynote included a number of exciting announcements and demos from the Chrome Team. To demonstrate the power of building with HTML5, Sundar Pichai invited on stage a number of Chrome partners, including Clicker who demonstrated the power of video and highlighted one of the big open questions for the web: the need for a freely available, high quality video codec for the tag. With the support of Mozilla, Opera, and Adobe, we announced the launch of the WebM Project, which makes a high quality video codec freely available to everyone.

We also announced the upcoming Chrome Web Store, which will launch later this year to help make great web applications more discoverable. We showed how rich web apps and content like Sports Illustrated will be discovered, launched, and even purchased from the Web Store when it launches later this year.

In addition to our keynote announcements, the Chrome Team also led a number of sessions throughout both days of the conference, focusing on Chrome, HTML5, and the web as a platform.

Here’s a recap of what was covered in our sessions:
  • Beyond JavaScript: programming the web with native code - Although JavaScript performance is rapidly increasing, there are still applications for which native code is a better choice. Learn about Native Client and how you can use it to build rich applications with all of the advantages and power of the web.
  • Chrome Extensions - how-to - Google Chrome shipped an extensions API in version 4.0. Since last year, new capabilites have been added to the extensions framework, and many people have already written powerful extensions with minimal effort. Find out how to write an extension, and what's coming next in Chrome Extensions.
  • HTML5 status update - Where is HTML5 today? What new features are now broadly supported, what features are on the horizon, and what features are on the chopping block? How do we decide what to implement, what to propose, and what to drop? Find out.
  • Developing web apps for the Chrome Web Store - Google Chrome is a powerful platform for developing web apps. With Chrome web apps, we're making it easier for users to discover and use these apps. Learn how to build and sell apps for the Chrome Web Store.
  • WebM Open Video Playback in HTML5 - The new open VP8 codec and WebM file format present exciting opportunities for innovation in HTML5 . In this session, you'll see WebM playback in action while YouTube and Brightcove engineers show you how to support the format in your own HTML5 site.
  • Google Chrome's Developer Tools - In this session we'll give an overview of Developer Tools for Google Chrome that is a part of the standard Chrome distribution. Chrome Developer Tools allow inspecting, debugging and tuning the web applications and many more. In addition to this overview we would like to share some implementation details of the Developer Tools features and call for your contribution.
  • Developing With HTML5 - This session covers the HTML5 APIs available to Google Chrome and Google Chrome OS applications and Google Chrome extensions. Learn how to design web applications for a Google Chrome OS netbook using the latest web technologies.
  • Using Google Chrome Frame - Google Chrome Frame brings the HTML5 platform and fast Javascript performance to IE6, 7 & 8. This session will cover the latest on Google Chrome Frame, what it can do for you and your customers, how it can be used, and a sneak peak into what's planned next.

In case you couldn’t attend in-person, all the links above include videos and slides from each session. You can also find all the Chrome session videos on this YouTube playlist. Thanks to everyone who showed up this year and made Google I/O such a great event.

The Social Web at Google I/O 2010

Google I/O attendees and speakers this year had the opportunity to participate in some fascinating and important conversations around the social web. The Developer Sandbox featured 16 companies on hand to talk about their social efforts, including Atlassian, eBay, IBM, LinkedIn, MySpace, Ning, Plaxo, Playfish, Yahoo!, and Voxeo.

In addition, nine sessions on social topics took place during the 2-day conference -- dealing with everything from real-time streams to OpenSocial in the enterprise. Of particular emphasis were open standards such as ActivityStreams, PubSubHubbub, OAuth, Salmon, and Webfinger that are fast becoming the foundational technologies for a more open and social web. The Google Buzz API was announced and covered in detail. And, of course, a deep look was taken at the future of the social web.

This is a big year for the social web, and we hope that the videos and slides from each session will expand your knowledge of and engagement with these exciting ideas and technologies:
  • Fireside chat with the Social Web team - Rockstars of the Social Web team at Google gather to talk with attendees about a truly open and social web.

  • What's the hubbub about Google Buzz APIs? - Chris Chabot introduces the Google Buzz API and provides a deep dive on the open standards it uses such as ActivityStreams, PubSubHubbub, OAuth, Salmon, and WebFinger, and demonstrates how to build your own apps on top of the API.

  • Surf the stream: Google Buzz, location, and social gaming - Bob Aman and Timothy Jordan continue the Google Buzz API party with Buzz Bingo, a social game built on App Engine and Google Buzz.

  • iGoogle developer portal and tools - The iGoogle Gadget Dashboard and the OpenSocial Development Environment are introduced by Shih-chia Cheng and Albert Cheng to help you build and maintain better OpenSocial gadgets for iGoogle.

  • Make your application real-time with PubSubHubbub - Atom and RSS feeds are even more valuable when they’re pushed to subscribers in real-time. In this session, Brett Slatkin (Google) and Julien Genestoux (Superfeedr) show you how to implement PubSubHubbub for better stream publishing and consumption.

  • The open & social web - Chris Messina uses a cartoon narrative to tell the epic story of Jack and Kate, explaining how immigration, staying in touch, and sharing rich media relate to emerging technologies like OpenID, WebFinger, and publishing technologies like PubSubHubbub, ActivityStreams, and Salmon.

  • Bridging the islands: Building fluid social experiences across websites - Once you’ve seen Chris Messina’s talk on the open & social web, you’re bound to ask how you connect your site to the rest of the Social Web to increase traffic, engagement, and relevance. John Panzer and Joseph Smarr give you the answer: by adopting the awesome open technologies described in this talk!

  • Where is the social web going next? - Kara Swisher moderates a panel of leading experts from LinkedIn, Yahoo, Google, Microsoft, Twitter, and MySpace debating issues like privacy and providing their best guesses at the direction of the foundational technologies of the social web.

  • Best practices for implementing OpenSocial in the Enterprise - Experts in the deployment of OpenSocial in the enterprise gather to talk implementation and best practices as well as review existing challenges.

You can also find all the Social Web I/O 2010 session videos on this YouTube playlist.

We had a great time at Google I/O this year and look forward to a long and fruitful discussion of everything social as we continue to work hard at making the the web more social, and the social web more open. Stay tuned to our progress on the Google Social Web Blog

Wednesday, 2 June 2010
Facebook StumbleUpon Twitter Google+ Pin It

Android at Google I/O 2010

The Android intensity at Google I/O 2010 was definitely palpable. The Android presence included all of Day 2’s keynote along with a full session track, office hours, an Android device display of over 50 phones, and (many people’s favorite) the Developer Sandbox.

Vic Gundotra kicked off the Day 2 keynote with over 20 demos of the new features from Android release 2.2, internally called “Froyo” (see this summary on the Android Developers’ Blog). The second half of the keynote was devoted to Google TV. For more details on that announcement, you can read The Google TV Story.

During the conference, there were ten in-depth sessions dedicated to Android, two fireside chats (including one with OEMs), and one session that combined discussion of Android and iPhone issues. The sessions were:

  • A beginner’s guide to Android by Reto Meier - This one featured an amazingly packed, wall-to-wall, no-standing-room-left crowd, and once it became apparent that the crowd was already quite Android-savvy, the session turned into a Best and Worst Practices talk.

  • Writing real-time games for Android, redux by Chris Pruett - A crash course in Android game development: everything you need to know to get started writing 2D and 3D games, as well as tips, tricks, and benchmarks to help your code reach optimal performance. The crowd in this session’s room showed that games are one of the hottest Android application areas.

  • The world of ListView by Romain Guy and Adam Powell - It might seem a bit odd to dedicate an entire session to one UI widget, but Android’s ListView is large, reasonably complex, and very widely used. Romain and Adam had to work hard to fit their material into just one talk.

  • Casting a wide net: how to target all Android devices by Justin Mattson - This session covered an increasingly important subject now that there are over 60 Android devices, with significant variations in their size, shape, and capabilities.

  • Developing Android REST client applications by Virgil Dobjanschi - Virgil discussed the meat and potatoes of fitting Android clients into an increasingly-RESTful Web ecosystem. No user-interface flash here, but totally essential back-end plumbing guidance.

  • A JIT Compiler for Android's Dalvik VM by Ben Cheng and Bill Buzbee - JIT stands for “Just In Time”, and it’s a technique for making compute-heavy Android programs run faster; maybe as much as four times faster. Definitely behind-the-scenes stuff, but a subject nearly everyone cares about.

  • Writing zippy Android apps by Brad Fitzpatrick - Making your code run fast requires combining good design with a large grab-bag of hard-won best practices. For any serious Android developer: this is a must-see session, so I hope you make use of the session video and slides!

  • Advanced Android audio techniques by Dave Sparks - Integrating audio into your apps involves a lot of choices and trade-offs at a bunch of levels. Furthermore, there are new media framework APIs in Android 2.2. Lots of good, detailed drill-down in this session.

  • Building push applications for Android by Debajit Ghosh - What was called “push” while it was being built is now called Cloud To Device Messaging (C2DM), and it’s very nicely integrated into the SDK; we anticipate that a lot of developers will want to use this.

  • Android UI design patterns by Chris Nesladek et al. - The Android User Experience team shared their insights on how to design great Android apps.

There were also two Fireside chats. One with a panel of Android handset manufacturers, and another with a stage full of leading engineers from the Android team. The panelists took questions from the people in the room and from over the Web via Google Moderator and Google Wave.

On Thursday afternoon, a gaggle of Android engineers held office hours; the area was absolutely jam-packed with developers full of questions about everything from low-level hardware interfaces to telephony chips up through the finer points of Live Wallpapers. Everyone had fun and went home tired.

On both days of the conference, there was a large (bright green, of course) display case full of Android devices, surrounded by the app developers and handset manufacturers participating in the Developer Sandbox. This area was crowded from the start of I/O until the security folks eventually chased out the stragglers after closing. Here is quick video of a slow walk past the big display case.

Videos and slides for each session are linked from the titles above, and you can find all the Android session videos from Google I/O 2010 in this YouTube playlist.

The Android team had an amazing time meeting the developer community at this year’s I/O, and we hope you’ll stay up-to-date on Android news by following us on the Android Developers Blog!

Developers go big for business at Google I/O 2010

There was a big focus on developing software for businesses at Google I/O this year, centered around three themes: build and sell apps in the Marketplace, customize and extend Google's apps, and build your own apps for internal use. The news kicked off the day before Google I/O with the announcement of Gmail contextual gadgets and many enhancements for Google Apps Script, including JDBC support. Then during the keynote, we launched Google App Engine for Business and announced our collaboration with VMware, and continued with the announcement of Google Wave (Labs) availability in Google Apps and Exchange support in Android 2.2 (aka Froyo).

Altogether there were more than a dozen technical sessions focused on the enterprise and more than 20 Google Apps Marketplace vendors demoing in the Enterprise Developer Sandbox.

Here’s a recap of a few of the sessions below. You can find the videos and slides for these sessions on the linked session title:

You can also find all videos for Enterprise I/O 2010 sessions in this YouTube playlist.

We’re excited to see the great strides our enterprise developer community has made, and we're looking forward to seeing even more innovation and progress at next year’s I/O. We hope to see you then!

Posted by Ryan Boyd, Google Apps team

Tuesday, 1 June 2010
Facebook StumbleUpon Twitter Google+ Pin It

GWT at Google I/O 2010

This year's Google I/O was one to remember, with demos and presentations that showcased the power of HTML5 for consumers and businesses, as well as a complete proliferation of Android apps and devices (some of which ended up in the hands of attendees).

Day one included a keynote presentation by our own Bruce Johnson and SpringSource's Ben Alex. Here they announced the Google and VMware partnership which makes it easy for developers to harness the power of Spring Roo and GWT to build rich enterprise web apps that are cloud portable. As part of this announcement, the GWT team released GWT 2.1 M1, which not only includes VMware integration, but also Data Presentation Widgets and an MVP Framework.

Along with the great keynotes, there were plenty of in-depth GWT sessions. In the event that you missed them, here's a recap:
  • Measure in milliseconds redux: Meet Speed Tracer - Kelly Norton is back for round two to demonstrate what milliseconds of latency means to end-users, as well as how to identify the sources of latency within your app using Speed Tracer.

  • Faster apps faster: Optimizing apps with the GWT Compiler - Have you ever wondered how you can speed up your GWT compiles? If so, follow along with Ray Cromwell as he delves into this topic, as well as other tips and tricks that you can use to streamline development with GWT.

  • Architecting for performance with GWT - Last year we announced Google Wave, a cutting edge web app that introduces a new way of collaborating and communicating. This year Wave team lead Adam Shuck, and GWT UI guru Joel Webber share with everyone the optimizations both teams use when building GWT-based web apps.

  • GWT Linkers target HTML5 Web Workers, Chrome Extensions, and more - GWT has some extremely interesting technology under the hood, and Matt Mastracci, CTO of dotspots, knows this as well as anyone else. For this year's I/O he provides an overview of GWT linkers, as well as how they created a one that turns a GWT module into an HTML5 Web Worker, and one that generates an HTML App Cache manifest automatically.

  • GWT's UI overhaul: UiBinder, ClientBundle, and Layout Panels - GWT 2.0 shipped with some major UI enhancements that make it very easy to speed up your app, decrease load time, and control layout. In this session, Ray Ryan and Joel Webber show you how these new features interact with one another, and how you can use them to create the most optimal web app.

  • GWT + HTML5 can do what?! If you missed the YouTube video of Quake II running in the browser, this session not only replays it, but goes into great detail as to how the three Googlers actually made it happen using HTML5 features such as WebGL and WebSockets.

  • GWT testing best practices - In 2009, Ray Ryan gave a talk on how to architect a GWT app using the MVP design pattern. This year, Wave's Daniel Danilatos follows-up on Ray's talk, with a detailed overview of how to remove the pain of testing GWT apps using the MVP architecture.

  • Architecting GWT applications for production at Google - If you haven't noticed, it's required that at least one of Ray's talks has the word "Architecting" in it. The good news is that his talks live up to their titles, and this session is no exception. Not only does Ray evolve the concepts discussed in his 2009, "Best Practices for Architecting GWT Apps", he dives into some of the upcoming GWT 2.1 features, and invites Ben Alex, from VMware, on stage to talk about the integration between Spring Roo and GWT.
In addition to the linked session titles where you'll find the videos and slides, you can also find all videos in this YouTube playlist for GWT I/O 2010 sessions.

It was fantastic meeting everyone out at I/O, and we hope that it was as exciting and educational for you as it was for us. As always, stay on top of the latest GWT 2.1 release progress on the GWT Blog, and be on the lookout for posts from other I/O tracks coming soon!

The App Engine Team’s trip to I/O 2010 (Recap & Videos)

This year’s Google I/O included a flurry of announcements and presentations for the App Engine team. Thanks to everyone who attended our sessions, stopped by the Sandbox, or came to meet the team at our office hours. It was great to meet all of you. For the App Engine developers out there that weren't able to make it out this year, we wanted to give you a quick recap on what you missed.

We opened up the first day’s keynote with App Engine’s very own Kevin Gibbs announcing App Engine for Business and doing a demo of the new Business Admin Console. There’s lots of great new features coming with App Engine for Business so if you missed the announcement, please read more about it and sign up to be a part of the preview. We also announced our work with VMWare to connect our development tools in order to allow developers to use SpringSource tools and Google Web Toolkit to build applications and deploy them on App Engine.

If you were watching the keynote, you might have missed the announcement that we released version 1.3.4 of the App Engine SDK which included a brand new bulkloader and experimental support for OpenID and OAuth. The Blobstore API is also no longer experimental and supports files up to 2GB in size.

In addition to all the high profile announcements in the keynote, we also hosted a number of great sessions about App Engine development for the rest of the conference. Thanks to the dedicated I/O organizers, videos of all the App Engine sessions are now available so anyone can watch them (with more to come in the next few days):
  • Appstats - RPC instrumentation and optimizations for App Engine - Guido van Rossum went into detail on how to use Appstats, a new tool for App Engine developers which provides deep insight into why requests are slow and what they’re doing under the covers.

  • Run corporate applications on Google App Engine? Yes we do - Ben Fried (Google’s CIO) and his team joined us to give an update on their progress of moving Google’s corporate applications to App Engine, the problems they ran into, and the success they had. They also announced that two of their apps are now being open sourced for anyone to use.

  • Batch data processing with App Engine - Mike Aizatsky introduced Mapper, a new tool which allows App Engine developers which makes it simple to write code that is run over large datasets such as a Blobstore file or Datastore entities.

  • Data migration in App Engine - Matthew Blain gave a complete introduction to the brand new Bulk Loader which shipped as part of App Engine’s 1.3.4 SDK. The session also provided a look into how to use the Bulk Loader with Java applications and ways to import complex data models from a number of different sources.

  • What's hot in Java for App Engine - The same duo from last year’s introduction of the Java SDK, Don Schwarz and Toby Reyelts, were back again this year to give an update on the progress of the Java SDK. Performance optimizations, compatibility, and new APIs are all covered giving a peak under the hood for Java developers.

  • Building high-throughput data pipelines with Google App Engine - Brett Slatkin reviewed the Task Queue and introduced a number of strategies used to improve the performance of applications doing very high volumes of task queue work. This session is based on lessons learned by Brett while building PubSubHubbub on App Engine.

  • Testing techniques for Google App Engine - Max Ross argued the virtues of proper software testing and then went to detail on how to test your App Engine code properly and how to use App Engine to test all the rest of your code.

  • Next gen queries - Alfred Fuller closed out the conference with a great overview of recent improvements to the Datastore query planner and the new types of queries that are possible, as well as a look at a few features on the horizon.
In addition to the linked session titles where you'll find the videos and slides, you can also find all videos in this YouTube playlist for App Engine I/O 2010 sessions.

There’s plenty of great information in all the presentations, so for those of you that missed, we highly recommend you watch the videos and read the slides. For everyone else that made it to I/O this year, thank you for making this year’s I/O a complete success. It’s incredibly energizing for us to see all your hard work, thoughtful questions, and great ideas on App Engine. We’re already excited to see what you all surprise us with at next year’s I/O!