Code Monkey home page Code Monkey logo

Comments (17)

SSCodeChamp avatar SSCodeChamp commented on May 11, 2024 1

Thanks @Kcnarf .

from d3-voronoi-treemap.

Kcnarf avatar Kcnarf commented on May 11, 2024

I have to admit that I'm not confident with licensing. My first though was to use the MIT license.

Except ...

Actually, before producing these plugins, I found a Javascript/JS code that produces Voronoï treemaps for D3 version 3 (cf. https://bl.ocks.org/mkedwards/759e719eefe36cf9c8ab). I've reworked it (i.e. refactored, bug-fixed, unit-tested) to make it available for D3 version 4 (cf. https://bl.ocks.org/kcnarf/15d54f4ccae6a3710cd3029546664eec). Based on this first experience, I've decided to produce this d3-voronoi-treemap plugin, as it is a more packaged and easy-to-use solution with clearly defined APIs.

Later, I realized that the JS code I've found came from another work, available in the fp-plvines-djpeter Github repository. Authors clearly state that they wanted their code to be shared and used by others. The main issue is that this JS code is not under any license, meaning that it is proprietory code.

Even later, I realized that this former Js code was based on a Java implementation (available in the power-voronoi-diagram Github repository) which is under the GPL-3.0 license. This Java implementation was written by one of the co-authors of the scientific paper which specifies the overall algorithm used for this d3-voronoi-treemap plug-in.

==> Hence, I've decided to make this d3-voronoi-treemap plugin under the GPL-3.0 license (the license of the Java implementation).

Probably that I have to ask the authors of the JS and Java implementations about this concern.

from d3-voronoi-treemap.

micahstubbs avatar micahstubbs commented on May 11, 2024

@Kcnarf thanks for making this issue 😄

from d3-voronoi-treemap.

SSCodeChamp avatar SSCodeChamp commented on May 11, 2024

thanks @Kcnarf for considering my request. Any idea how long it will take to change the license to MIT ?

@micahstubbs - Thanks for clarification. I am not going to distribute it.

My only requirement is to use this code as is to generate weighted voronoi chart. There is no intention to modify or sell the code.The website would be available publicly.

.

from d3-voronoi-treemap.

Kcnarf avatar Kcnarf commented on May 11, 2024

@Svmali84 I can't tell you how long it will take :-(

I'm on it ...

from d3-voronoi-treemap.

micahstubbs avatar micahstubbs commented on May 11, 2024

@Svmali84 you can probably use the GPL-3 code now with a clean conscience. without distributing the result, you should be with terms of the license.

from d3-voronoi-treemap.

micahstubbs avatar micahstubbs commented on May 11, 2024

for other use cases, it would be nice to have a more liberal license, if the author of the Java implementation is willing to grant one (or if @Kcnarf decides that this js implementation is different enough from the Java implementation that he can just pick a new license for it himself...)

from d3-voronoi-treemap.

SSCodeChamp avatar SSCodeChamp commented on May 11, 2024

@micahstubbs thanks. Yes I am not going to distribute the result.But even after reading the GPL terms ,I am not getting how to use GPLed javascript on my website.Is putting copyright notice on top of script is sufficient? Also I am not sure which copyright notice I need to put exactly.

from d3-voronoi-treemap.

Kcnarf avatar Kcnarf commented on May 11, 2024

FYI,
I've mailed the author of the Java implementation on Jan 12 2018, and the authors of the JS implementation on Jan 17 2018.

from d3-voronoi-treemap.

Kcnarf avatar Kcnarf commented on May 11, 2024

@micahstubbs do you have pointers that may help to decide if two implementations are different enough ?

from d3-voronoi-treemap.

Kcnarf avatar Kcnarf commented on May 11, 2024

As I understand GPL-3.0:

  • if your code uses a GPL-3.0 licensed code, without conveying it (e.g. without distributing your code), then there is no trouble
  • if your code uses a GPL-3.0 licensed code, and you convey your code (e.g. you distribute your code, whether gratis or for a fee), then there is 2 cases :
    • if your code and the GPL-3.0 licensed code are clearly separated (e.g. communicate through sockets or things alike), then you can apply any license to your code, while at the same time providing a way to the GPL-3.0 licensed code on demand
    • if your code and the GPL-3.0 licensed code are tangled (i.e. you can not easily replace the GPL-3.0 licensed code by another code), you can use the GPL-3.0 license code if and only if your code is under a GPL-3.0 compliant license

Useful links:

from d3-voronoi-treemap.

SSCodeChamp avatar SSCodeChamp commented on May 11, 2024

@Kcnarf - Thank you.

Few questions:
"if your code uses a GPL-3.0 licensed code, without conveying it (e.g. without distributing your code), then there is no trouble"

  • In this case as they are javascripts they are available for anyone who visits the website. Does it count under the distribution ?

from d3-voronoi-treemap.

Kcnarf avatar Kcnarf commented on May 11, 2024

@SSCodeChamp - Good question :-)

On one hand, if the code is executed server side (with NodeJS), there is no trouble.

On the other hand, when the code is delivered by the server and executed client side, my opinion is that there is also no trouble: it is the way JS works. Intermediate technologies (browser, browser plugins, JS frameworks, ...) execute your code in order to produce the final result for the end user. Its obvious that intermediate technologies which are not under GPL-3.0 (notably browsers) can execute third party code under GPL-3.0 license. My opinion is that there is no entent to convey the code, there is no intent to authorize third party users to reuse your code. If someone reuse your code this way, I think it is considered a non-legal way to obtain that code (i.e. a non-legal copy of that code), without the appropriate rights to use it.

Note that minifying the delivered code can limit its steal.

from d3-voronoi-treemap.

SSCodeChamp avatar SSCodeChamp commented on May 11, 2024

Thanks @Kcnarf . So what pointers (putting copyright notice etc..) I should consider while using below your JS files for generating voronoi treemap similar to https://bl.ocks.org/Kcnarf/fa95aa7b076f537c00aed614c29bb568

<script src="https://raw.githack.com/Kcnarf/d3-weighted-voronoi/master/build/d3-weighted-voronoi.js"></script> <script src="https://raw.githack.com/Kcnarf/d3-voronoi-map/master/build/d3-voronoi-map.js"></script> <script src="https://raw.githack.com/Kcnarf/d3-voronoi-treemap/master/build/d3-voronoi-treemap.js"></script>

from d3-voronoi-treemap.

Kcnarf avatar Kcnarf commented on May 11, 2024

I have very good news for the D3 community :

  • Arlind Nocaj (author of the Java implementation and co-author of the scientific paper this plugin is based on) is "fine with supporting your version to be implemented also as BSD into D3"
  • Peter Henry and Paul Vines (co-author of the JS implementation) are respectively "comfortable with whatever’s the most helpful" and have "no interest in it as proprietary content" .

Many thanks to them for sharing their work.

I will soon move the plugin under a BSD-3-clause license, as D3 is.

from d3-voronoi-treemap.

SSCodeChamp avatar SSCodeChamp commented on May 11, 2024

Thanks @Kcnarf for taking this effort.

Untill the license change to use above JS files can you please answer my above questions

from d3-voronoi-treemap.

Kcnarf avatar Kcnarf commented on May 11, 2024

The plugin is now under the BSD-3-Clause, as D3 is.

@SSCodeChamp

  • no extra pointer required :-)
  • if you're downloading the code from NPM, please consider to update to version 0.0.3 (same code as v0.0.2, but first version under the BSD-3-Clause)

from d3-voronoi-treemap.

Related Issues (13)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.