could somebody please explain why reverse engineering wrong

Discussion of anything and everything relating to chess playing software and machines.

Moderator: Ras

BubbaTough
Posts: 1154
Joined: Fri Jun 23, 2006 5:18 am

Re: could somebody please explain why reverse engineering wr

Post by BubbaTough »

alpha123 wrote:
The author(s) cared about strength, not stability and features.

Peter
I understand your perspective, but I find that most engine authors consider pondering, time management, and stability strength issues. Exceptions to this are more often to occur in lower level engines, not higher ones...where the hunt for ELO rarely ignores things like not forfeiting on crashes or not pondering, or having bad time management.

Its not impossible that authors of an extremely strong program building it from scratch would not care about these issues, but it would be very very unusual.

-Sam
alpha123
Posts: 660
Joined: Sat Dec 05, 2009 5:13 am
Location: Colorado, USA

Re: could somebody please explain why reverse engineering wr

Post by alpha123 »

BubbaTough wrote:
alpha123 wrote:
The author(s) cared about strength, not stability and features.

Peter
I understand your perspective, but I find that most engine authors consider pondering, time management, and stability strength issues. Exceptions to this are more often to occur in lower level engines, not higher ones...where the hunt for ELO rarely ignores things like not forfeiting on crashes or not pondering, or having bad time management.

Its not impossible that authors of an extremely strong program building it from scratch would not care about these issues, but it would be very very unusual.

-Sam
Well, the authors are quite unusual :).
I understand your perspective, but I find that most engine authors consider pondering, time management, and stability strength issues.
Agreed. However, it seems Ippolit authors are not like most engine authors.

Peter
djbl

Re: could somebody please explain why reverse engineering wr

Post by djbl »

Albert Silver wrote:
John Conway wrote:
michiguel wrote:
John Conway wrote:
Albert Silver wrote:
John Conway wrote:
Volker Pittlik wrote:
djbl wrote:i have been thinking about ths lately, and i am not even sure why reverse engineering an engine (in this case) is so wrong. when something comes along that is such an improvement on its predecessors it seems only natural to me that people would want to figure out how it is working, and to look to make improvements on said engine. is this not the basis of all technological advancements?
i have been thinking about this lately, and i am not even sure why stealing money (in this case) is so wrong. when someone comes along who is so much richer than other people it seems only natural to me that people would want take all his money, and to look to make more out of it. is this not the basis of all respectable entrepreneurship?

vp


And what if the reason he is so rich is because he got my money under false pretences by promising a free update/bugfix which he never delivered?
I think that argument is ridiculous. I have never bought an engine *because* of a possible update. This would imply the engine was starting much worse than I wanted, and I was paying in the hopes it might fulfill my expectations. Rybka 3 came with a HUGE 100 Elo improvement of Rybka 232a, which was still, at that time, the strongest engine around by far, with only Naum4 even competitive. It is sold in 3 formats: CB, Aquarium, and of course the pure UCI engine.

AFAIK, the first two make no claims whatsoever of any updates, and it is essentially a WYSIWYG, so buyers who purchased one of those certainly had no expectations other than the engine being what it claimed to be: the strongest engine in the world by far, which it was.

I have been buying engines and chess programs for a LONG time. My first non-streamline engine (i.e. not Chessmaster and co., and not a standalone like my Excel 68000) was Mchess. It was *very* expensive, but as also king on a 386. Then followed Chess Genius, Fritzs, Hiarcs, and many others. As any enthusiast, I followed the results, and if the engine was at least competitive with the top brass, as per published results (SSDF was king then), it would appear on my To Buy list. With a bit of luck, they would be added to my Owned Engines list.

In all these years, the engine that came with the single largest Elo edge, not attributed to hardware, was Fritz 5. When it appeared on SSDF with a monstrous 70+Elo edge over number 2, it was a bit of a shock. 70 Elo.... wow. On average, a super successful new release would come with 40 Elo over previous versions AT MOST. Many times not even that. Shredder 8 had exactly zero elo over 7.04 despite the ply count showing it was reaching 4-5 plies more than its predecessor. In terms of outdoing its promises, and enormously so, Rybka is the undisputed king. Each version 100 Elo or so over the previous one, and all the while maintaining an enormous lead over the others. It is simply unheard of. Rybka 3 was no different, and fulfilled the Elo edge as well as the complaints that earlier Rybkas were quite weak at king attacks and finding combinations.

