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 htmlquarto/_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:

  1. Download this repository in a Zip file

  2. Unzip the zip file

unzip LittleBookOfSemaphores-master.zip
  1. Change into the directory that contains Sync.py
cd LittleBookOfSemaphores-master/code/
  1. Run Sync without example code:
python Sync.py
  1. 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.