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

lunes, enero 07, 2008

Libros Pythonescos


Pues resulta que los reyes magos me trajeron un par de libros pythonescos.
:D

El primero es The Definitive Guide to Django, el cual está recien salidito del horno, claro que por el envío llegó unas semanas después. De este libro no puedo decir mas que es el más esperado por los usuarios de Django.
El segundo es el Core Python Programming de Wesley Chun, del cual llevo los primeros capítulos y me ha gustado mucho por la sencillez del lenguaje con el que está escrito, además del detalle con el que Wesley explica las cosas, definitivamente es un libro que cualquier pythonista debe tener. Esta segunda edición está actualizada a la versión 2.5 de Python y los cinco años que pasaron desde la primera edición seguramente valieron la pena.

viernes, mayo 18, 2007

Django Fever

La programación para la web no me había llamado la atención hasta hace poco, la idea de aprender PHP u otras cosas simplemente no me atraía. En ese aspecto soy privilegiado, nunca he tenido que usar cosas que no me gustan, y como todo lo que sé lo he aprendido por mi cuenta, nunca me he visto forzado a aprender cosas que no quiero; no sé si esto es bueno o malo pero así es. Ahora que estoy buscando chamba ha surgido la necesidad de aprender PHP, en verdad que anteriormente lo había tratado de aprender varias veces, pero no sé por qué siempre terminaba aburriéndome. Python lo usaba para crear scriptcillos o aplicaciones con interfaces gráficas pero nunca pensé en usarlo para la web aunque ya existían Zope, PSP, Webkit y otros.

Me topé con Django por primera vez al estar buscando ejemplos de aplicaciones escritas en Python para el taller que dí el año pasado en el congreso de Chetumal, en ese mismo congreso Fabien dió una conferencia y un taller sobre Rails, a muchos les gustó la forma en que Rails hace las cosas y no es para menos porque el desarrollo ágil es algo que ningún programador puede pasar por alto.
Entonces, ¿por qué no escogí Rails?, porque no estoy a gusto con Ruby; citando a Matz, el creador de Ruby, cuando le preguntaron por qué alguien familiarizado con Perl o con Python debería cambiar a Ruby respondió: "Si estás contento con con Perl o con Python no tienes que cambiar" y la verdad Python me hace muy feliz. ;-)
Django y Rails se parecen pero también es cierto que tienen sus diferencias, sería ocioso tratar de compararlos, pero como estoy ocioso mencionaré sólo algunas de las grandes diferencias:
  1. Rails es MVC, Django es MTV ;-)
  2. Django tiene una interfaz de administración muy perrona, Rails no.
  3. Rails tiene soporte para AJAX, Django no.
  4. Django tiene soporte para muchos idiomas incluyendo el galés xD, Rails usa plugins.
  5. Rails ya alcanzó la versión 1.0, Django no.
  6. Django es más rápido que Rails.
Por supuesto que la filosofía detrás de cada uno de estos frameworks es diferante y para ser justos aclararé los dos últimos puntos; aunque Django va en la versión estable 0.96, se ha utilizado en producción en sitios con alto tráfico ya que nació en un ambiente periodístico y en cuanto al performance diré que Python actualmente es más rápido que Ruby pero muchos esperan que la versión 2.0 sea más rápida, claro que también todos los pythonistas esperamos con ansias el Python 3000.
Sea cual fuere el framework o lenguaje de tu preferencia con toda seguridad éstos son unos ganadores, así que no dudes en usarlos. No creo que haya pasado la época de PHP pero ya es tiempo de darle agilidad a la web, y no, no me olvidé de CakePHP, sólo que dudo (por favor phperos no me linchen) que podamos comparar un lenguaje que no nació como lenguaje propiamente, es exclusivamente para la web (si ya sé que hay enfermos que usan PHP+GTK :P) y al que posteriormente se le añadió soporte para orientación a objetos con lenguajes que nacieron siendo orientados a objetos y de propósito general; digo PHP todavía tiene su nicho para rato, no por nada estoy tratando de aprenderlo, pero no creo que sería una buena comparación, finalmente el único argumento que da el creador de CakePHP es que el hosting ya está puesto para PHP, pero créanme que hosting como el de Webfaction o Dreamhost por mencionar los más conocidos soportan Django sin problemas y están muy chingones.

