I prepared a short tutorial in IPython Notebook and want to release it on an open license. However, as it is something between code and slides, I do not know if Creative Commons licenses are suitable (they are not meant to be used for code) or should I rather something specific for code (say, MIT or BSD)?

If you are not familiar with IPython Notebook, it looks like that (not mine):

  • 2
    Beyond the obvious fact that no one gives here legal advice, the question is a little unclear what part YOU would like to license/protect. You can any time declare your work is public domain, or can make it opensource a la GPL / GitHub way. But the real question what you want to do / protect /allow or avoid. Also, another limitation where do you want to publish it, and what type of licenses those publisher allow. E.g. iPython.org may have its is recommendation/preference.
    – Greg
    Jul 25, 2015 at 5:32
  • @Greg Basically, I want to allow anything, as long as they credit me (as a side note it's why i dislike GPL - as it substantially restricts reuse, even for open-source projects). Jul 25, 2015 at 7:33

3 Answers 3


While CC licenses aren't really appropriate for code, and code licenses aren't really appropriate for text, there's no real downside to assigning both kinds to the same material. This is "dual-licensing" (reasonably common for software), and it allows the reuser to choose whether they wish to use and redistribute your material under license A or license B.

They can then pick the particular license which is most appropriate for their purposes without having to (eg) try and work out how to apply the BSD license to a graph.

For example, you could use a license statement that says something like:

This material is copyright Piotr Migdal and made available under the Creative Commons Attribution (CC-BY) license (link). Code is also made available under the MIT License (link).


One option would be to use the Creative Commons Public Domain Dedication CC0, which is appropriate for text, images, and code. The Free Software Foundation has even recommended that if you want to release code into Public Domain, you should use CC0.

CC0 does not require attribution, but I find that most of the code snippets in IPython/Jupyter notebooks are sufficiently short that I would want others to be able to use them without requiring attribution. The code in the Linear Regression notebook you posted is a great example; it primarily consists of short examples of how to use the Statsmodels, Pandas, and Matplotlib APIs.



The notebooks are more code (to be modified, adapted, and run) than some more or less static, unchangeable, work of art. Go for a license for code.

If you want to share widely, no strings attached, you should use MIT or BSD licenses. This means somebody could take the notebook and build say a proprietary presentation out of it. That sounds a bit ridiculous, so not much of a risk of that happening.

If you want to ensure the notebooks and any modifications are always shared for anybody to modify at will, use one of the GPLs.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .