Not logged inCSS-Forum
Forum CSS-Online Help Search Login
CSS-Shop Impressum Datenschutz
Up Topic Hauptforen / CSS-Forum / Für Frank - Ein Good-Will Thread
- - By Michael Waesch Date 2010-02-08 02:51
Wie ich bereits schon ausgeführt habe, denke ich, daß der "andere" Thread, der an Frank gerichtet war, ihn durchaus verletzt hat. Ich kann mich natürlich irren, aber ich bin gerne bereit mich zu entschuldigen, falls er meine Argumente als verletztend empfunden hat. Das war sicher nicht meine Absicht, zumal ich seine Argumenation über Klone nachvollziehen und verstehen kann - ich teile sie nur nicht vollständig und bin in Teilbereichen anderer Ansicht.

Ich habe aber die meisten der Klondiskussionen in anderen Foren verfolgt und kann mit Bestimmheit sagen, daß Franks Standpunkt vertretbar ist. Und auch ich habe einst irgendwo (ja, das heißt, daß ich keinen Link habe und es nicht beweisen kann), daß die Kloner zugegeben hätten, daß sie NICHT NUR!!! Rybka, sondern auch andere Programme geknackt hätten und verwendet hätten, was brauchbar war.

Nun bitte, gehen wir mal in die Details:

"Zusammenstöpseln von Source-Code":
=============================

Es wurde hier immer wieder gemutmaßt, daß die "Kloner" aus verschiedenen Basiscodes sich ein eigenes Programm zusammenstöpseln - und selbst kaum Ahnung haben, was sie da eigentlich tun - sprich: Selbst nur wenig Programmierkenntnisse haben ...

Wenn ich sowas höre, dann denke ich in der Tat, daß der Schreiber selbst nicht viel Ahnung von Programmierung haben kann, weil:

a) Basis-Code in verschiedenen Programmiersprachen inkompatibel ist. Man kann nicht hergehen und Teile aus einem C-Programm mit einem Basic-Programm und wohlmöglich noch mit Fragmenten aus einem Pascal-Programm einfach mischen und neu compilieren. Das geht nicht.

b) Selbst wenn wir jetzt annehmen, daß alle Fragmente auf einem C-Code beruhen, so muß man doch die Architektur der einzelnen Fragmente verstehen, wissen, wann und mit welchen Parametern sie vom Hauptprogramm her aufgerufen werden müssen, welche externen Bibliotheken hinzukompiliert werden müssen usw. Das geht nicht, wenn man von Programmierung keine oder nur wenig Ahnung hat.

Aber - und jetzt kommts: Ich selbst habe mir mal einige freie Source-Codes wie von Toga bspw angeschaut und diese sind in der Tat modular - d.h. es gibt ein Unterprogramm für Angriff, Verteidigung, Königssicherheit, generieren aller legalen Züge, Berechnen des Scores usw. Wenn jemand jetzt nun wenigstens weiß, wie und wann er diese Unterprogramme ansprechen muß, dann wäre es ihm durchaus möglich, einzelne Fragmente einzubinden und ein "neues" Programm (EXE) daraus zu kompilieren - vielleicht auf Anhieb nicht unbedingt lauffähig, aber nach einigem Rumprobieren ... Und dieses Programm würde sich dann auch in der Tat wie beschrieben verhalten: Instabil, fehleranfällig, absturzgefährdet ...

"Reverse Engineering":
=================

Alle "Hochsprachen" haben eines gemeinsam: Sie benötigen einen Basiscode im Klartext, einfach deshalb, um dem Menschen das Programmieren zu erleichtern. Die einfachste hiervon ist vermutlich auch eine der ältesten: BASIC - und deswegen heißt sie auch so: Beginners All Purpose Instruction Code.

Viele, die Programmieren lernen, beginnen mit BASIC und schreiben einfache Programme wie:

FOR I = 1 TO 10
PRINT "HALLO"
NEXT I

... was dazu führt, daß der Computer 10 mal "Hallo" auf den Schirm schreibt. Jeder, der nun im Besitz dieses Basiscodes ist, kann ihn klar und deutlich lesen und auch nachvollziehen. Eine einfache Schleife wurde programmiert und wie ein williger Knecht, nudelt der Computer sie auch brav ab, bis er 11 in I vorfindet und die Schleife verläßt.

Um die ganze Sache billig zu halten, kommt BASIC meist mit einem "Interpreter" daher, der einfach während der Programmausführung Zeile für Zeile liest, sie in Maschinensprache übersetzt und sofort ausführt. Dieses "Übersetzen" kostet aber Zeit, weshalb ein Interpreter-Schachprogramm quälend langsam wäre - und darüber hinaus noch den Nachteil hätte, daß man den Basis-Code nicht für sich behalten kann.

Deswegen gibt es die sog. "Compiler", die ein Programm als ganzen einmal in Maschinensprache übersetzen und diese für den Computer sofort ausführbare Datei in einer "EXE" speichern. Diese *.exe-Datei enthält nun keinen Klartext mehr, so daß ein anderer Programmierer damit erst einmal nichts anfangen kann.

Er muß also zunächst einmal einen Decompiler benutzen, der die Maschinensprache wieder in eine Hochsprache übersetzt. Das geht zwar, hat aber immense Tücken:

Nehmen wir einmal an, wir hätten folgendes BASIC-Programm:

Entscheidung=INT(20*RND(1))+1

if Entscheidung <= 10 then gosub Klein

if Entscheidung >10 then gosub Gross

END

Klein:
PRINT "DIE ZAHL IST KLEINER ALS 11!"
RETURN

Gross:
PRINT "DIE ZAHL IST GROESSER ALS 10!"
RETURN

So, nun compilieren wir es und benutzen einen Decompiler um die EXE wieder in Klartext zu verwandeln:

a=INT(20*RND(1))+1

if a <= 10 then gosub A

if a >10 then gosub B

END

A:
PRINT "DIE ZAHL IST KLEINER ALS 11!"
RETURN

