Programmer code of honor (update)

Discussion of chess software programming and technical issues.

Moderator: Ras

User avatar
Houdini
Posts: 1471
Joined: Tue Mar 16, 2010 12:00 am

Re: Programmer code of honor (update)

Post by Houdini »

Don wrote:I have not personally done any RE of code for Komodo but Larry does a lot of reverse engineering and that would have to be considered wrong by your document too, right? So Larry cannot sign it.
The fact that RE is illegal does not stop you from doing it, it only stops you from signing the charter???
The point is not that what Larry does is "considered wrong by the document", the point is that it is an ILLEGAL ACTIVITY.
What you are saying here is that the Komodo team is willfully engaging in illegal activities to improve their engine.

Robert
User avatar
Don
Posts: 5106
Joined: Tue Apr 29, 2008 4:27 pm

Re: Programmer code of honor (update)

Post by Don »

Houdini wrote:
Don wrote:I have not personally done any RE of code for Komodo but Larry does a lot of reverse engineering and that would have to be considered wrong by your document too, right? So Larry cannot sign it.
The fact that RE is illegal does not stop you from doing it, it only stops you from signing the charter???
The point is not that what Larry does is "considered wrong by the document", the point is that it is an ILLEGAL ACTIVITY.
What you are saying here is that the Komodo team is willfully engaging in illegal activities to improve their engine.

Robert
I have made several statements over the past several months on this subject saying that I will not disassemble programs because it's not legal - or at least because I believe it's not legal. Until recently I was not even aware of that, but it's a moot point since I have not done this in the development of Komodo anyway.

You should also realize that I am not opposed to the concept but I do have respect for the law. Even if it were legal I probably still wouldn't be doing it simply because I am an old fashioned individualist - I prefer to think for myself. That does not mean that I do not realize the importance of keeping up with modern developments but those have all been exposed by Stockfish and the Ippo's anyway so there is no need to even consider doing something illegal.

If it were legal and I was inclined to do so, I still would not choose to look at Houdini, I would choose a program such as Junior, something that is substantially different than the source code already available and has some really original ideas in it.

Don't hold me responsible for anything Larry says, we don't think for each other and are allowed to have our own points of view. He HAS reverse engineered Houdini already as well as many other programs by carefully studying the way it plays, the scores it returns and many of it's characteristics including search. Sometimes he just noticed things without trying so if that bothers you then too bad. What he does is properly called reverse engineering so you could try to take him to court - probably the dumbest thing you could possibly do as it would draw a lot of attention to the origins of Houdini.
Capital punishment would be more effective as a preventive measure if it were administered prior to the crime.
User avatar
Rebel
Posts: 7376
Joined: Thu Aug 18, 2011 12:04 pm
Full name: Ed Schröder

Re: Programmer code of honor (update)

Post by Rebel »

Don wrote:
Rebel wrote:1. I think every programmer knows what RE is, disassembling the executable of a competitor and then hunting for its secrets.
That is a very narrow definition. Here is a much more accurate and reasonable from the wikipedia. I want you to realize that I'm not being picky or petty about a specific definition because it's critical to the entire argument in my opinion. If it's not addressed it will come up anyway sooner or later.

From the wikipedia:

Reverse engineering is the process of discovering the technological principles of a device, object, or system through analysis of its structure, function, and operation.[1] It often involves taking something (e.g., a mechanical device, electronic component, software program, or biological, chemical, or organic matter) apart and analyzing its workings in detail to be used in maintenance, or to try to make a new device or program that does the same thing without using or simply duplicating (without understanding) the original.
The page you refer also states this:
wiki wrote: European UnionArticle 6 of the 1991 EU Computer Programs Directive allows reverse engineering for the purposes of interoperability, but prohibits it for the purposes of creating a competing product, and also prohibits the public release of information obtained through reverse engineering of software.[24][25][26]

In 2009, the EU Computer Program Directive was superseded and the directive now states:[27]

