Google App Engine Patch Django Examples

5/8/2009 update, I’ve added a link to a very rough video I gave at Barcamp Birmingham on “An Introduction to Google App Engine and App Engine Patch” (it’s there but WordPress does not like to “preview Vimeo for some reason!).

I have not posted to this Tech blog for a while but I have been continuing my learning process. I’ll try to point out some key developments for me and that may help you out.

This is already a bit out of date but illustrates some key concepts which I was having problems with as I learn Django, app-engine, app-engine patch and Python and expand my limited knowledge of css/xhtml.. (so is that enough disclaimer?!)

Many thanks to Waldemar Kornewald, author of the AppEngine Patch (AEP) and
Konrad Martin who graciously provided the screenshots of how to integrate css (and other media, in the Django lingo) into AEP, which for me was way more clear than the documentation, with my very limited understanding of basic Django concepts. Since Konrad provided this Waldemar has updated the AEP ‘Package” to include examples which also now include javascript. I have not yet had a chance to load that up and play with it but the concepts presented in these screen shots should still be very helpful to all. While Konrad provided them for download from an Appspot domain here I felt that having the screen shots available without having to download anything would be helpful to many. Konrad has added some more screenshots with some layout ideas here. (added 4/16/2009).

I cannot add much to the screen shots they are very well annotated. The original discussion is here.

You may click on the image to get a larger version, then again to get a fairly full sized version, they are in order of operation.

Eclipse/App Engine/Bloog Part 4, The hard part

Well I had a long and frustrating week/week-end, all sort of run together. I discovered that my new site would not take even moderately long articles. This is apparently a “known problem” and it relates to exploding indexes, as somewhat explained here.

I finally got to corresponding with one of the Bloog Maintainers who had it turned out created a modified site search capability using Google Site Search. According to him  it still does not provide for longer article without some code mods that I have not yet started. But is a prerequisite. I got a copy from Git-hub, where Bloog is hosted. This required that I get and install GIT version control system. I chose to start with Windows based  Git Extensions. It still required that you install the basic GIT. It is only available in Tar format you will need 7zip to unpack although after a posting the developer has now provided a “full” option for Git extensions.

I then tried to apply the new code to my existing Bloog version as I had modified it. That required a differential editor,which I did not have Kdiff3 turned out to be a great choice. It compares entire directory structures and than lets you click through the files and selectively choose to apply a, b to your revised file. Very cool.

I then tried to fire things up, FAIL. I then went back to the Version I had just obtained and I could not get it to fire up either. I then started to look for “real” debug information. Not much available.

Eventually I downloaded PYdev for Eclipse, and that was a major improvement  my entire development environment. In fact I would go so far to say Do not attempt development for APP-Engine without Pydev!! It provides a much better editor, code outlining and a runtime environment. There are several tutorials on setting up Eclipse for app-engine. Use them!!! Supposedly it also provides breakpoints, but I have not been able to get that working yet, but the other improvements are a major joy. The Debug environment did give me better log messages. Through which I was eventually able to make some headway. I found out that the two versions had changed the DB schema slightly so I had to delete a few older records You can see and modify the local datastore using http://localhost:8080/_ah/admin/datastore and bang it all started to work. It actually took a long time to go through each step, and I still have to go back and learn each of the new tools much better.

APP Engine Using Bloog Part 3 Upload the app

Well, after I got the framework for my new Blog (based on Bloog), going using my local debug server it was time to upload the app and get it live. The instructions simply said to run with a few parameters… Two issues, where to run the command and how to get all the parameters, I got some good help once again in the group. It turns out the command must be run in a Windows Command window, (not exactly intuitive but now that I know it it makes sense!) I placed my cmd window back to root using the cd\ command then ran update c:\Users\DadLaptop\Documents\tombrander Note that I did not have any spaces in my directory string, for some reason I could not get the cmd to work within a quoted string as one of the responders suggested, also it does not work in a bat file. Also a subsequent post suggested how I might be able to use cut and past in the Vista cmd window, as follows, (have not tried yet)

You can copy and paste by using the System menu of the window. You can open this menu by using Alt-Space or click on the top left icon in the titlebar (for a cmd window it is a small c:\) In this menu you find a submenu for clipboard operations. If you want to copy text to the clipboard you first have to “Mark” the text and then press “enter”.

Great, now the whole thing was on the internet and working, mostly. I did a few test posts. A bit later I tried the Mail and comment functions,,, FAIL, back to the groups…. I investigated myself and posted the logs,, I was beginning to wonder if the Gmail name in the file was case sensitive… I changed it to all lower case and reran the Update function as discribed above and low and behold both the comments and mail function started to work! Now I have the basics going. Content and refinement to come!

Blooging on App Engine-Part 2

Well as the previous post says the Blog is up sort of. I solved two fairly tricky issues for me at least which I’ll document here.

As mentioned I’m Using the Bloog example, found here.

