Re-activation Programmer Code of Honor

Discussion of chess software programming and technical issues.

Moderators: hgm, Rebel, chrisw

User avatar
mvanthoor
Posts: 1784
Joined: Wed Jul 03, 2019 4:42 pm
Location: Netherlands
Full name: Marcel Vanthoor

Re: Re-activation Programmer Code of Honor

Post by mvanthoor »

xr_a_y wrote: Tue Sep 29, 2020 8:42 pm This is not a competition to everyone. I hope...
For me, it's a friendly competition.

After my engine gets its initial rating, I intend to improve it and move up the rating list. That obviously entails running matches against other engines. For me, the fun is in seeing my own engine improve and play better chess due to the things I program. Thus, just copying a piece of code (such as the new NNUE code in Stockfish) to add 100-200 ELO to the engine is no fun. The engine is stronger, but it becomes stronger using code and techniques I do not (yet) understand, thus the strength increase would have no value to me.

Writing the chess engine is basically a competition against myself, by each day learning a bit I didn't know yesterday, and the increased engine rating is the proof that I've learned, understood and implemented the technique correctly.

And, because it's a friendly competition, I have no problem with explaining a technique to someone else if they can be helped with that, if it makes their engine stronger. I will learn techniques from them as well, or other people.
Author of Rustic, an engine written in Rust.
Releases | Code | Docs | Progress | CCRL
User avatar
xr_a_y
Posts: 1871
Joined: Sat Nov 25, 2017 2:28 pm
Location: France

Re: Re-activation Programmer Code of Honor

Post by xr_a_y »

mvanthoor wrote: Tue Sep 29, 2020 11:01 pm
xr_a_y wrote: Tue Sep 29, 2020 8:42 pm This is not a competition to everyone. I hope...
For me, it's a friendly competition.

After my engine gets its initial rating, I intend to improve it and move up the rating list. That obviously entails running matches against other engines. For me, the fun is in seeing my own engine improve and play better chess due to the things I program. Thus, just copying a piece of code (such as the new NNUE code in Stockfish) to add 100-200 ELO to the engine is no fun. The engine is stronger, but it becomes stronger using code and techniques I do not (yet) understand, thus the strength increase would have no value to me.

Writing the chess engine is basically a competition against myself, by each day learning a bit I didn't know yesterday, and the increased engine rating is the proof that I've learned, understood and implemented the technique correctly.

And, because it's a friendly competition, I have no problem with explaining a technique to someone else if they can be helped with that, if it makes their engine stronger. I will learn techniques from them as well, or other people.
Fully agree.
Dann Corbit
Posts: 12541
Joined: Wed Mar 08, 2006 8:57 pm
Location: Redmond, WA USA

Re: Re-activation Programmer Code of Honor

Post by Dann Corbit »

I think that overzealous competition is the real problem here.
It is causing both the the shady acts and also the over-zealous accusations.

I am not sure if it is the possibility of commercial gain, or just the burning desire to win.
But it appears to me that people are going overboard in order to compete more effectively.
Maybe that is the nature of human competition itself. We have performance enhancing drug use in (for instance) American baseball and UCI bicycle racing and in the Olympics.

I don't have any miracle cures.
I think the code of ethics is probably quite a good idea if phrased clearly enough.
I think the main problem with the code of ethics is that all the ethical people will sign and obey it and the unethical people will either not sign it or sign it and not obey it. Such a document would only have any appeal with ethical people to start with and unethical people are not bound by their word.

The very indication of such a document is an indication of some sort of deficiency.
It's like signing a paper saying, "I won't beat up people with a hammer, and I really promise!"
Why should such statements be necessary?

There is clearly going to be peer pressure not to use each other's code ideas. I think that might be OK, since there seems to be a consensus on it.
But don't imagine that your ire has the weight of law. It doesn't. Frowning, wagging fingers, and calling one another "big noo-noo heads" is all well and good. But I don't think we should try to enforce unenforcable punishments.
Taking ideas is not a vice, it is a virtue. We have another word for this. It is called learning.
But sharing ideas is an even greater virtue. We have another word for this. It is called teaching.
User avatar
Rebel
Posts: 6995
Joined: Thu Aug 18, 2011 12:04 pm

Re: Re-activation Programmer Code of Honor

Post by Rebel »

chrisw wrote: Tue Sep 29, 2020 8:47 pm
Rebel wrote: Tue Sep 29, 2020 8:26 pm
chrisw wrote: Tue Sep 29, 2020 8:18 pm
Rebel wrote: Tue Sep 29, 2020 7:58 pm
Dann Corbit wrote: Tue Sep 29, 2020 6:58 pm There are no copyrights on tables of numbers.
Therefore, they can't be stolen.

