Notes on production¶
Writing this book has meant bringing together text, mathematics, and code, using a large array of open-source tools. It’s amazing what you can get your hands on these days, and I’m grateful to the contributors to the various projects for their creativity and generosity.
The book is written with a combination of “markdown” text and Jupyter notebooks to allow executable content. It was then assembled using Jupyter Book to drive the Sphinx documentation generator, and hosted on GitHub Pages.
Simulations are all written in Python 3 and
expressed using the
epydemic
library for
network simulation, which itself is built on top of the
networkx
library for representing and
manipulating networks in Python.
The mathematics makes heavy use of the numpy
.
The diagrams are all generated using
matplotlib
together with
seaborn
to improve the graphical
presentation, as well as some of the network visualisation functions
built into networkx
.
For the experiments where a lot of numbers are being crunched we use
the epyc
computational
experiment management library and
pandas
to handle the resulting
datasets. The large experiments use a compute cluster (“hogun
”)
with 11 machines each with 16Gb of memory and two 4-core Intel Xeon
E3-1240@3.4MHz processors; all other experiments are performed on a
2017-vintage MacBook Pro with 16Gb of memory and a dual-core Intel
i5@3.1GHz processor.
All text, code, and diagrams are available for download from the project’s GitHub repo.