Asamblea General del GLUC

Este jueves que pasó fue la reunión de Asamblea General del GLUC. La Asamblea General del GLUC se reune cada semestre y es el máximo ente decisorio del GLUC. Para esta ocasión sabíamos que iba a ser una reunión dura, el tema principal a tratar era la realización de una reforma a los estatutos del grupo propuesta por la Junta Directiva. El objetivo de la reforma era llenar algunos vacíos que teníamos en los estatutos anteriores y definir una mejor organización para el grupo. La reunión contó con la presencia de 23 personas, discutimos por al rededor de cinco horas seguidas. La jornada fue bastante extenuante, pero al final, tras unas pequeñas modificaciones, logramos aprobar los 63 artículos de los nuevos estatutos. Fué una reunión con bastante participación por parte de todos los miembros del grupo, eso es algo que me gustó mucho.

Además de los estatutos, otra importante tarea que tenía que tomar la Asamblea General del GLUC era la de escojer una nueva Junta Directiva para el nuevo semestre académico. Aunque los candidatos fueron pocos, creo que al final se escogió un muy buen grupo.

Definitivamente estoy muy optimista con el GLUC, este semestre ha empezado muy bien, la asamblea fué muy participativa, cada vez hay más grupos de estudio, probablemente la universidad nos financie otro proyecto, y ahora tenemos una mejor organización gracias a los nuevos estatutos. ¡Vamos con todo para este semestre!

Hablando de grupos de estudio, esta semana se reinician actividades en el Grupo de Mono; pienso hacer propaganda entre el grupo de la Celula de .NET que hay en la universidad, vamos a ver si se animan a trabajar con software libre. Por otro lado, ha surgido un nuevo grupo de estudio en Blender, el cual inicia con un curso de esta herramienta. Creo que voy a inscribirme al curso, siempre me ha gustado mucho todo esto del modelado y animación 3D, lástima que no tenga mucho talento :P. También tengo pensado mencionar a Wings3D como otra excelente herramienta, a mi modo de ver (al menos es muy fácil de usar).

Cairo

Cairo

Por estos días ando experimentando con Cairo + Gtk# en Mono. La ídea es que Cairo parece ser una muy buena alternativa para se usada en UMLCanvas# en el futuro. Además, dado que parece que GnomeCanvas pronto quedará obsoleto, dado que Cairo ahora es la base para GTK+, parece que esta librería representa el futuro en cuanto a gráficos vectoriales.

Comenzar con Cairo en Mono ha sido bastante dificil; existe muy poca documentación y casi ningún ejemplo. Otro problema es que, al parecer, no hay un binding de GtkCairo para Mono, con lo cual hay hacer uso de PInvoke. Pero bien, hay que seguir experimentando, pues Cairo se ve muy interesante.

Este es un screenshot con cairo:

screenshot

También he escrito un par de apuntes acerca de UMLCanvas# y Cairo en el blog de MonoUML

GLUC

El próximo jueves es la Reunión de Asamblea General del GLUC. Durante estos días está abierta la convocatoría para nuevos miembros, y aquellos que ya lo sean, deben renovar su membresia. También se escoje una nueva Junta Directiva, se reforman los estatutos y se realiza la planeación para el próximo semestre. Esta etapa en el GLUC siempre me ha parecido muy interesante, es como el renacer semestral del grupo.

Hablando de renacer, otro grupo que también vuelve al juego en estos días es el Grupo de Estudio en Mono, el cual había salido a vacaciones hace unas semanas y pronto, aprovechando la Asamblea del GLUC, comenzará de nuevo actividades. Creo que hay muchos temas interesantes que podríamos tocar este semestre.

Semana Santa

Las dos semanas que pasaron fueron de muy intenso trabajo en la universidad. No he tenido mucho tiempo libre, no he podido dedicar tiempo a mis proyectos y ni siquiera he podido escribir en el blog. Afortunadamente ya llegó la Semana Santa y ahora tengo bastante tiempo. Aunque sólo es por una semana, creo que este receso de la universidad me cae como anillo al dedo; de verdad que necesitaba un descanso.

