Author PhotoBy Louis Gray, Program Manager, Google Developers Live

Cross-posted from +Google Developers

It was an exceptional week for Google Developers last week. On +GDL, we streamed two high quality days of the Chrome Dev Summit, showed off the +Google Glass Development Kit, and hosted +Tim Bray and +Breno de Medeiros talking about passwords and account security. That’s more than enough, but we weren't finished. Catch our 3 minute summary video, Google Developers Live Weekly, for the details.

Go directly to the videos and posts mentioned:

To make sure you don't miss a single event, subscribe to Google Developers on YouTube or just click the red YouTube button on the right nav (over there --> see it?), and check us out at

+Louis Gray is a Program Manager on Google's Developer Relations Team, running Google Developers Live. He believes life is but a (live) stream.

Posted by Scott Knaster, Editor

Author Photo By Max Heinritz, Product Manager and (Tolkien) Troll Evader

Cross-posted from the Chromium Blog

For the past few years, building multimedia web experiences for mobile devices has been difficult. Phones and tablets are less powerful than their counterparts, and mobile browsers have traditionally had limited API support. Despite these challenges, the mobile web is evolving rapidly. In the last few months alone, Chrome for Android gained support for WebGL, WebRTC, and Web Audio.

“A Journey through Middle-Earth”, our latest Chrome Experiment, demonstrates what’s now possible on the mobile web. Developed by North Kingdom in collaboration with Warner Bros. Pictures, New Line Cinema and Metro-Goldwyn-Mayer Pictures, the experiment uses the latest web technologies to deliver a multimedia experience designed specifically for tablets, phones, and touch-enabled desktops.

The experiment starts with an interactive map of Middle-earth. It may not feel like it, but this cinematic part of the experience was built with just HTML, CSS, and JavaScript. North Kingdom used the Touch Events API to support multi-touch pinch-to-zoom and the Full Screen API to allow users to hide the URL address bar. It looks natural on any screen size thanks to media queries and feels low-latency because of hardware-accelerated CSS Transitions.

Clicking or tapping a location in the map reveals a second layer with horizontal parallax scrolling, again built just with HTML, CSS, and JavaScript. Eventually users reach an immersive WebGL-based 3D environment optimized for Android phones and tablets with high-end GPUs. These environments also use the Web Audio API for interactive audio.

The multi-device web is evolving rapidly, and we’re looking forward to more sites like “A Journey Through Middle-earth” that show the potential of the platform’s latest mobile features. For a deeper technical case study, check out North Kingdom’s new HTML5 Rocks article about using WebGL in Chrome for Android*. We’re also planning to host a Google Developers Live session with the team in early December; circle +Google Chrome Developers for details.

*Update: you can now read North Kingdom's second HTML5 Rocks case study on building the rest of the HTML5 front-end for "A Journey through Middle-earth".

Max Heinritz is an Associate Product Manager on the Chrome Web Platform team. He's helping the web reach its potential to become the universal application platform. On the weekends you can find him exploring the Northern California wilderness.

Posted by Scott Knaster, Editor

Author PhotoBy Jonathan Tomer, Software Engineer

Cross-posted from the Google Politics & Elections Blog

Many applications track and map governmental data, but few help their users identify the relevant local public officials. Too often local problems are divorced from the government institutions designed to help. Today, we're launching new functionality in the Google Civic Information API that lets developers connect constituents to their federal, state, county and municipal elected officials—right down to the city council district.

The Civic Information API has already helped developers create apps for US elections that incorporate polling place and ballot information, from helping those affected by Superstorm Sandy find updated polling locations over SMS to learning more about local races through social networks. We want to support these developers in their work beyond elections, including everyday civic engagement.

In addition to elected representatives, the API also returns your political jurisdictions using Open Civic Data Identifiers. We worked with the Sunlight Foundation and other civic technology groups to create this new open standard to make it easier for developers to combine the Civic Information API with their datasets. For example, once you look up districts and representatives in the Civic Information API, you can match the districts up to historical election results published by Open Elections.

