BigTable and Why it Changes Everything

I’m still tinkering with Google App Engine, and thus with Python and BigTable. So far I am having trouble getting my head into the solution space provided by the likes of BigTable and memcache. I keep wandering toward solutions where a traditional database seems more appropriate rather than solutions which make use of the advantages of the provided apis. More work needed.

BigTable and Why it Changes Everything

Google App Engine optimizations

This is a really useful article for what I am doing right now. A selection of Google AppEngine hints and tips from someone who has done a few apps already. I particularly like the reminder about providing static favicon and robots.txt files - something I have bumped into in plenty of other web development situations but had kind of forgot in the excitement of playing with AppEngine.

Google App Engine optimizations

google app engine samples at Google Code

A page pointing at some App Engine code examples:

google-app-engine-samples - Google Code

or alternatively, just svn checkout the trunk from
http://google-app-engine-samples.googlecode.com/svn/

Google App Engine & eclipse PyDev

I’ve been looking at Google App Engine recently, and thought I’d have a go at developing something using Eclipse (my main IDE) with the Python development plugin PyDev rather than a motley collection of text editors and scripts.  Here’s how I got on so far.

I already have Eclipse Europa, so I connected to the PyDev update site I told PyDev where my Python interpreter is located and accepted the default pythonpath entries, then created a new PyDev project and pasted in the example code from the Google App Engine tutorial.

All was going well up to this point, but then I hit a problem. PyDev was showing errors in the code indicating that it could not find the App Engine modules and classes to import.

Import Errors

I looked around the internet and found the following links purporting to help:

Adding in the pythonpath settings from the first one didn’t seem to work. I tried a variety of combinations including creating a new appengine project with the appropriate source folders and referenced it in my new project. Still no luck.

So I created a new project following the steps in the second link, and there were no import problems, even though by default it contains a very simple web application using the App Engine. So I copied and pasted the code from the offending module into the new project and everything seems fine now. I have set up the dev server as a run target in Eclipse and it runs sweetly.

I can only assume that it was the order in which I did things, somehow. Perhaps adding pythonpath entries after code is already present is not picked up correctly by PyDev. Dunno, but I hope this helps someone.

More Google App Engine links: BigTable and Memcache

InfoQ: Principles and Guidelines for an Optimized Use of BigTable

The Memcache API - Google App Engine - Google Code

More Google AppEngine links

Shimon Rura’s Blog » Google AppEngine: What I learned building OracleBot

JJinuxLand: Python: Debugging Google App Engine Apps Locally