B:
PRINT "DIE ZAHL IST GROESSER ALS 10!"
RETURN

Und hoppla - meine beschreibende Namensgebung für Variablen und Unterprogramme ist weg ... Natürlich, die sind für den Computer eh nur Platzverschwendung und in der EXE nicht enthalten. Der Decompiler kann zwar die Befehle wieder in den Text der Programmiersprache übersetzen, aber alles, was einen Quellcode lesbar macht, ist weg.

Klar, man wird nicht viel Zeit aufwenden müssen, um obiges Programm anhand der Befehle zu verstehen, aber es ist ja auch ein ziemlich primitives ... Wie sähe es mit einem Quellcode mit Millionen Zeilen aus, die in keinster Weise beschreibende Variablen haben und sich mit komplexer Mathematik und nicht wie in meinem Fall mit dummen Sprüchen beschäftigen? Das dauert dann schon viel länger und wenn einer nur Fragmente zusammenstöpseln kann, nun, der knackt Rybka sicher nicht - nicht durch diese Methode.

Wenn allerdings der ursprüngliche Source-Code gestohlen wurde ...

Ich hoffe, daß ich damit dem interessierten Laien einen kleinen Einblick geben konnte - kommen wir jetzt zu weiteren Gründen, warum man vertreten kann, daß einige Klone evtl Code von Rybka enthalten.

Jeder, der Rybka 3 und Robbolito besitzt, kann sich davon überzeugen, daß sie sehr oft nicht nur die gleichen Varianten vorschlagen, sondern auch eine ziemlich gleiche Stellungsbewertung abgeben, was durchaus ungewöhnlich ist, da Rybka im Gegensatz zu anderen Programm sehr kleine Werte angibt. Wo Fritz mit +5,xx bei der Sache ist, kommt Rybka wahrscheinlich nur mit "lächerlichen" +1,xx oder +2,xx daher.

Dies wurde sogar, ob man es nun glaubt oder nicht, auch schon seit der Version 1 oft "bemängelt" und Vasik Rajlich sagte einmal bei einer Übertragung auf ICC, daß das mathematisch ja keine Rolle spiele und wenn er mit den anderen Programmen mitziehen wollte, könnte er die entsprechende Variable ja einfach mit 2 multiplizieren, bevor sie ausgegeben wird.

Nun, Fakt ist aber, daß er es nicht so gemacht hat und ich auch sonst kein Programm kenne, daß sehr lange in einem so niedrigen Bewertungsbereich bleibt. Auch das macht der Robbo - und das macht ihn durchaus verdächtig.

Andere wiederum wollen in der EXE einiger dieser als Klone verdammten Programme auch ziemlich fragwürdigen Klartext gefunden haben, was ich aber bisher noch nicht nachgeprüft habe, weil ich im Moment keinen Hex-Editor zur Hand habe und mich normalerweise auch nicht mit der EXE von irgendwelchen Programmen beschäftige. Diese Texte ließen darauf schließen, so heißt es, daß diese "Klon-Programmierer" möglichweise auf einem heutzutage doch seltsam anmutenden Kreuzzug für den Kommunismus seien, was ebenfalls als Begründung für Kloning genommen wird, denn im Kommunismus gibt es nur Allgemeinbesitz und grundsätzlich nicht so das Recht auf Privateigentum des Individuums. Es wird dann argumentiert, daß diese Leute geschützten Code knacken und freigeben, weil ihrer Ansicht nach dies rechtens sei. Ich finde das allerdings etwas weit hergeholt.

Verdächtig ist der Robbo aber auch, weil er Rybka nur unter extremen Zeitbedingungen schlagen kann. Wäre seine Spielstärke durch eine neuere und bessere Heuristik/Suchtechnik(en) begründet, wäre es genau umgekehrt. Unter Blitz wären sie vermutlich gleichwertung und unter längeren Zeitkontrollen würde der Robbo die Oberhand gewinnen, weil dann seine besseren Techniken viel mehr Zeit hätten zur Geltung zu kommen.

Zu glauben, daß es Klone von Rybka gibt, ist durchaus ein Standpunkt, den man vertreten kann. Ich sagte es bereits in einem anderen Thread, daß dies - zurecht - ein sehr kontroverses und heikles Thema ist, denn beweisen kann man letztlich nichts und unschuldig will man ja auch niemanden an den Pranger stellen.

So, jetzt wird mancher wegen dieses Mammutpostings sicher "abkotzen" und ich gehe dann auch nur noch auf Nachfrage ins Detail, denn es gibt noch duzend andere Programmtechnische Ansatzpunkte, die einem Nichtprogrammierer wohl eher schleierhaft erscheinen würden. Ich führe das aber nur weiter aus, wenn Interesse besteht, und man dieses Posting auch gut nachvollziehen und verstehen konnte. Falls nicht, wäre ich ohnehin ungeeignet die programmtechnischen Aspekte dem Laien näher zu bringen und verständlich zu machen, wo die verschiedenen Problematiken auftauchen.

Klonen ist halt so eine Sache, vor allem auch wenn Teile von Programmen aufgrund von Übereinkünften (Schnittstellen-Programmierung) auch immer gleich aussehen müssen. Ist es deshalb schon ein Klon?

Genug für heut, sonst kipp ich vom Hocker.

Mike
Parent - - By Frank Quisinsky Date 2010-02-08 09:13
Hallo Mike,

schauen wir uns mal an was Kranium bei Cyclone, Toga II gemacht hat.

Da wurden ein paar Ideen eingepickt, eine bekannte und offenbar gute Setting Einstellung von einem User (siehe Toga Forum). Cyclone ist nun der mehrfach überarbeitete Code von einem Clone (Toga, Grapefruit, etc..). Diese Sache ist OK, denn GPL wurde eingehalten. Die Sourcen liegen wieder offen.

Wir gehen von der Unschuldsvermutung aus, richtig?

