We know that developers are always interested in learning about new APIs and best practices for existing ones. And, one of the best ways to learn is face to face interaction with an expert in the subject.

Your friendly neighborhood Google Developer Relations team members work everyday with the APIs you care about. We host, as well as attend, a number of events around the world to help as many developers as possible throughout the year. However, it hasn’t been easy for interested developers to find relevant events close to them.

We also realized that while many developers have met at least a couple of our Developer Advocates, it’s hard to tie an Advocate to their API expertise.

Enter the Advocate Bios and Developer Events pages.

The Advocates Bios page provides names, pictures and short descriptions of Developer Relations team members. You can filter them by what they work on and/or where they’re based out of.

The Developer Events page is a mashup of the Calendar and Maps APIs, running on an App Engine backend. Want to know about upcoming Android events in Prague? Or whether Patrick Chanezon is speaking at the GDD in Munich on Nov 9th? (He is!) You can do all of that and more with the Developer Events page.

Both the bios and the events pages are conveniently linked under the Developer Resources section on the Google Code home page.

We hope to see you at the events!

If you're reading this post, we know your passion is coding. You thrive when given the opportunity to tackle a challenge, and enjoy the rush of applying your knowledge and creativity to approach a problem. Once solved, there's nothing like the satisfaction that comes from knowing you've accomplished something great.

That's why we are excited to announce Google Code Jam 2010 to the true die-hard coding fans. Google Code Jam, powered by Google App Engine, is our annual programming competition, where thousands of coders around the world attack algorithmic problems in several 2.5-hour online rounds. If you make it through the first four rounds, you'll be flown to our on-site finals, to be held for the first time at the Google office in Dublin! Once there, you will compete with 24 other top coders for the $5,000 first prize -- and the coveted title of Code Jam champion.

We don't want you to miss out on any of the action, so we are announcing some important dates for Google Code Jam 2010. Mark your calendars:

Wednesday, April 7, 2010 | 19:00 UTC | Registration Begins
Friday, May 7, 2010 | 23:00 UTC | 24-hr Qualification Round Begins
Saturday, May 8, 2010 | 23:00 UTC | Registration Deadline & 24 hr Qualification Round Ends
Saturday, May 22, 2010 | 1:00 UTC | Online Round 1: Sub-Round A
Saturday, May 22, 2010 | 16:00 UTC | Online Round 1: Sub-Round B
Sunday, May 23, 2010 | 9:00 UTC | Online Round 1: Sub-Round C
Saturday, June 05, 2010 | 14:00 UTC | Online Round 2
Saturday, June 12, 2010 | 14:00 UTC | Online Round 3
Friday, July 30, 2010 | Google Office - Dublin, Ireland | Onsite FINALS

In the meantime, visit the Google Code Jam site and try out some of the practice problems so that you'll be ready to go once we kick off the qualification round. Hope to see you in Dublin on July 30th!

I'm excited to announce that registration for Google I/O is now open at Our third annual developer conference will return to Moscone West in San Francisco on May 19-20, 2010. We expect thousands of web, mobile, and enterprise developers to be in attendance.

I/O 2010 will be focused on building the next generation of applications in the cloud and will feature the latest on Google products and technologies like Android, Google Chrome, App Engine, Google Web Toolkit, Google APIs, and more. Members of our engineering teams and other web development experts will lead more than 80 technical sessions. We'll also bring back the Developer Sandbox, which we introduced at I/O 2009, where developers from more than 100 companies will be on hand to demo their apps, answer questions and exchange ideas.

We'll be regularly adding more sessions, speakers and companies on the event website, and today we're happy to give you a preview of what's to come. Over half of all sessions are already listed, covering a range of products and technologies, as well as speaker bios. We've also included a short list of companies that will be participating in the Developer Sandbox. For the latest I/O updates, follow us (@googleio) on Twitter.

Today's registration opens with an early bird rate of $400, which applies through April 16 ($500 after April 16). Faculty and students can register at the discounted Academia rate of $100 (this discounted rate is limited and available on a first come, first serve basis).

Last year's I/O sold out before the start of the conference, so we encourage you to sign up in advance.

