Mostrando entradas con la etiqueta GAE. Mostrar todas las entradas
Mostrando entradas con la etiqueta GAE. Mostrar todas las entradas

sábado, 29 de mayo de 2010

Brand new project running on GAE. What to choose?

I have to build a web project in a very short time (3 weeks)

Features:
Google service integration (spreadsheet, authentication, probably Picasa)
Great template language as non-programmers will add new features using functions in the template context.
Monitoring and controls of the state of the CPU load, data, caches, singletons, etc.
Hight traffic, low cost high availability, that's why we want GAE
I cannot deal with bugs for time and health (:-)) reasons

1) Java, Freemarker, AspectJ, Scala

Advantages:
Fastest environment, a lot of open source libraries (maybe too much), I can choose between three interpreters (Groovy, Scala, Jython)
Disadvantages:
FreeMarker template seems buggy as in GAE the reflection package is not the standard one, I don't want to use Velocity or JSP. Any other great template engine candidate?

2) Jruby
Advantages:
Very productive, vibrant community
Disadvantages:
It is starting to be mature now on GAE and I still do not know anybody that professionally delivers Jruby solutions on GAE, any high traffic web app use Jruby on GAE?


3) Django Solution
Advantages:
Native on Google, Django template engine is lovely
Disadvantages:
I never delivered a project with Django

I also tried Grails but it seems to be slow and buggy on GAE.

After 3 days testing and reading forums of Java technologies, now I am making the demo I prepared in Django, let's see....

jueves, 22 de abril de 2010

Bug using Pyamf with Google App Engine templates

It seems that Pyamf conflicts with the Google App Engine template library.
You may have this error loading a template:

AttributeError: 'module' object has no attribute 'defaulttags'

Perhaps Pyamf includes an older version of Django library .
To workaround write the imports in this order:

from google.appengine.ext.webapp import template
from pyamf.remoting.gateway.google import WebAppGateway

It seems odd but the problem disappears.