domingo, agosto 31, 2014

Batería del coche estropeada

Creo que han pasado cuatro años desde que cambié la batería del coche. No he prestado atención a los síntomas, que empezaron a la vuelta de las vacaciones (deje el coche dos semanas parado) cuando le costaba algo de trabajo arrancar y los elevalunas no funcionaban del todo bien, quedándose atrancados. No comprendo porque las baterías no tienen un chivato que indica que esta dando fallos.

La política de los bandos

En temas que tienen que ver con la política -y puede quedar raro escribir de esto en el blog-, mantengo mis opiniones reservadas a un ámbito muy cercano de amigos y familiares más íntimos, pero de vez en cuando surge comentar algo sobre la situación actual. Y cada vez que esto pasa, me queda un regusto amargo.

Tengo la sensación de que no es que nada se haga bien, sino de que no hay ningún interés de que se hagan las cosas bien, pensando en que mañana podemos tener un país mejor, con unas leyes para todos y que sean un ejemplo para los demás. No es que sea de ahora, sino que ha sido de siempre. Si uno mira hacia atrás en la historia del país, los hechos confirman lo que digo. Pocas leyes se hicieron que no fueran pensadas para mantener el status quo o para revertir cambios que se hicieron anteriormente, tanto de un bando como de otro.

Y sobre todas las cosas, el concepto de 'los bandos' lo domina todo. O estas con uno o con otro para siempre. No lo comprendo y no lo comparto. La política, por encima de todo, deber ser un arte del equilibrio para saber ceder en algunas cosas y ganar en otras. Lamentablemente, esto se ha entendido muy pocas veces. También los ciudadanos tenemos nuestra parte de culpa, primando más convertirse en hincha de un partido político sobre cualquier otro tipo de consideración. En cualquier caso, en una democracia si no se comprende y se respeta al resto, mal uso se le va a dar a la misma.

domingo, agosto 24, 2014

Comics futuribles

Le tengo el ojo echado al tercer volumen de los recopilatorios de Hellboy (edición integral en cartoné forrado en tela y publicado a principios de año) y a la saga Locke & Key que acaban de publicar en español el sexto y último libro titulado Alfa y Omega, de la que he leido algunos números sueltos en formato CBR.

Mi pequeña colección de comics, que apenas ocupa una balda de una estantería, esta formada por Gaiman, Moore, Miller, Jodorowsky, Mignola, Spiegelman y Tsuchiya entre otros.

domingo, agosto 17, 2014

# kill -9 vacaciones

Es un título autoexplicativo que se me ocurrió esta tarde al rato de llegar a casa. De momento en google no hay ninguna ocurrencia del mismo. Al menos la vuelta de la vacaciones ha traído una buena noticia, la planta parece que aún respira.

viernes, agosto 15, 2014

Torneo más fuerte de la historia

Todos los años se establece una loca carrera para ver quien organiza el torneo de ajedrez más fuerte de la historia y todos los años la cosa se va superando. Olvidan, que debido a la inflación del ELO que sufren los jugadores, es una carrera sin fin. Ahora le toca a la copa Sinquefield, que se celebrara a finales de agosto y principio de septiembre.

Me gusta mucho más la consideración que hacen en chessmetrics, en la que para establecer la fortaleza de torneo no hacen la media de los puntos ELO de sus jugadores, sino que hacen el cálculo en función de su posición en el ranking. Por ejemplo, el torneo más fuerte de la historia fue el celebrado en Vienna-1882 en el que solo faltaba el noveno jugador más fuerte de la época, estando presentes los nueve restantes de los diez primeros. Empatado con el de Linares-1993 (que también falto el jugador noveno de los diez mejores).

PD: Es una pena que chessmetrics no esté actualizada.
PDD: En la copia Sinquefield están presente los números #1, #2, #3, #5, #8 y #9.

jueves, agosto 14, 2014

La lambada en ocho bits

Esa es la música que le han puesto al camión del butano en la Antilla cuando pasa por las calles reclamando la atención de los veraneantes. Podrían cambiarla un poco, se mete dentro de la cabeza y ningún conjuro de expulsión es capaz de sacarla de allí.

miércoles, agosto 06, 2014

Configurar Stockfish con xinetd y systemd

Detallo a continuación la forma de ofrecer Stockfish como un servicio para acceder al motor de ajedrez mediante una ip y un puerto remoto.

Descargar, compilar y instalar Stockfish
#!/bin/bash
NOMBRE=stockfish
VERSION=$NOMBRE-$(date +"%F")
if [ -e "$VERSION" ]; then
echo "Directorio $VERSION existe, se procede a borrarlo"
rm -rf $VERSION
fi
if [ -h "$NOMBRE" ]; then
echo "Borrando enlace simbolico"
rm -f $NOMBRE
fi
echo "Obteniendo version del repositorio"
git clone https://github.com/official-stockfish/Stockfish.git $VERSION
cd $VERSION/src
make build ARCH=x86-64-modern
cd ../..
ln -s $VERSION/src/ $NOMBRE
Lo de arriba descarga stockfish, lo compila y deja un enlace simbólico a la última versión compilada. Lo bueno de esto, es que podemos ir descargando versiones nuevas para probar sin borrar lo anterior, con solo cambiar el enlace simbólico, usaremos una versión u otra.

Hasta aqui, mas o menos lo normal. Ahora hay que distinguir como vamos a invocar el servicio remoto. Podemos hacerlo mediante xinetd.d al estilo unix antiguo o al nuevo estilo con systemd.

Instalación como servicio bajo xinetd.d estilo sysinit de System V