Wenn Vas behauptet Cloner hätten es Ihm gegenüber zugegeben, hege ich keinen Zweifel daran.
Warum sollte ich vermuten das er lügt.

Zumal das ganze von den Clonern selbst gar nicht abgestritten wird.
Ganz im Gegenteil, die Herren bleiben NN.

Was wurde bei denn bisher gemacht:
Es gab die Sourcen die offenbar von einer Maschine erstellt wurden.

Diese werden versucht von Kranium nicht nur lesbar zu gestalten, sondern versucht er auch Fehler herauszuholen. Andere bedienen sich offenbar dieser Sourcen und setzen einen Clone auf den nächsten.

Verbleibt der Ursprung:
Das Programm von Vas.

Ihr könnt mich ruhig berichtigen wenn ich falsch liege ...
Habe damit kein Problem, aber bitte bleibt sachlich (nicht ich habe damit ein Problem, Ihr selbst bringt Euch in Schwierigkeiten).

Es wird also immer wieder auf irgend etwas aufgesetzt aber der Ursprung bleibt der Gleiche.
Natürlich ist es möglich neues hinzuzuführen, was auch Einfluss auf die Spielstärke haben könnte.

Aber woher kommt den der Ursprung des Maschinen-Codes?

Ich habe z. B. in TalkChess geschrieben, dass ich denke das Kranium eine gute Arbeit macht ... aber damit meinte ich Cyclone! Der Programmierer scheint wirklich auch sein Handwerk zu verstehen und weiß offenbar was er macht. Kommt er nicht weiter ... so meine Vermutung ... bedient er sich anderer Programmteile (Ponder-Code). Das machte mich dann nachdenklich.

Hier entsteht offenbar ein Mix.
Das ist eine Vermutung (kann aber ein Programmierer leicht nachvollziehen der die Robbo-Sourcen von Ihm gesammelt hat und in seine Firebird schaut). Ich sehe, dass viele Bugs im Ponder - Mode waren, trotz vieler Ankündigungen es wäre nun behoben. Nun sehe ich, dass ein völlig anderes Ponder Verhalten bei Firebird dabei herauskommt.

Und nochmals ...
Wer ist so blöd, und bekennt sich auch noch öffentlich dazu der Held zu sein und diese Maschinen-Sourcen in die Welt gesetzt zu haben aus denen dann offenbar andere versuchen aufzubauen.

Es gibt hier wirklich ein paar Hinweise aber selbst ohne diese Hinweise ist doch klar was hier passiert.
Ich finde hier kann sogar logisch nachvollzogen werden was genau passiert und passiert ist.

Gehen jetzt Anwender hin und feiern diese Dinge auch noch verstehe ich das nicht, denn das ist kurzfristig gedacht.
Für "unser" Hobby entsteht ein viel größerer Schaden wenn seitens der Anwender diese Dinge auch noch gefeiert werden.

Aber das zu beeinflussen ist so als würde man pausenlos gegen die Wand laufen.
Das kann nicht beeinflusst werden.

So schrieb ich ...
Jeder soll das tun zu dem er sich berufen fühlt.
Soll die Software nutzen die er nutzen möchte und einfach glücklich damit sein und Spaß haben.

Diese Aussage ist besser als irgend jemand belehren zu wollen der nicht belehrbar ist.
Selbst ziehe ich es vor dann lieber andere Dinge zu tun die vielleicht dem Hobby nützlicher sind.

Viele Grüße
Frank
Parent - By Michael Waesch Date 2010-02-09 04:32
Ich habe ja schon geschrieben, daß ich dich mit meinen Ansichten, die deinen teilweise widersprechen, nicht verletzen wollte.

Ich denke auch - zumal meine Ausführungen aus Sicht eines Programmierers, keinen interessiert haben, das Theman Klone vielleicht auch erst einmal durch ist. Ich kann abschließend nur noch meine ganz persönlichen Überzeugungen zu RobboLito darlegen, da ich sonst keine der anderen Programme auf meinem Rechner habe.

Folgende Überlegungen habe ich mir zu RobboLito gemacht:

1) Meinen Ausführungen zufolge, bin ich auch logischerweise der Ansicht, daß genauso viel dafür spricht, daß Robbolito ein Klon von Rybka 3 ist, wie dagegen spricht. Wenn es ein Klon ist, dann sicher kein reiner, sondern, wie ich schon sagte, vermutlich eine abgespeckte, entschlackte Version.

2) Ich wollte RobboLito, weil es sehr schnell auf Touren und Tiefe kommt, nach meinem Test gerne weiter benutzen und fragte mich, ob ich das machen kann - moralisch wie gesetzlich. Ich habe es dann auch tatsächlich behalten, mit der Begründung, da ich ja das Original (falls es ein Klon ist) ja ohnehin rechtmäßig besitze und dem Programmierer keinen Schaden zufüge.

Ansonsten finde ich, daß Klone eine sehr heikle Sache sind - und man sich bestimmt auch Gedanken machen muß, auch wenn man davon ausgehen kann, daß es rechtlich wohl keine Bedeutung haben wird.

Mike
Parent - - By Alex Schmidt Date 2010-02-10 19:53 Edited 2010-02-10 21:00
[quote="Frank Quisinsky"]Wenn Vas behauptet Cloner hätten es Ihm gegenüber zugegeben, hege ich keinen Zweifel daran.
Warum sollte ich vermuten das er lügt.[/quote]

Vas macht in der persöhnlichen Kommunikation einen sehr netten Eindruck, er kann die Leute gut um die Finger wickeln. Daher haben alle die mit ihm zu tun hatten eine gute Meinung von ihm.

Ich würde ihm auch bedenkenlos glauben, wenn es irgendwelche verdächtige Ähnlichkeiten zwischen Robbo und Rybka gäbe. Die gibt es aber kaum. Einzig Larry Kaufmann sprach von Ähnlichkeiten zu seinen Rybka 3 Figurenfeldertabellen. Nur gibt es 2 Probleme:

1.: Die Figurenfeldertabellen sind durch Strelka schon lange öffentlich, was Larry nicht mal wusste.
2.: Die implementation in Robbo ist eine völlig andere, die sich nicht durch dekompilierten Rybka code erklären lässt. In Rybka stehen die Werte in Tabellen, in Robbo werden sie berechnet.

Dies ist ein Eindeutiger beweis, dass nicht Quellcode kopiert wurde, sondern höchstens "ideen" benutzt wurden. Und das evtl. nicht mal von Rybka sondern vieleicht von Srelka.

Schon vorher habe ich die Bewertung als einzige nennenswerte Ähnlichkeit zwischen Rybka und Robbo beschrieben. Abseits davon gibt es nicht viel. Hier habe ich einige Sachen zusammengefasst:http://talkchess.com/forum/viewtopic.php?t=31527

Nun zur Glaubwürdigkeit von Vas.

Er sagte mir, er hätte in Ippolit "große Mengen von wörtlichem dekompilierten Rybka code" entdeckt. Die Frage, wie er denn wörtlichen Code finden will, wenn Rybka decompiliert, und wieder in leserlichen Quellcode übersetzt wurde blieb unbeantwortet.

Mehr Details wolle er nicht geben, da er "den Clonern nicht helfen möchte". Je mehr ich darüber nachdenke, umso lachhafter ist die Begründung.

Wenn jemand eine solche Behauptung aufstellt, muss er sie mit Fakten untermauern können.

Die Sourcen von Robbo sind öffentlich: Wer behauptet fremder Quellcode wurde kopiert, soll gefälligst sagen welcher code von Robbo kopiert wurde. Nachdem der Quellcode nun ein Jahr öffentlich ist wurde nicht eine Zeile bemängelt.

Und keiner der Autoren hat zugegeben, dass fremder Code benutzt wurde. Nur Norman Schmidt hat mal was in die Richtung geschrieben, was aber eindeutig ironisch gemeint war.

Und zu guter letzt gilt immernoch der Grundsatz: Im Zweifel für den Angeklagten.

Frank, Du kennst mich... Ich bin sicher keiner, der illegale Aktivitäten toleriert oder gar unterstützt...

Machs gut
Parent - - By Michael Waesch Date 2010-02-10 22:04
[quote="Alex Schmidt"]
Und zu guter letzt gilt immernoch der Grundsatz: Im Zweifel für den Angeklagten.
[/quote]

Grundsätzlich wahr - scheint aber auf Playchess nicht zu gelten. Meines Wissens nach werden Leute, die da mit RobboLito spielen wollen "gekickt"...

Ansonsten hast du sehr gute Ausführungen gemacht, vor allem daß Vasik oft wirklich nur Andeutungen macht, die keiner von uns wirklich nachprüfen kann - und nicht nur das. Ich kann mir bis heute nicht wirklich vorstellen, was er damit meinte, als er einmal schrieb, den Rybka 3 Code gar nicht zu besitzen und auf Nachfragen erst gar nicht mehr antwortete.

Mike
Parent - - By Thomas Mayer (Quark) Date 2010-02-11 00:08
Hi,

also ich denke bei Vas Aussage bezüglich des Rybka 3 Codes vermute ich, daß er den genauen Versionsstand nicht mehr besitzt, evtl. eine etwas schlampige Versionsverwaltung ?! Das ist zumindest denkbar. Übrigens finde ich nicht, daß es in Rybka 3 so wahnsinnig viel zu bugfixen gibt. Die Falschbehandlung eines Läuferendspiels z.B. ist eben kein Bug sondern eine Eigenschaft, kann das Dinges halt nicht.

Zu den Clones. Eigentlich wollte ich dazu nichts sagen, aber vielleicht komme ich in den nächsten Tagen mal nicht um eine längere Behandlung des Komplexes herum. Eine zentrale Frage ist sicherlich der Begriff an sich. Was macht eine Engine zum Clone, Derivat, Plagiat ? Hier gibt es ganz unterschiedliche Meinungen. Ich selber sehe das ähnlich wie bei Büchern: Übersetze ich irgend ein Buch meinetwegen vom Deutschen ins Englische dann habe ich dadurch kein neues Werk geschaffen, selbst dann nicht, wenn ich hier und da was anfüge, weglasse oder die Reihenfolge verändere. Ähnlich sehe ich das auch bei Programmen. Uri Blass z.B. ist anderer Meinung, nehme man seiner Ansicht nach einen beliebigen Source-Code von Engine A, meinetwegen in C geschrieben und übertrüge diesen in eine andere Programmiersprache, von mir aus Basic oder Delfi oder was auch immer, so entstünde ein neues Programm. Warum ich dieses Beispiel bringe ? Also wenn wir z.B. Ippolit und dessen Nachfolger nehmen, können die meiner Meinung nicht aus einer Kopie des Source-Codes hervorgegangen sein weil denen schlichtweg der Source-Code nicht vorlag. Die Form allerdings, in denen sich die ersten Ippolit-Versionen präsentierten sieht in Teilen stark nach einem maschinenerzeugten Code aus, meiner Ansicht besteht daran kein Zweifel. Wäre die Ursprungsquelle Rybka hätten wir hier quasi eine Übersetzung des Rybka-Assembler codes, generiert durch einen Assembler zurück in einen C-Code. Wohl war es zu aufwendig den ganzen Code zu entschlüsseln, in den Bereichen UCI-Schnittstelle usw. macht das auch kein allzugroßen Sinn, also hat man den Rest drumherum gebastelt. Dies ist jedenfalls eine denkbare Variante, der ich mich anschließe, d.h. ich gehe bei Ippolit und Co. eindeutig von einem Clone / Plagiat aus. Diese Einschätzung wohlgemerkt hat damit zu tun, wie man Clone / Derivat / Plagiat definiert, so lange man da natürlich keinen gemeinsamen Nenner findet ist jede Diskussion sowieso zum scheitern verurteilt. Und auch zwischen der Frage "Legalität" und "Moral" muß man ganz klar trennen, evtl. nicht nur je nach Rechtslage in jeweiligen Ländern sondern insbesondere im Bereich Moral nach dem eigenen Nutzungsbereich / Nutzungsverhalten, für einen Computerschachenthusiasten ist eine neue evtl. spielstärkste Engine prinzipiell natürlich was schönes. Soweit für heute mal, je nachdem wie die Diskussion verläuft kann ich die angedrohte längere Ausführung noch folgen lassen.

