I've just spent the last two days playing around with Google's AppEngine, and I like it.
When my language of choice was perl, I wrote plain ole CGI web applications (if you can call them that) using perl's CGI module.
In the python world though, web frameworks and WSGI seem to be the way to do things, so I've known for a while that I needed to learn one of the many frameworks out there. I spent about a week getting my head around TurboGears and the concepts of ORM a year or so ago using the TurboGears book. After a week I has finished the book and has the sample app working but had no more time left to spend on the project. Obviously, not using it, I've long since forgotten all of the TurboGears specific stuff. I had through to given Django my next try but AppEngine caught my eye in the meantime.
AppEngine has a nice Getting Started Guide which I used to get a simple little application up and running on the local development web server included in the SDK in an hour or two.
Learning from the mistakes of the past, I decided on a project - porting a perl CGI script I wrote a few years ago (a University of Cape Town map using the Google Maps API and some local data I had gathered) to AppEngine. The result is basic but its a start and its here. Hopefully, over time I'll develop it into something useful - maybe add some additional information such as a picture or two, a brief description, a list of departments, etc to each building.
The only problem I has was with bulkload_client.py, a tool for reading bulk data from a CSV file and importing it into the application. We are behind a proxy server, and bulkload_client.py doesn't support proxying (even though application publishing tool does). Since everything is written in python adding (or should I rather say hacking in) proxy support was not a big problem. Just edit google/appengine/tools/bulkload_client.py in the SDK and change line 136 from:
to
where "127.0.0.1" is the IP address of your proxy server and 3128 is the proxy port, and change line 138 from:
to:
and it should use your proxy server to upload your data to your application. When I get a chance I will try add proxy support using getopt and produce a proper patch - maybe :)
Of course, this is only needed when you have deployed your app to the Google AppEngine infrastructure and you want to deploy your data, not when you're using the development server included in the SDK.
And that's all there is too it. AppEngine is still in beta and is limited to 10 applications per Google Account (and you can't currently delete your applications once you've deployed them - though this feature is apparently coming) but when it goes live it's going to be big. Hopefully they still allow small applications to use the infrastructure for free.
Next stop, Django.
When my language of choice was perl, I wrote plain ole CGI web applications (if you can call them that) using perl's CGI module.
In the python world though, web frameworks and WSGI seem to be the way to do things, so I've known for a while that I needed to learn one of the many frameworks out there. I spent about a week getting my head around TurboGears and the concepts of ORM a year or so ago using the TurboGears book. After a week I has finished the book and has the sample app working but had no more time left to spend on the project. Obviously, not using it, I've long since forgotten all of the TurboGears specific stuff. I had through to given Django my next try but AppEngine caught my eye in the meantime.
AppEngine has a nice Getting Started Guide which I used to get a simple little application up and running on the local development web server included in the SDK in an hour or two.
Learning from the mistakes of the past, I decided on a project - porting a perl CGI script I wrote a few years ago (a University of Cape Town map using the Google Maps API and some local data I had gathered) to AppEngine. The result is basic but its a start and its here. Hopefully, over time I'll develop it into something useful - maybe add some additional information such as a picture or two, a brief description, a list of departments, etc to each building.
The only problem I has was with bulkload_client.py, a tool for reading bulk data from a CSV file and importing it into the application. We are behind a proxy server, and bulkload_client.py doesn't support proxying (even though application publishing tool does). Since everything is written in python adding (or should I rather say hacking in) proxy support was not a big problem. Just edit google/appengine/tools/bulkload_client.py in the SDK and change line 136 from:
connection = httplib.HTTPConnection(host_port)
to
connection = httplib.HTTPConnection("127.0.0.1", 3128)
where "127.0.0.1" is the IP address of your proxy server and 3128 is the proxy port, and change line 138 from:
connection.request('POST', uri, body, headers)
to:
connection.request('POST', 'http://%s%s' % (host_port, uri), body, headers)
and it should use your proxy server to upload your data to your application. When I get a chance I will try add proxy support using getopt and produce a proper patch - maybe :)
Of course, this is only needed when you have deployed your app to the Google AppEngine infrastructure and you want to deploy your data, not when you're using the development server included in the SDK.
And that's all there is too it. AppEngine is still in beta and is limited to 10 applications per Google Account (and you can't currently delete your applications once you've deployed them - though this feature is apparently coming) but when it goes live it's going to be big. Hopefully they still allow small applications to use the infrastructure for free.
Next stop, Django.
Comments