Foros del Web » Programando para Internet » Python »

Instantretro, app para subir y modificar fotos. Webapp en appengine

Estas en el tema de Instantretro, app para subir y modificar fotos. Webapp en appengine en el foro de Python en Foros del Web. Estaba charlando de InstantRetro, un proyecto de Arturo Jamaica con @razpeitia vía chat y me pareció que sus observaciones al revisar el código pueden ayudar ...
  #1 (permalink)  
Antiguo 01/06/2011, 19:50
Avatar de cvander
Moderador
 
Fecha de Ingreso: abril-2001
Ubicación: Ciudadano del mundo
Mensajes: 13.638
Antigüedad: 23 años
Puntos: 1792
Instantretro, app para subir y modificar fotos. Webapp en appengine

Estaba charlando de InstantRetro, un proyecto de Arturo Jamaica con @razpeitia vía chat y me pareció que sus observaciones al revisar el código pueden ayudar a varios que estamos aprendiendo python observando el código de otros.

https://github.com/ajamaica/InstantRetro

Esta app sirve para subir y modificar fotografías con efectos retro (lo que hizo famoso a Instagram) y tuvo muy buena acogida en su app para Chrome.

La aplicación en acción está aquí:
http://www.instantretro.com/
__________________
- Christian Van Der Henst
Platzi
  #2 (permalink)  
Antiguo 03/06/2011, 09:05
Avatar de razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 19 años, 1 mes
Puntos: 1360
Respuesta: Instantretro, app para subir y modificar fotos. Webapp en appengine

Una recomendación es leer y seguir la guía de estilo.

PD: Hay otras cosas que me gustaría comentar pero no puedo hacerlo en publico.
  #3 (permalink)  
Antiguo 03/06/2011, 09:23
 
Fecha de Ingreso: junio-2011
Mensajes: 5
Antigüedad: 12 años, 10 meses
Puntos: 10
Respuesta: Instantretro, app para subir y modificar fotos. Webapp en appengine

Yo personalmente (siendo mi código) arreglaría lo siguiente :
  1. Guardar Img en Google Storage no en la DB?
  2. Guardaria tamaños de las imagenes en pixeles
  3. Usaria otra clase de llave en lugar de usar los hashes
  4. Usaria otra clase de llave en lugar de usar los hashes
  5. Separaría los datos de la WSGIApplication a un Url.py
  6. Agregaría mas estilo
  7. Hay unos problemas con los indexes (por no haberlos creado desde un inicio)
  #4 (permalink)  
Antiguo 03/06/2011, 20:23
Avatar de dual3nigma
Colaborador
 
Fecha de Ingreso: febrero-2010
Ubicación: Ciudad de México
Mensajes: 295
Antigüedad: 14 años, 1 mes
Puntos: 122
Busqueda Respuesta: Instantretro, app para subir y modificar fotos. Webapp en appengine

tendrias que tener más cuidado con tu "sensitive data" como facebook_app_id, facebook_app_secret.

Cosas como estas O.o???:

Código Python:
Ver original
  1. query = db.GqlQuery("SELECT * FROM Foto ORDER BY date DESC LIMIT 0, 50")
  2.     fotos = list()
  3.     c=0
  4.     for q in query:
  5.         if q.shared:
  6.             fotos.append(q)
  7.             c=c+1
  8.         if c==5:
  9.             break

mejor asi
Código Python:
Ver original
  1. fotos= db.GqlQuery("SELECT * FROM Foto WHERE shared = TRUE ORDER BY date DESC LIMIT 5 ")

o asi

Código Python:
Ver original
  1. consulta = Fotos.all()
  2. consulta.filter("shared =", True)
  3. consulta.order("-date")
  4. fotos = consulta.fetch(5)

por otro lado, que tal si defines una variable global para evitar este tipo de cosas, requerda que asi es más fácil que los que descarguen tu código puedan hacer pruebas

Código Python:
Ver original
  1. urllib.quote('http://www.instantretro.com/view/'+str(foto.key()))

tambien en esta parte:

Código Javascript:
Ver original
  1. var woo_settings = {idle_timeout:'300000', domain:'instantretro.com'};
  #5 (permalink)  
Antiguo 04/06/2011, 00:07
 
Fecha de Ingreso: junio-2011
Mensajes: 5
Antigüedad: 12 años, 10 meses
Puntos: 10
Respuesta: Instantretro, app para subir y modificar fotos. Webapp en appengine

Código Python:
Ver original
  1. fotos= db.GqlQuery("SELECT * FROM Foto WHERE shared = TRUE ORDER BY date DESC LIMIT 5 ")

Esto esta es la mejor solución (no es que no sepa GQL) el problema es que los indexes no estaban así desde el principio y al tratar de re escribirlos google sigue "Building". El campo de shared se agrego muy a la fuerza despues. Parece que google no cambiará proximamente mis indexes y no me permite hacer este tipo de consultas esta el momento. Recuerda que una base de datos como Big Table no puede ordenar o sortear sin tener indexes validos. Es una práctica horrible pero fue mi solución temporal


Última edición por ajamaica; 04/06/2011 a las 00:23
  #6 (permalink)  
Antiguo 04/06/2011, 09:15
Avatar de dual3nigma
Colaborador
 
Fecha de Ingreso: febrero-2010
Ubicación: Ciudad de México
Mensajes: 295
Antigüedad: 14 años, 1 mes
Puntos: 122
Respuesta: Instantretro, app para subir y modificar fotos. Webapp en appengine

fair enough, entonces por lo menos podrías ponerlo de esta manera:

Código Python:
Ver original
  1. query = db.GqlQuery("SELECT * FROM Foto ORDER BY date DESC LIMIT 0, 50")
  2. fotos = [q for q in query if q.shared][:5]

o asi:

Código Python:
Ver original
  1. query = db.GqlQuery("SELECT * FROM Foto ORDER BY date DESC LIMIT 0, 50")
  2. fotos = filter(lambda q: q.shared, query)[:5]

Etiquetas: appengine, django, instantretro
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta

SíEste tema le ha gustado a 2 personas




La zona horaria es GMT -6. Ahora son las 09:47.