Gruß, Thomas
Parent - By Michael Waesch Date 2010-02-11 00:51
Vielen Dank für dein ausführliches und ausgezeichnetes Posting über "Klone". Ich kann mir nicht vorstellen, daß man das noch besser formulieren kann - wobei mich deine weiteren Ausführungen und Gedanken zu dem Thema sicher interessieren würden, möchte dich jetzt aber auch nicht in diese Arbeit "hineinlocken", wo ich vermute (allein schon aufgrund mangelnder Antworten, bzw. Nachfragen), daß das Interesse nicht all zu stark sein dürfte. Ansonsten stimme ich zu, daß bei einer tiefergehenderen Diskussion tatsächlich erst einmal Einstimmigkeit über die Begrifflichkeiten (wann ist ein Klon ein Klon etc) geschaffen werden müßte. Ich habe auch festgestellt, daß es ein sehr emotionsgeladenes Thema ist, das auch leicht "außer Kontrolle" geraten kann.

Was Vasiks Aussage zu Rybka 3 betrifft, habe ich da jetzt mittlerweile ziemlich "üble" Statements in anderen Foren gelesen, von denen ich ehrlich gesagt nicht weiß, was ich davon halten soll. Daß Larry Kaufman das Team verlassen hat und sich anderen Projekten widmet, halte ich authentisch, ebenso, daß Vasik Rajlich derzeit wohl mehr an OTB Schach interessiert ist, denn ob er an diesen Turnieren tatsächlich teilgenommen hat, kann/konnte ja überprüft werden - und sich dann zu fragen: Tja, wer macht denn nun derzeit überhaupt etwas an R4 halte ich schon für legitim.

Aber all die Anwürfe, die jetzt plötzlich an die Oberfläche gespült werden, die nicht nur Rybka und Vasik Rajlich, sondern schon fast die ganze Computerschachszene in einem derart schlechten Licht erscheinen lassen, so daß man bei Lektüre glaubt mitten in einem Kriminalroman zu sein, entsetzt mich jetzt doch etwas. Dabei handelt es sich eigentlich nur um Anspielungen, ohne jede Beweisführung, was micht jetzt auch nicht wirklich wundert - aber auch Gerüchte - ich will jetzt nicht sagen, haben "irgendwo" und "irgendwie" schon einen wahren Kern, nein, aber eine Ursache. Will sagen: Wenn jemand ein Gerücht in die Welt setzt, dann verfolgt er doch ein bestimmtes Ziel damit - und die Frustration, daß Rybka 4 nicht einmal in Sicht ist, plus der angekündigte Ärger über eine "Miet-Version" kann doch nicht der alleinige Grund für solch üble Anspielungen sein, zumal auch von Leuten, die ich nicht als unsachlich in Erinnerung habe.

Und auch im Rybka-Forum "fleht" man ja schon fast darum, daß Vasik etwas sagen soll, aber statt daß er nun die Dinge, die seine Kunden so frustrieren klar stellt, wie "Okay, ich kann jetzt nicht genau sagen, wann ihr R4 haben könnt, aber es kommt definitiv noch in diesem Halbjahr - und mit dem R3-Code, das habe ich so und so gemeint - und das mit dem Turnier, Mensch, ich will halt auch mal GM werden ..." oder ähnlich. Aber nichts, gar nichts. Eisiges Schweigen. Das ist doch nicht klug, oder?

Mike
Parent - By Peter Martan Date 2010-02-11 08:00
[quote="Thomas Mayer (Quark)"]
Also wenn wir z.B. Ippolit und dessen Nachfolger nehmen, können die meiner Meinung nicht aus einer Kopie des Source-Codes hervorgegangen sein weil denen schlichtweg der Source-Code nicht vorlag. Die Form allerdings, in denen sich die ersten Ippolit-Versionen präsentierten sieht in Teilen stark nach einem maschinenerzeugten Code aus, meiner Ansicht besteht daran kein Zweifel. Wäre die Ursprungsquelle Rybka hätten wir hier quasi eine Übersetzung des Rybka-Assembler codes, generiert durch einen Assembler zurück in einen C-Code. Wohl war es zu aufwendig den ganzen Code zu entschlüsseln, in den Bereichen UCI-Schnittstelle usw. macht das auch kein allzugroßen Sinn, also hat man den Rest drumherum gebastelt. Dies ist jedenfalls eine denkbare Variante, der ich mich anschließe, d.h. ich gehe bei Ippolit und Co. eindeutig von einem Clone / Plagiat aus.
[/quote]

