Wednesday, June 29, 2011

Rybka es un tramposo

Ayer salió un muy interesante artículo sobre Rybka, quizás el programa más fuerte de ajedrez, que había dominado hasta hace pocos el ajedrez por computadora. El artículo completo, con las referencias y análisis sobre todo este asunto puede verse aquí.

La cuestión simple es que por mucho tiempo se sospechó que Rybka era un clon -ciertamente modificado- de un programa de código abierto, llamado Fruit. David Levy, uno de los jerarcas de la Federación de ajedrez por computadora (entre otros juegos), escribió un extenso artículo sobre este tema, del cual hablé también en este blog (puede consultarse aquí al respecto).

Y la pregunta seguía en el aire: ¿Era Rybka un clon de algún otro programa? Algunas conclusiones de Levy así lo hacían ver. Sin embargo, nada era conclusivo hasta que una serie de expertos en el tema tomaron el toro por los cuernos y comenzaron a analizar a Rybka, a partir de que éste empezó a jugar de manera notable.

Así entonces, la International Computer Games Association (ICGA), ha descalificado y bloqueado a Rybka y a su programador, el MI Vasik Rajlich, de jugar en futuros campeonatos mundiales por computadoras, amén de exigirle a Rajlich que regrese los trofeos y premios en metálico que hubiese recibido cuando ganó los torneos mundiales de los años pasados (2007, 2008, 2009 y 2010).

La ICGA acusa a Rajlich de plagio de dos programas, Crafty y Fruit, después de haber conformado un panel de investigación que analizó Rybka desensamblado el código ejecutable (pues Rajlich no ha dado acceso al código fuente).

Los miembros del panel fueron:

Secretariado:
  • Robert Hyatt - (Crafty, Cray Blitz, World Computer Chess Champion in 1983 and 1986)
  • Mark Lefler (author of Now)
  • Harvey Williamson (part of Hiarcs Team)

Miembros:
  • Albert Silver (software designer for Chess Assistant (1999-2002); currently editor of Chessbase News (2010-present))
  • Amir Ban (author of Junior: World Champion 2002, 2004, 2006, World microcomputer Champion 1997, 2001)
  • Charles Roberson (author of NoonianChess)
  • Christophe Theron (author of Chess Tiger)
  • Dariusz Czechowski (author of Darmenios)
  • Don Dailey (author of Cilkchess, Star Socrates, Rex, Komodo)
  • Eric Hallsworth (part of Hiarcs Team, Publisher of Selective Search magazine)
  • Fabien Letousky (author of Fruit)
  • Frederic Friedel (Chessbase.com)
  • Gerd Isenberg (author of IsiChess)
  • Gyula Horvath (author of Pandix, Brainstorm)
  • Ingo Bauer (Shredder team)
  • Jan Krabbenbos (Tournament Director of Leiden tournaments)
  • Kai Himstedt (author of Gridchess and Cluster Toga)
  • Ken Thompson (creator of Belle Chess Machine, World Computer Chess Champion 1980, Turing Award winner 1983, creator of B and C programming languages, Unix and Plan 9 developer). More Information about Ken can be found here http://en.wikipedia.org/wiki/Ken_Thompson
  • Marcel van Kervinck (author of Rookie)
  • Maciej Szmit (assistant professor at Technical University of Lodz)
  • Mark Watkins (MAGMA Computer Algebra Group, School of Mathematics and
  • Statistics, University of Sydney)
  • Mark Uniacke (Hiarcs, World Microcomputer Champion 1993)
  • Mincho Georgiev (Pawny)
  • Olivier Deville (Tournament Director of ChessWars)
  • Omid David (author of Falcon)
  • Peter Skinner (Tournament Director of CCT--the major annual online computer chess tournament)
  • Ralf Schäfer (author of Spike)
  • Richard Vida (author of Critter)
  • Richard Pijl (author of The Baron)
  • Stefan Meyer-Kahlen (author of Shredder, multiple world champions from 1996-2007)
  • Thomas Mayer (author of Quark)
  • Tord Romstad (author of Stockfish, Glaurung)
  • Tom Pronk (ProChess, Much)
  • Vladan Vuckovic (Axon, Achilles)
  • Wylie Garvin (game Programmer at Ubisoft Montreal)
  • Yngvi Björnsson (The Turk)
  • Zach Wegner (author of ZCT and Rondo, an upgraded version of Anthony Cozzie’s Zappa program, which was world champion in 2005).

Esta noticia sin duda es casi tan importante en el mundo del ajedrez como lo fue la descalificación del canadiense Ben Johnson en las Olimpiadas de 1988 después de que dio positivo en las pruebas antidoping. Aparentemente la resolución es definitiva y es claro que Rybka y Rajlich habrán caído en el desprestigio, quedando fuera de este tema del ajedrez por computadora.



Yo quisiera imaginar que el MI Rajlich debe salir en defensa de su programa. Si es un trabajo original debe poder mostrarlo y además, así evitaría, además de las sanciones, el desprestigio en el que en este momento se encuentra. Habrá que ver qué reacciones hay.