If you wish to claim that you would have preferred to be using Ryba 232a or another even weaker engine all this time, feel free, but I won't believe you.
I buy a car. It doesn’t run smoothly (although it has more power than last year’s model). The manufacturer can’t or won’t fix it. So I do some reverse engineering and I improve the fuel injection system. The car now runs much smoother and has more power too. I now publish free of charge information about the modification for the benefit of other owners of this model of car. Is the ethically wrong?
This analogy would resemble the current issue if RL was made available to R3 users only. To follow this, you are making the *actual car* available for download so everybody can have a free one and screw the competition.

Miguel
No. I said I publish the information (source code). I don't make the *actual car* available. :roll:
Right, the source code is the car (the engine). Now, is this fixed source code only available to Rybka buyers? Or will everyone now be able to use this fixed Rybka even if they are not legitimate owners of it?
no, not only rubka customers, if this improvewment you made to a car can be applied to other models then this is fine, in this case other engines.
User avatar
slobo
Posts: 2331
Joined: Mon Apr 09, 2007 5:36 pm

Re: could somebody please explain why reverse engineering wr

Post by slobo »

CRoberson wrote:
alpha123 wrote:
michiguel wrote:
F.Huber wrote:
CRoberson wrote: Not really. He could decompile and recompile. In that case, all would be in one source file. Hmm, that is exactly what IPPO is - all one source file.
Nobody writes that much code in one source file especially when it is a group of people working together simultaneously.
But also nobody would then remove such important features like e.g. multiPV or SMP support - what sense should that make?

PS, I forgot one more: EGTB support.
Maybe it was RE what they could, rather than the whole program removing parts of it.
If you are trying to RE a strong engine, once you figure out search() and eval(), which is the core of the program strength, you leave the rest of the mess out. Since you ask about sense, did you wonder why such a strong engine showed up with stability problems, time management issues, and no pondering?

Miguel
The author(s) cared about strength, not stability and features.

Peter
You can't have a strong chess program without being able to test it. Stability gives you the ability to test it. So, a program that is strong
but could not be tested during development could not get that strong on its own without some sort of external source to copy.
If it is so clear and so simple, why Vasic don't provide evidences that Ippo/Robbo/Igo/Ivan/FB are Rybka's reversed engineering derivates?

Why do you take our time with this endless bla-bla-bla ?
"Well, I´m just a soul whose intentions are good,
Oh Lord, please don´t let me be misunderstood."
Milos
Posts: 4190
Joined: Wed Nov 25, 2009 1:47 am

Re: could somebody please explain why reverse engineering wr

Post by Milos »

CRoberson wrote: You can't have a strong chess program without being able to test it. Stability gives you the ability to test it. So, a program that is strong but could not be tested during development could not get that strong on its own without some sort of external source to copy.
You are wrong. All you need is a cluster. Bob has it, Vas has it, why do you think these guys don't have it???
Igor (one of three authors) even states on few occasions that he does a lot of testing on some university cluster.
User avatar
michiguel
Posts: 6401
Joined: Thu Mar 09, 2006 8:30 pm
Location: Chicago, Illinois, USA

Re: could somebody please explain why reverse engineering wr

Post by michiguel »

Milos wrote:
CRoberson wrote: You can't have a strong chess program without being able to test it. Stability gives you the ability to test it. So, a program that is strong but could not be tested during development could not get that strong on its own without some sort of external source to copy.
You are wrong. All you need is a cluster. Bob has it, Vas has it, why do you think these guys don't have it???
Igor (one of three authors) even states on few occasions that he does a lot of testing on some university cluster.
In the development stage, you cannot test efficiently if your engine is not stable, no matter how powerful you hardware is. That was Charles' point.

Miguel
John Conway
Posts: 161
Joined: Wed Jul 11, 2007 1:44 pm

Re: could somebody please explain why reverse engineering wr

Post by John Conway »

Albert Silver wrote:
John Conway wrote:
michiguel wrote:
John Conway wrote:
Albert Silver wrote:
John Conway wrote:
Volker Pittlik wrote:
djbl wrote:i have been thinking about ths lately, and i am not even sure why reverse engineering an engine (in this case) is so wrong. when something comes along that is such an improvement on its predecessors it seems only natural to me that people would want to figure out how it is working, and to look to make improvements on said engine. is this not the basis of all technological advancements?
i have been thinking about this lately, and i am not even sure why stealing money (in this case) is so wrong. when someone comes along who is so much richer than other people it seems only natural to me that people would want take all his money, and to look to make more out of it. is this not the basis of all respectable entrepreneurship?

vp


