Interlisp / medley

The main repo for the Medley Interlisp project. Wiki, Issues are here. Other repositories include maiko (the VM implementation) and Interlisp.github.io (web site sources)
https://Interlisp.org
MIT License
375 stars 19 forks source link

Want short demos of interesting Interlisp features #4

Open masinter opened 4 years ago

masinter commented 4 years ago

the Interlisp way, file package, masterscope, versioned file system, dwim, break package, lispx commands, spy

lafite, tedit, image objects, grapher

masinter commented 3 years ago

The outline of demo features in the LispNYC slide presentation corresponds to a breakdown of demos to give

image

masinter commented 3 years ago

There are a couple of videos demos listed in the Medley Wiki but nothing systematic.

Writing a script would be the first order.

masinter commented 3 years ago

@skaisler1 want to try your hand at script writing? I was thinking we could do a lot of short (2 minute) feature demos. I could get some help editing recorded screen-share demos, perhaps linked to chapters of the books.

masinter commented 2 years ago

The explanation of how to use the Medley mouse and keyboard probably would be best a video clip;

https://github.com/Interlisp/medley/issues/690#issuecomment-1047998293

Interlisp Exec: You need a 2 or 3 button mouse, or know how to have your trackpad/buttons generate a right-mouse-button event as well as the left-mouse-button event. Then: right-mouse-button down (and hold) in the background (the gray stipple not in any window) and you'll get a pop-up menu with EXEC as one of the items, slide the mouse pointer over that until it highlights, then slide right (it has the ► to indicate it has sub-menus) and over the "Interlisp" item (it also has sub-menus) and release the mouse button on the highlighted "Interlisp" item. It will then prompt you to position and size the new Exec window -- left button down to freeze the top-left corner and drag out the region and then release it to set the lower-right corner. Click in the window to give it the keyboard focus and then you can type at it.

@zbraiterman ?

zbraiterman commented 2 years ago

@masinter I'd be honored to help create a demo. Thank you for thinking of me. :)

masinter commented 1 year ago

I like the idea of "live" demos which are actually done inside medley, with image objects. The video is to show them that it's easy ad what to expect.

masinter commented 3 months ago

how about a contest -- a prize for the 5 best demo videos? (contestent supplies script and recording) 'best' determined by likes on youtube? An idea for the wednesday morning meeting?

pamoroso commented 3 months ago

Here are some ideas for demo videos:

I added a demo video contest item to the agenda of the July 3, 2024 external meeting.

masinter commented 3 months ago

Maybe I'mrepeating myself (arguing with myself), but looking again:

To do a demo, it really helps to have a script. A script someone can follow along is a start.

A script for a demo is almost as good as a video, and a lot easier to produce. A demo like https://interlisp.org/src/lispusers/DEMO-FEATURES.TEDIT.pdf would be start.

I haven't compared your list of topics to the one given in https://github.com/Interlisp/medley/issues/4#issuecomment-814373213

pamoroso commented 3 months ago

Thanks, now it's clear. I agree videos are hard to produce and change.

Now that I think about it I may have posted something similar, i.e. a few very short, tweet-like demos (perhaps "microdemos"):

masinter commented 3 months ago

These are great. I suppose this begs the question of where to put the actual demo/demolet? It's a subset of the bibliography-source problem.

maybe just link to the feature demos or screenshots or videos from the source?

SOme regular things to put in the catalog of Medley demos?

  genre: video, screenshot,  in-Medley demo
  If a part of a larger presentation,, start time
  ir timed media (video) duration
  if part of a larger presentation then page number, parqraph
  if avilable, pointer to source code
  if available, pointers to user and implementor documentation)
  topics (history, features, getting started, techniccal discussion)
  title, author(s) ane contributors, date produced....
  other tags: revision, reissued, ...
  intended audience: newcomer, Lisp developer, programming tools architect
   relevance (focused on medley, interlisp; partial (discusses tradeoffs 
  mentions in passing)
  demo review status (tested, approved, unreviewed)
  demo maker's experience with Medley/Interlisp-D: (nrevomer, used for decades,
    ...

https://interlisp.org/software/using-medley/ somewhere in there.

phantomics commented 3 months ago

I find videos aren't hard to do with OBS. A more ambitious goal could be a multi-step tutorial to build a small but interesting program.

pamoroso commented 3 months ago

The old series of blog posts on Lisp debugging Simon Dobson rediscovered may be another source of inspiration for demos and scripts.

pamoroso commented 3 months ago

I posted another demolet on file system Exec commands.

masinter commented 3 months ago

Historically the file system commands were DIR,NDIR,FB,CONN. An early 2020 "Lispusers" UNIXYCD added cd, ls, pwd. They are case insensitive (you can use commands in upper case too) and package-independent. This is a problem in some situations when you want to eval a variable which matches a command.

There are a few things that probably SHOULD be commands, but are currently implemented as Interlisp NLAMBDA functions.

The Interlisp Exec handles input of 3 kinds: EVAL format, APPLY format, and "commands". If you type in a list -- starting with a left paren -- it is EVALed (or an undoable form of the expression. (Or should be undoable, verifying and correcting those that aren't is a big TODO item). If you type a symbol immediately followed by a List, it is treated as an APPLY-style call:

2/4_ LIST(A B)
  => (A B)

This is just to avoid typing the extra punctuation (LIST 'A 'B)

But first the EXEC (The REPL that does more than read-eval-print) checks for "commands". A command is case-independent and package-independent. Commands are like function that can only be typed in at the top level. The set of commands incldue "history" commands (REDO FIX ?? UNDO RETRY), file commands (DEL, DIR, CONN, SEE). When running in a "break" there are debugging commands (BT, BT!, BTV, @, ?=, REVERT)

THere is an ambiguity about what should be done when you type a single symbol on the line input, that doesn't occur otherwise, if the symbol is (case-insensitive string-equal to a command -- Did you mean to eval the variable or invoke the command.

If you type in SYMBOL(LIST) without a space between the symbol and the left paren, than it prefers the APPLY format. If type in a second symbol. SYMBOL1 SYMBOL2 ... then the command interpretation is preferred. if you type SYMBOL (LIST )does it prefer command. Only if you have a variable NAME (in some package) and you type NAME does it become annoying -- You need to treat it at least as ambiguous.

If you type SYMBOL stuff and there is no COMMAND matching SYMBOL AND Symbol is a NLAMBDA format, it's treated as APPLY format (which will error on case and package mismatch.

I think we might make it easier for newcomers by adding some explanatory text to what's going on but experienced users can turn off.

Could you possibly make a list of demolets for the website? or linked from?

pamoroso commented 3 months ago

Yes, I'll make a list of demolet links for the website.

A demos section with the list could go under Software > Documentation > Using Medley Interlisp Basics (after "Writing a sample Interlisp program") or Software / Documentation (after "Introductory material"). Where else?

The list would fit well with the concise essentials and tidbits of the first page.

masinter commented 3 months ago

it would be good to get some links to introductory material for those who would start oout with online.interlisp.org first without reading any documenetation. Not sure where to put that, though.

pamoroso commented 3 months ago

We could add to online.interlisp.org some minimal text like this:

New to Medley? [Check out these demos]().

The link would lead to a Demos section on the website pages suggested above, or somewhere (at the end?) on the page Software / Access Medley Online.

This keeps clutter to a minimum on Medley Online and decouples it from the actual content which can be updated independently.

pamoroso commented 3 months ago

Another demolet: sending stream output to windows.