Estos primeros días de Semana Santa los he dedicado a descansar mucho. Prácticamente no he encendido el PC más de quince minutos en un día, para revisar el correo. Ahora que me siento un poco revitalizado, tengo pensado en repartir estos pocos días libres en unas cuantas cosas concretas: MonoUML, el Tutorial de Gtk#, unas cosas pendientes en la universidad y, por supuesto, divertirme un poco y disfrutar de la semana. A propósito de esto último, aprovecho para comentar que Popayán, la ciudad en donde vivo, es reconocida por tener las mejores celebraciones de la Semana Santa en el mundo.

Como ya dije, en estos días pienso dedicarle bastante tiempo a MonoUML. Mario y Rodolfo han estado haciendo varias cosas muy interesantes en el proyecto y eso me entusiasma mucho. Mi meta es poder tener lo más rápido posible la nueva versión de UMLCanvas#. Una cosa importante es que todo lo que haga en el proyecto, de aquí en adelante, lo escribiré en el nuevo blog que ha creado Mario exclusivamente para el proyecto.

Por otra parte, después de bastante tiempo sin trabajar en el Tutorial de Gtk#, he comenzado con el octavo capítulo. Espero terminarlo para el viernes, con lo cual completaría los 4 capítulos que me comprometí a escribir. De ahí tengo pensando trabajar en homogeneizar un poco todos los capítulos escritos hasta el momento para después tomar otros 4 capítulos. Creo que todo va muy bien por este lado.

En el Grupo de Estudio en Mono del GLUC también estamos en vacaciones. Lo último que hicimos fue hacer un par de cosas con ADO.NET. En particular estamos haciendo varios experimentos con MySQL y PostgreSQL. Por cierto, me gusta mucho PostgreSQL, aunque todavía no lo conozco muy bien, lo poco que he hecho me ha llamado mucho la atención. Con respecto a MySQL , hay algo que me disgusta: su licencia dual y su imposibilidad de uso en proyectos que no son GPL (al estilo de QT). Definitivamente me gustan mucho las licencias permisivas como la MIT-X11 para librerías (como las de Mono). Me parece que la GPL está bien, pero en programas concretos.

Fin de los exámenes

El lunes pasado terminé exámenes parciales. La siguiente temporada vendrá muy pronto, así que tengo que aprovechar al máximo este tiempo para adelantar muchas cosas que tengo pendientes.

MonoUML

Ya he comenzado a implementar las primeras partes de UMLCanvas# 2.0. He decidido comenzar por la parte de más bajo nivel. Aunque hasta ahora no he avanzado mucho, me parece que las cosas no van a ser tan complicadas debido a que muchos problemas ya han sido resueltos en la versión actual de UMLCanvas#, aunque en forma un poco desordenada. Estoy bastante optimista en cuanto a esta parte y creo que puede estar lista un poco antes de lo planeado.

El hecho de que UMLCanvas# tenga un diseño flexible que permita cambiar de API gráfica sin mayor traumatismo es más importante ahora que nunca. Según lo que he leído, GTK+ se pasa definitivamente a Cairo como librería gráfica. En este contexto quedarían 3 toolkits gráficas que podrían ser usadas por UMLCanvas#: GnomeCanvas, Cairo y GDI+ (la cual está basada en Cairo en su implementación en Unix). Por ahora se seguirá con GnomeCanvas, pero estoy casi seguro de que en un futuro vamos a tener que cambiar y debemos estar preparados para ello.

GLUC

En el GLUC seguimos con el proyecto antipiratería del cual ya había hablado antes. También estamos trabajando duro para el Festival Latinoamericano de Instalación de Software Libre que se realizará el 2 de Abril. Por mi parte, me ha tocado hacer un CD-ROM que contenga una colección de programas libres para Windows. Para no empezar todo desde cero, he decidido hacer un hack de TheOpenCD, el cual por cierto está muy llamativo. Básicamente me ha tocado traducir gran parte de TheOpenCD, cambiar las imágenes y modificar un par de pequeñeces.

== TheOpenCD hack 1 ==
 
== TheOpenCD hack 2 ==

Free Abuse.