Se necesitan crear dos ficheros, el primero sirve para indicar a xinetd que cuando se encuentra una petición dirigida al puerto 3333, ejecute el script de arranque del engine stockfish.
cat /etc/xinetd.d
# default: on
# description: An RFC 863 discard server.
# This is the tcp version.
service stockfish
{
disable         = no
server          = /usr/local/bin/chess_server_stockfish.sh
socket_type     = stream
protocol        = tcp
user            = alidhaey
wait            = no
port            = 3333
only_from = localhost
}
El segundo es la propia invocación del engine. He añadido algunos detalles más para que deje en el log el momento de su invocación y de su cierre.
cat /usr/local/bin/chess_server_stockfish.sh
#!/bin/bash
BINENGINE=/usr/local/stockfish/
LOG="/tmp/chess-server-stockfish.log"
/bin/echo "Start $(/bin/date)" > $LOG
/bin/echo >> $LOG
$BINENGINE/stockfish
/bin/echo  | /usr/bin/tee -a $LOG
/bin/echo "Stop $(/bin/date)" | /usr/bin/tee -a $LOG
Instalación como servicio bajo systemd

Con Systemd la cosa va a cambiar, es posible que haya otro forma, ya que aún estoy aprendiendo como funciona systemd, pero no es complicado.
[root@hppavilion system]# pwd
/etc/systemd/system
Creamos el fichero de definición del socket para el servicio de stockfish
[root@hppavilion system]# cat stockfish.socket
[Unit]
Description=Stockfish Engine Chess
[Socket]
ListenStream=3333
Accept=yes
[Install]
WantedBy=sockets.target
y el fichero para el servicio propiamente dicho
[root@hppavilion system]# cat stockfish@.service
[Unit]
Description=Stockfish Engine Chess
[Service]
ExecStart=/home/alidhaey/src/stockfish/stockfish
StandardInput=socket
Y para habilitar el servicio y arrancarlo podemos hacer
systemctl enable stockfish.socket
systemctl status stockfish.socket
systemctl start stockfish.socket
systemctl status stockfish.socket
netstat -nap | grep :3333
En la ruta /home/alidhaey/src/stockfish/stockfish tenemos el fichero resultando de compilar el engine.

Prueba final
[alidhaey@hppavilion ~]# telnet localhost 3333
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
Stockfish 220714 64 SSE4.2 by Tord Romstad, Marco Costalba and Joona Kiiski
uci
id name Stockfish 220714 64 SSE4.2
id author Tord Romstad, Marco Costalba and Joona Kiiski
option name Write Debug Log type check default false
option name Write Search Log type check default false
option name Search Log Filename type string default SearchLog.txt
option name Contempt Factor type spin default 0 min -100 max 100
option name Min Split Depth type spin default 0 min 0 max 12
option name Threads type spin default 1 min 1 max 128
option name Hash type spin default 32 min 1 max 1048576
option name Clear Hash type button
option name Ponder type check default true
option name MultiPV type spin default 1 min 1 max 500
option name Skill Level type spin default 20 min 0 max 20
option name Emergency Move Horizon type spin default 40 min 0 max 50
option name Emergency Base Time type spin default 60 min 0 max 30000
option name Emergency Move Time type spin default 30 min 0 max 5000
option name Minimum Thinking Time type spin default 20 min 0 max 5000
option name Slow Mover type spin default 80 min 10 max 1000
option name UCI_Chess960 type check default false
uciok
quit
Connection closed by foreign host.
Si recibimos un uciok, cuando le mandemos el comando 'uci', es que todo ha ido como la seda.

sábado, agosto 02, 2014

Movil actualizado a ios7

Después de esperar a que los comentarios sobre la actualización de IOS7 para el iPhone4 fueran positivos, me he decidido a hacerlo esta tarde. No he tenido problemas al respecto. El cambio de look es extraño. Respecto a como reaccionan las aplicaciones, no noto diferencia alguna. El movil va a cumplir cuatro años. No está nada mal.

Las peluquerías de señoras

Donde vivo ahora hay cuatro peluquerías, tres  de señoras de mujeres y una de caballeros. En la de los hombres tenemos la clásica barbería de toda la vida, llena de pelos por el suelo, en la que de vez en cuando se barre el suelo. Tiene algunas revistas muy manoseadas como el interviú y prensa deportiva del día (el marca y el as). No se puede coger cita por teléfono y siempre hay que esperar cola. Y si no quieres pillar cola, tienes que ir a la hora de apertura, pero es algo informal, por lo que terminas esperando en la cafetería de al lado.

Quizás estoy influenciado por un trauma infantil, ya que recuerdo que cuando chico, el barbero del barrio (Paco), pelaba a la gente como le daba la gana. En mi caso, que tengo un remolino justo en el nacimiento del flequillo, por mucho que le dijera no me cortes mucho por delante, no había forma de que me hiciera caso. Una vez me pelo tanto, que tuve que llevar una gorra durante tres semanas hasta que me creciera el flequillo y no se me levantara como a la Cameron Diaz en la película 'Algo pasa con Mary'.

Por ese motivo, estoy encantado con las peluquerías para mujeres, siempre el trato es cordial, atento y educado. Las salas son acogedoras, limpian cuando terminan con un cliente. Te preguntan como quieres pelarte. Si tienen alguna duda, te solicitan alguna aclaración, sin tomar decisiones que puedan causarte un disgusto. Puedes llamar para coger cita. Y en cuestiones de precio, están a la par. De hecho, como me rapo al cero, no se lo esperan y te cobran menos.