The silence of Robert Houdart

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

Moderators: bob, hgm, Harvey Williamson

Forum rules
This textbox is used to restore diagrams posted with the [d] tag before the upgrade.
User avatar
Graham Banks
Posts: 33258
Joined: Sun Feb 26, 2006 9:52 am
Location: Auckland, NZ

Re: The silence of Robert Houdart

Post by Graham Banks » Wed Mar 16, 2011 5:02 am

Peter Skinner wrote:
benstoker wrote:
Houdini wrote:@Carlos, The two options you present are not mutually exclusive :D. But yes, I'm currently working hard on Houdini 2.0.

@Gerold, I'm not in the least influenced by the Fruit/Rybka thing, I have no dealings with the ICGA.

Cheers,
Robert
Some things we don't know. Other things we do know. And we do know, on the word of Don Dailey, that even if you, Mr. Houdart, muster another +50 ELO out of Houdini 2.0, it won't be the result of any new chess engine ideas you will have created, but just the handiwork of a skilled debugger.

You see, although Komodo is 150 ELO below Houdini, it's 100% "original" as to the 1% of the total code that matters, i.e., approx. 5% of the search() and about 3% of the eval() code. Of course, these days, around 99% of the source code is ministerial in nature, one-input-one-output crap functions, public domain junk like magic bitboards, bit counting asm garbage, etc.

It's a pity that fine debuggers like you don't get as much credit as the guys spinning their wheels creating buggy "original" code comprising just around 1% of the engine.

Robert, you and Don should partner up! Think about it. Do you smell the dollars, the euros?! You could explain to Don and Larry the Ippo* code, and then Don could figure out how to rewrite the code so that it's "original". You follow? Then, you, Robert, debug the holy shit out of Don's original rewrite. Sign a 50/50 partnership agreement, sell through Chessbase and go to the bank!
Yes, because that is what _everyone_ wants. To spend hard earned money on re-hashed/debugged code that gives a slight ELO gain.

Do you honestly think that Chessbase or any other company is going to purchase/sell something that is freely available in the public domain?

I'll tell you what. How about I grab the code for Robbolitto, add my name to the UCI string, and you can purchase a copy of "My" program for 300 euro? Maybe 500.. after all I did have to compile it and change some values. Hard work.. and I _deserve_ to be paid for it.

It might be better than the original, it might not. But I am totally willing to sell you it.

I shall call it.. UrMnysMyne 1.0. Deal? I will accept PayPal or direct money transfer. No personal cheques however. I'm sure you understand.

Peter
A used nappy by any other name......... :lol:
My email addresses:
gbanksnz at gmail.com
gbanksnz at yahoo.co.nz

User avatar
mhull
Posts: 12496
Joined: Wed Mar 08, 2006 8:02 pm
Location: Dallas, Texas
Full name: Matthew Hull

Re: The silence of Robert Houdart

Post by mhull » Wed Mar 16, 2011 5:39 am

benstoker wrote:You see, although Komodo is 150 ELO below Houdini, it's 100% "original" as to the 1% of the total code that matters, i.e., approx. 5% of the search() and about 3% of the eval() code. Of course, these days, around 99% of the source code is ministerial in nature, one-input-one-output crap functions, public domain junk like magic bitboards, bit counting asm garbage, etc.

It's a pity that fine debuggers like you don't get as much credit as the guys spinning their wheels creating buggy "original" code comprising just around 1% of the engine.
But you wouldn't know anything about creating original buggy code, would you? Only the 5% of search() and 3% of eval(). You could only manage to be 1% original. I mean if people are going to carelessly leave their code laying around, they've only themselves to blame if it's surreptitiously lifted. Right? And if that's how you do it, it must be how everyone else does it. Stands to reason.

;)
Matthew Hull

Albert Silver
Posts: 2870
Joined: Wed Mar 08, 2006 8:57 pm
Location: Rio de Janeiro, Brazil

Re: The silence of Robert Houdart

Post by Albert Silver » Wed Mar 16, 2011 6:50 am

benstoker wrote:
Albert Silver wrote:
benstoker wrote:
Houdini wrote:@Carlos, The two options you present are not mutually exclusive :D. But yes, I'm currently working hard on Houdini 2.0.

@Gerold, I'm not in the least influenced by the Fruit/Rybka thing, I have no dealings with the ICGA.

