# Topic Ideas

## Playing with Related Work

- Croquet
  - https://croquet.io/sdk/do
  - Live Programming In New JavaScript Croquet
  - New JavaScript Croquet (back in Squeak ;-)) #hard
- Webstrates [@Klokmose2015WSD]
  - https://webstrates.net/
  - https://github.com/Webstrates/Webstrates
  
## Lively4 Applications 
- MPatch: Lively Changes of Foreign Sites
  - Tables and Websites EUD
  - Idea... hook/blend custom content based on foreign keys... analogous [Towards End-user Web Scraping For Customization](https://kapaya.github.io/px21/)


## Practical Problems
- explain Latex to PDF bidirectional mapping
- comparing async log files e.g. CI logs / nodejs
- async / async function calls <-> async distributed message passing: javascript and workers, server communication
- tabs, windows, window management in lively4
  - <browse://doc/journal/2020-02-14.md>
- Navbar Projectional Editing 
  - <browse://doc/journal/2019-09-09.md>
- Projecting UI back to Code
  - <browse://doc/journal/2019-09-03.md>

## Possible Nice Demos
- Shedama Virus Epidemic?
- explain TeX Macros 
- BOIDS in Shedama <https://www.red3d.com/cwr/boids/>

## Research Interests
- Omnicient Example Debugging

## Interesting Problems
- object merging

## Interesting Technologies

- Conflict-free replicated data type
- Island Parsing

## Teach SWA
- Interactive Demo for Simula
- Interactive Demo for SketchPad

## My Interests
- Academic, literature-listing
  - Academic Scripting... Robert's Example
- PDF?
  - <browse://doc/journal/2020-04-28.md>
- Annotations


## Lively4 UX
- Keyboard Navigation
  - <browse://doc/journal/2019-08-27.md>
  
  
## Projects with Dan

- St-72 redux [@Ingalls2020ESS]
  - <i>Do you know Smalltalk-72?  It is a very cool and tiny language.  Alan sketched it and I built it in 1972, but it has never been cleanly described.  Last year, to keep from going nuts with the HOPL paper, I wrote another interpreter (Redux) in JS, designed to be fairly simple, fast, and accessible to any browser or JS programmer.  My goal for Redux is to write a metacircular evaluator (currentContext := currentContext next) in St-72 itself, and that it be fast enough to be useful - hopefully even faster that he original assembly language interpreter.  There are several interesting aspects to this project, I think.  <p>
  First is that, other than sketches and recollections of Alan’s first evaluator, we have never been able to exhibit a “real definition” of the St-72 interpreter, as we have with Context-step in the Smalltalks since then.  This would install that missing piece of history. <p>
  Second, all the St-72 interpreters have relied on a fairly large set of primitive functions that detract from the elegance of the underlying language model.  With decent speed, many of these could be written in the language itself, thus better revealing the inner simplicity.<p>
  Third, it could be a much more ‘comfortable’ environment,  St-72 never had much of a programmer interface - no morphic, no decent debugger, and little more than 20k bytes to work with.  Redux offers essentially unlimited object memory for such experiments.<p>
  The good news is that almost on the day I finished my HOPL paper, I got Redux running.  The speed is gratifying: it runs at about 600 times the speed of the original Alto interpreter!  So… we have an artifact, already fun to play with, and rife with opportunities to perform little experiments, that could be entertaining as publications as well.
  </i>
- Complete St-78
  - <i>I’m sure you are aware of the NoteTaker Smalltalk resurrection that we created a few years ago.  Unfortunately the kernel of that system remains incomplete - there is no process scheduler, and the debugger doesn’t really work.  Completion would involved working inside the existing St-78 (already runs in any browser), fixing the debugger and Context-step, and porting the Process scheduler from St-76. </i>
- Resurrect St-76
  - <i>We have one (and only one!) disk image with Smalltalk-76 and complete source code.  As the first modern Smalltalk, it is of historical interest, and it is currently not accessible except by running Josh Dersh’s Alto emulator.  It should be fairly easy to adapt either the Notetaker-JS interpreter or SqueakJS to run that image, thus providing access to the original modern Smalltalk with relatively unlimited speed and space for instrumentation and other experiments.</i> (Source: Email from Dan Ingalls, Aug 1, 2020)
  
  
## Software Architecture

- [@Buschmann1996POS]
