Friday, 21 October 2011
Facebook StumbleUpon Twitter Google+ Pin It

Fridaygram: small world, little robots, tiny feature

Author Photo
By Scott Knaster, Google Code Blog Editor

Satellite images make the world seem smaller by letting us view images of buildings and neighborhoods that are thousands of miles away. The satellite views in Google Earth and Google Maps are updated periodically. Want to know when that happens? This week we added support for 43 more languages to Follow Your World, a web site that emails you when satellite images are updated for anywhere you like. Just enter a location and your email address, and you’ll be notified when a new aerial image is available.

Back on earth, engineers at UC Berkeley’s Biomimetic Millisystems Lab have an awesome job: they get to build little robot bugs. Recently, the team added wings to its 10-centimeter Dynamic Autonomous Sprawled Hexapod (DASH) robot to see how the alteration would affect mobility. The plastic wings helped DASH move faster and climb steeper hills, among other improvements.

Finally, here’s a tiny new feature: if you do a Google search for ip, you’ll see your computer’s IP address. Handy!

And also: check out today’s Google Doodle, which honors the birthday of Mary Blair, a Disney Legend known for her work on It’s a Small World and many other theme park and movie projects. (If you’re reading this after October 21st, you can see the Doodle on our archive page within a few days.)

Small explanation: Fridaygram posts are lighter than our usual stuff, meant to provide a little geeky fun at the end of the week.

Updated at 4:30 PM to say that Follow Your World added language support this week, rather than launching.

Tuesday, 18 October 2011
Facebook StumbleUpon Twitter Google+ Pin It

Designing an infinite digital bookcase

By Aaron Koblin, Data Arts Team and Bill Schilit, Research

Cross-posted from the Official Google Blog

As digital designers, we often think about how to translate traditional media into a virtual space. Recently, we thought about the bookcase. What would it look like if it was designed to hold digital books?

A digital interface needs to be familiar enough to be intuitive, while simultaneously taking advantage of the lack of constraints in a virtual space. In this case, we imagined something that looks like the shelves in your living room, but is also capable of showcasing the huge number of titles available online—many more than fit on a traditional shelf. With this in mind, we designed a digital bookcase that’s an infinite 3D helix. You can spin it side-to-side and up and down with your mouse. It holds 3D models of more than 10,000 titles from Google Books.

The books are organized into 28 subjects. To choose a subject, click the subject button near the top of your screen when viewing the bookcase. The camera then flies to that subject. Clicking on a book pulls it off the shelf and brings it to the front and center of the screen. Click on the high-resolution cover and the book will open to a page with title and author information as well as a short synopsis, provided by the Google Books API. All of the visuals are rendered with WebGL, a technology in Google Chrome and other modern browsers that enables fast, hardware-accelerated 3D graphics right in the browser, without the need for a plug-in.

If you’ve finished your browsing and find a book you want to read, you can click the “Get this book” button on the bottom right of the page, which will send you to that book’s page on Or, you can open the title on your phone or tablet via the QR code that’s in the bottom left corner of the page, using a QR code app like Google Goggles. You can also browse just free books by selecting the “Free Books” subject in the subject viewer.

Bookworms using a modern browser can try the WebGL Bookcase today. We recommend using Google Chrome and a fast computer with a powerful graphics card. Even with new hardware, this interface is experimental and may not work on some machines. For more creative browser experiments, check out Chrome Experiments, a gallery of more than 300 creative projects made by developers and artists from around the world, many utilizing WebGL.

Posted by Scott Knaster, Editor

New Text-to-Speech API for Chrome extensions

Author Photo
By Dominic Mazzoni, Software Engineer

Interested in making your Chrome Extension (or packaged app) talk using synthesized speech? Chrome now includes a Text-to-Speech (TTS) API that’s simple to use, powerful, and flexible for users.