Cheers,
Robert
Some things we don't know. Other things we do know. And we do know, on the word of Don Dailey, that even if you, Mr. Houdart, muster another +50 ELO out of Houdini 2.0, it won't be the result of any new chess engine ideas you will have created, but just the handiwork of a skilled debugger.

You see, although Komodo is 150 ELO below Houdini, it's 100% "original" as to the 1% of the total code that matters, i.e., approx. 5% of the search() and about 3% of the eval() code. Of course, these days, around 99% of the source code is ministerial in nature, one-input-one-output crap functions, public domain junk like magic bitboards, bit counting asm garbage, etc.

It's a pity that fine debuggers like you don't get as much credit as the guys spinning their wheels creating buggy "original" code comprising just around 1% of the engine.

Robert, you and Don should partner up! Think about it. Do you smell the dollars, the euros?! You could explain to Don and Larry the Ippo* code, and then Don could figure out how to rewrite the code so that it's "original". You follow? Then, you, Robert, debug the holy shit out of Don's original rewrite. Sign a 50/50 partnership agreement, sell through Chessbase and go to the bank!
It is really odd that you insist in lambasting Don's work like this.

Why suggest that only 1% of his work is original, that he wants to rewrite IPPO code, and finally that his programming skills are so poor that they require an outsider to debug them?

What do you have against him?
Albert, take this as your opportunity to, for the very first time, define that word of yours, "original". Start with that.
Instead, why don't you answer the question(s)?
"Tactics are the bricks and sticks that make up a game, but positional play is the architectural blueprint."

benstoker
Posts: 342
Joined: Tue Jan 19, 2010 1:05 am

Re: The silence of Robert Houdart

Post by benstoker » Wed Mar 16, 2011 1:22 pm

Albert Silver wrote:
benstoker wrote:
Albert Silver wrote:
benstoker wrote:
Houdini wrote:@Carlos, The two options you present are not mutually exclusive :D. But yes, I'm currently working hard on Houdini 2.0.

@Gerold, I'm not in the least influenced by the Fruit/Rybka thing, I have no dealings with the ICGA.

Cheers,
Robert
Some things we don't know. Other things we do know. And we do know, on the word of Don Dailey, that even if you, Mr. Houdart, muster another +50 ELO out of Houdini 2.0, it won't be the result of any new chess engine ideas you will have created, but just the handiwork of a skilled debugger.

You see, although Komodo is 150 ELO below Houdini, it's 100% "original" as to the 1% of the total code that matters, i.e., approx. 5% of the search() and about 3% of the eval() code. Of course, these days, around 99% of the source code is ministerial in nature, one-input-one-output crap functions, public domain junk like magic bitboards, bit counting asm garbage, etc.

It's a pity that fine debuggers like you don't get as much credit as the guys spinning their wheels creating buggy "original" code comprising just around 1% of the engine.

Robert, you and Don should partner up! Think about it. Do you smell the dollars, the euros?! You could explain to Don and Larry the Ippo* code, and then Don could figure out how to rewrite the code so that it's "original". You follow? Then, you, Robert, debug the holy shit out of Don's original rewrite. Sign a 50/50 partnership agreement, sell through Chessbase and go to the bank!
It is really odd that you insist in lambasting Don's work like this.

Why suggest that only 1% of his work is original, that he wants to rewrite IPPO code, and finally that his programming skills are so poor that they require an outsider to debug them?