En el mientras, es muy lamentable que estas cosas pasen, pero es claro que los programadores que se esfuerzan porque sus programas cada día jueguen mejor y además, contribuyan a la resolución de los problemas con ideas originales, sean finalmente sobrepasados por alguien que copia código de manera "inteligente" y que logra éxitos sorprendentes basándose en trabajos de terceros, a los cuales, desde luego, no les da ni siquiera crédito.

21 comments:

Juan Llaca said...

Me siento culpable por que generalmente pensamos que estas prácticas son privativas de los latinoamericanos y en particular de los mexicanos. Es una enorme desilusión saber que un MI FIDE, egresado del MIT, se mofe de una comunidad que por un tiempo creyó en su trabajo. Lo que debe doler por encima de sanciones económicas es el desprestigio en el que se vé inmerso no solo como empresario sino también como ajedrecista y lo que es aún peor, como persona. No es mejor que cualquier político de nuestro país.

Jose A. said...

Hola Manuel:

¡Fíjate como cambian las cosas! Resulta paradójico que ha estas alturas cuando ha aparecido un modulo de

ajedrez más fuerte que el propio Rybka y gratis (me refiero a Houdini claro está, es el que yo utilizo para mis análisis

y es bien sabido que muchos grandes maestros también lo usan) salgan a la luz estas graves acusaciones contra

su "creador" Vasik Rajlich. Por varios años se contaba esta misma historia en cientos de blogs y páginas de

ajedrez, se "sospechaba" de algo raro con Rybka, en ChessBase por ejemplo no se hablaba de Rybka, estaba

prohibido, ni acusándolo de nada ni de sus proezas en los campeonatos que ganaba, incluso en Playchess.com no

se podía utilizar en la Sala de Máquinas porque simplemente estaba baneado, ¿La razón de todo esto? Por interés

comercial. Rybka se vendía de manera independiente o incluida en Chess Assistant en algunos paquetes y como

además este módulo barría con todos los motores de ChessBase pues ya se darán cuenta que no les interesaba

promocionar aún más al "pescadito", para bien o para mal.

Sin embargo, pasado algún tiempo, sucedió lo inimaginable: el odiado Rybka en ChessBase ahora era su miembro

más distinguido, le dedicaron una edición especial de su software y presumían de tener al motor más fuerte del

mundo (¡¡!!¿¿??). Si, increíble pero cierto, acto seguido en Playchess.com fue habilitada su presencia como si nada

hubiese pasado y claro está, el 99% de las partidas entre máquinas eran entre "Rybkas" de todos los estilos y libros

de apertura posibles, pues de nada servia usar los "otros módulos" si tu intención era ganar puntos Elo (del sistema

ChessBase obvio), aún así yo jugaba con mi modesto modulo de Fritz 6 y Fritz 6 Light y con mi inseparable Deep

Fritz 8 (hasta hace poco mi módulo de cabecera junto a Hiarcs) y la verdad era frustrante enfrentarse siempre a los

mismos "Rybkas" maquillados. Esto era por lo que ChessBase quería hacerse de Rybka: como casi todo el mundo

lo usaba pensaron que el éxito estaba asegurado, de hecho, creo recordar que días o meses antes de que

perteneciera a la firma alemana su presencia ya había sido permitida en Playchess.com a modo de sondeo entre

los aficionados. Continúa...

Jose A. said...

Pero hay un detalle que se les escapa a la ICGA: Que Rybka y Vasik Rajlich no están solos, no señores, tienen todo

el respaldo de la más importante y poderosa empresa de productos de ajedrez, ChessBase. Si Vasik Rajlich

hubiese seguido de manera independiente el escándalo no habría pasado a mayores y hubiese confirmado lo que

muchos sospechábamos: Rybka usaba algunas líneas de código o ideas de otros módulos. Los suspenden de por

vida como ahora y la lucha seguiría igual, los motores de ChessBase Vs. los motores Open Source o gratis. En vez

de eso, ahora la ICGA podría meterse en un problemón que hasta quizá resulte en su contra porque ChessBase va

a defender su inversión (y está en todo su derecho de hacerlo) ante los Tribunales. Esta declaración oficial de la

ICGA debe tener pruebas contundentes e irrefutables contra Rybka, incluso estoy seguro que ChessBase va a pedir

una "auditoria informática" (me quedó bonita la frase creo) a todos los autores de los módulos detractores y me

parece que aquí si que hay varios módulos que podrían meterse en serios problemas empezando por Crafty que

todos sabemos se distribuye de un tiempo para acá con el software de ChessBase, si Robert Hyatt sabía

claramente que se habían usado líneas de su código entonces ¿Por qué no se quejó con ChessBase en su

momento? ¿Por que siguió toda esta farsa desde el principio? Y lo mismo opino de Fabien Letousky de Fruit, todos

sabemos los años que tiene ChessBase de promocionar este módulo y tampoco dijo nada. Muchos miembros del

panel acusador son parte de ChessBase como socios o como autores de módulos y entonces ¿Por qué nunca

dijeron nada contra Rybka? La respuesta podría ser: Rybka es (o era, y esto seguirá en duda por un buen tiempo) el

"Caballo de Batalla" de ChessBase. No dudo que sus módulos Fritz, Hiarcs, Junior, Shredder, etc., etc. tengan sus