Let’s start with the "simple to use" part. A few clever apps and extensions figured out how to talk before this API was available – typically by sending text to a remote server that returns an MP3 file that can be played using HTML5 audio. With the new API, you just need to add "tts" to your permissions and then write:
chrome.tts.speak('Hello, world!');
It’s also very easy to change the rate, pitch, and volume. Here’s an example that speaks more slowly:
chrome.tts.speak('Can you understand me now?', {rate: 0.6});
How about powerful? To get even fancier and synchronize speech with your application, you can register to receive callbacks when the speech starts and finishes. When a TTS engine supports it, you can get callbacks for individual words too. You can also get a list of possible voices and ask for a particular voice – more on this below. All the details can be found in the TTS API docs, and we provide complete example code on the samples page.

In fact, the API is powerful enough that ChromeVox, the Chrome OS screen reader for visually impaired users, is built using this API.

Here are three examples you can try now:

    TTS Demo (app)
    Talking Alarm Clock (extension)
    SpeakIt (extension)

Finally, let's talk about flexibility for users. One of the most important things we wanted to do with this API was to make sure that users have a great selection of voices to choose from. So we've opened that up to developers, too.

The TTS Engine API enables you to implement a speech engine as an extension for Chrome. Essentially, you provide some information about your voice in the extension manifest and then register a JavaScript function that gets called when the client calls chrome.tts.speak. Your extension then takes care of synthesizing and outputting the speech – using any web technology you like, including HTML5 Audio, the new Web Audio API, or Native Client.

Here are two voices implemented using the TTS Engine API that you can install now:

    Lois TTS - US English
    Flite SLT Female TTS - US English

These voices both use Native Client to synthesize speech. The experience is very easy for end users: just click and install one of those voices, and immediately any talking app or extension has the ability to speak using that voice.

If a user doesn't have any voices installed, Chrome automatically speaks using the native speech capabilities of your Windows or Mac operating system, if possible. Chrome OS comes with a built-in speech engine, too. For now, there's unfortunately no default voice support on Linux – but TTS is fully supported once users first install a voice from the Chrome Web Store.

Now it's your turn: add speech capability to your app or extension today! We can't wait to hear what you come up with, and if you talk about it, please add the hashtag #chrometts so we can join the conversation. If you have any feedback, direct it to the Chromium-extensions group.

Dominic Mazzoni is a Software Engineer working on Chrome accessibility. He's the original author of Audacity, the free audio editor.

Posted by Scott Knaster, Editor

Monday, 17 October 2011
Facebook StumbleUpon Twitter Google+ Pin It

Google Code-in: Are you in?

By Carol Smith, Google Code-in Program Manager, Open Source Team

Cross-posted from the Google Open Source Blog

Listen up, future coders of the world: today we’re launching the second annual Google Code-in competition, an open source development contest for 13-17 year old students around the world. The purpose of the Google Code-in competition is to give students everywhere an opportunity to explore the world of open source development. We not only run open source software throughout our business, we also value the way the open source model encourages people to work together on shared goals over the Internet.

Open source development involves much more than just computer programming, and the Google Code-in competition reflects that by having lots of different tasks to choose from. We organize the tasks into eight major categories:

1. Code: Writing or refactoring code
2. Documentation: Creating and editing documents
3. Outreach: Community management and outreach, as well as marketing
4. Quality Assurance: Testing and ensuring code is of high quality
5. Research: Studying a problem and recommending solutions
6. Training: Helping others learn more
7. Translation: Localization (adapting code to your region and language)
8. User interface: User experience research or user interface design and interaction

On November 9, we’ll announce the participating mentoring organizations. Mentoring organizations are open source software organizations chosen from a pool of applicants who have participated in our Google Summer of Code program in the past. Last year we had 20 organizations participate.

Last year’s competition drew 361 participating students from 48 countries, who worked for two months on a wide variety of brain-teasing tasks ranging from coding to video editing, all in support of open source software. In January, we announced the 14 grand prize winners, who we flew to our headquarters in Mountain View, California to enjoy a day talking to Google engineers and learning what it’s like to work at Google, and another day enjoying the northern California sights and sun.

Visit the Frequently Asked Questions page on the Google Code-in site for more details on how to sign up and participate. Our goal this year is to have even more pre-university students in the contest than last time around, so help us spread the word, too.

Stay tuned to the contest site and subscribe to our mailing list for more updates on the contest. The Google Code-in contest starts on November 21, 2011, and we look forward to seeing the clever and creative ways all of the participants tackle their open source challenges.

