Archive for the ‘Software Libre’ Category

Desarrollo de Software con Mono, una Implementación Libre de .NET, Multiplataforma e Independiente del Lenguaje

Posted on the septiembre 13th, 2008 under General,Investigación,Software Libre by

Hace un tiempo ya, más o menos un año, hice un post acerca de un trabajo práctico que habíamos realizado en la cátedra Administración de Recursos, donde contaba la primera parte del resultado de nuestra investigación e implementación. Milton por otra parte había realizado unos post ya acerca de lo que venía probando en la plataforma Mono en ese entonces.

Fue a principios de año que decidimos que era una buena oportunidad, juntar todo lo que teníamos suelto de investigación, la implementación que habíamos hecho y presentar el trabajo como un artículo en el EST 2008, bajo el marco de las 37 JAIIO (Jornadas Argentinas de Informática e Investigación Operativa). Las mismas comenzaron el pasado 08 de septiembre y finalizaron ayer 12. Se realizaron en conjunto con el CLEI 2008, un gran evento latinoamericano que nuclea a muchos investigadores y gente de la industria informática de toda latinoamérica (incluso con algunos visitantes de otros lugares del mundo). Se presentaron más de 400 trabajos en total sumando todos los eventos. Se aprobaron unos 300 según comentaba una de las organizadoras en el cierre de estas conferencias, con una alta tasa de expositores que presentaron sus trabajos.

Bueno, volviendo al tema del EST, decidimos presentarlo. Además presentamos otro de que habíamos realizado en inteligencia artificial, donde utilizabamos Java y Prolog (hay un post al respecto también) para resolver el trabajo práctico.

La tarea de confeccionar el paper no fue sencilla. Debíamos apegarnos a un estándar de publicación de las LNCS. Nuestro trabajo fue realizado en LaTeX, con lo cual contabamos con una DocumentClass para utilizar, pero debíamos prestar suma atención a otras cuestiones.

El título del trabajo es el mismo de este post, Desarrollo de Software con Mono, una Implementación Libre de .NET, Multiplataforma e Independiente del Lenguaje. El título del otro trabajo presentado es Diseño de un Agente Basado en Objetivos que Utiliza Enfoques Basados en Búsqueda Informada, No Informada y Cálculo Situacional. Ambos fueron aceptados y tuvieron su exposición en la sesión de posters.

Fue una experiencia muy grata la de recibir a muchos compañeros y poder comentarles los resultados de nuestros trabajos. En la sesión de posters se vieron muchos trabajos, los cuales estaban dividos en dos categorías: trabajos finales y trabajos de cátedra. La verdad muchos muy interesantes, de los cuales recuerdo un trabajo final que me gustó, en cual utilizaba técnicas de minerías de datos y reglas de asociación para detectar «concerns» en un software. Luego podía detectar mediante la traza de ejecución los diferentes aspectos en el sistema.

Al finalizar la sesión de posters se anunciaría a los 3 preseleccionados de cada categoría para una sesión oral al otro día. Ese día se anunciaría a los ganadores del concurso. Creo que no había mencionado esta parte. El EST es un lugar donde los alumnos pueden exponer sus trabajos a modo de artículo y luego concursan por los 3 mejores de cada categoría (finales y de cátedra). Con Milton y César tuvimos la satisfacción de ser reconocidos con un segundo puesto en el orden de méritos en los trabajos ganadores del concurso :-D. Sinceramente había trabajos muy buenos, y la tarea de los evaluadores debe haber sido ardua!.

Los evaluadores recorrían la sesión sin indicar que eran evaluadores de una determinada área de incumbencia. Sin embargo, algunos observadores externos (mi viejo que se dio una vuelta) advirtieron el interés de ciertas personas las cuales nos hicieron explicarles cada detalle implementado e incluso aún no implementado en el trabajo.

Haber defendido tanto el trabajo me recordó las tardes y mañanas que le dedicamos a comprender los problemas presentados y de los cuales disfrutamos tanto.

