#+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.