Showing posts with label Palm. Show all posts
Showing posts with label Palm. Show all posts

Friday, May 31, 2013

Chess Tiger (Palm) vs Carlos Sandoval


Carlos Sandoval, un jovencísimo Maestro FIDE es mi alumno. Me gusta mucho estudiar con él porque es trabajador, disciplinado y porque está en la mejor disposición siempre de ver más ajedrez. Estudiamos un par de veces por semana y en el plan de trabajo estamos incorporando nuevas aperturas (y defensas). Hace un par de semanas empezamos a trabajar el gambito Benko, que es una defensa dinámica que tiene muy claros sus temas estratégicos. Pienso que es relativamente fácil de  guiarse por las posiciones que este gambito genera, y por ende, hay mucho margen para jugar una partida interesante.

Aparte de estudiar las partidas más ilustrativas del gambito, las que son modelo de estrategia, las propias partidas del creador del mismo, Pal Benko, un trabajo que hacemos es el de jugar partidas de entrenamiento contra alguno de los tantos programas de ajedrez que hay en el mercado. Sin embargo, es evidente que ponerse a jugar contra un "engine" como Rybka o Houdini es prácticamente imposible, pues son demasiado fuertes. En lugar de eso, jugamos contra alguno de estos programas Chess Tiger, Chess Genius o Hiarcs, en una Palm Tungsten. La virtud de jugar contra alguno de estos programas es que por las limitaciones de memoria y, la relativa lenta velocidad de sus microprocesadores, es posible dar batalla a estos motores de ajedrez e incluso ganarles.





Sin embargo, ganarles a estos programas tampoco es sencillo. En un comparativo de ratings en una Palm Tungsten, se halla que Chess Tiger juega unos 2191 puntos, Chess Genius 2352 y Hiarcs (versión 13.1) unos 2586 puntos.  Mark Uniacke, el autor de Hiarcs -y en mi opinión el programa más fuerte que hay en la Palm- dice que en las páginas web de Chess Tiger y Chess Genius, el rating que proponen para sus motores de ajedrez está unos 100 puntos por encima de la evaluación que el propio Mark da, después de 1062 juegos contra los otros engines.


Así pues, lo que hicimos el miércoles 29 de mayo, fue poner a Carlos a jugar el Benko contra Chess Tiger, dándole una hora por jugador. He aquí la partida:

Blancas: Chess Tiger
Negras: MF Carlos Sandoval


1. d4 Nf6 2. c4 c5 3. d5 b5 4. cxb5 a6 5. bxa6 Bxa6 6. Nc3 d6 7. g3 g6 8. Bg2 Bg7 9. Nf3 O-O 10. O-O Nbd7 11. Re1 Esta posición se la pusimos a Chess Tiger y desde este momento empieza la partida 11. ... Qc7 12. Bg5 Esta no es la jugada más popular. La jugada más frecuente aquí es 12. e4. 12. ... Rfb8 Después de la partida le dije a Carlos que yo hubiese preferido 12. ... h6 primero y después Rfb8. Sin embargo, hay una sola partida (2006) con esta línea, de dos oscuros jugadores. 13. Qd2 Nb6 14. b3 Ng4 15. e4 Ne5 16. Nxe5 Bxe5 17. a4 Nc8! Muy interesante idea. Defiende el punto e7 y comienza a presionar sobre las columnas semiabiertas. 18. Rab1 


Juegan las negras

18. ... Rb4! Una jugada típica de bloqueo. Aunque Nimzowitsch definió este concepto hace unos 80 años, sigue estando vigente. 19. Bf1 Bxf1 20. Kxf1? Después de la partida Carlos me indicó que esta jugada le pareció floja. 20. ... Na7!? Chess Tiger sugiere 20. ... Db6 primero y luego Ca7. 21. f4 Bg7 22. Na2 Rd4 23. Qf2 h6 24. Bh4


 Juegan las negras

24. ... c4! estupenda jugada en el momento justo. En toda la partida, la valoración de Chess Tiger ha estado entre 0.00 y 0.66, a su favor. Considerando que está jugando con peón de ventaja, esto implica que las negras tienen una partida jugable, a pesar del peón menos.  25. Rbc1 Qa5! 26. Rxc4 Rxc4 27. bxc4 Qxa4 28. Qe2 Nc8! Increíble. El caballo regresa a defender e7 y lo hace ganado un tiempo, pues el corcel de a2 blanco ha quedado atacado dos veces. 29. Nc1 Bc3 30. Rd1 Rb8 31. Qd3 


