2011
03.21

Continuando con la serie de minitutoriales, toca dotar a nuestros agentes de inteligencia. Lo haremos añadiéndoles comportamientos. Un comportamiento es un algoritmo sencillo que nuestro agente ejecutará para intentar cumplir un objetivo. Evidentemente no hay inteligencia real en estos comportamientos, pero al tener muchos agentes interactuando entre ellos al final aparece un comportamiento global que podría calificarse como tal.

Al igual que con los agentes, para crear un comportamiento hemos de heredar de una clase de JADE, aunque esta vez tenemos varias para elegir. Dependiendo del tipo de comportamiento que queramos crear hemos de extender una clase u otra, y si no nos convence ninguno, extendemos la clase superior de la jerarquía y determinamos nosotros mismos las condiciones de ejecución del comportamiento.

Lee el resto de la entrada >>

2011
03.12

Crear un agente utilizando la plataforma JADE es realmente sencillo, basta con crear una clase que extienda a jade.core.Agent y listo. Para introducir nuestra lógica en el agente lo que tenemos que hacer es sobreescribir un par de métodos.

El método setup() se ejecuta al inicio del ciclo de vida del agente, y es donde hemos de escribir el código de inicialización. El otro es el método takeDown(), que se ejecuta cuando muere el agente y nos permite escribir el código para liberar los recursos que estuviese utilizando.

Lee el resto de la entrada >>

2010
11.13

Cuando se trabaja con Python, ya sea programando o usando un programa hecho en dicho lenguaje, puede encontrarse uno con ciertos problemas si no se aísla uno del sistema. Esto puede que suene un poco raro, pero, ¿cuantas horas habéis perdido al actualizar el sistema, actualización que cambiase la versión de python?

Es típico que al actualizar la versión del intérprete se nos rompan proyectos hechos con versiones anteriores; o al desplegarlos en otra máquina, que tenga diferentes versiones del intérprete o librerías. Bueno, pues hay maneras de evitar estos problemas, la que os voy a explicar se llama VirtualEnv.

Lee el resto de la entrada >>

2010
10.17

He publicado en Gitorious las dos extensiones para navegadores de Comic Aggregator que hice hace algún tiempo. Siempre han sido software libre, y el código siempre ha estado ahí, dado que es Javascript y se descarga junto con la extensión, pero ahora están accesibles bajo git, así que es más cómodo.

Me he propuesto mejorarlas, principalmente a nivel del código. Para ello utilizo JSLint, un validador de estilo para JS, que recomiendo a todo desarrollador que trabaje con este lenguaje. Una manera fácil de usarlo es mediante Rhino, tal y como viene explicado en esta guía.

En el caso de la extensión de Firefox, también he seguido la guía de políticas de revisión de extensiones. En particular es importante la parte que hace referencia a los nombres de las variables globales. Ahora mismo está propuesta para su paso de “experimental” a “pública”, a ver que dice Mozilla.

Ahora me toca pegarle un repaso a la extensión para Chrome :P

2010
10.16

Hace tiempo que no escribo en el blog, pido disculpas por tenerlo tan abandonado :P

El motivo es que he tenido un verano un poco de locos, he entrado a trabajar en Yaco y, quieras que no, lleva un tiempo adaptarte a la nueva situación.

Logo Yaco Sistemas S.L. (naranja)Respecto a la empresa decir que nos dedicamos sobre todo al desarrollo web, usando tecnologías libres, y haciendo software libre cuando nos dejan. Normalmente se trabaja con Django, aunque también se usan otras tecnologías.

En la web de la empresa encontraréis más información (pinchad en el logo).

Espero escribir un poco más en el blog de ahora en adelante, más que nada porque eso significaría que estoy haciendo cosas de las que merece la pena hablar ^___^