miércoles, abril 26, 2006

Django en MacOS X (Tiger)

Pues si, aún no le he instalado Debian a la mini y mientras tanto ando probando un montón de software libre para la Mac, el que me ha causado mas gracia es el Adium, un cliente de mensajería instantánea que hace sonidos de pato. La instalación de este tipo de aplicaciones es trivial, solo dar click y listo; otra forma es utilizando fink que instala una gran cantidad de paquetes à la Debian, o con un sistema de ports ya sea Darwinports, Gentoo, NetBSD y similares, y por último tenemos la instalación a patín, o sea compilando desde las fuentes.
Nada me había parecido tan doloroso como compilar el psycopg, que es necesario si queremos utilizar PostgreSQL como sistema de bases de datos.

Primero que nada instalamos la versión mas reciente de MacPython con todo y sus parches.

Necesitamos instalar Apache 2.0.55 y mod_python 3.2.8 para que Django se sienta a gusto, así que nos bajamos las fuentes desde sus respectivos sitios y compilamos.
  1. wget -c http://www.apache.org/dist/httpd/httpd-2.0.55.tar.gz && wget -c http://www.apache.org/dist/httpd/modpython/mod_python-3.2.8.tgz
  2. tar zxvf httpd-2.0.55.tar.gz
  3. cd httpd-2.0.55/
  4. ./configure --enable-so --with-mpm=worker
  5. make
  6. sudo make install
  7. cd ..
  8. tar zxvf mod_python-3.2.8.tgz
  9. cd mod_python-3.2.8/
  10. ./cofigure --with-apxs=/usr/local/apache2/bin/apxs --with-python=/usr/local/bin/python
  11. make
  12. sudo make install
Activamos el mod_python editando el archivo de configuración de Apache.
  1. vi /usr/local/apache2/conf/httpd.conf
  2. LoadModule python_module modules/mod_python.so #agregamos la línea
  3. /usr/local/apache2/bin/apachectl start #iniciamos el Apache
Después necesitamos instalar PostgreSQL, para lo que recomiendo el paquete de entropy.ch, aquí no hay complicación alguna, solamente hay que crear el usuario postgres después de la instalación. Enseguida hay que ir por las extensiones de egenix que se instalan corriendo el script de instalación.
  1. tar zxvf egenix-mx-base-2.0.6.tar.gz
  2. cd egenix-mx-base-2.0.6/
  3. sudo /usr/local/bin/python2.4 setup.py build
  4. sudo /usr/local/bin/python2.4 setup.py install
Ahora sigue la parte espinosa, decirle a nuestro buen amigo psycopg que tenemos todo lo necesario para que funcione correctamente.
  1. tar zxvf psycopg-1.1.21.tar.gz
  2. cd psycopg-1.1.21/
  3. ./configure --with-postgres-libraries=/usr/local/pgsql/lib --with-postgres-includes=/usr/local/pgsql/include --with-python=/usr/local/bin/python2.4 --with-mxdatetime-includes=/Library/Frameworks/Python.framework/Versions/2.4/lib/python2.4/site-packages/mx/DateTime/mxDateTime/
  4. make MACOSX_DEPLOYMENT_TARGET=10.4
  5. sudo make install
Pinche mamadota!!!, pero nos salvamos de instalar el otro DBMS ;-P
Esta es una decisión personal, a mi me gusta tener un sólo sistema de bases de datos para todo y PostgreSQL es la opción mas robusta para cualquier cosa.

Para no tener que teclear toda la ruta a la versión 2.4 de Python es buena idea hacer una liga simbólica.
  • ln -s /usr/local/bin/python2.4 /usr/bin/python2.4
Ahora ya podemos instalar Django y empezar a jugar con él.

Para este pequeño COMO me he basado en otros que andan circulando por la red, principlmente en el del blog Reprocessed que al parecer está offline, pero se puede ver en la cache de google, y en el de Antonio Cavedoni para la instalación de mod_python. No he encontrado ninguna referencia en español, así que espero que esto sea de utilidad.