Carol Smith is Google Code-in Program Manager, Open Source Team

Posted by Scott Knaster, Editor

Save the date for Google I/O 2012

Author Photo
By Monica Tran, Developer Marketing Team

UPDATE 11/28/11: We have moved the dates of Google I/O 2012 so that we can extend the conference to three days. The new dates are June 27-29, 2012. For full details, please see the announcement post.

This year’s Google I/O saw 1 million developers join us from around the world at Moscone Center, via I/O Live, and at our I/O Extended viewing parties. As we prepare to round the corner into 2012, mark your calendars: Google I/O 2012 will be returning to Moscone Center West in San Francisco on April 24-25 (UPDATE: now June 27-29).

Registration details will be coming soon, but for a preview of what’s to come, check out videos from last year’s event, as well as photos from our Google Developer Day events, currently taking place in eight cities around the world. Keep following us here on the Google Code Blog for the latest.

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

Friday, 14 October 2011
Facebook StumbleUpon Twitter Google+ Pin It

Fridaygram: we want your videos, learn math from chocolate, puzzling with wood

Author Photo
By Scott Knaster, Google Code Blog Editor

Last month we asked you to upload videos telling us what it’s like to be a Google developer. We really want to hear from you, so we’re reminding you again just in case you haven’t submitted your video yet. This is your chance to let us know what inspires you and what you’d like from us, so please fire up your phones and cameras, and visit our developer stories page for more info.

We hope you come up with some clever ideas for your video. Here’s something you can use for creative inspiration. Tim Chartier of Davidson College takes advantage of candy bars and chocolate chips for math instruction, starting with simple concepts that lead toward fundamental calculus. And when he’s done, there’s dessert.

After you’ve eaten your math homework, here’s a puzzle: see if you can figure out how this block of wood got a nail through it. When you think you know the answer (or you give up), watch the video to see how it was done. So there’s your potential weekend project.

Fridaygram posts are just for fun - and sometimes they tell you about cool ways to mash up calculus with chocolate. Each Fridaygram item must pass only one test: it has to be interesting to us nerds.

Wednesday, 12 October 2011
Facebook StumbleUpon Twitter Google+ Pin It

Enhancing the Google APIs Console, one page at a time

author photo
author photo

By Ion Constantinescu and Chris Cartland, APIs Console Team