En tiempos de exámenes y exceso de trabajo, nada mejor para quitar el estrés que un buen juego, y mejor aún, un juego libre. Por estos días instalé la versión libre del clásico Abuse. Abuse es un juego de acción futurista, con aliens, disparos y mucha emoción. Definitivamente entra a encabezar la lista de los mejores juegos libres.

El paquete de Ubuntu de Abuse no funcionó (esto ya se está volviendo costumbre, Ubuntu me tiene aburrido) así que me tocó hacer una mezcla entre el paquete y los binarios disponibles en la página de abuse.

== Abuse Screenshot 1 ==
 
== Abuse Screenshot 2 ==

Mono Bundle

Me ha gustado mucho el nuevo instalador genérico de Mono para Linux. Funciona en multiples distribuciones y es la forma más fácil de instalar y redistribuir Mono. Lástima que la versión 1.1.4 que era la que más me interesaba no funcionó en Ubuntu (y otra más con Ubuntu).

== Screenshot 1 Mono Bundle ==
 
== Screenshot 2 Mono Bundle ==
 
== Screenshot 3 Mono Bundle ==

Exámenes…

Debido a algunos problemas en la Universidad durante los últimos meses, las clases están más aceleradas que nunca. Esta semana comienzo exámenes parciales y eso me ha quitado bastante tiempo. No he podido avanzar mucho con los proyectos en los que estoy involucrado. Lo peor de todo es que parece que esta situación va a continuar por algunos meses. Creo al terminar este semestre, inmediatamente comenzará el otro, no voy a tener vacaciones. Sin embargo, espero poder sacar algo de tiempo para hacer lo que me gusta; va a ser poco, pero va a ser algo.

Grupo Mono.

El sábado pasado, como todo los sábados, tuvimos reunión del Grupo de Estudio en Mono del GLUC. En esta ocasión yo fuí el expositor, decidí continuar con el curso de Gtk# que había comenzado unos meses atrás. También aproveché para mostrarles el pequeño editor de C# de ejemplo hecho con GtkSourceView# hecho por Fabian Seoane, con unas modificaciones hechas por mi amigo Cristian Cepeda (también conocido como “pastuxso”). Insté a todos los miembros del grupo a que agregaran características al editor, como por ejemplo una opción de compilar, pero ninguno se atrevió a hacerlo. Imagino que la temporada de exámenes dejó sin tiempo a todo el mundo.

MonoUML.

En el poco tiempo que he podido dedicarle a MonoUML, he estado pensando en la forma de hacer que UMLCanvas# 2.0 pueda utilizar diferentes librerías gráficas. Lo único que se me ha ocurrido es aplicar el patrón Fabrica Abstracta. Esto obviamente inspirado por el típico ejemplo de La Banda de lo Cuatro donde se usa el mismo patrón para usar múltiples librerías de widget.

Quedaría algo como esto:

== Diagrama UML de la fábrica abstracta ==

Software Libre, Software Legal

GLUC

En el GLUC nos ha ido bastante bien por estos días, la Vicerectoría de Bienestar y Cultura de la Universidad del Cauca nos aprobó un proyecto bastante interesante, se trata de una Campaña antipiratería y pro-software libre llamada “Software Libre, Software Legal”. La ídea del proyecto es dar una serie de charlas que concientisen sobre por qué no se debe usar software pirata y por qué es mejor usar software libre en su lugar. Con la aprobación del proyecto, el grupo recibirá una cantidad de dinero con la cual se piensa hacer afiches de publicidad, regalar distribuciones de Linux, y programas libres para Windows entre otras cosas. Uno de los puntos claves del proyecto es la participación en la Ciudad de el Primer Festival Latinoamericano de Instalación de Software Libre – FLISOL, del cual ya había hablado previamente. Esperamos que con el dinero que nos de la universidad podamos realizar un gran evento aquí en Popayán.

Grupo Mono.

El sábado pasado regresamos a las actividades en el Grupo de Estudio en Mono del GLUC. Ese día sólo nos dedicamos a organizar lo que se hará en el grupo durante el resto del semestre. Se decidió continuar en base a la lista ToDo que quedó despues del curso de C#. La idea es que cada uno de los miembros del grupo se apropie de una parte del curso.