Google I/O
May 19-20, 2010
Moscone West, San Francisco

To learn more and sign up, visit

We hope to see you in May!

(Cross-posted with the Official Google Blog)

A couple days ago, Google welcomed Don Dodge to our Developer Relations team, where he joins us as a Developer Advocate working with developers, startups, and other Google Apps partners. We're expecting Don to be a fantastic addition to our team. He's already a prominent voice in the developer community, well-known and highly-regarded among entrepreneurs, technologists, and the media.

In the TechCrunch post first announcing Don's availability, Michael Arrington wrote how Don, "makes a big effort to give young startups the attention they deserve. This is a guy who gives a heck of a lot more to the community than he ever takes back." This dedication to the community of developers and the businesses they build is one of the things that excites us the most about having Don on our team. These businesses have been central to Google's success over the years, so we already know that Don's attitude will fit right in with our efforts. Don has deep experience working in startups from his days at companies like AltaVista, Napster, and Groove Networks, and has always continued to maintain the connection and passion for that community since leaving their ranks to join Microsoft, and now Google. We are eager for Don to share his personal experience and professional insights with developers and small businesses integrating with Google Apps, and be an advocate for developers and partners inside the company.

Don already wrote about his first day on the job at Google. Tomorrow you can hear him speak on the Enterprise Cloud Summit Panel in New York City. You can follow Don on his personal blog, email him at dondodge at, or follow @dondodge on Twitter.


At Google we're excited about Scalable Vector Graphics (SVG). SVG is an open, browser-based standard that makes it easy to create interactive web graphics with new HTML-like tags such as the CIRCLE tag. We like it because it's part of the HTML 5 family of technologies while being search engine friendly; easy for JavaScript and HTML developers to adopt; exportable from your favorite drawing tools like Adobe IllustratorTM; and straightforward to emit from server-side systems like PHP and Google App Engine. It's also available in all modern browsers.

As part of our commitment to the Open Web and SVG we are helping to host the SVG Open 2009 conference this fall at our Mountain View campus. The theme this year is SVG Coming of Age. It will be held at the Google Crittenden Campus in Mountain View, California on October 2nd through 4th 2009, with additional workshops on October 5.

Co-sponsored by W3C, the SVG Open conference series is the premier forum for SVG designers, developers, and implementors to share ideas, experiences, products, and strategies. Over 60 presentations will be delivered by SVG experts from all over the world, tackling topics such as design workflows, mobile SVG, Web application development, Web mapping, geo-location based services, and much more.

Two panel discussions will allow the audience to discuss ideas and issues with the W3C SVG Working Group and implementors. Many W3C Members will be participating, including Google, IBM, Mozilla, Opera, Oracle, Quickoffice and Vodafone. The conference schedule and confirmed keynote speakers are now available.

The deadline for early-bird registration is August 31st, so get your registrations in soon! Full-price registration will remain available until October 1, and limited on-site registration may also be available at the registration desk during the conference. The W3C SVG Working Group and W3C's Chris Lilley and Doug Schepers will participate.

A wide range of exciting talks are on the docket. Here's a small sample:

* Ajax Toolkits supporting SVG graphics: Raphaël, dojo, Ample SDK, SVG
Web Project, JSXGraph
* SVG in Internet Explorer and at Google
* Beyond XHTML
* Progress in Opera and Mozilla
* Using Canvas with SVG
* Progress in Inkscape
* Implementors and Panel Sessions
* SVG and OpenStreetmap
* SVG in Wikipedia/Wikimedia
* SVG and ODF
* SVG for Scientific Visualization
* SVG for Webmapping
* SVG for Games
* SVG for Mobile Applications
* SVG Wow - demonstrations of great SVG demos

See you there!

Given a 49x49 grid of numbers, can you place mines in the cells in such a way that each number represents the number of mines in its 3x3 sub-grid (the cell itself and its 8 immediate neighbors)? Find the maximum number of mines that could end up in the middle row of the grid.

Intrigued? Think you can solve it with a clever algorithm? Here at Google, we know how thrilling it can be to encounter a challenge and then overcome it by coding up a creative solution. Since 2003, we've been privileged to share that experience with a global community of computer programmers through our annual programming competition, Google Code Jam.