Developers can head over to the documentation to get started; be sure to check out the "Map Your Reps" sample application from Bow & Arrow to get a sense of what the API can do. You can also see the API in action today through new features from some of our partners, for example:

  • has implemented a new Decision Makers feature which allows users to direct a petition to their elected representative and lists that petition publicly on the representative's profile page. As a result, the leader has better insight into the issues being discussed in their district, and a new channel to respond to constituents.
  • PopVox helps users share their opinions on bills with their Congressional Representatives in a meaningful format. PopVox uses the API to connect the user to the correct Congressional District. Because PopVox verifies that users are real constituents, the opinions shared with elected officials have more impact on the political process.
Over time, we will expand beyond US elected representatives and elections to other data types and places. We can’t grow without your help. As you use the API, please visit our Developer Forum to share your experiences and tell us how we can help you build the next generation of civic apps and services.

This release is an investment in making the world’s civic data universally accessible and useful. We’ll continue to work with civic developers who are tackling real-world challenges. Together, we can build new tools to improve civic life for everyone.

Jonathan Klabunde Tomer is a software engineer in Google's Washington, DC office. He enjoys bicycling, good food, good wine, and open data.

Posted by Scott Knaster, Editor

Author PhotoBy Louis Gray, Program Manager, Google Developers Live

Cross-posted from +Google Developers

Last week was a busy one for Google Developers. We showed off Portable Native Client, talked about Google Developers Hackademy, and launched Dart 1.0. Find out about these and more on Google Developers Live Weekly. To make sure you don't miss a single event, subscribe to Google Developers on YouTube and check us out at

Go directly to the videos and posts mentioned:

To make sure you don't miss a single event, subscribe to Google Developers on YouTube or just click the red YouTube button on the right nav, and check us out at

+Louis Gray is a Program Manager on Google's Developer Relations Team, running Google Developers Live. He believes life is but a (live) stream.

Posted by Scott Knaster, Editor

By Stephanie Taylor, Open Source Programs

Cross posted from the Official Google Blog

Today marks the start of Google Code-in, a global online contest for pre-university students (13-17 years old) interested in learning more about open source software. Participating students have an opportunity to work on real world software projects and earn cool prizes for their effort.

For the next seven weeks students from around the world will be able to choose from an extensive list of tasks created by 10 open source projects. Some tasks require coding in a variety of programming languages, creating documentation, doing marketing outreach or working on user interfaces.

Participants earn points for each task they successfully complete to win T-shirts and certificates. At the end of the contest, 20 students will be selected as grand prize winners and flown to Google’s Mountain View, California headquarters. Winners will receive a trip to San Francisco, a tour of the Googleplex and a chance to meet with Google engineers.
Google Code-in 2012 grand prize winners at the Googleplex with a self driving car

More than 1,200 students from 71 countries and 730 schools have participated in Google Code-in over the past three years. Last year, our 20 grand prize winners came from 12 countries on five continents!

We hope this year’s participants will enjoy learning about open source development while building their technical skills and making an impact on these organizations. Please review our program site for contest rules, frequently asked questions and to get started!

Written by Stephanie Taylor, Open Source Programs

Posted by Scott Knaster, Editor

Author PhotoBy Benjamin Bechtolsheim, Product Marketing Manager

Cross-posted from the Google Cloud Platform Blog

Yesterday, we announced that we are expanding our offline disk import service to better serve users globally. With new disk upload centers in Switzerland, Japan and India, as well as our US center, it’s easier for people around the world to import large data sets by mailing hard drives to us rather than sending hundreds of terabytes over their slow, expensive or unreliable Internet connection.

