Hi. The blog you’re reading, and all of its user and content-creation functionality, is entirely written using Google App Engine (Python), with Django. In this post I write about why I decided to write my own web applications to replace every web service I use, and why I decided to do this using Google App Engine.
To start myself off and to learn the technology, I decided, quite ambitiously, to make an “online community for book-nerds” , where users could search for books, and then rate, favorite, and discuss any of a huge selection of books. This would create a database full of useful information which I could use to rank books, in a way similar to the top 250 films on IMDB (something I’ve always wanted available for books). The application linked to Amazon.com’s catalogue list to provide a store full of titles, and had unique profiles for each user, including profile photos, and personal information. The idea was that of a typical online social application, based on the premise that people often struggle to find out what to read next (reading is a large investment of time), and it’s difficult to find a simple website that helps with that (despite the success of imdb.com for films). Eventually, once I had already written the majority of the base code for my app, I actually found a website that deals with this, though not as effectively as I would like, but that is certainly useful, and is equipped with a vast array of interesting (though sometimes extraneous) functions – Library Thing.
As I built my application, I grew more familiar with the Google App Engine technology (after a short but steep learning curve, it gets fairly easy to include almost any popular function currently on the web – even if it’s method sometimes includes a workaround Google’s somewhat testy constraints). When I was finished creating some very decent functionality for my book-community idea, I decided that for any online web application that I use, I’m going design for myself a replacement on Google App Engine. For an almost obsessive internet-user like myself, with much of my computing done in the cloud, it sounded like a very daunting task. A list of the web applications I currently use include (but are not limited to), ‘GMail’,'Facebook’, ‘Google Chat’, ‘WordPress’, and ‘Google Docs’. That’s quite an intimidating list, but I figured GMail and Google Chat may be quite simple to do at least . That night I fell asleep with my notebook on my bed, as usual, except that I had unknowingly of course, forgotten to put the lid back on my pen. When I woke up with blue ink-marks all over my duvet, I knew it was time to move my obsessive note-making onto the web. I searched around, but I couldn’t find anything similar to Google Docs that was more tailored to taking quick notes. There was the discontinued Google Notebook that I used to use, but that didn’t quite suffice either. There were many to-do-list applications, but very few that were capable of storing notes in an easy and accessible way. I knew what I had to do. Thus, PyThoughts was born (note: this project has been discontinued – sorry. ).
For PyThoughts, I figure the thing I’ve worked hardest on so far has been making the information very accessible, meaning that I can log on and very quickly retrieve the data I’m looking for. That requires folders, with fast-loading content, and AJAXian functions to add, edit, delete, or move information. I plan to use this blog to make available some of the methods I used to include this functionality, so that those who are starting to write their own apps on GAE can bypass some of the learning curve. For example, in a future post I will provide an easy walk-through for any one wanting to include AJAX functions using Google App Engine.