I recently came across a fascinating book, The Nature of Code by Daniel Shiffman. It is an introduction to using software tools to better understand the way things interact in nature. Shiffman employs animations and visualizations to create this joyful understanding of simulation and the world around us. From a simple oscilating pendulum, to a group of many interacting particles, to the general patterns of a flock of birds.
Here are 10 reasons why you will love this book after reading the first few pages:
- The book is open access, licensed under the Creative Commons by Attribution NonCommercial 3.0 Unported License.
- All of the source code shared in the book is open source; licensed under the MIT License.
- The book was produced using the open source publishing tool, the Magic Book Project. From a common ASCIIDOC file, formats generated include PDF, HTML and multiple eBook formats.
- The author self-published the book so that he could be in control of how the book is shared, making it more accessible to everyone. In his previous book Learning Processing, Shiffman experienced how little control an author get with a traditional publisher; hence decided to do it differently this second time.
- The creation of the book was funded by a Kickstarter campaign. It was backed by 1,189 people who collectively raised $31,575, well above of the original goal of $5,000.
- The book is fully available online.
- There is an option to "pay what you want" with a suggested and very reasonable price of $10.
- Upon purchase, you can donate a fraction of the payment to the Processing Foundation, a programming language, development environment, and online community.
- The source text of the book is available on GitHub, where you can report bugs in the text and propose fixes and changes as pull requests.
- The source code in the book is available on Github, where you can report bugs and propose fixes as pull requests.
Daniel Shiffman, the author of this book, The Nature of Code has given us a great example of how to use the open source way from start to finish—to fund, to write, to distribute and share, and to maintain a book!
2 Comments