wxPython: GUI Universal para Python

February 25, 2007

Desde que apareció Qt y GTK+ han habido muchas ideas para los GUI de Linux. Eso está bien en parte, porque estimula la creación de Proyectos de Software Libre, sin embargo lo malo está en que entorpece las dependencias al usuario final y se cae en la redundancia de aplicaciones: Amarok, por ejemplo está escrito usando Qt y hay gente que reclama su porte a GTK+ para usarlo con GNOME, igual caso tenemos con el GIMP que está escrito usando GTK+ y hay algunos que exigen su porte a Qt.

Bindings de estas librerías gráficas son mas comunes para todos los lenguajes de programación. En este caos de lenguajes de programación y librerías gráficas, surge wxWidgets.

wxWidgets es una capa de abstracción entre rutinas comunes para crear controles y ventanas y las rutinas de GUI nativas de cada sistema operativo. Esto lo lleva a una compatibilidad y velocidad superiores comparados con cada librería gráfica por separado.

Para Python, existe wxPython, un binding entre wxWidgets y Python. Así podemos crear nuestras aplicaciones con GUI sin necesidad de preocuparnos en si las librerías están o no soportadas. El único problema es que wxPython al igual que wxWidgets usan código para crear las ventanas (Como Qt y GTK+), y no hay IDEs libres completos aún para simplificar este proceso.

El único IDE aceptable que he encontrado tras una hora de búsqueda en Google, es wxGlade, que solamente diseña los Widgets. Para escribir código usaremos otras herramientas, como BoaConstructor o Eric3.

Espero que así podamos crear Software un poco mas portable. A propósito… wxPython exige ser el GUI por defecto de Python en vez del TkInter que viene por defecto. A mi parecer tienen la razón. Juzgen ustedes.

NTFS-3G 1.0 liberado!!

February 23, 2007

Leo en VivaLinux.com.ar de que el Proyecto NTFS-3G ha liberado su versión 1.0 considerada estable, que permite escribir y leer en discos NTFS. El Driver funciona con todos los sistemas operativos de Windows que usen NTFS. Además el driver es libre.

Esto permitirá a los que usen discos NTFS poder trabajar con Linux sin miedo a romper su sistema de archivos. Además, así se concluye una larga espera por drivers estables que hicieran este trabajo sin preocupar al usuario medio.

Esperemos pues que Microsoft no cambie totalmente el sistema de archivos en Windows Vista, para que la utilidad de este driver se sienta y que la mayoría de distribuciones lo incluyan ya en sus próximas versiones estables. Así garantizaremos que los asistentes al FLISOL de este año no se preocuparán por perder sus discos NTFS y podremos lograr que mas gente descubra las ventajas del Software Libre.

Para los que no quieran esperar, pueden descargar el driver de aquí.

Proyecto Mono y VB.NET

February 22, 2007

Leo en VivaLinux.com.ar de que el Proyecto Mono ha liberado un Compilador para VB.NET facilitando así la migración a los que quieran pasarse a Linux. La versión soportada de Visual Basic es la 8.0.

Visual Basic ha causado polémica entre programadores de C++ o Java durante mucho tiempo. Rios de tinta se han escrito en Blogs y páginas web que lo tildan de un lenguaje burbuja o un lenguaje barato.

Después de haber programado unos años en Visual Basic (Fue el lenguaje que me enseñaron en el colegio) he llegado a concluir: Visual Basic es y no es un lenguaje malo.

Lo es, porque está enfocado en hacer aplicaciones rápidas y aunque eso es una comodidad para muchos, también es su debilidad. Un programa en Visual Basic es muy dificil de mantener cuando llega a un tamaño considerable y la programación tipo espageti (Por el abuso de “goto”) está a la orden del día. Además la correción de errores es mala. “On Error Go To <foo>” no es siempre la mejor forma de lidiar con los errores. Y quizá lo más importante, está atado a una sola plataforma: Windows.

No lo es, ya que la capacidad de interactuar con otros productos (Como Office y Corel Draw) es muy util en ciertos casos y la rapidez de desarollo es excepcional.

Obviamente Visual Basic está enfocado para aplicaciones corporativas o de empresa, pero sencillas, como un sistema de facturación o algo similar. Para Proyectos de envergadura, ya no es recomendable, porque mantener el código se vuelve difícil.

Opciones parecidas a Visual Basic (Al decir parecidas no digo iguales) en desarollo rápido podrían ser Python y wxPython. (Lenguaje de Programación y GUI). Algunos se decantan por Java, pero la experiencia demuestra que es muy pesado para algunas cosas.

En fin, si Mono no está usando código patentado por Microsoft, bien por ellos. Pero por si las dudas es preferible migrar a soluciones libres. Que va a requerir una inversión, lo va a requerir, pero los resultados se apreciarán cuando una empresa no tenga que pagar licencias solo porque la plataforma de desarollo a quedado obsoleta. En fin… juzgen ustedes.

Rompecadenas.com.ar: ¡Atrevete a Romper Cadenas!

February 19, 2007

El correo electrónico es uno de los servicios mas usados de Internet. Nos facilita comunicarnos con nuestros familiares, gente conocida y pedir ayuda o discutir en listas de correo.

Sin embargo, existen personas que crean mensajes que “obligan” a todo el que los lea a reenviarlos, amenazando con desgracias si no se hace. Estos correos se llaman Hoaxes y son una lacra de Internet que es necesario desterrar.

La saturación de correos es debida en mayor parte a estos correos que tienen por lo general argumentos estúpidos. ¿Quien creería en su sano juicio que mandar 11 e-mails hace que un video en su pantalla?. Lamentablemente mucha.

Los Hoaxes son creados generalmente por compañias que quieren obtener grandes listas de correos para bombardearlos con publicidad indeseada. Pero para llegar a esto han creado lo mas reprobable: Inventar Cadenas de Solaridad.

Estas cadenas, son la lacra de los Hoaxes. Juegan con los sentimientos de las personas y llegan a burlarse del dolor ajeno. Así que debería de haber una manera de acabar con esto.

Rompecadenas.com.ar es una web sobre seguridad que reune una gran lista de Hoaxes famosos. Sería recomendable leerla antes de decidir si re-enviar o no esos correos que nos pasan los amigos. ¡Hay cosas mas serias que merecen ser re-enviadas!. Pueden consultar la lista de Hoaxes aquí.

No re-envies estas nocivas cadenas de mail. Si lo haces no te quejes luego de que tengas el correo lleno de publicidad. Lo peor es que casi siempre perdemos correos importantes. ¡Atrévete a Romper Cadenas! Además informa a los que te remiten cadenas de su sucio y cuestionable origen.

Derrota completa a la DRM

February 13, 2007

Leo en Barrapunto, que unos hackers lograron descubrir la clave de proceso que genera a los cifrados de HD-DVD y Blu-Ray, lo que significa que la DRM de los DVD de Alta definición a sido totalmente derrotada. Pueden leer el post oficial en los Foros Doom9 aquí (En Inglés).

Unido este hecho a la aparición de una Backup Blu-Ray, que al igual que Backup HD-DVD, permite volcar al disco duro todo el DVD en cuestión.

Aclaremos que no han reventado el algoritmo AACS, si no que han conseguido obtener las claves de desencriptación y volcar al disco duro. Eso significa, que aún falta crear alguna forma para reproducir los DVDs sin necesidad de volcarlos a disco duro.

El autor de Backup HD-DVD y Backup Blu-Ray, ha liberado el código fuente de ambos proyectos. Los interesados deben ir a la página de Doom9. Además, ya existe un servidor que tiene claves de HD-DVD y Blu-Ray. La dirección en cuestión es: AACS Keys. Ofrecen para descarga el Backup HD-DVD solamente, ya que el Backup Blu-Ray aún está en estado de pruebas.

Esto demuesta que la gente rechaza el DRM y los intentos de quitarnos nuestra libertad han fracasdo otra vez. Espero que alguien mejore a Backup HD-DVD y Backup Blu-Ray y pronto los veamos en algunas distribucciones Linux, ya que aún nadie los a portado. Así lograremos un mundo libre una vez más.

Compilar módulos sin compilar todo el Kernel

February 10, 2007

Compilar el Kernel Linux es una cosa que comunmente se deja a los “geeks”. Además es preciso tener algunos conocimientos profundos del hardware a instalar para poder así elegir que compilar dentro del kernel.

En Gentoo disponemos de la utilidad genkernel, que compila el núcleo detectando el hardware, y en otras distribuciones como Debian, núcleos precompilados con muchos drivers como módulos.

¿Pero que pasa si tenemos un módulo que no fue compilado y que necesitamos para algo, como el USB?: La respuesta mas simple sería: “Recompila el núcleo”. Pero para los usuarios principiantes y/o usuarios avanzados que no pueden desperdiciar un tiempo como es el que demora el compilarse un Kernel (Un kernel demora horas en compilarse), debemos buscar otras alternativas.

Gracias a Bulma.net, he encontrado esta forma práctica para compilar módulos del kernel:

Nota: Se supone que todos los comandos deben ser ejecutados como root.

  1. Descargamos el código fuente del Kernel: Bajémonos el código fuente correspondiente a nuestro kernel. Para saber que Kernel estamos usando en una terminal escribimos: “uname -r”. El número que obtengamos en formato x.y.z es la versión de nuestro Kernel. Ahora nos dirigmos aquí y elegimos la versión del kernel que tenemos y nos la descargamos y descomprimimos.
  2. Buscamos los módulos necesarios: Una vez que tenemos nuestro kernel descomprimido, debemos averiguar que módulos vamos a compilar. Para eso nos vamos a “/usr/src/linux” (O donde descomprimiste el Kernel) y escribimos “make menuconfig”. Navegamos por los menus y elegimos los módulos. Para saber donde están, hacemos click en el botón “Help”.
  3. Compilamos los módulos: Una vez que ya sabemos en que carpetas están los módulos, podemos compilarlos. Para eso escribimos “make SUBDIRS=’ubicación_de_los_modulos’ modules”.
    Ahora los módulos elegidos se compilarán. Aunque sean sólo esos módulos, tomara tiempo (Al menos 30 minutos)
  4. Instalamos los módulos: Ahora que compilamos los módulos, debemos instalarlos en donde se encuentran los otros. Para eso, copiamos los módulos (archivos con extensión .ko) deseados a la carpeta de módulos con el comando: “cp /lib/modules/’version_kernel’/'ubicacion_en_kernel’”. Si la carpeta no existe, la creamos con “mkdir ‘carpeta’” y luego copiamos.
  5. Cargamos los Módulos: Ahora para que los módulos queden configurados debemos actualizar las dependencias. Para eso escribimos “depmod -a”. Esperamos unos minutos (1 a 4 minutos) y ya tenemos los módulos listos. Ahora si queremos cargarlos, usamos “insmod ‘módulo_deseado’”.

Así hemos compilado nosotros mismos los módulos que nos faltaban para instalar algún dispositivo. Espero que les sirva de utilidad.

Wormux: Adelanto a FreeBound

February 5, 2007

Leo en Meneame, que se ha lanzado la versión 0.90 de Wormux un juego parecido a GunBound, en el cual se tienen como personajes a las mascotas del Software Libre. El software está liberado bajo la GPL.

Wormux, tiene versiones para Windows, Linux e incluso tiene un LiveCD, que permiten jugarlo en varias arquitecturas. Además el estilo de los gráficos es 2D, lo que recuerda a Worms y a GunBound.

Me sorprende, que aunque sin la premisa “Parecido a GunBound” existan juegos libres que se le parescan, demostrando así que el Software libre es beneficioso para todos.

Gracias a Wormux, también he podido conocer otros juegos similares como Hedgewars .

Sin embargo esto no significa que FreeBound desaparesca. Estos proyectos libres, pueden servir de inspiración o como ayudas claves en el desarollo (Por algo son libres) y eso podría ayudar al avance de nuestro código.

Si no ha habido alguna liberación de FreeBound es por motivos personales que explico en un post anterior. Si por ahora quieres jugar GunBounds libres, te recomiendo Wormus o Hedgewars.

Novell hace una aplicación a petición

February 2, 2007

Leo en Barrapunto, que Novell ha empezado el concurso “Make it with Mono” (Hazlo con Mono, en Inglés), en el cual Novell desarollará una aplicación en Mono de acuerdo a las votaciones de los usuarios. La aplicación será GPL.

Y si van al sitio oficial, verán que las aplicaciones “en portada” son las que piden un Autocad libre o aplicaciones GPS. Incluso añadí mi granito de arena y pedí “MonoBound” (Un GunBound en Mono).

¿Pero que tipo de aplicaciones puedo sugerir?. Pues bien, para responder esa pregunta, copio aquí la FAQ.

3. What kind of programs can I suggest?

Anything! Well, anything that can feasibly be programmed in a few weeks — so hulking great office suites are out of the question. Think of a utility, desktop tool or game you want, and suggest away.

O que traducido sería:

3. ¿Que tipo de programas puedo sugerir?:
¡Cualquiera! Bien, cualquier cosa que pueda ser facilmente programada en pocas semanas - así que pedir grandes Suites Ofitmáticas está fuera de tema. Piensa en algo de utilidad, herramienta de escritorio o juego que quieras, y sugiere ya.

No soy ningún experto en Autocad para asegurar de que hay clones funcionales para los arquitectos, pero podemos coger su código fuente y prepararles un front-end mas agradable. Sobre las aplicaciones en GPS, podrían ser una gran ayuda para el usuario.

Las votaciones no están aún abiertas, pero si lo está el registro de iniciativas a ser programadas. La sugerencia ganadora será programda y los que sugieran los 30 proyectos mas votados ganarán un polo de Mono.

Muy bien por Novell, pero eso sí… nada de pedir cosas relacionadas con Windows. Con el acuerdo de Novell y Microsoft uno nunca sabe….