Hey all,
So I'm concerned about something I've noticed recently. I've seen multiple mentions of this book (Calendrical Calculations by Reingold and Dershowitz) and use of it's algorithms in Elixir's Calendar implementation, and I know I mentioned it back when I first suggested the idea of using something like the "rata die" concept to support multiple calendars. The problem is that the code and algorithms in the book are restrictively licensed. I wrote to Professor Reingold early last year (May-ish) about using the ideas from the book in Timex to implement support for multiple calendars as well as implement some of the alternate calendars, particularly the lunar ones. I heard back from Professor Dershowitz fairly quickly, and the gist was that I was free to use it for anything non-commercial, as long as it was appropriately attributed and restricted to non-commercial use. Because of this, I chose to avoid using it's contents as an implementation reference in Timex because it is used in commercial software. Below is the reply I received from him:
Thank you for your generous thanks.
Feel free to use our programs for your free (noncommercial) use,
provided proper attribution is given to Calendrical Calculations.
Please send us a link when you do publish anything.
But if you distribute it, it must preserve the attribution and
restriction to non-commercial usage.
Best,
Nachum
Recently in some PRs I happened to read through, I saw mention that the contributor was implementing the code using the algorithms from Calendrical Calculations. I think that could represent a real issue - Elixir is used in commercial software, and it seems to me like this could open up the language (or worse, the authors) to some kind of legal trouble.
I haven't been reading calendar-related PRs in depth for some time now because I've been pretty busy, so I don't know how much we've leaned on the book in Elixir. The use of the "rata die" concept is probably less troublesome since it's implementation is very different depending on what date you choose for the conversion, but if we've followed the algorithm from the book 1:1, then I think we'll have to change it.
I apologize for not bringing this up sooner, it didn't occur to me until today the ramifications - up until now I had just assumed we were using it as an authoritative reference on how to build calendar code, rather than using it as a source reference.
If I'm mistaken about how we've been using it, awesome! I just want to make sure we're in the clear :)
Paul