Juegan las negras

31. ... Rb1!! Cuando hacemos esta clase de ejercicios, yo hago las jugadas de la máquina y aprovecho para analizar también, como si fuese mi partida. A mí se me escapó 31. ... Rb1!!. Solamente había contemplado 31. ... Tb2, lo cual no es malo pero es sin duda menos fuerte. 32. Kg2 Qa1! y la posición negra ya es ganadora. Aquí Chess Tiger consumió mucho tiempo y terminó por jugar 33. c5 Rxc1 34. Rxc1 Qxc1 35. c6 Qd2+ 36. Qxd2 Bxd2 y dimos por terminada la partida, haciendo abandonar a Chess Tiger, pues la ventaja negra es decisiva. 0-1.

Sin duda una muy buena partida de Carlitos. En mi opinión, hay mucho futuro en mi pupilo, pues con 12 años apenas, ya juega un muy buen nivel.

Friday, November 02, 2012

La programación en el siglo 21


La programación -decía algún gracioso- es de esas pocas cosas divertidas que se pueden hacer con los pantalones puestos. Y la realidad es que para quienes programamos (y en ocasiones vivimos de esto), el hacer que la computadora se comporte como queramos, que dé los resultados deseados, que haga los cálculos que necesitamos, es algo que de entrada es satisfactorio, porque de alguna manera nos damos cuenta del cómo tener que explicarle a una máquina lo que queremos que haga.

Evidentemente con los años las cosas en programación han cambiado notablemente. Quizás una de los primeros ambientes RAD (Rapid Application Development) fue Visual Basic, de Microsoft, pero pronto salieron otros entornos igual de atractivos para lenguajes mucho más poderosos que el relativamente simple Basic. Por ejemplo, Borland presentó Delphi 1.0 en 1994 y a decir de Philippe Kahn, el creador de dicha empresa, no buscaban competir contra Visual Basic, sino contra PowerBuilder (Sybase), el cual aún existe.

La idea atrás de RADs es crear entornos de programación donde los desarrolladores tengan a la mano una serie de componentes comunes: botones, barras de progreso, editores de textos, menúes, listas de objetos, imágenes, etcétera, de forma tal que puedan ponerse en la aplicación usando drag & drop, es decir, tomando el componente y soltándolo en la ventana del programa. Cada componente tiene una serie de propiedades y métodos, lo cual cumple estrictamente -en la mayoría de los casos- con el paradigma de la programación orientada a objetos (POO), la cual se utiliza ya comúnmente en cualquier entorno moderno. La gracia de esto es que el desarrollador solamente tiene que asignar qué tipo de acción va a ocurrir cuando se le dé click, por ejemplo, a un botón. Así, no tenemos que armar de cero la aplicación. Basta con poner los componentes que necesitamos y programar los eventos de los mismos.

Evidentemente cualquier RAD moderno tiene mejores habilidades, por ejemplo, la de crear componentes que hagan tareas muy específicas, basándose muchas veces en las bibliotecas y componentes ya existentes. Para la mayoría de los medios ambientes de programación modernos es fácil hallar muchos componentes de terceros para un sinfín de aplicaciones en particular. Por ejemplo, yo he hallado un tablero de ajedrez con una serie de facilidades que permite crear programas asociados con las actividades del ajedrez sin necesidad de tenerme que sentar a escribir un componente propio que valide las jugadas en el tablero, que anime los movimientos de las piezas en la pantalla, etcétera. Vamos, que ya viene todo el componente con esa funcionalidad que evita perder mucho tiempo rehaciendo una y otra vez lo mismo.

Lo mejor del asunto es que este paradigma que RAD ha impuesto por las facilidades que da a los programadores, ya existe para los dispositivos móviles. La mayoría de ellos no tienen entornos de programación. Es decir, no programamos directamente sobre el teléfono celular o la tablet, sino que usamos una herramienta en la máquina de escritorio (PC, Mac, Linux), que nos permite hacer el desarrollo deseado, usando un emulador para probar la aplicación que está siendo escrita (o mejorada). De nuevo, estos entornos de programación para los dispositivos móviles contienen una serie de componentes ya pre-establecidos que permiten desarrollar rápidamente aplicaciones, además de darle a los programas un medio gráfico similar en todo el sistema en el que se está programando (iOS es el mejor ejemplo de esto).