seguidores y compradores pero no nos engañemos, Rybka es el número UNO en ChessBase y es el que a

posicionado a la firma alemana en el primer lugar de fuerza en motores de ajedrez. Fritz el iniciador del mito

ChessBase, Hiarcs revolucionario con su sistema Anti-GM y su estilo "similar" al humano, Junior su fama en los

campeonatos mundiales de PC's, Shredder su juego cauto y posicional, y podríamos seguir pero esto de nada sirvió

a los motores "amigos" de ChessBase, porque como toda empresa ésta necesita ingresos y Rybka los da y seguirá

haciéndolo, por eso creo que ChessBase va a defender este asunto con "uñas y dientes".

Lo curioso del caso es que muchos de los acusadores de alguna manera también se han beneficiado con los

ingresos económicos de Rybka, al ser promovidos o apoyados económicamente por ChessBase y si se realizara la

"auditoría informática" varios podrían caer en contradicciones e incluso se podría demostrar que varios comparten

algunas líneas de código, ideas o alguna otra sorpresa. Continúa...

Jose A. said...

Yo personalmente no estoy en contra de Rybka, de si es un "pequeño derivado" de Fruit. La gran mayoría del

software en el mundo comparte líneas de código empezando por los lenguajes de programación, las "API's" de

Windows, librerías y drivers y no vemos a nadie agradeciendo lo que otros han desarrollado, aunque mucho

software si hace tal mención. Si Vasik Rajlich copió descaradamente algunas líneas de código y muchos de los

acusadores lo sabían entonces todos en ellos en su momento fueron cómplices en esta situación. Por más de 5

años callaron hasta que se "decidieron" a fundamentar su acusación. Por cierto, hace poco vi un torneo en

Playchess.com donde ya era permitida la participación de Houdini (no se si de manera privada o pública) pero esto

da de qué pensar, así pasó con Rybka, primero lo ignoraron y después lo compraron ostentosamente, esto podría

repetirse con Houdini y ChessBase.

Veremos en que termina todo este escándalo que yo considero un cisma, un parte aguas en la historia del ajedrez

informático por la calidad del módulo acusado y el poder de ChessBase. Pero una cosa es clara, tarde o temprano,

si Rybka es totalmente vencido fuera de un PC en el aspecto legal, su creador (o modificador) Vasik Rajlich podrá

seguir "desarrollándolo" y seguir el camino de Houdini, de manera underground. Bueno muchas gracias a todo aquel

que leyó mi opinión y me disculpo por lo extenso del comentario, pero es que la verdad es un tema apasionante.
Gracias amigo Manuel. ¡Saludos!

Morsa said...

José,

Yo creo que en tu texto hay inconsistencias. Frederic Friedel, uno de los dueños de chessbase, estuvo en el panel que analizó a Rybka.

A pesar de la resolución de la ICGA me queda claro que Friedel se abstendrá de decir algo en chessbase.com. Evidentemente tiene un problema moral: seguir acpetando vender Rybka como tal o sacarlo de su catálogo porque éticamente actúo indebidamente.

El punto no es si Rybka es muy fuerte o no. El punto es que se ha demostrado realmente que Rybka usa pedazos completos de código de otros y su autor siempre ha negado esto, diciendo que su código es 100% suyo. El asunto pues es que si Rybka participó y ganó los campeonatos mundiales de ordenadores haciendo trampa, plagiando a otros, pues debe ser descalificado. Cabe decir que el ganar es torneo es un buen argumento para incrementar las ventas.

Así pues, más allá de lo que pase o no con Rybka, Vas está en entredicho moralmente. Mintió y participó en estos torneos plagiando a otros autores y es lo que se castiga.

Un punto interesante, sin embargo, es que todo el panel que analizó el caso está formado por muchísimos autores y gente involucrada en el ajedrez por computadora. Es decir, son competidores comerciales y de alguna manera el que descalifiquen a Rybka los beneficia. ¿Es ético esto último?

Saludos
Manuel

Jose A. said...

Hola Manuel:

Gracias por responder y disculpa la forma como salió escrita mi opinión, al parecer mi procesador de texto manejo mal los cambios de línea.

Bueno mencionas que hay inconsistencias en mi opinión y la única referencia clara que mencionas es la Frederic Friedel que estuvo en el panel de acusadores, sin embargo ¿No crees que sería omisión de mi parte y no inconsistencia? Efectivamente, Frederic Friedel es uno de los dueños de ChessBase y omití mencionarlo de la misma manera que omití mencionar a muchos otros de ChessBase así como a autores de varios módulos acusadores. El señor Frederic Friedel ya sabía muy bien todo lo que se hablaba en los foros y páginas de ajedrez sobre Rybka y aún así él y sus socios asi como los autores de los módulos "amigos" de ChessBase no hicieron nada al respecto, al contrario, le abrieron las puertas de la firma alemana. Ellos mismos debieron iniciar una investigación a fondo para que no quedara duda alguna de la legitimidad del pescadito ruso. ¿Realizaron esa investigación? Sinceramente yo creo que si porque la empresa más importante y poderosa del mundo del ajedrez no querría verse inmersa en un escándalo de plagio y mucho menos apoyar a Vasik Rajlich en un asunto en el que ellos han estado en contra desde hace años: El uso indebido o ilegal de motores de ajedrez. En Playchess.com están muy claras estas reglas en la Sala de Máquinas.

