Jump to content

Licensing agreements - ni.com vs lavag.org vs LabVIEW


Recommended Posts

For the handling of Variants, you might want to take a look at my library... I've done some work there to handle the full recursion of variants with variant attributes.

One thing I am sorry about -- and I should have mentioned this earlier -- is that you chose to put this in the LAVA CR instead of posting it to ni.com. The license agreement that governs LAVA CR is one that precludes me from making these VIs a part of LabVIEW in the future. I have asked and begged for LAVA and NI to work on this, but so far no dice, so I'm largely going to have to recreate your work in the parser I've been building. Mine is both more and less complete than yours at this point, and I was hoping to supplement the parts I haven't built yet by calling into your library. I cannot do that now. (Reposting on NI.com doesn't fix the problem, I don't think, because the CR is where they were originally posted).

I hate software licensing rules. Really hate them.

Link to comment

For the handling of Variants, you might want to take a look at my library... I've done some work there to handle the full recursion of variants with variant attributes.

One thing I am sorry about -- and I should have mentioned this earlier -- is that you chose to put this in the LAVA CR instead of posting it to ni.com. The license agreement that governs LAVA CR is one that precludes me from making these VIs a part of LabVIEW in the future. I have asked and begged for LAVA and NI to work on this, but so far no dice, so I'm largely going to have to recreate your work in the parser I've been building. Mine is both more and less complete than yours at this point, and I was hoping to supplement the parts I haven't built yet by calling into your library. I cannot do that now. (Reposting on NI.com doesn't fix the problem, I don't think, because the CR is where they were originally posted).

I hate software licensing rules. Really hate them.

You mean that NI cannot take full and unconditional ownership and commercially exploit them if they so choose. It's under a BSD licence which is where it belongs and I can easily see it being included in the OpenG stuff.

Edited by ShaunR
  • Like 2
Link to comment

When we're talking about a library as fundamental as this one, it benefits everyone if I can put it into the Base edition of LabVIEW. Otherwise, the work you guys have done here is going to benefit only the relatively small number of LV users who follow LAVA and can use BSD licensed code. Unfortunately, the BSD license means the files cannot be used by many LV users (often the license would in theory permit it, but the corporate policies do not). It also means no localization or documentation support. And there are tech support benefits.

So, yeah, for big fundamentals projects that would benefit from being a full part of LabVIEW, I say you should be posting to ni.com, which gives the same rights to the community to use the VIs that the BSD provides and gives the option for NI to incorporate the files into LV. This is especially true when it is a library that you are fully aware someone within NI is working on (in this case, me). I'm not suggesting you do this for stuff that would become an add-on library that NI would sell separately. That would just be giving NI a free gift. But for the core, this is just shooting yourself and the wider community in the foot. You already pay for LV. Might as well get more for your money.

Link to comment

When we're talking about a library as fundamental as this one,

Hardly "fundamental" to LabVIEW (mountainous mole-hills?). It's an addon library. Nothing more. 1/2 of it uses OpenG variant stuff so (much to my chagrin) that would be a far better place for it.

That would just be giving NI a free gift. But for the core, this is just shooting yourself and the wider community in the foot. You already pay for LV. Might as well get more for your money.

So NI should pay for it then if it's that great and would enhance their business :D

The only thing stopping NI from using it is NI :shifty:

Edited by ShaunR
  • Like 1
Link to comment

Someone builds a proprietary toolkit that is of value to NI? We may very well offer to buy it, or at least OEM it. But in this case, you're trying to give it away for free. And yet you put it in a place that limits its use by the community member with the widest distribution net and deepest support pockets. Why is it out of bounds for NI? You put it under a copyleft license that -- wrongly -- is viewed with suspicion by a wide swath of corporate America. NI can't touch such VIs without endangering LabVIEW adoption in some markets. We've worked out clever ways to handle some back end DLLs in the past, but always, to the best of my knowledge, at least one level removed from any code a user of LabVIEW would actually use.