We're excited to announce Google Code Jam 2009, powered by Google App Engine. Join the fun and compete in several 2½-hour online rounds, attacking three to four difficult algorithmic problems during each round. You may use your favorite programming languages and tools to code up a solution. When ready, run your solution against our fiendish test data. The algorithm needs to be right, and it needs to be efficient: when N=10000, O(N3) won't cut it!

If you're up to the challenge, visit the Google Code Jam site to register and read the rules. Most importantly, you can practice on the problems from last year's contest, so you are in shape when the qualification round starts on September 2. You could be one of the top 25 competitors who will be flown to our Mountain View headquarters to match wits for the $5,000 first prize, and the title of Code Jam champion!

P.S. Think you can solve our "Mine Layer" problem? Try it out on the Code Jam website!

The Developer Sandbox was a new addition to this year's Google I/O. The Sandbox featured a diverse range of developers and apps, all with one thing in common -- they've all built applications based on technologies and products featured at I/O. The Sandbox was very popular with attendees and saw a lot of foot traffic throughout both days of the event. Sandbox developers welcomed the opportunity to interact with fellow developers, discuss their products and answer questions.

We interviewed these developers about their apps, the challenges they faced and the problems they solved, and finally their learnings & hopes for web technologies going forward. We also asked these developers to create screencast demos of their apps, much like the demos they gave to people visiting their station during I/O.

These video interviews and demos are now available in the Developer Sandbox section of the I/O website. Each developer has their own page with a brief description of their company, their app, and their interview video (if one was filmed) and screencast demo video (if available). For instance, here's a video interview with Gustav Soderstrom of Spotify, who walks us through a demo of their Android app and then talks about the platform and why Spotify chose to develop their app on Android.

Are you building an app on one of Google's platforms or using Google APIs? Please send us a video about your company and your app and you could be featured on Google Code Videos. Click here for the submission form and guidelines.

Each Sandbox developer page also features a Friend Connect gadget that allows anyone visiting the page to sign in with their Friend Connect id and leave comments & feedback. It's a great way to continue the conversation or to ask questions if you did not get a chance to meet them at I/O.

We would like to thank the thousands of developers who joined us last week and made this year's Google I/O a wonderful developer gathering. We announced some of the things we've been working on and shared our thoughts on the future of the web. 140 companies joined us to showcase what they've been working on and talk about their experiences building web applications. We hope you left I/O inspired with new ideas for your own products. Our engineers were pumped to get your feedback and were inspired by what they learned from conversations at Office Hours, in the Sandbox, and during the After Hours party.

If you missed a session you really wanted to see at Google I/O, you'll be happy to know that over 70 of the sessions (videos and slides) will be made available over the next few days. For your convenience, you'll also be able to download those videos to view them on the go.

These will be going live soon at We'll be releasing I/O content in the following waves:
  • Wed, June 3: Client (Chrome, HTML 5, V8, O3D, Native Client, and more)
  • Thurs, June 4: Google Wave, Mobile/Android
  • Fri, June 5: Tech Talks
  • Mon, June 8: Google Web Toolkit, App Engine, Enterprise
  • Tues, June 9: AJAX + Data APIs, Social
You can check out some of our favorite Google I/O photos here. In addition, check out video interviews with the 3rd Party developers featured in our Developer Sandbox, and see how they've implemented products & technologies represented at I/O.

We've gotten many inquiries about the opening video for the Day 1 keynote. The video is comprised of different Chrome Experiments and the soundtrack music and lyrics were created by our very own Matt Waddell. Lastly, wondering why the Lego character on the Google I/O t-shirt is holding a spray can? For those of you who have t-shirts, turn off your room light and see what's written on the back of the green brick :)

Stay tuned for more updates on Google I/O!

Google I/O has sold out and general registration is now closed. If you have received a registration code, you can still register here. If you're unable to join us next week, we will post all of the videos and presentations shortly after I/O -- keep an eye out for updates on that. During the event, you can follow us on the @googleio Twitter account and on the Google Code Blog for the latest in-conference updates and announcements. And if you're coming to Google I/O, we look forward to seeing you there!

