Una webapp con
  Google App Engine
                Leo Soto M.
Grupo de Usuarios de Lenguajes Dinámicos Chile
“   ”
import some_c_extension

import ctypes

open(“/tmp/foo”, ‘w’)

s = socket(AF_INET, SOCK_STREAM)
x
import some_c_extension

import ctypes

open(“/tmp/foo”, ‘w’)

s = socket(AF_INET, SOCK_STREAM)
x
SQL
El desarrollo con appengine es
       diferente
¿django-appengine-patch?
http://www.joelonsoftware.com/articles/
     LeakyAbstractions.html
El desarrollo con appengine es
       diferente
webapp
   datastore
  memcache
    urlfetch
      mail
     xmpp
    images
  task queue
google accounts
webapp
   datastore
  memcache
    urlfetch
      mail
     xmpp
    images
  task queue
google accounts
¿Qué les interesa más?
a) Particularidades de AppEngine

b) Desarrollo web

c) Trucos de Python
AppEngine
webapp framework
datastore
“los datos normalizados son para niñitas”
         - Cal Henderson, Flickr
(Ups, no hay full-text search)
(Buuuh, tampoco ORs. Sólo INs)
http://code.google.com/appengine
/docs/python/datastore/queriesandindexes.html
        #Restrictions_on_Queries
modelo de ejecución
   (¿Django es leeeeeentooo?)
quotas
Desarrollo
  Web
templates + herencia = WIN
Me aburrí de los
        &
   (nunca fueron la solución tampoco)
¿Dónde diablos se valida la
        entrada?
     ¿En los modelos? ¿En el request?
Trucos de
 Python
Decoradores
(simples, sólo para registrar funciones)
Funciones que retornan
        clases
    (¿Quién necesita macros?)
Introspección
         y
Atributos dinámicos
(Un parto en Java, 4 líneas en Python)

App Engine