Log in

View Full Version : I was wondering...


Jimmy the Kidd
18-03-2011, 22:22
Is a team's code protected under some kind of creative license? What keeps other teams from taking their code (besides, you know, not making it public)? Has that happened before?

pfreivald
18-03-2011, 22:56
No, a team's code doesn't have any kind of intrinsic protection. That said, I've never heard of one team snaking another team's code without permission to use it.

Chris is me
18-03-2011, 22:59
Code, being intellectual property, is protected under copyright law.

I highly doubt any FIRST team would sue another in civil court over use of code.

pfreivald
18-03-2011, 23:04
Code, being intellectual property, is protected under copyright law.

Almost definitely untrue, if one is using anything from the established libraries.

Chris is me
18-03-2011, 23:05
Almost definitely untrue, if one is using anything from the established libraries.

Referencing a public domain (?) library does not make all derivative work inherently public domain.

theprgramerdude
18-03-2011, 23:19
Referencing a public domain (?) library does not make all derivative work inherently public domain.

It would if that public domain used is made public through the GPL.

pfreivald
18-03-2011, 23:26
Referencing a public domain (?) library does not make all derivative work inherently public domain.

I know. While I haven't researched the particulars of FIRST code, and am not an IP lawyer, I've signed my share of NDAs and developed my share of inherently copyrighted materials (from novels to encryption algorithms) to be fairly confident in my initial assertion...

...including on the general mootness of the conversation!

EricVanWyk
18-03-2011, 23:28
If you wish to re-use last year's code this year, you will have had to make it publicly available to all teams per R22. Presumably, this rule will stand for next season as well.

MattC9
19-03-2011, 00:13
If you wish to re-use last year's code this year, you will have had to make it publicly available to all teams per R22. Presumably, this rule will stand for next season as well.

Im not a programmer, so this isn't my turf. I just have a few questions.

Why would you have to make it publicly available and how would you do this? Also if I get a test code for a 6WD robot that is publicly available and use it on a competition robot, then reuse it for next year's robot, would I have to make it publicly available?

davidthefat
19-03-2011, 00:20
So I never understood why in the world anyone in FRC would want to hide their code. Unless it is absolutely hideous, I wouldn't care if anyone saw my code. If it is super advanced algorithms, I'll use bit and pointer arithmetics and never comment to hide my intentions. Not serious about that part, but what is there to hide?

Radical Pi
19-03-2011, 00:32
Also if I get a test code for a 6WD robot that is publicly available and use it on a competition robot, then reuse it for next year's robot, would I have to make it publicly available?

See the Blue Box under R22. Specifically this section:

