Author: Dann Corbit
Date: 11:34:13 05/13/05
Go up one level in this thread
On May 13, 2005 at 06:15:49, Rolf Tueschen wrote: >On May 12, 2005 at 19:32:20, Dann Corbit wrote: > >>On May 12, 2005 at 19:11:47, Rolf Tueschen wrote: >> >>>On May 12, 2005 at 18:09:14, Dann Corbit wrote: >>> >>>>On May 12, 2005 at 15:41:11, Rolf Tueschen wrote: >>>> >>>>>This was coming from the thread Re: A Critic against Public Burning of young >>>>>Talents in Computerchess >>>>> +++++++++++++++++++++ >>>>> >>>>>On May 12, 2005 at 10:51:38, Uri Blass wrote: >>>>> >>>>>>On May 12, 2005 at 10:40:30, Dann Corbit wrote: >>>>>> >>>>>>>On May 12, 2005 at 06:16:29, Rolf Tueschen wrote: >>>>>>> >>>>>>>>On May 11, 2005 at 22:29:40, Mike Byrne wrote: >>>>>>>> >>>>>>>>>Enjoy life and just read what you want to read and enjoy the people that you you >>>>>>>>>like to be with. Life is too short for anything else. >>>>>>>> >>>>>>>>Mike, you are a very wise man. >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>>> >>>>>>>>>Best, >>>>>>>>> >>>>>>>>>Michael >>>>>>>>> >>>>>>>>>ps Thank you and Martin for Arena - the best free chess product made thus far >>>>>>>>>in this century! >>>>>>>> >>>>>>>>I must say this to the benefit of science. Nobody ever has researched the source >>>>>>>>code of ARENA. >>>>>>> >>>>>>>Not so. I have gone through the string table for Arena. It is written in >>>>>>>Delphi, so it could port to UNIX using Kylix. >>>>>>>Here is the list of dlls and binaries referenced: >>>>>>>\pifmgr.dll >>>>>>>\system32\pifmgr.dll >>>>>>>_isdel.exe >>>>>>>accuclck.exe >>>>>>>advapi32.dll >>>>>>>arena.exe >>>>>>>Av_BookBuilder.exe >>>>>>>BLDINDEX.exe >>>>>>>BookBuilder.exe >>>>>>>BookEdit.exe >>>>>>>cb3dviewer.exe >>>>>>>comctl32.dll >>>>>>>comdlg32.dll >>>>>>>CTL3D32.DLL >>>>>>>DGTEBDLL.DLL >>>>>>>dos4gw.exe >>>>>>>ELOStat.exe >>>>>>>explorer.exe >>>>>>>gdi32.dll >>>>>>>gnuchesr.exe >>>>>>>GradualTest.exe >>>>>>>HolmesCfg.exe >>>>>>>IMM32.DLL >>>>>>>install.exe >>>>>>>InstallCC.exe >>>>>>>kernel32.dll >>>>>>>notepad.exe >>>>>>>oleaut32.dll >>>>>>>PSAPI.dll >>>>>>>regedit.exe /s >>>>>>>Restarter.exe >>>>>>>RICHED32.DLL >>>>>>>setup.exe >>>>>>>shell32.dll >>>>>>>Speedtest\gtest.exe >>>>>>>start MSINFO32.exe >>>>>>>tail.exe >>>>>>>timeseal.exe >>>>>>>timestamp.exe >>>>>>>uninstall.exe >>>>>>>user32.dll >>>>>>>vcltest3.dll >>>>>>>winboard.exe >>>>>>>winmm.dll >>>>>>>winmsd.exe >>>>>>>wsock32.dll >>>>>>> >>>>>>> >>>>>>>You can see all the custom controls and the formats and pretty much everything >>>>>>>about the organization. Arena does not contain amazing new algorithms or >>>>>>>anything like that. What Arena represents is thousands and thousands of >>>>>>>man-hours of incredibly tedious GUI work. >>>>> >>>>> >>>>>Dann, I have some questions for you. >>>>> >>>>>The "tools" above - they could be used, and it wasn't "cloning" in your view. >>>> >>>>I do not understand your question. >>> >>>I was surprised that you can use dozens of programs and you could still claim >>>that you've created your own program? >> >>There is no law against learning. There is no law against absorbing ideas. >>What I cannot do is steal what someone else has done. I can read his program, >>understand what he did, and then do it myself. There is nothing wrong with >>that. What I cannot do is take his code and use it without permission. To do >>so would be morally and legally wrong. > >Fine. And who's controlling that for our professionals? The same people who are controlling fair trade and commerce for every industry. Without evidence of wrongdoing, it is not good to assume it. Even as you would not like to have false accusations, it is not good to assume that the commercial program vendors are bad people. In fact, they seem to be people of very high moral quality. >>>>>Now I have a missing part in my understanding as non-expert for programming. Do >>>>>you say (with others or all) that say - someone has a final product before his >>>>>eyes (a product from the leading company) that IF you are clever enough to write >>>>>down several thousands of lines in your own style (how could that be if >>>>>programming is using a specific language? What is the important thing in >>>>>programming? Knowing the language and then describe the orders or is it >>>>>important to solve thousands of problems to express what the program should do? >>>>>Excuses to all for my naive questions, but they are important for me to >>>>>understand where abilities reign or where simple cloning is taking place.) >>>> >>>>If the source code for a software product is available, cloning means to take >>>>that code, add a few tweaks, and say that you did it. >>> >>>Yes, I see, but if you say anything at all, is it still cloning? >> >>There are fair use laws that may make it OK to use certain small fragments. I >>do not know what the limits are and I would not try to test that law. > >About fragments. Would you please explain for me how difficult it is for a >programmer like Vladimir, after he had already created his Patriot 1.3., to take >certain fragments and combine them in his own style? It is not a simple thing, but it can be done. The odd thing is that combining other fragments is not appreciably easier than a rewrite by yourself. And if you understand the algorithm and rewrite it yourself you will probably: 1. Improve it. 2. Maintain your code base better. So I think it is always a mistake to cut and paste. You will lose in the end one way or another. >Could that be a task which >is the resason why so many chessprogrammers often have a break in their >attempts, sometimes several years? It will cause maintenance problems. I think far more likely the chess programmers just get bored of it. Chess programming is lower dollars per hour than a good programmer will make doing something more productive. So you have to do it for fun. >If that is the reason, then I would be >inclined to take your position in this debate. But if this is NOT a really big >task, I want to ask you why you want that open source code progs should be >respected at all? Because it is one of the best ways to teach and advance knowledge and information. Sometimes, an algorithm can be used in a very unexpected way. Let me give you an example. There is a project at the University of California at Berkeley called SIS. The idea of SIS is to take an electronic circuit board of AND, OR, NOR, and NOT gates and simplify it. The SIS project has a Berkeley license, which means that you simply must say that you used it but you can do anything you want to do with it. Now, I took the SIS code and did something unexpected with it. First, I spent a couple hundred hours debugging it (it was full of small problems). And then I used it to simplify SQL queries. Would you guess that these two SQL queries are equivalent: This query: SELECT * FROM Products_dataflex WHERE ((Products_dataflex.PRODUCTPRICE > 14) AND (Products_dataflex.PRODUCTKEYWORDS) Like '%coffee%') AND (Products_dataflex.PRODUCTGROUPID < 10) AND ((Products_dataflex.PRODUCTPRICE > 14) AND (Products_dataflex.PRODUCTKEYWORDS) Like '%coffee%') AND (Products_dataflex.PRODUCTGROUPID < 10) OR ((Products_dataflex.PRODUCTPRICE > 14) AND (Products_dataflex.PRODUCTKEYWORDS) Like '%coffee%') OR ((Products_dataflex.PRODUCTPRICE > 14) AND (Products_dataflex.PRODUCTGROUPID < 10)) OR ((Products_dataflex.PRODUCTPRICE > 14) AND (Products_dataflex.PRODUCTKEYWORDS) Like '%coffee%') OR ((Products_dataflex.PRODUCTPRICE > 14) AND (Products_dataflex.PRODUCTGROUPID < 10)) AND ((Products_dataflex.PRODUCTPRICE > 14) AND (Products_dataflex.PRODUCTKEYWORDS) Like '%coffee%') OR ((Products_dataflex.PRODUCTPRICE > 14) AND (Products_dataflex.PRODUCTGROUPID < 10)) OR ((Products_dataflex.PRODUCTPRICE > 14) AND (Products_dataflex.PRODUCTKEYWORDS) Like '%coffee%') OR ((Products_dataflex.PRODUCTPRICE > 14) AND (Products_dataflex.PRODUCTGROUPID < 10)) OR ((Products_dataflex.PRODUCTPRICE > 14) OR (Products_dataflex.PRODUCTKEYWORDS) Like '%coffee%') AND ((Products_dataflex.PRODUCTPRICE > 14) OR (Products_dataflex.PRODUCTGROUPID < 10)) AND ((Products_dataflex.PRODUCTPRICE > 14) OR (Products_dataflex.PRODUCTKEYWORDS) Like '%coffee%') AND ((Products_dataflex.PRODUCTPRICE > 14) OR (Products_dataflex.PRODUCTGROUPID < 10)) OR ((Products_dataflex.PRODUCTPRICE > 14) OR (Products_dataflex.PRODUCTKEYWORDS) Like '%coffee%') OR (Products_dataflex.PRODUCTGROUPID < 10) AND ((Products_dataflex.PRODUCTPRICE > 14) OR (Products_dataflex.PRODUCTKEYWORDS) Like '%coffee%') OR (Products_dataflex.PRODUCTGROUPID < 10) OR (NOT (Products_dataflex.PRODUCTPRICE > 14) AND NOT (Products_dataflex.PRODUCTKEYWORDS) Like '%coffee%') OR (NOT (Products_dataflex.PRODUCTPRICE > 14) AND NOT (Products_dataflex.PRODUCTKEYWORDS) Like '%coffee%') AND (NOT (Products_dataflex.PRODUCTPRICE > 14) OR NOT (Products_dataflex.PRODUCTKEYWORDS) Like '%coffee%') AND (NOT (Products_dataflex.PRODUCTPRICE > 14) OR NOT (Products_dataflex.PRODUCTKEYWORDS) Like '%coffee%') AND ((Products_dataflex.PRODUCTPRICE > 14) AND (Products_dataflex.PRODUCTKEYWORDS) Like '%coffee%') AND (Products_dataflex.PRODUCTGROUPID < 10) OR ((Products_dataflex.PRODUCTPRICE > 14) AND (Products_dataflex.PRODUCTKEYWORDS) Like '%coffee%') AND (Products_dataflex.PRODUCTGROUPID < 10) OR ((Products_dataflex.PRODUCTPRICE > 14) OR (Products_dataflex.PRODUCTKEYWORDS) Like '%coffee%') OR (Products_dataflex.PRODUCTGROUPID < 10) OR ((Products_dataflex.PRODUCTPRICE > 14) OR (Products_dataflex.PRODUCTKEYWORDS) Like '%coffee%') OR (Products_dataflex.PRODUCTGROUPID < 10) AND (NOT (Products_dataflex.PRODUCTPRICE > 14) OR NOT (Products_dataflex.PRODUCTKEYWORDS) Like '%coffee%') AND (NOT (Products_dataflex.PRODUCTPRICE > 14) OR (Products_dataflex.PRODUCTKEYWORDS) Like '%coffee%') AND (NOT (Products_dataflex.PRODUCTPRICE > 14) OR NOT (Products_dataflex.PRODUCTKEYWORDS) Like '%coffee%') AND (NOT (Products_dataflex.PRODUCTPRICE > 14) OR (Products_dataflex.PRODUCTKEYWORDS) Like '%coffee%') AND (Products_dataflex.PRODUCTPRICE > 14) AND ((Products_dataflex.PRODUCTKEYWORDS) Like '%coffee%') AND (Products_dataflex.PRODUCTGROUPID < 10) OR (Products_dataflex.PRODUCTPRICE > 14) AND ((Products_dataflex.PRODUCTKEYWORDS) Like '%coffee%') AND (Products_dataflex.PRODUCTGROUPID < 10) OR (Products_dataflex.PRODUCTPRICE > 14) AND ((Products_dataflex.PRODUCTKEYWORDS) Like '%coffee%') AND (Products_dataflex.PRODUCTGROUPID < 10) OR (Products_dataflex.PRODUCTPRICE > 14) AND ((Products_dataflex.PRODUCTKEYWORDS) Like '%coffee%') AND (Products_dataflex.PRODUCTGROUPID < 10) OR (Products_dataflex.PRODUCTPRICE > 14) AND ((Products_dataflex.PRODUCTKEYWORDS) Like '%coffee%') OR (Products_dataflex.PRODUCTGROUPID < 10) OR (Products_dataflex.PRODUCTPRICE > 14) AND ((Products_dataflex.PRODUCTKEYWORDS) Like '%coffee%') OR (Products_dataflex.PRODUCTGROUPID < 10) AND (Products_dataflex.PRODUCTPRICE > 14) AND ((Products_dataflex.PRODUCTPRICE > 14) OR (Products_dataflex.PRODUCTKEYWORDS) Like '%coffee%') AND (Products_dataflex.PRODUCTPRICE > 14) AND ((Products_dataflex.PRODUCTPRICE > 14) OR (Products_dataflex.PRODUCTKEYWORDS) Like '%coffee%') OR (Products_dataflex.PRODUCTPRICE > 14) AND (Products_dataflex.PRODUCTKEYWORDS) Like '%coffee%' AND (Products_dataflex.PRODUCTPRICE > 14) AND (Products_dataflex.PRODUCTKEYWORDS) Like '%coffee%' OR (Products_dataflex.PRODUCTPRICE > 14) AND (Products_dataflex.PRODUCTKEYWORDS) Like '%coffee%' OR (Products_dataflex.PRODUCTPRICE > 14) AND NOT (Products_dataflex.PRODUCTKEYWORDS) Like '%coffee%' AND (Products_dataflex.PRODUCTPRICE > 14) AND (Products_dataflex.PRODUCTKEYWORDS) Like '%coffee%' OR (Products_dataflex.PRODUCTPRICE > 14) AND NOT (Products_dataflex.PRODUCTKEYWORDS) Like '%coffee%' OR (Products_dataflex.PRODUCTPRICE > 14) AND (Products_dataflex.PRODUCTPRICE > 14) AND (Products_dataflex.PRODUCTPRICE > 14) AND (Products_dataflex.PRODUCTPRICE > 14) OR (Products_dataflex.PRODUCTPRICE > 14) AND 0 AND (Products_dataflex.PRODUCTPRICE > 14) AND 0 OR (Products_dataflex.PRODUCTPRICE > 14) AND 1 AND (Products_dataflex.PRODUCTPRICE > 14) AND 1 OR (Products_dataflex.PRODUCTPRICE > 14) AND NOT (Products_dataflex.PRODUCTPRICE > 14) AND (Products_dataflex.PRODUCTPRICE > 14) AND NOT (Products_dataflex.PRODUCTPRICE > 14) AND (Products_dataflex.PRODUCTPRICE > 14) OR ((Products_dataflex.PRODUCTKEYWORDS) Like '%coffee%') OR (Products_dataflex.PRODUCTGROUPID < 10) OR (Products_dataflex.PRODUCTPRICE > 14) OR ((Products_dataflex.PRODUCTKEYWORDS) Like '%coffee%') OR (Products_dataflex.PRODUCTGROUPID < 10) OR (Products_dataflex.PRODUCTPRICE > 14) OR ((Products_dataflex.PRODUCTKEYWORDS) Like '%coffee%') AND (Products_dataflex.PRODUCTGROUPID < 10) OR (Products_dataflex.PRODUCTPRICE > 14) OR ((Products_dataflex.PRODUCTKEYWORDS) Like '%coffee%') AND (Products_dataflex.PRODUCTGROUPID < 10) OR (Products_dataflex.PRODUCTPRICE > 14) OR ((Products_dataflex.PRODUCTKEYWORDS) Like '%coffee%') OR (Products_dataflex.PRODUCTGROUPID < 10) OR (Products_dataflex.PRODUCTPRICE > 14) OR ((Products_dataflex.PRODUCTKEYWORDS) Like '%coffee%') OR (Products_dataflex.PRODUCTGROUPID < 10) OR (Products_dataflex.PRODUCTPRICE > 14) OR ((Products_dataflex.PRODUCTPRICE > 14) AND (Products_dataflex.PRODUCTKEYWORDS) Like '%coffee%') OR (Products_dataflex.PRODUCTPRICE > 14) OR ((Products_dataflex.PRODUCTPRICE > 14) AND (Products_dataflex.PRODUCTKEYWORDS) Like '%coffee%') AND (Products_dataflex.PRODUCTPRICE > 14) OR (Products_dataflex.PRODUCTKEYWORDS) Like '%coffee%' OR (Products_dataflex.PRODUCTPRICE > 14) OR (Products_dataflex.PRODUCTKEYWORDS) Like '%coffee%' OR (Products_dataflex.PRODUCTPRICE > 14) OR (Products_dataflex.PRODUCTPRICE > 14) OR (Products_dataflex.PRODUCTPRICE > 14) OR (Products_dataflex.PRODUCTPRICE > 14) AND (Products_dataflex.PRODUCTKEYWORDS) Like '%coffee%' AND (Products_dataflex.PRODUCTPRICE > 14) OR (Products_dataflex.PRODUCTPRICE > 14) AND (Products_dataflex.PRODUCTKEYWORDS) Like '%coffee%' AND (Products_dataflex.PRODUCTPRICE > 14) OR (Products_dataflex.PRODUCTPRICE > 14) AND (Products_dataflex.PRODUCTPRICE > 14) OR 0 OR (Products_dataflex.PRODUCTPRICE > 14) OR 0 OR (Products_dataflex.PRODUCTPRICE > 14) OR 1 OR (Products_dataflex.PRODUCTPRICE > 14) OR 1 OR (Products_dataflex.PRODUCTPRICE > 14) OR NOT (Products_dataflex.PRODUCTPRICE > 14) AND (Products_dataflex.PRODUCTPRICE > 14) OR NOT (Products_dataflex.PRODUCTPRICE > 14) AND (Products_dataflex.PRODUCTKEYWORDS) Like '%coffee%' OR (Products_dataflex.PRODUCTPRICE > 14) OR NOT (Products_dataflex.PRODUCTPRICE > 14) AND (Products_dataflex.PRODUCTKEYWORDS) Like '%coffee%' OR (Products_dataflex.PRODUCTPRICE > 14) OR NOT (Products_dataflex.PRODUCTPRICE > 14) OR NOT ((Products_dataflex.PRODUCTPRICE > 14) AND (Products_dataflex.PRODUCTKEYWORDS) Like '%coffee%') AND NOT ((Products_dataflex.PRODUCTPRICE > 14) AND (Products_dataflex.PRODUCTKEYWORDS) Like '%coffee%') AND NOT ((Products_dataflex.PRODUCTPRICE > 14) OR (Products_dataflex.PRODUCTKEYWORDS) Like '%coffee%') OR NOT ((Products_dataflex.PRODUCTPRICE > 14) OR (Products_dataflex.PRODUCTKEYWORDS) Like '%coffee%') OR NOT (NOT (Products_dataflex.PRODUCTPRICE > 14)) OR NOT (NOT (Products_dataflex.PRODUCTPRICE > 14)) AND NOT (Products_dataflex.PRODUCTPRICE > 14) AND ((Products_dataflex.PRODUCTPRICE > 14) OR NOT (Products_dataflex.PRODUCTKEYWORDS) Like '%coffee%') AND NOT (Products_dataflex.PRODUCTPRICE > 14) AND ((Products_dataflex.PRODUCTPRICE > 14) OR NOT (Products_dataflex.PRODUCTKEYWORDS) Like '%coffee%') AND NOT (Products_dataflex.PRODUCTPRICE > 14) AND NOT (Products_dataflex.PRODUCTKEYWORDS) Like '%coffee%' OR NOT (Products_dataflex.PRODUCTPRICE > 14) AND NOT (Products_dataflex.PRODUCTKEYWORDS) Like '%coffee%' OR NOT (Products_dataflex.PRODUCTPRICE > 14) OR NOT (Products_dataflex.PRODUCTKEYWORDS) Like '%coffee%' AND NOT (Products_dataflex.PRODUCTPRICE > 14) OR NOT (Products_dataflex.PRODUCTKEYWORDS) Like '%coffee%' AND NOT ((Products_dataflex.PRODUCTPRICE > 14) OR (Products_dataflex.PRODUCTKEYWORDS) Like '%coffee%') AND NOT (Products_dataflex.PRODUCTPRICE > 14) OR NOT (Products_dataflex.PRODUCTKEYWORDS) Like '%coffee%' AND NOT ((Products_dataflex.PRODUCTPRICE > 14) OR (Products_dataflex.PRODUCTKEYWORDS) Like '%coffee%') OR NOT (Products_dataflex.PRODUCTPRICE > 14) OR NOT (Products_dataflex.PRODUCTKEYWORDS) Like '%coffee%' Becomes this one: SELECT t1.RECORD_NUMBER , t1.PRODUCTID , t1.PRODUCTNAME , t1.PRODUCTPRICE , t1.PRODUCTKEYWORDS , t1.PRODUCTGROUPID FROM Products_dataflex t1 by boolean simplification using SIS. The analysis found that the where clause is a tautology. So, our database customers benefit greatly from an open source project designed to create circuit boards. I also plan to implement chess search ideas into database search. But if I do something like that, I will very carefully follow legal guidelines. >If smart programmers could re-write the code? Isn't it a bit >uninteresting? Not at all. I believe that it is better to advance in knowledge by sharing information. I have participated in many open source projects, contributing my time, energy, work and code without cost because I believe it is a benefit to mankind. I have contributed to public domain projects, Berkeley licensece projects, GPL projects and many others. I think that (rather) it is the closed source projects that hold us back. If everyone understood how Shredder thinks, then all of us would write better chess programs. However, I also understand SMK's right to keep his own discoveries private. It is purely his choice and there is no fault in not explaining all. He does talk about the workings of Shredder more than some other professional chess program authors do. >>>In almost all >>>of your statements you claim sort of judicial law while I am talking about the >>>creative process similar to a science. Do you really believe that in science >>>certain public findings would be ignored if that is actually a helpful key for >>>your own work? >> >>There is a difference between stealing and learning. I think it should be >>obvious to an intelligent person such as yourself. > >Thanks for your sharp comment, but as long as you forget about other important >factors you shouldn't teach me this way. Sorry, but this must be said. I hope >that we can continue our friendly debate. You have an expert status that I will >never have, but you can't talk to me as if I were your little boy. It was not intended as a retort but as a compliment. Probably, it is a language thing. >Back to the topic. > >For the moment I see the problem of lacking control for what you state as the >law. But a law that can't be controlled or another term here which I dont know >as a German, such a law is as if it didn't exist. I detest the whole law debate. >Because if you go into court cases, I could well destroy SHREDDER and his author >by simply forcing the publication of the code under penal punishment of whatever >sum. It would have to be pure malice on your part, because you would have nothing to gain. Also, the analysis of the code in court will not cause the harm you think because it would still not be publicly shown and it will still have full protection of law. >Then it's a question of financial power alone. Do you want to support such >an issue? I don't think so. Here I presented now an aspect that is the most >vicious in the whole chapter of computerchess. It's always the amateurs with >little money who are dominated by such "control", but never progs of big [what >we call big in our field] companies. This is unfair. And therefore I don't like >your teaching me about the difference of stealing and learning. I do not think that there is a disparity of treatment for amateurs verses professionals. The professional programs already know how to write a chess program better than we do. There is almost no inducement for them to steal from us (in fact it would be incredibly stupid for them to do it). And to use the ideas of open source programs is actually the INTENT of the authors who publish them. That is (in fact) the very REASON that they show the source code -- it is a way of sharing ideas that is much easier than writing up a paper to describe what you did. >Know what I >mean? The more power you have the more you COULD steal if you wanted. - I'm NOT >saying that this already happened in reality. If I make a car in my backyard out of junk parts, Ferrari will not need to steal from me. For the most part, that is an apt analogy of the professional programs compared to the amateur ones. On the other hand, the pros surely will read the code, understand it, and use the idea. However, there is nothing wrong with that and [in fact] the one who published the code published it for that very reason. > > > >> >>>Think about politically or militarily research... >>> >>> >>> >>>> >>>>A similar thing is to take part of it and put it into your program. That is not >>>>cloning but might be a copyright violation depending upon the restrictions of >>>>the original source code. >>>> >>>>If you say nothing then your project is copyright. That means it CANNOT be used >>>>without written permission. >>> >>>I don't understand. You mean you can copyright an idea? >> >>No. You can patent an idea. If I do not have patent protection, then the idea >>belongs to everyone. But my implementation (e.g. my "code base") belongs to me >>if I wrote it. > >This is exactly my point as a lay. HOW difficult such a transformation could be. >I have the clear idea. I have the example of one implementation. Now how >difficult could it be to make my own version of that little piece of code? To use the idea is not difficult. It is also not wrong. Not in the least bit. >If >only you could explain that for a lay. Is it really correct if we assume that >this could be as difficult as wanting to become GM if actually you are just an >expert player in chess? What is the point? I would like to become a GM in chess, but I will never become one. I lack the ability. So the comparison of becoming a good chess programmer is much easier for me. >>>> >>>>If you say GPL, then anyone can use it, but their project must also become open >>>>source. >>>> >>>>If you say Public Domain, then the project can be used by anyone for any purpose >>>>that they like. There are many other license types. >>> >>>Let's think that someone doesn't inform the public at all, where is the guilt? >> >>There are special exemptions from copyright law for purely academic purposes > >Couldn't we take that into computerchess with its almost daily updates and news? >Not joking. Isn't it all a question of talking about what you are doing? Where >is the police officer who's controlling what a programmer is doing in his >kitchen? The only way legal entaglements will arise is if someone suspects wrongdoing and there is an investigation. This is the same as anything else. Consider the book "Roots" by Alex Haley which later became a mini-series on TV. Eventually, it came out that he borrowed some ideas from a book called "The African". If the author of that book or whoever it was that noticed it had never seen the similarities, then it probably would never have come out. In the case of open source chess programs, the authors are trying to share information and teach other people about chess programming. They do not object to the use of their ideas (unless they patent something). They do object to the stealing of their code (unless they make it public domain in which case they actually INTEND for you to use it in any way that you like). Or they may create a Berkeley style licence in which case you are allowed to use the code but you must say that you used it, or it may be GPL, in which case your project must be open source. There are many other variants. In any case, the ideas themselves are not protected. The reason that the source code is show is that the authors are willing to share their ideas. They will not be hurt if they show a clever way to search and you decide to try the same idea. In a similar vein, you will find that people will ask questions here about things like fail-soft alpha-beta and some expert like Dr. Hyatt or Tord or Fabian or Bruce will chip in and explain it. They will not feel hurt, but rather happy if the person to whom they gave advice uses it. Now, they will not like it if you violate the agreements of HOW to use their code. Since they are acting in such a kind and friendly manner, it would be a terrible faux-pas if we were to misuse that kindness in a lazy attempt to steal. And we will benefit ourselves MUCH more if we learn the ideas and implement them -- the way that the author actually intends it. >>>I >>>see two situations where guilt could become relevant. a) championships and b) >>>business. >> >>The relevant copyright laws apply. There are (of course) other areas of >>infringment. >> >>>>>I understood you until now as if the mere expressing of code is already a >>>>>creative performance. However I say that if I look at ChessBase 8 or 9 and ask >>>>>myself, well, how should I state my code so that the result is similar to >>>>>ChessBase, is it still authentical performance? I doubt that. >>>> >>>>You are mistaken. The interface to a program is not copyrightable. This has >>>>been established worldwide through many court cases. I can write a program that >>>>does the same thing as your program. It can even look extremely similar to your >>>>program. The violation occurs if you take my code and do not follow the rules >>>>associated with the thing that you took. >>> >>>And all the creative inventions of chessBase could be stolen? Or copied? This is >>>IMO a bad practice. >> >>But that is the way that it is. They can protect themselves via: >>1. Copyright >>2. Patent >>3. Trade secret. >> >>It is the same for any industry. > > >Total agreement. But all that should apply in computerchess too? Again - with >its daily improvements? Yes, it should. >>>So, I don't understand why Arena is the best that was >>>created in computerchess, something Mike has declared. I simply can't understand >>>it. >> >>I do not understand this statement. >> >>> >>>> >>>>>IMO the >>>>>autheticity of a creative performance would ONLY exist IF the whole presentation >>>>>would be DIFFERENT to that of ChessBase 8 or 9. >>>> >>>>This understanding is definitely not correct. >>> >>> >>>Ok, maybe, but what Vladimir did, that was wrong? >> >>If he took the ideas he did nothing wrong. If he took the code, then he broke >>the law (unless he follows the license agreement which is GPL). So far, he is >>denying it. > >What was worse? That he took some code for a fortnight before he made his own >code or that he allowed Frank to sell the program as if it was his own creation? If someone sells a product, he is not liable if he does not know it is defective or stolen (though he may get some harm if he does not take adequate steps in some instances). However, if he knows the product is stolen or even if he knows it MIGHT be stolen, he now becomes liable. Therefore, I think Frank has acted in a completely responsible way. >>>>>But if in the end all features >>>>>and menues are the same (with meaningless changes by chance) then it's a clone >>>>>IMO. >>>> >>>>No. >>> >>>Let's debate without getting into justice and law. >> >>On what grounds will we discuss a legal and moral issue without using justice >>and law? > > >I already said it. On the grounds of a do-able controlling. If you can't enforce >control then you should rely on laws. Laws may or may not be enforceable. In any instance, we all have personal responsibility. >> >>>>>Could you explain exactly where I may be wrong in the above? Or anybody else >>>>>please. I can only say that I almost smell that something is totally wrong in >>>>>the debates. And therefore I was already in opposition in the famous LIST case. >>>>>It's ridiculous in my eyes if a program is so good, much better than the model, >>>>>to then search for similarities (sic!) which couldn't explain why then the new >>>>>product is much better than its model. >>>> >>>>Making a program much stronger might be one or two lines of code, or even less >>>>-- to repair a bug it might be one character changed. >>> >>>Yes, and why should that be forbidden? In sports? >> >>Because it is against the law. If you write a book, and I find a typographical >>error in it and then republish the book after adding a missing period, I broke >>the law. Similarly, you cannot steal a computer program that I wrote. > > >Is it true that a chess programm has an appendix with all the used sources? If >NOT, then what is the point? You will frequently find projects where a chess program author carefully documents the chess projects he has used to inspire his own work. Actually, most of them are like that (except for some Pioneers like Arasan where almost nothing was available). >>>>>How important is it then to debate a >>>>>possible "cloning"? As Fabien expressed, we all base on former models and it >>>>>makes no sense to force people to always invent new the old models. >>>> >>>>I agree. But if you use Fabian's code, your project must be open sourced and >>>>also GPL licensed. Otherwise, it is actually illegal. >>> >>>As I asked you, who could ever prove a famous program to contain forbidden code? >> >>A court of law. It has been done. > >You mean the Fidelity/Steven case? No. I mean software in general. I do not know of any case that is specific to chess. But the software laws clearly apply to the computer chess situation. >>>>>Could you try to explain where it becomes a crime or fraud or where it's simply >>>>>a learning process on the base of former creative products? >>>> >>>>When you violate the license agreement of the tool that you are using. >>> >>>Are ALL other programs except Patriot checked on such a problem? >> >>No. >> >>>>>I would be very thankful to all input. >>>>> >>>>>That is not a topic in favor of Vladimir Velin; no, it's the analysis that could >>>>>constitute a new beginning of creative chess programming, where young talents >>>>>can concentrate themselves on NEW tasks and challenges without losing time with >>>>>always doing the same what already had been done by former collegues. >>>>> >>>>> >>>>> >>>>> >>>>>>> >>>>>>>>So far. I just want to mention that during the Patriot debate in >>>>>>>>other fora there were opinions that the authenticity of many other software was >>>>>>>>never analysed. Simply because nobody had access to the specific products. This >>>>>>>>is the same for professional products in computerchess and also for such FREE >>>>>>>>works like Arena. What we do know is that the main pieces of computerchess >>>>>>>>programming have been used by almost all prtogrammers. There nobody would claim >>>>>>>>the term fraud. >>>>>>>> >>>>>>>>I finish this message with the hint, that in Franks Quisinsky's News pages he >>>>>>>>presents an interview with the programmer Fabien T. of the alleged original of >>>>>>>>Patriot 2. The interview was led shortly before the Patriot 2 debate came up. I >>>>>>>>can only say that Fabien gave very interesting comments on that topic of copying >>>>>>>>certain contents of programming a chess software! He can't see the problem...! >>>>>>>>But we here produce a public withch-burning. I'm still against such public >>>>>>>>attacks against young talents, no matter how wrong they are. Criticising Hsu, a >>>>>>>>veritable academic, or attacking Bob, a veritable Professor in Computer >>>>>>>>Sciences, this is a completely different thing like to bury the young man from >>>>>>>>Bela-Russia. Please excuse my emotional appeal. >>>>>>> >>>>>>>Patriot has NOT been proven a clone. There is compelling evidence to suggest >>>>>>>that it MIGHT be. >>>>> >>>>>Dann, how does that confirm with what you wrote one or two days ago? I can find >>>>>the exact URL if you want. You were the highest expert (to my knowledge) who >>>>>made a clear verdict. Why? If it's not clear? >>>> >>>>There is clear evidence that Patriot is PROBABLY a clone. It is not proven. I >>>>have never said that it is proven. It is (however) quite likely. >>> >>> >>>Thanks for this clarification. But if that is the case so far, not proven, I >>>would prefer not having read the ironical, sarcastic questions to Vladimir >>>Yelin. Just a surprise in such a community. >>> >>>> >>>>>>>In the case of Patriot, I think that there is special concern since it is sold >>>>> >>>>> >>>>>You mean Patriot 2? >>>>> >>>>>If Vladimir is able to program on his own a machine with 2500, how then would it >>>>>be a fault if he now tried to enter a higher class by simply basing his program >>>>>on a already stronger model? With open source? >>>> >>>>If he uses an open source program then he must abide by the open source license. >>> >>>And in computerchess we have police officers who control all programs on such >>>violations? >> >>It is the same as anything else. Probably, lots of ideas have been stolen in >>life without proper permissions. Sometimes the thieves get caught and sometimes >>they do not. Someone might patent a special door hinge. Someone else might >>steal his idea and sell it. Whether he gets caught or not, he still did >>something wrong. We do not check every seller of a door hinge on earth for the >>methods of making door hinges. So, as with anything else, the thief might get >>away with it. He might also get caught. > >In science we have the history of the discoveries at the same period of time in >different parts of the world. Under complete hidance. But what is happening in >computerchess if people open their sources for the public? I ask again: is it >exactly defined until when it's fraud and from where on it's allowed borrowing >and transfer of ideas into your own style? If you do a web search for "Technical Report" you will find literally millions of hits. People all over the world are sharing information. Every 5 years, all the information that we have in the world doubles. If you are not ready for it, then you had better get out of the way because information sharing is now completely unstoppable. This is not a bad thing, it is a very good thing. Even at that, there are rules that must be followed for any decent civilization including rules about information sharing. We should all do our best to follow those rules. >>>>In the same way that I cannot copy a book and change a few lines and say that >>>>the new book is mine (despite the public nature of the book) I cannot do that >>>>with a program either. So if I want to use it, I must obey the restrictions >>>>that are attached to the project. >>> >>>But Nullmove and all these tricks could be taken into your program... >> >>There is nothing at all (legally or morally) with using these ideas. >> >>>Interesting. Sorry for the sarcasm from my side. Just to initiate a lively >>>debate. >> >>The sarcasm misses me completely > >Let's not come up a certain spice. We're talking among almost friends, no? What I meant was that I felt no harm from the sarcasm (and even more so I did not actually understand what was sarcastic). >> >>>>>>I think that patriot was proven to be illegal because there is too much >>>>>>similiarity to have reasonable doubt. >>>>> >>>>> >>>>>Uri, could you try to answer the above questions I have? Where is the limitation >>>>>of similarities? >>>>> >>>>> >>>>>> >>>>>>I will not discuss the meaning of the word clone but it is clear that the >>>>>>programmer did not take ideas from fruit(it is legal) but simply copied the code >>>>>>and made small changes. >>>>> >>>>> >>>>>Yes, Uri, maybe, but why do you argue as if this collegue had decided to stop >>>>>programming now? As if he now would want to stop with a copy of another program? >>>>>Wasn't he a good collegue before with the 2500 program? Wasn't that already a >>>>>good performance? >>>>> >>>>>Excuses if such questions could sound like insults to programmers because these >>>>>questions do come from a naive lay like me! >>>>> >>>>>Rolf >>>>> >>>>> >>>>> >>>>> >>>>>> >>>>>>Uri
This page took 0.01 seconds to execute
Last modified: Thu, 15 Apr 21 08:11:13 -0700
Current Computer Chess Club Forums at Talkchess. This site by Sean Mintz.