Bill Katz

My Brain

An occasionally updated repository of thoughts, past work, and links. Topics include programming, web ventures, and writing.

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/uploader that queries a local MySQL database and uploads the data to a Bloog through REST calls.
  • A datastore deletion utility that can clear out your entities in your Bloog's datastore.
  • Arbitrary URL aliases, which can be created by the drupal uploader, that provide redirection from legacy urls. There's also a programmatic aliasing function that can take a regex like 'node/(.*)' and map it to legacy IDs stored with the blog entries. (http://foo.com/node/4 is a typical Drupal url.)
  • Dynamic per-article sidebars. (in progress)
  • A Yahoo UI Ajax front-end for posting and managing entries in a RESTful way. (in progress)

From an AppEngine developer's perspective, you may find the source code interesting to examine due to things like:

  • RESTful design using webapp.
  • Convention-over-configuration in organizing controller and view files.
  • Authorization using python decorators and built-in Google authentication.
  • Caching using global variables.
  • Some timing facility to test different datastore models.
  • Serialization of a python object into a datastore blob.
  • An example of full-text searching using the slightly documented appengine.ext.search module. (This works and was commented out due to a weird (Google?) bug when uploading large posts. Perhaps a timeout?)

Source code and more information can be found on GitHub and Bloog site.

Category: App Engine Software