Danke, Thomas!
Dann will ich auch von diesen deinen Einschätzungen ausgehen und mich nicht weiter mit den natürlich noch unwahrscheinlicheren Möglichkeiten beschäftigen, wie jemand an die Origianlsourcen gekommen sein könnte.
Nich ganz so unwahrscheinlich vielleicht noch, dass Ippo außer von anderen engines, von denen vielleicht auch Originalcode vorhanden war, vielleicht sogar neben den auch von den Comrades genannten, vom Original- Fruit- Code ausging?
Immerhin hat Juri Ossipov das damals von Strelka ja auch behauptet und es wurde ihm bis heute nicht schlüssig widerlegt, soviel ich weiß.
Oder etwas dazwischen drin: nicht erst seit Strelka ist der Verdacht, Rybka- Versionen seien disassembliert worden, immer wieder aufgekommen. Dass derartige Code- Fetzen längst durchs Netz gegeistert sind und jetzt in diesem Gemeinschaftsprojekt, von wem auch immer geleitet, in Ippo kumuliert sind, scheint mir auch irgendwie erfolgversprechender, wenn man ein Gerüst wie den aufgeräumten und gut funktionierenden Fruit zusätzlich hat, nein?
Ich wünsche mir insgeheim allerdings immer noch, Vas selbst habe den Deal seines Lebens gemacht, indem er einem Bieterkonsortium die vorletzte Rybkaversion, vielleicht sogar in etwas von ihm selbst verschlüsselter Form verkauft hat und sich jetzt zurücklehnen kann, die GM- Karriere vorantreiben und in Ruhe abwarten, bis sich alle Konkurrenten in Ippo verrant haben mit ihren Programmen, damit eine völlig anders tickende R4 wieder abgehoben von allen Gegnern aufspielen kann, umso mehr, als die eigentliche Speerspitze davon ohnehin nur als Cluster und Mietversion funktioniert.
Auch ohne entsprechendes Entgelt wäre das ein brillanter Schachzug denen gegenüber, die sich immer noch aufregen, dass er seinerzeit vielleicht auch mehr von Fruit übernommen habe, als Ideen im Wert von 20 Elo, wenn auch einem GPL- code, von dem natürlich das Entlehnen und umschreiben moralisch wie rechtlich immer noch eine Nummer anders zu bewerten wäre als echtes Raubkopieren, würde er damit ein für alle Mal seine Bringschuld allen diesbezüglichen Kritikanten nobel zurückgezahlt haben.
Parent - By Benno Hartwig Date 2010-02-11 13:26
[quote="Thomas Mayer (Quark)"]Soweit für heute mal, je nachdem wie die Diskussion verläuft kann ich die angedrohte längere Ausführung noch folgen lassen.[/quote]Ich hoffe nun, dass wir dich nicht erst mit einer entsprechenden Diskussion 'kitzeln' müssen.
Wenn du zu dieser Problematik oder auch zu anderen Computerschachthemen eine längere Ausführung präsentierst, so wird die sicher von wohl den meisten hier mit großem Interesse gelesen.
Nur zu.
Vielleicht wird nicht jeder bei jedem deiner Statements zustimmen wollen, deine Meinung lesen wird vermutlich aber jeder hier gern wollen.
Und vielleicht dann auch doch manches besser verstehen.

Benno
Parent - - By Alex Schmidt Date 2010-02-11 16:44
[quote="Thomas Mayer (Quark)"] Die Form allerdings, in denen sich die ersten Ippolit-Versionen präsentierten sieht in Teilen stark nach einem maschinenerzeugten Code aus, meiner Ansicht besteht daran kein Zweifel.[/quote]

Die Frage ist nur, warum der Code so aussieht.

Die Unterschiede zwischen Ippo und Rybka sind so groß, dass es sehr unwarscheinlich ist, dass ein dekompilierter Rybka mit dem unleserlichen code so stark verändert wurde dass sich die Engine a) ganz anders verhält, und b) sogar stärker spielt.

Vieleicht wollte der Programmierer etwas anderes verstecken, oder er hat es aus "Spass" gemacht um die Reaktionen zu beobachten. Darauf deutet auch diese seltsame webseite hin...
Parent - - By Thomas Mayer (Quark) Date 2010-02-11 23:39
Hallo Alex,

[quote="Alex Schmidt"][quote="Thomas Mayer (Quark)"] Die Form allerdings, in denen sich die ersten Ippolit-Versionen präsentierten sieht in Teilen stark nach einem maschinenerzeugten Code aus, meiner Ansicht besteht daran kein Zweifel.[/quote]

Die Frage ist nur, warum der Code so aussieht.

Die Unterschiede zwischen Ippo und Rybka sind so groß, dass es sehr unwarscheinlich ist, dass ein dekompilierter Rybka mit dem unleserlichen code so stark verändert wurde dass sich die Engine a) ganz anders verhält, und b) sogar stärker spielt.[/quote]

wie bitte definierst Du "großer Unterschied" ? Ich glaube der ist nicht annähernd so groß wie Du annimmst.

[quote="Alex Schmidt"]Vieleicht wollte der Programmierer etwas anderes verstecken, oder er hat es aus "Spass" gemacht um die Reaktionen zu beobachten. Darauf deutet auch diese seltsame webseite hin... [/quote]

komm schon Alex, das ist doch wirklich Unsinn. Weißt Du was die ganzen "Weiterentwicklungen" des Ur-Ippolits vor allem machen ? Den Code in eine sinnvolle, lesbare Form zu bringen. Das wäre ein Kinderspiel wenn doch - wie Du vermutest - ein lesbarer Code sowieso existiert, die original-Ippo-Crew ist ja angeblich immer noch bei der Weiterentwicklung involviert. Jedenfalls entsteht ein Schachprogramm nicht so wie die da uns das weißmachen wollen.

Gruß, Thomas
Parent - By Alex Schmidt Date 2010-02-12 17:09
[quote="Thomas Mayer (Quark)"]wie bitte definierst Du "großer Unterschied" ? Ich glaube der ist nicht annähernd so groß wie Du annimmst.[/quote]

Über die Unterschiede hab ich ja schon viel geschrieben. Features, Endspielwissen, UCI protokoll, usw. Aber warum soll ich nach Unterschieden suchen wenn niemand in der Lage ist wirkliche Ähnlichkeiten aufzuzeigen abseits von der Bewertung?

Würdest Du dir zutrauen aus einem decompilierten Rybka code noch mal 50-100 ELO Punkte rauszukitzeln?

[quote="Thomas Mayer (Quark)"][quote="Alex Schmidt"]Vieleicht wollte der Programmierer etwas anderes verstecken, oder er hat es aus "Spass" gemacht um die Reaktionen zu beobachten. Darauf deutet auch diese seltsame webseite hin... [/quote]

