Share your exploratory session as a literate notebook, including embedded inspectors and debuggers
-
Get a recent Squeak Trunk image (tested with Squeak 6.1Alpha #23575)
-
Do the following:
Metacello new baseline: 'ExploratoryNotebooks'; repository: 'github://hpi-swa-lab/exploratory-notebooks:main'; get; "for updates" load.
Alternatively, use
load: #experimentalto install advanced tracking support for immediate objects. (This will patch several methods in the base system.) -
Open an example notebook:
XnbWorkspace openExample.Alternatively, you can also download one of the example notebooks and drop it into the Squeak image.
Note
To reproduce the testTerminateEverywhere notebook, you must load Kernel-jar.1633 from trunk before installing this project:
- In the main docking bar, open Apps > Monticello Browser
- In the package list, select
Kernel - In the repository list, select
https://source.squeak.org/trunk - Press Open
- In the version list, select
Kernel-jar.1633 - Press Load
Tip
For a quick start, run XnbWorkspace openExample and follow the quick in-image tutorial.
- Create a new notebook via Apps > Exploratory Notebook.
- Start your exploration by running do-its, inspect-its, debug-its, etc. in the new notebook or any other tools. From the opened tools, you may open further tools, e.g., by navigating through an explorer, spawning more inspectors, stepping through a debugger, etc.
- When you want to record an artifact, press the copy icon in the title bar of its tool window. This will add a copy of the tool to the notebook, prepended by all do-its that were necessary to create this artifact.
- You can also add manual experiments and tool invocations to the notebook, as well as comments to document your findings. Press Cmd + P to execute a cell in the notebook.
- Press the Export button to save your notebook to a
.xnb.htmlfile.
- You can open a notebook by dragging it into the world or by using the File List from the Tools menu.
- Revitalize the notebook by rerunning it through the Rerun all button.
- You can also rerun the notebook up to a certain artifact by pressing the run icon at its top left corner.
- Press the expand icon at the top of any tool to spawn a copy of it in the world.
- Like in regular workspaces, you can also inspect variables or perform debug-its etc. from the notebook.
You can also view and interact with exploratory notebooks on the web: https://hpi-swa-lab.github.io/exploratory-notebooks. Press Choose File to explore a shared .xnb.html file or use the drop-down menu to browse sample notebooks. By clicking on any tool, you can run the notebook in the browser using SqueakJS.
Christoph Thiede, Tom Beckmann, Marcel Taeumel, and Robert Hirschfeld. 2026. Literate Exploratory Programming for Asynchronous Collaboration. In Companion Proceedings of the 9th International Conference on the Art, Science, and Engineering of Programming (’26 Companion), March 16–20, 2026, Munich, Germany. ACM, New York, NY, USA, 11 pages. To appear.
BibTeX
@inproceedings{thiede2026literate,
author = {Thiede, Christoph and Beckmann, Tom and Taeumel, Marcel and Hirschfeld, Robert},
title = {Literate Exploratory Programming for Asynchronous Collaboration},
year = {2026},
month = {3},
day = {16--20},
publisher = {Association for Computing Machinery},
address = {New York, NY, USA},
booktitle = {Companion Proceedings of the 9th International Conference on the Art, Science, and Engineering of Programming},
location = {Munich, Germany},
series = {Onward! 26},
note = {To appear}
}