¿Esta es mi inconsistencia de la que hablas? Si fueras tan amable de decirme por favor alguna otra para explicártela con más detalle.

Como una observación complementaria te puedo decir que en ChessBase no se van a quedar con los brazos cruzados, no, esto lo llevaran a los Tribunales, así como cuando un atleta es acusado de doping este es momentáneamente despojado de sus trofeos mientras el asunto es llevado por las vías legales, aunque claro como el doping es un asunto de humanos y no de máquinas las sanciones casi casi son inmediatas y poco puede hacer un atleta al respecto, pero ahí tenemos el caso de la atleta Caster Semenya, una desconocida que se hizo famosa porque por su aspecto físico, la verdad sea dicha, muy varonil, estuvo a punto de perder de sus medallas por suposiciones y rumores y ganó el caso, se confirmó su feminidad y se ratificaron sus triunfos, por eso creo que en el aspecto puramente informático de Rybka, Vasik Rajlich tiene posibilidades de salir airoso.

Como siempre te envío un saludo cordial amigo Manuel.

Morsa said...

Hola, José,

Me refiero a inconsistencias considerando que Friedel, que es dueño de chessbase, quizás no saldría a "defender su inversión", como dices, si se le invita a juzgar a Rybka como un sistema plagiado.

Dicho de otra manera: A Vasik se le acusa de plagio en su participación en los campeonatos mundiales de ordenadores, que como dije, son una plataforma y argumento para que el ganador los use para vender más. A todo el mundo le gustaría hacerse del programa más fuerte que hubiese ganado dicha competencia. Por ello, pienso, Rybka entró en esos torneos, porque desde luego, antes pudo probar en su casa, por decirlo coloquialmente, lo bien que se desempeñaba contra otros engines que comúnmente participan.

Pero sí Vasik no dijo que usaba el trabajo de Fruit o de Robert Hyatt pues simplemente está plagiando el esfuerzo de otros y eso es lo que se está castigando.

Yo he pensado en todo esto bastante y pienso que no faltará quien diga que el autor de Rybka no tiene ética y decida no usar más ese engine. Pero mucha gente, si juega mejor que los demás, seguramente lo seguirá usando, aunque ahora esté claro que Fruit es quien proveé o proveyó de la función de evaluación.

A mí Rybka me parece extraordinario, pero me es claro que arroja una sombra de duda la actitud de su ¿creador? en términos morales o éticos. Pienso que más allá de eso Chessbase lo seguirá vendiendo.

De hecho, Chessbase es un negocio. Punto. Rybka es un producto el cual Vasik dijo que había escrito él y ya se demostró que es falso eso que dice. Sabiendo la verdad, ya sabrá cada quien si lo usa o no, si lo adquiere o no.

Saludos

Tato Cyberpol said...

Hay una entrevista de hace unos pocos meses a David Levy en chessbase - bastante extensa pero merece la pena leerla aunque esté en inglés - en la que explica todos los puntos relacionados con el tema Rybka y los cómos y los porqués. Adjunto el link:

http://chessbase.com/newsdetail.asp?newsid=7899

Dicho sea de paso también se sospecha de que Houdini sea un clon de Ippolite, que a su vez es un derivado de Rybka, y es por ello que su "desarrollador" se abstiene de participar con él en campeonatos. Saludos a todos.

Morsa said...

Tato,

Si Houdini es o no un clon de otro programa, no tiene que ver con el asunto de Rybka. No es un crimen usar código de otro. Si éste es abierto, pues adelante. Hay autores que se protegen indicando que deben mencionar al programador que use su código, es decir, dar el crédito correspondiente.

Levy, en su larga entrevista deja muy en claro que el problema no es usar código de otros, sino que las reglas de esos campeonatos mundiales entre ordenadores, exigen que los autores declaren su es código propio o copio/modificación de otros. No es que Rybka haga trampa, es que no se ciñó a las reglas de dicha competencia y en mi opinión hacen bien en descalificarlo.

Saludos
Manuel

Tato Cyberpol said...

Morsa:

He ahí el porqué adjunto el link de la entrevista a David Levy, la entrevista es demasiado extensa como para que se las resuma en un par de palabras. No se trata sólo de usar código de otros - aunque sea abierto - sino que HAY QUE DECLARARLO, lo cual implica que se solicita permiso a quienes se está copiando para poder hacer uso del código en cuestión en competencias, torneos y etceteras, de lo cual se desprende que es probable que la otra parte en cuestión niegue ese permiso, o que cobre una suma por ello. Ese fue uno de los problemas de Rybka y no sólo el que usted menciona, por tanto están mucho más relacionados los casos Rybka-Houdini de lo que pareciera, y tal vez eso le explique por qué el "desarrollador" de Houdini se haya abstenido de participar públicamente, y explica también por qué Houdini no está bajo escrutinio público ni investigación como Rybka, de participar en torneos la historia sería muy diferente. Si se fija bien la entrevista tiene dos partes, a cuál de ellas más extensa, y si no ha sucedido lo mismo con Houdini es justamente porque el caso Rybka ha creado un precedente y en lo sucesivo los "desarrolladores" tendrán al menos ese cuidado. Por lo demás coincidimos en la justa descalificación de Rybka. Aprovecho para comentarles que actualmente y a solicitud también de Fabien Letouzey se está investigando al programa LOOP, por las mismas razones.