komm schon Alex, das ist doch wirklich Unsinn. Weißt Du was die ganzen "Weiterentwicklungen" des Ur-Ippolits vor allem machen ? Den Code in eine sinnvolle, lesbare Form zu bringen. Das wäre ein Kinderspiel wenn doch - wie Du vermutest - ein lesbarer Code sowieso existiert, die original-Ippo-Crew ist ja angeblich immer noch bei der Weiterentwicklung involviert. [/quote]

Ich "vermute" nicht, ich zeige Möglichkeiten auf. Nicht jeder decompilierte code muss von Rybka kommen. 

Alex
Parent - - By Dieter Eberle Date 2010-02-11 23:52
Hallo zusammen,
sie könnten auch das eigene Programm dekompiliert haben, damit der code für Vasik - Ihren erklärten Feind - unleserlich wird. Es ist dann zwar open source, aber schwer verwertbar.
Anderenfalls säße Vasik auf Dauer wohl am längeren Hebel.
Gruß,Dieter
Parent - - By Benno Hartwig Date 2010-02-12 12:59 Edited 2010-02-12 13:07
[quote="Dieter Eberle"]sie könnten auch das eigene Programm dekompiliert haben, damit der code für Vasik - Ihren erklärten Feind - unleserlich wird.[/quote]Wenn es eigener Code wäre, dann müssten sie ihn ja gar nicht veröffentlichen, wenn sie dazu keinen Bock haben. Mit der spielstarken EXE auftrumpfen könnten sie trotzdem.
Freeware, aber nicht open source. Oder sogar nicht mal Freeware.
Mit dem offenen Code bieten sie aber tatsächlich Angriffspunkte, die aber für einen auch nur etwas öffentlichen Angriff bislang nicht genutzt wurden.
Wobei: Robbolito- und Ippolit-Code war offen, Firebird soweit ich weiß nicht. ("Skandal, Open-Source-Verletzung!" )
Benno
Parent - By Dieter Eberle Date 2010-02-12 13:19
Closed source für ein freies Programm wäre denen auch schon zu kapitalistisch, Benno.
Dass der Firebird-Code fehlt, ist mir noch gar nicht aufgefallen.
Gruß, Dieter
Parent - By Dieter Eberle Date 2010-02-12 17:27
Hallo Benno,
die Ippolit/Igorrit/Ivanhoe Autoren haben wenig Sinn für kapitalistisches Teufelszeug wie Softwarelizensen.
Ippolit, Igorrit und Ivanhoe sind public domain, d.h. im Grunde ungeschützt.
Norman Schmidt hatte Robbolito unter die GPL gestellt. Es gab eine kleine Kontroverse und Norman Schmidt
wollte zunächst ohne GPL nicht weitermachen, hat sich das dann aber anders überlegt.
Firebird steht nicht unter der GPL und ist auch nicht mehr open source, so wie es aussieht.
Gruß, Dieter
Parent - - By Alex Schmidt Date 2010-02-11 17:03
[quote="Michael Waesch"]
[quote="Alex Schmidt"]
Und zu guter letzt gilt immernoch der Grundsatz: Im Zweifel für den Angeklagten.
[/quote]

Grundsätzlich wahr - scheint aber auf Playchess nicht zu gelten. Meines Wissens nach werden Leute, die da mit RobboLito spielen wollen "gekickt"...[/quote]

Hinter Rybka und Chessbase stehen ja eindeutig kommerzielle interessen. Und die einfachste Erklärung für eine dermaßen starke Freeware Engine ist eben: Es ist ein Clone...
Parent - - By Michael Waesch Date 2010-02-11 23:18
Verstehe ich. Meine Frage, bzw. mein Einwand zielt auch eher in die Richtung: Dürfen die das denn ?

Mike
Parent - - By Alex Schmidt Date 2010-02-12 17:02
[quote="Michael Waesch"]
Verstehe ich. Meine Frage, bzw. mein Einwand zielt auch eher in die Richtung: Dürfen die das denn ?

Mike
[/quote]

Hausrecht...
Parent - By Michael Waesch Date 2010-02-12 23:08
Seit wann steht ein "Hausrecht" über dem Gleichbehandlungsgrundsatz? Immerhin ist es ja ein öffentlicher Server ...

Mike
Parent - - By Olaf Jenkner Date 2010-02-10 22:37
[quote="Michael Waesch"]
Die einfachste hiervon ist vermutlich auch eine der ältesten: BASIC - und deswegen heißt sie auch so: Beginners All Purpose Instruction Code.
[/quote]

BASIC ist eine der neuesten Programmiersprachen, wenn man vom Internetkram mal absieht.

[quote="Michael Waesch"]
Um die ganze Sache billig zu halten, kommt BASIC meist mit einem "Interpreter" daher, der einfach während der Programmausführung Zeile für Zeile liest, sie in Maschinensprache übersetzt und sofort ausführt. Dieses "Übersetzen" kostet aber Zeit, weshalb ein Interpreter-Schachprogramm quälend langsam wäre - und darüber hinaus noch den Nachteil hätte, daß man den Basis-Code nicht für sich behalten kann.

Deswegen gibt es die sog. "Compiler", die ein Programm als ganzen einmal in Maschinensprache übersetzen und diese für den Computer sofort ausführbare Datei in einer "EXE" speichern. Diese *.exe-Datei enthält nun keinen Klartext mehr, so daß ein anderer Programmierer damit erst einmal nichts anfangen kann.
[/quote]

Umgekehrt wird ein Schuh draus: Von Anfang an gab es Compiler, Interpreter wurden erst viel später entwickelt.
Im Fall von BASIC ist es wohl so, daß diese Sprache von Anfang an als Interpretersprache konzipiert war.
Ich wollte damit darauf hinweisen, daß die Formulierung "Deswegen..." nicht korrekt ist.

