Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: Clones and moral behavior

Author: rasjid chan

Date: 19:15:55 08/24/05

Go up one level in this thread


On August 24, 2005 at 16:21:39, José Carlos wrote:

>On August 24, 2005 at 12:47:37, Bo Persson wrote:
>
>>On August 23, 2005 at 16:50:48, José Carlos wrote:
>>
>>>  I agree with you and Uri about there's no clear definition of what a clone is.
>>
>>Of course there is, if you have copied the code it's a clone. If you have
>>written it yourself, it is original.
>>
>>
>>>"Having source code of other engines" is miles away from clear. Example: I have
>>>in my code:
>>>
>>>int i = 0;
>>>
>>>  Either it is in some prior program (I'm a cloner) or in some later program (he
>>>cloned me -early versions of Averno were open source-).
>>
>>Yes, but did you think of this line yourself, or did you paste it from another
>>program?
>
>
>  For sure I didn't invent that line myself. I've seen it many times in other
>programs.
>
>
>>>  Of course copying that line is not cloning.
>>
>>Of course it is!!
>
>
>  Come on! You can't expect people inventing C language everytime. Of course
>I've copied that line. I learnt it in the university, I didn't figure it out
>myself. And of course I'm not a cloner for that.
>
>
>>If you copied the code, you know it's a clone. The only problem is to prove that
>>when the cloner lies about it.
>>
>>There is a difference between whether someting is true or false, and if you can
>>prove that. The cloner knows. It's much harder for everyone else.
>
>
>  If I take an open source program, make some small changes and release it, I
>know I'm a cloner. But if I study crafty and then I implement rotated
>bitboards... am I a cloner? I honestly say I don't know.
>
>
>>>But then, what is cloning? Copying
>>>5 lines? 10? 100? Only some specific lines? Maybe some "magic" numbers in
>>>evaluation?
>>
>>Copying or retyping other code is cloning. Writing it yourself is not. Very
>>simple!
>>
>>>  So please, if someone has an exact definition, post it here.
>>
>>"Copying or retyping other code is cloning. Writing it yourself is not." :-)
>
>
>  Read above. People learn programming from others. People use instructions they
>have learnt before. Then, everybody are cloners?
>
>
>>>  BTW, I strongly disagree about everyone's tempted to clone. What's the fun of
>>>seing other people's creating winning games? What is really fun for me is seeing
>>>_my_ creation winning games. I'll never be able to understand what anyone can
>>>get from copying other's work.
>>
>>
>>The same reason some athletes use doping. You might win the competition!
>                                           ^^^
>
>  You? Well, it's debatable in the case of athletes, but if you copy a chess
>program you have to be very good at lying yourself to really think _you_ are
>winning the competition.
>  Damn me, I still don't undestand...

...You can understand. I think Bo persson is testing your wit.

Bo Persson defined:-
"Copying or retyping other code is cloning. Writing it yourself is not."

This definition is as close as cloning may be defined and I think it is clear
if you read it carefully - ...copying and retyping other code ...

It says only on what cloning is and nothing else -like whether everyone
inevitably had to do some cloning or when some cloning is trivial. Fruit 1.0 has
pawn structure evaluation almost like that of TSCP (it is said so ...). Fabien
could not have written Fruit 2.1 without reading the ideas from the internet or
elsewhere.

My Snailchess implementation of pawn structures and pawns shelter for kings
use the same factors in TSCP and retains the same function names but it is not
cloning as there is no copying and retyping, only implementing the ideas. I use
bitfiles and am not sure myself where mine differs from that of TSCP.

Uri wrote:-

"I think that even if you copied the following function from tscp that is about
counting time your program is not a clone"

int get_ms()
{
	struct timeb timebuffer;
	ftime(&timebuffer);
	if (timebuffer.millitm != 0)
		ftime_ok = TRUE;
	return (timebuffer.time * 1000) + timebuffer.millitm;
}

Wrong?

By Persson's definition it is downright cloning - only it is trivial.
It is cloning if we retype and copy by reading the code at the same time.
It is not cloning if you remember how it is done in TSCP and it is done through
understanding and even if you happen to do an exact replica.

Rasjid Chan


>
>  José C.
>
>
>
>>Bo Persson



This page took 0 seconds to execute

Last modified: Thu, 15 Apr 21 08:11:13 -0700

Current Computer Chess Club Forums at Talkchess. This site by Sean Mintz.