In this essay I want to argue that the open source math book community should move en masse to GitHub. For proof of concept, I’ve taken the liberty of creating a GitHub “organization” at https://open-math-book.github.io/
I think that GitHub can help us achieve many of the goals that have been expressed by other authors in recent blog posts here. Jim Hefferon has suggested that we have something akin to CTAN -- GitHub would let us achieve that without incurring any expenses (actual dollars for paying for servers, or time spent developing hosting software and maintaining the site). David Farmer has suggested that the community should adopt a standard for “meaningful math markup” and in a separate post he suggested developing a standard for the numbering of theorems, lemmas et cetera -- such standards, along with software tools for helping authors to make use of them could become community endorsed projects on GitHub.
I’d like to issue two disclaimers. One is that, even though I keep beating the GitHub drum, I have no financial interest in the company. The other is that I am still a Git neophyte. I decided to host my book, A Gentle Introduction to the Art of Mathematics, at GitHub last autumn. I had made the decision to offer multiple versions of the book and keeping everything organized seemed like a daunting task. I had been introduced to Git and GitHub at an MAA Prep workshop on WeBWorK back in July, and it seemed to fit the bill for my needs. I’ve found that using a Git repository for the source code of my project simplifies my life tremendously.
There are two similarly named entities under discussion, Git and GitHub. Git is a revision control system written by Linus Torvalds. If you’ve used RCS or CVS or SVN, you’ll have the general idea. The system allows a group of people to work simultaneously on the code for some software project and it automatically integrates the changes. Very rarely, there can be a so-called “collision” in which incompatible changes are made to the same lines within a source file, but for the most part the merging of various contributor’s work gets done automagically.
GitHub is a hosting service. It is operated by a company whose business model includes offering their service for free to open-source projects. This seems appropriate as the backbone of their system is the (open-source) Git software. But GitHub does much more than merely hosting source code repositories, a user and/or organization can have blogs and wikis, there is a nice system for tracking bugs and issues.
Many well-regarded projects are currently hosted at GitHub:
- The community-driven taco repository https://github.com/sinker/tacofancy (okay, so this one may not be that well-regarded, but it is delicious!)
It is free for open-source projects.
No need to “reinvent the wheel.”
Each Git repository that someone downloads is a full backup of the project. Thus the data is very reliably backed up in a distributed sense -- a very different scenario from what would have happened a short time ago had the linux box in the back of my office gone pffftt!
Having lots of projects available from a central source will give prospective authors a boost by providing examples of best practice.
What if the company goes belly up? (I deem this rather unlikely.)
Only viable for open source projects -- some notable math books are free but not open.
A full revision control system may be overkill during the early stages of a project.
“Authorship” may become a somewhat nebulous term. The normal model in open source programming may not be quite right when it comes to books, and academics need be cautious about getting appropriate credit for their work when it comes to P&T.
A balance would need to be maintained between the open, inclusive, “big tent” approach and the desire to be a bit more restrictive. Personally, I’d lean towards the experimentalist side of things and rely on other organizations (e.g. AIM) to provide an imprimatur indicating the projects that are more fully baked.
To date, I don’t think any open source math book has taken full advantage of the social coding paradigm. This may be largely due to the “Authorship” issue above. I’d like to see some truly collaborative project gets going and I think that GitHub is currently the best place to do that.
Last Spring I dealt with a nightmare scenario when my university transferred control of its web servers from the IT department to Public Affairs. My personal site was deleted and it took several months to get it reinstated. During the interim, I created a Google site and informed those adopters, that I knew of, of the situation. I would have been a much happier person if I had been working in a manner that wasn’t dependent on infrastructure that wasn’t under my control! GitHub may not be entirely under my control either, but hosting projects is their core business. Possibly I’m becoming too cynical, but it seems to me that the core business of most university websites is appearing attractive to high school seniors...