LittleBookOfSemaphores
August 22, 2026 · View on GitHub
LaTeX source and supporting code for The Little Book of Semaphores, by Allen Downey.
Development environment (conda / mamba)
For a reproducible setup (recommended for Sync development and tests):
make create_environment_dev
conda activate LittleBookOfSemaphores
Useful targets: make help, make tests, make html (Quarto book), make html-dev (short TOC), make serve (Sync web UI), make update_environment_dev, make delete_environment.
Pip-only equivalent for CI: pip install -r requirements-dev.txt (still needs system tkinter to run the desktop GUI).
Quarto is installed separately (get started). HTML book: quarto/ → make html → quarto/_book/index.html. Published at https://AllenDowney.github.io/LittleBookOfSemaphores/ (make html-publish).
Running Sync
Desktop Sync needs Python with tkinter (tk is included in the conda environment above).
From a zip download:
-
Unzip the zip file
unzip LittleBookOfSemaphores-master.zip
- Change into the directory that contains Sync.py
cd LittleBookOfSemaphores-master/code/
- Run Sync without example code:
python Sync.py
- Run Sync with example code:
python Sync.py sync_code/barrier.py
If you are using Anaconda, you might find that the fonts don't look good. This is a well-known problem with no easy solution.
See PROJECT_BOARD.md for the Sync web-app roadmap.
Translations
The following list of translations is sorted alphabetically.
EPUB Versions
If you have created a translation of this book and would like to add it to this list, feel free to submit a pull request or contact me to include it here.