Hay incluso empresas que hacen entornos para programar en iOS, Android o Windows Phone bajo este paradigma. Casualmente, la idea de los RADs ha permeado incluso en medios ambientes que bien podríamos considerar obsoletos. Veo PocketStudio, un ambiente muy parecido a Delphi (se programa en Pascal), para crear apps para la Palm, el cual es comercial. Hay alternativas como Palmphi, que pretende ser un entorno como Delphi, pero cuyo lenguaje nativo es C. Para PocketPC hay también muchas herramientas de desarrollo que incluso siguen vigentes: Pocket Programming Language, que usa su propio lenguaje (el cual no sé a qué se parece), NSBasic, el cual ya puede usarse incluso en tablets y teléfonos inteligentes en iOS y Android. Así, la miriada de posibilidades permite a los programadores elegir la mejor opción para cada quien.

Aparte de los entornos típicos (como el que da Google para programar para Android) o el que da Apple para iOS. Es cuestión de buscar y empezar a entender las características específicas de los entornos que queremos usar. Si usted se dedica a programar, debe considerar que el futuro será -y por un buen tiempo- los dispositivos móviles. Hay un gran margen de alternativas y posibilidades para quienes buscan vivir de crear código.

Wednesday, September 26, 2012

Una triste derrota contra ChessGenius


La segunda partida de mi match de entrenamiento contra ChessGenius para Palm no resultó un muy buen encuentro de parte mía. Aunque no jugué mal en un principio, después aflojé espantosamente. Digamos que me debe quedar claro que necesito profundizar más en las posiciones y en la valoración de la posición. He aquí la partida:

ChessGenius (palm) - Manuel López
Defensa Holandesa (6/19/07)

1. c4 f5 2. d4 e6 3. Cc3 Cf6 4. Ag5 Ae7 5. Cf3 d6 6. e3 O-O 7. Ad3 Cc6 8. O-O e5 En mi opinión, aquí la partida está igualada (cosa que comparte Rybka). De hecho, las negras ya pudieron hacer el deseado avance del peón de e. 9. Ae2


Juegan las negras

9. ... e4!?
Me parece ahora mala. Mejor la indicada por Rybka 9. ... h6. El problema del avance del peón a e4 es que será sujeto del ataque con f3 prácticamente de inmediato. Mantener un peón en e4 por parte del negro será imposible y cambiarlo por el peón de f3 sería ceder el centro. Era mejor mantener la tensión central. 10. Cd2 De8?! temática pero dudosa 11. Af4! Nunca pensé que las blancas regresaran su alfil a f4. El plan es probablemente darle fuerza a la jugada c5. 11. ... a6 12. f3! Ad8 13. fxe4 Cxe4 14. Cdxe4 fxe4 y ahora las negras enfrentan la necesidad de mantener el peón en e4. Si lo pierden, su posición puede venirse abajo. 15. c5! dxc5 16. dxc5 Af5 (mejor 16. ... Ae6) 17. Db3+ Rh8 18. Dxb7 Tb8 19. Dxa6 Txb2 20. Ab5 Ad7 Rybka sugiere Cb8! 21. Da3 Tc2 22. Db3! Txc3 23. Dxc3 Af6 24. Dc4 Axa1 25. Txa1 la posición parece ya perdida. Aquí ya entre el desánimo y la desesperación jugué ya sin luchar.25. ... Ce5 26. Dxe4 Cf3+ 27. gxf3 Dxe4 28. fxe4 Axb5 29. Axc7 1-0. Los peones de ventaja garantizan que tarde o temprano habré de rendirme.

Friday, September 21, 2012

La espantosa superficialidad


La segunda partida de mi match contra Hiarcs fue un desastre. Jugué arriesgado y además, mal. Evidentemente Hiarcs para Palm es un programa sorprendentemente fuerte. Por ejemplo, en la primera partida, Hiarcs analizó 3 millones de nodos en el final, en el cual creía la máquina tener ventaja y buscaba denodadamente ganarme. Indudablemente por los 40 dólares que costó el programa en su momento, Hiarcs es una estupenda compra.