It's been nearly one year since we launched the Google APIs Console to help you manage API usage across your sites and apps. We've had some great feedback about what you like (and don't), and are working hard every day to improve the overall experience. To this end, we want to highlight a number of recent enhancements.

Introducing v2 of the Google APIs Console Traffic Reports Page

The Google APIs Console contains a list of traffic reports that display information about how the APIs enabled per project are being used. Based on customer feedback, we've made a few enhancements:
  • We have consolidated all API traffic in a single display.
  • We now compare traffic between multiple APIs in a single project.
  • We now show demographic and usage data about your API requests.
New traffic reports page

We believe we have made the Traffic Reports page cleaner and more compact without losing any functionality. We already have a list of enhancements we want to make to the page, and we would love to hear from you to help drive our prioritization.

Demographic data is available from traffic reports

Introducing the Google APIs Console Dashboard

You told us that you want to jump into a project's page and see more of a dashboard that describes what's happening on your project. You said you want to see which services are enabled, the availability of said services, general project administration, and a quick link to how much the project costs to run.

New APIs Console Dashboard

Our new Dashboard page is the first step in delivering on this experience. We will continue to enhance the Dashboard based on your collective feedback, so please take a look and let us know what you think.

New APIs Available in the Google APIs Console

We'd also like to announce some APIs are now available in the Console:

Web Fonts Developer API: this gives access to the metadata available for all families served by Google Web Fonts. You can create dynamic apps that can query Google Web Fonts and get an accurate list of the families currently available.

Google Orkut v2 REST API: this enables you to access select Orkut features. This API works like an extension of the JSON-RPC off-site application API, although it uses a different protocol.

Google Analytics Management API v3: this provides read-only access to Google Analytics configuration data. With the Management API you can list all the Account, Web Property and Profile information for a user, retrieve a Profile ID to use with the Data Export API, determine which goals are active and access their configured names, and retrieve a user's Custom Segments to apply them to Data Export API queries.

Blogger JSON API: this allows client applications to view and update Blogger content in the form of Google Data API feeds. Your client application can use the Blogger Data API to create new blog posts, edit and delete existing blog posts, and query for blog posts that match particular criteria.

We will continue to make changes and update our systems to make your development experience as great as possible. As always, if you have any questions, comments, or concerns, please contact us.

Ion Constantinescu is a Google Software Engineer working on the Google APIs Console. He has an academic background in Artificial Intelligence in the field of web service technologies.

Chris Cartland is a former Google Associate Product Manager Intern who worked on the Google APIs Console. He is currently helping CalSol - UC Berkeley's Solar Vehicle Team that designs and builds solar cars capable of racing at highway speeds - prepare to compete in the 2011 Veolia World Solar Challenge in Australia.

Posted by Scott Knaster, Editor

Tuesday, 11 October 2011
Facebook StumbleUpon Twitter Google+ Pin It

App Engine Premier Accounts and a new release

By Greg D'Alesandre, App Engine team

Cross-posted from the Google App Engine Blog

2011 has seen some exciting releases for App Engine. As the days get shorter, the weather gets colder, and all that Halloween candy starts tempting everyone in the grocery store, we’ve been hard at work on our latest action-packed release.

Premier Accounts

When choosing a platform for your most critical business applications, we recognize that uptime guarantees, easy management and paid support are often just as important as product features. So today we’re launching Google App Engine premier accounts.  For $500 per month (not including the cost to provision internet services), you’ll receive:
  • Premium support (see the 
  • Technical Support Services Guidelines for details).
  • A 99.95% uptime Service Level Agreement (see the draft agreement; the final agreement will be in the signed offline agreement).
  • The ability to create an unlimited number of apps on your premier account domain.
  • No minimum monthly fees per app. Pay only for the resources you use.
  • Monthly billing via invoice.
To sign up for a premier account, please contact our sales team at  

Python 2.7

PIL? NumPy? Concurrent requests? Python 2.7 has it all, and today we’re opening up Python 2.7 as an experimental release. We’ve put together a list of all the known differences between the current 2.5 runtime and the new runtime.

Overall Changes

We know that bumping up against hard limits can be frustrating, and we’ve talked all year about our continued push to lift our system limits. With this release we are raising several of these:
  • Request Duration: The frontend request deadline has been increased from 30 seconds to 60 seconds. We’ve increased the maximum URLFetch deadline to match from 10 seconds to 60 seconds.
  • File limits: We’ve increased the number of files you can upload with your application from 3,000 to 10,000 files, and the file size limit has also been increased from 10MB to 32MB.
  • API Limits: Post payloads for URLFetches are now capped at 5MB instead of 1MB.
We’re also announcing several limited preview features and trusted tester programs:
  • Cloud SQL Preview: We announced last week that we are offering a preview of SQL support in App Engine. Give it a try and let us know what you think.
  • Full-text Search: We are looking for early trusted testers for our long-anticipated Full-Text Search API. Please fill out this form if you’re interested in trying it out.
  • Conversion API: Ever wanted to convert from text to PDF in your App? Then consider signing up as a trusted tester for the Conversion API.
  • Cross Group (XG) Transactions: For those who need transactional writes to entities in multiple entity groups (and that's everyone, right?), XG Transactions are just the thing. This feature uses two phase commit to make cross group writes atomic just like single group writes.
Platform Improvements
Of course, these are just the high level changes. This release is packed full of features and bug fixes, and as always, we welcome your feedback in the group.

Greg D'Alesandre is now the Senior Product Manager for App Engine after coming back from riding the Google Wave in Sydney. And he's obsessed with chocolate, no, seriously, obsessed.

Posted by Scott Knaster, Editor

Google Prediction API graduates from labs, adds new features

Author Photo
By Zachary Goldberg, Product Manager

Since the general availability launch of the Prediction API this year at Google I/O, we have been working hard to give every developer access to machine learning in the cloud to build smarter apps. We’ve also been working on adding new features, accuracy improvements, and feedback capability to the API. Today we take another step by announcing Prediction v1.4. With the launch of this version, Prediction is graduating from Google Code Labs, reflecting Google’s commitment to the API’s development and stability. Version 1.4 also includes two new features:
  • Data Anomaly Analysis
    • One of the hardest parts of building an accurate predictive model is gathering and curating a high quality data set. With Prediction v1.4, we are providing a feature to help you identify problems with your data that we notice during the training process. This feedback makes it easier to build accurate predictive models with proper data.
  • PMML Import
    • PMML has become the de facto industry standard for transmitting predictive models and model data between systems. As of v1.4, the Google Prediction API can programmatically accept your PMML for data transformations and preprocessing.
    • The PMML spec is vast and covers many, many features. You can find more details about the specific features that the Google Prediction API supports here.

We’re looking forward to seeing what you create with these new capabilities!

Feel free to find us and ask questions about these new features on our discussion group or submit feedback via our feedback form.

Zachary Goldberg is Product Manager for the Google Prediction API. He has a strange fascination with the Higgs Boson.

Posted by Scott Knaster, Editor

Google Cloud Storage is out of Code Labs, with new features and lower price

Author Photo
By Navneet Joneja, Product Manager for Google Cloud Storage

Google Storage for Developers is now out of Code Labs, and has a new name: Google Cloud Storage. In addition, we're also happy to announce some new features, and a significant price reduction.

App Engine File API Support

When we opened the service to all this summer, many of our customers asked for an easier way to use Google Cloud Storage with their App Engine applications. In response to your feedback, you can now read and write your data via the App Engine Files API, enabling you to quickly build your content management tools, data sharing applications, web games and more using the powerful combination of App Engine and Cloud Storage. This feature is experimental and currently Python-only, but we’re working on adding Java support and additional features.

Usage Information

We’re introducing a new API that gives you access to detailed usage information (including network access and storage use data). You can use this feature to analyze your usage, integrate with your analysis systems and build your own value-added applications using Google Cloud Storage. This feature is currently experimental.

Lower Prices

We're no longer charging for upload bandwidth into the Google cloud. In addition, we’re lowering our prices across the board and introducing volume discounts for our larger users. We are committed to offering an extremely high quality of service to all our customers. As the product has evolved, we’ve found ways to offer the same great service at a lower cost, so now our prices are lower too. For example, under our new prices, a customer storing a hundred terabytes of data, reading twenty terabytes and writing ten terabytes a month would pay approximately 40% less a month. The difference is even greater for customers with higher usage. Our new prices are retroactive to the beginning of October. Please see our updated pricing here.

As always, we welcome your feedback in our discussion group. If you haven’t yet tried Google Cloud Storage, you can sign up and get started here.

Navneet Joneja loves being at the forefront of the next generation of simple and reliable software infrastructure, the foundation on which next-generation technology is being built. When not working, he can usually be found dreaming up new ways to entertain his intensely curious one-year-old.

Posted by Scott Knaster, Editor

Monday, 10 October 2011
Facebook StumbleUpon Twitter Google+ Pin It

Dart: a language for structured web programming

Author Photo
By Lars Bak, Software Engineer, Dart Team

Cross-posted on the Chromium Blog

Today we are introducing an early preview of Dart, a class-based optionally typed programming language for building web applications. Dart’s design goals are:
  • Create a structured yet flexible language for web programming.
  • Make Dart feel familiar and natural to programmers and thus easy to learn.
  • Ensure that Dart delivers high performance on all modern web browsers and environments ranging from small handheld devices to server-side execution.
Dart targets a wide range of development scenarios: from a one-person project without much structure to a large-scale project needing formal types in the code to state programmer intent. To support this wide range of projects, Dart has optional types; this means you can start coding without types and add them later as needed. We believe Dart will be great for writing large web applications.

Dart code can be executed in two different ways: either on a native virtual machine or on top of a JavaScript engine by using a compiler that translates Dart code to JavaScript. This means you can write a web application in Dart and have it compiled and run on any modern browser. The Dart VM is not currently integrated in Chrome but we plan to explore this option.

The language comes with a set of basic libraries and tools for checking, compiling, and running Dart code, all of which will evolve further with your participation. We've made the language and preliminary tools available as open source on Check out the site to give feedback, learn more about Dart, and participate in its development.

We look forward to rapidly evolving Dart into a solid platform for structured web programming.

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

Posted by Scott Knaster, Editor

Thursday, 6 October 2011
Facebook StumbleUpon Twitter Google+ Pin It

Google Cloud SQL: your database in the cloud

Author Photo
By Navneet Joneja, Product Manager for Google Cloud SQL

Cross-posted from the Google App Engine Blog

One of App Engine’s most requested features has been a simple way to develop traditional database-driven applications. In response to your feedback, we’re happy to announce the limited preview of Google Cloud SQL.

You can now choose to power your App Engine applications with a familiar relational database in a fully-managed cloud environment. This allows you to focus on developing your applications and services, free from the chores of managing, maintaining and administering relational databases.

Google Cloud SQL brings many benefits to the App Engine community:
  • No maintenance or administration - we manage the database for you.
  • High reliability and availability - your data is replicated synchronously to multiple data centers. Machine, rack and data center failures are handled automatically to minimize end-user impact.
  • Familiar MySQL database environment with JDBC support (for Java-based App Engine applications) and DB-API support (for Python-based App Engine applications).
  • Comprehensive user interface for administering databases.
  • Simple and powerful integration with Google App Engine.
The service includes database import and export functionality, so you can move your existing MySQL databases to the cloud and use them with App Engine.

Cloud SQL is available free of charge for now, and we will publish pricing at least 30 days before charging for it. The service will continue to evolve as we work out the kinks during the preview, but let us know if you’d like to take it for a spin.

Navneet Joneja loves being at the forefront of the next generation of simple and reliable software infrastructure, the foundation on which next-generation technology is being built. When not working, he can usually be found dreaming up new ways to entertain his intensely curious one-year-old.

Posted by Scott Knaster, Editor

Tuesday, 4 October 2011
Facebook StumbleUpon Twitter Google+ Pin It

Google+ APIs: now with Search and more

By Jordanna Chord, Software Engineer, Google+ API Team

Cross-posted with the Google+ Platform Blog

Thank you to all of you who tried out our first Google+ API release and let us know how you were using it. And thank you also to those of you who asked for more. In the spirit of releasing early and often, today we’ve released some of the new features that you requested.

Search for it

Last month we launched search in Google+, and now it’s available in the API. You can search for public posts using the new method by sending the following HTTP request:

This method searches across the body and comments of public posts. It returns the following JSON encoded output (excerpted for brevity):
"kind": "plus#activityFeed",
"title": "Plus Search for cookie recipes",
"updated": "2011-09-30T16:57:34.479Z",
"id": ",2010:buzz-search-feed:x4rIYTKpR7NZCL8Id8RHXQ",
"items": [
"kind": "plus#activity",
“id”: “123”,
"title": "You have to try these out.",
"object": {
"objectType": "note",
"content": "I’m baking halloween cookies!",
"kind": "plus#activity",
“id”: “456”,
"title": "Cookies",
"object": {
"objectType": "note",
"content": "Cookies and milk for dinner. Don’t judge me.",

You can search for people by using the method:


This searches across public profile information including fields such as name, bio, location, tag line, and description.

The rest of the conversation

Our first API release let you retrieve public posts. We’ve now added ways for you to see how people are publicly engaging with those posts -- you can find out who reshared a post or who +1’d a post, and you can read the comments on a post.

The new method people.listByActivity supports retrieving resharers and +1’ers by sending the following HTTP requests:

And comments can be retrieved by the new comments.list and comments.get methods:

Tell us what you think

As an API developer, I love seeing what people build on top of the APIs I’ve worked on. We have been reading your posts on the Discussion Board and issue tracker and I am excited to see more of your creative ideas. We will continue incorporating your feedback into our design discussions, so please keep it coming.

Follow the conversation on Google+.

Jordanna Chord is a Software Engineer on the Google+ API Team

Posted by Scott Knaster, Editor