Algo bastante interesante es que he hablado con varios amigos que viven fuera de Popayán, y hay muchos que están interesados en el Grupo de Estudio, entonces han entrado a formar parte de este como integrante virtuales. Los integrantes virtuales darán charlas por IRC y estarán pendientes de lo que se haga en en grupo leyendo el material del FTP.

Con todo esto, nuevamente surge la idea de crear una comunidad de Mono en Colombia. Incluso ya tenemos un proyecto en el-directorio.org

Tutorial de GTK#

Con el tutorial de GTK# estoy un poco atrasado, aun no termino el capítulo 8. Sin embargo, en general el proyecto de creación del tutorial ha avanzado bastante. Mahomedalid Pacheco se une al equipo y ya ha enviado los capítulos 20 y 21. Últimamente hemos tenido bastantes charlas en el equipo, discutiendo temas como el estilo de codificación, los screenshots etc. Parece que todo va muy bien por este lado.

MonoUML

En lo que respecta a MonoUML, en estos días me estoy dedicando completamente al nuevo diseño de UMLCanvas#. He subido lo que tengo de los diagramas al CVS para que sea más fácil la participación de todos. Una de las características que más me gusta del nuevo diseñó es la utilización de una serie de interfaces IHandler para manejar los eventos y el comportamiento de los elementos del canvas. El hecho de desacoplar el manejo de enventos de los propios objetos es algo brinda bastante flexibilidad al diseño. También he comenzado a estudiar un poco las librerías GDI, ya que me gustaría que UMLCanvas# pudiera usarlas además de GnomeCanvas; esto previendo un futuro port para Windows.

Me bajé Poseidon for UML Community Versión. En realidad nunca antes lo había probado, no se porque siempre pensé que era muy parecido a ArgoUML, el cual no me gusta mucho que digamos. La verdad es que Poseidon es bastante diferente a ArgoUML; me ha gustado mucho, incluso lo prefiero a otros como Rational Rose. El único problema que le veo es que es tremendamente pesado, en mi máquina ha llegado a consumir casi 500 MB de memoria. El canvas es especialemente lento, no se si es que no está funcionando la aceleración por hardware o qué, sin embargo, este es bastante agradable de usar. Espero que el canvas de MonoUML llegue a ser tan cómodo de usar como el de Poseidon, incluso creo que lo podría superar.

Dos semanas con Ubuntu

Ya llevo dos semanas desde que cambié mi antiguo Debian por Ubuntu Linux. Aunque mi experiencia con Ubuntu ha sido, hasta el momento, mucho mejor que con Debian, Ubuntu todavía dista bastante de ser una distribución ideal para el usuario novato en Linux; otras distribuciones para el escritorio aún le llevan ventaja. Sin embargo, esta primera versión de Ubuntu apunta a que es una distribución con mucho futuro.

Estos son los puntos positivos y negativos que le he visto a Ubuntu Linux:

Positivos:

  • Excelente trabajo visual. El hecho de que Ubuntu este enfocado en GNOME, hace que todo es escritorio luzca con una consistencia muy agradable. Se acabaron (casi) los revueltos de aplicaciones con diferentes estilos de widgets (Qt, GTK, Tk, Motif). Fuera de eso, el equipo de Ubuntu ha estado trabajando en un tema de widgets llamado Human, que combinado sonidos y fundidos de colores hacen que Linux se vea muy bonito.
  • Excelente soporte para el Hardware. Ubuntu reconoció y configuró correctamente mi tarjeta de vídeo (incluido soporte completo para aceleración 3D), mi tarjeta de sonido, mi monitor y mi impresora. En la parte de impresión Ubuntu me ha impresionado mucho, es la distribución que mejor he visto en este aspecto. Es muy agradable como, sin importar desde que aplicación esté, siempre que hago click en imprimir, la impresora lo hace. Esto ha sido un cambio radical a lo que estaba acostumbrado en Debian, en donde a veces era todo un reto imprimir desde aplicaciones un poco raras como xpdf, Firefox “instalado a mano”, jedit o similares. Aunque sin asistente, fue relativamente fácil configurar mi escaner, lo único que me tocó hacer fue copiar el archivo de firmware en el directorio correspondiente de Sane. Instalar mi winmódem fue igual de tortuoso que toda en distribución que he probado, eso queda como aspecto neutral. Los medios removibles como disquetes, cdroms y memorias usb funcionan maravillosamente.
  • Bastante respaldo. Cuando ocurren problemas en Ubuntu, por lo general son fáciles de resolver debido a la gran cantidad de FAQs, foros y listas de correo que existen. Parece que hay mucha gente que apoya Ubuntu y eso es muy bueno.

