lunes, mayo 28, 2007

Fixing Psyche

I was reading the classic text Structure and Interpretation of Computer Programs and I tried to find an article that I read some time ago called Python for Lisp Programmers and after some googling I found Psyche, a Scheme interpreter written in Python.
Psyche allows you to embed a Scheme interpreter into Python programs but its a little old; it has been several years since its last release so I didn't expect to work with a more recent version of Python, I downloaded it anyway and I tried to install it, of course it didn't work but thanks to the wonderful Python shell and Psyche's great documentation I managed to fix the problem. Psyche depends on Plex, a lexical analysis module, so I downloaded the version 1.1.5, I put it in Psyche's directory, replacing the old version and everything just worked out. Now I have Psyche running with Python 2.4 :D

El Violín

Qué puedo decir sino que es una muy buena película, si no la han visto todavía les recomiendo que vayan a verla antes que la quiten de cartelera como bien me dijo el buen Zahori.
El Violín trata de una realidad que está allí y que la mayoría no quiere ver, además de ser una película muy ligada a la música, lo que la hace tener una belleza intrínseca, lo demás que pueda decir sin contar la historia lo pueden leer en cualquier otro lado.

Don Ángel Tavira, el protagonista, es descendiente de los Tavira, una familia de músicos de la Tierra Caliente, que se dedica a la conservación de la música de la región. Francisco Vargas, el director de El Violín, conoció a Don Ángel al realizar un documental sobre la música de Tierra Caliente y posteriormente lo llamaría para hacer El Violín, cosa curiosa porque Don Ángel no había actuado antes pero sin duda es un artista nato porque hace un excelente papel.

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.