jueves, 30 de noviembre de 2006

Django

Django es un marco de trabajo para python que leído mencionar en muchas ocasiones. Supuse que podría llegar a serme útil, ya que me he clavado en serio con este lenguaje de programación, y decidí probarlo.

Instalando Django para windows XP:

http://www.djangoproject.com/

Parece que es una buena idea utilizarlo con una base de datos. Decidí utilizarlo con una vieja instalación que tengo de mysql, sólo que me faltó algo:

http://sourceforge.net/projects/mysql-python


Bueno, pero no podría estar utilizando la laptop para todos estos experimentos. ¿Qué tal mejor en Linux (Fedora 5)?

Para compilar cualquier cosa que dependa de otra, como en mi caso, postgres, se necesita un paquete "devel", (compilar django requiere postgres-devel):

ftp://ftp.is.co.za/mirror/fedora.redhat.com/linux/core/5/i386/os/Fedora/RPMS/postgresql-devel-8.1.3-1.i386.rpm

Además psycopg. Psycopg sirve para acceder postgres a través de python, pero resulta que django apenas va en la versión 1, siendo que ya hay una versión 2 estable. Incluyo la liga al sitio de donde se puede obtener la dos:

http://www.initd.org/pub/software/psycopg/

En teoría, también se puede obtener de ahí la versión 1, pero no la pude compilar porque no encontraba las cabeceras de postgres (y yo que las acababa de instalar :( ... solución). Pero me pasaron las siguientes sugerencias:

Bajar el rpm (no tuve que recurrir a ésta):

http://mirror.linux.duke.edu/pub/fedora/linux/extras/5/i386/python-psycopg-1.1.21-4.fc5.i386.rpm

¡O utilizar el poderoso yum!

[]$ yum --enablerepo=extras install python-psycopg

[Julio 2007] Las nuevas versiones de Django ya usan psycopg2, para usar yum hay que especificar eso, además, en fedora 7 ya no existe extras:

[]$ yum install python-psycopg2

Si se quiere instalar psycopg en Windows, se usa un win-psycopg, que a su vez requiere eGenix.

Otro problema que puede aparecer es el error siguiente al tratar de sincronizar con la base de datos:
No module named DateTime
La solución viene en los faqs de psycopg.

Como ya tenía extras activado, no utilcé la bandera, pero la incluyo por completez, pues el paquete se encuentra precisamente en extras.

Para utilizarlo con fast-cgi es necesario instalar flup. Con easy_install flup, python se encarga. Los detalles de la configuración se encuentran en How to use Django with FastCGI.

Juegos

Desde hace algún tiempo he querido programar un videojuego. Me he dado a la tarea, en mi tiempo libre, de buscar las herramientas necesarias. Como desde hace un buen rato me he vuelto fan de python ;), me llamó la atención encontrar todo un marco para programación de videojuegos. Sin embargo, aunque todo caminó suavemente en Windows, no fue nada trivial echarlo a andar en Linux (a mi computadora aún le faltaban varias cosas).

Versión de Python: 2.4

Por supuesto, quize instalar con todo y PyOpenGL, pero su archivo setup.py requiere de una herramienta:
Easy Instal:
http://peak.telecommunity.com/DevCenter/EasyInstall
PyOpenGL:
http://sourceforge.net/project/showfiles.php?group_id=5988
PyGame:
http://www.pygame.org/download.shtml

Para instalar el paquete completo (con soporte para sonido e imágenes jpeg, png y gif), Fedora 5 requiere tener lo siguiente:
SDL y SDL devel:
http://www.libsdl.org/download-1.2.php
Mixer y Mixer devel:
http://www.libsdl.org/projects/SDL_mixer/
Image e Image devel:
http://www.libsdl.org/projects/SDL_image/
Font (ttf) y Font devel:
http://www.libsdl.org/projects/SDL_ttf/
SMPEG (Fedora 5):
ftp://ftp.pbone.net/mirror/rpm.livna.org/fedora/5/i386/smpeg-0.4.4-9.lvn5.i386.rpm
SMPEG-devel (Fedora 5):
http://rpm.pbone.net/index.php3/stat/4/idpl/2683419/com/smpeg-devel-0.4.4-9.lvn5.i386.rpm.html
SMPEG y SMPEG para Fedora 7:
ftp://ftp.pbone.net/mirror/rpm.livna.org/fedora/7/i386/

Y funcionará :)

SOAP

Los servicios web permiten llamar funciones en algún servidor remoto, éste responde con un documento xml en unicode, que el cliente puede interpretar. Una de las características más interesantes de este sistema es que servidor y cliente pueden estar utilizando plataformas distintas, por ejemplo, java y python.

Para acceder servicios web con python es necesario instalar SOAPpy. Las instrucciones detalladas y algunos ejemplos se pueden consultar en

http://diveintopython.org/soap_web_services/install.html
.

Pero una de las ligas está rota. Logré conseguir las dependencias en los siguientes lugares:
PyXML: http://pyxml.sourceforge.net/
Fpconst: http://www.python.org/pypi/fpconst/
SOAPpy: http://sourceforge.net/project/showfiles.php?group_id=26590

miércoles, 29 de noviembre de 2006

gngeo

Hoy encontré un emulador de neo-geo para linux. Me dí a la tarea de bajar el código fuente, compilar e instalar. Afortunadamente, entre todas las cosas que he bajado e instalado últimamente, ya contaba con las dependencias. Una liga importante para ellas (si no se tienen) es: http://www.libsdl.org/index.php

Sitio oficial:
http://gngeo.berlios.de/

Siguiendo las instrucciones simples:
./configure
make
(su root)
make install

Quedó instalado en:

/usr/local/share/gngeo

Lo cual significa que en '$prefix/share/gngeo', $prefix es /usr/local, esta dirección aparece entre los numerosos mensajes impresos al momento de instalar.

La sección de FAQs del sitio oficial explica claramente cómo ejecutar; para ello se requiere de algún rom, por ejemplo kof95.zip (la parte difícil radica en obtenerlos legalmente, hay un lugar donde cobran los más importantes: www.rom-world.com, así que supongo que han de tener licencia, de todos modos dicen que debes tener el cartucho). Al tratar de ejecutar alguno inocentemente, es posible que aparezcan errores como los siguientes:

The following bios files are missing :

/usr/local/share/gngeo/sp-s2.sp1
/usr/local/share/gngeo/sfix.sfx
/usr/local/share/gngeo/000-lo.lo

Noticia: Se requiere de un archivo llamado neogeo.zip, (no NEO-GEO.ROM), que contiene los archivos faltantes, y no forma parte del emulador.

Puedo asegurar al lector, que si consigue estos archivos, el emulador funciona excelente ;).

martes, 28 de noviembre de 2006

Pydoc en linux

Pydoc es un módulo con la habilidad de devolver la documentación de los módulos de python instalados en tu computadora. Es decir, la genera dinámicamente de modo que siempre aparece la información sobre aquellos paquetes que han ido siendo instalados. (La primera vez que lo usé, creía que era documentación estática como la de java, no me imaginaba porqué debía recurrirse a un servidor para accederla, ahora ya tiene sentido.)

Si bien es trivial tener acceso al servidor de documentación en Windows (hacer click sobre la entrada del menú correspondiete), siempre se me olvida cómo ejecutarlo en linux.

Aquí va mi pequeño recordatorio:
[]$ python /usr/lib/python2.4/pydoc.py -p 8001

Claro, adáptese a la instalación de python correspondiente.