Negativos:

  • Falta más acercamiento al usuario final. Quedan muchas cosas por hacer: Se debe mejorar la instalación, debe ser gráfica y más intuitiva; faltan muchas más herramientas gráficas, desde cosas tan simples como cambiar la contraseña de usuario o configurar el hardware hasta un administrador de servicios. La ayuda debe mejorar, el Yelp está muy pobre si lo comparamos con aquel de distribuciones como Mandrake. Falta más libertad para los usuarios normales, hasta el momento no he podido hacer que un usuario sin privilegios de administrador pueda conectarse (haciendo una llamada por módem) a Internet, tampoco es posible hacer otras cosas como un halt o un reboot desde la consola con un usuario normal.
  • Mal soporte en español. Aunque parece que esto está cambiando, la versión que probé (Warty) tenía un pésimo soporte para el lenguaje españól. La instalación hacia algunas preguntas y advertencias en inglés, Nautilus tiene items del menú en inglés, el applet de la papelera está en inglés, OpenOffice se instaló en inglés, y muchas otras cosas más.
  • El manejo de los paquetes. Poco después de instalado Ubuntu, tuve una experiencia realmente frustrante con los paquetes. Resulta que existen tres aplicaciones las cuales me gusta siempre tener en su última versión estable, estas son: Mozilla Firefox, Mozilla Thunderbird y Gaim. Así que agregué los repositorios de Hoary e intente instalarlos. Synaptic me pidió, innecesariamente, que actualizara GTK+. Después de actualizar el Synaptic se daño, cada vez que un paquete tenía dependencias Synaptic se salía inesperadamente. Despues de preguntar un poco por IRC, la única solución que me dieron fue reinstalar completamente. Desde entonces me he dado cuenta de varios problemas con el sistema de paquetes de Ubuntu: Muchos paquetes piden más de lo que necesitan, por ejemplo Firefox y compañía pedían la última versión de GTK+, cuando en realidad pueden funcionar con versiones anteriores. Universe y Multiverse no cuentan con todos los paquetes que hay en Debian, como el caso de gnome-ppp. Una enorme cantidad paquetes de Ubuntu no instan un icono en el Menú. El popular dicho “si no está en los repositorios de Debian no existe” es el mito más grande, una gran cantidad de las aplicaciones top 10 de gnomefiles.org no está disponible.

Al final instalé Firefox y Thunderbird “a mano”. Qué bonitos son los instaladores que hace la gente de Mozilla. Es el típico sistema de Windows en donde sólo es necesario hacer dobleclick en el icono y dar siguiente, siguiente, siguiente, y ¡listo! aplicación instalada. Creo que las distribuciones de GNU/Linux deberían reconsiderar este tipo de métodos para instalar software. Gaim lo instalé de una forma muy agradable: utilizando Autopackage. Autopackage es una de las mejores ideas que he conocido para hacer paquetes que funcionen en múltiples distribuciones. La cosa es así de sencilla: uno se baja el paquete (que tiene extensión .package), después simplemente hay que hacer dobleclick en el archivo del paquete, el sistema dice algo como: “Para poder instalar este paquete usted necesita Autopackage, pero usted no lo tiene instalado ¿desea bajarlo e instarlo?” Si. Luego en una muy bonita ventana: “Checkeando dependencias… GTK : Si, GNOME: Si… XPaquete: No. Parece que usted no tiene XPaquete, usted puede instalarlo usando el sistema APT de su distribución actual: Ubuntu, el nombre del paquete es xpaquete”. Luego de chequear las dependencias: “Gaim se ha instalado satisfactoriamente. Estos iconos han sido añadidos al menú: Gaim”. Y así pude tener la última versión de gaim sin actualizar GTK+ ni nada. Desearía que ubieran más paquetes de Autopackage disponibles.