Google is making the web a more sociable place by contributing to new standards and releasing new products that make it easy to integrate your website with the social web. We've invited a few friends that are helping build the social web to Google I/O so you can learn what's coming next and what it means for you.

Learn from successful developers
Social apps can grow up fast, and some have attracted tens of millions of users. We're planning sessions to help you understand the business side of social apps, and we'll have a panel where you can pick the brains of some of the biggest social app developers in the world.

Make some new friends
There's more to a successful social app than just a creative idea. From analytics to payment processing, there's a lot of code to write beyond the core functionality of an app. Luckily, companies have been springing up to fill the needs of this ecosystem. You can meet some of these new companies in the Developer Sandbox and see how their products can make your app better (and your life easier).

Meet the containers
One of the key benefits of OpenSocial is the incredible distribution it provides to app developers. Building your app on OpenSocial makes it possible to reach hundred of millions of users around the world. We've got sessions planned to let you meet the folks building OpenSocial platforms and learn more about what kind of apps work well in different social environments.

The next generation
IBM,, Oracle, eXoPlatform, SAP, Atlassian - not who you'd expect to be speaking on an OpenSocial session. Speakers from these companies will come together to talk about how the enterprise software development community is bringing social concepts and technology like OpenSocial into the enterprise.

To see all the sessions we've got planned to help you learn about the social web, go to, and search for 'social'.

*Keep up with the latest I/O updates: @googleio.

As mentioned before, I will be hosting an Ignite at Google I/O on Wednesday, May 27 from 4:15-5:15pm at Moscone West in San Francisco. I'm happy to announce the following nine speakers who will be joining me onstage. In no particular order, here they are - as well as a preview of what they'll be presenting during their five minutes in the hot seat:
  • Leo Dirac - Transhumanism Morality
    Why only geeks and hippies can save the world.

  • Michael Driscoll - Hacking Big Data with the Force of Open Source
    The world is streaming billions of data points per minute. This is Big Data ? capital B, capital D. But capturing data isn't enough. We need tools to make sense of it, to help us better understand -- and predict -- what we click and consume. We want to make hypotheses about the world. And to test hypotheses, we need statistics. We need R.

  • Pamela Fox - My Dad, the Computer Scientist: Growing up Geek

  • Tim Ferriss - The Case for Just Enough: Minimalism Metrics
    Looking at how removing options and elements gets better conversions, etc., looking at screenshots of start-ups I'm working with and real numbers. Some humor (I hope) and fun, both philosophical and tactical.

  • Nitin Borwankar - Law of Gravity for Scaling
    Why did Twitter have scaling problems? I spent 6 months thinking deeply about this and derived a simple formula that a high school student would understand. It demonstrates where the center of gravity is moving in the "Next Web" and why this aggregation of CPU's is even bigger than Google's. And oh yes, it explains how to build a service that scales to 100 million CPU's.

  • Kevin Marks - Why are we bigoted about Social networks?

  • Andrew Hatton - Coding against Cholera
    I'll examine what IT life is like on the front line with Oxfam, a humanitarian agency, and how good code can make a real difference to people's lives in all sorts of ways..some of them surprising..

  • Robin Sloan - How to Predict the Future
    OK, back in 2004 I made a video called "EPIC 2014," predicting the future of media (and Google). It turned out to be 100% CORRECT. No, just kidding. But it made a lot of people think, which is really the point of talking about the future. Turns out there's a whole professional discipline of future forecasting. And there are certain ways you can think about the future that will give you better odds of being right than others.

  • Kathy Sierra - Become Awesome

Scalable Vector Graphics (SVG) is starting to pop up over all the place. It's showing up natively in browsers (including Firefox, Safari, Opera, Chrome and more). It's natively supported on the iPhone, and work is happening in various open source communities to create options for Internet Explorer. Google uses it under the covers in Google Maps (to create vector line drawings showing where to go); Google Docs (for drawing into presentations); and more. Wikipedia has a huge repository of SVG images, while many tools such as Inkscape, Illustrator, and Visio can either export to SVG or work with it natively. Vector graphics support through SVG and Canvas is consistently one of the top voted requests by developers.

