General


Tales of a chess engine developer

Chess engine development is one of the most brain-crushing activities I’ve been involved on the last years. Last nigths I was working again on my Carballo Chess Engine with some advances.

First of all I decided to leave Negamax and go with Principal Variation Search (PVS). Also decided to implement separate methods for root nodes, PV nodes and null window searches. On previous experiments PVS was performing worse than Negamax, but I discovered the reason: the aspiration window has some implementation issues with PVS: when the search for a move fails low at the root node the move must be researched enlarging the window.

I was very stranged of why Futiliy Pruning was not working for me, but finally discovered the reason: a simple sign change after evaluation was the reason! Also implemented to store the evaluation values on the Transposition Table (TT).

The next step: why Carballo searched much less depths than other engines, it was due to quiescence search. I was generating checks for the first 4 PLY’s of quiescence, but some other engines not, so this was the reason. I decide to generate only checks on the first PLY of quiescence and only for PV nodes. Also modified a bit the move generation to optimize for quiescence.

During this time also found many interesting bugs, I was storing on the TT the bound and not the score when failing high/low, also on PV nodes is better to use only the TT for ordering and not to return scores from it, this helps avoiding draws. Also found a serious bugs involving time management (was taking as reference opponent’s time) and with contempt factor on IID searches corrupting TT entries. Finally added a Pawn Push Extension and removed the Recapture Extension and now some extensions now depend of the node type.

Running some test tournaments, I hope to get some good results soon and add the improved engine to my Mobialia Chess.


Great GWT UI for Carballo Chess Engine

libgwtsvg-chess

Lukas Laag has written me about his new  GUI for the Carballo Chess Engine  using the Google Web Toolkit (GWT) and his SVG Graphics Library for GWT, libgwtsvg.

GWT is provided from Google to develop applications in Javascript programming in Java. It conterts the Java code to Javascript, and the application is run on the browser, without any additional plugin.

This interface is quite better than the sample Applet from Carballo, it has move history, legal move hightlighting, and SVN graphics. It can be used from:

http://www.vectomatic.org/gwt/libgwtsvg-chess/libgwtsvg-chess.html

He also wrote an article explaining the difficulties of his project. Thanks Lukas for your work.


Rakarrak: The Linux Guitar Effects Processor

Recently, navigating the Debian repositories I found Rakarrack, an Open Source Linux program to simulate various guitar effects in real time. This sound effects are often done with expensive physical sound processors, but this application makes it all with only one cheap computer (well, I suppose that the quality will rely a lot on the sound card).

Each effect is a module and and has its owns parameters which can be adjusted with sliders from the GUI. Multiple effects can be chained in different configurations.

rakarrack

For the audio input and output, It uses the Jack Sound Server. Initially Jacks is a bit complicated to set up but is very versatile. I use the qjackctl to configure and run Jacks simplifying this task. First we start qjackctl and from its GUI, start the jack server. Then run Rakarrack, and with qjackctl we connect Rakarrak to the system sound output and input:

qjackctl_connect

The latency (the sound delay) of Rakarrak is quite good, but depends a lof of the Jack server configuration. This snapshot is the configuration that I am using from qjackctl: the Latency is the important value, and can be minimized adjusting the “frames by period” parameter:

qjackctl

I played a lot using different presets (it has lots of pre-configured) and there are some quite good, but others does not sound as good as a physical pedal, maybe also by le low quality of my notebook sound card.

It also has an integrated guitar tuner, but for this purpose I prefer Lingot from my Friend Iban Cereijo.

A lot of years ago I tested Guitar Rig, a quite pretty (and expensive!) windows applicattion for the same purpose, but then the latency of the sound was too high. Rakkarrak is simpler but enough for most non-professional guitar players, and I like it a lot!

http://rakarrack.sourceforge.net/


Snippet: FLV video encode

snippet

Using mencoder in Linux, we can convert any video to FLV and embed it in a web page with Flowplayer. In this sample video is encoded at 320×240 300 kbps and audio at 56kbps:

# mencoder -forceidx -of lavf -oac mp3lame -lameopts abr:br=56 -srate 22050 -ovc lavc -lavcopts vcodec=flv:vbitrate=300:mbd=2:mv0:trell:v4mv:cbp:last_pred=3 -vf scale=320:240 -o out.flv in.avi


CentOS, alternativa libre a Red Hat Enterprise Linux

Logo de CentOS

En cuanto a las distribuciones de Linux siempre he sido un talibán de Debian, pero hay aplicaciones propietarias que requieren de ciertas distribuciones de Linux para poderse instalar sin problemas, y casi siempre suelen ser compatibles con Red Hat Enterprise Linux (RHEL).

Pues bien, para estos casos tenemos CentOS, que es una distribución de Linux totalmente compatible con RHEL. Sigue las mismas versiones que Red Hat, así una Centos 4.7 es como una RHEL 4.7 y los paquetes son los mismos, idénticos en versiones, y además tenemos actualizaciones gratis de por vida (para Red Hat hay que pagar la subscripción a Red Hat Network). También es muy fácil habiendo instalado un RedHat poner los repositorios de CentOS y convertirlo a un CentOS.

Como es de suponer, CentOS tiene muchos de los defectos de RHEL, como que para actualizar de la versión 4 a la 5 te recomiendan reinstalar desde cero. Yo administré servidores Debian en los que durante muchos años siempre estábamos en la última versión estable sin tener nunca que reinstalar… No obstante se añaden algunas mejoras en unos repositorios separados (CentOS Plus), que permiten por ejemplo tener los PHP 5 en una RHEL 4.x, cuando los repositorios “oficiales” de Red Hat proporcionan sólo PHP 4.

