While Google’s App Engine is a platform just as things like Windows, *nix, or Sony’s PlayStations are, it is a new one that is sorely missing numerous tools that are readily available on other platforms. For example your OS has at least has command prompt and most likely a graphical file explorer that will let you navigate the file system and view text files. For a remote server you can use telnet/SSH to the remote equivalent of a command prompt and graphical FTP client to get the remote equivalent of a graphical file explorer that will allow you to browse to text file and copy it locally so you can view it.
To to do the same thing on AppEngine it is necessary to write code to serve up the files over HTTP and then have something on your client to save the unmodified result. I found that FireFox liked to mess with the line endings so I ended up using curl to get and save the HTTP response without modification. In this case what I was trying to get was a capture of some internal state to use a baseline for tests, so I didn’t have to manually generate the baseline.
I thought about creating a general purpose RESTful API that was basically the equivalent of FTP over HTTP and did some searching around to see if there were any Python implementations of such a thing. I did find a CGI executable, but that was it and is of no help since GAE only supports Python.
Next I got thinking that my test runner RESTful API could be replaced with a more general API that was basically telnet over HTTP (or SHH if over HTTPS rather then HTTP) along with a client to access it.
As useful as these tools would likely be to folks developing and operating apps on the GAE platform, I have to remind myself that they aren’t strictly necessary to getting Project Fangorn done and that my capital reserves are limited so I need to stay on task.
While I could likely get one or both of these tools done in the time it would take me to finish Project Fangorn, I have no idea how I’d generate any revenue off these tools. If I were a anything other then a very bad salesmen, I might be able to convince the AppEngine team into funding the development of the tools either as their IP or as OSS, but probably about all I could successfully sell are bottles of drinking water in the desert to people stranded on the side of the road.
So I figure I’d post this and least get the idea out there on the slim chance that someone will not only read but also implement it as an OSS project.