Programmer code of honor (reminder)

Discussion of chess software programming and technical issues.

Moderator: Ras

User avatar
Rebel
Posts: 7522
Joined: Thu Aug 18, 2011 12:04 pm
Full name: Ed Schröder

Re: Programmer code of honor (reminder)

Post by Rebel »

Henk wrote:Ok, I removed the piece square table values from my chess program. They were not mine. I copied them from the piece square table contest. Costs me 100 ELO or so. My previous ones are crap.
If someone post stuff it's public domain, use it.
Henk
Posts: 7251
Joined: Mon May 27, 2013 10:31 am

Re: Programmer code of honor (reminder)

Post by Henk »

Rebel wrote:
Henk wrote:Ok, I removed the piece square table values from my chess program. They were not mine. I copied them from the piece square table contest. Costs me 100 ELO or so. My previous ones are crap.
If someone post stuff it's public domain, use it.
If used the piece square tables from Pawel Koziol. He has an open source chess program Rodent with a few license agreements.

Also copying piece square tables may have the effect that my program starts playing a bit like Rodent. (Or is this comparable to rejecting blood transfusion ?)

To be on the safe side I think I try to invent suitable piece square tables of my own.
bob
Posts: 20943
Joined: Mon Feb 27, 2006 7:30 pm
Location: Birmingham, AL

Re: Programmer code of honor (reminder)

Post by bob »

Rebel wrote:EU - http://en.wikipedia.org/wiki/Reverse_en ... pean_Union

In a nutshell, it's okay to RE software for investigation purposes, suspicion of plagiarism for instance. It's not okay to publish or to use the information for a competitive product.

US is not far behind.

http://en.wikipedia.org/wiki/Reverse_en ... ted_States

Bottom line RE - if the chess programmer intended to share his secrets he would release his source code.

I know this RE clause is an obstacle for some programmers but with the CPW and so many strong open sources around, why would one need RE?
What about when a formal protest is filed after an ICGA event is held, the author refuses to present source code? I'm more than willing to be draconian and say "vacate the title, ban the player." But then you get to the "I lost the source" and similar. BTW does your "no RE" include other types of RE? IE no sitting down with a program and feeding it different positions to see what it does with them, in an attempt to understand what the program does internally? You REALLY want to tell me you have never done that? :)
bob
Posts: 20943
Joined: Mon Feb 27, 2006 7:30 pm
Location: Birmingham, AL

Re: Programmer code of honor (reminder)

Post by bob »

Rebel wrote:
Henk wrote:Ok, I removed the piece square table values from my chess program. They were not mine. I copied them from the piece square table contest. Costs me 100 ELO or so. My previous ones are crap.
If someone post stuff it's public domain, use it.
Totally wrong. Anything anyone posts is copyrighted unless the poster explicitly says "I forgo the copyright and place this into the public domain." You earn the copyright by writing the material. Unless you are quoting someone else's copyrighted material of course.
Sven
Posts: 4052
Joined: Thu May 15, 2008 9:57 pm
Location: Berlin, Germany
Full name: Sven Schüle

Re: Programmer code of honor (reminder)

Post by Sven »

bob wrote:
Rebel wrote:EU - http://en.wikipedia.org/wiki/Reverse_en ... pean_Union

In a nutshell, it's okay to RE software for investigation purposes, suspicion of plagiarism for instance. It's not okay to publish or to use the information for a competitive product.

US is not far behind.

http://en.wikipedia.org/wiki/Reverse_en ... ted_States

Bottom line RE - if the chess programmer intended to share his secrets he would release his source code.

I know this RE clause is an obstacle for some programmers but with the CPW and so many strong open sources around, why would one need RE?
BTW does your "no RE" include other types of RE? IE no sitting down with a program and feeding it different positions to see what it does with them, in an attempt to understand what the program does internally? You REALLY want to tell me you have never done that? :)
Good point, I think Ed should replace "RE" by "disassembling or decompiling". RE-ing by observing behavior of a program apparently is not what Ed wants to address.
Henk
Posts: 7251
Joined: Mon May 27, 2013 10:31 am

Re: Programmer code of honor (reminder)

Post by Henk »

Henk wrote:
Rebel wrote:
Henk wrote:Ok, I removed the piece square table values from my chess program. They were not mine. I copied them from the piece square table contest. Costs me 100 ELO or so. My previous ones are crap.
If someone post stuff it's public domain, use it.
If used the piece square tables from Pawel Koziol. He has an open source chess program Rodent with a few license agreements.

Also copying piece square tables may have the effect that my program starts playing a bit like Rodent. (Or is this comparable to rejecting blood transfusion ?)

To be on the safe side I think I try to invent suitable piece square tables of my own.
I looked in Chess programming web site and I saw that the piece square tables from Pawl Koziol are the same as those from Tomasz Michniewski.

See chess programming: Simplified evaluation function
wgarvin
Posts: 838
Joined: Thu Jul 05, 2007 5:03 pm
Location: British Columbia, Canada

Re: Programmer code of honor (reminder)

Post by wgarvin »

Henk wrote:
Sven Schüle wrote:BTW does your "no RE" include other types of RE? IE no sitting down with a program and feeding it different positions to see what it does with them, in an attempt to understand what the program does internally? You REALLY want to tell me you have never done that? :)
Good point, I think Ed should replace "RE" by "disassembling or decompiling". RE-ing by observing behavior of a program apparently is not what Ed wants to address.
I still don't understand why RE-ing is being singled out here. What is wrong with RE-ing other people's programs? If you learn something useful, what you learned is an idea (maybe a very small and specific idea, aka an "implementation detail").