(15) The unauthorised reproduction, translation, adaptation or transformation of the form of the code in which a copy of a computer program has been made available constitutes an infringement of the exclusive rights of the author.

Nevertheless, circumstances may exist when such a reproduction of the code and translation of its form are indispensable to obtain the necessary infor­mation to achieve the interoperability of an indepen­dently created program with other programs. It has therefore to be considered that, in these limited circum­stances only, performance of the acts of reproduction and translation by or on behalf of a person having a right to use a copy of the program is legitimate and compatible with fair practice and must therefore be deemed not to require the authorisation of the right­holder.

An objective of this exception is to make it possible to connect all components of a computer system, including those of different manufacturers, so that they can work together. Such an exception to the author's exclusive rights may not be used in a way which prejudices the legitimate interests of the rightholder or which conflicts with a normal exploitation of the program.
I know that US law is different but not far behind the EU. As it goes with new developments things first need to go out of hand before the arisen problem gets the attention it needs from law-makers, on average laws come 5-10-15 years too late.

I expect US will catch up because basically RE is hacking. And there is inequality. Hacking Komodo hardly is a risk but don't try it to the FBI and rightly so.

The EU has chosen to protect the creativity of its citizens by making RE (with the intend to profit) a punishable crime and IMO rightly so.

In my days I knew that some where after mine and it felt like someone is breaking into your house and rob your valuable things. I think if Komodo were a target (and it probably is) you would feel the same.

And as a side note, not related to you, but because I can't resist the temptation :wink: I would like to hear the opinion of the IGCA (headquarter London) on the matter of hacking and if that's acceptable for them.
User avatar
Don
Posts: 5106
Joined: Tue Apr 29, 2008 4:27 pm

Re: Programmer code of honor (update)

Post by Don »

Rebel wrote:
Don wrote:
Rebel wrote:1. I think every programmer knows what RE is, disassembling the executable of a competitor and then hunting for its secrets.
That is a very narrow definition. Here is a much more accurate and reasonable from the wikipedia. I want you to realize that I'm not being picky or petty about a specific definition because it's critical to the entire argument in my opinion. If it's not addressed it will come up anyway sooner or later.

From the wikipedia:

Reverse engineering is the process of discovering the technological principles of a device, object, or system through analysis of its structure, function, and operation.[1] It often involves taking something (e.g., a mechanical device, electronic component, software program, or biological, chemical, or organic matter) apart and analyzing its workings in detail to be used in maintenance, or to try to make a new device or program that does the same thing without using or simply duplicating (without understanding) the original.
The page you refer also states this:
wiki wrote: European UnionArticle 6 of the 1991 EU Computer Programs Directive allows reverse engineering for the purposes of interoperability, but prohibits it for the purposes of creating a competing product, and also prohibits the public release of information obtained through reverse engineering of software.[24][25][26]

In 2009, the EU Computer Program Directive was superseded and the directive now states:[27]

(15) The unauthorised reproduction, translation, adaptation or transformation of the form of the code in which a copy of a computer program has been made available constitutes an infringement of the exclusive rights of the author.

Nevertheless, circumstances may exist when such a reproduction of the code and translation of its form are indispensable to obtain the necessary infor­mation to achieve the interoperability of an indepen­dently created program with other programs. It has therefore to be considered that, in these limited circum­stances only, performance of the acts of reproduction and translation by or on behalf of a person having a right to use a copy of the program is legitimate and compatible with fair practice and must therefore be deemed not to require the authorisation of the right­holder.

An objective of this exception is to make it possible to connect all components of a computer system, including those of different manufacturers, so that they can work together. Such an exception to the author's exclusive rights may not be used in a way which prejudices the legitimate interests of the rightholder or which conflicts with a normal exploitation of the program.
I know that US law is different but not far behind the EU. As it goes with new developments things first need to go out of hand before the arisen problem gets the attention it needs from law-makers, on average laws come 5-10-15 years too late.

I expect US will catch up because basically RE is hacking. And there is inequality. Hacking Komodo hardly is a risk but don't try it to the FBI and rightly so.

