But then afterwards he told us that he had written a tool that typed out something prewritten as he mashed the keyboard.
https://www.youtube.com/watch?v=NSLvERZQSok#t=965
That later turned into
http://doitlive.readthedocs.org/en/latest/
and
Take the time to build a proper, edited presentation.
Somewhere he explained that he made a custom tool to make and play back a "perfect recording" of his edits.
2. Vim has Mundo[1] and Emacs has undo-tree[2] which allow you to step backwards-and-forwards through your changes.
As I see it, adding explicitly-selected frames to any of these features should be possible.
https://marketplace.visualstudio.com/items?itemName=jevakall...
Note that I don't know how well it would work for long sessions. Theoretically it would be fine, but the way it uses ImageMagick to convert the frames to an animation can be heavy on memory, so that could be a problem. However, the frames could be stitched together with other software that didn't present that problem...
1. git checkout -b demo
2. write some code and/or comments
3. git commit -am "message of what we did in this step"
4. Go to step 2 if not finished with demo.
5. Cycle through commits with script, each one a frame.
I probably didn't think about it enough (commit granularity too fine == annoying), but that seems like it might work, and you have the added bonus of having everything in git.Even simpler, a key logger with some control, wouldn't even need integration into a specific editor.
Edit, I see you can manually update stuff.
script -r
script -pHowever, I can use it like this:
script --command='vim code.py' --timing=typescript.timing typescript
scriptreplay -t typescript.timing -s typescript
A text editor but with "record" and "stop" buttons. Click "record", write all your code, then click "stop". Now you can go back in time and play it all from the beginning, and you can also select certain stopping points as frames.
Then in your live demo, just navigate from one frame to the next, and everyone can watch the pre-recorded code being typed as if it were being done in real time.
Bam. Problem solved.