Como se verá en esta segunda partida, Hiarcs juega muy bien contra las llamadas defensas inferiores, particularmente la Escandinava, que no parece serle muy del agrado a la computadora en el sentido que considera que las blancas están mucho mejor de entrada.

Como se verá, Hiarcs no me perdonó mis errores. Literalmente me sacó del tablero. He aquí la partida:

Hiarcs 9.6 (Palm) - Manuel López
Defensa Escandinava (6/14/2007)

1. e4 d5 2. exd5 Cf6 3. Ab5+ Ad7 4. Ac4 Ag4 5. f3 Ac8 6. Cc3 Cbd7 7. d4 Cb6 8. Ab3 Cbxd5 9. Cxd5 Cxd5 10. c4 Cb6 Otra opción es jugar el caballo a f6. Esto es lo que quizás recomendaría Juan Carlos González, aunque en mi opinión, el caballo está mejor en b6. 11. Ce2 e5!? 12. c5 Cuando la maquinita me hizo esta jugada, no pensé que fuese tan buena. Mi pésima concepción de esta posición me enseñará mucho. 12. ... Cd7 13. Ae3 exd4 14. Dxd4 Axc5??


Juegan las blancas

Quizás esta es la jugada perdedora. Jugué relativamente rápido pensando que todo estaba bajo control, pero desde luego, aquí la computadora ve más que yo. 15. Dxg7 Aquí entonces me percaté que 15. ... Df6 se refuta fácilmente con 16. Axf7+, ganando un importante peón y dejando en ruinas la posición negra. Por ello continúe con: 15. ... Ab4+ 16. Cc3 Tf8 17. O-O-O Df6 "Todo controlado", pensé para mis adentros. Sin embargo, aquí Hiarcs me saca de mis sueños guajiros...


Juegan las blancas

18. The1!!
Nótese como juegan todas las piezas blancas. Es increíble lo bien que explotó mis errores. 18. ... Dxg7 19. Ag5+ y no queda más que rendirse 1-0.

Wednesday, September 19, 2012

Primera partida con ChessTiger

Ahora le tocó el turno a Chess Tiger para Palm. El rating calculado es de alrededor de 2150 a 2250, de acuerdo a diferentes estimaciones de algunas páginas web. Supuestamente este programa debería ser más débil, pero mostró una testaruda defensa. En el momento crítico no encontré una jugada que le daba ventaja definitiva a las blancas y entonces el programa mostró recursos defensivos importantes. El programa calcula aproximadamente 4 o 5 jugadas (ply 8 o 9) prácticamente en cada movimiento y utiliza todo su tiempo. Al final de la partida, me equivoco gravemente y pierdo sin dar resistencia, en una posición que Rybka da como igualada. Esta es la partida:

Manuel López - Chess Tiger Palm
Match de entrenamiento (6.25.2007)

1. e4 e5 2. Cf3 Cc6 3. Ab5 a6 4. Axc6 dxc6 5. Cc3 Ac5 6. Cxe5 Dg5 7. d4 Dxg2 8. Df3 Dxf3 9. Cxf3 Ab6 10. Tg1 g6 En mi opinión, las blancas tienen que estar mejor. Rybka da 0.34 para el blanco, lo cual es menos de un peón. Considerando que las negras tienen la pareja de alfiles, eso quiere decir que el blanco está mejor. 11. Af4 Cf6?! no me gustó. Esto obliga al negro a ir a e7 con el rey. No habiendo damas, perder el enroque no parece demasiado grave, pero da la impresión que la posición del negro es pasiva. 12. Ae5 Re7 13. Ca4 Intentando deshacerme de un alfil negro o dejar débil c7. 13. ... Aa7 14. O-O-O Tg8?! tampoco me gustó. ¿Qué hace la torre negra ahí? 15. Axc7 Ag4 16. Td3?! 16. Tg3 parece mejor. 16. ... Axf3 17. Txf3 Axd4 18. Td1 Aa7 19. Ad6+ Re6 20. e5 Cd7 21. Cc3
Juegan las negras