OJe
Parent - By Michael Waesch Date 2010-02-10 23:37
Vielen Dank für die Klarstellung. Ich bezog mit BASIC auch eher auf den Privatbereich. Ansonsten hatten wir im Anwendungsprogrammierer-Bereich auch eher COBOL und PL1 - und das waren dann auch Compiler-Sprachen. Ich erinnerte mich dann eben daran, daß, als Basic dann für "Heim-Computer" zu haben war, meist zunächst als Interpreter daherkamen und später dann die Compiler dazu. Und auf dem guten alten "Brotkasten" habe ich auch ab und an in Assembler programmiert. Damals waren die Computer doch noch recht einfach "gestrickt" und hatten wenig Speicher, was durchaus zu einer effizienten Programmierung zwang. Heutzutage hört man oft, daß man sich halt "´nen schnelleren Rechner kaufen soll", wenn Software zu langsam läuft. Und das wird dann auch meist so gehandhabt und niemand stellt die Forderung an die Programmierer, zeitkritische Routinen "sauberer" zu programmieren. Ich bin auch generell der Ansicht, daß der Kunde sich heutzutage einfach zu viel gefallen läßt.

Auf den Bereich den Computerschachs trifft die Aussage, bezüglich der Geschwindigkeit nicht so zu, da auch hier sehr gefeilt werden muß, um konkurrenzfähig zu bleiben.

Mike
Parent - - By Benno Hartwig Date 2010-02-11 13:45
[quote="Michael Waesch"]Um die ganze Sache billig zu halten, kommt BASIC meist mit einem "Interpreter" daher, der einfach während der Programmausführung Zeile für Zeile liest, sie in Maschinensprache übersetzt und sofort ausführt. Dieses "Übersetzen" kostet aber Zeit, weshalb ein Interpreter-Schachprogramm quälend langsam wäre [/quote]BTW:
die Rechner sind verdammt fix. Auch wenn das Interpretieren einige Zeit kostet (welcher Faktor ggü. einem Compilat eines C-Programms? 10 oder so?) so wäre solch eine interpretierte Rybka3 auf BASIC-Basis für mich vermutlich immer noch vor allem quälend stark und nicht qualend langsam.
Faktor 10 ist gut 3 mal verdoppelt. Rybka wäre also weniger als 300 ELO schwächer. Und entsprechend stark eben doch.

Ein vergleichsweise simples (aber sehr gut erklärtes) Schachprogramm wurde seinerzeit auf C64 von Data Becker im Buch 'Das große Schachcomputerbuch' vorgestellt (Ich hoffe, die Erinnerung an den Namen ist korrekt). Die elementaren Techniken wurden da richtig schön beschrieben, naja, die damals in den 80ern etablierten.
Der C64 interpretierte sicher quälend langsam, das Matt in 2 dauerte schon. Compiliert ging es schneller, aber so ein richtiger Bringer war es trotzdem nicht.
Wurde solch ein Programm eigentlich mal auf die PC-Welt übertragen?

Heute könnte man an vbscript denken.
Kennt jemand ein in vbscript geschriebenes Schachprogramm?
Das Programm wäre dann eine oder mehrere Textdateien, die auf jedem Windows-Rechner modifiziert und 'ausgeführt' werden könnten.

Benno
Parent - - By Michael Waesch Date 2010-02-11 23:17
Das ist jetzt in der Tat schwierig zu beurteilen, weil die Interpreter-Laufzeiten und die eines Compilers wohl von den verschiedensten Faktoren abhängig sind - und die heutigen Rechner, gemessen an denen damals, doch blitzschnell sind. BASIC war auf dem C-64 in der Tat ätzend langsam, weshalb ich zeitkritische Sachen dann in Assembler gemacht habe. Ich glaube auch, daß es beim C-64 auch möglich war, BASIC und Assembler zu kombinieren und die einzelnen Maschinensprache-Bereiche dann mittels eines Befehls aus Basic heraus aufzurufen (SYS xxxxx glaub ich).

Danach hatte ich einen Amiga und hatte mal ein Basic-Interpreter-Programm geschrieben, das 20 Thumbnails aus größeren Bildern errechnen sollte. Ich hab´s dann zum Spaß einfach mal mit Interpreter laufen lassen, was 6 1/2 Stunden dauerte. Compiliert brauchte es dann immer noch so 1 1/2 Stunden - und nach eingehender rigoroser Anpassung an den Compiler (Speicherplatz und rechenzeit-optimiert) dann noch ca. 20 Minuten.

Ich bin mir jetzt nicht sicher, ob C-64 oder Amiga-Programme jemals in PC-Code portiert wurden. Ich nehme mal an, daß man eher Emulatoren benutzt hat, um das Gros der alten Programme dort, ohne größere Änderungen, wieder abspielen zu können.

Macht man mit alten "Dosen-Programmen", wo Kompatibilität nicht klappt, ja auch so, mit mäßigem Erfolg (und teils erheblichem Aufwand).

Mike
Parent - By Lasser Juergen Date 2010-02-12 17:44
Servus Thomas
Deine vermutung kann natürlich stimmen, Und deine ausführungen klingen auch sehr Plausibel.
Ich habe nur eine Frage die mich beschäftigt. Vas der Superentwickler, der aus Rybka innerhalb weniger Wochen, nach Fabien Letouzey Open Source veröffentlichung aus einer Engine die am Anfang mehr schlecht als Recht gespielt hat und nun alle Ranglisten anführt könnte doch einen kleinen Kreis von vertrauten Profis wie z.B Bob Hyatt die Sourcen zeigen. Die dann der Breiten Masse verkünden könnten Robbo, Ippo usw sind geklaute  Sourcen von Rybka. Aber das möchte man ja nicht man  hat bestimmt seine Gründe dafür, Einer könnte sein das ganz viel Fruchtsaft in Rybka steckt 
Mfg
   Jürgen
Up Topic Hauptforen / CSS-Forum / Für Frank - Ein Good-Will Thread

Powered by mwForum 2.29.3 © 1999-2014 Markus Wichitill