Saludos a todos.

Morsa said...

Tato,

Creo que estamos confundiendo peras con manzanas. Si quieres entrar al campeonato mundial de computadoras organizado por Levy, tienes que declarar expresamente si usas o no código de terceros. Así de simple.

En cambio, si el o los autores de un programa no declaran qe usaron el trabajo de otros y venden ese programa (como en el caso de Rybka o Houdini, si es cierto que este último es clon de Ippolite), pues quedan dos posibilidades: o los afectados demandan a los infractores o bien simplemente no hacen nada.

Si Houdini no juega en ese torneo de Levy es porque quizás no está de acuerdo con eso de tener que declarar qué parte de su código es copia o quizás simplemente no le interesa. Ningún programa de ajedrez está obligado a participar en ese torneo si no quiere.

Así, si Houdini es copia de otros programas, pues que quede en la consciencia de quienes así actúan. Mucho más allá no se puede llegar. Es una cuestión de ética.

Tato Cyberpol said...

Morsa:

No creo que nadie haya confundido peras con manzanas, ni tampoco creo que lo que usted haya dicho me contradiga ni un ápice siquiera. Y no sólo se trata de ética, es un asunto también de LEYES, previamente escritas. De eso se trata.

Saludos.

Morsa said...

Tato,

Depende a qué te refieras con leyes. Por ejemplo, el problema de Rybka con la ICGA fue que entró a participar sin informar que usaba código de terceros y eso va contra las reglas (leyes) de ese torneo. Igualmente, las licencias GNU por ejemplo, exigen muchas veces que digas claramente que tu programa usa el código de otro, y no hacerlo viola las leyes que rigen esos acuerdos, pero para que esas leyes se respeten tienen que haber una autoridad que las sancione.

No existe ley alguna que obligue a ningún programador a mostrar su código fuente si no quiere, por lo cual, la única opción de hacer valer la ley es la ingeniería en reversa. Y eso en ocasiones ni siquiera es tan fácil de usar ni de probar que alguien está usando código de otros sin dar su consentimiento o los créditos correspondientes. Entonces el asunto se complica, porque se requiere cierta expertez en esos campos para demostrar que el código de otro está usando tu código sin darte tu crédito.

Yo creo que Houdini -si usa código de otro programa en donde se exige que se le dé crédito al autor original- debería decirlo y ya. Seguramente le añadió más cosas que lo que el autor original puso. El mismo caso con Rybka. A pesar de ser supuestamente clon de Fruit, es el programa más fuerte. Fruit no juega mejor que Rybka, ¿por qué? ¿te das cuenta la dificultad de esos alegatos? Y que conste, no quiero ni pretendo defender a nadie, solamente mostrar lo difícil que es aplicar a ley en estos casos.
saludos

Tato Cyberpol said...

Morsa:

Insisto en que usted NO me ha contradicho. Las leyes de la ICGA son claras aunque extensas, además de que este es un tema un tanto escabroso - hacer que una computadora juegue al ajedrez y a un altísimo nivel no es exactamente "coser y cantar" -, e incluso hay algunos "nostálgicos" de los tiempos en que Rybka campeaba por sus respetos que aún hoy la siguen defendiendo a capa y espada. El hecho de que se copien los unos a los otros en el mundo del ajedrez por computadoras no sólo es un asunto de ética, y además tampoco son todos los que lo hacen, aunque es un hecho que no todos pueden presumir haber desarrollado sus códigos desde cero. Efectivamente ningún desarrollador está obligado a mostrar el código fuente, pero cuando hay sospechas de que se ha copiado a alguien y está sometido a investigación, entonces deberá mostrarlo o de lo contrario atenerse a las consecuencias. El grupo que investigó el caso Rybka NO solamente eran Federico Friedel y David Levy, la comisión era mucho más extensa, y de ella formaban parte también individuos distinguidos como Robert Hyatt, alguien del team Hiarcs, también del team Junior, y casi una veintena de personalidades más, ninguno de ellos un advenedizo. Por tanto NO es sólo cuestión de ética, de ser solamente un asunto ético no habría tanta alharaca con este asunto. A la larga Vasik Rajlich NO mostró su código fuente - evidentemente "SUS MOTIVOS TENDRÍA" - pero tampoco fue necesario, dado que en la comisión como ya mencioné había desarrolladores tan buenos como él y con muchísima más experiencia - Hiarcs por ejemplo tiene más de 20 años en el mercado, y Junior cuenta con una edad similar. Y sí, es difícil demostrar que se ha copiado a alguien, pero este caso demuestra justamente que NO se van a detener por esa aparente limitante u obstáculo. Honor a quien honor merece, llámese Junior o ICGA, unos por trabajar en un proyecto desde cero, y otros por hacer valer la ley y respetar el derecho de los que verdaderamente han trabajado duro.

Saludos.

Morsa said...

Tato,