Escribo todo esto para contar nuestra experiencia. Ahora es tarde, pero sigo entusiasmado con las jornadas y no quería dejar de escribir unas líneas. Seguramente pongo más fotos del evento luego, o hago otro post, pero quiero animar a nuestros pares a que participen de eventos de este estilo, ya que la experiencia adquirida es única.

Particularmente quiero expresar mi orgullo de superación personal y grupal que hemos tenido. Muchas veces habíamos incurrido en los mismos errores, de los cuales menciono algunos que recuerdo: transparencias llenas de texto, gran cantidad de las mismas (más de 30 a veces), charlas muy largas (dimos una de 40 minutos en administración gerencial). Incluso el poster el simposio tenía mucho texto!!!.

Sin embargo: La transparencia de la presentación en sesión oral tenía 16 slides, 13 efectivas (sacando el muchas gracias, agenda y tapa). Nos tomó menos de 15 minutos (se nos apagó el cañon) pero estábamos terminando. Jamás nos dominaron los nervios, ni creo que hayan existido: nos desenvolvimos con gran soltura. Seguro tenemos mucho que mejorar pero al menos estos tres aspectos los mejoramos en un año :-D.

Así que gracias Milton y César por haber podido compartir esta experiencia con ustedes. Gracias Daiana por el apoyo y compartir todo conmigo y ayudarme a revisar las cosas hasta el detalle. Y gracias flia… por todo :-).

Acá está el link al artículo, al poster y a las transparencias que utilizamos.
También hay un link al proyecto. Por cualquier duda por como compilarlo, nos consultan, aunque con MonoDevelop con IKVM.NET, VB.NET, Boo y las extensiones de Boo, Java para el IDE debería bastar.

Artículo: Desarrollo de Software con Mono, una Implementación Libre de .NET, Multiplataforma e Independiente del Lenguaje (Artículo)
Poster: Desarrollo de Software con Mono, una Implementación Libre de .NET, Multiplataforma e Independiente del Lenguaje (Poster)
Transparencias: Desarrollo de Software con Mono, una Implementación Libre de .NET, Multiplataforma e Independiente del Lenguaje (Presentaciones)
SVN: svn checkout http://admrec.googlecode.com/svn/trunk/src/ mono-read-only

Java es 100% Libre

Posted on the junio 24th, 2008 under Software Libre by

Un año después de la promesa de Sun de la liberación del código fuente de Java, finalmente la empresa consiguió completar esa tarea. Los fragmentos de código que permanecían propietarios fueron abiertos en OpenJDK 1.6.0 que ya fué aprobada en el Test Compatibility Kit de Java. Esto significa que OpenJDK adhiere 100% al estandar Java SE y al mismo tiempo completamente Libre!

Esto es un gran paso, ya que ahora se dispone de una alternativa multiplataforma (hardware y software) y que podrá correr sin problemas de licencias sobre varios SOs. El proyecto Mono intenta hacer lo mismo con la plataforma .Net dándole verdadero soporte multiplataforma, ya que el proyecto original de Microsoft es multiwindows más que multiplataforma. Sin embargo varios sectores del código de .Net implementados en Mono podrían llegar a tener problemas de licencias (Winforms por ejemplo, el cuál terminaron de implementar casi completamente hace poco tiempo).

10 puntos más para Java. Bien por Sun!

Fuentes:
http://under-linux.org/8616-java-100-livre-finalmente.html
http://www.linuxmagazine.com.br/noticia/java_100_livre_finalmente
http://jpobst.blogspot.com/2008/05/big-finale.html

update: me gustaría saber más acerca de los problemas que puede haber acerca del uso de Mono con Winforms y demás. Si alguien tiene información que avise.

Dividir líneas: Plugin para Gedit

Posted on the mayo 17th, 2008 under GNU/Linux,Probando herramientas,Software Libre by

Existe un plugin o complemento para Gedit (el editor por defecto en Gnome) que permite unir/dividir líneas en un texto. Esto permite que si tenemos un texto con líneas demasiado largas, podamos dividirlas en líneas de por ejemplo 80 caracteres. Este plugin me estaba siendo muy útil para manejar los textos en LATEX. Sin embargo, debía ir haciendo la separación de líneas párrafo a párrafo, ya que el plugin sino mezclaba todos los parrafos en uno sólo. Para comprender lo que les digo, inténten usarlo.

