Snapshot Documentation Since computation snapshots can sometimes be compressed to just a few megabytes, it is now potential to save hundreds of Linux states on a CD, or many thousands on a software publisher's web site. This makes it practical to use snapshots as a form of detailed documentation that we call Snapshot Documentation. This idea is discussed more in this publication:
Richard Potter and Yasunori Harada. Additional Context for Gentle-Slope Systems. In Proceedings of the 2003 IEEE Symposia on Human Centric Computing Languages and Environments (HCC03), Auckland, New Zealand, October 2003. [PDF]
Man Pages Imagine that every programming manual page had snapshots that showed how each programming component is used in a context that made it easy to experiment and explore connections and details. A snapshot for the Linux socket command might look like this snapshot, and it might be linked into a manual page something like in this [socket man page], which has a Snapshot Documentation section added.
The snapshot contains two copies of netcat (nc) running in two gdb debuggers in emacs. Each debugger has 15 breakpoints set so that the code will stop on socket and related system calls like bind and accept.
Sockets Code Demo (8.4MB + 0.7MB delta)
GUI Application Documentation The same idea could applied to end-user applications that non-programmers use. The following snapshot sets up the situation described in the section of the KSpread spread manual on [this page]. Extra links have been inserted into the page for this demo.
KSpread Documentation (3.2MB + 0.3MB + 0.4MB delta)