This material is in early beta: over 300 suggestions and corrections are waiting to be folded in, some quite significant. Changes should be in place by July 2018, at which times printed copies and downloadable electronic copies will be made available.

How to Contribute

This book is a community resource; contributions of all kinds are welcome, from suggestions for improvements to errata and new material. Please note that all contributors must abide by the Code of Conduct (Appendix B), and that by submitting your work, you are agreeing that I may incorporate it in either original or edited form and release it under the same license as the rest of this material (Appendix A). I will add you to the acknowledgments (Section 1.5) unless you request otherwise.

  • The source for this book is stored on GitHub at If you know have a GitHub account and would like to add or fix something, please submit a pull request. If you simply want to report an error, ask a question, or make a suggestion, please file an issue.
  • If you don’t know how to use GitHub, please email your contribution to I will try to respond within a week.

Finally, I always enjoy hearing how people have used this material. Please let me know if you have a story you would like to share.