Since we use and support SVG we thought it would be great to work with the community to host the SVG Open 2009 conference this fall. SVG Open will be in Mountain View at the Google campus from October 2-4, 2009. The theme this year is "SVG coming of age".

We are looking for contributors to present papers or teach courses. Presenters are asked to submit an extended abstract in English with an approximate length of 400 to 800 words by May 15. The abstracts are reviewed by a reviewing committee and presenters will be informed about acceptance on or before June 26. If your abstract is accepted, you will be asked to submit your full paper by August 31, according to instructions that will be sent to you.

Come and join us in the fall at SVG Open!

Ignite is a series of geek nights started by Brady Forrest of O’Reilly Radar and Bre Pettis of Makerbot Industries that has since spread around the world. The nights combine a Make contest (like a popsicle stick bridge-building contest) and a series of fast-paced, short-form tech talks. To check out past Ignite talks, view the videos at

At Google I/O, we'll be doing a one hour Ignite on the first day of the conference (May 27). In typical Ignite fashion, these talks will each be 5 minutes long with 20 slides and only 15 seconds a slide (they auto-advance). We want to hear your cool ideas, hacks, lessons, and "war stories". What do you want to talk about?

We're looking for speakers to participate, so if you're interested in submitting a talk, sign up via the form below.

Submit your talk for Ignite Google I/O

Submission Deadline: May 11th
Speaker Notification (rolling): May 12th

We’re taking submissions from everyone — whether this is your first time or whether you’ve done an Ignite talk before. Once we've chosen the speakers, we'll be sharing who they are after May 12. Stay tuned!

This post is part of the Who's @ Google I/O, a series of blog posts that give a closer look at developers who'll be speaking or demoing at Google I/O. Today's post is a guest post written by Alex Moffat, Chief Engineer - Blueprint, Lombardi Software

Lombardi has been using Google Web Toolkit (GWT for short) since January 2007 to build Lombardi Blueprint, an online, collaborative business process modeling and documentation tool. The client part of Blueprint is completely written using GWT and runs in any modern browser, that is IE6 and anything later, such as IE7, IE8 or Firefox. One of the biggest advantages of Blueprint is that it's easier to learn and quicker to use than a pure diagramming tool like Visio and it's more effective because it's focused on process mapping.

One of the things we do to make Blueprint more effective is automatic diagram layout. This allows the user to focus on describing their process instead of worrying about object positioning and line routing. You can see this in action in the video below as objects are added to the diagram.

Remember, this is JavaScript compiled by GWT from Java code, but it's as fast as, or faster than, anything you could write by hand, compact, and much, much, easier to maintain. The ability to use the excellent tooling available for Java is one of the great advantages of GWT.

One of the goals for our automated layout routines is to generate a flow diagram that looks like it was produced by a human. When the algorithms don't get it quite right, Blueprint also supports hinted layouts so that the user can drag and drop hints about where one object should be positioned in relation to another. Working out what the final layout should be and where the lines should go for large diagrams can be computationally expensive.

Modern browsers have very fast JavaScript engines. For these systems, there are no problems. However, we still need to support the browsers our customers use, which may not necessarily be the fastest or most up-to-date.

This is where GWT gives us a unique benefit. We can implement our algorithms in Java and compile this implementation twice, once with GWT to produce JavaScript to run on the client and once with javac to produce JVM bytecode to run on the server. This lets us use the much faster JVM if we need to without having to create, and maintain, separate client and server layout implementations. There's no other toolkit that makes this possible, never mind easy.

Blueprint client code continuously measures how long it takes to perform the layout and routing operation in the browser. If this exceeds our threshold value, then the code dynamically switches to trying a server side layout. We call the server code with GWT and the data structures returned, via the GWT serialization mechanism, are of course the same ones produced by the layout when executed on the client. The time required for a server layout is also measured, which includes both the execution time and any network delays so we account for the different connection experiences people have. After the first server layout, Blueprint chooses whichever method, client or server, has the lowest average elapsed time. I'm still amazed by how easy this was to implement.

