- Slides: Social coding and open software
- The following poll can be used by for example mentimeter or Zoom's poll function (for online workshop).
Choose many
Easier to find and reproduce (scientific reproducibility)
More trustworthy: others can verify correctness and find and report bugs
Enables others to build on top of your code (derivative work, provided the license allows it)
Others can submit features/improvements
Others can help fixing bugs
Many tools and apps are free for open source, so no financial cost for this (GitHub, Travis CI, Appveyor, Read the Docs)
Good for your CV: you can show what you have built
Discourages competitors. If others can't build on your work, they will make competing work
When publicly shared, usually we timestamp or set a version, so it is easier to refer to a specific version
Choose one
It will be scooped (stolen) by someone else
It will expose my "ugly code"
Others may find bugs and mistakes. What if the algorithm is wrong?
I will get too many questions, I do not have time for that
Losing control over the direction of the project
Low quality copies will appear
I won't be able to sell this later. Someone else will make money from it
It is too early, I am just prototyping, I will write version to distribute later
Worried about licensing and legal matters, as they are very complicated
Free entry of answers
Choose many
Download some code from a website and add on to it
Download some code and use a function in your code
Changing the code
Extending the code
Completely rewriting the code
Rewriting the code to a different programming language
Linking to libraries (static or dynamic), plug-ins, and drivers
Clean room design (somebody explains you the code but you have never seen it)
You read a paper, understand algorithm, write own code
1. What is the StackOverflow license for code you copy and paste?
2. A journal requests that you release your software during publication. You have copied a portion of the code from another package, which you have forgotten. Can you satisfy the journal's request?
3. You want to fix a bug in a project someone else has released, but there is no license. What risks are there?
4. How would you ask someone to add a license?
5. You incorporate MIT, GPL, and BSD3 licensed code into your project. What possible licenses can you pick for your project?
6. You do the same as above but add in another license that looks viral. What possible licenses can you use now?
7. Do licenses apply if you don't distribute your code? Why or why not?
8. Which licenses are most/least attractive for companies with proprietary software?
-
https://opensource.guide/legal/#which-open-source-license-is-appropriate-for-my-project
-
Permissive: gives the public permission to use, modify, and share, without any condition for downstream licensing
-
If the licenses of dependencies are permissive, one may use any open license they want.
-
If the licenses of dependencies are strong copyleft, one must use the same license.
-
Text: free to share and remix under CC-BY-4.0.
-
These slides are served by Cicero.