Philosophy: How far back does "Attribution" go ?

I am a newcomer to Arduino, but a longtime occasional developer. Arduino and open source has got me dizzy with excitement and ideas, but I also carry guilt that I bought my first Arduino for a work-related project that cannot be openly shared. I have 2 more Arduinos on the way strictly for hobby related stuff and will release anything that might be useful to the community.

Some googling about open source leaves me confused about how CC relates to Arduino and especially the way code is bandied about on this forum.

(1) Under the CC ShareAlike license one must rightfully attribute one's sources and predecessors. Question is does this go all the way back to Alan Turing, and if not, what defines a reasonable cutoff?

(2) If someone publishes their sketch on this forum, does this constitute a public release to everyone who reads the post? That doesn't sound right, but neither does the alternative.

Am trying to contain my zeal as a new Arduino convert, but the whole Arduino movement is truly wonderful.

It can be a confusing subject, and I can't claim to understand it well.

Also keep in mind that the Arduino platform is built on several open source projects:

The Arduino written stuff
The AVR gcc compiler/linker stuff
The wiring projects stuff
The processing projects stuff

I'm not sure they all share the same licensing scheme or not.

Lefty

If someone publishes their sketch on this forum, does this constitute a public release to everyone who reads the post? That doesn't sound right, but neither does the alternative.

Authors of code automatically have copyright over their creation. That means, if they expect it to be shareable, it should at some point get an attached notice about the exact terms.

In particular, if someone posts code with a "can someone help me get this working" comment, that doesn't mean that that code is automatically shareable. A reply containing some clever idea should be shareable (for the piece of code provided.)

Code should have a license attached if you put it in the "playground."

It is my opinion that "lawyers" are keen to remind us that if someone makes no attempt at protecting their intellectual property they have actually forfeited some rights to claim how it gets used.

So, if you share your code and want some control over it... add some form of license at the top of the code and to any related texts. I believe that the nature of the "requirement" about derived work is that you include "credit headings" from your reference. If they claimed original work.. then that's all. If the work you are deriving yours from is also derived from other sources... it would already be noted in the credits headings you are adding to your source.

If you "find" code with no license... you technically can do with it what you please. Good behavior dictates that you at least say where "your" code is derived from lest we start to hear claims of "foul play"

The nature of the Arduino and its community lends itself to open source code and sharing of ideas. The CC license seems well suited to what we do as a whole.

Original work may be used in commercial solutions. Seems fair.

If the Arduino community stopped acting like an open source/shared ideas community and instead started abusing each other and all around started behaving badly... well, I guess you can see my point about where that would lead.

"We" and the Arduino design are "successful" mainly because of the community it created.

Below is an example of some recent work I did. Eventhough I scrapped a lot of the original work, I felt compelled to give proper credit as my work was derived from the original authors work

/* Filename: outgauge.h
   Compiler: wxDevCpp Version 7.3.1.3 (MINGW32)
   Project:  OutGauge Bus
   Original Author:   Vladimir Kadlec http://www.fi.muni.cz/~xkadlec
   
   Revision: Serial Interface and Packet Update revisions  - Pete Willard
   Version: LFS.Z28.01
 
   Serial Modification for microcontroller support:  Pete Willard
   Now sends commands out serial ports to an external Microcontroller 
   serial bus.
  
   A lot of the original code was scrapped, Sorry Vladimir.
 I just didn't want to figure out WINSOCK UDP code by myself.  This is
  therefore, a very modified derivitive of the original GI.EXE
*/ 

 
/*

ORIGINAL: Gear Indicator is free software; you can redistribute it and/or 
modify it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.

Gear Indicator is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with Gear Indicator; if not, write to the Free Software
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
*/

It is my opinion that "lawyers" are keen to remind us that if someone makes no attempt at protecting their intellectual property they have actually forfeited some rights to claim how it gets used.

Must be why big software companies hide their source code behind firewalls and lawyers and guys with guns on their hip.

Nice that pwillard attributed Kadlec even though you had to gut and rework so much. Concur its best to take the high road. Also concur in principle with full "credit headings" but am still wrestling with details.

If a company develops something original then quits or otherwise sells that line of source code to a buyer or bankruptcy receiver, then the purchaser might not be obligated to credit the developer, as the developer (or his employer) got cash or whatever.

