Community Update: deferred, open source, and more

Here are some of the recent developments from the greater developer community.

deferred.defer

Nick Johnson recently added a new module to the App Engine Python SDK which allows you to use the task queue service to execute deferred function calls. This library requires minimal configuration and makes it even easier to use tasks. Using it is as simple as calling deferred.defer with the function and arguments you want to call - for example:

from google.appengine.ext import deferred
deferred.defer(logging.info, "In a deferred task")

For more details, see the article.

Ruby as a runtime option

The JRuby App Engine project has done a lot of work making spin-up time less painful with the most recent release. They've also had some great contributions from the growing community, such as an Image API that is ImageScience compatible. Ruby programmers can now build applications using familiar tools like Sinatra and DataMapper, while having access to the full set of App Engine APIs for Java. Follow future developments on the jruby-appengine blog and watch for talks by the JRuby App Engine team at upcoming conferences: "Scaling on App Engine with Ruby and Duby" at RubyConf and "JRuby on Google App Engine" at JRubyConf.

An open source alternate environment: TyphoonAE

Open source efforts to provide alternate hosting environments for App Engine applications continue to expand, with the TyphoonAE project joining the existing AppScale project in providing a platform to run App Engine apps. TyphoonAE aims to provide a complete environment for hosting App Engine apps, and so far includes compatible datastore, memcache, task queue and XMPP implementations.

gae-query-pager

Juraj recently created and open sourced a library for the Java runtime which "generate[s] appropriate paging queries from a base query, and then using these queries to page through the data." This is intended to simplify iteration through all of the results in a very large result set.

AEJ Tools

If you love RESTful APIs then it would be worth your while to take a look at AEJ Tools. Their library provides "a server module which provides a Rest style access to your datastore data, and a client module which allows you to run queries remotely using the Groovy interactive console. It can be used to run queries, store new entities or as a data import/export tool."

An open source full text search library

The datastore related libraries just keep right on coming. Full text search is a highly requested feature for App Engine and those behind the open source appengine-search project have create a Python library which "[c]an defer indexing via Task Queue API. Uses Relation index strategy mentioned in Brett Slatkin's Google I/O talk."

Testing framework

Moving beyond the datastore, the developers at geewax have created an advanced testing framwork called GAE Testbed. It covers everything from isolated and quick unit tests to full scale end to end tests and builds on some of the great testing tools for App Engine which are already avilable.

Party Chat

In other news, the folks at techwalla have migrated their party chat app to App Engine and made the source code available. It uses the new XMPP API to simulate a chat room using your favorite XMPP client. You can read more specifics on their blog.

Other open source projects

Check out the open source projects wiki page for more open source App Engine applications and utilities. Since the last posting, nearly 15 new applications have been added, so keep checking in as new projects are added regularly. If you have a project of your own to add, just follow the instructions at the bottom of the same page.

That's brings our community update to a close. We're always interested in hearing about new and interesting projects which use App Engine. If you have something to share, drop us a line.

Google Latitude, now with Location History & Alerts

Since the launch of Google Latitude earlier this year, we've been getting a lot of feature requests. One of the most popular ideas was for Latitude to keep track of location history, allowing you (but not your friends) to see where you've been at any point in time. Another popular idea was to notify you when you're near your Latitude friends so you can easily meet up or grab lunch. Today, we're happy to introduce both Google Location History and Google Location Alerts (beta) to let you do even more with Latitude.

Google Location History
Whether you're taking a road trip across the country, backpacking across Europe, or just going out for a night on the town, it's fascinating to look back at where you went, and for how long you stayed. Enable Google Location History to store, view, and manage your past Latitude locations. You can visualize your history on Google Maps and Earth or play back a recent trip in order. Of course, you can always delete selected history or your entire location history at any time. While working on Location History, I found myself going back in time to discover things that would have otherwise been impossible. For example, I stopped at an awesome BBQ place on my way back from Lake Tahoe this summer, but I couldn't remember the name when my friend was asking about it a few months later. I pulled up my location history for that weekend, found where I was stationary on the drive home, and the restaurant name showed up in Google Maps: Drooling Dog Bar BQ. Check it out below:



Google Location Alerts (beta)
People also want to know when their friends were nearby, but it's not always convenient to keep checking Latitude to see if a friend has recently shown up near you. After working on this for a while, we realized it wasn't as straightforward as sending a notification every time Latitude friends were near each other. Imagine that you're Latitude friends with your roommate or co-workers. It would get pretty annoying to get a text message every single time you walked in the door at home or pulled into work. To avoid this, we decided to make Location Alerts smarter by requiring that you also enable Location History. Using your past location history, Location Alerts can recognize your regular, routine locations and not create alerts when you're at places like home or work. Alerts will only be sent to you and any nearby friends when you're either at an unusual place or at a routine place at an unusual time. Keep in mind that it may take up to a week to learn your "unusual" locations and start sending alerts.

To enable these features, go to google.com/latitude/apps. You must first be an existing Google Latitude user; if you're not already, sign up here. You must explicitly enable each feature, and of course, you can disable it at any time. Learn more in the Help Center about Location Alerts and Location History, suggest and vote on ideas in the Mobile Product Ideas page, or report problems in the Mobile Help Forum.Chris Lambert, Software Engineer, Google Mobile