But importing large amounts of data at scale isn’t simple. Our engineers have been working on the challenge for years. Originally, offline disk import was handled at our data centers as a way to efficiently import large amounts of data from the hard drives in our Street View cars - vehicles that capture terabytes of photographs and information about the landscape as they build a navigable, visual database of the world.

And although it’s technically challenging, the system we built for rapidly ingesting and processing these large data sources has a playful name. We call it OmNomNom. Here is one of the test OmNomNom machines that the disk import team has at its offices in Mountain View:

But rapidly ingesting and processing large data sets and making them usefully available is a bit more complex than gobbling down a cookie. As we’ve improved our ability to quickly import these drives, we dramatically reduced the time between capturing these images and making them available to users around the world.

Now, we are helping people across the world take advantage of the speed, scale and global availability of Google Cloud Storage as well as this rapid disk-upload technology. Even though it might sound like something out of Sesame Street, this is another example of how Google Cloud Platform is making the advantages of Google-sized scalable infrastructure available to you. All you need to do is send us your EncFS encrypted hard drives, and we will let you know once your encrypted bytes are imported to your designated GCS bucket. Once uploaded, we can mail your drives back to you, or if you prefer, safely and securely handle disk destruction free of charge. Check out our website for how you can be part of the Limited Preview of International Offline Disk Import.

(Oh, and for those of you who want to use Google Cloud Storage but don’t need offline disk import, you always have quick access Google Cloud Storage from the command line using gsutil).

Benjamin Bechtolsheim is a Product Marketing Manager for Google Cloud Platform. When not getting developers to code on Cloud Platform, he's probably riding his bike, trying to keep his container garden alive, or playing guitar, piano or the shaky egg.

Posted by Scott Knaster, Editor

Author Photo By Lars Bak, Software Engineer and Chief Dartisan

Today we’re releasing the Dart SDK 1.0, a cross-browser, open source toolkit for structured web applications. In the two years since we first announced Dart, we’ve been working closely with early adopters to mature the project and grow the community. This release marks Dart's transition to a production-ready option for web developers.

The Dart SDK 1.0 includes everything you need to write structured web applications: a simple yet powerful programming language, robust tools, and comprehensive core libraries. Together, these pieces can help make your development workflow simpler, faster, and more scalable as your projects grow from a few scripts to full-fledged web applications.

On the tools side, the SDK includes Dart Editor, a lightweight but powerful Dart development environment. We wanted to give developers the tools to manage a growing code base, so we added code completion, refactoring, jump to definition, a debugger, hints and warnings, and lots more. Dart also offers an instant edit/refresh cycle with Dartium, a custom version of Chromium with the native Dart VM. Outside the browser, the Dart VM can also be used for asynchronous server side computation.

For deployment, dart2js is a translator that allows your Dart code to run in modern browsers. The performance of generated JavaScript has improved dramatically since our initial release and is in many cases getting close to that of idiomatic JavaScript. In fact, the dart2js output of the DeltaBlue benchmark now runs even faster than idiomatic JavaScript. Similarly, dart2js output code size has been reduced substantially. The generated JavaScript for the game Pop, Pop, Win! is now 40% smaller than it was a year ago. Performance of the VM continues to improve as well; it’s now between 42% to 130% faster than idiomatic JavaScript running in V8, depending on the benchmark.

DeltaBlue benchmark results
The Dart SDK also features the Pub package manager, with more than 500 packages from the community. Fan favorites include AngularDart and polymer.dart, which provide higher-level frameworks for building web apps. Dart developers can continue using their favorite JavaScript libraries with Dart-JavaScript interop.

Going forward, the Dart team will focus on improving Dartium, increasing Dart performance, and ensuring the platform remains rock solid. In particular, changes to core technologies will be backward-compatible for the foreseeable future.

Today’s release marks the first time Dart is officially production-ready, and we’re seeing teams like Blossom, Montage, Soundtrap, Mandrill, Google's internal CRM app and Google Elections, already successfully using Dart in production. In addition, companies like Adobe,, and JetBrains have started to add Dart support to their products.