And what if the reason he is so rich is because he got my money under false pretences by promising a free update/bugfix which he never delivered?
I think that argument is ridiculous. I have never bought an engine *because* of a possible update. This would imply the engine was starting much worse than I wanted, and I was paying in the hopes it might fulfill my expectations. Rybka 3 came with a HUGE 100 Elo improvement of Rybka 232a, which was still, at that time, the strongest engine around by far, with only Naum4 even competitive. It is sold in 3 formats: CB, Aquarium, and of course the pure UCI engine.

AFAIK, the first two make no claims whatsoever of any updates, and it is essentially a WYSIWYG, so buyers who purchased one of those certainly had no expectations other than the engine being what it claimed to be: the strongest engine in the world by far, which it was.

I have been buying engines and chess programs for a LONG time. My first non-streamline engine (i.e. not Chessmaster and co., and not a standalone like my Excel 68000) was Mchess. It was *very* expensive, but as also king on a 386. Then followed Chess Genius, Fritzs, Hiarcs, and many others. As any enthusiast, I followed the results, and if the engine was at least competitive with the top brass, as per published results (SSDF was king then), it would appear on my To Buy list. With a bit of luck, they would be added to my Owned Engines list.

In all these years, the engine that came with the single largest Elo edge, not attributed to hardware, was Fritz 5. When it appeared on SSDF with a monstrous 70+Elo edge over number 2, it was a bit of a shock. 70 Elo.... wow. On average, a super successful new release would come with 40 Elo over previous versions AT MOST. Many times not even that. Shredder 8 had exactly zero elo over 7.04 despite the ply count showing it was reaching 4-5 plies more than its predecessor. In terms of outdoing its promises, and enormously so, Rybka is the undisputed king. Each version 100 Elo or so over the previous one, and all the while maintaining an enormous lead over the others. It is simply unheard of. Rybka 3 was no different, and fulfilled the Elo edge as well as the complaints that earlier Rybkas were quite weak at king attacks and finding combinations.

If you wish to claim that you would have preferred to be using Ryba 232a or another even weaker engine all this time, feel free, but I won't believe you.
I buy a car. It doesn’t run smoothly (although it has more power than last year’s model). The manufacturer can’t or won’t fix it. So I do some reverse engineering and I improve the fuel injection system. The car now runs much smoother and has more power too. I now publish free of charge information about the modification for the benefit of other owners of this model of car. Is the ethically wrong?
This analogy would resemble the current issue if RL was made available to R3 users only. To follow this, you are making the *actual car* available for download so everybody can have a free one and screw the competition.

Miguel
No. I said I publish the information (source code). I don't make the *actual car* available. :roll:
Right, the source code is the car (the engine). Now, is this fixed source code only available to Rybka buyers? Or will everyone now be able to use this fixed Rybka even if they are not legitimate owners of it?
Yes, but its not a fixed Rybka, its an engine developed by reverse engineering Rybka, and this engine developed from Rybka gets fixed.
Milos
Posts: 4190
Joined: Wed Nov 25, 2009 1:47 am

Re: could somebody please explain why reverse engineering wr

Post by Milos »

michiguel wrote:In the development stage, you cannot test efficiently if your engine is not stable, no matter how powerful you hardware is. That was Charles' point.
Making stable engine you can do even on a single machine, or with a very small group of beta testers. For making it strong though, you need a lot of resources. For making it strong in short time, you need a cluster...
djbl

Re: could somebody please explain why reverse engineering wr

Post by djbl »

any discussion of this subject is going nowhere while ppl continously refer to certain engines as clones, or reverse engineered rybka, when we have no proof, yet, that this is the case. it is speculation presented as fact, until we have proof ppl should stop referring to certain engines as rybka clones and stop constructing their arguments solely on that (unproven) premise. in fact the original question had nothing to do with rybka at all, it was a simple ethical question as to why reverse engineering is so wrong. so far i have heard a lot about money (never asked) and a lot about rybka (never mentioned).
User avatar
michiguel
Posts: 6401
Joined: Thu Mar 09, 2006 8:30 pm
Location: Chicago, Illinois, USA

Re: could somebody please explain why reverse engineering wr

Post by michiguel »

Milos wrote:
michiguel wrote:In the development stage, you cannot test efficiently if your engine is not stable, no matter how powerful you hardware is. That was Charles' point.
Making stable engine you can do even on a single machine, or with a very small group of beta testers. For making it strong though, you need a lot of resources. For making it strong in short time, you need a cluster...
A cluster is useless if the engine crashes in every node after a give number of games. In fact, Bob tried to use Ippolit before in his tests and abandoned the idea because it was messing the whole thing up.

Miguel