What do you have against him?
Albert, take this as your opportunity to, for the very first time, define that word of yours, "original". Start with that.
Instead, why don't you answer the question(s)?
Why do you ask for a recapitulation of all the threads over the last year? Too much work. Where the heck were you? Don has expounded at length here why he thinks Houdart has no new engine ideas, but instead has only taken someone else's code and just proven himself to be a very good debugger. Mostly Kaufman has at length inquired about the workings of Ippo and described their successes and failures with using and experimenting with its search() and eval() in developing Komodo. Everybody likes to use the word "original". Nobody cares to define it. Except for Hyatt. And, well, I have tried. Look at the other replies here, just the same old crap about stealing. Doh! I'm sure the ICGA will get a lot of mileage out of that criterion: stolen code != original. Doh! [Or, to sheen this: "Winning!"] Just a bunch of lazy, chattering, wimps and geeks and fanboys with no aptitude or appreciation for how the ICGA will accomplish the task of adjudging "originality". A whole hell of a lot of code in chess engines is one-input-one-output. [See all the discussions on this, if you don't know what this is. You may have to go to another site. Figure it out.] Search() and eval() are not 1-1 functions. Still, probably 99% of the Ideas in search() and eval() are shared by all top programs. Creating another popcount function doesn't get you "originality" kudos. Creating another decent search() does. You and others will undoubtedly confuse "originality" with copyright, and thus don't get it; not gonna copy/paste that discussion. [See discussions elsewhere]. [See discussions on rewriting source code.] [See Don threads belittling Houdart.] [See Kaufman discussing disassembling Houdini and experimenting with ippo*] [See Richard point out Houdart's originality; See Don's dismissal of Richard's opinion.] [See Muller's equating debugging with "originality", and that Fruit's "originality" is largely Fabien's debugging skills.] Do some logic in your head. Don has "original" code, but for whatever reason, it's inferior. Don should hire Houdart, the Great Debugger, to debug his "original" code in the same way Muller described Fabien's accomplishment. Is that enough? How's the weather in Rio?

Carlos Ylich
Posts: 175
Joined: Wed Apr 28, 2010 7:31 pm
Location: Brazil

Re: The silence of Robert Houdart

Post by Carlos Ylich » Wed Mar 16, 2011 1:46 pm

Houdini wrote:@Carlos, The two options you present are not mutually exclusive :D. But yes, I'm currently working hard on Houdini 2.0.

@Gerold, I'm not in the least influenced by the Fruit/Rybka thing, I have no dealings with the ICGA.

Cheers,
Robert


Thanks Robert!
I do not mean to offend, just wondering if you have resisted temptation.
Thanks for your great work on behalf of dem who likes chess. :P

User avatar
fern
Posts: 8755
Joined: Sun Feb 26, 2006 3:07 pm

Re: The silence of Robert Houdart

Post by fern » Wed Mar 16, 2011 2:09 pm

Let me guess:
you are working for a 2.0 version that will be delivered by ChessBase.
Glad you will. You deserves to collect some bucks.

Preparing my 49 dollars for that regards
Fern

bhlangonijr
Posts: 482
Joined: Thu Oct 16, 2008 2:23 am
Location: Milky Way
Contact:

Re: The silence of Robert Houdart

Post by bhlangonijr » Wed Mar 16, 2011 2:38 pm

benstoker wrote: Why do you ask for a recapitulation of all the threads over the last year? Too much work. Where the heck were you? Don has expounded at length here why he thinks Houdart has no new engine ideas, but instead has only taken someone else's code and just proven himself to be a very good debugger. Mostly Kaufman has at length inquired about the workings of Ippo and described their successes and failures with using and experimenting with its search() and eval() in developing Komodo. Everybody likes to use the word "original". Nobody cares to define it. Except for Hyatt. And, well, I have tried. Look at the other replies here, just the same old crap about stealing. Doh! I'm sure the ICGA will get a lot of mileage out of that criterion: stolen code != original. Doh! [Or, to sheen this: "Winning!"] Just a bunch of lazy, chattering, wimps and geeks and fanboys with no aptitude or appreciation for how the ICGA will accomplish the task of adjudging "originality". A whole hell of a lot of code in chess engines is one-input-one-output. [See all the discussions on this, if you don't know what this is. You may have to go to another site. Figure it out.] Search() and eval() are not 1-1 functions. Still, probably 99% of the Ideas in search() and eval() are shared by all top programs. Creating another popcount function doesn't get you "originality" kudos. Creating another decent search() does. You and others will undoubtedly confuse "originality" with copyright, and thus don't get it; not gonna copy/paste that discussion. [See discussions elsewhere]. [See discussions on rewriting source code.] [See Don threads belittling Houdart.] [See Kaufman discussing disassembling Houdini and experimenting with ippo*] [See Richard point out Houdart's originality; See Don's dismissal of Richard's opinion.] [See Muller's equating debugging with "originality", and that Fruit's "originality" is largely Fabien's debugging skills.] Do some logic in your head. Don has "original" code, but for whatever reason, it's inferior. Don should hire Houdart, the Great Debugger, to debug his "original" code in the same way Muller described Fabien's accomplishment. Is that enough? How's the weather in Rio?
I have followed all the discussions and am pretty sure it doesn't endorse your disturbed views/suggestions about Don's work.
In few words, you are suggesting that Don is simply trying to rewrite Ippo* algorithms in order to get a new original - in the copyright standpoint - engine with basically the same essential inner workings.
Once again, all the discussions you are pointing out doesn't endorse what you are suggesting at all. If you happen to do some code (instead of just talking) and make your own chess engine you gonna realize that is very common to try ideas which works very well for other's engines and actually doesn't work for your own engine. There is nothing wrong about testing successful ideas on your own program.
My personal take on this is that Robert Houdart is _NOT_ only a very clever "debugger" or "tweaker" guy. He is actually original in the sense of how he has put all the "old" ideas to work with the already very good Ippo* code. But of course I don't expect everyone to agree with me on that.
Now, can you please answer what Albert has politely asked you?

Regards,

User avatar
Romy
Posts: 72
Joined: Thu Mar 10, 2011 9:39 pm
Location: Bucharest (Romania)

Re: The silence of Robert Houdart

Post by Romy » Wed Mar 16, 2011 3:23 pm

Mr Houdart, I am in love to your program. One day I may defeat it, but that day seems to me impossibly distant. I have manage to defeat even RYBKA 3 without takeback (only after 1000+ games), but HOUDINI is now my target.
I'm not in the least influenced by the Fruit/Rybka thing, I have no dealings with the ICGA.
There is a reference for you here--
http://talkchess.com/forum/viewtopic.php?t=38432

benstoker
Posts: 342
Joined: Tue Jan 19, 2010 1:05 am

Re: The silence of Robert Houdart

Post by benstoker » Wed Mar 16, 2011 3:30 pm

bhlangonijr wrote:
benstoker wrote: Why do you ask for a recapitulation of all the threads over the last year? Too much work. Where the heck were you? Don has expounded at length here why he thinks Houdart has no new engine ideas, but instead has only taken someone else's code and just proven himself to be a very good debugger. Mostly Kaufman has at length inquired about the workings of Ippo and described their successes and failures with using and experimenting with its search() and eval() in developing Komodo. Everybody likes to use the word "original". Nobody cares to define it. Except for Hyatt. And, well, I have tried. Look at the other replies here, just the same old crap about stealing. Doh! I'm sure the ICGA will get a lot of mileage out of that criterion: stolen code != original. Doh! [Or, to sheen this: "Winning!"] Just a bunch of lazy, chattering, wimps and geeks and fanboys with no aptitude or appreciation for how the ICGA will accomplish the task of adjudging "originality". A whole hell of a lot of code in chess engines is one-input-one-output. [See all the discussions on this, if you don't know what this is. You may have to go to another site. Figure it out.] Search() and eval() are not 1-1 functions. Still, probably 99% of the Ideas in search() and eval() are shared by all top programs. Creating another popcount function doesn't get you "originality" kudos. Creating another decent search() does. You and others will undoubtedly confuse "originality" with copyright, and thus don't get it; not gonna copy/paste that discussion. [See discussions elsewhere]. [See discussions on rewriting source code.] [See Don threads belittling Houdart.] [See Kaufman discussing disassembling Houdini and experimenting with ippo*] [See Richard point out Houdart's originality; See Don's dismissal of Richard's opinion.] [See Muller's equating debugging with "originality", and that Fruit's "originality" is largely Fabien's debugging skills.] Do some logic in your head. Don has "original" code, but for whatever reason, it's inferior. Don should hire Houdart, the Great Debugger, to debug his "original" code in the same way Muller described Fabien's accomplishment. Is that enough? How's the weather in Rio?
I have followed all the discussions and am pretty sure it doesn't endorse your disturbed views/suggestions about Don's work.
In few words, you are suggesting that Don is simply trying to rewrite Ippo* algorithms in order to get a new original - in the copyright standpoint - engine with basically the same essential inner workings.
Once again, all the discussions you are pointing out doesn't endorse what you are suggesting at all. If you happen to do some code (instead of just talking) and make your own chess engine you gonna realize that is very common to try ideas which works very well for other's engines and actually doesn't work for your own engine. There is nothing wrong about testing successful ideas on your own program.
My personal take on this is that Robert Houdart is _NOT_ only a very clever "debugger" or "tweaker" guy. He is actually original in the sense of how he has put all the "old" ideas to work with the already very good Ippo* code. But of course I don't expect everyone to agree with me on that.
Now, can you please answer what Albert has politely asked you?

Regards,
Maybe I got it all wrong. So, what exactly is one doing when picking through the ippo* code trying to figure it out to see if any ideas can be discovered to implement in one's own engine? What is that called? Ditto disassembly of Houdini, Rybka, etc.? You disagree with Muller that Fabien's accomplishment and originality is relegated to little more than debugging? Why do you disagree with that, if you do? If good debugging earns one the "originality" predicate a la Muller, then why does Don dismiss Richard's opinion that Houdart has done something original? What are your percentages? Dear sir, please divide up each of the Crafty functions below into two groups: 1-1 and 1-many. Let's start there. Please don't bother, if all you got to say is "you know it when you see it". We have a long ways to go; but, you appear to have interest in defining "originality". In your opinion, what % of chess engine source code is 1:1 and what percentage is 1:many? Are there sub-parts within search() that are 1:1? What category do magic bitboards fall into? kpk bitbases go into the 1:1 bucket, right? For, instance, if I copy the following null move code into my search(), does that diminish "originality"?:

Code: Select all

/* the depth reduction factor */
#define R 2
int search (alpha, beta, depth) {
   if &#40;depth <= 0&#41;
      return evaluate&#40;); /* in practice, quiescence&#40;) is called here */
   /* conduct a null-move search if it is legal and desired */
   if (!in_check&#40;) && null_ok&#40;))&#123;
      make null move&#40;);
      /* null-move search with minimal window around beta */
      value = -search&#40;-beta, -beta + 1, depth - R - 1&#41;;
      if &#40;value >= beta&#41; /* cutoff in case of fail-high */
         return value;
      &#125;
      /* continue regular NegaScout/PVS search */
&#125;
Probably every top engine has source code that is virtually identical to the above null-move routine. Would you penalize my "originality" if I literally copied the above code into my search()? Why? What if I throw in Tabibi's verified null move code? Is null-move 1:1? It is, isn't it. Everything around it may not be, but null move reduction is. Or isn't?


Crafty functions:

Code: Select all

int Evaluate&#40;TREE * RESTRICT, int, int, int, int&#41;;
void EvaluateBishops&#40;TREE * RESTRICT, int&#41;;
void EvaluateDevelopment&#40;TREE * RESTRICT, int, int&#41;;
int EvaluateDraws&#40;TREE * RESTRICT, int, int, int&#41;;
void EvaluateKings&#40;TREE * RESTRICT, int, int&#41;;
int EvaluateKingsFile&#40;TREE * RESTRICT, int, int&#41;;
void EvaluateKnights&#40;TREE * RESTRICT, int&#41;;
void EvaluateMate&#40;TREE * RESTRICT, int&#41;;
void EvaluateMaterial&#40;TREE * RESTRICT, int&#41;;
void EvaluatePassedPawns&#40;TREE * RESTRICT, int&#41;;
void EvaluatePassedPawnRaces&#40;TREE * RESTRICT, int&#41;;
void EvaluatePawns&#40;TREE * RESTRICT, int&#41;;
void EvaluateQueens&#40;TREE * RESTRICT, int&#41;;
void EvaluateRooks&#40;TREE * RESTRICT, int&#41;;
int EvaluateWinningChances&#40;TREE * RESTRICT, int, int&#41;;
int EvaluateHasOpposition&#40;int, int, int&#41;;

void AlignedMalloc&#40;void **, int, int&#41;;
void AlignedRemalloc&#40;void **, int, int&#41;;

int Book&#40;TREE * RESTRICT, int, int&#41;;
void BookClusterIn&#40;FILE *, int, BOOK_POSITION *);
void BookClusterOut&#40;FILE *, int, BOOK_POSITION *);
int BookIn32&#40;unsigned char *ch&#41;;
void BookUp&#40;TREE * RESTRICT, int, char **);
void BookSort&#40;BB_POSITION *, int, int&#41;;

int CheckInput&#40;void&#41;;

void CopyFromChild&#40;TREE * RESTRICT, TREE * RESTRICT, int&#41;;
TREE *CopyToChild&#40;TREE * RESTRICT, int&#41;;

void EVTest&#40;char *);
int FindBlockID&#40;TREE * RESTRICT&#41;;

int FTbSetCacheSize&#40;void *, unsigned long&#41;;

int GameOver&#40;int&#41;;

void ClearHashTableScores&#40;void&#41;;
int HashProbe&#40;TREE * RESTRICT, int, int, int, int *, int&#41;;
void HashStore&#40;TREE * RESTRICT, int, int, int, int, int, int&#41;;
void HashStorePV&#40;TREE * RESTRICT, int, int&#41;;

int IInitializeTb&#40;char *);
void Initialize&#40;void&#41;;
void InitializeAttackBoards&#40;void&#41;;
void InitializeChessBoard&#40;TREE *);
int InitializeGetLogID&#40;);
void InitializeHashTables&#40;void&#41;;
void InitializeKillers&#40;void&#41;;
void InitializeKingSafety&#40;void&#41;;
void InitializeMagic&#40;void&#41;;
void InitializeMasks&#40;void&#41;;
void InitializePawnMasks&#40;void&#41;;
void InitializeSMP&#40;void&#41;;

int InvalidPosition&#40;TREE * RESTRICT&#41;;
int Iterate&#40;int, int, int&#41;;

void Killer&#40;TREE * RESTRICT, int, int&#41;;
int KingPawnSquare&#40;int, int, int, int&#41;;
void LearnBook&#40;void&#41;;
int LearnFunction&#40;int, int, int, int&#41;;
void LearnValue&#40;int, int&#41;;

void NewGame&#40;int&#41;;

int NextEvasion&#40;TREE * RESTRICT, int, int&#41;;
int NextMove&#40;TREE * RESTRICT, int, int&#41;;
int NextRootMove&#40;TREE * RESTRICT, TREE * RESTRICT, int&#41;;
int NextRootMoveParallel&#40;void&#41;;

int Option&#40;TREE * RESTRICT&#41;;
int OptionMatch&#40;char *, char *);
void OptionPerft&#40;TREE * RESTRICT, int, int, int&#41;;
void Output&#40;TREE * RESTRICT, int, int&#41;;

int OutputGood&#40;TREE * RESTRICT, char *, int, int&#41;;

int ParseTime&#40;char *);

void Pass&#40;void&#41;;

int PinnedOnKing&#40;TREE * RESTRICT, int, int&#41;;

int Ponder&#40;int&#41;;
void PreEvaluate&#40;TREE * RESTRICT&#41;;

int Quiesce&#40;TREE * RESTRICT, int, int, int, int&#41;;
int QuiesceChecks&#40;TREE * RESTRICT, int, int, int, int&#41;;
int QuiesceEvasions&#40;TREE * RESTRICT, int, int, int, int&#41;;

void RootMoveList&#40;int&#41;;

int Search&#40;TREE * RESTRICT, int, int, int, int, int, int&#41;;
int SearchRoot&#40;TREE * RESTRICT, int, int, int, int&#41;;
int SearchParallel&#40;TREE * RESTRICT, int, int, int, int, int, int&#41;;

void SetChessBitBoards&#40;TREE *);
int SetRootAlpha&#40;unsigned char, int&#41;;
int SetRootBeta&#40;unsigned char, int&#41;;

void *SharedMalloc&#40;size_t, int&#41;;
void SharedFree&#40;void *address&#41;;

int StrCnt&#40;char *, char&#41;;

int Swap&#40;TREE * RESTRICT, int, int&#41;;

int Thread&#40;TREE * RESTRICT&#41;;
void WaitForAllThreadsInitialized&#40;void&#41;;
void *STDCALL ThreadInit&#40;void *);
void ThreadMalloc&#40;int&#41;;
void ThreadStop&#40;TREE * RESTRICT&#41;;
int ThreadWait&#40;long, TREE * RESTRICT&#41;;

void TimeAdjust&#40;int, int&#41;;
int TimeCheck&#40;TREE * RESTRICT, int&#41;;
void TimeSet&#40;TREE * RESTRICT, int&#41;;


extern void *WinMallocInterleaved&#40;size_t, int&#41;;
extern void WinFreeInterleaved&#40;void *, size_t&#41;;

int Attacks&#40;TREE * RESTRICT, int, int&#41;;

void Analyze&#40;void&#41;;
void Annotate&#40;void&#41;;
void AnnotateHeaderHTML&#40;char *, FILE *);
void AnnotateFooterHTML&#40;FILE *);
void AnnotatePositionHTML&#40;TREE * RESTRICT, int, FILE *);
char *AnnotateVtoNAG&#40;int, int, int, int&#41;;
void AnnotateHeaderTeX&#40;char *, FILE *);
void AnnotateFooterTeX&#40;FILE *);
void AnnotatePositionTeX&#40;TREE *, int, FILE *);
void Bench&#40;int&#41;;
void CraftyExit&#40;int&#41;;
void DisplayArray&#40;int *, int&#41;;
void DisplayArrayX2&#40;int *, int *, int&#41;;
void DisplayBitBoard&#40;BITBOARD&#41;;
void Display2BitBoards&#40;BITBOARD, BITBOARD&#41;;
void DisplayChessBoard&#40;FILE *, POSITION&#41;;
char *DisplayEvaluation&#40;int, int&#41;;
char *DisplayEvaluationKibitz&#40;int, int&#41;;
void DisplayFT&#40;int, int, int&#41;;
char *DisplayHHMM&#40;unsigned int&#41;;
char *DisplayHHMMSS&#40;unsigned int&#41;;
char *DisplayKM&#40;unsigned int&#41;;
void DisplayPV&#40;TREE * RESTRICT, int, int, int, int, PATH *);
char *DisplayTime&#40;unsigned int&#41;;
char *DisplayTimeKibitz&#40;unsigned int&#41;;
void DisplayTreeState&#40;TREE * RESTRICT, int, int, int&#41;;
void DisplayChessMove&#40;char *, int&#41;;
void DisplayType3&#40;int *, int *);
void DisplayType4&#40;int *, int *);
void DisplayType5&#40;int *, int *, int&#41;;
void DisplayType6&#40;int *, int *);
void DisplayType7&#40;int *, int *);
void DisplayType8&#40;int *, int&#41;;
void DisplayType9&#40;int *, int *);
void Edit&#40;void&#41;;
void Kibitz&#40;int, int, int, int, int, BITBOARD, int, char *);
void Test&#40;char *);
void TestEPD&#40;char *);
int Drawn&#40;TREE * RESTRICT, int&#41;;
int InputMove&#40;TREE * RESTRICT, char *, int, int, int, int&#41;;
int InputMoveICS&#40;TREE * RESTRICT, char *, int, int, int, int&#41;;
char *FormatPV&#40;TREE * RESTRICT, int, PATH&#41;;
int Read&#40;int, char *);
int ReadChessMove&#40;TREE * RESTRICT, FILE *, int, int&#41;;
void ReadClear&#40;void&#41;;
unsigned int ReadClock&#40;void&#41;;
int ReadPGN&#40;FILE *, int&#41;;
int ReadNextMove&#40;TREE * RESTRICT, char *, int, int&#41;;
int ReadParse&#40;char *, char *args&#91;&#93;, char *);
int ReadInput&#40;void&#41;;
char *OutputMove&#40;TREE * RESTRICT, int, int, int&#41;;
char *OutputMoveICS&#40;int&#41;;

int *GenerateCaptures&#40;TREE * RESTRICT, int, int, int *);
int *GenerateCheckEvasions&#40;TREE * RESTRICT, int, int, int *);
int *GenerateChecks&#40;TREE * RESTRICT, int, int, int *);
int *GenerateNoncaptures&#40;TREE * RESTRICT, int, int, int *);
void MakeMove&#40;TREE * RESTRICT, int, int, int&#41;;
void MakeMoveRoot&#40;TREE * RESTRICT, int, int&#41;;
void UnmakeMove&#40;TREE * RESTRICT, int, int, int&#41;;
int ValidMove&#40;TREE * RESTRICT, int, int, int&#41;;
int VerifyMove&#40;TREE * RESTRICT, int, int, int&#41;;
void ValidatePosition&#40;TREE * RESTRICT, int, int, char *);

int RepetitionCheck&#40;TREE * RESTRICT, int, int&#41;;
int RepetitionCheckBook&#40;TREE * RESTRICT, int, int&#41;;
int RepetitionDraw&#40;TREE * RESTRICT, int, int&#41;;

void ResignOrDraw&#40;TREE * RESTRICT, int&#41;;
void RestoreGame&#40;void&#41;;

void Trace&#40;TREE * RESTRICT, int, int, int, int, int, char *, int&#41;;

void SetBoard&#40;TREE *, int, char **, int&#41;;

void Interrupt&#40;int&#41;;

void Print&#40;int, char *, ...);
char *PrintKM&#40;size_t, int&#41;;

User avatar
michiguel
Posts: 6389
Joined: Thu Mar 09, 2006 7:30 pm
Location: Chicago, Illinois, USA
Contact:

Re: The silence of Robert Houdart

Post by michiguel » Wed Mar 16, 2011 4:25 pm

benstoker wrote:
Albert Silver wrote:
benstoker wrote:
Albert Silver wrote:
benstoker wrote:
Houdini wrote:@Carlos, The two options you present are not mutually exclusive :D. But yes, I'm currently working hard on Houdini 2.0.

@Gerold, I'm not in the least influenced by the Fruit/Rybka thing, I have no dealings with the ICGA.

Cheers,
Robert
Some things we don't know. Other things we do know. And we do know, on the word of Don Dailey, that even if you, Mr. Houdart, muster another +50 ELO out of Houdini 2.0, it won't be the result of any new chess engine ideas you will have created, but just the handiwork of a skilled debugger.

You see, although Komodo is 150 ELO below Houdini, it's 100% "original" as to the 1% of the total code that matters, i.e., approx. 5% of the search() and about 3% of the eval() code. Of course, these days, around 99% of the source code is ministerial in nature, one-input-one-output crap functions, public domain junk like magic bitboards, bit counting asm garbage, etc.

It's a pity that fine debuggers like you don't get as much credit as the guys spinning their wheels creating buggy "original" code comprising just around 1% of the engine.

Robert, you and Don should partner up! Think about it. Do you smell the dollars, the euros?! You could explain to Don and Larry the Ippo* code, and then Don could figure out how to rewrite the code so that it's "original". You follow? Then, you, Robert, debug the holy shit out of Don's original rewrite. Sign a 50/50 partnership agreement, sell through Chessbase and go to the bank!
It is really odd that you insist in lambasting Don's work like this.

Why suggest that only 1% of his work is original, that he wants to rewrite IPPO code, and finally that his programming skills are so poor that they require an outsider to debug them?

What do you have against him?
Albert, take this as your opportunity to, for the very first time, define that word of yours, "original". Start with that.
Instead, why don't you answer the question(s)?
Why do you ask for a recapitulation of all the threads over the last year? Too much work. Where the heck were you? Don has expounded at length here why he thinks Houdart has no new engine ideas, but instead has only taken someone else's code and just proven himself to be a very good debugger.
I do not know where you were, but Don's recognized RH talent when Houdini 1.5 was released. For instance, he said:

"...So I guess we both agree that both Vas and Robert Houdart are talented and original thinkers!"
http://www.talkchess.com/forum/viewtopi ... ini#381753
He consistently said that improving on a top engine required talent.

Your sarcasm, accusations, and aggressiveness towards DD are completely out of line.

Miguel



Mostly Kaufman has at length inquired about the workings of Ippo and described their successes and failures with using and experimenting with its search() and eval() in developing Komodo. Everybody likes to use the word "original". Nobody cares to define it. Except for Hyatt. And, well, I have tried. Look at the other replies here, just the same old crap about stealing. Doh! I'm sure the ICGA will get a lot of mileage out of that criterion: stolen code != original. Doh! [Or, to sheen this: "Winning!"] Just a bunch of lazy, chattering, wimps and geeks and fanboys with no aptitude or appreciation for how the ICGA will accomplish the task of adjudging "originality". A whole hell of a lot of code in chess engines is one-input-one-output. [See all the discussions on this, if you don't know what this is. You may have to go to another site. Figure it out.] Search() and eval() are not 1-1 functions. Still, probably 99% of the Ideas in search() and eval() are shared by all top programs. Creating another popcount function doesn't get you "originality" kudos. Creating another decent search() does. You and others will undoubtedly confuse "originality" with copyright, and thus don't get it; not gonna copy/paste that discussion. [See discussions elsewhere]. [See discussions on rewriting source code.] [See Don threads belittling Houdart.] [See Kaufman discussing disassembling Houdini and experimenting with ippo*] [See Richard point out Houdart's originality; See Don's dismissal of Richard's opinion.] [See Muller's equating debugging with "originality", and that Fruit's "originality" is largely Fabien's debugging skills.] Do some logic in your head. Don has "original" code, but for whatever reason, it's inferior. Don should hire Houdart, the Great Debugger, to debug his "original" code in the same way Muller described Fabien's accomplishment. Is that enough? How's the weather in Rio?

Post Reply