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

lunes, 8 de junio de 2009

Quick Tip sobre django

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, 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 que traía la pagina donde estaba el JavaScript. Esto lograba que yo pudiera tener acceso a variables seteadas en la session. De esta forma yo tenia los valores en mi código JavaScript. Al pasar a Sun App Server se empezó a ejecutar primero el código JSTL de la pagina y luego el código JSF. Esto genera que no tenga cargada las variables y generaba errores en mi codigo JavaScript.

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 que provocaba que si al cargar la pagina no estaban seteadas las variables en session se volviera a pedir que se cargara la pagina, al ejecutarse este código JavaScript, el código JSF ya se había ejecutado, por lo que en la segunda cargada de la pagina ya estaban seteadas las variables por lo que la pagina cargaba sin problemas y ejecutaba como yo quería. Bueno, esto es todo por hoy, mas adelante voy a quejarme de mas cosas :D

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