Wednesday, 31 August 2011
Facebook StumbleUpon Twitter Google+ Pin It

Google DevFest Tour - save the date

By Christine Songco Lau, Developer Relations

Last year, the Google DevFest Tour gathered thousands of developers collectively around the world. Attendees heard from peers in the community already running their businesses on the Google platform. Googlers working on various Google developer products and APIs were on hand to talk about the latest and greatest, with best practices on how to improve the quality of web and mobile apps.

To continue giving you the opportunity to interact with us and get feedback, we’ve decided to announce another tour, in addition to the recently announced Google Developer Days. We’ve updated the 2011 DevFest site with tour cities and dates. We will continue to update the site with more detailed information such as venue location, agenda, and registration.

Please remember that space is limited at each location. We cannot guarantee that everyone will be able to secure a spot. We highly recommended you register early and check back for event updates. We'll email confirmations, which you can then use as your tickets to these events.

See you at DevFest!

Christine Songco Lau works with developers in Southeast Asia and on various global developer events such as Google I/O & Google DevFests. Christine likes to travel, scuba dive, and snowboard in her spare time.

Posted by Scott Knaster, Editor

Register now for Google Developer Day Czech Republic

By Monica Tran, Developer Marketing Team

Registration is now open for Google Developer Day in Prague, Czech Republic. Check out the website for the latest updates to the agenda. To register, visit the home page and click on the blue “Register Now” button.

Mark your calendars. Registration for our last GDD events, in Germany and Israel, will open on September 15th.

In the past four years, Monica Tran has been around the world, working as a Product Marketing Manager in Mountain View, London, and Tokyo. After a good run on Google I/O, Monica is back to lead the charge on Google Developer Day, happening in 8 cities worldwide in 2011.

Posted by Scott Knaster, Editor

A new Objective-C library for a new generation of APIs

By Greg Robbins and Tom Van Lenten, Software Engineers

Four years ago, we introduced an Objective-C library for Google Data APIs. At first, it supported a scant three services - Google Base, Calendar, and Spreadsheets. Perhaps more surprising is that it was written just for Mac applications; the iPhone SDK was still a year off. In the years since, the library has grown to support 16 APIs, and has been used in many hundreds of applications. In a fine example of unforeseen consequences, most of those applications run not on the Mac but on iOS.

The Google Data APIs were built on XML and the Atom Publishing Protocol, a reasonable industry standard for the time. But mobile, low-power, and bandwidth-limited computers are now the biggest audience for client software. Across the Internet, XML and AtomPub have given way to the lighter-weight JSON data interchange format.

Other fundamental changes have also shifted the API landscape. Password-based authentication is being supplanted by the more secure and flexible OAuth 2 standard. The number of APIs has grown dramatically, making it impractical to hand-craft data classes for all APIs and all languages. When services offer API improvements, developers want access to those changes as quickly as possible.

To support this evolving world, we are introducing a brand new library for Cocoa developers, the Google APIs Client Library for Objective-C. The library supports recent Google JSON APIs, including Tasks, Latitude, Books, URL Shortener, and many others. It is designed to make efficient use of the device’s processor and memory, so it’s a great fit for iOS applications.

The new library includes high-level Objective-C interfaces and data classes for each service, generated from the Google APIs Discovery Service. This lets the library model data not just as generic JSON dictionaries, but also with first-class Objective-C 2.0 objects. The classes include properties for each field, letting developers take advantage of Xcode’s code completion and syntax and type checking.

Here’s how easy it is to use the library and the new Google Books API to search for and print the titles of free ebooks by Samuel Clemens:
#import "GTLBooks.h"

GTLServiceBooks *service = [[GTLServiceBooks alloc] init];

GTLQueryBooks *query =
[GTLQueryBooks queryForVolumesListWithQ:@"Mark Twain"];
query.filter = kGTLBooksFilterFreeEbooks;