::screenshot de gaim::
::screenshot de gaim::
::screenshot de gaim::

Último post con Debian

Ya se me acabaron las vacaciones.

Por estos días me he dedicado a cuadrar bien mi regreso a clases. Sobretodo quiero cuadrar muy bien mi horario para poder dedicarle suficiente tiempo a mis proyectos con Mono y con el GLUC.

GLUC

En el GLUC ya volvimos al trabajo. El lunes tuvimos reunión y nos hemos dado cuenta que tenemos bastantes cosas que hacer para este nuevo semestre. Junto con el regreso al trabajo en el GLUC, también pronto se viene el regreso al trabajo en Grupo de Estudio en Mono, el cual ha quedado inconcluso desde la última vez que nos reunimos cuando TYR terminó su curso de C#. Espero que que este sábado nos reunamos y busquemos la forma de volver al trabajo. La idea es seguir con la interesante lista de TODO que presentó TYR al final el curso.

apt-get remove –purge emacs

Durante estas vacaciones, no se por que, quise, por segunda vez, aprender a usar emacs; y por segunda vez desistí. Creo que es cierto de que una vez que dominas emacs te conviertes en un codificador más rápido, y es cierto que con emacs puedes hacer de todo; pero también es cierto que emacs es una herramienta en extremo complicada y, sobre todo, en extremo poco intuitiva. Creo que aprender a usar emacs es un proceso largo y complicado. Incluso me encuentro con gente que escribe cosas útiles de emacs que descubre después de años de estar usándolo. Entonces rápidamente me cansé, me cansé de elisp y me cansé de pasar días configurando el .emacs solo para que después los resultados nunca queden como yo quiero.

Entonces encontré otro editor que me gustó más: JEdit. Puede que no sea tan potente como emacs, no tiene cliente de correo electrónico ni un psiquiatra, pero igual me pacer que cumple muy bien con su función de editor de texto. Me gusta la facilidad con la que se pueden grabar y programar macros. También su extensibilidad a través de plugins y la gran cantidad de ellos que hay (Especialmente me gustaron los plugins XML y Console). También sus características de folding que tan útiles son en C# y en XML. Pero lo que más me gusto, sin lugar a duda, fue el hecho de que puedo hacer uso de sus múltiples características sin tener que leer un manual para ello; es intuitivo. Creo que definitivamente eso es lo que le hace falta a muchos proyectos de software libre. No debes leer nada para poder usar un programa, solo usarlo y yá; él mismo te debe guiar.

Proyectos de Mono.

Por estos días he estado avanzando un poco lento en MonoUML. Creo que pronto tendré unos ajustes más al sistema de asociaciones. Una vez que organice mi horario bien y termine un par de cosas que tengo pendiente, vuelvo a un ritmo constante con el proyecto, lo cual es muy importante ya que estamos contra el tiempo.

Más he trabajado en el Tutorial de Gtk#, en donde ya terminé el capitulo 6 e hice varios cambios a los capítulos anteriores, incluyendo un reformateo completo de los archivos XML, los cuales ahora tienen una identación muy agradable. Mis planes son terminar con el capitulo 8 esta semana.

Adiós a Debian.

Bien, después de ya 6 meses que llevo probando Debian GNU/Linux, ya me aburrí de él. La experiencia con esta distribución le ha dejado puntos positivos y puntos negativos. Como puntos positivos resalto su velocidad y el gran movimiento de la comunidad que hay a su alrededor. Como puntos negativos, un sistema de paquetes (APT) que me desilusionó, tal vez por el hecho de que es promulgado como una de sus grandes cualidades pero a la larga no es gran cosa; y su falta de utilidades que faciliten las tareas diarias en un sistema operativo, lo cual hace que operaciones como agregar una impresora, configurar el vídeo, o incluso apagar el sistema sean molestas. Ahora espero probar Ubuntu Linux, el cual, espero, pueda acabar con los puntos flojos de Debian. Si Ubuntu me desilusiona, creo que volveré al sistema con el que comencé: Mandrake GNU/Linux. No lo uso desde hace varios meses y cada vez escucho mejores comentarios de él. Lo único que no me gustaba de Mandrake era su orientación más hacia KDE, y yo prefiero GNOME, es por eso que ahora voy a probar Ubuntu.