And you can't steal an idea either, unless there is a patent.

Stealing code with copyright violation is wrong.
Reverse engineering can be a legal violation if done improplerly.
But I do not think the chess programmers have any idea what is actually allowed or not allowed so they are making up their own standards and judging people with those.

Now that the chess crowd seems to think they own math and algorithms, I am starting to wonder about the jealous protection of chess programs.
If the things that people are railing against are not wrong in the eyes of the law, then what is actually going on?
Maybe we should start another document called "the code of jealous protection".
"My things that are not protected will be jealously guarded as if they were. And I will publicly shame you as a criminal if you use them."
The paradox we are in is that the community more or less has decided that coping code is the death penalty and that copying ideas is free while the truth is that the real elo is in the ideas, the novelty. Living in this paradox we try to find reasonable rules. The perfect does not exist.
Just who is this “community”? Who is “we”? Since when can Internet forums make “rules”? Why should any of the 8 billion people out there pay any attention at all?
All I see is people wanting to be in a social group. The same social group that every now and again engages in vicious bouts of expelling people. How about engine programmers who don’t want to be part of this social group? One to one with other programmers, fine. Ed, I understand what you are trying to do, it’s very commendable, but collectivising chess engine programmers into one happy family? Flies in the face of history.
I agree with most of Dann’s post above, btw.
Fair competitions need rules, true in every sports.
What competitions?
For instance CCRL/CEGT and all the other initiatives in the tournament/matches section.

Anyone can do what he wants but if you want to compete be honest about your origins, why is that so hard?
The 'community' doesn't organise any competitions. There are people performing mass engine testing on a an entirely voluntary basis and publishing results. There are others making what seem to be aimed at getting some kind of revenue stream doing live games and giving themselves mnemonical names. What's wrong? They kind of have their own rules already.
Tour de France has rules, competitors have to sign a contract. Tour de France is a big commercial operation. If you or I want to dose ourselves up on anabolic steroids and going riding our bicycles wherever, whenever we are entirely free to do so, nothing to do with Tour de France. I am not getting this 'community' rule set concept, sorry. It's not up to any 'community' to operate peer group pressure or any of the other nasty processes computer chess has become famous for, onto 8 billion people. And when the 'community' is some kind of self-defined gathering (with a tendency to mobbing) on the internet, absolutely not.
If you like, make a competition, announce a rule set, invite participants and make a contract with them. But not arbitrary internet forum rules which for absolutely sure, are going to get used in another repeat witch-hunt, sometime, someplace.
I know, I had my own share with the BT-2630 case.
90% of coding is debugging, the other 10% is writing bugs.
User avatar
Rebel
Posts: 6995
Joined: Thu Aug 18, 2011 12:04 pm

Re: Re-activation Programmer Code of Honor

Post by Rebel »

Dann Corbit wrote: Wed Sep 30, 2020 12:35 am I think that overzealous competition is the real problem here.
I am sorry, I don't see a problem, men are competitive creatures that want to win and competition is what drives people to get the best out of themselves. And competition needs to be fair.
It is causing both the the shady acts and also the over-zealous accusations.

I am not sure if it is the possibility of commercial gain, or just the burning desire to win.
But it appears to me that people are going overboard in order to compete more effectively.
Maybe that is the nature of human competition itself. We have performance enhancing drug use in (for instance) American baseball and UCI bicycle racing and in the Olympics.

I don't have any miracle cures.
I think the code of ethics is probably quite a good idea if phrased clearly enough.
I think the main problem with the code of ethics is that all the ethical people will sign and obey it and the unethical people will either not sign it or sign it and not obey it. Such a document would only have any appeal with ethical people to start with and unethical people are not bound by their word.

The very indication of such a document is an indication of some sort of deficiency.
It's like signing a paper saying, "I won't beat up people with a hammer, and I really promise!"
Why should such statements be necessary?

There is clearly going to be peer pressure not to use each other's code ideas. I think that might be OK, since there seems to be a consensus on it.
But don't imagine that your ire has the weight of law. It doesn't. Frowning, wagging fingers, and calling one another "big noo-noo heads" is all well and good. But I don't think we should try to enforce unenforcable punishments.
90% of coding is debugging, the other 10% is writing bugs.
Dann Corbit
Posts: 12541
Joined: Wed Mar 08, 2006 8:57 pm
Location: Redmond, WA USA

Re: Re-activation Programmer Code of Honor

Post by Dann Corbit »

