Tuesday, May 24, 2011

Recordando a los Beagle Bros


Después de haber hablado de los tiempos de la Apple ][ y de la optimización que se hacía en esos tiempos del cómputo casero, Benito Estrada me comentó de los miniprogramas, los "two-liners" (programas escritos en dos líneas de Applesoft Basic), los cuales eran, sin duda, la excelencia en optimización. De hecho, sé que de vez en vez hay concursos en prácticamente todos los lenguajes para escribir en una cantidad limitada de bytes algún programa que haga algo de utilidad.

 Bert Kersey en la actualidad

El asunto es que recordando a los Beagles Bros (sin punto, porque de acuerdo al fundador, "ya no había espacio suficiente para ponerlo"), esta empresa se especializó en software para Apple ][ y fue fundada en 1980 por Bert Kersey y se expandió con el tiempo hasta lograr tener un buen conjunto de programadores y diseñadores. En ese tiempo había muchas companías de software que buscaban introducir la microcomputadora en los pequeños negocios y así había Visicalc, que es el equivalente de ese tiempo de lo que hoy podría ser Excel, por ejemplo. Kersey sin embargo, buscó apoyar al aficionado, al que hacía programación por hobby, por diversión.

Como resultado de esto, la línea de productos Beagle Bros consistía en software que ponía el poder creativo en las manos de los usuarios o expandían productos populares de otras compañías. Por ejemplo, Apple Mechanics permitía a los usuarios crear sus propias tablas de "shapes" (una forma temprana de lo que en otras máquinas ya se denominaban sprites), para crear juegos. DOS Boss, por ejemplo, permitía a los usuarios parchar el sistema operativo para cambiar los nombres de los comandos. Beagle Bag tenía juegos simples y sencillos escritos en BASIC de Apple. Los Beagle Bros además, mandaban con su software unos simpáticos carteles que contenían las direcciones de memoria importantes en la Apple ][, como el "Peeks, Pokes, & Pointers". La companía con el tiempo publicó un libro que se llamaba Big Tip Book, conteniendo todo género de consejos y ayudas para los aficionados a la Apple ][. Se publicó también el Tip Disk. Para esde entonces, a todo esto, muchas empresas protegían sus programas. Beagle Bros indicaba -con orgullo- que todo su software no estaba protegido contra copia, cosa que en realidad era una novedad en su época.

Cuando la Apple IIgs fue preentada comercialmente, la primera compañía que sacó software para esta computadora fue Beagle Bros, con el Platinum Paint y BeagleWrite GS, los cuales se consideran dos de los mejores programas de esa plataforma.

Tiempo después, Beagle Bros captó más adeptos cuando produjo programas agregados, utilerías pues, para el programa de Apple, AppleWorks. E primero fue un generado de macro instrucciones, llamado MacroWorks, escrito por Randy Brandt. Por su parte Alan Bird se dio cuenta que se podía crear un API para AppleWorks y se puso bajo una serie llamada TimeOut. Poco después, los programadores de TimeOut Alan Bird, Randy Brandt y Rob Renstrom se fueron a Claris, para desarrollar AppleWorks 3.0 y el propio API que ellos crearon se convirtió en parte de la versión 4.0 de AppleWorks (creado por Randy Brandt y Dan Verkade, y publicado por Quality Computers). Eventualmente el API de TimeOut se hizo público y nacieron muchas aplicaciones TimeOut que no venían directamente de los Beagle Bros.

El fin de una era llegó en 1991, cuando el nuevo dueño de Beagle Bros, Mark Simonsen, licenció la línea de los Beagle Bros a Quality Computers. Esta empresa fue después vendida y hoy día desapareció todo lo que correspondía a los originales Beagle Bros. No obstante, mucho de sus "clásicos" se pusieron en el dominio público a mediados de los noventas, incluyendo sus primeros programas y juegos. La compañía en algún momento sacó un par de utilerías para Mac y PC, pero con poco éxito. De hecho, BeagleWorks para Mac, fue licenciado a WordPerfect en 1992 y se convirtió en WordPerfect Works. Este producto se descontinuó cuando WordPerfect fue adquirido por Novell.

Muchos de los programadores de Beagle Bros continuaron involucrados en la industria del software. Por ejemplo Joe Holt, es uno de los autores del iMovie. Alan Bird ha trabajado para Eudora y fue el autor del programa OneClick para la Mac. Randy Brandt creó el Online Army Knife, un corrector ortográfico para Macintosh y siguió publicando utilerías para los productos AppleWorks a través de su empresa JEM Software. Mark Munz creó Deja ][, el cual permite correr AppleWorks bajo Mac OS X. El fundador de la compañía, Bert Kersey, empezó una empresa de trenes en miniatura poco después de haber vendido Beagle Bros, manteniendo el mismo estilo que le dio fama a su empresa de software. Ahora está retirado y vive en Fallbrook, California, con su esposa Sharon y un patio trasero lleno de búhos.

Pero tal vez el aspecto más memorable de Beagle Bros era su diseño gráfico, como del siglo 19. Mientras que otros buscaban un estilo que mostrara que estaban en la modernidad, Beagle Bros cultivaba la nostalgia, manteniendo su misión de crear software para los poco experimentados, para quienes aman aprender y jugar.



El humor permeó en los productos de Beagle Bros, incluso en las etiquetas de advertencia sobre cómo cuidar los discos de 5.25 pulgadas. A diferencia de otras advertencias sobre imanes, agua o altas temperaturas, que podrían dañar los diskettes, los iconos de advertencia de los Beagle Bros indicaban no usar los diskettes como papalotes, o doblarlos como aviones de papel o alimentar cocodrilos con ellos.

Otro detalle eran los "two-liners", programas en dos líneas que en los anuncios de Beagle Bros aparecían. Cada coomunicación en los medios impresos, en los anuncios de su software, venían acompañados con programas de dos líneas. Al principio los escribio el propio Kersey pero más adelante incluso puso programas escritos por los propios aficionados.

He aquí algunas imágenes de sus programas, sus carteles, etc. En mi opinión, Bert Kersey fue uno de los primeros que se dio cuenta de lo que ahora decidí llamar "programación lúdica". 




16 peones: Vigésimo cuarta entrega

Hoy es el momento de hablar de emociones fuertes... en ajedrez, obviamente.




Monday, May 23, 2011

La medida del desempeño en ajedrez

El ajedrez tiene una virtud sobre muchas otras actividades lúdicas/deportivas, que es la posibilidad de medir el desempeño y actuación de quienes practican esta actividad. Así, tenemos la medida del rating, la cual nos indica la fuerza ajedrecística de un jugador en comparación con la de otros. Esto se basa en los cálculos de Arpad Elo, inventor del sistema de rating, el cual parte que entre dos jugadores, cuya diferencia en puntuación Elo es de 100 puntos, el de mayor rating hará estadísticamente más del 68% de los puntos. Lo simpático de esta afirmación es que se cumple para jugadores cuyos ratings son 1300 y 1400 o 2600 y 2700 puntos, respectivamente.

Pues bien, otra medida que en algún momento se puso de moda y que sigue en boga, es la del desempeño o "performance", la cual supuestamente es el rating que un jugador tendría al haber hecho los puntos que hizo en un evento. Algunas organizaciones usan un algoritmo muy popular, denomina "algoritmo de los 400", para calcular el rating desempeño. De acuerdo a este algoritmo, el desempeño en términos de rating, para un evento, se calcula tomando

  1. el rating de cada jugador al que se le ha ganado y añadiendo 400 puntos
  2. el rating de cada jugador con el que se perdió y restándole 400 puntos
  3. el rating de cada jugador con quienes empató

Se suman todos estos números y se divide por el número de juegos jugador. Esto puede expresarse por la fórmula:

    Performance/desempeño = [(rating total de los oponentes + 400 * (triunfos - derrotas)) / juegos jugados].

Sin embargo, esta es una simplificación porque no toma en cuenta el factor k de la fórmula del rating, la cual es diferente de acuerdo al nivel del jugador de ajedrez. Una k de 25 es para alguien de 2000 puntos. Una k de 5 es la que se usa para jugadores del más alto rating. Sin embargo, ofrece una fórmula simple para estimar el valor del desempeño de un jugador.

La FIDE, no obstante, calcula el desempeño mediante otra fórmula:

el promedio del rating de los oponentes + la diferencia en ratings.

La diferencia en ratings dp está basada en el porcentaje p que debe hacer un jugador en un torneo, el cual se usa como valor clave en la siguiente tabla:

  p       dp
--------------
0.99    +677
0.9     +366
0.8     +240
0.7     +149
0.6     + 72
0.5        0
0.4     - 72
0.3     -149
0.2     -240
0.1     -366
0.01    -677

p es simplemente los puntos hechos divididos entre el número de partidas jugadas. Note que, en el caso de un score perfecto, dp está indeterminado. La tabla que aquí presentamos no es la tabla completa. Ésta puede hallarse en el handbook de la FIDE.

Pues con estos valores en mente, sabemos que Karpov, en el torneo de Linares de 1994, ganó con 11 puntos de 13, frente a los mejores del momento: Kasparov, Shirov, Topalov, Bareev, Lautier, Kramnik, Kamsky, Anand, Ivanchuk, Gelfand, Illescas, Polgar y Beliavsky. Su desempeño se calculó en 2985 puntos Elo, el más alto de la historia hasta el 2009, en donde Carlsen hizo un performance de 3002 puntos. Cabe señalar que ese Linares 1994 fue uno de los torneos más fuertes de todos los tiempos. El desempeño de Karpov fue verdaderamente asombroso.

Pero toda esta reflexión viene a cuento porque leo que el GM Kuljasevic, de Croacia, tuvo un desempeño de 2714 puntos Elo, de acuerdo a la página de Susan Polgar, cuando este GM, de 2537 puntos Elo jugó con rivales de estos ratings: 2127, 2224, 2430, 2388, 2230 y 2479, y haciendo 5.5 puntos de 6 posibles. Bueno, la realidad es que este GM difícilmente haría este desempeño contra un grupo de 6 GMs de unos 2700 puntos, por lo cual, dudo mucho de esta medida y de sí realmente dice algo o es una mera especulación divertida.


_____

(*) La gráfica que ilustra este artículo es el desarrollo del rating del fortísimo GM Peter Svidler a través de los años, a partir del año 2000.

De la eficiencia en cómputo



Han pasado ya algunos años, por no decir muchos, desde que empecé a usar computadoras. Mi primera máquina fue una Apple ][ y ahí hice mis pininos, primero en el Applesoft Basic y más adelante en el UCSD Pascal. Cabe recordar que una computadora de los años ochenta tenía unos 128K de memoria RAM y unidades de discos flexibles. Ni pensar en discos duros. De hecho, me tocó ver uno, para un sistema de precios unitarios, que era cvomo de 5 megabytes y que, para usarse con la Apple ][, el disco estaba dividido en un sistema de discos flexibles virtuales, que el sistema operativo DOS 3.3, podía entender entonces.


Cuando se tenían estos sistemas, estábamos limitados a unos 70K por lado del disco. Si voltéabamos el disco flexible (floppy) y le hacíamos una muesca en un borde, podíamos duplicar la cantidad de información a guardar, aunque el fabricante de los diskettes no recomendaba esta práctica. Igualmente, al tener solamente 128K de RAM, teníamos espacio reducido para nuestros programas. Si usábamos el intérprete de Applesoft Basic entonces estaríamos hablando de unos 48K para programas, porque los 128K no podían usarse más que en dos mapas alternativos de memoria por la forma en que el procesador accedía a la memoria. Por ello, en Applesoft Basic se seguía un esquema que se usó mucho en los primeros sistemas con lenguaje BASIC, el cual lo que hacía era "tokenizar" cada palabra reservada del lenguaje, para así ahorrar bytes, que estaban tan escasos en ese tiempo. Así, la instrucción PRINT, por ejemplo, se traducía a un sólo número hexadecimal. Si queríamos ver el listado del programa en memoria, éste se desplegaba destokenizando, valga la expresión, cada token y el programador veía su código fuente.

En términos de hardware y software, por ejemplo, la Apple ][ tenía su sistema operativo en un diskette de 70K. Increíble pensar que se podía tener un sistema operativo en tan poca memoria. Pues bien, como desde luego esta pieza de software era la más importante de la Apple ][, me hice de un libro que explicaba lo que pasaba dentro del sistema: Beneath Apple DOS. Hallé, cosa notable, que los ingenieros de software de Apple habían decidido poner el sistema a la mitad del disco. Si éste tenía 36 tracks, se cargaba éste en el track 18. Sonaba extraño. ¿Para qué? la respuesta es notable: si el cargador se pone a la mitad del disco, la cabeza lectora tiene que caminar máximo la mitad de la distancia para hallar el track deseado.  Obsérvese pues cómo se buscaba optimizar hasta en estos detalles.

Con el tiempo y los megas, gigas y teras, que ya están con nosotros, las cosas cambiaron radicalmente. Cualquier computadora casera tiene al menos dos gigabytes de memoria, y ello hace que la optimización y la eficiencia pierda sentido.

Ahora nadie piensa realmente en este tema. Los compiladores ya no son tan cuidadosos para ahorrar memoria. Los procesadores de texto han hecho crecer los documentos porque ahora se les añadetodo género de tags y marcas para identificar tipos de letra, tamaños, formato, etc. Simplemente un archivo que contenga la frase "Hello world!", ocupa  24064 bytes, cosa que vendría ser la tercera parte de un diskette de Apple ][.

Ahora la eficiencia, creo yo, se considera desde otro enfoque. Ahora se trata de ser muy rápido en todo, aunque para ello necesitemos usar mucha memoria. Los programadores sabemos que no se puede tener un programa muy rápido que use poca memoria, a mayor rapidez de una cosa, más recursos para que esto ocurra. En ese sentido la computación es muy ética. No hay una relación de ganar ganar entre velocidad de proceso y uso de poca memoria.

Desde luego que a pesar de que los sistemas modernos no hacen énfasis en lo que se refiere a optimización, las herramientas de programación insisten en usar esquemas dinámicos de memoria. Apartar usando un arreglo demasiada memoria ya no es una práctica adecuada. Ahora lo que se hace es que el sistema operatiuvo otorga memoria a los procesos que la están pidiendo. Da bloques de memoria, no toda, a alguna aplicación. Si ésta requiere más, buscará darle más. De esta manera se optimizan ahora las cosas, como previniendo de antemano, por software, de hacer las cosas bien, de usar de la mejor manera losa recursos.

Como sea, creo que no estaría de más que se pensara de pronto en optimización. Aunque sobre memoria, ¿por qué no hacer las cosas un poco mejor dentro de la computadora?

16 peones: vigésima tercera entrega

Hoy toca hablar de "el tiempo" en ajedrez... (basado en un texto del MI Kenneth Frey).




Sunday, May 22, 2011

De protestas e imitaciones


Miles de españoles se mantienen desde hace días acampando en la Puerta del Sol de Madrid, en exigencia de una “democracia real” y en rechazo al manejo que ese país le ha dado a la crisis económica.

Grandes multitudes han continuado desafiando una prohibición a efectuar manifestaciones antes de la celebración de comicios municipales y estatales en España, al reunirse en plazas centrales de todo el país para protestar contra la alta tasa de desempleo y contra quienes ven como políticos ineptos.

Los manifestantes se reunieron en la Puerta del Sol, en la capital española, donde apenas dejaron suficiente espacio para permitir que los barrenderos limpiaran las calles y que el tránsito fluyera al amanecer del sábado.

Las elecciones regionales y municipales se celebrarán en gran parte de España el domingo y el día antes de esos comicios es normalmente llamado "el día de la reflexión" y se prohíben las campañas y los actos políticos.

Muchas personas, en su mayoría jóvenes, se sienten indignados contra la clase política del país, pues de acuerdo con sus puntos de vista han sido incapaces de resolver adecuadamente una crisis económica que tiene postrada a España con una tasa de desempleo del 21,3%, la más alta de la zona del euro.

Y sin duda la gente debe estar harta, porque sino, no habría estas manifestaciones multitudinarias contra la política y los gobernantes de España. Con la promoción que los medios informativos han dado estas noticias, ya en Facebook y Twitter hay quien plantea que en México no está lejos de que pase algo así e incluso ya hay foros y grupos en este sentido, como para imitar las acciones que se han visto en España.

Pero en mi opinión esto es una moda más... ¿por qué tiene que ocurrir en otro lugar un evento de esta naturaleza y entonces lo imitamos? Imitación que no sirve para nada. Será en serio un movimiento importante cuando en realidad la sociedad civil salga a las calles no a modo de imitación, sino por un real hartazgo, que se sienta, que no sea simplemente una copia de algo que pasa en España porque la juventud está allá sí, harta de no tener oportunidades.

Aquí seguro que los gobernantes ni preocupados están. Cuando mengüen las noticias de este fenómeno la gente lo olvidará. Mientras tengamos futbol nadie se irá a plaza alguna a protestar. Mientras haya pan y circo y la gente esté feliz y lo tolere, no podrá existir un movimiento de protesta legítimo. Estas copias baratas duran un suspiro. Los movimientos sociales no se forman por decreto, por modas, por imitación. Se crean por un verdadero sentir de la propia sociedad que en su conjunto está ya fastidiada de los manejos que hacen los gobernantes en turno.

Por supuesto que no faltan quienes sus quince minutos de fama. He aquí un video del Grupo Reforma, que muestra la 'indignación' de una centena de españoles y amigos de españoles, afincados en México. ¡Qué bonito protestan! ¡Qué lindo es arengar en las calles por lo que es injusto, aunque a la hora nos iremos todos a nuestras casas a ver el futbol! ¡qué satisfactorio es cantar canciones de Serrat para apoyar a los 'hermanos' españoles! ¡qué bonito es lo bonito!

16 peones: Vigésima segunda cápsula

Hoy hablaremos de cómo pensar correctamente en ajedrez...



Saturday, May 21, 2011

Un capítulo del nuevo libro de Russek

Con permiso del autor, desde luego, se publica un capítulo del nuevo libro de Russek. Éste trata de Magnus Carlsen.

Cabe señalar que se sacó "una foto" de la pantalla del texto, de cada página de dicho capítulo, ya para ser impreso; por lo cual, lo que el lector ve es en realidad un 'facsimil' de las hojas impresas del libro. Se decidió subirlo así para no perder el formato, los diagramas, la notación con los figurines, etc.

El capítulo pueden bajarlo de http://www.mediafire.com/?ty3t4y4razd5rq5

16 peones: Vigésima primera cápsula

Hoy hablaremos de la musa del ajedrez: Caissa



Friday, May 20, 2011

16 peones: vigésima cápsula

Toca el turno de hablar de un  gran maestro por demás peculiar: Federico Sämisch... (Esta cápsula está basada en un artículo del MI Kenneth Frey. La fotografía de Sämisch es cortesía de Chess Notes de Edward Winter).



Thursday, May 19, 2011

Nuevo libro de Guil Russek: Campeones Modernos de Ajedrez


El Maestro Internacional mexicano Guil Russek acaba de publicar un nuevo libro en Editorial Selector, la cual, hay que decirlo, ha apoyado decididamente el ajedrez y en donde probablemente Guil sea uno de sus autores más prolíficos.

Éste es el índice de la nueva obra de Russek:



Introducción ..........................................7
La profundidad posicional de Botvinnik ................9
El ajedrez armónico de Vassily Smyslov ...............16
El notable teórico Isaac Boleslavsky .................22
La versátil excelencia de Yuri Averbakh ..............28
David Bronstein, creatividad e imaginación ...........34
El maestro del ataque Effim Geller ...................40
Mijail Tal, el hechicero del tablero .................46
La maestría defensiva de Petrosian ...................53
El original y heterodoxo Bent Larsen .................60
El estilo universal de Boris Spassky .................66
Lev Polugaevsky, trabajador e inventivo ..............72
El ajedrez lógico de Lajos Portisch ..................78
Bobby Fischer, genialidad y perfección ...............84
El eterno luchador Viktor Korchnoi ...................91
La estrategia superior de Anatoly Karpov .............97
Henrique Mecking, el prodigio del Brasil ............105
El estilo combinativo de Ljubojevic .................111
Jan Timman, el polifacético holandés ................117
Beliavsky y su ajedrez sin compromisos ..............123
Artur Yusupov, sólido gran maestro ruso .............129
La energía y combatividad de Kasparov ...............136
El juego ofensivo del inglés Nigel Short ............143
Vishy Anand, el gran campeón de la India ............149
El excéntrico ucraniano Vassily Ivanchuk ............156
El juego dinámico de Boris Gelfand ..................163
Gata Kamsky, tenacidad y precisión ..................170
La fantasía táctica de Alexei Shirov ................176
Topalov, el agresivo guerrero búlgaro ...............182
La elegancia estratégica de Kramnik .................189
Judith Polgar, la mejor ajedrecista de la historia ..195
Peter Svidler, cinco veces campeón de Rusia .........202
La consistencia del húngaro Peter Leko ..............208
El genio táctico armenio, Levon Aronian .............216
Sergey Karjakin, el gran maestro más joven ..........223
Magnus Carlsen, el nuevo fenómeno del ajedrez .......231
Índice de jugadores .................................238

En mi opinión, Guil Russek es uno de los jugadores de ajedrez -que conozco personalmente- que tiene un conocimiento enciclopédico del juego ciencia. Conoce miles de posiciones. Tiene una estupenda memoria y además, es un apasionado de todos los aspectos del ajedrez. Sus libros son de fácil lectura y en general las partidas y posiciones que elige mostrarnos son siempre sorprendentes, con detalles que van más allá del mismo ingenio ajedrecista, sino que nos hace aprender algo de cada posición que nos muestra. Creo que esta obra es un trabajo serio, pulido, de un verdadero profesional del ajedrez, amén de ser didáctico y ameno.

He aquí la Introducción de la obra:

Introducción

En esta obra presentamos a los grandes ajedrecistas modernos: los más destacados de la segunda mitad del siglo XX hasta los mejores jugadores de la actualidad. De cada uno de ellos veremos una breve semblanza biográfica donde se mencionarán también sus principales aportaciones al juego, analizaremos una instructiva partida completa y una posición táctica ejemplar. Empezaremos desde los primeros campeones mundiales soviéticos Mijail Botvinnik y Vassily Smyslov hasta los grandes talentos de hoy en día, como el armenio Levon Aronian, el ucraniano Sergey Karjakin y el noruego Magnus Carlsen. En el camino estudiaremos la obra de notables y algunos muy famosos ajedrecistas: algunos de ellos llegaron a ostentar la corona del orbe como el “mago de Riga” el genial Mijail Tal, el siempre controversial Bobby Fischer, los soviéticos Tigran Petrosian, Boris Spassky Anatoly Karpov, Garry Kasparov y Vladimir Kramnik, el brillante táctico de la India Vishwanathan Anand, el gran luchador búlgaro Vesselin Topalov, entre otras muchas figuras del tablero.

En una selección que abarca un periodo tan extenso siempre se presta a polémica la exclusión de algunos “grandes” tales como Keres, Reshevsky o Najdorf, pero el autor ha considerado que los mejores años de estos jugadores fueron antes de 1950 y por ello pueden ser llamados “clásicos” aunque, desde luego, también tuvieron importantes éxitos posteriormente. También fueron tomados en cuentra otros destacados ajedrecistas que lamentablemente por motivos de espacio no fueron incluidos, por ejemplo, Gligoric, Panno, Stein, Hubner, Andersson, Vaganian, entre otros. Por otra parte, la aparición continua de nuevos prodigios en la actualidad (nombremos por ejemplo a Hikaru Nakamura, Anish Giri o al chino Wang Hao) pueda hacer que en un futuro no lejano se eche en falta en el libro a alguno de ellos u otros más.

El objetivo principal de este libro es introducir al lector en el imprescindible estudio del desarrollo histórico del ajedrez y que esto le sirva como base para un estudio de mayor profundidad. Por otra parte, al analizar críticamente las brillantes partidas y posiciones que se ofrecen a continuación (muchas de ellas verdaderas joyas del ajedrez de ataque) podrá aprender los principios más importantes de la estrategia y la táctica en la competencia de alto nivel. Por lo anterior, es muy recomendable, como método de estudio, que el lector no se limite a reproducir sin más las partidas de la presente obra, sino que también intente predecir las jugadas del bando ganador tratando siempre de aportar sus propias ideas e incluso buscar refutar los análisis del autor si es necesario. Descubra los finos planes estratégicos y sutiles maniobras que muchas veces desembocan en singulares y estéticas combinaciones que han pasado a ser parte del legado histórico del ajedrez. No olvide que lo más importante y satisfactorio es el esfuerzo que estemos dispuestos a realizar para disfrutar cada vez mejor este bello juego ya que como suele decirse, el ajedrez es la gimnasia de la mente.

Por último, quisiera finalizar dedicando este libro con aprecio y agradecimiento a mi amigo Oscar Culbeaux Tello por su constante apoyo a través de los años y a mis entusiastas y pacientes alumnos (y también amigos) Manolo Álvarez Fernández, Julio Serrano Segovia y su hijo Manuel; consejos importantes así como varias ideas y correcciones salieron a la luz en las sesiones que tuvimos juntos.
Guil Russek
Maestro Internacional

Enhorabuena por esta nueva obra de Guil Russek, que sin duda es una contribución importante dentro del 
ámbito del ajedrez mexicano.

Bosquejo de un lector de archivos PGN


PGN son las siglas de Portable Game Notation, un sistema para anotar partidas de ajedrez, usando el esquema de la notación algebraica, que es el único sistema de escritura oficial de la Federación Internacional de Ajedrez (FIDE). Gracias a este mecanismo, cualquiera puede leer una partida de ajedrez sin prácticamente importar en qué parte del mundo se encuentre. La notación de una partida de ajedrez contempla los siguientes rubros: Evento (en qué torneo se jugó el torneo), lugar del evento, fecha completa, ronda, nombre del conductor de las blancas, nombre del conductor de las negras, resultado, ECO (código de la apertura de acuerdo a la Encyclopedia of Chess Openings - ECO), el rating de las blancas, el rating de las negras, entre otros apartados (estos son los más generalizados). Inmediatamente después de esto, viene la partida, codificada de la siguiente manera: número de jugada, jugada del blanco,  jugada del negro, número de jugada, etc. hasta llegar va 1-0, 0-1 o 1/2 (ganan blancas, ganan negras, empate).

Por ejemplo, esta es la partida entre Leko e Ivanchuk, del torneo alemán de Dortmund, del 2008:


[Event "Sparkassen"]
[Site "Dortmund GER"]
[Date "2008.06.29"]
[Round "2"]
[White "Leko, P."]
[Black "Ivanchuk, V."]
[Result "1-0"]
[ECO "B46"]
[WhiteElo "2741"]
[BlackElo "2740"]

1. e4 c5 2. Nf3 e6 3. d4 cxd4 4. Nxd4 Nc6 5. Nc3 a6 6. Nxc6 bxc6 7. Bd3 d5 8. O-O Nf6 9. Qf3 Be7 10. Qg3 Nh5 11. Qf3 Nf6 12. e5 Nd7 13. Qg3 g6 14. Bh6 c5 15. Na4 c4 16. Be2 Bb7 17. b3 Bc6 18. Nb2 Rb8 19. Nd1 Nc5 20. Ne3 Ne4 21. Qh3 Ng5 22. Qg4 c3 23. a3 Bb5 24. Bxb5+ axb5 25. f3 Qb6 26. Rae1 d4 27. Nd1 d3+ 28. Kh1 dxc2 29. Nf2 Bc5 30. Nd3 Be3 31. Bxg5 Bd2 32. Re2 O-O 33. Nc1 b4 34. Bxd2 cxd2 35. Rxd2 bxa3 36. Rxc2 Rfc8 37. Qe4 Rxc2 38. Qxc2 Qd4 39. Na2 Qxe5 40. b4 Rd8 41. h3 h5 42. Rb1 Qe3 43. Rd1 Rd5 44. Qb1 Qe2 45. Re1 Qd2 46. Rc1 Rd8 47. b5 Rb8 48. Rc3 h4 49. b6 Qd6 50. Rb3 Rb7 51. Nc3 Qc6 52. Rxa3 Qxb6 53. Qxb6 Rxb6 54. Ra4 g5 55. f4 Rb3 56. Ne2 Re3 57. Ng1 1-0


Aquí las piezas se denominan por sus siglas en inglés: K-king (rey), Q-queen (dama), B-bishop (alfil), N-knight (caballo), R-rook (torre). No se pone la "P" de peón porque como hay dieciseís, se tomó la decisión que sería redundante. Si no hay pieza que se mueve, se asume que es un peón. Cabe hacer notar además, que aquí hemos puesto la partida en notación larga, es decir, indicando de qué casilla se mueve la pieza o peón y a qué casilla llega. En general se usa la notación corta, que es simplemente la pieza que se mueve y hacia qué casilla se mueve. Si dos piezas iguales pueden acceder a la casilla a la que se mueve la pieza, hay entonces que indicar cuál es la que se mueve, poniendo las coordenadas de donde nace la jugada. Por ejemplo, una partida en notación larga se ve así:

[Event ""]
[Site "Breslau"]
[Date "1912"]
[Round ""]
[White "Levitzky"]
[Black "Marshall"]
[Result "0-1"]

1.e2-e4 e7-e6 2.d2-d4 d7-d5 3.Nb1-c3 c7-c5 4.Ng1-f3 Nb8-c6 5.e4xd5 e6xd5 6.Bf1-e2 Ng8-f6 7.O-O Bf8-e7 8.Bc1-g5 O-O 9.d4xc5 Bc8-e6 10.Nf3-d4 Be7xc5 11.Nd4xe6 f7xe6 12.Be2-g4 Qd8-d6 13.Bg4-h3 Ra8-e8 14.Qd1-d2 Bc5-b4 15.Bg5xf6 Rf8xf6 16.Ra1-d1 Qd6-c5 17.Qd2-e2 Bb4xc3 18.b2xc3 Qc5xc3 19.Rd1xd5 Nc6-d4 20.Qe2-h5 Re8-f8 21.Rd5-e5 Rf6-h6 22.Qh5-g5 Rh6xh3 23.Re5-c5 Qc3-g3 0-1

Todo esto viene a cuento porque la cuestión es que se me había ocurrido hacer en prolog, sí, en prolog, un programa que leyera archivos de esta naturaleza y desplegara la partida en formato PGN en un tablerito electrónico. Para simplificar las cosas, decidí primero usar la notación larga, porque así resulta más fácil ya que la propia notación me dice qué movimiento hay que hacer, considerando la casilla inicial y la casilla de llegada de la pieza que hace la jugada.

Un problema inicial que observé es que en prolog no hay arreglos como en muchos lenguajes como Pascal o C. No incluyo Basic porque esto es de la "Tierra Primitiva". Pero en prolog lo equivalente son las listas. Así, puedo definir una lista con ocho casilleros: [tb,cb,ab,db,ab,cb,tb], lo cual representaría la primera fila del tablero. Quizás haya que ser más precisos y poner: fila(1,[tb,cb,ab,db,ab,cb,tb]).

Si quisiéramos usar esta representación para el tablero completo, podríamos poner:

fila(8,[tn,cn,an,dn,an,cn,tn]).
fila(7,[pn,pn,pn,pn,pn,pn,pn,pn]).
fila(6,[b,b,b,b,b,b,b,b]).
fila(5,[b,b,b,b,b,b,b,b]).
fila(4,[b,b,b,b,b,b,b,b]).
fila(3,[b,b,b,b,b,b,b,b]).
fila(2,[pb,pb,pb,pb,pb,pb,pb]).
fila(1,[tb,cb,ab,db,ab,cb,tb]).

donde tb, cb, ab, db, pb y rb son torre blanca, caballo blanco, alfil blanco, dama blanca, peon blanco y rey blanco, respectivamente (y con sus equivalentes para torre negra, caballo negro,alfil negro, etc.) La "b" representa una casilla vacía.

Muy bien, aquí ya tenemos parte del asunto zanjado. ya podemos representar en claúsulas de prolog el tablero de ajedrez. Ahora sólo resta poder manipular las jugadas y hacer que éstas se representen en el tablero.

En prolog, podemos encontrar el enésimo elemento de una lista de manera muy fácil:

% Hallar el enésimo elemento de una lista.
% El primer elemento de la lista es el 1.

element_at(X,[X|_],1).
element_at(X,[_|L],K) :- K > 1, K1 is K - 1, 
                         element_at(X,L,K1).

Esto significa que hallar, digamos, el quinto elemento de una lista es equivalente a hallar el cuarto elemento de una lista menos su primer elemento, o el tercer elemento de una lista sin considerar los dos primeros elementos, etc. Así se hace fácilmente en prolog.

Ahora basta ver la partida y describir cada jugada como una acción en prolog. Por ejemplo, si tengo la jugada "e2-e4", basta con poner lo que hay en la casilla 52 y pasarlo a la casilla 54. Para ello, ponemos una "b" (de blanco) en la casilla 52 (e2) y lo que había en esa casilla, lo escribimos en la casilla 54. (ver el tablero en la siguiente imagen - correspondence-chess.jpg).

Para hacer la traducción de las coordenadas de cada columna a, b, c, d, e, f, g, h, podemos hacer el siguiente predicado de equivalencias:

equivalencia(a,1).
equivalencia(b,2).
equivalencia(c,3).
equivalencia(d,4).
equivalencia(e,5).
equivalencia(f,6).
equivalencia(g,7).
equivalencia(h,8).

Así, basta ir de jugada en jugada y hacer una rutina que lea las coordenadas, inicial y final, así como la pieza que debe ir ahí y listo, el tablero cambiará su posición. Si la jugada la tenemos como una lista, por ejemplo: [e,2,e,4], el pseudocódigo podría ser algo así:

haz_jugada([X1,Y1,X2,Y2], Pieza) :- 
    /*saca las coordenadas de la posición inicial y final de la pieza que se mueve*/
    /*revisa qué pieza hay en la lista (fila) correspondiente a la posición de la coordenada inicial*/
    /*sustituye el valor que haya ahí por un blanco*/
    /*ve a la posición final y pon la pieza en la coordenada de la fila correspondiente*/

Es claro que este algoritmo no valida si las jugadas son legales o no, pero la idea es que las partidas dadas en formato PGN son correctas y no contienen errores. En caso de contenerlos caemos en "garbage in -> garbage out" (si le das basura al programa regresará basura).

Con esto en mente, podemos hacer un programa que lea el archivo PGN y pase jugada por jugada una partida. Sin embargo, esto sólo puede hacerse de ida, es decir, en una dirección, porque cuando se captura una pieza, por ejemplo, la pieza capturada desaparece y no llevamos registro de esto. Así, si queremos ir, por decir algo, una jugada hacia atrás, pues no podemos hacerlo porque no tenemos información de qué pieza fue eliminada del tablero.



La solución a esto es en realidad crear tantos tableros de ajedrez completos en donde cada jugada esté en uno de ellos. Así, si quiero ir a la jugada 27, entonces pinto inmediatamente el tablero 27. No me tengo que acordar si ahí hubo captura o no de alguna pieza. Si hago así las cosas, entonces mi definición del tablero de ajedrez debo modificarlo para que contemple en qué jugada está el programa en ese momento desplegando el tablero:

             
/*ejemplo de la estructura del tablero para el primer movimiento*/
fila(8,[tn,cn,an,dn,an,cn,tn],1).
fila(7,[pn,pn,pn,pn,pn,pn,pn,pn],1).
fila(6,[b,b,b,b,b,b,b,b],1).
fila(5,[b,b,b,b,b,b,b,b],1).
fila(4,[b,b,b,b,b,b,b,b]1,).
fila(3,[b,b,b,b,b,b,b,b],1).
fila(2,[pb,pb,pb,pb,pb,pb,pb],1).
fila(1,[tb,cb,ab,db,ab,cb,tb],1).
                    

Una partida promedio, digamos de 40 jugadas tendría entences 80 tableros (8 claúsulas por tablero), que se generarían en tiempo de ejecución como claúsulas de prolog. esto significa 640 claúsulas para guardar en memoria, cosa que actualmente cualquier computadora puede hacer sin mayores dificultades.

De hecho, los programas comerciales como Chessbase hacen precisamente esto, aunque como no lo hacen en prolog, usan otras técnicas. No sé en qué lenguaje está escrito Chessbase, pero pienso que es C. Si este es el caso, y si se sigue lo que aquí hemos comentado, entonces un programa que lea una partida PGN creará en tiempo de ejecución un diagrama por cada movimiento. Como en C se pueden crear arreglos bidimensionales, probablemente el tablero esté definido de esta manera y entonces, cuando se hace una jugada, se crea un tablero nuevo, en una estructura dinámica, que solamente pide la memoria necesaria cuando el sistema lo necesita.

Cuando se termina de ver esa partida, se libera toda esa memoria (es mandar los apuntadores a nil, por ejemplo), y entonces tenemos un sistema por demás eficiente.

El sistema de lectura de partidas PGN en Prolog no es el más eficiente, pero es un problema que puede ser atacado por Prolog de manera razonable y además, sin necesidad de pensar en estructuras dinámicas como en otros lenguajes, cosa que en general se aprende hasta un segundo curso de programación.

16 peones: Décima novena entrega

Hoy hablaremos de ajedrez y literatura...



Wednesday, May 18, 2011

La cultura en Internet


Internet es sin duda una mina de oro en lo que se refiere a información. Si se pone uno a pensar lo que tenemos hoy día a lo que había digamos hace diez años, los avances en búsquedas, en cantidad de información, en la calidad de la misma, se ha multiplicado considerablemente. Y esto es gracias a un esfuerzo comunitario en muchos frentes: personas que colaboran con Wikipedia, o aquellos que ponen blogs de información sobre temas particulares, o páginas diseñadas sobre tópicos específicos. En fin, hoy día la información es quizás uno de los bienes no materiales más importantes con los que cuenta la humanidad.

Por supuesto que en todo esto tienen que ver los avances en el hardware. Hoy disponemos de unidades USB de 16 gigabytes que no ocupan ni 5 cms cuadrados. Tenemos discos duros que ahora se acercan a los 3 terabytes y es común hallarlos con un terabyte de información, es decir, 1000 gigabytes, una cantidad que es francamente asombrosa. Así entonces, nos hallamos con un poder de almacenamiento impresionante, y por ello, podemos tener en la computadora todo género de información: libros en pdf o djvu, videos, fotografías, documentos en diferentes formatos, programas de enseñanza, de entrenamiento, de lo que se nos antoje.

Con todo esto, sin embargo, hallamos además herramientas que usamos cotidianamente y que hoy en día nos parecen imprescindibles. Me refiero a los navegadores de la red y en especial al correo electrónico, con el cual la comunicación entre los seres humanos se ha convertido en prácticamente instantánea. No obstante, sigue siendo el principal colaborador de todo género de anuncios no solicitados o de archivos de powerpoint que, por alguna extraña razón, a la gente no le gusta, le encanta compartir.

Y así se genera una especie de extraña cultura en la red. hay powerpoints que nos dan indicaciones de qué hacer si sentimos que estamos teniendo un ataque cardiaco, o aquellos que nos piden no usemos antitranspirantes porque provocan al menos cáncer, pues al impedir que las glándulas sudoriparas no puedan generar el sudor, las infectamos con nuestros propios fluidos y a la postre pueden causar nuestra muerte. O bien nos hablan del doctor Hamilton Naki, autodidacta, de raza negra, que colaboró con Barnard en el primer trasplante de corazón humano pero que no se le dio ningún crédito por su color de piel (la historia, si les llegó, es falsa, basta buscar en la Wikipedia), etc.

La cantidad de historias convertidas en diapositivas de powerpoint en donde se dan todo género de mensajes, ya sea de iluminados, de ángeles, de medicina preventiva, de qué comer, de qué no comer, etc., son pasados de "correo en correo" (ya no de "mano en mano"), entre millones de usuarios de la red y la mayoría de la gente no tiene ganas ni interés en verificar las historias que se cuentan. Simplemente las creen y en alguna plática informal, en alguna fiesta, en alguna reunión, las cuentan como reales, porque "están en Internet", o "porque me llegó a mi correo personal". Ah, y me olvidaba, para colmo, todos estos archivos piden al final que los re-envíes, ya sea con amenazas de mala suerte por N años o bien apelando a tu sentido de solidaridad. No importa qué argumento den, el chiste es que los re-envíes para que todos lean estos fantásticos mensajes.

Así pues, la red es formidable pero debemos educarnos para ser más críticos. Creer cualquier cosa que se nos dice en estos tiempos de manipulación de información (imágenes alteradas con photoshop, por ejemplo), o historias increíbles que por prejuicios humanos han quedado en el tintero, es una mala idea. Entendamos que siempre habrá gente que no tiene nada mejor que hacer que armar estos lindos archivos de powerpoint para mandarlos a quien se deje, pero esto no significa que haya un ápice de verdad en muchos de ellos.

Para escribir cheques (II)


Hace un par de días (aquí) escribí sobre un programa que transforma una cifra en números a letras.La idea es que ponía una cifra: 2347, por ejemplo, y el programa debía darme como resultado "dos mil trescientos cuarenta y siete pesos". Puse en el artículo mencionado mi primera solución en Prolog, pero he aquí que un avezado lector, buen  programador, mejor amigo y técnicamente infalible, Ernesto Blum, me dijo que no estaba considerando algunos casos.

Hoy que fui a dar mi clase, expuse el código fuente y al irlo escribiendo en el pizarrón hallé que algo andaba mal. Así pues, decidí que al llegar a casa re-escribiría el problema para darle una solución definitiva. En un rato hallé las dificultades y según yo, ya las resolví. He aquí mi código fuente:

/********************************************/
/* Programa que traduce de números a letras */
/*             Versión 1.1                  */
/*            18 mayo 2011                  */
/*          Programó: La Morsa              */
/********************************************/ 
 
predicates

   equiv(integer,symbol)
   pasa_num_a_letras(integer)
   
   
clauses
   equiv(1,un).
   equiv(2,dos).
   equiv(3,tres).
   equiv(4,cuatro).
   equiv(5,cinco).
   equiv(6,seis).
   equiv(7,siete).
   equiv(8,ocho).
   equiv(9,nueve).
   equiv(10,diez).
   equiv(11,once).
   equiv(12,doce).
   equiv(13,trece).
   equiv(14,catorce).
   equiv(15,quince).
   equiv(16,dieciseis).
   equiv(17,diecisiete).
   equiv(18,dieciocho).
   equiv(19,diecinueve).
   equiv(20,veinte).
   equiv(21,veintiuno).
   equiv(22,veintidos).
   equiv(23,veintitres).
   equiv(24,veinticuatro).
   equiv(25,veinticinco).
   equiv(26,veintiseis).
   equiv(27,veintisiete).
   equiv(28,veintiocho).
   equiv(29,veintinueve).
   equiv(30,treinta).
   equiv(40,cuarenta).
   equiv(50,cincuenta).
   equiv(60,sesenta).
   equiv(70,setenta).
   equiv(80,ochenta).
   equiv(90,noventa).
   equiv(100,ciento).
   equiv(200,doscientos).
   equiv(300,trescientos).
   equiv(400,cuatrocientos).
   equiv(500,quinientos).
   equiv(600,seiscientos).
   equiv(700,setecientos).
   equiv(800,ochocientos).
   equiv(900,novecientos).
   equiv(1000,mil).
   
   pasa_num_a_letras(X) :- /* condicion terminales */
      X < 30,
      equiv(X,Resultado),
      write(Resultado).


   /* predicados recursivos */
   
   pasa_num_a_letras(Cifra) :-
      Cifra div 1000 <> 0,          /* la cifra tiene diez miles */
      DMiles = Cifra div 1000,
      DMiles > 30,
      pasa_num_a_letras(DMiles), /*doble recursion */
      write(" mil "),
      Miles = Cifra - (DMiles * 1000),
      pasa_num_a_letras(Miles).      
      
   pasa_num_a_letras(Cifra) :-
      Cifra div 1000 <> 0,           /* la cifra tiene miles */
      Miles = Cifra div 1000,
      equiv(Miles,Resultado),
      write(Resultado, " mil "),
      Cientos = Cifra - (Miles * 1000),
      pasa_num_a_letras(Cientos).      
         
   pasa_num_a_letras(Cifra) :-
      Cifra div 100 <> 0,           /* la cifra tiene cientos */
      Cien = Cifra div 100,
      Cien1 = Cien * 100,
      equiv(Cien1,Resultado),
      write(Resultado," "),
      Decenas = Cifra - (Cien * 100),
      pasa_num_a_letras(Decenas).    
      
   pasa_num_a_letras(Cifra) :-
      Cifra div 10 <> 0,           /* la cifra tiene decenas */
      Dec = Cifra div 10,
      Dec1 = Dec * 10,
      equiv(Dec1,Resultado),
      write(Resultado," y "),
      Unidades = Cifra - (Dec * 10),
      pasa_num_a_letras(Unidades).    
      


      


Cabe señalar que el programa está escrito en Turbo Prolog 2.0 y que se está usando el tamaño de variable entera para el procesamiento de la cifra, por ende, solamente puede resolver el problema para números enteros mayores a cero y menores a 32768, que es el límite de un entero. Entre otras cosas, este código ya me dejó más contento porque solamente contiene una salida de la función recursiva y eso me parece más "elegante", valga la expresión.

Igualmente, expresiones como: 
 
Cientos = Cifra - (Miles * 1000),
 
 
Podrían ponerse como

Cientos = Cifra mod 1000

Hice algunas pruebas y parece que ahora sí todo funciona bien.

A todo esto, el mismo Ernesto Blum me mandó la solución de este programa en el lenguaje de programación Ruby:


#!/usr/bin/ruby



def cen_out(numero)
 uni = numero % 10 / 1
 dec = numero % 100 / 10
 cen = numero % 1000 / 100
 case cen 
 when 0; return ""
 when 1; if uni == 0 && dec == 0
   return "cien"
  else
   return "ciento "
  end
 when 2; return "doscientos "
 when 3; return "trescientos "
 when 4; return "cuatrocientos "
 when 5; return "quinientos "
 when 6; return "seiscientos "
 when 7; return "setecientos "
 when 8; return "ochocientos "
 when 9; return "novecientos "
 end
end



def dec_out(numero)
 uni = numero % 10 / 1
 dec = numero % 100 / 10
 if dec == 1
  case uni
  when 0; return "diez"
  when 1; return "once"
  when 2; return "doce"
  when 3; return "trece"
  when 4; return "catorce"
  when 5; return "quince"
  when 6; return "dieciseis"
  when 7; return "diecisiete"
  when 8; return "dieciocho"
  when 9; return "diecinueve"
  end
 elsif uni == 0
  case dec
  when 0;  return ""
  when 1;  return ""
  when 2;  return "veinte"
  when 3;  return "treinta"
  when 4;  return "cuarenta"
  when 5;  return "cincuenta"
  when 6;  return "sesenta"
  when 7;  return "setenta"
  when 8;  return "ochenta"
  when 9;  return "noventa"
  end
 else
  case dec
  when 0;  return ""
  when 1;  return ""
  when 2;  return "veinti"
  when 3;  return "treinta y "
  when 4;  return "cuarenta y "
  when 5;  return "cincuenta y "
  when 6;  return "sesenta y "
  when 7;  return "setenta y "
  when 8;  return "ochenta y "
  when 9;  return "noventa y "
  end
 end
end




def uni_out(numero)
 uni = numero % 10 / 1
 dec = numero % 100 / 10
 if dec == 1
  return ""
 else
 case uni
  when 0; return ""
  when 1; return "un"
  when 2; return "dos"
  when 3; return "tres"
  when 4; return "cuatro"
  when 5; return "cinco"
  when 6; return "seis"
  when 7; return "siete"
  when 8; return "ocho"
  when 9; return "nueve"
  end
 end
end



def letra(numero)
 return  cen_out(numero), dec_out(numero), uni_out(numero), "\n"
end

for n in 1..1000
 print letra(n)
end 
 

Por el momento así las cosas. Cualquier cambio o problema con el código mío, lo pondré en el blog en su oportunidad.

16 peones: Décimo octava cápsula

Hoy hablaremos de un gran maestro que era analfabeta...



Tuesday, May 17, 2011

¿Quién tiene la culpa?



En este clima de inseguridad que vive el país, que en el norte -por ejemplo- se acerca cada vez más a un Estado fallido, los medios, la gente en general, le achaca mucha parte de la culpa a Felipe Calderón, el presidente de la República. Muchos periodistas incluso hablan de que él tiene la culpa de que vayan más de 37,000 muertes violentas, la mayoría en enfrentamientos con los grupos de narcotraficantes que tienen un poder de fuego nunca antes observado en México. Vaya, hay zonas del país en donde los narcotraficantes se desplazan en camionetas poderosas de lujo, con incluso insignias pintadas en los cristales, como una "Z", que indica que son del grupo de los "zetas", aparentemente los nuevos dueños de algunas zonas de este país.



La pregunta es ¿cómo es que estos grupos tengan tanto poder? Sin duda el narcotráfico se nutre de muchos ingresos: extorsión a comerciantes, venta de estupefacientes, fabricación y distribución de cientos de miles de toneladas de cocaína, entre muchas otras drogas, etc. Pero es claro que esto no ha llegado de la noche a la mañana, sino que es parte de un largo proceso que no se detuvo a tiempo y que además, sobrevive a cualquier esfuerzo por contenerlo gracias a la corrupción que hay en todos los poderes de gobierno. Porque es claro que tantas miles de armas de alto poder, de granadas, de bazukas, entre tanto equipamiento mortífero, sólo es consecuencia de la falta de control de las aduanas, que se hacen de la vista gorda y de alguna manera dejan entrar al país toneladas de armamento. Obviamente la corrupción en las aduanas es una gran parte del problema, porque si el meter armas al país fuese realmente difícil, los narcotraficantes actuales no tendrían tal poder de fuego, que ahora exhiben en cuanto crimen cometen.



¿Es Calderón el culpable de esto? No creo que sea el culpable de todo lo que pasa en el país. Creo que finalmente es un problema que venimos arrastrando en este país de corruptelas e impunidad, que durante los últimos 70 años (desde que el PRI empezó a gobernar), ha impuesto como modelo político. Aquí en México es fácil salir de cualquier problema si se tiene dinero. Si hay recursos para repartir, seguramente alguien con posibles cargos penales por sus acciones, logrará que no se le aplique ninguna sanción. De esta manera, vemos a los pillos de cuello blanco, que defraudan, huyen del país y cuando los encuentran, regresan y curiosamente, logran un amparo con el cual jamás llegan a pisar la cárcel. Uno de estos personajes, Angel Isidoro Rodríguez, alias "el divino", quien fue acusado en México de fraude y extraditado desde España, en 1998, quedó exonerado de todos los cargos en su contra, en el 2004. El magistrado del Cuarto Tribunal Unitario Penal, José Luis Villa Jiménez, archivó el pasado día 12 la última acusación que pesaba en contra de Rodríguez, alias "El Divino", por un presunto fraude de 440 millones de pesos (38.93 millones de dólares) en perjuicio de Banpaís. Cabe señalar que una vez incluso, el divino se tiró al mar para poder huír de la policía, que lo halló en Ibiza. Así que si fuese tan inocente, ¿qué necesidad tenía de huír?



Pero regresando al tema, el punto es que Calderón puede estar haciendo mal las cosas. Se le ha criticado su estrategia contra el narco, mandando a los militares a la zona de conflicto. Quienes se quejan de esta medida y que piden que se replanteé la estrategia contra el narco no dicen qué es lo que hay que hacer. Yo simplemente pienso que si el ejército mexicano no puede contener al narcotráfico, ¿quién podrá hacerlo? Evidentemente hay corrupción también en el ejército, si santos no son, pero repito, si las fuerzas armadas no pueden, ¿qué estrategia es la adecuada? ¿qué hay que hacer? -y a corto plazo, nada de salir con argumentos de "educar a la población", etc.-  porque se necesitan acciones ahora. Sino, este país se lo va a cargar el payaso.



En resumen, los problemas de inseguridad en el país son en parte responsabilidad de Calderón, pero no se le puede achacar los 37,000 muertos a él, porque esto tiene cola. Tuvimos a un cretino de presidente, Vicente Fox, que cuando salía alguna dificultad en donde era claro que tenía que actuar decía: "¿y yo por qué?". Así, el país arrastra desde hace muchísimos, pero muchísimos años, un problema de corrupción que ni ha sido erradicado y que cada vez es peor. Todos los días hay noticias de policías corruptos, de judiciales que hacen su agosto extorsionando a los ciudadanos que -desde luego- ante esta problemática prefieren salir por la "simplificación administrativa" antes que decidir pelear por sus derechos porque bien saben que el sistema está armado para que lleven todas las de perder.



Así pues, el punto es que la culpa es en alguna medida de todos, los que toleramos la mordida, el cochupo, la extorsión de autoridades. El problema es que vivimos en un país en donde una pléyade de políticos ganan cualquier cantidad de dinero por mes y los servidores públicos, los policías, los ministerios públicos, ganan cantidades pequeñas y por ende, buscan resarcirse porque este país no da los sueldos que debería dar, aunque eso sí, se enriquecen los políticos cada sexenio.



Y lo sabemos todos y nos hacemos de la vista gorda todos. Pienso en estos momentos en Fujimori, expresidente peruano que fue encarcelado por actos penales, que le fincaron las propias instituciones de su país. Perú, con todo respeto, es mucho más pobre y tercermundista que México y sin embargo, tomaron acciones. Aquí, la presidencia es impune en todos sentidos. Los presidentes están ya protegidos de por vida, aunque sus acciones hayan sido lamentables. En nuestro México, que somos menos tercermundistas (en general) que en Perú, no somos capaces de fincarle responsabilidad a los funcionarios de alto calibre. Aquí sabemos todos de los chanchullos que hizo López Portillo, de los millones que gastó en su mansión en lo que se le llamó la "colina del perro".... Y nos reímos, y nos burlamos e incluso hay anécdotas de personas que le ladraban cuando López Portillo iba a un restaurante público a comer (pues éste hab;ia dicho que defendería al peso como un perro y finalmente se devaluó la moneda). Pero no pasamos de ahí. Y nos alegramos y disfrutamos de la supuesta humillación que concedemos a estos personajes, que no bajamos de ladrones, de corruptos, de asesinos, de lo que gusten y manden, pero en el fondo somos parte de la misma corrupción de la que nos quejamos.



Pero eso sí, hacemos marchas multitudinarias, aunque éstas no sirvan para nada. Porque son aves de paso. Llegan y se van y los políticos se mueren de la risa, de esa misma risa con la que nos reímos al llamarle a Calderón "usurpador" o a Andrés Manuel López Obrador "presidente legítimo". Somos felices diciendo en reuniones caseras que sabemos de buena fuente lo borracho que es Calderón, pero nadie es capaz de hacer nada. Y no lo bajamos de "pinche borracho", y nos solazamos en esto aunque en el fondo no tengamos siquiera la voluntad de hacer algo más.



Entonces, ¿de quién es la culpa de lo que pasa en México? Ahí se los dejo a la reflexión.



_________



(*) En la imagen que ilustra este artículo: mientras más rojo, más corrupto...

Sexta temporada de la "Oveja Eléctrica"


Hoy martes 17 de mayo, a las 20:30 horas, empezará la nueva temporada del programa de divulgación científica de Canal 22: "La Oveja Eléctrica". Repetición los viernes, también por Canal 22, a las 17 horas. Conduce Pepe Gordon y Kelly Aro.

En esta primera emisión, de la nueva temporada de La oveja eléctrica; Pepe Gordon conversa con el Doctor Gerardo Herrera, investigador del Departamento de Física del CINESTAV, pionero de la colaboración mexicana en el CERN y uno de los principales especialistas en Física de partículas en nuestro país.

La conversación se da en torno al demonio de la antimateria, al que hoy desenmascararemos mediante una de las maravillas de la tecnología y de la civilización humana: el acelerador de partículas del CERN. El Centro Europeo de Investigación Nuclear en donde se hacen chocar partículas a velocidades cercanas a la luz para revelar lo que está en el interior de los átomos, lo que supuestamente era indivisible.

¿Aparecerá la llamada partícula de Dios?

No te pierdas además las secciones Supersabios con Silvina Espinosa de los Monteros; Performance de la ciencia con Kelly Aro; Aguas con la Morsa con Manuel López Michelone y Veo Veo con Myriam Moscona.

Los esperamos... ¡Somos la opción!

Urnas electrónicas para votar

Este país tiene una larga historia de fraudes electorales. Por muchos años el Partido Revolucionario Institucional (PRI), hizo todo género de maniobras. Se sabe que a los trabajadores de los sindicatos se les daba una papeleta, igual con la que se tenía que votar, pero ya marcada con el candidato priísta. El trabajador, para probar que había depositado ese voto en la urna, tenía que regresar la boleta que le habían dado en la casilla en donde emitiría el voto. También hubo otras trampas, más votos que votantes, conteos amañados, votos de personas que no acudieron a votar, pero que se les sufragó el voto por el partido eterno en el gobierno, etc. La cantidad de trampas y corruptelas es enorme.

Con el tiempo, supuestamente este país decidió "democratizarse" y se buscó tener un organismo, al ual llamaron Instituto Federal Electoral (IFE), para que llevara cuentas de los votos y así hacer elecciones por demás limpias. Sin embargo, a pesar de esos primeros esfuerzos, cuando Carlos Salinas de Gortari "ganó" la elección, en un momento de la misma, en los conteos que se hacían a ciertas horas, "se cayó el sistema". Se dice y mucha gente afirma que el Ing. Cárdenas ganó legalmente la presidencia, arrebatada por el PRI en uno de sus más descarados actos. Manuel Bartlett era el mero mero del IFE y en él recaerá por siempre eso de que "se les cayó el sistema". ¡Bendita computación que puede fallar ewn el momento más oportuno!

Pero en esta elección había un problema extra: estaban las boletas de la elección, que ¿por qué no? podrían volverse a contar. Si mal no recuerdo dormían el sueño de los justos en San Lázaro, en la sede de la Cámara de Diputados. Pero entonces pasó algo sorprendente: se quemó la sede, sí, hubo un incendio y por una muy afortunada coincidencia para Salinas de Gortari, las boletas se quemaron y entonces ya no se podían pedir recuentos ni nada. Tranquilidad para el nuevo presidente. Su elección ya no podría ser sujeta a ninguna inspección.

En el 2006 ganó Calderón la presidencia, aunque el margen oficialmente aceptado de la victoria fue de medio millón de votos, aproximadamente. Ahí están las boletas pero no parece haber manera en que se vuelvan a contar, a pesar de que López Obrador exigió ese "voto por voto y casilla por casilla". Yo no sé si ganó "el Peje", pero lo que sí me queda claro es que dejó una sombra de duda en el conteo de los votos. Así, a pesar de los años que han pasado, no parece poder cambiarse las cosas.

Supuestamente ahora el IFE, que recibe muchísimo dinero del gobierno, es autónomo. Supuestamente también, esto permitirá que ningún partido pueda "meter las manos" para manipular la elección que viene. Sin embargo, leo que ya el Instituto Electoral del Distrito Federal (IEDF) está licitando 1000 urnas electrónicas para ser usadas en las elecciones del 2012.

Según la nota (que puede leerse aquí), estas urnas garantizarán efectividad en el conteo y rapidez, de acuerdo a Fernando Díaz Naranjo, Presidente de la Comisión Permanente de Participación Ciudadana del IEDF. De acuerdo con este personaje ya se usaron estas urnas en el 2009, donde se votó por jefes delegacionales y diputados locales. En esa ocasión se usó una urna electrónica por distrito, y se registró una votación de 10 mil 500 ciudadanos.

A pesar de que esta iniciativa de urnas electrónicas se inició en el año 2000, hasta el 2008 los legisladores de la Asamblea del DF dieron el visto bueno para realizar votaciones con urnas electrónicas. De hecho, éstas funcionan como los cajeros automáticos, tienen su pantalla táctil y el software que la regula es francamente muy simple. De acuerdo a Díaz Naranjo, los resultados se emiten inmediatamente. Observen lo que dice: "Se demuestra que la urna electrónica avanza más rápido en el conteo, y además tiene mecanismos auditables tanto interno como en presencia de los partidos. Por ejemplo, se puede recurrir ante los tribunales para verificar alguna inconsistencia que pudiera presentar".  señaló.

La urna imprime un comprobante que le muestran al ciudadano que el voto se realizó; sin embargo, el comprobante no se lo puede llevar porque queda de constancia en el sistema, en caso de una impugnación.

De acuerdo a Díaz Naranjo también, gracias a que todo está en software, los mensajes del sistema se pueden traducir a los idiomas que se deseé y según él, la urna electrónica no tiene margen de error, es efectiva al 100 por ciento. El funcionario dijo que la vida útil de estas urnas es de 10 procesos electorales.

Pues bien, se le olvida a este funcionario tan aplicado con la tecnología, que ésta puede ser manipulable. Si antes, "a mano", se hacían todo género de trampas en las elecciones, con el software se pueden generar muchas más trampas y además, mucho más difíciles de detectar. Pero además, de eso, supongo que las urnas requerirán de energía eléctrica ¿o funcionarán con pilas? Y si se estropea algo y queda inservible en medio de una elección, en alguna casilla, ¿cómo piensan contar los votos? ¿se desecharán? ¿se eliminarán y ya? La verdad es que "papelito habla" y aún así en estos países tan dados a la corrupción, a mantener en el poder al partido fuerte por todos los siglos de los siglos, es claro que estas herramientas posmodernas son en el fondo un mecanismo más para que se haga trampa en las elecciones.

Pero aparte de todo esto, me salta el hecho de que puedan solamente ser usadas por 10 elecciones. A ver, si se usaron 40 urnas electrónicas y votaron 262.5 personas por urna, ¿me está diciendo este funcionario Díaz Naranjo que cada urna servirá para que puedan votar hasta 2625 personas en diez usos? ¿Es en serio? ¿Pues de qué están hechas? Ya ahí huele feo el asunto. Imaginen -solamente por comparar- cuántas personas usan cajeros automáticos en la ciudad de México. ¿A poco cada 2625 personas ponen un nuevo cajero automático? A mí me parece que hay algo podrido en Dinamarca, para variar.

Plagio descarado

Hoy revisando un librero hallé una obra llamada Amphitryon, de Ignacio Padilla. De hecho, me regalaron el libro pero no lo he leído nunca. Lo que me llamó la atención -desde que me dieron el libro- fue que la portada tiene un parecido muy evidente con el logotipo de la página que Garry Kasparov tuvo en el pasado (Kasparovchess.com), la cual ahora también es la página oficial del excampeón mundial, aunque no es la misma que tenía cuando salió a la luz pública en la web hace unos años (estamos hablando de antes del año 2000).



Siendo francos, quien diseñó la portada del libro mencionado se  plagió el logotipo que había en la página de Garry Kasparov. Pongo ambas imágenes para que ustedes mismos juzguen:





El autor de la portada del libro Amphitryon giró la imagen original del logotipo de KasparovChess, pero son claras las similitudes, las cuales he marcado en la siguiente imagen:



La verdad es que no me queda duda que el diseñador de la portada se plagió de la manera más burda el logotipo de Kasparov. Para colmo,  los colores son casi los mismos. Independientemente de que dicho diseñador estuviese violando los derechos de autor de la obra de quien hizo el diseño de KasparovChess, me queda claro que la creatividad del primero raya en la nulidad. De vergüenza.



Postscriptum 



Abrí el libro Amphitryon para ver si venían los créditos de quién o quiénes hubiesen hecho las portada. He aquí los datos:



Diseño de colección e ilustración de portada: Tasmanias

Realización de la portada: Angel Sanz Martín

Cabe decir, que al fondo de esa página aparece la siguiente leyenda:



Ninguna parte de esta publicación, incluido el diseño de la cubierta, puede ser reproducida, almacenada o transmitida en manera alguna ni por ningún medio, sin permiso previo del editor.



Se me está ocurriendo escribir a la editorial (Espasa Narrativa), para pedir permiso de usar la portada del libro, indicando que es para el sitio de Kasparov, a ver qué dicen.

La necesidad de destacar


Un país necesita héroes, gente destacada, popular, que brinque las fronteras y se conozcan sus logros y triunfos. Quien salta a la fama suele enorgullecer a un país, y esto no solamente se da en una esfera particular de lo que hacemos cotidianamente los hombres, sino en todas.

Por ejemplo, tenemos al "Toro" Valenzuela, que cuando fue contratado en el beisbol norteamericano profesional, recibió toda la cobertura de los medios nacionales. Se transmitían sus partidos, se llevaba puntual anotación de su actuación en cada juego. Lo mismo puede decirse del "pentapichichi" Hugo Sánchez o de ahora, del "Chicharito", que bueno, al decir de los medios nacionales, sin él, el Manchester United sería un equipo de poca monta, por decir lo menos.

Por ello también, nos congratulamos de tener a la actual Miss Universo, aunque en el fondo todos sepamos que es un concurso por demás amañado, que maneja intereses políticos y económicos. Porque reconozcámoslo: tener a la mujer más bella de toooodoooo el universo no puede ser poca cosa ¿verdad?

Así, ya no me sorprende demasiado ver que los medios, en ese afán de crear héroes en nuestro país, a toda costa, especulan incluso irresponsablemente con notas como la siguiente:

Carstens y Zedillo, candidatos al FMI

El Universal
Por Agencia el Universal | El Universal – mar, 17 may 2011José Manuel Arteaga

MÉXICO, D.F., mayo 17 (EL UNIVERSAL).- Los mexicanos Agustín Carstens y Ernesto Zedillo son mencionados en círculos internacionales como candidatos para ocupar la dirección del FMI, que eventualmente podría dejar Dominique Strauss-Kahn, quien enfrenta cargos de intento de violación y abuso sexual.

Especialistas advierten que el único impedimento es la regla no escrita de que un funcionario europeo debe quedar al frente del Fondo Monetario Internacional (FMI).

Para Philippe Agion, profesor de Economía de la Universidad de Harvard, consultado por “The Wall Street Journal”, el ex presidente Ernesto Zedillo es uno de los posibles candidatos, si los países emergentes presionan para liderar el FMI.

Strauss-Kahn permanecerá detenido sin derecho a fianza hasta el viernes, cuando se realice la siguiente audiencia judicial.

(la nota sacada de aquí)

Pero si esto fuera poco, he aquí una nota relacionada con el director del FMI, ahora preso, Dominique Strauss-Kahn:

Mexicana, entre víctimas de agresión sexual de Strauss-Kahn

Según el libro DSK, que cita el Corriere della Sera, el ex profesor de Economía agredió sexualmente a una empleada doméstica en México

Roma | Martes 17 de mayo de 2011 Notimex | El Universal00:28

El director gerente del Fondo Monetario Internacional (FMI) , Dominique Strauss-Kahn, tiene en su haber varias presuntas agresiones sexuales, incluida una empleada doméstica mexicana y una periodista francesa, recordó hoy el Corriere della Sera. 

El rotativo se apoyo en el libro 'DSK', escrito por una ex colaboradora de Strauss-Kahn quien usó el seudónimo de  "Cassandre" , para referirse a detalles de la vida personal del funcionario. 

Según el libro, el ex profesor de Economía agredió sexualmente a una empleada doméstica en México, cuando hizo una visita oficial de trabajo, sin dar más detalles. Al parecer este incidente no fue reportado ante las autoridades, y el ataque sexual habría quedado impune.

También se hizo referencia al acosó a la portavoz del Partido Socialista (PS) en la Asamblea Nacional francesa, Aurélie Filippetti. 

Mantuvo también una relación con una mujer identificada como "Carmen" , viuda de un intelectual italiano que reside en Roma. 

El rotativo agregó que en 2007 la periodista francesa Tristane Banon reveló que Strauss-Kahn intentó violarla cuando se presentó a una entrevista. 

Banon no presentó ninguna denuncia, pero podría hacerlo ahora, tras el arresto del director del FMI en Nueva York bajo la acusación de agredir a una camarera del lujoso hotel Sofitel. 

El cotidiano italiano citó al periodista francés Thierry Ardisson, quien aseguró que al menos otras 14 mujeres habrían sido agredidas sexualmente por Strauss-Kahn. 

En 2007 el periodista Jean Quatremer, del diario galo Liberation, escribió en su blog que el gusto de Strauss-Kahn por la sexualidad desenfrenada le habría causado problemas en Washington, a donde apenas había llegado como responsable del FMI. 

"El gusto de Strauss-Kahn por la sexualidad desenfrenada es conocido. Pero corre el riesgo de causarle problemas en Washington, en un país donde no se bromea con la moral en general y con las molestias sexuales en particular ", dijo entonces Quatremer.

La nota sacada de esta fuente.

Analicemos ambas notas: Primero, según varios analistas (y la misma nota lo dice), el director del FMI en Europa es por tradición europeo. Ya la Canciller alemana indicó que no es momento para que sea de otra manera, particularmente por la influencia del FMI en Europa en estos momentos. Así entonces, sugerir, especular, hacer una nota sobre que Carstens o Zedillo, gloriosos mexicanos, podrían ser la cabeza de ese organismo en Europa está simplemente fuera de lugar. El título de esta nota es falso, porque ni siquiera son candidatos al FMI. ¿De dónde sacó eso el periodista José Manuel Arteaga?

Con respecto a la segunda nota: si el Sr. Strauss-Kahn violó a una mexicana en su visita a México y no se supo nada, pues es porque en este país de la impunidad, ¿cómo se le iba a acusar a semejante funcionario de violar a una empleada doméstica? Pero ahora que se destapó la cloaca entonces tenemos que México también está en el ojo del huracán con una víctima -mexicana- de este supuesto depredador sexual. Cabe señalar que ya los medios lo dictaminan como culpable, porque en este país ya hay la costumbre de decidir por la justicia. Aquí los medios mandan, aunque mientan, aunque se equivoquen o especulen con respecto a una posible candidatura a la dirección del FMI que, evidentemente, no prosperará ni tiene siquiera la mínima posibilidad de que ocurra.

16 peones: Décimo séptima cápsula

Hoy hablaremos de los misterios de la mente... en el ajedrez, desde luego.