Bill Katz

My Brain

An occasionally updated repository of thoughts, past work, and links.

Articles tagged with 'App Engine'

Pre-allocating IDs for App Engine datastore

App Engine SDK 1.2.5 is out and there's an unheralded feature that makes datastore backup and restores much easier.  The feature didn't warrant a bullet in the revision history or the python SDK release notes.

I present to you the glorious

db.allocate_ids(model_instance_or_key, number_of_ids)

You may use this method to pre-allocate blocks of IDs.  It returns a tuple giving you (start_id, end_id).

Why ...

Simple Full Text Search for App Engine

Revised 2009-07-12 to include addition of stemming, multi-word exact matching, multiple search entities, and stowing of designated parent titles in index entity keys.

After rewatching Brett Slatkin's Building Scalable, Complex Apps talk at Google I/O, I came across the old SearchableModel module and realized it could be greatly improved by using the "Relation Index" technique described in the talk.  So after a day of hacking, I ...

Addressing App Engine Lock-in

One of the biggest criticisms of Google App Engine is the lock-in factor.  Although the App Engine SDK is open source (Apache 2.0 license) and you can use Django to make your app more portable, there's no easy way to port your App Engine code to Amazon EC2 without creating your own datastore, etc.

AppScale addresses this concern.  It's a cool looking project out of ...

Remote API "Hello World"

Update: There's a Google article on the remote API.

Here are some tips for developers trying to play with the remote_api module release with the 1.1.9 App Engine SDK.

You can look at the bulkloader.py utility.  It uses remote_api and shows how to setup some essential environment variables (os.environ['AUTH_DOMAIN'] and from my tests, you'll also need os.environ['USER_EMAIL']).  On to ...

Remote API for App Engine

The most recent SDK update (Version 1.1.9 - Feb 2, 2009) includes a nice little feature, a remote API.  Look at the module google.appengine.ext.remote_api and you'll find this description in the stub:


This allows easy remote access to the App Engine datastore, and potentially any of the other App Engine APIs, using the same interface you use when accessing the service locally.

See ...