Rebel wrote: Wed Sep 30, 2020 1:17 am
Dann Corbit wrote: Wed Sep 30, 2020 12:35 am I think that overzealous competition is the real problem here.
I am sorry, I don't see a problem, men are competitive creatures that want to win and competition is what drives people to get the best out of themselves. And competition needs to be fair.
Friendly competition is good.
Cutthroat competition is bad.
I think we are seeing #2
Taking ideas is not a vice, it is a virtue. We have another word for this. It is called learning.
But sharing ideas is an even greater virtue. We have another word for this. It is called teaching.
smatovic
Posts: 2658
Joined: Wed Mar 10, 2010 10:18 pm
Location: Hamburg, Germany
Full name: Srdja Matovic

Re: Re-activation Programmer Code of Honor

Post by smatovic »

Is it about "competition" at all? I think it was Dann who made me aware of the fundamental programmers question - how can we use this for chess? That is imo the miracle in CC, we are all smart, and we use this smartness to hack computers to play chess, that is imo the cool and fun part about this journey. Sure, to go into competition and measure the outcome of ones conglomerate of ideas and hacks is one part of it, but not the whole cake.

--
Srdja
User avatar
Rebel
Posts: 6995
Joined: Thu Aug 18, 2011 12:04 pm

Re: Re-activation Programmer Code of Honor

Post by Rebel »

Dann Corbit wrote: Wed Sep 30, 2020 7:58 am
Rebel wrote: Wed Sep 30, 2020 1:17 am
Dann Corbit wrote: Wed Sep 30, 2020 12:35 am I think that overzealous competition is the real problem here.
I am sorry, I don't see a problem, men are competitive creatures that want to win and competition is what drives people to get the best out of themselves. And competition needs to be fair.
Friendly competition is good.
Cutthroat competition is bad.
I think we are seeing #2
In every sport competition is about emotion, when competitors cheat there will be outbursts of emotion, human nature. If you want to change human nature, good luck with that. However you, me and the rest of us can make a choice not to participate in the mob process and stick to the facts on a rational base.
90% of coding is debugging, the other 10% is writing bugs.
chrisw
Posts: 4319
Joined: Tue Apr 03, 2012 4:28 pm

Re: Re-activation Programmer Code of Honor

Post by chrisw »

Dann Corbit wrote: Wed Sep 30, 2020 12:35 am I think that overzealous competition is the real problem here.
It is causing both the the shady acts and also the over-zealous accusations.

I am not sure if it is the possibility of commercial gain, or just the burning desire to win.
But it appears to me that people are going overboard in order to compete more effectively.
Maybe that is the nature of human competition itself. We have performance enhancing drug use in (for instance) American baseball and UCI bicycle racing and in the Olympics.

I don't have any miracle cures.
I think the code of ethics is probably quite a good idea if phrased clearly enough.
I think the main problem with the code of ethics is that all the ethical people will sign and obey it and the unethical people will either not sign it or sign it and not obey it.
So, people who won’t sign are not ethical? See how this code of honour concept is just going to turn into case of another witch-hunt.

Such a document would only have any appeal with ethical people to start with and unethical people are not bound by their word.
actually the reverse. The document has appeal to nasty people who will then use it to cast dispersions on others. The error in your thinking is that the people who sign must be “ethical”. People sign for a wide range of reasons and they don’t sign for also a wide range of reasons. I would guess the principal driver on signing is social, to be or appear to be part if the select group.

The very indication of such a document is an indication of some sort of deficiency.
It's like signing a paper saying, "I won't beat up people with a hammer, and I really promise!"
Why should such statements be necessary?

There is clearly going to be peer pressure not to use each other's code ideas. I think that might be OK, since there seems to be a consensus on it.
But don't imagine that your ire has the weight of law. It doesn't. Frowning, wagging fingers, and calling one another "big noo-noo heads" is all well and good. But I don't think we should try to enforce unenforcable punishments.
Madeleine Birchfield
Posts: 512
Joined: Tue Sep 29, 2020 4:29 pm
Location: Dublin, Ireland
Full name: Madeleine Birchfield

Re: Re-activation Programmer Code of Honor

Post by Madeleine Birchfield »

mvanthoor wrote: Mon Sep 28, 2020 1:07 pm In that case, every engine is inspired by every other engine that came before it.

It's almost impossible to build something 100% original; maybe Leela may qualify, but even that engine uses techniques that were first theoretically explored in the 80's already, but couldn't be put into practice because the computers were too slow.
Leela's original source code used bits of Stockfish and parts of Leela Zero before Gian-Carlo Pascutto rewrote the engine.