Rolf wrote:hristo wrote:Dann Corbit wrote:
Here is what is allowed:
1). To read someone's code, learn the algorithms, and write your own version. This is totally fine (legally, morally, and otherwise) unless there are patents on the algorithms (which do not pertain to Russia or Europe anyway?).
At any rate here is what is not allowed:
2). To copy and paste some code from a licensed program and not follow the license.
Hello Dann.
Notwithstanding Russian law, with which I'm completely unfamiliar, do you believe that the following is acceptable (allowed):
1) Decompile (or otherwise extract and translate portions of a binary file) and then integrate some of this translated code into ones own program. (Normally this integration would require some instrumentation of the decompiled code)
2) Identify portion of a binary file that can be extracted and then directly included into another binary, without going through intermediary translation. (this is more difficult to do when compared to decompiled code, but is certainly possible with some instrumentation of the copied code.)
Dann,
you mentioned license and I presume you mean the EULA. In most general terms the
user license agreement is concerned with the right to
use the software and has this form:
"The user is granted the right to use this software under these conditions ... [conditions] ... failure to satisfy the conditions may result in revoking the right to
use the software."
This is pretty much where the User License agreement ends. In this sense if the license is "You can use this software without restrictions" this means that there is nothing you can do to lose your right to
use the software. However, what the above 'license' doesn't say is that you
own the software.
The important difference, IMO, is the transfer of ownership, which is necessary for IP-rights -- there is a distinct difference between "You have the right to use this software regardless of what you do" and "You own this software".
I don't remember ever seeing software EULA that transfers IP-rights to the individual user. The 'owner' of the IP must be a well defined entity otherwise the users can start seeking legal actions against each other due to "everyone is an owner" paradox. When a transfer of ownership is not specified then, naturally, the original author [creator] remains the only owner.
Analyzing the code for infringements doesn't have to be limited to 'source code' similarity. This is especially relevant when someone is trying to reconcile similarities between 'original source' and 'translated [decompiled] source' -- it is very unlikely (in fact, impossible) to have the code be a perfect match under those circumstances. What may become relevant in this case is (among many others):
1) History. Does the offending piece of software have history (CVS, SVN, other) that can be traced to establish its emergence or did the source code pop-out from 'nothing'.
2) Does the offending code appear to be decompilation [mechanical translation of machine code to human readable code]. There are some clear signs when people have copied and used decompiled code.
3) The authors understanding of the code. If the author has no understanding of how the code works (and why) and cannot satisfy #1 then there is an indication of 'copy&paste' procedure.
4) The author's own admissions. (for instance: "I decompiled this program" ... etc.)
Best Regards,
Hristo
I would be very pleased as a lay if someone, also D.Corbit, could answer this well-thought message. IMO it's a form of abuse if someone denies to answer such questions when he's into the topic with so much knowledge. The question is so important because two well-known experts had once stated that Strelka were NOT a clone. But why would it be dangerous to publish one's code if it were a totally own creation?
Of course one would at first ask if such a stupid publication couldnt be harmful for the creator himself
a) either because he had stolen data from other programs or
b) because he might publish his own findings in computerchess.
The case seems to be otherwise however!
There is no own data in it and the data is stolen. But then the program has been re-written with a certain creativity.
Why should someone do such a thing if he would stand under the laws of a legal copyright system and if he then could be sued?
I would be much more interested in the answers on questions concerning how deeply the commercial programs have already borrowed data from Rybka and how this could be reveiled and how this could be potentionally be prosecuted by our legal system...
Any ideas from the experts?
I am not sure that I totally understand your question.
There are two sorts of right and wrong.
There is legally right. This means that you are obeying all the laws withing your jurisdiction.
There is morally right. This means that you are obeying some fundamental, underlying principle.
Legally right is easy to define. Just obey the laws.
Morally right is very difficult to define. For instance, Stallman argues that all software should be open source. I do not agree. So his "morally right" and my "morally right" may differ. Which one of us is correct? We all have sets of principles that *we* choose for one reason or another.
Now, to the issues at hand:
There are some things that can never obtain a patent. See, for instance:
http://inventors.about.com/cs/patentsba ... ualify.htm
"Determine that your idea is not one of the following: a law of nature, physical phenomena or abstract idea. This means, for example, that you can't patent math, herbs as a new medicine or lightening."
Now, an algorithm seems like mathematics to me (and so *I* would not personally obtain a software patent, because they seem immoral to me, though I recognize them as legal and would therefore not knowingingly violate one), but that is neither here nor there.
Copyright does not cover algorithms. Anyone can disassemble software for educational purposes. That is clearly legal. Whether it is *morally right* or not is another issue altogether, and the deciding factor is possibly personal. If I have learned an algorithm through disassembly, it is not illegal for me to write a version of it. It may be *immoral*, but who can decide about this other than our own personal decisions?
Now, as to whether the Strelka author has committed a crime of any sort I cannot say. I am not a lawyer. I am unable to see any proof of legal wrongdoing. There may be moral wrongdoing.
I am not decided if it is wrong to disassemble Rybka 1.0 and learn an algorithm. I have leanings in both ways. I won't *personally* do it, but if someone else does that I cannot say that they have done something wrong.
I do not know for sure if wrongdoing has been done in borrowing from Fruit either. Again, by wrongdoing, I mean legal wrongdoing, and not moral wrongdoing.
There is one thing that I find outrageous. The Stelka author never mentioned Fruit or Rybka. It is fairly clear that ideas were borrowed from both. Now, I am not sure if it is necessary *legally* to describe this, but (for me at least) it seems morally outrageous that he never mentioned the path of information. In a printed work, this would clearly constitute plagiarism. I have no idea if this sort of thing pertains to software, but I think that if it isn't it should be. But I do not write laws or have any affect on them and so my opinion means nothing.