Archive for August, 2008

say hola to google app engine!

Sunday, August 17th, 2008

Well, I bit the bullet and moved the front page and administration portions of holaservers.com over to google app engine.  It was a fair amount of work, and you might be asking why.  Well, here are a few reasons

  1. At good old united online, quite a bit of money and effort was expended trying to keep the front page highly available and serving fast.  Well, would be nice to get such services nearly for free.
  2. A good excuse to learn some more python.
  3. Kind of because I could.  I had much of the required information available via web services, so it wasn’t TOO hard to move things over to google.
  4. If a user is logged into Gmail and on holaservers, I can send email via their Gmail account.  I am hoping this is huge.  It means that I am not sending any unsolicited email from spack servers.  Folks are really just sending to their contacts via their Gmail accounts.
  5. Maybe I could go speak at a conference about it.  I have done (I think) a pretty good proof of concept for moving portions of legacy systems to google app engine.

So why not move everything?

  1. At the heart of holaservers is an ftp server.  Kind of the vision for getting stuff to your site.  Since google AFAIK only listens on port 80 for their stuff, ftp is out of the question.  I guess I could get a flash / java / whatever file uploader working that speaks my webservice, and there you go.
  2. DNS.  bob.holaservers.com would have to be set up as a different application to resolve to google.  You only get ten, so there you go.  Kind of the same story with bob.com.

As part of the move, I got my stuff working on selenium again.  SO cool!  It has caught many a bug.  Probably the hardest thing about moving over was breaking cache.  I wrote a little web service proxy to handle my old javascript requests and the app engine really tried to hang on to cache.  I ended up sending everything through a single method that included a .epoch variable to break on through.  I also needed to add something to proxy through the remote ip address securely since I depend on such things quite a bit.

Python huh?  Yeah, python.  Got to admit that it has been a little rough going.  I got paid to learn perl while a math grad student at BYU, and continued to learn it on the job for seven years at united, et. al.  While at united I got paid to do some java training and the church has been kind enough to pay me over the last year to learn more java.  So for perl and java, I could spend quite a bit of time learning this and that.  Python I have really just tried to get things done and don’t have any sort of big picture.  “Python” has also meant django, which has a learning curve all its own.  And since I only work on the stuff nearly each night, I have to keep relearning how to get the size of an array, etc.  It took me a good twenty minutes to get a couple email canonization regular expressions working tonight.  Perl would have been wire speed.

Enjoy!

Earl