I wanted to replace the right most column with my own stuff, replacing the Silicon valley meet up badge and the Avatar in the upper right was pretty simple, just photo shop two images the same size and replace the old ones. Got some hints here on the developer site.

Look in the code (on Ads.html located in C:\Users\DadLaptop\Documents\tombrander\views\default\bloog) and replace the go to links….

I also wanted to put an rss display of my “shared items from Google reader that are tagged as Forensics” That was a bit harder to figure out, I wanted to use Django modules see my plea in the Bloog discussions, but I could not figure how to do that so I eventually found some code in Cpedialog that was doing something similar to what I wanted and found he was using a Google tool “Google Dynamic Feed Control”. I tried to lift his code but it was too integrated with his control panel so I just commented out the “Amazon” section of the ads.htm page and added my own code directly on the page. like so:  I also had to slightly alter the amazon section of the main CSS file to remove one margin so the layout was proper.

<div id=”amazon”>
This is where I plan to put Rss reader and Bookmarks!
<script src=”;
<script src=”;

<style type=”text/css”>
@import url(“;);

#feedControl {
margin-top : 20px;
margin-left: 0;
margin-right: auto;
width : 220px;
font-size: 12px;
color: #9CADD0;

<script type=”text/javascript”>
function load() {
var feed =”;;
var options = {
numResults : 8}

new GFdynamicFeedControl(feed, “feedControl”, options );
google.load(“feeds”, “1”);


<div id=”body”>

Then I was sort of ready to go, but don’t you know I could not figure out how to upload the darn thing.!! I’ll go through that next.

New Blog On App Engine

I Finally got my new “forensics” Blog up on App engine a free service from Google I have very slightly customized the Bloog Blog that is available from the links located elsewhere on this site. I also added my “Forensics Shared items feed” from Google reader over on the right>>>>>

I have a bunch more work to do but now at least the platform is working and I have some idea .of what I’m doing and what to do next!

I’ll document some of my pitfalls on the way once I have rested up a bit! For those who may want to give it a go.

Free Blogging at Google App Engine Using Bloog-part 1

This project is to help me get something of some substance up on app-engine to serve as a vehicle to learn Python and app-engine at the same time. If I was only interested in putting up a blog I’d keep on trucking with, I love it as a great Blogging platform. I evaluated the several frameworks available and for me it came down to Bloog and cpedialog. They both have advantages but for me I just sort of liked the basic layout and description of the Bloog approach better.

Step 1: See my prior article on getting Hello World going on App_engine.

After doing the initial tutorials outlined in my earlier piece on app engine. Then download Bloog here. I was not quite ready to load up client software to get the file out of GIT “properly” so I chose to just click the download button which gives you the file only in Tar format (no zip file) so you may need an unpacker, my native windows Vista 64 extract did not work so I downloaded a (freeware) unpack program called 7 zip from here. I unzipped the folders to my Documents directory.

I decided to run it directly, so without editing anything I made up a Bat file that started app engine on my local machine. The file:”startappengine.bat” contains:” C:\Users\DadLaptop\Documents\Bloog”

I got a screen of errors when I opened my browser at http://localhost:8080/

They appeared to be the same as discribed here.

I went to Http:// and clicked on download and selected the zip file, which I then unziped to bloog/utils/external and erased the old (empty) firepython folder and renamed the resulting folder to firepython.

I re-ran the autoexec file and reloaded the local host page and bang I had a operating site, Now I’ll work on some customizations before uploading to the real app engine!!!

Found most customizations in including customizing the links on the right side. But am still looking to replace the ad space on the right with a rss feed or two. My questions to the Bloog support group are here.

Getting Started With Google App Engine-Hello World

I’m configuring this all on Vista 64. Well I finally decided to begin the learning process. I elected to use only the “Ordinary” x86 versions and not 64 bit versions. I installed the latest Python, 2.61 which according to the Python site is the continuing line from the required 2.5 for app engine (Python 2.6.1 Windows installer (Windows binary — does not include source), this could cause problems later but so far so good. I ran the Python environment stand alone to ensure that is functioned.

I then followed the tutorial. Downloaded the app engine development environment. I ran the install.  I also created the Helloworld folder in the documents folder and placed the trial Yaml and PY file inside the folder, as the tutorial required.  Then tried to run the executable according to the tutorial. I could not figure out how to do that. I rebooted, always a good idea!

Then noticed that the Google App Engine had placed an Icon on the desktop. Clicking it did not result in anything other than a window that opened and closed too fast to see. Re-reading the getting started info it came clearer to me that I had to follow the format for invoking the App Engine and specifying the location of the helloword folder.  So I opened up notepad++ and created this line, which I the entered into the Vista Search box (which I discovered also now functions as the “Run” box). >>> C:\Users\DadLaptop\Documents\Helloworld<<<

Bang, It worked!! Followed the rest of the tutorial to display “Hello World” on Localhost. Now I have to continue for the more advanced functions. Stay tuned!

I saved the command line as a .bat file and believe that I can edit the desktop icon to include the parameter for the location of the hellworld folder.