blog

Source files for chris.bracken.jp
git clone https://git.bracken.jp/blog.git
Log | Files | Refs | Submodules | README | LICENSE

2020-05-22-thoughts-on-licences.md (5285B)


      1 +++
      2 title = "Thoughts on Licences"
      3 date = "2020-05-22T14:55:23-07:00"
      4 slug = "thoughts-on-licences"
      5 tags = ["Meta", "Software"]
      6 +++
      7 
      8 Software licences are probably the single most boring aspect of software
      9 development, but it's important to carefully consider the terms under which the
     10 stuff I hack on is shared to ensure they're consistent with my values. Despite
     11 my general dislike for all things legalistic, the most unambiguous way to state
     12 those terms is through a licence. So a couple days ago, I tossed LICENSE files
     13 into any of my public [repos](/code) that didn't already have one.
     14 
     15 So how did I settle on which licences to apply? Jump on into the DeLorean and
     16 let's set the dial back to the late 1980s.
     17 
     18 It's 1986 and I've got a 1200 baud modem wired up to a beat-up 286 with a steel
     19 case that would easily allow it to double as a boat anchor if needed.  Armed
     20 with a dot-matrix printout of local BBSes with names like Camelot, Tommy's
     21 Holiday Camp, and Forbidden Night Castle, I fire up PC-Talk. A series of
     22 [high-pitched squeals and tones][modem_handshake] fill the air, then text
     23 flashes across the screen. I'm online.
     24 
     25 BBSes were a treasure trove of information, filled to the brim with zip archives
     26 full of downloadable programs, source code, patches for existing programs, and
     27 all manner of text files with names like [Smashing The Stack For Fun And
     28 Profit][smash_stack]. You could find everything from how to crack copy-protected
     29 software, to details on phone phreaking, to how to make nitroglycerine from
     30 commonly-available household items. It was through BBSes that I first downloaded
     31 an I'm sure _totally legitimate_ copy of Borland Turbo C++ and took my first
     32 baby steps writing _real_ programs. No more BASIC for me.
     33 
     34 This culture of open sharing in the online world has had a huge impact on me.
     35 From those early experiences with BBSes to my first forays onto the Internet a
     36 few years later, seeing people openly sharing code and patches and helping each
     37 other solve problems over Usenet seemed almost revolutionary to me at the time.
     38 In some ways, it still does. I feel lucky to have been a part of it from such an
     39 early age.
     40 
     41 The end result is that I try to publicly share all the work I do. So when it
     42 came time to chuck licences on stuff, I sat down to work out a personals ad for
     43 my ideal licence. Aside from enjoying long walks on the beach, it should:
     44 
     45   1. Allow free use, modification, and distribution both of the original
     46      work and any derived works.
     47   2. Require that people distributing the work or any derived work to
     48      give appropriate credit.
     49   3. Disallow suggesting that I in any way endorse any derived products
     50      or whoever produces them.
     51   4. Gently encourage a culture of open exchange and sharing of
     52      information and techniques.
     53   5. Be short, clear, and easy to understand.
     54 
     55 On the software side, there were lots of options, but the best matches in my
     56 mind are the [MIT][mit_licence] or [BSD][bsd_licence] licences. The 3-clause
     57 'new' BSD licence has an advantage in that it required written permission from
     58 the author to use their name in any endorsement/promotion of a derived work.
     59 That happens to be what we already use for [work][flutter].
     60 
     61 On the content side, I've always posted my web site's content under a [Creative
     62 Commons Attribution-ShareAlike][cc_by_sa] licence.  But I don't believe that's
     63 actually the ideal match based on my priorities. Why is it that I've elected to
     64 use a licence that requires that derived works also be licensed under the same
     65 terms rather than under whatever terms someone feels like, so long as
     66 acknowledgement is given? In the end I settled on the more permissive [Creative
     67 Commons Attribution][cc_by] licence.
     68 
     69 This feels to me a bit like the difference between [BSD][bsd_licence] and
     70 [GPL][gpl_licence] terms, where the latter requires that derived works also be
     71 GPL-licensed. This "viral" nature has always rubbed me the wrong way: rather
     72 than gently promoting a culture of sharing by example, it legally _requires_
     73 sharing under the same terms whether or not you want to.
     74 
     75 Personally, I'd like for people to do the right thing and share their work for
     76 everyone's benefit not because they _have_ to, but because they _want_ to. If
     77 they don't want to, why should my reaction be to disallow their use of my work?
     78 Isn't that contrary to my stated goals of sharing as much and as broadly as
     79 possible?
     80 
     81 While I _hope_ that more people share more of their work, it doesn't bother me
     82 if you don't. If anything I've written is somehow useful to you, I'm glad. Use
     83 your knowledge to help others and make the world a better place, and if you can
     84 find time to do so, share a bit with the rest of us.
     85 
     86 Got thoughts and opinions on licences? Fire an email my way at
     87 [chris@bracken.jp][email].
     88 
     89 [modem_handshake]: https://www.windytan.com/2012/11/the-sound-of-dialup-pictured.html
     90 [smash_stack]: https://insecure.org/stf/smashstack.html
     91 [flutter]: https://github.com/flutter/flutter
     92 [mit_licence]: https://opensource.org/licenses/MIT
     93 [bsd_licence]: https://opensource.org/licenses/BSD-3-Clause
     94 [gpl_licence]: https://opensource.org/licenses/GPL-3.0
     95 [cc_by_sa]: https://creativecommons.org/licenses/by-sa/4.0/
     96 [cc_by]: https://creativecommons.org/licenses/by/4.0/
     97 [email]: mailto:chris@bracken.jp