So, more about the size of my notes. I said I started writing these in about the year 2010. That is true, but when I started, I wasn’t writing very much very frequently. By the year 2012, when I got my own dedicated GNU/Linux laptop, by means of refurbishing a broken Windows laptop refused by its original owner, is when things started to speed up.
But, this also deserves interesting discussion in other dimensions. By virtue of spending more time in the GNU/Linux system, this is also the time when I turned more and more toward learning about other people’s existing work, and building upon existing libre software, by virtue of having access to the source code to study and modify. Ultimately, what happened is that I spent a lot more time documenting things already developed by other people and a lot less time developing my own software from scratch. In the past, I’ve spent considerable amounts of time writing lots of code, and considerable amounts of time learning about APIs, but not so much time writing about other people’s work.
- Footnote: Again, I reiterate, because this is important! Why didn’t I spend much time documenting? Because the documentation I was working with earlier on was already so well organized!
Yeah, I did write a lot more code during those times than I typically do nowadays, even though it ultimately turned out to be a lot of rework that other people already did once before. However, sometimes it is useful to reinvent software already written by other people, just so that you understand different ways that the older, simpler version of such software could have been written. Suffice it to say, the law of diminishing returns applies here: it is not “useful work” in the purest sense of the term, but it still does help for smaller improvements that require much more work input.
But, at the end of the day. What’s to become of that older software that is essentially rework of already existing work? So, I’ve thought this through carefully, and it seems one thing is clear. People will always want more permissively licensed software to build off of, even if the available body of code might be very small and simple. Suffice it to say, when it comes to rework, the most productive way to take advantage of the results is to simply pick a license that has not already been picked before, and one that is more permissive than the past licenses at that.
So, the verdict? When I bring most of my older code projects into GitHub, I will place them in the public domain, via either the Unlicense or CC0. It is true that not all jurisdictions recognize a public domain, and that is unfortunate because it means that the best they can get from a licensing standpoint is a permissive-licensing scheme. However, for those jurisdictions that do recognize a public domain, they get the advantage of the last degree of freedom.
- Footnote: The good thing about blogging: It makes it very easy for other people to see where you are in tech learning, so that they can pick up on some of the things you’ve learned too.