[service executeQuery:query
completionHandler:^(GTLServiceTicket *ticket,
id object, NSError *error) {
// callback
if (error == nil) {
GTLBooksVolumes *results = object;
for (GTLBooksVolume *volume in results) {
NSLog(@"%@", volume.volumeInfo.title);
The library supports Google’s partial response and partial update protocols, so even items of data-rich APIs can be retrieved and updated with minimal network overhead. It also offers a simple, efficient batch model, so many queries can be combined into one http request and response, speeding up applications.

When we introduced the previous Objective-C library, it was with this assertion: When you trust your personal data to Google, it's still your data. You're free to edit it, to share it with others, or to download it and take it somewhere else entirely. We hope the new library and Google’s growing collection of APIs help iOS and Mac developers to keep that principle meaningful for many years to come. You can start using the Google APIs Client Library for Objective-C by checking it out from our open-source project site and by subscribing to the discussion group.

Since Google I/O 2010, we've been developing APIs that can provide descriptions of themselves via metadata. This new technique makes it easier to create and maintain client libraries that support more languages, work with more APIs, and are easier to use than ever before. This post announces one of several recent major milestones for our client libraries.

Greg Robbins writes code to connect Mac and iOS apps to Internet services. He chases dogs in the morning, and bugs in the afternoon.

Tom Van Lenten is a Software Engineer on the Google Chrome team. He is also hooked on the Google Toolbox for Mac open source projects.

Posted by Scott Knaster, Editor

Google @ GDC Online Oct. 10th-12th

By Amy Walgenbach, Developer Marketing

This year at the Game Developers Conference (GDC) Online we have organized a Developer Day on Oct. 10th full of Google information for game developers. It will feature hardcore technical information on Google products and platforms delivered by Google engineers and developer advocates. We’ll discuss the latest projects we’re working on and how our online technologies can help you better create, distribute, and monetize games that reach a larger audience than ever before. We’ll present everything from how developers can build hardware accelerated 3D games for the browser with WebGL to the game framework used to bring Angry Birds to the Web.

In addition to the Developer Day, we will also have a booth on the Expo floor on Oct. 11th-12th where we’ll have representatives from the Chrome Web Store, Native Client, WebGL, App Engine, Google+, In-App Payments, Google TV, and AdSense/AdMob demoing technologies and platforms for game developers. Come by booth 503 to try out Google products and ask questions, or hang out in our Google TV lounge.

For more information on our presence at GDC Online, including session and speaker details, please visit Hope to see you in Austin!

Not able to attend GDC? Check out Google Game Developer Central to get an overview of Google products and services that are particularly relevant to game developers.

Amy Walgenbach is the Product Marketing lead for the Google+ platform and leads developer marketing for games at Google.

Posted by Scott Knaster, Editor

Tuesday, 30 August 2011
Facebook StumbleUpon Twitter Google+ Pin It

Two new versions of Google Analytics Management API

By Jeetendra Soneja and Nick Mihailovski, Google Analytics API Team

Today we are releasing two new versions of the Google Analytics Management API into public beta: a brand new version 3.0 and a backwards compatible version 2.4. Both new versions migrate the Management API from the existing Google Data Protocol to Google’s new discovery-based API infrastructure. This impacts the way you request and handle data from the API.

All future development of the API will be done to version 3.0, so we also added some interesting new data, including:
  • Event goals are fully represented.
  • An internal web property id that can be used to deep-link into the Google Analytics user interface.
  • Profile configurations for the default page and site search query parameters.
With this change, we are also announcing the deprecation of the legacy version 2.3 of the Management API. It will continue to work for 2 months, after which all v2.3 requests will return a v2.4 response.

The biggest changes in switching to the new versions are that you now need to register your applications via the Google APIs Console and use a developer token. Also, the URL endpoints have changed, which influence how you request OAuth authorization tokens.

For complete details on what’s new, see today’s post on the Google Analytics Blog. If you have any questions or concerns, please join the conversation in our Management API developer group.

Jeetendra Soneja is the technical engineering lead on the Google Analytics API team. He's a big fan of cricket – the game, that is. :)

Nick Mihailovski is a Senior Developer Programs Engineer working on the Google Analytics API. In his spare time he likes to travel around the world.

Posted by Scott Knaster, Editor

Thursday, 25 August 2011
Facebook StumbleUpon Twitter Google+ Pin It

Register now for New Game, the conference for HTML5 game developers

By Seth Ladd, Chrome Team

This post almost wasn’t written.

I’ve been a bit too busy playing and testing new browser-based games such as Monster Dash, Angry Birds, and the newly released SONAR. Bigger and better games are coming to the browser rapidly (and just wait until Native Client with 3D lands in Chrome), and it’s hard to keep up with the technology and scene. So what better way to bring everyone together to share stories and keep up to date than to hold a conference dedicated to HTML5 game development?

New Game, the first North American conference for HTML5 game developers, is now open for registration. You are invited to join hundreds of HTML5 game developers for two days of technical sessions and case studies from developers and publishers who brought their games to the open web platform. The event will take place November 1-2, 2011 at the beautiful Yerba Buena Center for the Arts in San Francisco, CA.

This year, New Game looks at what is possible in the browser today. Sessions will focus on the technologies that have elevated the browser-based gaming experience, such as WebGL, Canvas, and JavaScript performance techniques. In addition, the conference will feature sessions exploring and analyzing lessons-learned from recent HTML5 game launches.

New Game is honored to have Rich Hilleman, EA’s Chief Creative Officer, keynote the event. The schedule also includes sessions from Mozilla, Spil, Opera, Google, Bocoup, GameSalad, Moblyng, and others. After the first day, we’ll network with our colleagues and share high scores at the New Game party, open to all registered attendees.

For more information on New Game, including session and speaker details, please visit and follow @newgameconf for the latest news. Google, the premier sponsor, and conference director Bocoup invite you to take advantage of early bird registration pricing, available for a limited time.

The future of gaming is in your browser, so I’ll see you at New Game! Now if you’ll excuse me, it’s time to get back to my SONAR tab.

Seth Ladd is a Developer Advocate with the Chrome Team. Seth focuses on browser-based games as a sneaky way to play games at work. He realizes his manager might be reading this, in which case he focuses on cyber-synergizing e-paradigms.

Posted by Scott Knaster, Editor

Wednesday, 24 August 2011
Facebook StumbleUpon Twitter Google+ Pin It

Paid version of Google Translate API now open for business

By Jeff Chin, Product Manager

Back in May, we announced the deprecation of the free Translate API v1. Today, we’re introducing a paid version of the Google Translate API for businesses and commercial software developers. The Google Translate API provides a programmatic interface to access Google’s latest machine translation technology. This API supports translations between 50+ languages (more than 2500 language pairs) and is made possible by Google’s cloud infrastructure and large scale machine learning algorithms.

The paid version of Translate API removes many of the usage restrictions of previous versions and can now be used in commercial products. Translation costs $20 per million (M) characters of text translated (or approximately $0.05/page, assuming 500 words/page). You can sign up online via the APIs console for usage up to 50 M chars/month.

Developers who created projects in the API Console and started using the Translate API V2 prior to today will continue to receive a courtesy limit of 100K chars/day until December 1, 2011 or until they enable billing for their projects.

For academic users, we will continue to offer free access to the Google Translate Research API through our University Research Program for Google Translate. For website translations, we encourage you to use the Google Website Translator gadget which will continue to be free for use on all web sites. In addition, Google Translate, Translator Toolkit, the mobile translate apps for iPhone and Android, and translation features within Chrome, Gmail, etc. will continue to be available to all users at no charge.

Jeff Chin is the Product Manager for Google Translate. Whenever he travels, Jeff enjoys learning and trying to speak the local language, and finding good local restaurants and food to eat.

Posted by Scott Knaster, Editor

Monday, 22 August 2011
Facebook StumbleUpon Twitter Google+ Pin It

Register now for Google Developer Day in Australia

By Phoebe Peronto, Developer Marketing Team

Calling all Aussie developers! Registration for Google Developer Day Sydney is now open. Get started by visiting the newly launched GDD 2011 website, navigate to the GDD Sydney webpage, click on “Register Now,” and wait for your fate. Hope to see you at GDD 2011!

Not attending GDD Sydney? Registration for GDD Tel Aviv, Berlin, and Prague will be rolling out shortly. Visit the GDD 2011 website for event details, session updates, and registration information.

Phoebe Peronto spent her summer as a Developer Marketing Intern working to coordinate the launch of Google Developer Days 2011. With summer winding down, Phoebe has just returned to UC Berkeley as a senior studying Political Science and Business.

Posted by Scott Knaster, Editor

Introducing GTFS-realtime to exchange realtime transit updates

By Vladimir Rychev, Software Engineer

Cross-posted with the Google LatLong Blog

In June, we launched Live Transit Updates, a feature that adds realtime public transport information to Google Maps and Google Maps for mobile. This feature is powered by the GTFS-realtime feed format. Today we’re making the specification of this format public on Google Code. GTFS-realtime allows public transport agencies to provide realtime updates about their fleets. If you’re developing a trip planner or similar application, you can process these feeds and keep your users up-to-date with realtime information.

GTFS-realtime is an extension to GTFS, the General Transit Feed Specification, published by Google in 2006. Nowadays, GTFS is a very commonly used feed format that public transport agencies use to (publicly) provide their transport information. As opposed to GTFS feeds, GTFS-realtime feeds contain very dynamic information. This means that they have to be updated frequently and applications that use them have to fetch them frequently as well. This requires a significant infrastructure from the transport agency’s side, but it results in a continuously updated description of the current situation.

The specification currently includes three types of realtime updates: Trip Updates, Service Alerts and Vehicle Position updates. Each type of update has to be provided in a separate feed, and can be used independently.

Trip Updates are a way to present changes in the timetable. When a trip is delayed, canceled, added, or re-routed, a Trip Update can be used to provide this information in real time. Service Alerts can be used to notify passengers about special circumstances in the public transport network. In a Vehicle Position update, an agency provides the current location of an individual vehicle.

To encode realtime updates, Protocol Buffers are used. Protocol Buffer data structures can be processed very efficiently, resulting in low processing times compared to other popular data encapsulation standards. Because Protocol Buffers are compressed, they also use communication bandwidth efficiently. Protocol Buffers are very easy to work with, and there are libraries available for many programming languages.

The specification was designed through a partnership of the initial Live Transit Updates partner agencies, a number of transit developers, and Google. It has been published under the Creative Commons Attribution 3.0 license, the same license used for GTFS. You can discuss the specification and propose changes in the discussion group.

MBTA (Boston) and TriMet (Portland) have already made their GTFS-realtime feeds available for use in your applications. BART (SF Bay Area) and MTS (San Diego) have committed to making their feeds available in the future as well. We hope that many more agencies will follow!

Vladimir Rychev is a Software Engineer on the Google Transit team in Zürich. Before moving to Switzerland Vladimir taught kids at the Moscow 57th school, traveled the world from Cuba to Kazakhstan and entered programming contests from ICPC to topcoder.

Posted by Scott Knaster, Editor

Friday, 19 August 2011
Facebook StumbleUpon Twitter Google+ Pin It

Fridaygram: App Inventor goes to college, and a prehistoric eel swims on

By Scott Knaster, Google Code Blog Editor

App Inventor for Android provides an easy, gentle way for programming students and other curious folks to create apps for Android devices. Incubated and launched by Google, App Inventor will now be shepherded by the new MIT Center for Mobile Learning. App Inventor godfather Hal Abelson will oversee the new center along with two distinguished MIT colleagues.

While App Inventor is just starting out, the recently discovered Protoanguilla palau eel is an amazing 200 million years old. This eel has never been seen in the fossil record; in fact, it’s being called a "living fossil". It is so unique that it occupies its own species, genus, and family.

Finally, as you ponder the implications of developing mobile apps and living prehistoric eels, you can enjoy a nice paper banana.

Fridaygram posts are just for fun. They're designed for your Friday afternoon and weekend enjoyment. Each Fridaygram item must pass only one test: it has to be interesting to us nerds.

Open Call results: doodle your way to GDD

By Phoebe Peronto, Developer Marketing Team

On Tuesday, August 2, the Open Call HTML5 Challenge for Google Developer Day 2011 kicked off. With 2 weeks time to turn around a submission, participants were asked to design and implement an original HTML5 doodle of the Google Developer day Dymaxion map, adding their own local twist. Doodles had to be built using open web technologies (HTML5, WebGL, etc.) and feature a theme locally relevant to the participant’s GDD host country.

We received submissions from eight countries around the world, which were then reviewed by panels of local HTML5 experts. Overall, the judges were blown away by the creativity and innovation of the submissions. Top entries were selected from each country based on technical execution, creativity, and cultural theming. See below for the judges’ top picks, with descriptions in the creators' own words. Some of the comments are in the creator's native language; for translations, use Google Translate. To see a submission in action, click its thumbnail image.

Creator: Diego Nul
How did you do it? Just used html5 canvas to do very simple game functionality and transitions. The Dymaxion map turns into an Argentinian flag when the player takes the sun into the map centre.

Creator: Carlos Olivera
How did you do it? I had to made a simple polygonal animation with background music, so, I've used Raphael 1.5.2 - JavaScript Vector Library for loading and display figures (SVG), and I've used jQuery with Runloop plugin for looping animation; the result is an HTML5 based animation with so few lines of code. The background music is possible with HTML5 <audio> element.

Creator: Peter Finch
How did you do it? The doodle is created using a HTML5 2D canvas element. The Dymaxion map is programmatically generated by subdividing the triangles in the original map into smaller sub-triangles and then drawing all of them in different colours based on a colour map representing the image to be drawn. The colour maps were generated using a Java program that mapped the relative location of the triangle onto a target image and then back onto the page colour map. The waves then merge the images, one on top of another, to create the transition effect.

Creator: Brian McKenna
How did you do it? I imported the Dymaxion map to Blender and then animated it to transform into the Opera House using "shape keys". The Dymaxion map, Opera House, Southern Cross and stars all rendered using Three.js. Everything else rendered with normal HTML5/CSS3.

Creator: Marko Vuksanovic
How did you do it? Doodle is a manipulation of the Dymaxion map using HTML canvas element. Interactivity is achieved using native drag and drop events and transitions. Animations are used to transition between the iconic landmarks of Sydney.


Creator: Bruno Barbosa
How did you do it? Minha ideia foi criar um jogo da memória com as cartas contendo os principais topicos do Google Developer Day 2011. No jogo foi utilizado tecnologias como HTML5, CSS3 e JAVASCRIPT.

Creator: Rogério Celestino Santos
How did you do it? A idéia do jogo é fugir das outras cidades que caem no cenário. Utilizei um código antigo que eu tinha de um jogo simples em html ai então só adicionei as imagens. Fiz algumas mudanças. Mas ainda estou pensando em melhorias como pegar aleatoriamente a imagem correspondente de cada cidade. Tratar imagem de colisão. Poucas coisas ainda. Eu fiz isso hoje em 1 hora. O tempo que me restou.

Creator: Joao Henrique Cunha Rangel
How did you do it? É um jogo de memorizar as cores do Google. O que usei: Tags de audio HTML5, Geolocation para detectar o país do jogador, CSS3 para animar os pontos, CSS3 @font-face, CSS3 Cores gradiente e opacidade.

Creator: Miguel Antonio Silva
How did you do it? 3D objects and animations were created using the program Blender. The movement of the pencils was detected and painted in a 2D canvas html5. The canvas was used as texture for the 3D objects. For the 3D, the library used was Three.js, and for the animations tween.js.


Creators: Kay Schneider, Misha Matiyenko-Kupriyanov
Music: Hanno E. Allen
How did you do it? Split SVG Dymaxion map template into small png pieces; position PNG pieces with CSS3 into HTML5 Dymaxion map; read wiki about Icosahedron; reverse engineer positioning of Icosahedron faces in space with Google SketchUp; build 3d icosahedron model with CSS3; Web Audio API Loading Sound via XHR in arraybuffer to play it via the Web Audio API and visualise it on the DymaxionMap (zIndex of elements); canvas mapping; triangle human pictures, using canvas clip(); using of the ecma5 script (forEach and much more); triangle videos by applying SVG mask; Germanizing of the nyan cat by rainbow replacing with German flag; nice fonts with Google Web Fonts.

Creator: Josep del Rio Herrera
How did you do it? The GDD's Dymaxion map is a icosahedron, and each of the little triangles is the location of a GDD event; the doodle uses that icosahedron as the second "o" for a Google doodle. Clicking on it will show the GDD logo and information for the Berlin event. It uses a WebGL canvas to render the icosahedron and the Dymaxion map, and overlays text over it using SVG and CSS3 animations.

Creator: Connor Bunting
How did you do it? Googlespiel is an interactive HTML glockenspiel. It was built using inline SVG, HTML audio and jQuery. It can be played either by clicking on the 'keys' with the mouse or by using the keyboard. When Googlespiel loads it play Fur Elise by Beethoven. The key sounds were created using Apple Logic Studio music software.


Creator: Akira Takegahara
How did you do it?
・開発ツールとしては特にAdobe Edgeなどを使用しないで、テキストエディターで作成しております。

Creator: Nanako SAWA
How did you do it?
1. SVGから座標情報を取得
2. canvasで描画
3. 背景, アニメーションを追加

Creator: Shigeki Ohtsu
How did you do it? The title of this doodle is "Thank you the World from JAPAN". This doodle expresses our gratitude to the people in the world for their hearty support for Japan at the last disaster, with the Japanese traditional style of manner of "OJIGI". It's also showing ""Thank you"" tweets all over the world at the location of the Dymaxion map in the background.

Creator: Aiham Hammami
How did you do it? I have been previously creating an object oriented 2d canvas animation library so I used that to create a puzzle game in the shape of the Dymaxion map. It implements MVC design to separate concerns (UI and logic) so it makes the code easy to follow (i hope). I cut up all the photos into triangles manually, then I had to pinpoint exactly where on the rectangular image the triangle vertices were, so I could create accurate mouse overs. Enjoy.

Creator: Risa ITO
How did you do it? SVGとcss3を使って、


Creator: Valentyn Shybanov
How did you do it? All animations are done using CSS3 transitions - mostly no Javascript is used for it. Triangles are drawn using '-webkit-mask-image': -webkit-canvas()' trick (canvas as mask). Currently only Google Chrome supports CSS3 'mask-image' so doodle can be watched only on it. Simple quiet music is pre-generated and played by HTML5 Audio.

Creator: Anton Eprev
How did you do it? The idea is to show the Dymaxion map so that it would be like on ignition of a fluorescent lamp. The host country area and text letters continue to flicker after turning on. Requires browsers that support inline SVG.

Creator: Roman Fedorov
How did you do it? I really love this game and I really love Chrome and HTML5. I've made this doodle with great pleasure!

Creator: Mikhail Kalinin
How did you do it? This is the Memorize game. I used jQuery library with plugins. For best compatibility with all modern browsers, I used CSS3 2D transform instead of 3D transform.

Creator: Alexey Belozerov
How did you do it? I have used 2 HTML5 canvas objects as layers and performed 'destination-over' composition mode to make erasing effect.

Phoebe Peronto is a Developer Marketing Intern working to coordinate the launch of Google Developer Days 2011. She hails from UC Berkeley as a rising senior studying Political Science and Business, and is excited to work with the Google team for summer 2011.

Posted by Scott Knaster, Editor

Thursday, 18 August 2011
Facebook StumbleUpon Twitter Google+ Pin It

Latitude API helps your users find themselves

By Kenneth Leftin, Software Engineer

With the recent addition of OAuth 2.0 support for the Latitude API, it is now easier than ever to start writing applications that utilize users’ location history or current location if they have opted in to sharing this information.

This post includes some examples of how you can use the powerful Latitude API to make compelling location-based applications.

Location History

There are many interesting ways you can use location history to create an interesting app. For example, Latify shows my location history on my Android phone so I can easily keep track of where I’ve been. You can use location history to answer questions like "Where was I on September 17th?" or you can analyze location history to show interesting stats. You can also export location history to Google Fusion Tables.

The possibilities expand when you use location history in conjunction with other data sets. For example, you can show location history lined up with transaction history, RSS feeds, or photo albums so users can see exactly where they were for a particular purchase, news event, or photo.

Current Location

The Latitude API allows you to access a user’s current location from a mobile device or a web server. For example, Moveable Weather allows users to call a phone number that tells them the weather based on their current Latitude location.

If you’re writing a mobile group messaging app, you can use the Latitude API to let users opt in to location sharing, allowing everyone in the group to see everyone else’s current location, without needing any location logic in your app.

These are just a few examples of the features of the Latitude API, which also includes storing location history, accessing city level location, and deleting location history. Check out the documentation to get started, or try browsing featured applications to get an idea of what you can build.

Kenneth Leftin is a Software Engineer on the Google Latitude team. When he's not programming, he might be seen playing music around the San Francisco Bay Area.

Posted by Scott Knaster, Editor

Native Client brings sandboxed native code to Chrome Web Store apps

By Christian Stefansen, Native Client Team

Wouldn’t it be great if you could create web apps using your existing C and C++ code? Native Client lets you do just that, and it is now enabled for Chrome Web Store apps in Google Chrome’s beta channel.

Native Client apps live on the web platform, so you don’t need to create separate versions of your app for each operating system. Rather than relying on OS-specific APIs, Native Client apps use Pepper, a set of interfaces that provide C and C++ bindings to the capabilities of HTML5. This means that once you’ve ported your code to Native Client, it will work across different operating systems, and you only need to maintain one code base.

Today Native Client supports the Pepper APIs for 2D graphics, stereo audio, URL fetching, sandboxed local file access (File API), and asynchronous message passing to and from JavaScript. In future releases we will be adding support for hardware accelerated 3D graphics (OpenGL ES 2.0), fullscreen mode, networking (WebSockets and peer-to-peer connections), and much more. As new capabilities are added to HTML5 and Pepper, they will become available to Native Client.

This functionality does not come at the expense of security. To ensure that Native Client is as safe as JavaScript, Native Client code is isolated from the operating system by two nested security sandboxes: the Native Client sandbox and the Chrome sandbox. And unlike NPAPI plugins or ActiveX controls, Native Client apps do not have access to the underlying OS APIs.

We encourage you to start developing apps with Native Client. You can download the SDK and find tutorials, examples, API documentation, and our FAQ on the Native Client site. Once version 14 of Chrome hits stable channel, you’ll be able to upload your Native Client apps to the Chrome Web Store, where you can reach Chrome’s 160 million users.

The next milestone for Native Client is architecture independence: Portable Native Client (PNaCl) will achieve this by using LLVM bitcode as the basis for the distribution format for Native Client content, translating it to the actual target instruction set before running. Until then the Chrome Web Store will be the only distribution channel for Native Client apps. This will help us ensure that all Native Client apps are updated to PNaCl when it’s ready – and in the meantime avoid the spread of instruction set architecture dependent apps on the web. We’ll be providing updates on the progress of PNaCl on this blog.

Christian Stefansen is the Product Manager for Native Client. In his spare time, when he is not writing Native Client apps for fun, he likes playing tennis, playing the piano, and living as a travel writer in India for a couple of weeks at a time

Posted by Scott Knaster, Editor

Friday, 12 August 2011
Facebook StumbleUpon Twitter Google+ Pin It


By Scott Knaster, Google Code Blog Editor

Back in June we launched GoogleCL, an open-source utility that provides command line access to Google services. For our friends who live on the command line and think mice are something cats chase, GoogleCL provides a handy way to perform various tasks, such as posting to Blogger or creating an appointment with Google Calendar. Sample commands look like this:
$ google blogger post --blog "Lemurland blog" --title "Latest Madagascar trip" --tags "vacation, ring-tailed" trip_post.html 

$ google calendar add "Order palm tree tomorrow at 10 AM"
GoogleCL works with various other Google services, providing access to YouTube, Picasa, Docs, and Contacts without having to deal with that pesky graphical user interface. And now, thanks to Google intern Michael Sittig and our APIs Discovery Service, GoogleCL supports all Discovery-based APIs – a list that includes Tasks, Moderator, Books, URL Shortener, and many others. For example, you can use the URL Shortener API to create a new short URL like so:
$ google urlshortener insert --longUrl
As long as our fingers are firmly on the keyboard, let’s talk about words for a moment. The folks who make the Oxford Dictionaries have created Save the Words, a way to preserve wonderful but little-used English words. At Save the Words you can see these words, read their often-hilarious definitions, and agree to use them yourself to help obstrigillate this trend.

Finally, spend a moment taking a look at this article and then ask yourself: have explorers really found the Millennium Falcon at the bottom of the sea? (Spoiler alert: no.)

Even when they cover serious topics like Google APIs and purported spaceship wrecks, Fridaygram posts are just for fun. Each Fridaygram item must pass only one test: it has to be interesting to us nerds.

Thursday, 11 August 2011
Facebook StumbleUpon Twitter Google+ Pin It

Registration is now open for GDD Japan

By Phoebe Peronto, Developer Marketing Team

Registration continues to roll out for Google Developer Days! Following Monday’s announcement of GDD Argentina, Brazil, and Russia registration going live, GDD Japan registration is now open. You can access registration by visiting the newly launched GDD website Japan page and clicking on the “Register Now” link.

Registration for the other 4 GDD events is coming soon. Want more GDD? Visit the GDD 2011 website for event details, session updates, and, of course, registration.

Phoebe Peronto is a Developer Marketing Intern working to coordinate the launch of Google Developer Days 2011. She hails from UC Berkeley as a rising senior studying Political Science and Business, and is excited to work with the Google team for summer 2011.

Posted by Scott Knaster, Editor

Monday, 8 August 2011
Facebook StumbleUpon Twitter Google+ Pin It

Registration is open for GDD Argentina, Brazil, & Russia

By Phoebe Peronto, Developer Marketing Team

As promised, registration for our first Google Developer Day events is open! You can register by visiting the newly launched GDD website and clicking on the “Register Now” link for the event you're interested in.
Registration for the other 5 GDD events is coming soon, so stay tuned.

Crave more GDD news? Visit the GDD 2011 website at for event details, session updates, and, of course, registration.

Phoebe Peronto is a Developer Marketing Intern working to coordinate the launch of Google Developer Days 2011. She hails from UC Berkeley as a rising senior studying Political Science and Business, and is excited to work with the Google team for summer 2011.

Posted by Scott Knaster, Editor

Thursday, 4 August 2011
Facebook StumbleUpon Twitter Google+ Pin It

Prediction API: Tunable predictive models

By Travis Green, Product Manager

Over the last year, the Prediction API has given you more and more tools to make your apps smarter and teach them to adapt and learn. Today we're adding a frequently requested feature: the ability to adjust models to get better performance.

Historically, getting the right predictive model has required detailed knowledge of algorithmic behavior and experience with similar datasets, and a lot of guess-and-check. With the Prediction API, we ask you what behavior you want to see, and search across many algorithms to find the best-matching one.

How it works:
  1. Upload data to Google Storage for Developers.
  2. Ask the Prediction API to find a great predictive model.
  3. [new] Examine more detailed statistics about your model’s performance, including more training metadata and better accuracy statistics through a confusion matrix.
  4. Improve performance.
    1. Give your model more samples to learn from.
    2. Add in more information (see these samples).
    3. [new] Show the API what data is most important (categorical data only).

For those of you ready to get started, feel free to jump in through our newly updated code samples.

Travis Green's favorite part about his job is designing smart applications. In his spare time, he is in the great outdoors (looking for trouble).

Posted by Scott Knaster, Editor

Tuesday, 2 August 2011
Facebook StumbleUpon Twitter Google+ Pin It

Registration will open soon for our first Google Developer Day events

By Monica Tran, Developer Marketing Team

Wondering what to do with yourself while waiting for next year's Google I/O? Consider attending one of our Google Developer Day events, taking place in eight countries around the world September through November of 2011.

To learn more about Google Developer Day and get a preview of the sessions we’ll be running from Sao Paulo to Sydney and everywhere in between, visit our newly launched GDD 2011 website at Please note that sessions are subject to change as we continue to bring you the latest from Android, Chrome/HTML5, Cloud, and more.

Registration for our Brazil and Argentina events will open next week, with our HTML5 Open Call for Google Developer Day still accepting submissions until 8/8. Got your heart set on another Google Developer Day event? Registration for Google Developer Day will be open on the following dates:

8/8 - 8/19: Sao Paulo, Brazil
8/8 - 8/19: Buenos Aires, Argentina
TBD: Moscow, Russia
9/1 - 9/21: Prague, Czech Republic
8/11-9/12: Tokyo, Japan
8/22 - 9/2: Sydney, Australia
9/1 - 9/14: Tel Aviv, Israel
9/15 - 9/19: Berlin, Germany

Please note that these dates are tentative and are subject to change.

Google Developer Day will come to eight cities around the world in 2011, bringing you the future in web and mobile technologies. These one-day events feature deep technical content on Google platforms and products from the teams that work on them. Join us for the latest developments in Android, Chrome, HTML5, App Engine, and more in a city near you.

In the past four years, Monica Tran has been around the world, working as a Product Marketing Manager in Mountain View, London, and Tokyo. After a good run on Google I/O, Monica is back to lead the charge on Google Developer Day, happening in 8 cities worldwide in 2011.

Posted by Scott Knaster, Editor

Monday, 1 August 2011
Facebook StumbleUpon Twitter Google+ Pin It

Announcing Git Support for Google Code Project Hosting

By Dave Borowitz, Google Git Engineer, with thanks to Augie Fackler, Lucas Bergman, Jacob Lee, and Shawn Pearce

Cross-posted from the Google Open Source Blog

We’re pleased to announce today that in addition to supporting the Subversion and Mercurial version control systems, Google Code Project Hosting now supports Git. Git is a popular distributed version control system (DVCS) like Mercurial, and it is used by many popular projects including the Linux kernel and Android.

Now, when you create a project or visit your existing project’s Administration > Source tab, you have the option of choosing Git as your version control system. You’ll enjoy all the same great Google Project Hosting features, like project updates, advanced issue tracking, and an easy-to-use VCS-backed wiki—only now, you can do it with Git. You can also create an instant server-side clone of any existing Git repository by clicking the "Create a clone" button on the project’s checkout page.

For more information, including an introduction to Git and tips on converting existing Subversion and Mercurial repositories, see the new Git section of our support wiki.

Under the Hood
Since our original announcement of Mercurial support, Git has grown significantly more popular and user-friendly, and on the technical side, it has added an efficient "smart" HTTP protocol that fits with Google’s HTTP-based infrastructure. (Note that this feature is only available in version 1.6.6 and later.)

Like our Mercurial implementation, our Git implementation stores object data in a custom data store built on Bigtable, which provides us with efficient, scalable source code repositories with near-instantaneous replication to multiple datacenters around the world. To fit with our existing Python-based system, our Git server implementation is powered in part by Dulwich.

Posted by Scott Knaster, Editor