La posición del negro parece pasiva, inferior. Pero eso a Rybka no le causa mayor problema. Indica que el blanco tiene ligerísima ventaja, pero nada formidable. 21. ... g5! 22. Ce4 g4 23. Tf4 Tg6 24. Cg3 Ab6 25. c4 Te8 26. b4 Ad8 27. Kc2 a5 28. a3 axb4 29. axb4 b6 30. b5! c5 Intento dejar a las negras en zugzwang. Su posición es pasiva, sin muchas perspectivas de juego. 31. Td5 f6 32. Te4 f5 33. Tf4 Aquí pensé que ganaba un peón, pues olvidé la siguiente jugada del negro. 33 ... Tg5 34. f3 Teg8 35. Rd3 h5 36. fxg4 hxg4 37. Tf2 T5g7?! Ni se me ocurrió. Y en esta posición, que es el momento crítico de la partida, comento un error que echa a perder todo el trabajo pasado:

Juegan las blancas

38. Ce2?? Pensé que no había defensa a Cf4, pero las negras se defienden bien con su siguiente jugada. Ganaba la calidad, y probablemente la partida, 38. Ch5! (Rybka da 1.27 a favor del blanco y además, responde 38. ... Ag5, dejando la calidad). 38. ... Ag5! 39. Ac7 Tc8 40. Axb6? Cxb6 41. Td6+ Rxe5 42. Txb6 f4 43. Cc3 f3 44. h3?? mal y de malas. Después de una partida más o menos bien conducida, cometo un error que termina la resistencia del blanco muy rápidamente 44. ... Ah4 45. Tf1 Td8+ 46. Cd5 g3 47. Te1+? Rf5 0-1.

La moraleja de la historia es interesante: Los programas abundan en recursos tácticos. Siempre calculan igual, no ceden terreno en ese sentido. Pueden estar inferiores, pero buscan, siempre buscan lo más tenaz. Cuando le di respiro a la máquina, ésta organizó rapidamente sus fuerzas. En cambio yo, me harté de su resistencia, a pesar de tener una posición inferior. Hay que considerar esto para la siguiente partida.

Monday, September 03, 2012

Más sobre la historia de mi Palm Tungsten E


En el 2003 me compré una Palm Tungsten modelo E. Era a color y tenía 32 MBytes en RAM. Inmediatamente me hice de los programas de ajedrez, algunos otros juegos, programas de apoyo al sistema operativo, etcétera, aunque la idea original era usarla para ajedrez. Me compré -por unos 40 dólares- el Hiarcs para Palm, un programa que ya alguna vez fue campeón del mundo por computadora y que su autor sigue desarrollado aún en estas fechas.

Mi Palm me habrá durado unos cuatro años sin problemas, pero de pronto ya la fuente de poder no cargaba el sistema. Quizás era un falso contacto o se estropeó la propia fuente. El caso es que de repente no tenía Palm pues simplemente se había quedado sin pila. En ese entonces un profesor de la Universidad Iberoamericana (¡saludos José María Campaña!) cargaba su Palm vía un cable USB que había conseguido en México. Por más que busqué el dichoso cable no lo encontré, pero poco tiempo después mi hermano lo consiguió en Estados Unidos y me lo dio. Finalmente podía de nuevo cargar mi Palm.

No sé cuánto tiempo duró la felicidad, pero he aquí que de pronto a la Palm se le acababa la pila muy rápidamente. Y si digo rápidamente, hablo de cuestión de 5 o máximo 10 minutos. Así que si la quería usar, tenía que tenerla conectada permanentemente. Aún así, a pesar de este inconveniente la estuve usando ara jugar un match contra los tres programas que tenía a mi alcance en ese dispositivo: Hiarcs, ChessGenius y ChessTiger (este último el más flojo de los tres). Los ratings aproximados de estos programas bien podrían ser 2650 para Hiarcs, 2250 para ChessGenius y 2100 para ChessTiger.

