Shoes, Cairo y PyGTK

jueves, febrero 26, 2009

Estuve conversando ayer con un amigo sobre toolkits sencillos y rápidos para desarrollar aplicaciones gráficas multiplataforma. Hablamos de FLTK, de ETK, de murgaLua, obviamente del GTK+ y Qt4 y hasta del mismísimo infame Gambas. Es ahí cuando el pana me presenta a "Shoes" <fanfarria con bombos platillos>.

Shoes (a.k.a alfombra, media, chancleta o como te provoque llamarlo =P) es un toolkit muy pequeño y que por sí solo puede hacer cosas realmente impresionantes. Según su creador "... puedes hacer aplicaciones realmente colorídas..." y se lo creo. Para muestra un botón



Está hecho en Ruby pero su sintaxis es tan simple que parece HTML con CSS (claro gracias en parte a los bloques de código Ruby). La cuestión me llamó tanto la atención que decidí probarlo y mi conclusión: es sencillamente maravilloso. El código es tan limpio, tan simple y tan intuitivo que dan ganas de poner a volar la imaginación para desarrollar cuanta cosa se te ocurra.

Y es que el simple hecho de que pueda hacer una ventana con un fondo degradado con tan solo 7 miserables líneas de código me hace sangrar la nariz.
Shoes.app do
background "#F3F".."#F90"
title "Shoooes", :top => 60,
:align => "center",
:font => "Trebuchet MS",
:stroke => white
end

Sin embargo me surgió una pregunta: ¿Por qué Ruby? y e instantáneamente surgió otra: ¿No habrá un Shoes para Python? La respuesta a la segunda es NO. La respuesta a la primera aún la desconozco.

Si aún están leyendo se preguntarán: ¿Y que tiene que ver todo esto con Cairo y PyGTK? Pues muy simple, revisando el código fuente de Shoes me di cuenta que una ventana no es más que un lienzo (o canvas) y que ese lienzo _aparentemente_ lo crean y lo trabajan con Cairo. Suena muy simple, pero créanme... no lo es.

Fue ahí donde se me ocurrió la idea: ¿Por qué no hacer una implementación de Shoes para Python usando Cairo? y pues bueno aquí estoy, leyendo todo cuanto encuentro sobre Cairo y PyGTK. He leído un par de blogs donde dicen como trabajar con Cairo y PyGTK, además de la documentación de Cairo. Entre ellos:

http://blog.rastersoft.com/index.php/2007/06/20/trabajando-con-pycairo-y-gtk/

http://blog.eikke.com/index.php/ikke/2007/02/17/python_cairo_xshape_and_clocks

http://cairographics.org/documentation/pycairo/reference/index.html#reference-index

Apenas he corrido un par ejemplos y todo parece funcionar muy bien. Seguiré investigando y publicando mis progresos.

Cambio y fuera

Instalar IExplorer en GNU/Linux

domingo, febrero 08, 2009

Seguro les ha pasado más de una vez que una estúpida página no sirve si no es con iexplorer. A mi me sucedió con la página de mi banco preferido (Banco Mercantil) y es que para afiliar servicios, cuentas y otras cosas necesitaba generar una "e-Seguridad" que para mi desgracia sorpresa solo se podía generar con iexplorer.

Le di mil vueltas al asunto, consulté con algunos amigos que tenían el mismo problema y todos coincidíamos en lo mismo; no había manera de hacerlo desde Firefox/Iceweasel/Opera/Safari. Mi PC ni siquiera sabe lo que es Windows (ni lo sabrá =P), así que la solución de instalar Windows en una pequeña partición o en una máquina virtual solo para hacer una transferencia está descartada. Mi último recurso era Wine y el famoso IEs4Linux.

IEs4Linux es un script que te descarga el instalador (y todos los archivos necesarios) de Internet Explorer desde la página de Microsoft y lo instala en una especie de sandbox con Wine. A pesar de que parece muy simple, me dió varios errores durante la instalación así que voy a explicar los pasos que seguí para instalarlo sin problemas.

Antes de continuar debo aclarar lo siguiente: Microsoft pide una licencia original de Windows para instalar cualquier programa (incluso para la basura de Internet Explorer) aunque sea bajo GNU/Linux. Si no tienes la fulana licencia estas cometiendo un delito al igual que yo.

Continuemos; primero nos descargamos el cabextract y por supuesto el wine (como root):
# aptitude install cabextract wine

Luego descargamos el ies4linux, en una terminal escribimos (como usuario normal):
$ wget http://www.tatanka.com.br/ies4linux/downloads/ies4linux-latest.tar.gz
$ tar zxvf ies4linux-latest.tar.gz
$ cd ies4linux-*


Ahora para que funcione correctamente, debemos copiar el cabextract dentro de una carpeta llamada tmp (dentro de la carpeta de instalación del ies4linux). Para eso ejecutamos lo siguiente en la terminal anterior:
$ mkdir tmp
$ cp /usr/bin/cabextract tmp/


Finalmente ejecutamos el script:
$ ./ies4linux

Cuando aparezca el asistente seleccionamos la versión de iexplorer que deseamos instalar, el idioma en inglés (EN-US) y quitamos la instalación del flash (puesto que el flash 9 da algunos problemitas).



Hacemos click en "Aceptar" y comenzará la instalación.





Cuando el instalador termine tendremos el iexplorer listo para usar, solo faltaría instalar el flash player (en caso de que sea necesario) y para eso basta con visitar la página de Adobe http://get.adobe.com/es/flashplayer/, descargar y ejecutar.



Ojala y pronto esas páginas dejen de estar casadas con Microsoft para que podamos ser completamente libres de elegir nuestro navegador preferido sin tener que infringir la ley recurrir a métodos oscuros para hacer nuestras tareas cotidianas =D.