Algoritmos Genéticos: un ejemplo simple

Como hay una demanda bastante importante del ejemplo en C de un algoritmo genético he decidido ponerlo aquí a disposición de quien quiera verlo en lugar de enviarlo por correo individualmente. El ejemplo es la resolución de una práctica de la asignatura “Modelos Computacionales” que cursé en la Universidad de Córdoba hace dos o tres años. Como es una práctica, no creo que esté exenta de fallos, pero el funcionamiento es correcto aunque también simple.

Leer más …

Conociendo el FSTAB y sus opciones

Una de las dudas más comunes que abordan a los usuarios nuevos en el mundo de GNU/Linux trata sobre el montaje automático de las particiones y de sus permisos. Las órdenes de montaje y sus opciones se encuentran alojadas en el fichero /etc/fstab.

Normalmente, al instalar distribuciones como Ubuntu, en el fstab se generan las líneas de montaje de nuestras particiones automáticamente pero de un modo genérico. Muchos habrán visto que si lo dejamos tal cual, los nombres de los archivos de la partición al hacer un ls aparece en color verde. Esto ocurre cuando los ficheros tienen permisos de ejecución. Sin más vamos a entrar en materia.

Leer más …

Plugin Currentsong en Emesene con Amarok 2

logo4

Hoy voy a dejar un post de los que provocan un aluvión de entradas al Blog, entradas que seguramente serán puntuales pero no importa porque esto me ha sido útil y en un futuro me puede servir de nuevo, por eso lo voy a escribir. Somos muchos los que hemos migrado a ‘Amarok 2’ tras su liberación oficial hace un par de semanas. El cliente de mensajería que utilizo en mi desktop es ‘Emesene’, una aplicación escrita en Python que imita en cierto modo a Windows Messenger y que tiene una gran cantidad de plugins para su personalización.

El problema ha surgido con el plugin CurrentSong con el cual se puede poner como mensaje secundario del nickname el nombre de la canción que estamos escuchando. Si lo teníamos funcionando anteriormente con Amarok 1.4, el log del plugin no nos dará ningún error, simplemente expondrá que no se está escuchando ninguna canción.

Leer más …

Makefiles & GNU GCJ

Como ya conté en anteriores posts, en mi proyecto de fin de carrera tenía que compilar una librería de clases Java bastante extensa con GNU GCJ. Es bastante sencillo compilar una clase simple, incluso compilar varias de ellas a mano, pero en el caso de una colección importante, el compilar y enlazar es una tarea muy larga y aburrida.

En su momento estuve buscando cómo podía automatizar esta tarea de compilación por medio de herramientas diseñadas para esta labor. Lo primero que se me ocurrió fue crear un paquete de instalación por medio de las GNU Autotools pero al mirar en la documentación pude comprobar que no había soporte para GCJ por lo que elegí una de las herramientas que se incorporan en este paquete: GNU Make.

Leer más …

El Classpath de GCJ

En esta entrada voy a ir completando lo comentado en la introducción a GCJ. Ya expliqué entonces como podemos compilar una clase sencilla, sin dependencias de otras, de manera que obtendremos un ejecutable de la misma manera que si utilizásemos otros lenguajes como C/C++.

La dependencia entre clases en Java se satisface a través del classpath, una variable de entorno (aunque hay otras formas de especificarlo) en la que se enumeran los directorios en los que se encuentran clases o paquetes utilizados. La comprobación se realiza, en el caso de Java, además de al compilar a bytecodes, en tiempo de ejecución de manera que si nos falta una clase, se nos lanzará una excepción del tipo classnotfound; con GCJ esto no es así.

Leer más …

Introducción a GNU GCJ

java

Si algo he aprendido en el desarrollo de mi proyecto de fin de carrera es a utilizar GNU GCJ, cuáles son sus características, qué puede aportar a Java y cómo se utiliza. Cuando empecé a investigar busqué tutoriales sobre cómo compilar con este software y me encontré con apenas un par de ellos medianamente decentes pero insuficientes para mi propósito, que era compilar una librería de clases bastante grande.

Casi todo lo que he aprendido lo he hecho mirando tutoriales en inglés, leyendo la documentación y puede que aparentemente no sea gran cosa pero no fue sencillo. En esta entrada quiero dejar una introducción al uso básico de GCJ y en un futuro ir completando el manual con algunos posts más.

Leer más …