Author: Heiner Marxen
Date: 09:19:07 10/14/01
Go up one level in this thread
On October 14, 2001 at 06:30:03, Uri Blass wrote:
>On October 14, 2001 at 03:34:03, Slater Wold wrote:
>
>>GPL is a good idea, in theory.........
>>
>>
>>Whenever you publish your code, no matter what "license" you put under it, there
>>is a serious threat that it's going to be hacked.
>>
>>2 good examples:
>>
>>Crafty: Without a doubt, the best open source chess project in the world. This
>>is not distributed under the GPL (as far as I know) but has been copyrighted by
>>Bob. There are more hacked Crafty's running around, than anyone can count. I
>>don't *think* this upsets Bob too terribly bad, as most people make it worse,
>>instead of better.
>>
>>TSCP: This is probably one of the most simple chess programs in circulation
>>today. And I know people have hacked its code; I've even seen one running on a
>>chess server.
>>
>>Plain and simple, you publish your code, someone is going to take it and (try)
>>to improve on it. And even with the GPL, it's hard to try to detour, or stop
>>this.
>>
>>
>>The company I work for has recently been to court over something that pertains
>>to this matter. We design and sell medical office, hospital, and in general,
>>healthcare software. The company I work for bought out a smaller competitor
>>about a year ago. Well, some people from the company that got bought out, had
>>the code to this software, and they thought they would just slap a new name on
>>it, change it around, and sell it basically as another product. Of course my
>>company sued them for copyright infringement. Guess what? They lost.
>>
>>Seems the law says that a computer program only needs to be 40% different, to be
>>considered "unique". They had a mathematician/programmer come in, and basically
>>declare that the code had indeed changed over 40%. Mind you, this was ONLY the
>>code. Not the interface, or functions. This is _NOT_ open source software.
>>And they got away with it.
>
>>
>>If anyone besides yourself has the code to your product, there is a risk. And
>>there's not much you can do. Someone just needs to be creative, and smart
>>enough to get around anything you will be able to do.
>
>The main problem here is that you need to understand Crafty in order to change
>more than 40% of the code.
>
>I did not read most of the chess programs because of this problem.
>I feel that it is frustrating to try to do it(the same as trying to read a book
>when for every word you need to look at the dictionary).
>
>I read most of TSCP but almost did not read other chess programs because there
>are too many files and I do not know where to start.
>
>I prefer to understand the move generator of Chest and not Crafty because my
>move generator is legal move generator like chest but I do not know where to
>start with so many files in order to read something that I understand.
>
>If I read move_gen.c I see that include many files when one of them is board.h
>If I read board.h I see that it include types.h and xatt.h.
>If I read types.h I see that it include basetyp.h
>If I read basetyp.h I see that it include basedef.h
>
>Uri
That gave me a good laugh, Uri :-) Sorry, more seriously:
The reverse order in which you found them, is the best read order, it is the
order in which the compiler reads them, also.
I just put an explanation request into my TODO list, to help with such problems.
Some short explanations:
basdef.h defines some very basic manifests, like TRUE and FALSE,
and deals with some portability things (gcc pragmas)
and helps to compile modules either separately or all together.
bastyp.h Together with lcltyp.h defines basic integer types for 8/16/32
bits, and types Bool and Flag.
Up to here it is not chess specific and could be found in other programs, too.
xatt.h You can safely ignore everything with "xatt" or "XATT" in its name.
types.h The basic macros and types for chest. Colours, piece types,
directions, board locations, some global flags and the like.
board.h The board structure and the move & movelist structs.
Before reading "move_gen.c" you may want to try "move.c", where moves are
executed and undo. That may explain the meaning of the board components.
HTH.
Heiner
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.