Última semana de vacaciones

Año Nuevo

Bien, tristemente esta es mi última semana de vacaciones. Pero bueno, pero no me quejo mucho; logré hacer muchas cosas que quería hacer y descasé bastante. Aún me queda algo de tiempo y quiero aprovecharlo al máximo.

Estos primeros días de 2005 los he dedicado a descansar más que todo. Sin embargo, esta semana ya vuelvo con todo para dedicarle un poco a los proyectos en los cuales estoy colaborando.

Tutorial Gtk#

Después de bastante tiempo sin trabajar en el Tutorial de Gtk#, ayer terminé y subí el cuarto capitulo, el cual trata acerca del empaquetamiento. Ya empecé a trabajar en el capitulo 6. Espero poder subirlo antes de terminar vacaciones.

MonoUML

Por ahora estoy trabajando en mejorar el sistema de conexiones (edges) en UMLCanvas#. La verdad es que este trabajo se está volviendo un poco complicado, esto debido a que el diseño poco flexible del actual UMLCanvas# hace que sea difícil hacer un par de cosas, como por ejemplo hacer que un UMLEdge sepa si al arrastrarse uno de sus extremos se pasa por encima de un UMLElement. En fin, todo esto me hace pensar que tal vez sea necesario un rediseño de UMLCanvas# más rápido de lo que pensaba. Ya he comenzado a escribir una lluvia de ideas al respecto y he empezado a analizar las arquitecturas de otras librerías de diagramas como DiaCanvas y NetronGraphLib. Mi intensión es tomarme un buen tiempo para pensar en una arquitectura lo suficientemente flexible como para que se puedan cumplir todos los requerimientos futuros de MonoUML sin necesidad de alterar la estructura base. Mi meta por ahora es tener una versión funcional para la segunda versión de MonoUML. Por supuesto por ahora seguiré trabajando en paralelo con la actual versión de UMLCanvas# ya que estar será la que quedará para la primera versión de MonoUML que pensamos liberar a finales de febrero de este año.

Emulación

Bien, por estos días ha salido, después de dos años y medio sin lanzamientos, una nueva versión de ZSNES, sin duda el mejor emulador de Super NES que existe (por cierto es Open Source). Esto me da mucha alegría, pues parece que significa que el proyecto ha tomado un nuevo aire y creo que nuevos lanzamientos vendrán pronto. El ZSNES siempre me ha traído nostalgia al hacerme recordar aquellos excelentes juegos que salieron para esta gran consola.

No se si es mi impresión, pero últimamente me parece que hay escasez de juegos buenos en el mercado. Y no me refiero a gráficos, ni al sonido, ni a la IA, ya que los juegos de ahora cada vez asombran más en ese sentido, sino al juego en sí. Últimamente me he visto con muchos juegos que hacen llorar a mi ATI Radeon 7500 con unos gráficos simplemente impresionantes, pero con un modo de juego muy, pero muy pobre. Tanto es así, que prefiero abrir mi ZSNES y ponerme a jugar un RPG viejo o un clásico de Mario. Claro que no siempre es así con los juegos nuevos, existen algunas cuantas excepciones, pero son una entre cien.

Tiempos de Fiestas

Navidad

La época de navidad siempre es muy agradable. En mi familia es costumbre que el 24 de diciembre nos reunimos en la casa de mi abuela. Es una gran reunión familiar donde asisten muchos de mis tios, primos, abuelos, etc. Esta vez no asistieron tantas personas, debido a que algunos familiares que viven en Bogotá y Medellín no pudieron viajar. Sin embargo la pasamos muy bien. Como siempre, a media noche festejamos, entregamos los regalos y cenamos con un delicioso pernil de cerdo y una gran variedad de dulces navideños.