Damon Lundin and I will be talking at Google I/O this year about how we built Blueprint, both what we do technically with GWT to get high performance and how we organize development so that we can make the most effective use of GWT. We look forward to meeting fellow GWT developers in person!

Heads up, early registration for Google I/O ends May 1. After this Friday, the rates increase $100 and even worse, you'll lose out on your Google Chrome Comic book.

Google I/O will feature 80+ sessions that cover Android, HTML5, App Engine, Chrome, AJAX APIs as well as special sessions for Enterprise and Social app developers. These technical sessions will be led by engineers from Google and a wide range of developers from the community. We'll also have Fireside Chats and Office Hours, giving attendees a chance to meet with Google engineers and get answers to all those pressing questions.

This year's newest addition to Google I/O is the Developer Sandbox. Over 100 developers representing a wide range of companies and apps will be on hand to demo their products, which they built using Google technologies. We've announced a few thus far and will continue to announce more over the coming weeks here on the Code Blog.

We've also worked really hard to make your visit to the San Francisco Bay Area as affordable as possible, including lower-than-usual hotel rates. Those rates expire on May 4 so register and make your hotel reservations today to secure them. For more information visit the Google I/O website.

If you plan to attend, register before the fee increases. We look forward to seeing you at I/O!

Google Web Toolkit, or GWT for short, recently went live with their 1.6 release, which also included a Google plugin for Eclipse and integration with App Engine's Java language support. Google I/O will be rich with GWT content, including a number of sessions on improving productivity and app performance with GWT. In addition, there will be a number of external GWT developers leading some of these sessions and/or part of the Developer Sandbox.

As mentioned last week, we're giving you a closer look at developers who'll be presenting or demoing at I/O. Here is a taste of these GWT developers below. (New to GWT? Check out this overview)
  • JBoss, a Division of Red Hat
    JBoss is well-known by developers for their enterprise open source middleware. Red Hat developer communities such as the Fedora Project and have collaborated with Google on a number of developer initiatives over the years including Google Summer of Code, Hibernate Shards, integration with Drools and the Seam Framework and Google Gadgets integration with JBoss Portal. JBoss will be present at the Developer Sandbox.

  • Timefire
    Timefire produces highly scalable, interactive visualizations of up to millions of data points for business intelligence, analytics, finance, sensor networks, and other industries in what they like to call "Google Maps, but for the time dimension." Their platform's built on Google Web Toolkit from the ground up, but also runs natively on Android. Timefire also uses App Engine's new Java language support for their social charting tool, Gadgets, OpenSocial, GData, Google Maps, GViz, YouTube Player API, and Protocol Buffers. Ray Cromwell will be at the Developer Sandbox as well as speaking on 2 sessions - Building Applications on the Google OpenStack and Progressively Enhance AJAX Applications with Google Web Toolkit and GQuery

  • StudyBlue
    StudyBlue is an academic network which enables students to connect with each other and offers study tools. StudyBlue's website is built entirely with GWT. According to StudyBlue, GWT allows for complete AJAX integration without sacrificing usability or integration capabilities. StudyBlue will be at the Sandbox.

  • Lombardi Blueprint
    Lombardi Blueprint is a cloud-based process discovery and documentation platform accessible from any browser. They've used GWT since early 2007 to write the client side of Lombardi Blueprint. GWT has enabled Lombardi to focus on writing and maintaining their Java code, while taking care of creating the browser-specific optimized AJAX for them. Alex Moffat and Damon Lundin will be at the Developer Sandbox as well as leading a session, Effective GWT: Developing a complex, high-performance app with Google Web Toolkit. (Check out Alex Moffat's video about Lombardi's use of GWT)
Finally, one little known fact - a number of Google products were developed with the help of GWT. This includes Google Moderator, Health, Checkout, Image Labeler, and Base.

Don't forget - early registration for Google I/O ends May 1. This means $100 off the standard list price (and a copy of the Chrome comic book). To register, check out the latest sessions, or see more developers who'll be presenting at I/O, visit

