Learn more on the Official Google Blog.
The J. Paul Getty Museum collection comes alive with Google Goggles
Learn more on the Official Google Blog.
Google Sites owners: Sites now auto-optimizes for mobile devices
Posted by Luciano Cheng, Software Engineer
Highlights from our Google I/O Presentations
Now that things have settled down from last month’s Google I/O, we thought it would be a good time to highlight some of the technical talks given by the App Engine team. At this year’s I/O, we emphasized some of the big themes we’ve been focusing on this past year: availability and productionization of our platform, removing limits while maintaining performance at scale, and developing new APIs.
Availability and Productionization of our Platform
Since App Engine automatically handles all of the sharding and distribution of your application across datacenters, we thought it would be important to talk about the strategies we use to run and maintain our platform. These talks also give you an opportunity to meet some of the engineers who carry pagers so you don’t have to.
- More 9s Please: Under the Covers of the High Replication Datastore - We were excited to announce the HR Datastore in January, since it provides a high level of availability, even during unplanned outages, and even if an entire datacenter goes offline. HRD uses the paxos algorithm to distribute data across multiple datacenters. Alfred Fuller and Matt Wilder talk about the high level distribution strategy used and how this helps keep your app serving.
- Life in App Engine Production - Let’s face it - everyone has some great war stories about running live applications. And the stories of Google’s SRE team probably rank with the best of them. Michael Handler and Alan Green talk about what goes right and what can go wrong running in Production.
Removing Limits while maintaining performance at scale
How can you design your application so you can transition from serving 1 user to 1 million users with the minimum amount of work? How do you make sure your user experience stays consistent for those users?
- App Engine Backends - At I/O this year we launched App Engine Backends, which allow you to write long running processes on App Engine. Crunch numbers, process data, and build large in-memory models! Justin Haugh and Greg Darke give an overview of this new feature and cover best practices.
- Scaling App Engine Applications - We always get lots of question on what it means and how it works to scale an app using App Engine (hint: low latency is the key!). Guido van Rossum and Justin Haugh explain how instances work and cover best practices for scaling your application.
Developing New APIs
- Full Text Search - It took 8 days after App Engine’s initial launch for this feature request to be filed - and now work on the Full Text Search API is nearing completion. Bo Majewski and Ged Ellis give a preview of the upcoming App Engine Full Text Search API.
- App Engine MapReduce- So you just want to analyze 5TB of data? You’ll probably need MapReduce to do so! Mike Aizatsky talks about the progress being made on the App Engine MapReduce framework and how you can use it to generate reports for your data.
- Large-scale Data Analysis using the App Engine Pipeline API - Once you’ve written one MapReduce, you’ll probably want to write more, and then you’ll need a way to manage your application’s analysis pipeline. In this talk, Brett Slatkin discusses a lightweight API for managing MapReduce workflows.
Our team always enjoys participating in Google I/O because our engineers get to share their vision and discuss their work with a large audience. If you are interested in what some of our customers had to say at I/O, check out the Google Enterprise Blog. Of course, with App Engine featured in 23 talks for Google I/O, we couldn’t cover them all here. See the complete session list for I/O and discover all the talks on App Engine and more!
Posted by The App Engine Team
Google Goggles learns Russian and gets a new view
Russian optical character recognition (OCR) and translation
Since Google Goggles first launched in 2009, it has been able to recognize and translate text in a number of different languages, as long as the language used Latin characters. With the launch of OCR for Russian, Goggles is now able to read Cyrillic characters. Goggles will recognize a picture of Russian text and allow you to translate the text into one of over 40 other languages. Russian OCR is also available for users of Google Goggles on the Google Search app for iOS. Очень полезно!
Map view of your search history
If you’ve enabled search history on Goggles, your history contains a list of all the images that you’ve searched for, as well as some information about where you performed the search if you chose to share your location with Google. Sometimes this can be a pretty long list, so we wanted to give you another way to sort and visualize your Goggles results.
We’ve added a map view, which shows your Goggles image search history on a map so you can quickly zoom and pan to find a query from a particular location.
Copy contact and text results to clipboard
Finally, imagine that you wanted to grab a URL or telephone number from a sign and email it to yourself. Now, Goggles gives you the option of copying the recognized text to your phone’s clipboard, allowing you to paste the test into a number of applications.
To try these new features download Google Goggles 1.5 from Android Market, or scan the QR code below with your phone.
Posted by George Nachman, Software Engineer
App Engine 1.5.1 Release
It’s been about a month since Google I/O 2011, so we thought it was time for another release. This month we are releasing ProtoRPC as an official Python API, making the High Replication Datastore (HRD) available in the SDK to help developers better understand the consistency model, adding presence to the Channel API, plus a few more goodies. Check them out below:
Serving Changes
- Geolocation Header: App Engine will now include a header with every client request that represents a best-effort attempt to identify the country from which the request originated. This header, “X-AppEngine-country,” can allow you to customize content based on the origin of the user. We hope this means no more “Select your location” drop downs for users!
Updated Java and Python APIs
- Channel API (Presence Support): You can now configure an inbound service for your application to detect user presence for the Channel API. This lets you take an action when a user connects or disconnects from the Channel.
- Images API (WebP Support): The Images API now supports WebP images. If you haven’t checked it out, WebP is a new image format that Google open sourced earlier this year which provides lossy compression for images and can be up to 39% smaller than JPEG images of a similar quality!
New Python APIs
- ProtoRPC: ProtoRPC is an open source framework for creating a well defined and easy to use web-based RPC service. While ProtoRPC is similar to using Google Protocol Buffers to define services, the goal of ProtoRPC is to make it easy for developers to start defining web based services, while still allowing those services to scale and evolve over time.
Datastore
- High Replication in the SDK: Since releasing the High Replication Datastore, we’ve wanted to provide tools that help developers understand and test the new consistency model while developing their applications. The 1.5.1 SDKs for Java and Python can now emulate the HRD consistency model. This means that now, by setting the appropriate SDK config options, queries across entity groups will occasionally return results that don’t reflect the most recent data written. This should allow you to develop your application to be more resilient to this consistency model.
As with all releases, 1.5.1 contains some additional small features and many bugfixes, the full list of which is available in our release notes for Python and Java. Hopefully you’ll find this release useful. Either way feel free let us know what you think by posting in the App Engine group.
Thanks!
The App Engine Team
Getting Started with the Tasks API on Google App Engine
Last month, we launched the Google Tasks API, which received a very warm welcome in the developer community. Google Tasks stores tasks that users enter via Gmail, their mobile device, calendar, or iGoogle homepage. The Google Tasks API provides developers with a powerful set of API endpoints for searching, reading, and updating Google Tasks content and metadata.
To help all of you get started using the Google Tasks API, we wrote a new hands-on tutorial: Getting Started with the Tasks API on Google App Engine. In this tutorial, you will learn how to:
- Create a simple App Engine app using the Google APIs Client Library.
- Provide Google Tasks users a mechanism to authorize your app to access their tasks.
- Make authorized requests to the Tasks API.
By the end of the tutorial, you’ll have an App Engine app that creates a stylized list of tasks for a specific user delivered from the Tasks API:

Check out the tutorial and ask any questions you have in the Google Tasks API forum.
Posted by Johan Euphrosine, Developers Program Engineer
Three new updates to Google Sync for iPhone and iPad
We don’t have to tell you that the workforce is increasingly mobile, and that workers on the go expect to be fully productive on email and calendar from their mobile devices. But we do want to tell you that we have a few new features for Google Sync users that will help employees work efficiently from anywhere on their iPhones and iPads.
Google Sync keeps your phone’s native mail and calendar apps in sync with your Gmail, Calendar and Contacts. Today, three new updates to Google Sync for iOS will allow you to:
- Search all your emails in Gmail, not just the emails stored locally by the iOS mail app.
- Accept, decline or edit calendar events from the iOS calendar app.
- Send email from the address you want. We recognize that some of you manage multiple email addresses from a single Gmail account.Gmail’s “Send Mail as” feature lets you send messages with another email address listed as the sender instead of your Gmail address, e.g. joe@altostrat.com instead of joe@gmail.com. Now the iOS mail app will respect these settings.
For more information, visit Setting up Google Sync with your iOS device
Posted by Steve Hardt, Software Engineer
Introducing new features to mobile search
And I'm not just talking about looking up basic information like the weather or a stock quote, which is what people used to do in the early days of mobile search. As mobile devices have become more powerful and connected to faster networks, smartphone users are doing a surprisingly diverse set of search tasks -- from simple lookups, to tasks that involve multiple complex searches.
But it's not always easy to search from a mobile device, especially with the smaller screens and keyboards. We’ve worked relentlessly to make mobile search faster, easier, and more intuitive with features like autocomplete, Voice Search, Google Goggles, Google Instant and Instant Previews on mobile. Our work in mobile has now inspired desktop innovations like Voice Search and Search by Image, two new ways to search from your desktop, announced today at our Inside Search media event. We’re also excited to introduce two new mobile features designed to make mobile search even better.
With more searches happening when people are on the go, we’ve noticed an increase in searches for nearby places. To make it easier for people to search for what’s around them, we’ve introduced new shortcuts to commonly searched local categories, like restaurants, coffee shops and bars, in the form of icons on the mobile google homepage (www.google.com):
Shortcut icons appear at the bottom of the mobile homepage. Tap “More”, to select from additional popular categories like shopping, ATMs, gas stations, etc., a new part of our simplified Places homepage (www.google.com/m/places).
On the results page, you'll see a map with markers for your current location and places around you. When you scroll through the results, the map remains at the top of the page and adjusts automatically to the listing you are looking at. That way, you can see the listing information while still getting location context from the map. Tapping on a result will quickly show you more about a place including reviews and other useful details. Discovering great places nearby has never been easier on your mobile phone.
If you would like to learn more about today’s announcements, visit the Inside Search website, our new one-stop shop for Google search tips, features and an under the hood look at our technology. Check the site later today and you’ll find a recording of the event, answers to common questions and links to other blogs posts today on the Official Google Blog, Inside Search blog and the Chrome blog.
We hope you enjoy these new search features and we look forward to bringing you further improvements by making mobile search even faster, easier, and more useful.
Know when your bus is late with live transit updates in Google Maps
(Cross-posted on the Official Google Blog)
Often when I’m taking public transit, I arrive at my stop on time only to anxiously check my watch and look down the street for my bus, which is running late once again. Those extra minutes I’m forced to wait seem like an eternity, and the only information I can access on my phone is when the bus was supposed to arrive.
Starting now, Google Maps for mobile and desktop can tell you when your ride is actually going to arrive with new live transit updates. We partnered with transit agencies to integrate live transit data in four U.S. cities and two European cities: Boston, Portland, Ore., San Diego, San Francisco, Madrid and Turin.
When you click on a transit station or plan a transit route with Google Maps and there are delays or alerts related to your trip, you’ll now see “live departure times” (indicated with a special icon) and service alerts.
Live transit departure times after tapping on a station
Live departures and alerts on desktop
We’re working with our public transit partners to help them provide live data to more people in more cities. You can get live transit updates in the latest version of Google Maps for mobile (requires Android 1.6+), as well as Google Maps on all supported desktop and mobile browsers.
Posted by Sasha Gontmakher, Software Engineer








