Wednesday, May 28, 2008

Announcing Open Signups, Expected Pricing, and two new APIs

When we launched Google App Engine to 10,000 developers in early April, we were looking for feedback from the community. Since then, even though we've since expanded to 75,000 developers, the request we've heard most often has been to open up the preview release and give more people the chance to use it to deploy their apps to Google's scalable infrastructure. With more than 80,000 of you still waiting to use App Engine we're especially pleased today to announce that we are opening the flood gates--now anyone who wants to use App Engine can give it a try! So, if you haven't already, head over to our Admin Console and create your first application. Note: you'll need to verify your account with a mobile phone before doing so.

App Engine will always be free to get started, and we plan on enabling developers to purchase more computing resources sometime this year. Although we're not ready to offer this ability now, we've been asked by many developers to provide some insight into how we'll be pricing App Engine usage for applications that have exceeded the free quota of 500 MB of storage and around 5M pageviews per month. We'd like to be transparent about this, and have announced today that developers can expect to pay:

  • $0.10 - $0.12 per CPU core-hour
  • $0.15 - $0.18 per GB-month of storage
  • $0.11 - $0.13 per GB outgoing bandwidth
  • $0.09 - $0.11 per GB incoming bandwidth
Likewise in response to your feedback we are also providing 2 new APIs, the image manipulation API and the Memcache API.

The image manipulation API enables developers to resize, rotate, flip, crop and enhance images using the same infrastructure used in Picasa Web Albums. With the images API you can perform common image related tasks like thumbnailing images via a simple interface. For more information about the images API, please see our documentation.

The Memcache API is a high-performance caching layer designed to make page rendering faster by reducing datastore queries and improving the performance of your application. The Memcache API was written by Brad Fitzpatrick, the same developer who created memcached, a caching layer that is used in some of the world's most popular web applications, and is compatible with memcached implementations. Please see our documentation for more information about the Memcache API.

These features and improvements were motivated by your feedback and participation in our development process. We're working hard to respond to all of your requests so please continue to share them with us!

Monday, May 19, 2008

San Francisco Hack-a-thon

On Friday, May 16th, we had our second Google App Engine Hack-a-thon at the Google offices in San Francisco. For 12 hours, developers coded, talked with the Google App Engine engineering team and each other, and filled up on Google snacks.

At the end of the day we had some great results:

Check out some pictures of the Hack-a-thon:

If you still haven't got a chance to meet the App Engine developers and build some apps with other App Engine developers, we will be holding some codelab sessions at Google I/O, our annual developer event on May 28th and 29th.

Thursday, May 15, 2008

App Engine Launcher for Mac OS X

While I was writing scenario applications to test Google App Engine, I had the following idea: If BBEdit, Dreamweaver, CSSEdit, and TextMate were at a party, what kind of application would be welcomed to help with App Engine development? As silly as this sounds, it led me to think more about workflow. I used:

  • a few applications for Python, CSS, HTML, and JavaScript.
  • the command line to run applications and to view logs.
  • a browser to test locally and to access the local developer console.
  • the command line to deploy the application.
  • a browser to view a live application's dashboard.

I began to think about how unfriendly command line interfaces can be, and how much repetitive typing I had been doing to test and deploy applications. With that said, I worked with John Grabowski of the Google Mac team and Brett Slatkin, an engineer on App Engine, on a 20% project to make Google App Engine Launcher for Mac OS X.

Now, App Engine Launcher is not a replacement for your code editor or your IDE. It improves your App Engine development experience by managing a list of your applications. With a few clicks you can run, browse, deploy, and view logs for your applications. It also has some added sugar thrown in like drag and drop, integration with your editor, and quick links to the local developer console and the live application dashboard.

Download it now. If it's missing a feature that you'd like to see (like scripting, a Windows or Linux version, human-level AI ;), let us know in the Discussion Group.

Thursday, May 8, 2008

Google App Engine New York Hack-a-thon

Yesterday, Google App Engine held our first ever hack-a-thon at the Google Office in New York City. We had a great turn out of App Engine developers. Some programmed along with us, building a wiki, and some developers brought along their own ideas and spent the day building some awesome applications.

At the end of the day, a few developers even came up and presented their work:
  • An application that provides 'a simple API for writing and reading small chunks of data from anywhere' :
  • An app that adds photos to the developer's facebook account
  • An Open Source Django utility project:
  • An application that searches for clinical trials based on keywords
  • An application that uses GWT, Maps and Gears to track and map appointments and uses App Engine to keep the client side data synced
  • An app where users can list items for sale and get emails from interested buyers:
Check out the pictures for the event at:

We look forward to seeing you at the San Francisco Hack-a-thon on May 16th

Tuesday, May 6, 2008

An Open Source App: Rietveld Code Review Tool

My first project as a Google engineer was an internal web app for code review. According to Wikipedia, code review is "systematic examination (often as peer review) of computer source code intended to find and fix mistakes overlooked in the initial development phase, improving both the overall quality of software and the developers' skills." Not an exciting topic, perhaps, but the internal web app, which I code-named Mondrian after one of my favorite Dutch painters, was an overnight success among Google engineers (who evidently value software quality and skills development :-). I even gave a public presentation about it: you can watch the video on YouTube.

I've always hoped that we could release Mondrian as open source, but so far it hasn't happened: due to its popularity inside Google, it became more and more tied to proprietary Google infrastructure like Bigtable, and it remained limited to Perforce, the commercial revision control system most used at Google.

Fortunately, now that I work on the Google App Engine team, I've been able to write a new web app that incorporates many ideas (and even some code!) from Mondrian, and release it as open source. The Python open source community has been trying out Rietveld for the past few days, and has already been using it to do code reviews for Python (as well as providing valuable feedback in the form of bug reports and feature requests). Of course, the tool is not language-specific: you can use it for code reviews for any language!

To learn more about Rietveld, try it out, or take a look at the code, check out the article on Google Code!