Is such a commercial developer or its employee prohibited from using ideas seen on this forum? There is some good stuff here. Or is it okay as long as "credit headings" from open source and forum posts are included in the commercial source code?

Or is it completely prohibited that an employee to use open source while "on the clock"? After reading forums for a few days I've become so "infected by good ideas" you could almost say I am now entirely unfit for commercial employment as an engineer!
Well, some already say that, but for different reasons... :wink:

Some have even claimed that its not legally possible for an employee to use Arduino at work. The idea being that its impossible to simultaneously protect the intellectual property of ones employer while also protecting the common property of the open source community. I certainly hope they are mistaken!

When a Delta Airlines seat-back panel reboots it briefly shows a picture of "Tux" and then credits open source Linux followed by developers copyright notice of proprietary software followed by a list of commercial packages that were also used. I bet some time, money and lawyers got poured into those details. Thats waay above my pay grade; I'm just trying to "do right" on a simple one-off project for work, have separately contacted a team member about it.

Most folks here are hobbyists, and a few open source developers like the Arduino team and Ladyada that dont "owe their souls to the company store". Thats the kinda stuff we all love and I am eagerly jumping in too.

It's wonderful to create purely personal works that can be returned in their entirety as open source, but we still have to decide how much "credit headings" to use. For the core platform, one could simply credit the Arduino team only, but as retrolefty pointed out the Arduino team themselves stood on other shoulders, should my sketch "credit headings" include those too?

The Arduino written stuff
The AVR gcc compiler/linker stuff
The wiring projects stuff
The processing projects stuff

If so, as the open source world goes on, headings of each new work would include a growing tree of its entire "genealogy" so to speak, My sketch "credit headings" for Arduino also need to include all the underpinnings of Arduino like those enumerated by retrolefty. Digging up the source code for those reveals more ancient ancestors. And so on, "all the way back to Alan Turing". That could get cumbersome.

On the other hand is so much simpler to just "credit headings" to the Arduino project, and leave it at that. The "genealogy" can be traced further back by looking up the Arduino project online. This works pretty well for a thriving, well organized, and long lived project like Arduino. But traceback can easily fail for folks who contribute then move on to other things without a lifetime email address, URL or such. And it will eventually fail in every case, for no human work is eternal, especially on the internet. Could we assume by the time such traceback fails those sources are too old to be relevant?

So even "credit headings" for a purely CC work are not cut-and-dry simple.

As a new Arduino zealot, its an honor to discuss philosophy with the gods. Your views and advice are valued, thanks! And these questions have practical implications too. In any case Arduino has greatly expanded the horizons of open source. May Arduino live long and prosper.

Or is it completely prohibited that an employee to use open source while "on the clock"?

I work for "cisco Systems"; a large provider of (among other things) proprietary closed-source software. Any actual use of open source code in a product requires review and permission of a committee of lawyers/etc. For some licenses that we have had prior experience with, the decision path is easier. BSD will generally be OK. GPL3 will generally be rejected. Given the intentionally viral nature of some licenses, we want to be very careful not to accidentally contaminate the pieces of SW that we want to keep proprietary.

We haven't (yet) has issues with "looking" at open source software, but I have dealt with compiler vendors where the compiler developer was not permitted to get anywhere near gcc sources; any ambiguity or compatibility issue that required "just WTF is gcc DOING here" sorts of knowledge would require an extra non-compiler-developer to go look at gcc and report the causes in a legally "cleanroom" way.

There aren't yet any restrictions on merely using open source tools. We've been using gcc for 20+ years, for instance. Though we have done the 'pure' library thing in various forms.

I can't help but think that the original open-source evangelists had something else in mind, than supporting a large cadre of lawyers. (well, "no proprietary SW at all", I guess. No comment.)

westfw, I've had a similar experience at another large company that I've worked for. We wanted to switch from a proprietary compiler to gcc but tha lawyers had to check that it wouldn't "infect" our proprietary code. It turned out to be okay, of course, but the lawyers were always really worried about the open source licenses.

Personally, any code I'm not paid to write I want it to be truly free, which is why I've always been a strong proponent of BSD and BSD-oid licenses, though I completely understand and respect the GPL people.