To get started, head over to and join the conversation at our Dartisans community on Google+. We’re excited to see what you will build with the new stable Dart SDK 1.0.

Lars Bak is a veteran virtual machinist, leaving marks on several software systems: Beta, Self, Strongtalk, HotSpot, CLDC HI, OOVM Smalltalk, and V8.

Posted by Scott Knaster, Editor

Author PhotoBy Nicolas Garnier, Developer Relations

The Google Drive SDK lets you build apps that deeply integrate with Google Drive and today that integration is getting even better: users can now easily discover, connect, and use your Drive-enabled app right within Gmail.

When viewing attachments in Gmail, users will be able to open files with a connected app, just like they can in Google Drive. And for certain file types, they’ll also see suggestions for relevant Drive apps that let them to do more than just view their email attachments.

Opening an image in Gmail with a connected app. (Credit: Krzysztof P. Jasiutowicz)

If users don’t see the app they want, the “Connect more apps” option makes it easy for them to discover and connect with any compatible app, all without ever leaving their inbox.

Browse and connect Drive and Gmail-enabled web apps

If your Google Drive-enabled app is already listed in the Chrome Web Store's Drive collection, you don't have to do a thing. Existing users of your app will see it appear as one of their connected apps in Gmail, and new users will be able to search for it in the store.

If your web app isn’t yet Drive-enabled, check out our getting started guide to ensure your app is ready for use by any Gmail and Drive user!

Nicolas Garnier joined Google’s Developer Relations in 2008 and lives in Zurich. He is a Developer Advocate for Google Drive and Google Apps. Nicolas is also the lead engineer for the OAuth 2.0 Playground.

Posted by Scott Knaster, Editor

Author PhotoBy Louis Gray, Program Manager, Google Developers Live

Cross-posted from +Google Developers

Each Monday I spend a few minutes reviewing what happened last week on Google Developers Live. Please take a look.

Go directly to the videos and posts mentioned:
To make sure you don't miss a single event, subscribe to Google Developers on YouTube or just click the red YouTube button on the right nav, and check us out at

+Louis Gray is a Program Manager on Google's Developer Relations Team, running Google Developers Live. He believes life is but a (live) stream.

Posted by Scott Knaster, Editor

Author PhotoBy +Scott Knaster, Google Developers Blog Editor

When you’re a kid in school, there’s nothing like a field trip to get you out into the world to learn something new. Now, thanks to the web, there is something like a field trip: Connected Classrooms on Google+. This new program lets kids from everywhere make virtual trips to museums, zoos, factories, and other cool places.

Connected Classrooms features great tour guide partners like Seattle Aquarium, Earthecho Expeditions, and SLAC National Accelerator Laboratory, and we expect the list to grow. If you’re a teacher and you want to find out more, you can join the Connected Classrooms community. And if you have a destination to offer and you want to be considered as a tour guide, you can fill out this form.

Speaking of getting out into the world, each year the pronghorn population of Wyoming migrates 150 km between their summer and winter homes. Along this route the pronghorns face their greatest foe: traffic on U.S. Highway 191, which they must cross. To aid the pronghorn migration, last year the Wyoming Department of Transportation built a system of fences, overpasses, and underpasses for safe crossing. At first the pronghorns weren’t sure what to make of the crossings, but after several hours they began to cross. This time, in the second year of the crossings, the pronghorns knew just what to do and crossed without hesitation. The animals (including the human ones) seem to have adapted nicely.

Finally, take some time this weekend to check out Helpouts by Google, a new way to get help on all sorts of issues via Google+ Hangouts. There are Helpouts for cooking, fitness and nutrition, home and garden, and a bunch of other topics. You can get help solving a problem, or learn a new skill. Maybe you can even offer other developers some coding help in the Computers and Electronics category.

