Is it, by this license, I'm not able to derive code from any robots under this license and use it in my robot where all my other code are either close-sourced or under the different license (such as NPRL)? I know that you guys are not lawyers, but please answer. » Nat | Talk » 14:37, 20 August 2009 (UTC)
Right. If you use code from a RWPCL bot, your new robot's full source code must be open source under the RWPCL. This would apply to not just source code, but also to ideas or concepts that you learn from studying a RWPCL bot's code. The latter is a little bit fuzzier, as it's harder to prove, and many of those ideas/concepts can be found in non-RWPCL places, as well. This is generally called a Copyleft type of license, like the GPL. --Voidious 14:46, 20 August 2009 (UTC)
- Um, no. You can't copyright ideas or concepts, only fixed implementations. If I copy a RWCPL snippet of code -- even if I make major changes -- and use it in a closed-source bot, then that's bad. But if I'm a beginning robocoder and learn how to do a for loop in Java, or how HOT works, or even more advanced concepts after reading RWCPL code, then I'm free to apply that knowledge to any aspect of my life and the RWCPL doesn't get to tag along. --Darkcanuck 15:08, 20 August 2009 (UTC)
- Agreed, however the existing RWPCL page says 'concepts' which is a bad thing. Note though, with copyright there is a fuzzy line where copying out code from memory can be a violation but writing code based upon concepts remembered is not a violation. In some cases where the number of ways to implement a concept is limited then the issue gets even fuzzier really. Regardless of that fuzzy area though, indeed concepts can't be copyrighted. --Rednaxela 15:15, 20 August 2009 (UTC)
- Hmm, right, I apologize for the misinformation. I'm fairly certain that, for some intellectual property (just patents?), there is more than just copy/paste at issue. Like I know that for my job, if I have even seen source code from certain other companies, I would be "tainted" and unable to work on certain of our products due to legal concerns with (even accidentally) lifting IP. But perhaps that is totally irrelevant to copyright, which is all we're dealing with here. --Voidious 15:20, 20 August 2009 (UTC)
- Well, I'm rather sure that issue with things being "tainted" is directly relevant to copyright. That is exactly the fuzzy area I was talking about. The issue is that it can be hard to distinguish between code created from memory that is a derivative work of other code (even accidentally), and code that was merely based on the concepts. While there is no hard line legal requirement that prevents seeing the other code, almost any sane company has strict policies to steer clear of that fuzzy area because who knows how the heck that fuzzy area could be interpreted in court. --Rednaxela 15:28, 20 August 2009 (UTC)
- (edit conflict) No worries, it's a thorny issue. As Rednaxela pointed out, if you read some code then reproduce it from memory (which could be inadvertent) then you've actually copied it. If your company wanted to be super cautious, you wouldn't be able to look at any open source code (imagine how much RWPCL you've read/created!) for fear that it might slip into your work. But folks in this community probably don't have lawyers on retainer or have a compelling motive to sue, like your competitors might. Patents are different, they can cover a "way of doing things" (there are ridiculous patents that have been applied for, such as how swing on a swingset) and can cover ideas and concepts. But they're not automatic, you have to apply for one and it must be reviewed before it can be granted. It would be interesting if ABC were to patent Wave Surfing. =) More info on wikipedia/IP --Darkcanuck 15:42, 20 August 2009 (UTC)
- Interestingly, my company is super cautious, and I actually did have to get specific permission to read/publish Robocode-related open source stuff, though I knew it would probably fly under the radar anyway. Producing for our IP lawyers a list of all the open source bots I'd looked at was quite tedious (and probably more so for them). --Voidious 15:51, 20 August 2009 (UTC)
- Wow, lawyers and Robocode mixing! I never thought I would see the day. --ABC 16:28, 20 August 2009 (UTC)
- Sorry, but yes, you would be "obligated" to make your bot RWPCL. I believe Simonton's is published with no license restrictions. It is strange to see the legal world cross paths with our little Utopia here =), but alas, many of us are professional programmers that need to deal with these issues. --Voidious 16:50, 20 August 2009 (UTC)
- I disagree. If it were not important to Robocoders if/how their code were used, we wouldn't have such a diverse set of open source licenses, nor any bots that are closed source. I would agree that these licenses are unlikely to be legally enforced, if that's how you define "important". But given that there's no money at stake and that Robocoders have always been an honorable bunch, I don't see that as a major issue. Imagine if someone adapted some code from one of our bots to win something like the Netflix Prize -- suddenly the code's license would seem very important. =) --Voidious 17:28, 20 August 2009 (UTC)
|Thread title||Replies||Last modified|
|Ball of Wax||6||22:19, 16 November 2012|
I have recently restumbled upon this. I was in the middle of looking what year Raiko was made, to determine the age of Raiko's gun (that I use in Nene). Realizing that it is 8 years old I also notice that the code is under this license.
This means Nene is actually released under the RWPCL as well. Does this mean just this version of Nene, and I can go and rerelease it under a more permissive license if I remove the RWPCL code, or is all of the code irrevocably RWPCL forever.
Because if it is the latter it also makes Rednaxela's code RWPCL, as well as Midboss and RougeDC by proxy. Which I don't want to force on him. Unless licenses are not retroactive, in which case those robots are safe.
All because of the very all encompassing "full source code of your system" clause.
I personally think if I wrote the code in question I should be able to license any particular version of it however I want, even if that causes the exact same code to fall under multiple incompatible licences.
Actually after reading up on a little copyright law. As the copyright holder of the additional code. I can chose to redistribute that code under a more or less restrictive license as long as it does not contain any incompatibly licensed code within its whole, regardless of any and all clauses defined within previous licenses (including a strong copyleft). However if any of the code that I am not the copyright holder of were to remain, then it would be unlawful for me to release it under any license that violates its license.
At least, that is as I understand it. I'm not a lawyer.
So Rednaxela is in the clear, as is Etna/Scarlet. But I do have to change Nene's license until such time I remove all RWPCL code from it, even then the older version of the code would still be RWPCL, as it contains Raiko's Gun (which is licensed under the RWPCL).
A few thoughts:
- I don't think it means Nene is under RWPCL, only that perhaps it should be, and that you are risking a lawsuit from Jamougha by breaking the license. =)
- I'm almost certain you can rewrite the RWPCL parts and then be free of the viral licensing obligations.
- Code can definitely exist under multiple, totally different licenses.
- If Rednaxela already released his kd-tree under zlib, then someone releases a bot with his kd-tree and Raiko's RWPCL gun, it couldn't possibly retroactively make his kd-tree RWPCL.
- Some code would never hold up to scrutiny in terms of copyright infringement - I wouldn't worry about things like absoluteBearing, project, and lots of other trivial stuff. I've read that you probably couldn't copyright a tweet, and these are far less content than that.
(Edit: Oops, guess I'm late, but anyway...)
I use angleToEnemy rather then absoluteBearing. I have for awhile. Since absoluteBearing was generally semi-meaningless to me... (absoluteBearing to what?)
Though I could easily see an argument otherwise. Robocodes api confuses the matter with getBearing(). Since otherwise bearing could mean 'the angular direction of a line, point, or course measured from true north or south', where in this case, it is actually the angle 'the amount of rotation needed to bring one line or plane into coincidence with another'.
Absolute bearing is relative to the angle pointing up (north), relative to the battlefield. Making it independent from bots headings. Just guessing, didn´t look at the code.
Basically, I was just saying that getBearing is poorly named, and I don't use absoluteBearing since it doesn't make any sense to me. Since 'bearing' by itself is by definition an angle relative to some fixed direction (which getBearing confuses the meaning of, returning data from a different frame of reference to all other methods).