Uno podría preguntarse para qué comprarse un  programa para un dispositivo como la Palm, teniendo programas (incluso gratuitos o de software libre), que bien compiten con los comerciales. La realidad es que la Palm, por ejemplo, está limitada en velocidad de proceso y memoria y por ende, es un rival al que se le puede ganar. Los libros de apertura que tienen estos programas son limitados (frente a los que usan las máquinas de escritorio), por lo que un encuentro, una partida de ajedrez seria, con reloj, como si fuese de torneo, jugando contra la Palm, bien podría ser una actividad mucho más divertida, pues es francamente tedioso perder una y otra vez contra Nimzo, Fritz o Rybka en la PC.

Como me molestaba el problema de la pila, mandé a arreglar mi Palm y la pila que le pusieron duró poco tiempo. Así que le di una última oportunidad a la maquinita. Me compré una pila por correo y me llegó, directamente de Estados Unidos, con las instrucciones para hacer el cambio. Sin embargo, no solucionó el problema y la pila se descargaba rápida e inexorablemente.

Llegué a la conclusión que tenía que hacerme de otro dispositivo móvil... y después de mucho pensarlo me compré un iPod Touch, el cual facilita las cosas. En la Palm había que entrar a Internet, descargar la aplicación que nos interesara, y sincronizar los archivos de la PC con los de la Palm. Ahora en el iPod Touch se entra a la tienda de Apple y vía WiFi llega de inmediato la aplicación al dispositivo. Desde luego que esto hace la vida más sencilla, además de que el iPod Touch tiene mejores prestaciones de hardware, es más rápido, tiene una mejor pantalla, la cual es capacitiva (desaparece el uso de la pluma stylus), entre otras facilidades.

Estoy muy contento con mi iPod Touch porque prácticamente tengo los programas de ajedrez que tenía en la Palm, nada más que más poderosos. Por ejemplo, me compré el Hiarcs para iPod Touch (unos 100 pesos), que juega unos 2700 puntos Elo. la interfaz es mucho más cómoda y no tengo problemas con la pila, aunque para jugar contra la máquina en partida "de torneo", necesito tener cargado el dispositivo porque le dura unas dos horas encendido. No me hice del ChessGenius ni del ChessTiger, pero hallé un sinfín de otros programas que juegan muy bien. Vaya, hasta encontré Stockfish, que es tan fuerte como Rybka 4.0.

Sin embargo, resulta que estoy dando unas clases a jovencitos que tienen talento para el ajedrez. Con uno de ellos, que ya es Maestro FIDE, decidí experimentar poniéndolo a jugar una partida contra alguno de los programas que tengo. La primera opción era usar el iPod y alguno de los programas instalados. La segunda opción era ver si podía reinstalar el software en la vieja Palm. para mi sorpresa, pude instalar el ChessTiger (que ahora juega mejor y que es gratis). El ChessGenius no me deja registrarlo (me dice que mi versión es de prueba, con lo cual juega bien como hasta la jugada 15), y el Hiarcs, que compré en su momento. Yo tenía instalada la versión 9.6 pero ya está la versión 13.1. Instalé ésta pero mi registro para poder habilitar toda la fuerza del programa no funcionó. Le escribí al autor de Hiarcs y me dijo que podía actualizar mi software por unos 20 dólares o bien, cargar la versión 9.7 en las Palm con mi registro -que debería de funcionar. Así hice pero hallé que algunas opciones marcan error y la maquinita se rearranca. Instalaré la versión 9.6 y veré si puedo al menos tener el sistema que tenía originalmente. De nuevo, ¿por qué esta necedad de seguir usando la Palm? Porque está mucho más limitada que el iPod Touch en recursos y por ende, lo hace un rival ajedrecístico que no tiene tantas ventajas contra los seres humanos. Su procesador, por ejemplo, es lento y "apenas" con 32 MBytes de memoria (¡el iPod Touch tiene 8 GBytes de RAM y un procesador que corre siete veces más rápido que la Palm!) y además, como ya dije antes, su libro de aperturas es limitado y no tiene tablas de finales.

Lo interesante del asunto al finaldel día es que parece que se compuso el problema de la pila. La cargué y han pasado días y aún se mantiene indicándome que tiene toda la carga disponible. No sé cuánto vaya a durar esto, pero al menos parece ser que se compuso el asunto. Estaré al pendiente si esto sigue así o si hay cambios, que reportaré en su momento. Por lo pronto, ya puedo poner a mi alumno a jugar contra la Palm y ver qué resultados obtenemos en esta práctica.