Kids gotta field trip, pronghorns gotta migrate, Fridaygram gotta publish. Each week we take a break from our usual developer fare to bring you fun and nerdy stuff to kick off your weekend. Thanks for being here, and please be careful crossing the highway.

Author PhotoBy Jan-Willem Maessen, Software Engineer

Recent betas (1.5 and later) of mod_pagespeed and ngx_pagespeed introduce new optimizations that render pages up to 2x faster, particularly on mobile devices. This webpagetest video shows the results:

This speedup comes thanks to two new PageSpeed optimizations:
  • prioritize_critical_css finds the CSS rules that are used to initially render your page.
  • The critical image beacon identifies the images that appear on screen when your page is first rendered and uses this to guide lazyload_images and inline_preview_images.
These combine with two existing PageSpeed optimizations:
  • defer_javascript prevents scripts from running until the page has loaded.
  • convert_jpeg_to_webp reduces the size of images that are downloaded by webp-capable browsers.

What happens when you turn on these optimizations

Let’s compare the behavior of the page before and after optimization:
Before optimization, first render doesn’t occur until the CSS has arrived (vertical gray bar at 2.3s), and images (purple) don’t finish downloading until substantially later. The large above the fold image dominates above the fold rendering time (vertical blue bar at 3.4s).
During optimization, the prioritize_critical_css filter inlines the CSS required to render the page directly into the HTML. The inline_preview_images filter creates a low-quality version of the large above the fold image and inlines that in the page. The core image optimization filter also inlines some of the smaller above the fold images. The above the fold content is fully rendered after only 2.0s (vertical orange line).

Only after the page is rendered is the JavaScript code run thanks to the defer_javascript filter. At the same time the full-resolution version of the above the fold image is loaded; since convert_jpeg_to_webp is enabled, it is served in webp format and is smaller than the original even though the quality is the same. The full resolution version of the page is available after 3.1s (vertical gray line – still faster than the original page). The lazyload_images filter means the remaining images won’t be loaded until the page is scrolled (or, in the most recent version of PageSpeed, after all the other page content has been loaded).

Enabling these optimizations

To enable these optimizations in mod_pagespeed, download and install the latest beta. To do a test like the one you see here, simply add these lines to your pagespeed.conf file:
ModPagespeedEnableFilters prioritize_critical_css,defer_javascript
ModPagespeedEnableFilters convert_jpeg_to_webp
ModPagespeedEnableFilters lazyload_images,inline_preview_images

If you use ngx_pagespeed, install from the latest source and enable the filters in your configuration:
pagespeed EnableFilters prioritize_critical_css,defer_javascript;
pagespeed EnableFilters convert_jpeg_to_webp;
pagespeed EnableFilters lazyload_images,inline_preview_images;

Compare your results to pages loaded with ?ModPagespeed=off or with ?ModPagespeedFilters=core. If you see breakage on your site with the new filters, try omitting defer_javascript and/or lazyload_images from the list of enabled filters.


We hope you’ll try out the latest optimizations and let us know how they work for you. Meanwhile we’ll continue our quest for better optimizations and faster page performance. If you’re interested in joining the conversation, check out and subscribe to our discussion list,

Jan-Willem Maessen is a Software Engineer on the PageSpeed team, and helped build many of the optimizations including the ones you see here. He's been known to hit otherwise reasonable consenting software engineers about the head with a steel longsword.

Posted by Scott Knaster, Editor

Author PhotoBy Louis Gray, Program Manager, Google Developers Live

Cross-posted from +Google Developers

Take a few minutes and catch up with everything new on Google Developers Live.

You can go directly to the videos and posts mentioned:

To make sure you don't miss a single event, subscribe to Google Developers on YouTube or just click the red YouTube button on the right nav, and check us out at

+Louis Gray is a Program Manager on Google's Developer Relations Team, running Google Developers Live. He believes life is but a (live) stream.

Posted by Scott Knaster, Editor