Antes de la reunión en la casa de mi abuela, rezamos la novena en una finca a las afueras de la ciudad. Desde hace ya varios años que mi abuela organiza la novena en aquella finca, donde antes vivía. La novena se reza en compañia de muchos campecinos de escasos recursos que habitan en los alrededores. Al final se rifan regalos entre los niños campecinos. El último día, el 24, fue bastante especial; entre toda la familia se logró reunir suficientes regalos para que todos los niños tuvieran al menos uno. Es algo que me alegra mucho.

MonoUML

Tal parece que el proyecto MonoUML va viento en popa. En estos días de vacaciones el equípo está bastante activo. Mario Carrión se encargó de instalar un wiki en la web y ya tenemos una fecha tentativa para nuestro primer release: febrero 28 de 2005. El objetivo para este primer lanzamiento es tener la parte de casos de uso perfectamente funcional. Estoy seguro de que si todo va como hasta ahora, el objetivo se va a cumplir.

UMLCanvas#, la parte en la cual estoy trabajando de a poquitos, poco a poco se esta convirtiendo en la combinacion de un monton de parches. Creo que eventualmente va a tocar que hacer una refactorización que de lugar a un UMLCanvas# 2.0. Por ahora seguiré trabajando en la versión actual, pero luego tengo pensado iniciar paralelamente una versión nueva, con un nuevo diseño más flexible y optimizado, que tal vez pueda ser usada en versiones futuras de MonoUML, tal vez la 0.3 ó 0.4.

Cultivando la Noosfera

Hoy estuve leyendo por segunda vez “Homesteading the Noosphere” de Eric S. Raymond. Nuevamente pienso que es un excelente ensayo, Raymond es uno de los personajes del mundo del software libre a quien más admiro. Llama mucho mi atención notar aspectos de la cultura del software libre que viven implícitamente dentro de nosotros y que son realmente facinantes. Ahora que estoy un moco mas dentro de MonoUML, puedo comprender mejor muchos de los planteamientos, y me he dedicado a auto-analizarme y tratar de descubrir cual es mi motivación al programar. ¿Acaso lo hago por una deliberada búsqueda de reputación dentro de una cultura de los regalos? ¿O será acaso la búsqueda de pura satisfacción artística de desarrollar algo bueno técnicamente, o en otras palabras por la pura alegría de hackear? Aunque suene a una típica respuesta mediocre, creo que ambas cosas son ciertas, y como Raymond mismo lo plantea, tal vez una no pueda vivir si la otra.

Juegos y más juegos.

Por estos días estuve jugando Gran Theft Auto San Andreas de Rockstar Games en el Play Station 2 de mi primo. Este juego literalmente me deja con la boca abierta. Me asombra en gran manera como los diseñadores de esta saga de juegos se las arreglan cada vez por mejorar lo que se piensa es un juego casi perfecto. Ya desde la versión 3 de GTA se podía ver un juego de una calidad técnica y de jugabilidad dificil de mejorar. Sin embargo lo lograron con GTA Vice City y ahora nuevamente con GTA San Andreas. Las nuevas características que más me gustan son la mejor interacción del lado del personaje y el excelente ambiente de la enorme ciudad californiana, con grandes avenidas y colinas por doquier. No puedo esperar un segundo para que salga la versión para PC.

Por otro lado, algunos nuevos lanzamientos me han dado muchas ganas de comprarme un Game Boy Advance SP. Si, ya se ahora existe el Nintendo DS (el cual, por cierto, esta simplemente precioso) y el Play Station Portable (el cual no me gusta mucho que digamos), pero aún asi yo quiero un GBA. La razón es que es el único sistema con el que puedo recordar todavía aquellos juegos 2D del pasado. Los otros sistemas ahora son todos 3D, y es cierto que existe el cell shading y todo eso, y de hecho me gustan algunos de estos juegos, pero creo que solo con el GBA y los emuladores, puedo traer con nostalgia tantos buenos recuerdos a mi mente.