#+TITLE: Append only exploratory #+AUTHOR: screwtape
* Output recording
There are several candidate methods for output recording, viewing this
as necessary to sharing my programming experiences.

A video feed of me programming, like Andrew Kravchuk streams is often
requested. However there is a mistake: Incremental screen dumps of a
text editor for starters wildly misrepresent the information streams
of us sharing our workstation. Even restricting to the machine's
states, the graphical screen is failing to consider the programming as
programming, and running image as running image. Anyway, here are a
few candidates
** X11grab :nope:
| Intrusive feeling | dumb | garbles time | requires high density |
  massive |
** Custom recording using common lisp's hooks :too_sudden_a_jump:
This is The Perfect Idea, as analysed within Interactive Programming
Environments. Naturally hooking in new / on-the-fly behaviours to the
image's running mechanisms is fundamental to exploring program space,
further lisp and common lisp was specifically made and has been
implemented towards this technique. HOWEVER acknowledging and
exploring this space of our craft is new to me so I need my hand held
for now. I expect to gently move into actively using hooks, not to
suddenly lurch into it.
** Output recording from ANSI CLIM2 :current_assay:
The implementation of clim2, and its de facto open source
implementation McCLIM the open source son of clim (thanks ratxue (and
jackdaniel)) fundamentally uses output recording (and replaying) and
provides higher level realisations of using low level mechanisms such
as hooks.

This is a couple of steps, compared to Knowing How To Program Around
Hooks' whole staircase. I intend to stick to #:CLOUSEAUX,
#:APPLICATION-FRAMEs, #+DISPLAY-TYPEs, #'PRESENT, #'ACCEPT and
#:COMMANDs to push programmatic concepts into the physical cyberspace
world of gopherMOO.

so CLIM2, and not-clim2 encompasing the interlisp complete system, and
system300 (system100) systems are the steps I am exploring ascending
right now.
** Emacs org-mode
which leaves me somewhere we all kinda know, and kinda have mixed
feelings about. Life In Plain Text Emacs org-mode.

This is output-recording or hooks done backwards: By conserving a
named slime session, and doing my Lisp Stuff through the McCLIM clim2
implementation, I can manually record my growing probably-sbcl image.

Further, I can maintain (and fork) a strict history by using
org-mode's :cache and I think M-x org-ingest-lob / M-x
org-execute-lob-maybe to replay history from scratch.

Using org-babel is the lowest common denominator, being a markdown
based redundant multi-purpose m/any language environment. However I am
identifying the lowest common denominator with being the ground to
start my ascent from.

The key rule to create a lisp-like experience is, I think to make my
org-file records append-only. If I were to grind, modify, re-execute
an earlier named block (say ingested in a lob), that is still a
discrete action, taken after other actions.

Alright, here's to the plan.