The EU has chosen to protect the creativity of its citizens by making RE (with the intend to profit) a punishable crime and IMO rightly so.

In my days I knew that some where after mine and it felt like someone is breaking into your house and rob your valuable things. I think if Komodo were a target (and it probably is) you would feel the same.

And as a side note, not related to you, but because I can't resist the temptation :wink: I would like to hear the opinion of the IGCA (headquarter London) on the matter of hacking and if that's acceptable for them.
I don't think there is any difference in laws between the US and the European with respect to this. You make it seem like the European version is based more on greed and capitalism and that the US has not caught up with that - but all the laws in this regard are designed to protect big business. Any attention these laws are given are based on protecting some corporate software giant - not to protect Rebel or Komodo.

But you miss my point completely, I care about the law and will abide by it but the law is always subject to change and I don't agree with it in the form it is in now. It may in the future, if patent laws don't change, be impossible to even write a chess program without serious threat of a law suit - it's the way of the future. If MS decided to produce and push a chess program we will be getting sued and they will find some sort of patent infringement to hit us with. Or the concept will trickle down to us little guys and to have a program we will have to be willing to sue each other - just as a tactic. Of course I'm out when it gets to that point.

So it's the principle that I disagree with and I won't sign. There are ideas in Komodo that are unique to Komodo but I have no right (in my opinion) to claim them as my own - and I have no patents on them. I'm pretty sure that even by law we have no right to claim ideas for ourselves without software patents and as far as I know there are none. So Komodo's ideas are defacto in the public domain, all that is required is for you to reverse engineer them and it's my position that seeking public domain knowledge should not be considered illegal by law or decree. It's a really bad law or idea to have that in my view.
Capital punishment would be more effective as a preventive measure if it were administered prior to the crime.
User avatar
hgm
Posts: 28378
Joined: Fri Mar 10, 2006 10:06 am
Location: Amsterdam
Full name: H G Muller

Re: Programmer code of honor (update)

Post by hgm »

Well, you should never let the law bog you down! :lol:

Furthermore, RE through disassembly is not illegal per se. It depends on what you do with the knowledge thus obtained. I don;t think it would be illegal for me to RE Houdini, just because I am curious how it works, or for establishing likeness to some other program. It might not even be illegal when I would use the knowledge thus obtained to improve my XiangQi program, as it could be argued this is not a similar, competing product.
Last edited by hgm on Sat Jul 07, 2012 12:53 pm, edited 1 time in total.
mcostalba
Posts: 2684
Joined: Sat Jun 14, 2008 9:17 pm

Re: Programmer code of honor (update)

Post by mcostalba »

Don wrote:
From the wikipedia:

Reverse engineering is the process of discovering the technological principles of a device, object, or system through analysis of its structure, function, and operation.[1] It often involves taking something (e.g., a mechanical device, electronic component, software program, or biological, chemical, or organic matter) apart and analyzing its workings in detail to be used in maintenance, or to try to make a new device or program that does the same thing without using or simply duplicating (without understanding) the original.
This is a too general definition: we are talking of software here, not biological, chemical, etc..

When talking about software RE it means to look at the binaries usually by the means of some tool (a disassembler).

I never RE anything becasue I don't know how to do it and I don't want to spend days (weeks) learning it.

Said the above, in all my honsety, I CANNOT be against RE because I have took many ideas from some sources (ippo*) that I have made up my mind have been developed with the help of RE-ing an exsisting engine.

Note that in this case is totally off topic to debate if ippos are actually RE of Rybka or not. What it counts is that I believe they are and neverthless I looked at their sources and took ideas. This IMO makes me in a position where I cannot blame RE even if I have never used it personally, otherwise I would be an hypocrite.
User avatar
rvida
Posts: 481
Joined: Thu Apr 16, 2009 12:00 pm
Location: Slovakia, EU

Re: Programmer code of honor (update)

Post by rvida »