Example: A different team develops a similar solution during the fall, and plans to use the developed software on their competition ROBOT. After completing the software, they post it in a generally accessible public forum and make the code available to all teams. Because they have made their software generally available (per the Blue Box in the definition of COTS, it is considered COTS software and they can use it on their ROBOT.

In summary, the software when downloaded was considered COTS. If said software is edited, it is no longer COTS until the revised software has been posted publicly, at which point it is again COTS and can be used next year.

One question though. It seems like the blue box under R22 conflicts with the one under the definition of COTS. See the bolded sections:

Example: A different team develops a similar solution during the fall, and plans to use the developed software on their competition ROBOT. After completing the software, they post it in a generally accessible public forum and make the code available to all teams. Because they have made their software generally available (per the Blue Box in the definition of COTS, it is considered COTS software and they can use it on their ROBOT.

The COTS box, however, has this:

For the purposes of the FRC, generally available software modules obtained from open sources (e.g. professional publications, commonly used FRC community accessible web resources, industry source code repositories, etc.) that are not specifically affiliated with individual FRC teams shall be considered COTS items.

Tell me if I'm mis-interpreting something, but isn't the posted code affiliated with an FRC team, and therefore not COTS, which is in conflict with the scenario listed in R22. Which one's right?

Kevin Sevcik
19-03-2011, 00:59
Just to inject a little more info into the conversation, the C++ WPILib is BSD licensed. Only requirements are that you maintain the WPILib BSD license notice. So Chris is correct that teams hold the copyright to their code, as with any other work of this nature.

IANAL, but I don't think a team would give up their copyright just because they posted the code on their website. Granted that it'd be much more definite if they actually note the copyright in the code or on the page, etc.

dtengineering
19-03-2011, 01:42
Is a team's code protected under some kind of creative license? What keeps other teams from taking their code (besides, you know, not making it public)? Has that happened before?

Well, if you are making your code public, presumably it is because you want to share it and help other teams make their robot better. While I would be disappointed to see a team just do a direct "copy and paste", I would be delighted if they were to study it, understand it, and recreate code with a similar function.

If you are making your code public and you don't want a team to look at it and learn from it, or even just copy and paste it, then why on Earth are you making it public?

Now, if you don't make your code public, then GP presents a team from taking it without permission. It is worth noting, however that other teams are part of the public, so when you make your code available to the public, you are, by definition, making it available to other teams.

Jason

Joe Ross
20-03-2011, 15:18
The COTS box, however, has this:

For the purposes of the FRC, generally available software modules obtained from open sources (e.g. professional publications, commonly used FRC community accessible web resources, industry source code repositories, etc.) that are not specifically affiliated with individual FRC teams shall be considered COTS items.

Tell me if I'm mis-interpreting something, but isn't the posted code affiliated with an FRC team, and therefore not COTS, which is in conflict with the scenario listed in R22. Which one's right?

Grammatically, the modifier goes immediately after the item it's modifying. In this case, saying not affiliated with an individual team goes immediately after open sources, not after software modules. It says that the code must be posted somewhere not affiliated with a specific team. You can't post it on your team website or your team forum, because teams wouldn't be expected to look there. You can post it on a FRC community accessible we resource (eg chiefdelphi, FIRST Forums, NI FIRST community, think tank, etc) or a industry source code repository (eg google code, github, etc).

This does not conflict with <R22>

Tristan Lall
20-03-2011, 15:41
I'm coming late to the IP discussion, but just to clarify some terms:
In the U.S., copyright is automatic. If you create a creative work as part of a private or non-federal government entity (e.g. yourself, a business, most state and local governments, etc.), it is automatically protected.
In the U.S., public domain means no copyright (i.e. the copyright expired, was abrogated, or never existed).
The GPL (GNU General Public License) is a copyright licence which allows you to modify and redistribute the work only under certain conditions (one of which is that derivatives will be available under the GPL). If it's already public domain, the GPL is irrelevant.
The same goes for Creative Commons licences, except that the "ShareAlike" provision is optional (i.e. the copyright holder can choose not to require it).
Code is considered a creative work, and is therefore copyrightable; algorithms are a grey area. Algorithms are sometimes held to be patentable, but this is another can of worms.

So basically, Chris is right. Code, even from a GPL-licenced library, is copyrighted, unless it has for some reason fallen into the public domain. If copyrighted, you can use it under the terms of the licence offered, or under fair use (http://en.wikipedia.org/wiki/Fair_use) (in the U.S.) or fair dealing (http://en.wikipedia.org/wiki/Fair_dealing) (in Canada and elsewhere).

Jimmy the Kidd
20-03-2011, 17:08
I had no intentions of trying to protect my code, and I haven't shared it. I'm not saying that I won't, though. I was just curious what realm code fell into.

MikeE
20-03-2011, 20:22
Grammatically, the modifier goes immediately after the item it's modifying. In this case, saying not affiliated with an individual team goes immediately after open sources, not after software modules. It says that the code must be posted somewhere not affiliated with a specific team. You can't post it on your team website or your team forum, because teams wouldn't be expected to look there. You can post it on a FRC community accessible we resource (eg chiefdelphi, FIRST Forums, NI FIRST community, think tank, etc) or a industry source code repository (eg google code, github, etc).

This does not conflict with <R22>

Joe - I hadn't interpreted the combination of R22 and the COTS definition as requiring publication on a non-team site, and was intending to publish our 2011 code in a new technical section of our team's web site, posting links on CD to our resources.

However now I've looked around a bit more, I think we will be using the Google Code solution.