Las leyes de la ICGA son para los torneos que sanciona la ICGA, no para todo el mundo del ajedrez por computadora. Para escribir tu propio programa no tienes siquiera que afiliarte a la ICGA. Insisto, no puedes acusar a Houdini de no querer jugar esas competencias por temor a que se descubra que usa código de terceros. Cada programador tendrá sus propias razones. La realidad es que participar y ganar en este torneo de Levy tiene sus ventajas: más exposición mediática, un argumento comercial importante ("compre el programa campeón del mundo"), entre otros argumentos. Lo que simplemente quiero que quede claro es que la ICGA no es la institución omnipresente y universal para el ajedrez computarizado. Es una organización que permite que los ajedrecistas programadores intercambien ideas y observen cómo se mueve este mundillo.

A todo esto, si vamos a ser estrictos, te puedo decir que ningún programa es totalmente original, partiendo que muchos de ellos usan componentes de terceros, incluso para hacer ventanas, botones, barras de progreso, etc. Es decir, las herramientas de programación ya dan una serie de facilidades que no hay que programar. ¿Tienen los programadores que declarar que usan la interfaz que inventó Borland? ¿o los componentes de .NET? No, ya es una obviedad esto. Pero el punto es que nadie escribe un programa de la naturaleza que sea, de la nada y sin información previa.

Ahora bien, si nos vamos al asunto de la ética, puedo decirte que el grupo de personas que analizó el caso Rybka falla en términos éticos, porque ellos se dedican al mismo tema que Rybka y por ende son competidores. ¿Es justo convertirte en juez de una causa cuando vas a acusar a tu competidor? Deja si es justo ¿es ético? Yo tengo mis más severas dudas.

Del por qué Vasik no mostró el código de Rybka es asunto de él. Podemos especular lo que se nos antoje: que tuvo miedo, que se descubriría la verdad, que hizo trampa, lo que quieras. De Houdini puedes decir lo mismo y que por eso no juega, pero te aviso que Houdini está comercialmente en el paquete The King, que promueve y produce el esposo de la Kosteniuk. Si alguien se siente que le han robado su trabajo intelectual, debería ir a las leyes. Si ese alguien sabe que es muy difícil probar que Houdini es un clon de Ippolite, entonces mejor no hace nada. Si los que escribieron Houdini no aclaran nada, pues queda en ellos, en su ética profesional. Si no te parece, no hay que adquirir ese producto. Fíjate que -curiosamente- después del escándalo de Rybka, éste programa subió monumentalmente sus ventas.

Yo creo que Vasik ha usado código de otros que tenía que haber declarado cuando jugó los torneos de la ICGA. No tenía que mostrar el código de nadie. Simplemente aceptar que -como todos- usan información disponible previamente. No veo el gran problema a eso. Por ello pienso que en términos del torneo de la ICGA Vasik hizo trampa.

Tato Cyberpol said...

Morsa:

Ahora creo que estamos cayendo en terreno especulativo. Estamos de acuerdo en que cualquiera (con los conocimientos necesarios, claro está) puede escribir un programa de ajedrez sin tener que afiliarse a nada, tampoco hay siquiera que participar en torneos - recuerdo por ejemplo un programa israelí que se llama Movei, de Uri Blass, del cual no recuerdo haberlo visto en torneo alguno aunque este desarrollador es un individuo bastante respetado en el medio. También otro programa llamado MicroMax, que presume de ser el más pequeño en tamaño y líneas de código de todos y que incluso carece de libro de aperturas, por sólo citar un par de ejemplos. No me parece posible decir que ningún programa sea totalmente original, dado que justamente por alguien se tuvo que empezar. Por ejemplo he leído la historia de Hiarcs - está en su sitio web - y puedo comentar que en un inicio fue desarrollado en Basic - también en el sitio web aparece el código fuente de las primeras versiones, incluso le dieron en una ocasión un premio a alguien que lo compiló y logró que funcionara en versiones más recientes de Visual Basic, por ejemplo - y luego se cambió de lenguaje por motivos que podemos imaginarnos, además de la extensísima trayectoria que ha tenido todos estos años (aunque no ha participado en todos los torneos); también recuerdo una anécdota de que en una de las primeras versiones el rey se enrocaba fuera del tablero, lo cual no deja de ser muy chistoso, con toda seguridad el desarrollador de Shredder contará anécdotas similares. Por tanto hay programas que partieron de cero y otros que no.
Por otra parte, yendo ahora al terreno de los lenguajes de programación, es un hecho también que cada programador obtuvo su licencia para usar el lenguaje de su elección a la hora de comprar el paquete que le interesaba - también hay paquetes gratis - además de que nadie es cuestionado en cuanto a qué lenguaje usó aunque casi todos hayan preferido alguna de las variantes de C++, de manera que este punto queda FUERA del cuestionamiento, de lo que se trata es de LLEVAR A LA PRÁCTICA UN PROGRAMA QUE JUEGUE AJEDREZ , Y LE GANE A LOS DEMÁS - o tal vez no - PERO RESPETANDO LOS DERECHOS DE AUTOR, y en caso de NO ser 100% original, hacer referencias a de dónde procede la parte que no lo es, para entonces solicitar por parte del "agraviado" los correspondientes permisos (cualquier parecido con la industria musical no es exactamente obra de la casualidad). Digo más aún, está demostrado que a la hora de "copiar" (la palabra correcta es DERIVAR)código de Fruit, Rajlich tuvo que transformar las representaciones dado que ambos programas usan GUIs diferentes. Por tanto el punto no es "copiar/pegar" sino algo mucho más sutil aún como lo es DEMOSTRAR que un programa es un DERIVADO de otro, nada sencillo como puede verse, máxime teniendo en cuenta de que Fruit fue desarrollado pàra GNU y Rybka para Windows. ¿Cómo es posible entonces determinarlo?. Por las funciones de evaluación, he ahí el detalle (además de que en algún punto de esta investigación es probable que se haya decompilado parte del programa), colateralmente quedó demostrado que en las primeras versiones de Rybka los trends y valoraciones que brindaba eran IDÉNTICOS (ni siquiera parecidos, eran IDÉNTICOS)a los de Fruit. Como es de imaginarse, NO TODO EL MUNDO podría haber formado parte de esta comisión, sólo alguien que en verdad conociera del tema y es por ello que se tuvo que llamar a los desarrolladores ya mencionados.
El hecho de que los desarrolladores hayan sido juez y parte no hace la diferencia, alguien con suficientes conocimientos lo tenía que hacer. Un caso peor fue cuando los nazis, dado que no existían siquiera leyes para juzgar los crímenes masivos de guerra. ¿Se detuvo el juicio por eso?...¿Quedaron impunes los crímenes?...y sigo insistiendo en que NO era sólo un tema de ética.

