How do you submit your app for approval?

Twack @wackware: Thanks for your input, and a really good example of what one contributor’s expectations are!

Your policy (restrictive license?) is pretty clear (though, ummm, a bit contradictory: the term public domain means ZERO restrictions, but you then qualify that you really don’t mean your shared code is public domain…). Which is it really?

[ Please Reference: “No License (copyrighted” vs “Public Domain” at this link: http://www.codinghorror.com/blog/2007/04/pick-a-license-any-license.html ]


Regardless, let’s assume that, until further notice, most of the code here on the Forums or shared through other means (IDE Shared Examples, GitHub, etc.) are “No License” and thus “copyrighted by default” (unless the code explicitly includes a release to Public Domain or a common Open Source license)…

Now as someone who personally is hoping to develop SmartApps, Device Handlers, Aruino Sketches, etc., and SELL some of the end products commercially, a copyrighted situation for example code and community discussion presents a potentially serious dilemma.

Since it may be difficult to get the various code sharer(s) (there may be several in a thread), to willingly release their work from restrictions (either transfer proprietary license or convert to a “GPL”), there theoretically will exist an ever growing codebase that can forever be stalled or prevented from migrating to commercial use. The motivations for commercial use may include the desire to use a significant code segment in a larger “package” of SmartApps & Devices. My off-the-cuff example is perhaps a package of IP-cam device handlers. Or even the sale of ONE specific IP-cam brand device handler that was based on a well written shared example.

This is, of course, the standard intellectual property conundrum. It both promotes and stifles innovation (with strong arguments on both sides). On a positive note, at least we have not breached the topic of Software Patents (yet) in this context!

So how is this a serious dilemma? I have many ideas under Development; some of which may be commercially for-profit viable, some only on a niche scale, or some as donation-ware. Under the GPL, I can share my ideas and code during Development and solicit feedback or ask questions, and use the entire net result as a commercial product, covered by and respecting the GPL rules.

BUT: If I even accidentally read and copy a non-trivial portion of someone’s example code (and, for many Apps there are only a few good ways to code something…)… I am now at risk of making a copyright violation; or, specifically to your stated policy; I am at risk of never being allowed to release my Project commercially or for-profit.

The net result is a chilling effect: The only way to be sure I do not violate copyright, is to never-ever-ever look at anyone’s copyrighted example code: Even if this prevents me from assisting others with their own education or projects that I have no current intention of commercializing. The same off-the-cuff example: I assist someone in getting their IP-Cam working by making some suggestions, but they have written all the code (even if that code was “obvious” to me). Now I want to commercialize a similar IP-Cam; the person I assisted can refuse to release copyright; and I am thus restricted from using “obvious” code that was in my head, but I had the misfortune of not publishing first.

Well… pardon the long-winded post, as always, but I think I’ve raised a legitimate concern, no?

Some say in an ideal world all source-code would be free of restrictions and/or all intellectual property would be automatically logically protected; but there clearly is a grey area. Some of us need to find ways to profit from the implementation and packaging of useful functionality, even while both serving and using developer community knowledge.


As far as I am aware (at this moment), I believe that a key way to resolve this grey area is to decide, as a community, if we generally lean towards a GPL-like sharing of code; true Public Domain upon posting/sharing; or pure copyright. If pure copyright, then persons like myself will have to take particular precautions in using this Forum (particularly any code Examples), and/or be very good at negotiating transfer of rights, and/or be very skilled at refactoring copyrighted segments sufficiently to avoid claims of derivation. (Using “copyright” as the default, does bring along with it some weakness in intellectual-property protection, such as fair-use; and, for software, a whole mess, as far as I am aware: That’s why commercial software developers keep their source private and/or use very explicit detailed licenses.)


Oh: Just as a convenient way to express my point in other words… the link I suggested above really does a good job of describing this potential “horror story” of a situation: http://www.codinghorror.com/blog/2007/04/pick-a-license-any-license.html

I quote from that writer:

It's a minefield, people. All I'm saying is this: the next time you release code into the wild, do your fellow developers a favor and pick a license – any license.

Thanks,
…CP.

This raises good points that I regularly forget about until late in the dev process. Here is my approach:

Any code that I post in these forums should be considered public domain unless it specifically has a license in it. I’ve updated my Nest device type to use the MIT license. I like MIT because it means you can use my code for pretty much anything you want, but I can still have credit for creating it.

What would be extremely helpful for us newbies here… can someone post a quick run down of different licensing types from Public Down (which is free for everyone to use I believe) on up to what is no rights? I’d love a quick cheat sheet explaining the basics of what each license does or doesn’t do.

@chrisb The link CosmicPuppy posted has just such a rundown: http://www.codinghorror.com/blog/2007/04/pick-a-license-any-license.html

It doesn’t cover every license, but it’s a good start.

@ChrisB and @Dianoga: Thanks for your contributions to the discussion!

Even though there are just a few of us (so far?) discussing code usage rights, you can already see the wide variance of preferences and assumptions.

–> Ranging from Twack @wackware’s public domain but no commercial use, to fully public domain with credit, per MIT <–

Precisely illustrates why assumptions of what constitutes legal code reuse are dangerous.

…CP.

I’d go with LGPL 3.0, MIT, or Apache 2.0 - frankly, GPL is a problem in the cases where you do want to leverage it in a commercial use case, and I can see plenty of opportunities for leveraging the SmartThings platform in commercial applications.

@RickBullotta: (See if you can reconcile your opinion with Twack).

Objectively, with only a few contributors to this discussion so far, we are all leaning towards the “free” license model, … except Twack.

His viewpoint is still absolutely valid (and, technically, “copyright” is the default for unlicensed code published here), but it is the one that causes a hitch for a sharing community that has … “commercial” members.

Creative Commons?

@solardave1

Creative Commons not recommended for software :

http://wiki.creativecommons.org/Frequently_Asked_Questions#Can_I_apply_a_Creative_Commons_license_to_software.3F

Can I apply a Creative Commons license to software?

We do not recommend it. Creative Commons licenses should not be used for software. We strongly encourage you to use one of the very good software licenses which are already available. We recommend considering licenses made available by the Free Software Foundation or listed at the Open Source Initiative. Unlike our licenses, which do not make mention of source or object code, these existing licenses were designed specifically for use with software. Furthermore, our licenses are not compatible with the GPL, the most frequently used free software license.

Note that the CC0 Public Domain Dedication is GPL-compatible and acceptable for software. For details, see the relevant CC0 FAQ entry.

For $50 bucks cash I can get it done. Paypal to my offshore account.

Looks like the lawyers have chimed in; we all got a nasty little “present” along with the SmartThings Shop…

Please reference my new thread: Beware of Posting Code: SmartThings Terms of Service & Rights…

http://build.smartthings.com/forums/topic/beware-of-posting-code-smartthings-terms-of-service-rights/#5640

Enjoy and share.
…CP.

Does ST have any update on when this will go live? I think this is one of the largest limitations of the smart things world right now. I am hesitant to start developing for the platform when I can’t publish my apps yet. I feel like many of the apps I write may already be done by others but I can’t get access to them.

How do you use shared codes?

The following should help. (This is a clickable link.)

1 Like