viernes, enero 21, 2011

Servicios básicos

La entrada dos mil ochocientos ochenta y dos -que ya es casualidad- viene a reflejar que los servicios indispensables para mudarnos al nuevo piso como son luz, gas, agua y termo ya están operativos al 110%. Por consiguiente, esta noche será la primera de muchas más.

Ahora quedan detalles para hacer más cómodo el día a día (ascensor, telefonillo, internet, etc).

sábado, enero 08, 2011

Técnicas limpiadoras

Esto del piso nuevo supone tener que aprender técnicas para limpiar todo tipo de superficies, Esta tarde me toco la técnica específica para cristales de armario. Y el fin de semana aprenderé la correspondiente para los azulejos de la cocina.

viernes, enero 07, 2011

Ajedrez en Linux con Scid

Con un motor de juego no tenemos suficiente, es necesario disponer de un gestor de bases de partidas. Para esto tenemos Scid, que es una aplicación bastante conseguida y que no tiene nada que enviadiarle a chessbase, que es la contrapartida comercial y que corre bajo windows..

En debian podemos instalarla con 'apt-get install scid' pero no es la opción que recomiendo, ya que nos instala un versión antigua. En Etch, la versión que se instala en una 3.6, mientras que compilando desde los fuentes http://scid.sourceforge.net/download.html tendremos una más reciente -la 4.2.2 en el momento de escribir este post- en la que hay bastantes diferencias, como el soporte de motoros que cumplen con UCI del que ya hablé en el anterior post.

En fin, sin más rodeos, se hace lo de siempre, nos decargamos la ultima versión de los fuentes (es un fichero tar.bz2) que descomprimimos con el comando 'tar xvfj scid-4.2.2.tar.bz2'. Para configurar la compilación y ver que nos puede faltar ejecutamos './configure --prefix=/usr/local/scid-4.2.2'. De esta forma le indicamos que cuando se instale el software lo haga en el directorio /usr/local/scid-4.2.2, aunque esta opción no me ha funcionado :-(

Es posible que nos devuelva un error con el mensaje de no encontrar los ficheros de cabezas tcl.h y tk.h, indicativo de que no tenemos las bibliotecas de desarrollo de tcl/tk 8.5. Con aptitude podemos encontrarlas facilmente. Estas bibliotecas se llaman tcl8.5-dev y tk8.5-dev. Después de instalarlas, y si el configure no nos dice que falta otra cosa, podemos ejecutar el 'make all' && make install' (esto último como root).

Con esto ya tenemos las herramientas básicas de trábajo, para jugar y para consultar partidas.

Hay un asunto extra por tratar. Es muy normal que dispongamos de bases de datos de partidas en formato chessbase. Este formato es propietario y scid no puede leerlo. Debemos utilizar alguna herramienta que nos exporte del formato chessbase a formato pgn make installque sí que puede leerlo scid (aunque en modo readonly). Scid maneja su propio formato de partidas (.sc3) y tiene una utilidad pgnscid que sirve para convertir al formato propio de scid, pero es muy buena idea de mantener siempre unas copias de nuestras bases de datos en el formato pgn, por si acaso. Todavia estoy investigando el tema chessbase->scid, con lo que no puedo aportar muchos más datos al respecto.

martes, enero 04, 2011

Ajedrez en Linux con Stockfish

Poquito a poco, quizas influenciado porque meti en el iphone varios juegos de ajedrez como stockfish (antes llamado glaurung) y abaia, así como visores de partidas como ChessDB y Chess Database, me puse a trastear algo con las aplicaciones para linux.

Parece ser que existen varios motores de ajedrez, es decir, programas que evaluan las posiciones y determinan los mejores movimientos. Con estos programas no se pueden jugar, se necesitan otros programas que muestran la interfaz GUI, ie, muestran las piezas y el tablero y nos permiten hacer los movimientos contra la 'máquina'. Pero ahí no queda eso, existe una tercera aplicación que pone de acuerdo al tablero y al motor, siempre que hablen el mismo idioma (protocolo).

Por tanto la interfaz como el motor tienen que implementar un protocolo de comunicación. A su vez existen muchos protocolos, pero dos destacan sobre los demas. El protocolo xboard, el primero que salio, y una mejora llamada UCI. Polyglot sirve para comunicar las aplicaciones que manejan el protocolo xboard con las que manejan el protocolo UCI.

Mi primera prueba fue utilizar la combinación xboard+polyglot+stockfish. Aunque hay otros motores, elegí stockfish porque hablan muy bien de él y lo comparan con los mejores motores comerciales.

En debian se puede descargar stockfish pero para sus versiones más recientes es necesario bajarse el codigo fuente y compilarlo por nosotros mismos.

Para descargarlo solo hay que visitar la web http://www.stockfishchess.com/download/, descomprimir el fichero que nos descargamos y luego nos vamos al directorio src para compilar con 'make all'. Esto nos genera un fichero ejecutable de nombre stockfish que nosotros situaremos en /usr/games/ con el nombre stockfish-version. Si nos hemos bajado la versión 1.9.1, sera stockfish-1.9.1 y si nos hemos bajado la 2.0 será stockfish-2.0. Hacerlo de esta forma nos permite posteriormente ir probando con diferentes versiones del motor.

El siguiente paso es instalar polyglot, la forma más sencilla es con 'apt-get install polyglot'. Una vez instalado es necesario crear los archivos ini con las opciones del motor. Para ver varios ejemplos entramos en /usr/share/doc/polyglot/examples. El archivo normal.ini es una buena opción. La copiamos dentro del directorio ~/.polyglot bajo el nombre del motor en cuestion, por ejemplo stockfish-1.9.1.ini y modificamos su contenido añadiendo las rutas del engine y el nombre del binario. Para otras opciones nada mas que tenemos que ver los ejemplos.

Sólo nos falta instalar xboard, que con 'apt-get install xboard' resolvemos el problema.

Para hace una prueba podemos teclear lo siguiente:

xboard -fd "/home/alidhaey/.polyglot/" -fcp "polyglot stockfish.ini" -debug

Este comando lanza xboard y el motor de juego stockfish, que usa polyglot para comunicarse con él. Para aquellos que se han atrevido a compilar varios versiones de stockfish, tenemos el siguiente comando, que tiene dos motores diferentes

xboard -fd "/home/alidhaey/.polyglot/" -fcp "polyglot stockfish-1.9.1.ini" -scp "polyglot stockfish-2.0.ini" -debug

Y para jugar 4 matches entre ambos motores, añadimos la opcion '-mg 4' y listo.

Como se puede ver, no es muy complicado de hacer. En otro momento con más tiempo me pongo escribir algo sobre scid, que es una base de datos tipo chessbase pero para linux.