Building Rallyhat: Up into the cloud

It pays to have friends who have connections. After reading my blog posting about the rise of the app cloud I got an IM from Marc Grabanski asking me if I wanted an invite to get in on Google App Engine. Needless to say, I said yes.

So I have an account up there now, but nothing to show you guys yet. The tutorials they have are actually quite clear and make sense. What makes it even more ironic is that all you can use is Python (which I'm learning) and runs Django 0.96 standards (although you can use dev versions if you like). Is that fate trying to give me a hint or something?

Anyway, it looks like it will be trivial for me to redo my database structure so that it fits in nicely with BigTable. I need to massage the data in the new format and then find a tool that lets me upload that up into BigTable itself. My data is simple enough so the fact that I can't do joins won't really matter. All my data can be per row in a database anyway, the relational stuff just makes it easier to write code. Or at least I've found that when doing stuff with Cake.

As far as Rallyhat Extreme Alpha goes, I've got it working in that you can do the following:

  • pick your teams and date range
  • see the list of games and pick which ones you want to go to
  • plot the stadiums on a map so you can see distances

The UI isn't pretty so I have lots of work on making that easier to use. But I am excited. Once I figure out how to create driving-distance stuff dynamically it will be even cooler.

I have to say that I have noticed that the Python "way" is quite different from the PHP "way". Maybe it's more accurate to say the Django "way" is different from the PHP "way". Django has deliberately limited what you can do in their templates out-of-the-box. Yes, you can write custom code for stuff in templates by extending it yourself (the documentation is actually quite clear on how to build them) but out-of-the-box you can only do so much. Frustrating when you come from the PHP world where you are able to put PHP code in your templates to accomplish certain tasks. You can't just dump any old Python code in there, as I have found. Much of what I'm trying to accomplish simply needs to be done in a different place, as a lot of the form-processing magic in both CakePHP and PHP itself has hidden that from me.