Rebel wrote:
I expect US will catch up because basically RE is hacking. And there is inequality. Hacking Komodo hardly is a risk but don't try it to the FBI and rightly so.
Ed, I don't think hacking and RE are synonymous. I always wondered why reading some of your posts leaves me with a bad taste. Now I realized it is because you call Ippolits a "hacked Rybka". Even if you believe the programs are somehow connected, the term "hacked" is technically not correct. IMO a "hacked program" means some modifications in the binary (most often to circumvent software protection or inject some malicious code).
Uri Blass
Posts: 10872
Joined: Thu Mar 09, 2006 12:37 am
Location: Tel-Aviv Israel

Re: Programmer code of honor (update)

Post by Uri Blass »

mcostalba wrote:
Don wrote:
From the wikipedia:

Reverse engineering is the process of discovering the technological principles of a device, object, or system through analysis of its structure, function, and operation.[1] It often involves taking something (e.g., a mechanical device, electronic component, software program, or biological, chemical, or organic matter) apart and analyzing its workings in detail to be used in maintenance, or to try to make a new device or program that does the same thing without using or simply duplicating (without understanding) the original.
This is a too general definition: we are talking of software here, not biological, chemical, etc..

When talking about software RE it means to look at the binaries usually by the means of some tool (a disassembler).

I never RE anything becasue I don't know how to do it and I don't want to spend days (weeks) learning it.

Said the above, in all my honsety, I CANNOT be against RE because I have took many ideas from some sources (ippo*) that I have made up my mind have been developed with the help of RE-ing an exsisting engine.

Note that in this case is totally off topic to debate if ippos are actually RE of Rybka or not. What it counts is that I believe they are and neverthless I looked at their sources and took ideas. This IMO makes me in a position where I cannot blame RE even if I have never used it personally, otherwise I would be an hypocrite.
I disagree here and being against RE is not going to make you hypocrite.
The target of being against RE is to prevent people to use RE to discover secrets.

After the secrets are already known the demage is done so the situation is different.
It is the same as a case when a newspaper that many people read published information against the law.

You can punish the people who are responsible for doing it but I think that there is no logical point in forbidding other newspapers to publish the same information later.
User avatar
rvida
Posts: 481
Joined: Thu Apr 16, 2009 12:00 pm
Location: Slovakia, EU

Re: Programmer code of honor (update)

Post by rvida »

hgm wrote: Furthermore, RE through disassembly is not illegal per se. It depends on what you do with the knowledge thus obtained.
I agree. Few years ago I hacked a quite serious product (the 4GL client by Progress Software Corporation). No lawsuit so far...

In version 8 they introduced (together with user defined functions) a very serious bug:

Code: Select all

ASSIGN
  table.field1 = some_value
  table.field2 = some_function().
This rather trivial code construct caused database corruption (and a serious flood of tech support calls).

Progress Knowledge Base entry #18223:
Assigning a key field in any statement before a reference to a
User-defined Function in that same statement has been found to cause
index corruption or give run-time error messages.
This applies to any statement that can have multiple assignments in
the same statement, e.g., ASSIGN, SET, UPDATE, IMPORT, PROMPT-FOR,
CHOOSE.
For at least 2 years(!) this bug was ignored by PSC. In version 8.3B they modified the compiler to issue a warning. In version 9 they finally fixed the bug.

This particular bug costed us some serious money. In desperation I used a debugger to find the bug myself and developed a fix for it. To all of our clients we distributed a small program that patched their Progress runtime binary. While this might be illegal (or in breach of EULA), I still don't feel like a criminal.
User avatar
hgm
Posts: 28378
Joined: Fri Mar 10, 2006 10:06 am
Location: Amsterdam
Full name: H G Muller

Re: Programmer code of honor (update)

Post by hgm »

I think there also is a distintion between criminal law, and private law. There is no such thing as a copyright-infringement police, or a patent police. There are laws for copyrights and patents, but the state does not track down or prosecute offenders. Breaching the law exposes you to a lawsuit by the party you wrong, which can sue you for damage. But if no damage can be established, I don't think that the law would help you to achieve anything.