Two days after my last post. iBraining has now a reminder system, which works. It's able to send mail/reminder to any user which suscribe for. It's now features complete (like I wanted at the beginning ;-) ), until new ideas.
Sure, it's not GAE which do that, with its own limitations : no cron, no massmailer (only 3 to 5 mails by minutes are allowed). I had setup another web service on alwaysdata (wonderful python hosting service), which communicate with ibraining main site, in a restful way. It's a little bit complex, compare to a native solution, but a lot easier than if it was done on gae.
But it's a big day (and it's the 1st september). Users can now setup a "coach", to help them to train regularly. The next big thing is a new game.
Google had just released a Google App Engine Cookbook, and I had added a recipe How-to put any python object in a DataStore ;-), and find a lots of usefull tricks.
I really need to release a version of jbrout 0.3, which use exiv2, with the pyexiv2 python bindings. Just need to find the time !
I've got a new secretary : sandy ;-). I really like the concept behind this appointment/reminder service. You can manage easily your appointments by mail. It's just what I needed. And the best thing : you can snooze a reminder ;-) (which is boring on google agenda)
I really love the apis of google. Here is a simple translator using the google translate javascript api. It's amazing how it's simple.
Except that, ibraining is updated each week. Recently, new modal popups, new graphics ... And in a near future : a new game. And perhaps a way to set a reminder to remember to play regularly (But GAE doesn't allow to send more than 5 mails by minutes ;-( )
A lot of changes on iBraining ! Yesterday I had pushed a new revision with lots of changes. The home page is lighter. In fact, a lot of "403 over quotas" were presents. So I decided to review completly the page, to make less database calls (it seems they are always presents ;-( ).
A new game appears : "colors". And a new google adsense tower is now present on the page's right (need to pay the domain name and perhaps "more quotas" in the future).
I really need to profile my app, to avoid theses "over quotas" (I had already profiled it, but except the google api calls : I really don't understand where the real problem is). BTW, Google App Engine is really great.
update 21/07/2008 : no more 403 quotas exceeded. After some profiling I had removed problems.
I'm green ;-) (I don't know if we can say that in english). But me, I can ;-). I've made a big mistake, by crashing the original website sources. In fact, I was working on a new version which was pushed by mistake. This version is full of bugs/exceptions. No ways to revert back sources on alwaysdata.com ;-(
So I decided to change the DNS of my gandi domain, to redirect to my google app domain "ibraining.com" (which was in construction). Ibraining on alwaysdata is dead. So I had just the time to finish the version on appspot, and migrate users base, during the dns propagation. And here is the new ibraining !
The good news is that : now ibraining is on a gae account ;-)
But I will have a lot of works to migrate the 30000 scores, and finish the work ;-(
Should I migrate iBraining on Google App Engine ? I'm disappointed. iBraining is already a python app which works very well on alwaysdata.com (which is a very very very good hosting provider). Servers are really speed, ssh is enabled, and all good python libs are available.
I'd made an iBraining version on GAE, which works very well too. The only thing I've done : I had changed the db backend : a complete denormalization of the database to be able to store datas in BigTable. It was a hard job, but not as difficult as I thought. The code just work, like expected, because I used the wonderful webpy 0.3, with mako templates.
It's a lot easier to work on GAE : no needs to deal with a second db for tests, fastcgi tricks, .htaccess and rewrite rules. If it works on local, it works on GAE. It's a real breeze to administrate too !
But it will be a big job to migrate domain and datas ;-(. I don't know yet if I will migrate or not. But I need to take a decision soon.
Google open its GAE to the public, and announce the prices, but it will stay free under some quotas. It comes with a new images api, a new cache api, developped by the guy of memcached.
The so waited, image api is a little poor, it can only do what picasaweb do : crop, resize, transform (rotate/flip), ... as long as it seems to reuse picasaweb api on serverside (and PIL on dev side). No way to combine images, or create some pixels arts ;-(
The only thing which really miss now : it's a cron system. But, like I said in the past, I really see some neat entries in the yaml config to be a able to cron a script.
Google make a big jump in the web cloud computing. And brings python to the lights. Big news !
My newly website takes forms. A lot of new features are in place (rss by tags, kind of wiki to edit pages ...). Sure, I reinvent the wheel since I decided to code all myself : but It lets me dive into GAE and bigtable. It's really amazing how it's easy and quick to code that. But now, I'm pretty sure I will migrate all my web pages here. It will be easier for me !
Sure, there are some details to review. But The last thing I'd like to add, for prime time : it's a simple comment system for posts and pages. It should take 15 minutes ;-)
Thanks Google (for gae), thanks Aaron (for webpy), thanks Guido (for python)
Another interesting post not from me ;-). Here are some tricks and tips, I store it here, for the future.
http://popcnt.org/2008/05/google-app-engine-tips.html
It's going to make 2 weeks without touching GAE. I'll need to upgrade to 1.0.2, and continue my investigations.
At this time, cron is not available on GAE. But in the future I see well a new kind of yaml entry which will permit to use a cron system ;-)
Currently, it's possible to make a cron job, by fetching an url of its own account, by using webcron.org. I test it since some days, and it works well with my GAE account.
Don't expect to make heavy job, due to gae limitations. But for simple job ; it works well.
Edit 23/05/08 :
It seems that webcron has got some real trouble since some days. I found onlinecron which works like a charm.
|