*Follow us for the latest I/O updates: @googleio.

This post is part of the Who's @ Google I/O, a series of blog posts that give a closer look at developers who'll be speaking or demoing at Google I/O. Today's post is a guest post written by Steven Willmott of 3scale.

Public APIs are a great way to share data and functionality, both for existing applications and as useful resources in their own right. Google Maps, Calendar and many other APIs lead the way in this and are now powering tens of thousands of sites and applications. Flickr, Twitter and others also provide great data and functionality which can be used to enhance and build new applications.

While APIs can provide great value add, it's not always obvious how to make one available if you're not Google or Yahoo. Although serving content via an API is effectively no different than via a user-facing web app - just serving HTTP traffic with XML, JSON or arbitrary data rather than HTML, CSS and Javascript normally destined for a browser - it does come with some unique challenges: authentication works differently, inbound traffic is often automated and response times need to be rapid for the API to be usable within another site - all a bit different from a standard web app.

Since we're in the API business we often get asked about how to quickly get a new API up and running, and one neat new way to do this is using Google App Engine, which provides a lot of the core ingredients needed to launch a new API and help it scale. To see how this works we put together a quick and dirty trial service which exposes App Engine's Image manipulation functions as a new Web API:
  1. First we set up a standard App Engine account giving us the standard dashboard and deployment environment. This provides the runtime environment plus a range of tools to monitor the application - all useful to track resource usage which we'll need to worry about later.

  2. The service itself in this case is a simple wrap of wrapping App Engine's available image manipulation features which provide standard image manipulation features, but it could easily be more complex.

  3. Next up, the functionality is wrapped in a simple RESTful interface. There are multiple ways to do this, libraries such as the App Engine Rest Server and the Django rest interface or a port of the Ning-like REST interface can be used to do most of the heavy lifting. Gae-Rest for example includes indexes and memcache and other features to optimise response times on the API. These give the API standard GET, POST, PUT, DELETE operations we'll need to push images in and out of the application.

  4. Finally, while we have the service ready to roll we still need a way for developers to access the service, manage their resource usage and track activity on the API. To do this we can use 3scale's API management platform which provides these features out of the box. Connection works using a standard python plugin and the system creates a configurable management portal for the service which handles signup keys, usage limits, traffic analysis and the documentation needed to support developers using the new API. For heavy users we can also add paid plans to cover any App Engine costs or make a small profit - check out the appspotimage portal here:

The service can now take advantage of App Engine's scalability - even under the constraints of the plan, your API should comfortably serve up 500,000 - 1 Million hits per day (although note that you need to check other resource limits - not just hits) which would be non-trivial to arrange and potentially high cost on a lot of existing hosting services. If you're serving traffic from (for appspotimage we serve the management interface from and the API traffic from response times from App Engine tend to be very fast (sub 10ms if you're on the west coast US) - which is great for API users.

Although backend APIs are not quite as visible as a new Android or iPhone App, they often provide a great resource and hopefully we'll see more and more datasets and new types of processing on line as APIs.

You can find the service itself here along with a longer tutorial on how we built it. Stay posted for some other services coming soon, as we start to play around with Java language support on App Engine.

We'll be at Google I/O on May 27-28 and look forward to talking APIs and App Engine, so stop by the Developer Sandbox. See you there!

Last week we had a number of exciting announcements and we've received a lot of good feedback so far. We've heard from developers who were excited about cron support, intrigued by the Google Secure Data Connector and pleased with database import. However, most of the excitement has been reserved for the new integrated development environment which was created through the marriage of Google-Web-Toolkit (GWT), Google App Engine for Java and the Google Plugin for Eclipse. Now not only can web app developers write both client and server code using the familiar Java language, they can also share and reuse code between client and server.

I wanted to capture some real world developer feedback, so as part of our Developer Profiles series I sat down with Paul Hammant of ThoughtWorks to discuss his first impressions with the platform. As Paul continues to tinker with the platform you can of course follow him on his blog.

If you have a compelling application that you've written with Google App Engine and GWT I'd like to hear about it.

Java is a trademark or registered trademark of Sun Microsystems, Inc. in the United States and other countries.

It's time for another Google Narrative, highlighting a Google AJAX Search API developer, Chirag Mehta.

Chirag is developer in St. Petersburg, Florida who got started coding on a ZX Spectrum almost twenty years ago and has dabbled in graphics, animation, databases, ERP/CRMs, and productivity apps. He is currently working as an IT director and is in a graduate program in Technology Management at University of Tampa. He co-founded Chime.TV in 2007 and in 2008. His favorite area of development is simple web utilities. Chirag and his wife love animals and when he's not coding or studying, he is either kayaking or playing with their pets.Q: Tell me about how you used Google AJAX Search API for Wiki Search and Drop Search and how you came up with the ideas.

A: My wife's currently in medical school and constantly doing searches online for medical terms. Wikipedia offered tons of information but she found their search feature to be insufficient for her needs. 90% of the time, you have no idea what you're searching for or guessing at it - it doesn't do anything to help you out. I wanted to help my wife have a faster, more dynamic experience so I brainstormed how to build a XML-type of search feature, similar to Google Search Suggest, while you were on Wikipedia. (It also helped that I'd always found Wikipedia interesting and researched databases that used it as a source of information.) That also led me to start looking at implementation options and of them all, AJAX Search seemed the easiest to integrate in a quick manner. Instead of taking two weeks to research documentation and then implement with other APIs, it took about an hour with Google AJAX Search. Also, I had worked with many Google APIs on other projects before, but the Google AJAX API was the best. The speed was amazing!

The idea for creating Drop Search came soon after fiddling with more Google AJAX search documentation. My implementation gives the everyday person without a programming background the ability to add a customized search engine to any site. It's code that you can copy and paste into your application and customize for your own needs using CSS, which I did for my own blog. A friend of mine at Rutgers University saw what I did and wanted the same type of feature for their professional development site so I released the code that I created to everyone on my projects page.

Q: Describe any obstacles you had with implementation.

A: There were none. Actually I had a couple of questions at first but I looked at the forums and got the answer fairly quickly. They were around legal issues - Am I allowed to query as I type? Is it legal that I'm doing this with Wiki search? I wish legal terms were much clearer on Google Code. I had some assumptions, only to find out they were recommendations rather than requirements. I do have to say that the documentation on Google Code is perfect. One minute you're reading documentation, the next you're in the forums reading about other developers' experiences. Help pages are broken down into every bit so it makes coding a cakewalk. It's a really good experience compared to other sites.

Q: Can you provide any tips for other developers using Google AJAX Search API?

A: Before you try to build something, find out if Google already has. Google will build 98% of your needs on the back end, leaving you 2% of the work to focus on making your user interface exactly what you need for the front end. Also, another tip... listen to your wife's complaints.
Thanks for your time Chirag! We love hearing from developers in our community about inspiring stories, so if you have something you'd like to share, visit our online submission form. Or better yet, come to Google I/O and tell us your story in person.

I'm excited to announce new, highly requested features for App Engine which we unveiled a few minutes ago at Campfire One.

First, we're giving developers an 'early look' at Java™ language support for App Engine. The team has taken a standards based approach, implementing standard Java APIs on top of App Engine where possible. So instead of using the underlying App Engine datastore API, developers can program against Java Data Objects or Java Persistence API.

Developers will also be able to easily build AJAX web applications end-to-end in Java through integration with a new version of Google Web Toolkit and a Google Plugin for Eclipse to support the development experience.

In addition to the Java features, we've also released cron support , data import support, and secure access to data behind the firewall. To learn more, read the full announcement on the App Engine Blog and watch the videos from Campfire One below: (Note: The video will be live soon)

Still needing a developer fix? If you want to dive deeper into these new features, and how to get more out of App Engine and Google Web Toolkit, we encourage you to come talk to us at Google I/O on May 27-28 in San Francisco CA. We'll be there conducting in-depth App Engine and Google Web Toolkit technical sessions and talking to developers. We'd love to hear your feedback about the features, and just see what you are up to.

*Java™ is a trademark or registered trademark of Sun Microsystems, Inc. in the United States and other countries.