Lo que hice fue hacer un parche para el plugin para que soporte párrafos. No es que haya tenido algún error ni nada, sino que esta funcionalidad me resulta más útil. Les dejo el parche, y adjunto además, un nuevo plugin igual al Unir/Dividir líneas pero con el parche aplicado para los que no quieran parchear el original. Éste tiene las mismas combinaciones de teclas, por lo que no será compatible a la vez con el otro (le cambie apenas el nombre para que no haya conflictos). Para utilizarlo cópienlo en su $HOME/.gnome2/gedit/plugins/

El plugin si se selecciona todo (CTRL+A), y se presiona la combinación de teclas (CTRL+SHIFT+J) funcionando logra lo siguiente (espero que las imagenes expliquen más que las palabras)

(CTRL+A)

(CTRL+SHIFT+J)

El parche a aplicar sobre /usr/lib/gedit-2/plugins/joinlines.py

220c220,221
<     while ord(char) and (not (char in (' ', '\t', '\n', '\r'))):
---
>     twoBL = False
>     while ord(char) and (not twoBL) and (not (char in (' ', '\t'))):           
222a224,233
>         if (char in ('\n', '\r')):
>             text_iter.forward_char()
>             char = text_iter.get_char()
>             if (char in ('\n', '\r')):
>                 while (char in ('\n', '\r')):
>                     text_iter.forward_char()
>                     char = text_iter.get_char()
>             else:
>                 text_iter.backward_char()
>             twoBL = True

Archivos del complemento modificados. Además el patch.
joinlines2.tar.gz

Actualización:
El que subí tenía un error (además que el parche era reverso). Ahora joinlines2.tar.gz apunta al script corregido. El parche anteriormente publicado se puede aplicar sobre el joinlines.py que trae Gedit. Debajo dejo un parche para corregir el error sobre mi script si ya lo están utilizando (o sea sobre joinlines2.py)

231d230
<                 twoBL = True
234c233
< 
---
>             twoBL = True

Wine RC 1.0 y winepreloader

Posted on the mayo 13th, 2008 under Probando herramientas,Software Libre by

En un post anterior, escribí acerca de un «bug» que tenía el winepreloader, el cual no permitía ejecutar aplicaciones de 16 bit o aquellas que requirieran el área de memoria ahora protegida por el kernel. Sin embargo en su release candidate 1.0 esto fue solucionado.

En este artículo donde muestro como correr Smalltalk Express con Wine, se explica como actualizar el respositorio para tener la última versión de Wine.

http://nacho.larrateguy.com.ar/2008/03/04/smalltalk-express-corriendo-con-wine-de-nuevo/

Actualización:
La solución al bug, se puede ver acá

winevdm: Move the DOS memory range check to not trigger for Win16 apps.

Terco Downloader

Posted on the abril 24th, 2008 under GNU/Linux by

¿Necesitás que alguien insista en bajar una archivo por vos, del cuál supones la URL pero que actualmente tiene un terrible 404? Pensemos un ejemplo… mmm.. ya sé! La imagen ISO de UBUNTU Hardy Heron 8.04 Long Term Support Edtion (nombre apellido paterno y materno)

Esta noche queda corriendo esto:

#!/bin/bash
while [ 1 ]; do
wget -c $1
sleep 1800
done;

Con parámetros así

# ./bajar.sh http://cdimages.ubuntu.com/releases/8.04/release/ubuntu-8.04-dvd-i386.iso

Un reintento cada 1/2 hora no me parece mucho, además cuando empieza a bajar.. listo!
Copien, usen, cambien, compartan el código, acá mismo le decreto licencia BSD jajaja

Para los que les gusta el artwork, el afiche de Ubuntu de algún fanático.
http://www.vivalinux.com.ar/distros/poster-ubuntu-8.04-hardy-heron.html