Y por supuesto que, añorando mis Debian, me he instalado el apt para RPM’s, que es una herramienta mucho mejor que el up2date o el yum.


Amueblar con Ikea Home Planner

Ikea Home Planner

Tras años de embarque, ya tengo un cascarón vacío (léase casa) para llenar de muebles… uff, ¿pero qué le ha pasado a mi cuenta bancaria? Ah si, que llevo pagando que si hipoteca, que si notarios, que si albañiles… pero entonces ahí está Ikea, el Burguer King de la decoración, donde por cuatro duros (bueno, ahora son euros) te puedes comprar unos muebles estupendos… bueno, de apariencia estupenda, aunque habrá que ver cómo salen a la larga.

Para los geek como nosotros , que no somos capaces de pensar sin un ordenador delante, Ikea tiene un programa que te permite amueblar virtualmente tu casa. Comenzó como Ikea Kitchen Planner pero ahora es el Ikea Home Planner, ya que incluye también tiene muebles de salón y dormitorio, y por supuesto es gratis y te lo bajas desde la página de Ikea.

El programa en sí es cutrillo, sólo te deja amueblar un habitación a la vez, los techos son siempre planos y a la misma altura, los renderizados son muy básicos,  y no te deja dibujar nada más que puertas ventanas y “cosas que puedas comprar en Ikea”. En contrapartida es muy, muy fácil de usar, quizás el que más de todos los que conozco. Aun así, tiene detalles muy buenos, como por ejemplo el poder planificar el interior de los cajones de la cocina, siempre con accesorios de ellos, claro. Y lo mejor de todo es, que una vez dibujados todos los muebles, te saca una receta con precios (siempre baratos, claro) para que te lleves a tu tienda Ikea.

En fin si tienes poco dinero, esta es la tuya, si papi te paga los muebles mejor vete a una tienda de toda la vida, que los muebles de Ikea tienes que montártelos tu, y aunque las instrucciones vienen todas con dibujitos y no hace falta saber leer, a lo mejor se te puede romper una uña al coger el destornillador…


Me paso a la construcción @Castelo

Castelo

Cuando empecé a hacer la casa comentaba medio en serio medio en broma que era mejor dedicarse al sector de la construcción… pues ahora ya estoy de pleno en este sector, y es que acabo de comenzar a trabajar en una empresa del grupo Castelo de prefabricados de hormigón, eso sí, de informático, pero en la construcción de todas formas.

El reto inicial es completar la implementación de JD Edwards Enterpise One, un CRM/ERP de Oracle (el que PeopleSoft compró a la empresa JD Edwards y quedó integrado dentro de Oracle cuando PeopleSoft fue adquirida por ésta, y que ahora Oracle integrará en su próximo Oracle Fusion). Como aplicación es tremendamente potente y versátil, pero se encuentra con el mismo problema que todos los ERPs, la adaptación a la empresa… y a eso me dedicaré…


Noite galega das telecomunicacións 2007

Noite Galega das Telecomunicacións

Este año tuve la suerte de, en mi nuevo estatus de ingeniero colegiado, poder acudir a este evento en el Gran Hotel Hesperia de la Toja. En principio el hotel, pese a tener un aire de otra época hace honor a sus cinco estrellas, y el ambiente de gala, también impecable, con cóctel y cuarteto de cuerda incluídos…

El problema fue cuando empezaron las presentaciones: esta era la edición de la “Banda larga”, esto es la banda ancha, aunque en gallego cada uno la llama como le parece: banda ampla, banda longa… bueno anécdotas aparte, nos pusieron un video con un tipo entre las vacas reclamando a “banda larga” para las aldeas… y es que creo que en Galicia seguimos con una mentalidad de aldea, pensando siempre en el rural sin impulsar la innovación empresarial.

Y es que tal como lo pienso sólo hay que ver a quién entregaron los premios:

  • Ingeniero del año: Antonio Posse (Director técnico de la RTVG), bueno, este premio es más que merecido; al salir a recogerlo puso a caldo a la Xunta en general.
  • Socio de honor: Santiago Rey Fernández laTorre (Director de la voz), el cual afirmó que en su empresa contaban con “Todas las máquinas disponibles” (creo que faltó el “y todas las que se van a fabricar”) y reconoció el mérito a su departamento técnico y a su director técnico… menos mal.
  • Premio al mejor proyecto TIC con beneficios sociales: Sociedad Tecnocoid, por implementar un localizador GPS para localizar a personas mayores que necesiten auxilio… uy, qué novedad, esto ya lo vi hace cinco años.
  • Mejor aplicación TIC: Arantia, por una aplicación para hoteles casi igual a la que premiaron el año pasado… ya empezamos como los chinos… a copiar sea dicho.
  • Mejor iniciativa empresarial TIC: Imatia, por montar una empresa con recursos de la universidad y contratando a carne de cañón…

En fin, menos mal que la comida de la cena era excelente, que Touriño nos saludó como si nos conociera, y que en la barra libre sólo me pusieron una copa de garrafón… No  obstante recomiento a todos los ingenieros que acudan a este evento, que como punto de encuentro con antiguos compañeros y profesores funciona muy bien, aunque si vais a buscar oportunidades de negocio… creo que lo vais a tener más complicado.