Volvemos a los articulos tecnicos. :D
Para un proyecto particular que tengo estoy realizando una aplicación sobre django. En esta aplicación tengo en un momento que servir imagenes, pero aqui me encontré con un problema. Como mi server django esta mapeado al root de mi url todos los request pasan por el mismo, asi que para poder servir una imagen tengo que pasar por el.
Les dejo lo que hice como tip para que ustedes tambien puedan hacerlo en sus casas.
Primero definamos una constante PROJECT_ROOT que dice donde esta el root del proyecto en el FS de la maquina donde estamos, luegos en el archivo urls.py creamos una entrada de la forma (r'^imgs/','image'), que lleva a la función image en nuestro view por defecto (asumiendo que lo seteamos, sino ponemos 'proyecto.un_archivo_py.image').
Luego copiamos nuestras imagenes en PROJECT_ROOT/imgs.
Cuando nos llega el request a la funcion image hacemos lo siguiente:
file = open(settings.PROJECT_ROOT+request.path)
return HttpResponse(file, mimetype="el mimetype de la imagen, ej. image/jpg"
Saludos y suerte desarrollando sus aplicaciones en django.
PD- Soy el unico que esta teniendo problemas con el formato del texto en esta blogger?
lunes, 8 de junio de 2009
Quick Tip sobre django
lunes, 2 de junio de 2008
Lo prometido es deuda
Para la gente que me vio personalmente el ultimo sábado sabe el motivo de ese titulo, aunque el estilo del post va a ser distinto de lo que ellos esperaban.
Bueno, como sabrán Google ahora esta proviendo un servicio de hosting de aplicaciones Python en App Engine. En el mismo pienso desarrollar una aplicación similar a Google Docs, pero que permita el diseño de diagramas de clases UML en colaboración entre varios usuarios. Así que este post es para empezar con la fase de recolección de requerimientos, asumo que la mayoría de las personas que entran acá son programadores así que díganme, que esperarían que se pueda hacer con un software de este estilo?
A si les interesa lo mas seguro que la url del nuevo servicio sea http://fabgonz.googlepages.com/ que por ahora no tienen nada
martes, 25 de marzo de 2008
The world Vs IE
Bueno, este post va a ser pequeño pero va a tener contenido, hace un par de meses en un post anterior la dejaron un comentario(el segundo el de Peti) que decia que el coso de Google era negro, yo lo miraba y lo veía así:

Y entonces no entendía que era lo que quería decir con lo del coso negro, hasta hace unos días cuando entre al blog desde IE y vi que el buscador de Google se veía así:

Notan la diferencia? Bueno, el motivo de este post es que navegando hoy me encontré con lo siguiente Save A Developer. Upgrade Your Browser. es un sitio para eliminar a IE6 de la faz de la tierra (igual mi problema no se soluciona con eso, el problema esta también en IE7 y Opera 9.25, pero no en Safari, detesto que de los 4 browsers mas populares no haya 2 que hagan la mayoría de las cosas iguales[Safari y Firefox manejan cosas de JavaScript distinto]) pero igual, aunque eso no solucione el problema voy a agregar el script de esa pagina a la mía, para que la gente que usa IE6 sepa que tiene una alternativa.
Agrego una cosita mas, odio que existan empresas como la mía en la que no quieren upgradear a IE7 por lo menos, porque saben que van a tener que volver a probar nuevamente todos los sitios web que tenemos por las dudas y lo quieren hacer.
Si les interesa encontre quien era el culpable, la tabla tenia una tag bgcolor="#fff" que por lo visto era procesado incorrectamente en IE y Opera y no en Firefox o Safari
jueves, 17 de enero de 2008
Hablemos nuevamente de cosas tecnicas
Hoy hablaremos nuevamente de cosas técnicas, y siguiendo con el post anterior esto es también un rant.
En este caso me voy a quejar de los problemas que le genera a la comunidad de programadores Java el hecho de que haya muchas versiones de los servidores J2EE. Osea, esta muy bueno la variedad y la idea del "Code once, deploy everywere" pero genera que cada vez que hacemos código tengamos que tratar de trabajar siempre con el ambiente lo mas parecido al que supuestamente va a ser el de producción (con todos los problemas de licencia que ese genera[coughtWebSpherecought]) y ademas cuando al servidor objetivo de nuestro programa cambia, también debe de cambiar nuestro programa, por ejemplo, tenemos que dejar de incluir ciertas librerías e incluir otras que cambiaron entre los servidores (ese va a ser otro post, un rant sobre la inclusión de librerías cuando usamos muchas librerias)
Bueno, estos problemas no son tan complejos como otros que se generan, uno que sufrí hace poco fue pasando de Sun App Server 9.1 a JBoss 4.0.4. En JBoss había hecho una forma de pasar parámetros desde un Backing Bean que usaba en unas llamadas JSF a un código JavaScript usando JSTL. El asunto es que en JBoss el Backing Bean se ejecutaba antes de que se ejecutara la sentencia
Yo realizaba esto en dos diferentes secciones de mi código, en una podía setear las variables antes de mandar cargar la pagina, por lo que el problema se soluciono fácilmente, en la otra parte la solución fue agregar al código una sentencia
Por ultimo los dejo con unas preguntas. Alguien sabe si hay alguna JSR que defina como debe de ser el comportamiento que describí para saber cual de los servidores es el que esta en falta? Y la otra es alguien sabe de alguna otra forma de implementar lo que estaba queriendo realizar?
-- PD -- a la persona que entro buscando www.zune.com, le comento que la dirección es en realidad www.zune.net