Your hostility is unwarranted. Yes, NI is a corporate for-profit entity. But it is also one with a deep interest in the success of the LabVIEW community. Anyone who uses LabVIEW has already paid us money. Posting the VIs under the BSD just limits our ability to distribute them. It does nothing to make them more available to the community at large. If there were more vendors for LabVIEW itself, that might matter, but there aren't.

It does not matter at this point. The damage is done, so I will keep working on my VIs without leveraging these. <B>This is why I wish NI and OpenG and LAVA CR had some sort of license that allowed NI to move VIs under the corporate umbrella on the condition that the VIs become part of LabVIEW Base edition.</b> It would guarantee access to these VIs for the widest community and maximum support, as opposed to the hamstrung duplicate effort we have today.

I was attempting to engage the community on the JSON project, and have been for months, and I find it more than a bit frustrating that rather than help build something that can be extended to the whole LabVIEW community, you built your own and put it in your own flavor of walled garden. But that's the rule of licensing software. And it is yet another reason that licensing needs to be seriously rethought globally. I hope in the future for projects like this that you'll keep these arguments in mind and consider posting on NI.com, which makes the VIs just as available to the community and lets NI employees work on the project too in a way that maximizes everyone's return on investment.

Link to comment

I was attempting to engage the community on the JSON project, and have been for months, and I find it more than a bit frustrating that rather than help build something that can be extended to the whole LabVIEW community, you built your own and put it in your own flavor of walled garden. But that's the rule of licensing software. And it is yet another reason that licensing needs to be seriously rethought globally. I hope in the future for projects like this that you'll keep these arguments in mind and consider posting on NI.com, which makes the VIs just as available to the community and let's NI employees work on the project too in a way that maximizes everyone's return on investment.

BSD is hardly a walled garden. :wacko:

I was looking forward to your Json implementation (in fact I looked several times before this and tried several things to make it work for my use case-without success). However, it was/is doomed if it can't do normal LabVIEW stuff. I'm sure for object serialisation it is the bees knees, but it's not whats needed for us proles. This, however, is exactly what we need, it didn't take us months and, although my initial thoughts were not in favour of a class solution for the obvious reasons, Drjdpowell has demonstrated a splendid solution for the parser (although I'm not sure what he will do about the cluster order ;) ). Between Drjdpowell, myself and Ton, It is a great example of the labview community pooling their efforts through discussion and providing an open source solution. It should be celebrated, not bogged down in a licencing diatribe.

I can understand your frustration due to the time and energy put into your API. But don't go throwing your toys out of the pram because it can save you effort or you wish to participate but the hindrance is your own companies policies. The licensing isn't an issue except if NI want to take ownership and I expect this is a similar stance to what you alluded to in terms of previous discussions between Lavag and NI.

There are lots of projects on Lavag that never get the participation or feedback that the author expects ("If you build it they might come"). That's no a sleight on their software, or indeed, their skills. It just means it's not that big a deal for others or it doesn't fulfill their requirements. Don't feel put-out that people didn't pick software "A" over software "B". It just means "A" didn't fit their requirements as well as the other.

  • Like 1
Link to comment

What holds me back on the NI site is the NI.com site agreement

User Contributions. Any information or material ("Communications") that you transmit to this Site is considered non-confidential. NI has no obligations with respect to the Communications, and NI is free and you authorize NI to copy, disclose, distribute, incorporate, translate and otherwise use the Communications and all related data, images, sound, and text for any and all purposes.

Another thing that is holding me back (and is holding the community back) not just on NI.com, but on LAVA as well, is the fact that we lack a accepted distribution system.

I am jealous of python where I can install a debian package and then use 'easy_install' to get a pacakge just by name. The LabVIEW tools network is a step forward, but I still cannot run a command 'install AQ-JSON-API' and the API will be installed.

And we need to open up the source if we want to have a strong community.

For instance ShaunR added support for escape quotes in the product. Now I have to go to his code, detect the changes (which is hard since LabVIEW is binary and he backsaved to 2009), merge these into my Mercurial repo(Done).

My opinion:

  • We (LAVA, OpenG, NI et al) need to agree on a license (do we mind 'Public-Domain'?)
  • What is exactly the issue for NI that disallows it on BSD. The only limitation I see is the 'Attribution'. But attribution could be limited to a line in the on-line help of that feature.
  • We need to start with source-code repositories. (heck there is allready a Lavacr project at google code in Subversion), and then create products/downloads
  • We need a distribution system that is lightweighted and reliable

Ton

Edited by crelf
  • Like 2
Link to comment

I hate software licensing rules. Really hate them.

And I just don't understand them. I picked BSD because it seemed to be to be entirely permissive, except for an acknowledgment. It's not "copy left" which would prevent it from being used in a commercial product. Would making things "public domain" be any better?

And though I understand why some companies may shy away from open-source software, preferring all code to come from "approved vendors", how does posting things on NI solve this issue?

And for future knowledge, was it posting on the LAVA CR that creates the issue, or was it already tainted once we posted code in a conversation on LAVA?

Anyway, this answers a question I've long had: Why does OpenG need a different "Trim Whitespace" VI; why doesn't NI just adopt the higher-performance version as standard LabVIEW?

-- James

We need a distribution system that is lightweighted and reliable

Do you not like VI Package Manger?

What should we do with NaN, -Inf, and +Inf? JSON does not support them. NaN could be null but the others I don't know.

Official JSON sets those three values to 'null' however I lean to this idea. For numerics we should use 1e5000 though.

I think some "JSON" implementations have (perhaps wrongly) allowed these

values, so it is probably a good idea to accept things like "Inf", "Infinity", "NaN" when parsing in JSON.

When writing JSON, a problem with the 1e5000 idea is that there is no defined size limit for JSON numbers; one could theoretically use it for arbitrarily large numbers. Not that I've ever needed 1e5000 :)

Maybe there should be an input on "Flatten" that selects either strict JSON or allows NaN, Inf and -Inf as valid values.

BTW, i'm on vacation without a LabVIEW machine so I'll comment on the excellent code additions when I get back.

Link to comment

Important Point of Clarification: uploading code to LAVA does not automatically limit its use to the BSD protection/limitations. Code posted to threads are, by default, covered by Creative Commons, and uploaders of submissions to the Code Respository are given a choice on what license to apply to their Code Repository submission - we put the control in the hands of the creator by allowing them to select from a list of pre-defined licenses (the most common ones), but we also allow the upload to be covered by any other license - just include it with your submission.

<snip>

More information on how the LAVA Code Repository works is here: http://lavag.org/top...repository-work

Amen!

Code posted to threads are, by default, covered by Creative Commons

Where does it state this (couldn't find it in the guidelines) and which type of CC (there are a few).

Link to comment
So here's a constructive suggestion: rather than pushing LAVA members to upload their code to ni.com so NI can do whatever they choose with it (include selling it for profit without passing any of those profits on to the creator), maybe NI should suggest an appropriate license that people should use on lavag.org (or anywhere else) that NI can work with. Even if it's one that's not currently in the list, members could include it with their submission. We could even add it to the standard list, if that's what our members want. We could even make it the default selection, if that makes sense. We're here for our members - we're not resisting changes - if you want us to change, and it makes sense to Mike, we'll do it. It's really as simple as that.

To be clear: I'm not trying to be beligerent - I really want to work this out. I mean, it would be awesome if stuff uploaded to LAVA could be included in LabVIEW and make everyone's life better - I really really really do. If there's something we can do that makes sense, I'm all for it.

Code posted to threads are, by default, covered by Creative Commons...

Where does it state this (couldn't find it in the guidelines) and which type of CC (there are a few).

*gulp* You're right - it looks like the copyright verbiage got dropped off the master footer when we last upgraded the board. Thanks for that - we're working on it :yes:

Link to comment

To be clear: I'm not trying to be beligerent - I really want to work this out. I mean, it would be awesome if stuff uploaded to LAVA could be included in LabVIEW and make everyone's life better - I really really really do. If there's something we can do that makes sense, I'm all for it.

*gulp* You're right - it looks like the copyright verbiage got dropped off the master footer when we last upgraded the board. Thanks for that - we're working on it :yes:

That's not a problem since it just means no-one can use it without the authors permission :)

You have to be careful with the Creative Commons ones though. Some of them are not compatible with either other CC or other licences. This may mean that it becomes impossible to post something in the forums and then move it to the CR under a different licence of the authors choosing.

Edited by ShaunR
Link to comment

This may mean that it becomes impossible to post something in the forums and then move it to the CR under a different licence of the authors choosing.

This is a common misconception about licensing.

The author of a work remains the copyright holder to what they create no matter how they license it, and they retain the right to license their creations to other people under any other terms they want. This is exactly how MySQL licensing works.

In other words, just because code is uploaded to LAVA under CC or BSD or GPL or whatever, that doesn't mean that NI can't work directly with the author of that code to get it under a license they're happier with.

maybe NI should suggest an appropriate license that people should use on lavag.org (or anywhere else) that NI can work with.

While I'm on the subject, I fully support this idea :).

Link to comment
The author of a work remains the copyright holder to what they create no matter how they license it, and they retain the right to license their creations to other people under any other terms they want.

Right! To paraphrase: I can license a product to one of my customers in one way, and use a completely different license for another customer.

Link to comment

This is a common misconception about licensing.

The author of a work remains the copyright holder to what they create no matter how they license it, and they retain the right to license their creations to other people under any other terms they want. This is exactly how MySQL licensing works.

I disagree.

Licensing can be about relinquishing your rights (like Public Domain-Germany being an exception). That is why you have terms in many licenses like "transfer of rights" and "non-exclusive rights". Once you have relinquished them, there is no going back and saying "actually I'm now going to make it share-like" - it won't hold in a court of law (nothing to stop you trying, though). Since a license is linked to a product. You can create a new product, but the onus is then on you to prove that the new product under the different licence is dissimilar enough to warrant being termed a "different product" if it is ever contested.

It is quite possible (and there have been cases) that you can write some software, transfer your rights via licencing or indeed grant rights to others that supersede yours so you (as the author) are no longer able to distribute, modify or even talk about the software. A simple case of this is the pre-emptive "work for hire" clause in most software developers contracts. If a developer never relinquished any of their rights to the software regardless of any licencing or contract, businesses would never be able to own anything.

Edited by ShaunR
Link to comment

I disagree.

Licensing can be about relinquishing your rights (like Public Domain-Germany being an exception). That is why you have terms in many licenses like "transfer of rights" and "non-exclusive rights". Once you have relinquished them, there is no going back and saying "actually I'm now going to make it share-like" - it won't hold in a court of law (nothing to stop you trying, though). Since a license is linked to a product. You can create a new product, but the onus is then on you to prove that the new product under the different licence is dissimilar enough to warrant being termed a "different product" if it is ever contested.

It is quite possible (and there have been cases) that you can write some software, transfer your rights via licencing or indeed grant rights to others that supersede yours so you (as the author) are no longer able to distribute, modify or even talk about the software. A simple case of this is the pre-emptive "work for hire" clause in most software developers contracts. If a developer never relinquished any of their rights to the software regardless of any licencing or contract, businesses would never be able to own anything.

http://en.wikipedia.org/wiki/Multi-licensing

Link to comment

Right! To paraphrase: I can license a product to one of my customers in one way, and use a completely different license for another customer.

Yup. Give 'em as many as you like. You only need one that says "I relinquish all my software rights to you" in lawyer speak and they can sue you for distribution and copyright infringement.

Yup. So how would a piece of software "dual licensed" under "Public Domain" and "Non-Commercial" work?

Link to comment

Yup. So how would a piece of software "dual licensed" under "Public Domain" and "Non-Commercial" work?

From the wiki page: http://www.linuxinsi...tory/38172.html

"MySQL states on its Web site, "Our software is 100 percent GPL, and if yours too is 100 percent GPL (or OSI compliant), then you never have to pay us for the licenses. In all other instances, you are better served by our commercial license." They give away the software, yet they make money selling it."

I'm not seeing the problem?

Edit//

Your "work for hire" scenario means the entity hiring the developer owns the license and is free to do with it what they want. This is different than posting your own code to the fora.

Edited by Jordan Kuehn
Link to comment

From the wiki page: http://www.linuxinsi...tory/38172.html

"MySQL states on its Web site, "Our software is 100 percent GPL, and if yours too is 100 percent GPL (or OSI compliant), then you never have to pay us for the licenses. In all other instances, you are better served by our commercial license." They give away the software, yet they make money selling it."

I'm not seeing the problem?

They give away the software. But not their "rights" to the software.

Link to comment

Yup. Give 'em as many as you like. You only need one that says "I relinquish all my software rights to you" in lawyer speak and they can sue you for distribution and copyright infringement.

I think you're mixing "I relinquish all my software rights to you" with "I grant you a license to use this software subject to these restrictions (or without restriction)." The first is a transfer of intellectual property rights, while the second is not.

Yup. So how would a piece of software "dual licensed" under "Public Domain" and "Non-Commercial" work?

"Public Domain" is not a license. The author of a work can place a work in the public domain by choice, or works can enter the public domain subject to various criteria, which differ based on local laws. A work in the public domain does not require a license to use, precisely because it's in the public domain.

If by "Non-Commercial" you're referring to a specific CC license (e.g. CC-BY NC), then the answer is, "Works that are in the public domain are in the public domain, while works that are licensed by their authors as "CC-BY NC" are provided to others under the terms of that license."

Edit//

Your "work for hire" scenario means the entity hiring the developer owns the license and is free to do with it what they want. This is different than posting your own code to the fora.

Clarification, since the semantics actually matter here...

"Work for hire" means the entity hiring the developer owns the licenseintellectual property created and is free to do with it what they want because they own it.

Link to comment

I think you're mixing "I relinquish all my software rights to you" with "I grant you a license to use this software subject to these restrictions (or without restriction)." The first is a transfer of intellectual property rights, while the second is not.

That is not a distinction.

Take for example the GPL licence (Section 2)

All rights granted under this License are granted for the term of copyright on the Program, and are irrevocable provided the stated conditions are met.

You are granting the user certain rights. If you grant him rights that supersede yours (you are the author so you begin with all rights) , then you are in a very difficult position. Licensing is about granting rights to the recipient and/or waiving your own and the the whole document (any licence document) is about specifying the criteria under under which those rights are granted or waived (and please note that for GPL they are irrevocable once gained).

Also take a look at one of the CC licences:

Waiver. To the greatest extent permitted by, but not in contravention of, applicable law, Affirmer hereby overtly, fully, permanently, irrevocably and unconditionally waives, abandons, and surrenders all of Affirmer's Copyright and Related Rights

So to get back to "dual licensing" it is only applicable if the "other" licence relinquishes an authors rights restriction or allows a right above and beyond the original licence. You cannot revoke (if it is irrevocable) or change rights already gained.

Edited by ShaunR
Link to comment

Bottom line: licensing options are confusing. Even the ones designed to make things simple are not so.

I would love for the net result of this thread to be several sentences in plain English, summarising the various licensing options, that everyone agrees upon.

If you don't understand a license, then it's possibly not for you, nor should you rely on any of our explinations of any licenses. I don't think any of us do software licenses by trade, and aren't readily equiped to provide advice that will stand up in court. In short, if you want someone to really explain a license to you, you should consult an appropriately equiped lawyer.

That said :) there are some resources out there (think wikipedia) that provide short plain-worded descriptions of most common software licenses, and some of the license creators provide such infomation too (eg: Creative Commons 3.0 human-readable summary - PS: I love that they call it the "human-readable" version, suggesting lawyers aren't human :D )

Link to comment

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.