Saludos.

Morsa said...

Tato,

Entiendo tu punto. Ahora bien, en la página de chessbase hay también el otro lado de la moneda: un doctor en cómputo que defiende a Rybka y cuestiona seriamente los resultados de los que analizaron el supuesto código de Rybka. Sin embargo, hay que reconocer que ese personaje ha trabajado con Vasik y compañía, así que ¿hasta dónde está sesgada su opinión? No lo sé.

Me queda claro que aquí hay asuntos que tienen que ver con la ética del programador. Una vez le pregunté a Kim Kokonen, un programador de turbo pascal, que había hecho una serie de rutinas para casi cualquier cosa (y que costaban como 150 dólares), y que venían con código fuente, si no le preocupaba que otros le piratearan su código. Me contestó con algo como esto: "No me preocupa. Los programadores en general son honestos". Asi pues, creo que cae esto en un asunto de educación y cultura, porque como bien dices, no es copiar y pegar nada más. Es algo más complejo.

En lo que no me convence nada tu argumentación es en el sentido que no importa sr juez y parte. Claro que importa. Eso no promueve la mínima justicia en el asunto. En principio debería haber un jurado que no fuese participante en los torneos de la ICGA, porque eso sesga el resultado final. Nadie en su sano juicio puede ganar un litigio si alguien es juez y acusador en el mismo.

saludos

Tato Cyberpol said...

Morsa:

¿Cuál es el doctor en cómputo al que se refiere?, ¿Riis?. En caso de que sea éste, he leído sus comentarios y me parecen ampliamente parcializados, de hecho si mal no recuerdo en casi todos se refiere a que Rybka planteó un antes y un después y hace estudios estadísticos y cosas así pero en NINGUNO de sus comentarios se refiere al hecho de que se haya copiado/derivado código de Fruit, desde mi punto de vista siempre se va por la tangente, lo cual creo que le resta seriedad. Si no me equivoco David Levy le ha respondido en más de una ocasión a este señor casi que a título personal. Aprovecho para decirle que yo no sabía que este señor hubiera trabajado con Rajlich y compañía, aunque ahora que usted lo comenta, no me extraña en lo absoluto.

Yo NO he dicho que NO sea un asunto de ética, CLARO QUE LO ES, mi punto es que NO SÓLO ES UN ASUNTO DE ÉTICA, las leyes existen y la ICGA acaba de demostrar que están dispuestos a todo con tal de que se cumplan.

Ser juez y parte importa también, el detalle es que ALGUIEN LO TENÍA QUE HACER...y es un hecho que no todo el mundo está capacitado para ello. ¿Dejarlo en la absoluta impunidad?, ya vimos que NO. ¿Preparar a alguien más para que pueda valorar justamente este trabajo?. Por el momento NO lo hay y tampoco creo que en los próximos 5 minutos aparecerán como por arte de magia, ni siquiera preparándolos especialmente para ello. Me recuerdo también del caso de Kevin Mitnick el hacker, a la hora de su captura uno de los encargados de "rastrearlo" fue justamente Tsutomu Shimomura, una de sus "víctimas", (Mitnick en alguna ocasión había penetrado su ordenador). Haciendo un paralelo, Hiarcs, Junior y otros han sido las "víctimas" de Rybka, y a falta de mejores "rastreadores", hubo que hacer uso de ellos. Usted NO tiene que estar de acuerdo conmigo en estos puntos, pero hay que considerar que son las mejores (y probablemente únicas) "herramientas" de que se dispone.

Saludos una vez más.

Morsa said...

Sí, es Riis quien defendió a Rybka. Pienso que en algunos puntos tiene razón, pero en otros su opinión está sesgada en favor de Vasik. En cualquier caso no se le puede dar demasiada credibilidad a alguien que trabajó con Vasik en la página de ChessOK.

No sé hasta dónde pueda llegar la ICGA. De hecho no creo que "jurídicamente" tenga mucha fuerza. Lo más que hicieron fue descalificar a Rybka en los torneos que ganó. Eso supondría una situación lamentable para el programador, por el descrédito, sin embargo insisto, quizás Vasik nos ea el más ético, pero no ha enfrentado demandas por derechos de autor de otros programadores hasta donde entiendo. El asunto del trabajo copiado o derivado, o como le quieras llamar, no es ni simple de probar ni mucho menos. Toda compilación pierde información del código fuente (irrelevante para la máquina) por lo que probar con un grado de precisión que un programa es copia o trabajo derivado de otro no es tan fácil. De hecho, si te basas en la función de evaluación, debes saber que existen una serie de publicaciones (una es la de la ICGA), otra es si mal no recuerdo, Advanced in Computer Chess, la cual ya no sé en qué tomo van, en donde se estudian estas funciones de evaluación y hay literalmente cientos de artículos sobre este tema. Y si a esto le añades que ya alguien como el autor de Fruit puso en código abierto su programa, pues más de uno puede sacar lo mejor de ello y estaría pendiente definir qué es exactamente un trabajo original, copiado, o como dices tú, derivado. No es muy claro. Y que conste, entiendo perfectamente tu punto.

Con respecto al asunto de ser juez y parte: si no hay quien haga ese trabajo, Vasik Rajlich y Rybka están en franca desventaja en donde no tienen un juicio siquiera justo y de entrada entonces mejor que no se haga nada. Es como si me dices: suponemos que es culpable, entonces metámoslo a la cárcel. Yo te diré que si hay una duda razonable si alguien es inocente o no, en principio debe quedar libre. En el caso de Rybka, si no hay quien pueda juzgar el asunto sin ser juez y parte, pues entonces simplemente no se le puede juzgar. El autor de rebel, me parece, le pareció injusto el resultado contra Vasik y declaró que renunciaba a sus "títulos" ganados en esas competencias de la ICGA. estoy buscando donde vi eso pero no lo encuentro.

No sabía ese asunto de Mitnick, pero si así fue, te puedo asegurar que Mitnick no tuvo un juicio justo.

Como sea, interesante discusión...

Saludos
Manuel

Tato Cyberpol said...

Saludos de nuevo Manuel/Morsa:

Cuando me refiero a las leyes estoy hablando particularmente de las de la ICGA y lo referente a sus torneos. O sea, es un tema que no se saldrá del ámbito del ajedrez por computadoras, la sanción de Rajlich/Rybka está limitada a este ámbito aunque no es poco, de hecho Rajlich sigue trabajando en su proyecto y Chessbase lo sigue vendiendo. A propósito de las funciones de evaluación - y de cuanto se os ocurra - hay una "wiki" para desarrolladores de programas de ajedrez (no tengo a mano el enlace pero aparece en la página de Houdini) de manera que si a alguno de los lectores de este blog le interesa puede darse un brinco por allá. Hay muchísima información al alcance de todos.

No sabremos hasta dónde llegará la ICGA, pero este fue un aviso de que no se quedarán con los brazos cruzados. Sí, es cierto que Fabien Letouzey dejó su códico abierto (creo que únicamente con las primeras versiones, no podría dar certeza pero creo que con las versiones más actuales ya no es así), incluso las pruebas que hizo la comisión fue con las primeras versiones también de Rybka (si mal no recuerdo la 2.1 y la 2.3.2a), y dando como un hecho que sí habían derivado código de Fruit, ya no fue necesario hacerlo con las subsiguientes. De cualquier manera eso lleva de nuevo al mismo punto: Letouzey abrió su código, pero aún así quien haga uso de él y lo derive o le dé algún uso en beneficio propio y participe en las competencias de ICGA, ya sabe cuál es el procedimiento a seguir, o atenerse a las consecuencias.

La historia de Mitnick (uno de los hackers más famosos, y un verdadero genio de la Ingeniería Social) es absolutamente cierta. Puede verse en su wikipedia y también hay un programa de Discovery Channel al respecto. Con un poco de suerte es probable que alguien lo haya subido a YouTube.

Buen día.

Morsa said...

Tato,

en el ámbito de la ICGA por supuesto que Rybka violó las reglas y sacó ventaja de lo que otros participantes no hicieron. Y sí, eso merece las descalificaciones que sean. Sin embargo, creo que Vasik y su rybka no tuvieron un juicio justo preciaamente por lo que he dicho, porque sus competidores en esos torneos son quienes hicieron esa investigación en su contra, porque parte de querer demostrar que rybka estaba haciendo trampa.

Supongo que como dices, quién más calificado para esta labor que los propios competidores, pero no es de justicia elemental ser juez y parte, por ende, ante esa situación, habría que haber buscado a quienes no estuviesen involucrados directamente.

Por lo demás, es cierto: hay mucha información y hasta todo un wiki al ajedrez computarizado, muy interesante y con demasiada información.

saludos
Manuel