Now if you _copy_ those details from a program you RE'd into your own program, then to me at least the result is not going to be an "original" program in the Rule 2 sense. [edit: nor the copyright sense, where it likely becomes a "derivative work"]

I guess I don't see why some people here apparently consider it unethical to take apart a machine and study how it works. No one should be forced to disclose freely the secrets of how their product works; but I also don't think we should forbid (through either law or social stigma) the taking apart and studying of things, and that is precisely what reverse engineering is. If someone is just using that RE process to copy all or part of a program, I think both copyright law and the vague Rule 2 "originality" concept already cover that.

I admit I haven't thought this through as much as some of the others here, so maybe I am overlooking something important.
User avatar
hgm
Posts: 28480
Joined: Fri Mar 10, 2006 10:06 am
Location: Amsterdam
Full name: H G Muller

Re: Programmer code of honor (reminder)

Post by hgm »

wgarvin wrote:I still don't understand why RE-ing is being singled out here. What is wrong with RE-ing other people's programs?
It could be illegal and a violation of the license agreement. As such it becomes a bit of a 'Robin Hood discussion': is it morally wrong to break the law if it is for the 'greater good'? And who is to say what is the 'greated good'? Robbing the rich to help the poor is still very popular nowadays. But we delegated the monopoly on that to the state, and call it 'taxes'. Should we go beyond the rules the state prescribes for this?
wgarvin
Posts: 838
Joined: Thu Jul 05, 2007 5:03 pm
Location: British Columbia, Canada

Re: Programmer code of honor (reminder)

Post by wgarvin »

hgm wrote:
wgarvin wrote:I still don't understand why RE-ing is being singled out here. What is wrong with RE-ing other people's programs?
It could be illegal and a violation of the license agreement. As such it becomes a bit of a 'Robin Hood discussion': is it morally wrong to break the law if it is for the 'greater good'? And who is to say what is the 'greated good'? Robbing the rich to help the poor is still very popular nowadays. But we delegated the monopoly on that to the state, and call it 'taxes'. Should we go beyond the rules the state prescribes for this?
I don't understand all this Robin Hood talk, or stuff about taxes. We were talking about reverse-engineering of compiled software programs. In some countries it is illegal (sometimes with exceptions for specific purposes), in others it is legal. I don't see what that has to do with Ed's code of conduct though. He appears to be exhorting programmers to pledge to act honorable way, and I don't understand why reverse-engineering is considered dishonorable. Copying other people's hard work, especially if you then try to pass it off as your own work, is obviously dishonorable. But taking apart something that another person built in order to learn its secrets (i.e. understand how it works) doesn't seem dishonorable to me.

It seems to me that its the copying without permission (whether its by RE or by cut-and-pasting from open sources) that we should be discouraging.

crappy analogy time: This is like asking everyone to agree "I won't ever own a gun", when it seems to me what we really want is for them to agree "I won't threaten or kill other people with my gun". A gun is just a tool, it has defensive uses too. It seems to me that Ed is asking programmers to shun the entire tool of RE, rather than the mis-use of that tool to copy other people's work.

[Edit: I guess I will stop belaboring the topic, though. I've made my point.]
User avatar
Rebel
Posts: 7522
Joined: Thu Aug 18, 2011 12:04 pm
Full name: Ed Schröder

Re: Programmer code of honor (reminder)

Post by Rebel »

wgarvin wrote:
hgm wrote:
wgarvin wrote:I still don't understand why RE-ing is being singled out here. What is wrong with RE-ing other people's programs?
It could be illegal and a violation of the license agreement. As such it becomes a bit of a 'Robin Hood discussion': is it morally wrong to break the law if it is for the 'greater good'? And who is to say what is the 'greated good'? Robbing the rich to help the poor is still very popular nowadays. But we delegated the monopoly on that to the state, and call it 'taxes'. Should we go beyond the rules the state prescribes for this?
I don't understand all this Robin Hood talk, or stuff about taxes. We were talking about reverse-engineering of compiled software programs. In some countries it is illegal (sometimes with exceptions for specific purposes), in others it is legal. I don't see what that has to do with Ed's code of conduct though. He appears to be exhorting programmers to pledge to act honorable way, and I don't understand why reverse-engineering is considered dishonorable. Copying other people's hard work, especially if you then try to pass it off as your own work, is obviously dishonorable. But taking apart something that another person built in order to learn its secrets (i.e. understand how it works) doesn't seem dishonorable to me.

It seems to me that its the copying without permission (whether its by RE or by cut-and-pasting from open sources) that we should be discouraging.

crappy analogy time: This is like asking everyone to agree "I won't ever own a gun", when it seems to me what we really want is for them to agree "I won't threaten or kill other people with my gun". A gun is just a tool, it has defensive uses too. It seems to me that Ed is asking programmers to shun the entire tool of RE, rather than the mis-use of that tool to copy other people's work.

[Edit: I guess I will stop belaboring the topic, though. I've made my point.]
I think I expressed myself clearly in this thread.

It's about EU Law and US is not far behind, read what it stipulates.

I don't think I have to explain the audience to whom it is addressed what the RE clause means, it's self understood, stealing for the use of a competitive engine, everything else is nitpicking words.