Fault-tolerant counters for App Engine
The datastore in Google App Engine can occasionally throw an error. It might be a timeout, quota violation, a result of maintenance (CapabilityDisabledError), or other exceptions thrown by the db and apiproxy_errors module.
So how do you gracefully handle datastore failures? You could just inform the user to try again later. Another approach is to use the memcache API and build a buffer for failed datastore puts. That ...
A SearchableModel for App Engine
SearchableModel, a nice little extension to db.Model, can be found in the App Engine SDK. It's a lite full-text index that can provide some search capability to your app. Using it is simple. When declaring your model class replace db.Model with search.SearchableModel:
from google.appengine.ext import search class Article(search.SearchableModel): some_searchable_prop = db.StringProperty() another_big_searchable = db.TextProperty() ...
Then in your handler, use the ...
Bloog 0.8 (Dogfood Edition) released
My blog now uses Bloog software running on Google App Engine.
I've pushed significant commits up to the Bloog github repository. Within the next week, I hope to blog about a number of interesting App Engine code bits. Here's a short list of some new features in the source code:
* A subclass of db.Model that memcaches properties and provides json serialization.
* Customization of the YUI ...
Bloog, a blog/homepage app for Google AppEngine
I've just released an alpha version of a blog/homepage app for Google AppEngine.
Bloog is open sourced under the MIT License. Go forth and multiply.
Bloog was created to experiment with blog ideas on Google AppEngine while allowing migration from a legacy blog. These goals shape the feature set, which includes:
- A resource-oriented architecture, as described in the great book RESTful Web Services
- A Drupal converter ...