From 134662b4a465a73bf1be44665b1caf37809d47f3 Mon Sep 17 00:00:00 2001 From: Frank Halasz Date: Wed, 29 Oct 2025 17:58:47 +0000 Subject: [PATCH 001/166] First pass at museum mode where can specify a URL of a start script which will be loaded and run when Online Medley starts up - accessible only via the online.interlisp.org/guest scheme. --- docker_medley/init/ONLINE-INIT | 71 +++++------------------- docker_medley/init/ONLINE-INIT.LCOM | Bin 5297 -> 4509 bytes docker_medley/scripts/run-online-medley | 12 ++++ web-portal/client/js/main.js | 47 ++++++---------- web-portal/client/views/main.pug | 1 + web-portal/server/js/app.js | 4 +- web-portal/server/js/medley.js | 3 + web-portal/server/js/user.js | 2 + 8 files changed, 51 insertions(+), 89 deletions(-) mode change 100755 => 100644 docker_medley/init/ONLINE-INIT mode change 100755 => 100644 docker_medley/init/ONLINE-INIT.LCOM diff --git a/docker_medley/init/ONLINE-INIT b/docker_medley/init/ONLINE-INIT old mode 100755 new mode 100644 index f1de5c98..3129e7d6 --- a/docker_medley/init/ONLINE-INIT +++ b/docker_medley/init/ONLINE-INIT @@ -1,10 +1,12 @@ (DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "INTERLISP" BASE 10) -(FILECREATED "18-Mar-2025 22:45:51" {DSK}medley>il>ONLINE-INIT.;1 10668 +(FILECREATED "29-Oct-2025 10:51:28" {DSK}frank>il>medley>greetfiles>ONLINE-INIT.;2 8007 - :EDIT-BY "guest" + :EDIT-BY "FGH" - :PREVIOUS-DATE "17-Mar-2025 17:06:18" {DSK}medley>il>ONLINE-INIT.;1) + :CHANGES-TO (FNS Online.DoInit) + + :PREVIOUS-DATE "25-Feb-2024 11:38:10" {DSK}frank>il>medley>greetfiles>ONLINE-INIT.;1) (PRETTYCOMPRINT ONLINE-INITCOMS) @@ -20,8 +22,8 @@ (INITVARS (Online.LogoutTimeout 30) (ONLINEP NIL)) (ADVISE (SAVEVM :IN \IDLER)) - (FNS Online.SftpInitInfo Online.SftpUpdateInfo Online.SetUpNOTECARDSDIRECTORIES - Online.FileButton Online.DoInit ONLINEP) + (FNS Online.SftpInitInfo Online.SftpUpdateInfo Online.SetUpNOTECARDSDIRECTORIES Online.DoInit + ONLINEP) (DECLARE%: DONTEVAL@LOAD DOCOPY (P (Online.DoInit))) (DECLARE%: FIRST DONTEVAL@LOAD DOCOPY (P (BKSYSBUF " "]) @@ -100,56 +102,10 @@ (PRIN1 "and Notecards will not work properly." T) NIL]) -(Online.FileButton - [LAMBDA NIL (* ; "Edited 18-Mar-2025 22:31 by guest") - (* ; "Edited 17-Mar-2025 16:51 by fgh") - (* ; "Edited 16-Mar-2025 23:40 by guest") - - (* ;; " Add the FILES IMPORT/EXPORT button to the bottom of the button stack on the right side of the screen") - - (LET* ((RIGHTMARGINISH 140) - (Apps.BUTTONS (for B in *ALL-BUTTONS* when (WINDOWPROP B 'Apps.BUTTON) collect B)) - (LowestButton (CAR Apps.BUTTONS)) - P B L) - (if LowestButton - then - (* ;; " Find the lowest existing button on the right side of the screen") - - (for B in Apps.BUTTONS when [ILESSP (fetch BOTTOM of (WINDOWPROP B 'REGION)) - (fetch BOTTOM of (WINDOWPROP LowestButton - 'REGION] - do (SETQ LowestButton B)) - - (* ;; - " Set the y-position for the label based on the lowest button, then create the label") - - (SETQ L (Apps.CreateLabel "FILES" (IDIFFERENCE SCREENWIDTH (IDIFFERENCE - RIGHTMARGINISH - 50)) - (IDIFFERENCE (fetch BOTTOM of (WINDOWPROP LowestButton 'REGION)) - 35))) - (WINDOWPROP L 'RIGHTBUTTONFN 'NILL) - - (* ;; - " Set the position of the files button based on the label, then create the button") - - (SETQ P (create POSITION - XCOORD _ (IDIFFERENCE SCREENWIDTH RIGHTMARGINISH) - YCOORD _ (IDIFFERENCE (fetch BOTTOM of (WINDOWPROP LowestButton - 'REGION)) - 85))) - (SETQ B (CREATE-BUTTON '(ShellBrowse (UNIX-GETENV "OIO_FB_URL")) - "IMPORT/EXPORT" P)) - (WINDOWPROP B 'RIGHTBUTTONFN 'NILL) - [WINDOWPROP B 'BUTTONEVENTFN (FUNCTION (LAMBDA (BUTTON) - (if (LASTMOUSESTATE (ONLY LEFT)) - then (EXECUTE-BUTTON BUTTON] - T]) - (Online.DoInit [LAMBDA NIL - (* ;; "Edited 16-Mar-2025 23:26 by guest") + (* ;; "Edited 29-Oct-2025 10:50 by FGH") (* ;; "Edited 25-Feb-2024 11:37 by fgh") @@ -222,9 +178,11 @@ (Online.SetUpNOTECARDSDIRECTORIES) - (* ;; "Create File Import/Export Button") + (* ;; "If there is a start-script file, load it ") - (Online.FileButton]) + (LET [(START-SCRIPT (UNIX-GETENV 'START_SCRIPT] + (IF START-SCRIPT + THEN (LOAD START-SCRIPT]) (ONLINEP [LAMBDA NIL (* ; "Edited 24-Feb-2024 22:31 by fgh") @@ -239,7 +197,6 @@ (BKSYSBUF " ") ) (DECLARE%: DONTCOPY - (FILEMAP (NIL (1640 10532 (Online.SftpInitInfo 1650 . 2523) (Online.SftpUpdateInfo 2525 . 2780) ( -Online.SetUpNOTECARDSDIRECTORIES 2782 . 4490) (Online.FileButton 4492 . 7320) (Online.DoInit 7322 . -10393) (ONLINEP 10395 . 10530))))) + (FILEMAP (NIL (1692 7871 (Online.SftpInitInfo 1702 . 2575) (Online.SftpUpdateInfo 2577 . 2832) ( +Online.SetUpNOTECARDSDIRECTORIES 2834 . 4542) (Online.DoInit 4544 . 7732) (ONLINEP 7734 . 7869))))) STOP diff --git a/docker_medley/init/ONLINE-INIT.LCOM b/docker_medley/init/ONLINE-INIT.LCOM old mode 100755 new mode 100644 index c4462eba55dbddd886e5e80a71b62498b0acdc93..96d18f3427ce2c66a9dc98fd9f6c1950e487582f GIT binary patch delta 657 zcma))F>ljA6vyKVA#eeeW?`XvI)>U3w(N_OrUoLM_?(^^-C4d%T2H8L+}6c$P|1Q2 z%F2jj82Jz=AA^;hkHLzaAb}tQH=OQ0{q=vp_t$;VKR^0#G{^e}KbslY!cDL(w`sdh z3xS5trju7`mW*MV0|ND}FAm>5y_`;x&iVC8{<4#1ok=pzk~f`;>m-?-m)h4I&IXhb zgEA`3Cs+q$JHOp=!*wjz+D9;}%(LAwr1>0F^9O>EuaI^ zi-;$Q59r?|a2vt@Fwg&nhPGwxflGWUjc%+03i<~K+}?r5`a~F#gBCCWJkQcRG5smc z)0qx#7?Ba>Lt*$OQ3=#Eg5>Y6}xwSJQK?0 zgJpS9^=?sG6^B75$2CRNTsDq{!kLv{aoJlhB2G5taKJW1`1}y}wdnjVj9R}*6sP8C00rBIo AjQ{`u delta 1369 zcma)6O>EO<7`6+P)`gNlK@}3yi;*BfO6Je`a}26*nlH^a96R`@X$4hUh(&|krfP!_ zLdX*59gwoi4!iD5Rk*;Uop;`;#~r3!;lv4bukC1U1BV^*I^W~xeZS}Z^DozS)2~|r zQ8JCS?TjqR1(0PmUsMSZAtgTQZESUYuLHeJ5aC7DzWeg_dT+y<+weNR_k6DF&zXkK z44PpEbF#Nc8U&G)4ucU{%@x$VBtk!o<=^N)7ei^yrVWR@pa9uyR)o%4AMg5BfTEZd zQZ=U2d5dZets-eeazQPiZzA3we0?es+u)TTujnd#b@D&8@o zqohh$73JGk?ES+(84qe$s>;)TzqhGLl0-nQDng2Z1QpkDOd}24MULb6RWzJ``fvZ_ z$F~!ACc{&LOA!U=5}kJ)niH1KQeG?Nn zIK!j%ACo-SnoVk_*ok*1UhQ(f{%}4?CIf?SPye1woHD21hUjY}nVd3bhLj7vFwxb} z)O~q>-<*yz|6_cN_pj|wg?RgX=W+OqOoXh4$NDj@yMMWzh+;*?Ohm*L^bC%0&w!C~I5{KM?j{VZy&60m`+O!yyLE zGF_ueml*1|5s?RfOlVL08yzEq3n>?iUzcS-gim|9sXtGi aIkJ7i;NaZsU^YQ{VX%_8x)&tA { const isRunning = data.isRunning; const sessionType = data.target; - if(isRunning) { - new Promise((resolve, reject) => { - const dlg = document.getElementById("reconnect-dialog"); - const typeEl = document.getElementById("rd-type-span"); - typeEl.html = sessionType; - dlg.resolve = resolve; - dlg.reject = reject; - dlg.showModal(); - } - ) - .then(RorK => { - window.location.assign( - `/medley/${interlispOrXterm || "interlisp"}` - + `?screen_width=${screenWidth}` - + `&screen_height=${screenHeight}` - + `&if=${RorK}` - + `&resume=${resume || "false"}` - + `&custom=${custom || "false"}` - + `&custom_init=${customInit || "false"}` - + `¬ecards=${runNotecards || "false"}` - + `&rooms=${runRooms || "false"}` - + `&sftp=${startSftp || "false"}` - + `&exec=${medleyExec || "inter"}` - + ( isAutoLogin ? "&autologin" : "") - ); - } - ); - } - else { - window.location.assign( + const medley_url = `/medley/${interlispOrXterm || "interlisp"}` + `?screen_width=${screenWidth}` + `&screen_height=${screenHeight}` @@ -200,8 +171,22 @@ function startSession (interlispOrXterm) { + `&sftp=${startSftp || "false"}` + `&exec=${medleyExec || "inter"}` + ( isAutoLogin ? "&autologin" : "") - ); + + ( (alStart != "") ? `&start=${alStart}` : "" + ; + + if(isRunning) { + new Promise((resolve, reject) => { + const dlg = document.getElementById("reconnect-dialog"); + const typeEl = document.getElementById("rd-type-span"); + typeEl.html = sessionType; + dlg.resolve = resolve; + dlg.reject = reject; + dlg.showModal(); + } + ) + .then(RorK => { window.location.assign(medley_url + `&if=${RorK}`); } ); } + else window.location.assign(medley_url); }, reason => {} ); diff --git a/web-portal/client/views/main.pug b/web-portal/client/views/main.pug index 2cb826ef..145f78cf 100644 --- a/web-portal/client/views/main.pug +++ b/web-portal/client/views/main.pug @@ -26,6 +26,7 @@ block headeradds const alNotecards = #{notecards}; const alRooms = #{rooms}; const alURL = "#{alURL}"; + const alStart = "#{start}"; link(rel="stylesheet", href="/stylesheets/main.css") diff --git a/web-portal/server/js/app.js b/web-portal/server/js/app.js index 469fc847..70006ebf 100644 --- a/web-portal/server/js/app.js +++ b/web-portal/server/js/app.js @@ -110,7 +110,8 @@ app.get('/main', isAutoLogin: isAutoLogin, notecards: (req.query.notecards != undefined), rooms: (req.query.rooms != undefined), - alURL: alURL || "dummy" + alURL: alURL || "dummy", + start: (req.query.start != undefined) && (req.query.start != "") ? req.query.start : "" } ); } @@ -127,6 +128,7 @@ app.get('/guest', newQuery.password = config.guestPassword; if(req.query.notecards != undefined) newQuery.notecards=""; if(req.query.rooms != undefined) newQuery.rooms=""; + if((req.query.start != undefined) && (req.query.start != "")) newQuery.start = req.query.start; res.redirect(url.format({pathname:"/user/autologin", query: newQuery})); } ); diff --git a/web-portal/server/js/medley.js b/web-portal/server/js/medley.js index bd6d7be4..5e32a7e9 100644 --- a/web-portal/server/js/medley.js +++ b/web-portal/server/js/medley.js @@ -70,6 +70,8 @@ function medleyEnvs(req) { const nc = (req.query.notecards && (req.query.notecards.toLowerCase() == "true")) ? "true" : "false"; const rooms = (req.query.rooms && (req.query.rooms.toLowerCase() == "true")) ? "true" : "false"; const exec = (req.query.exec && (req.query.exec.toLowerCase() == "common")) ? "common" : "inter"; + try { const start = req.query.start && decodeURI(req.query.start: } + catch(e) { const start = false; } return ` --env MEDLEY_EMAIL='${u.username}'` + ` --env MEDLEY_UNAME='${u.uname || "medley" }'` + ` --env MEDLEY_FIRSTNAME='${u.firstname || "Medley"}'` @@ -79,6 +81,7 @@ function medleyEnvs(req) { + ` --env RUN_ROOMS=${rooms}` + ` --env MEDLEY_EXEC=${exec}` + ` --env MEDLEY_MEMORY=${config.medleyMemoryArg}` + + start ? ` --env START_SCRIPT_URL='${init}` : "" ; } diff --git a/web-portal/server/js/user.js b/web-portal/server/js/user.js index e09e8081..7e3f8ee6 100644 --- a/web-portal/server/js/user.js +++ b/web-portal/server/js/user.js @@ -126,6 +126,8 @@ function passportAuthenticate(req, res, next) { newQuery.autologin=""; if(req.query.notecards != undefined) newQuery.notecards=""; if(req.query.rooms != undefined) newQuery.rooms=""; + if((req.query.start != undefined) && (req.query.start != "")) + newQuery.start=req.query.start; return res.redirect(url.format({pathname:"/main", query: newQuery})); } else From 80bec28041648951d5efb683fb18069f968728e3 Mon Sep 17 00:00:00 2001 From: Frank Halasz Date: Wed, 29 Oct 2025 18:36:52 +0000 Subject: [PATCH 002/166] Fix typo in server/js/medley.js --- web-portal/server/js/medley.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/web-portal/server/js/medley.js b/web-portal/server/js/medley.js index 5e32a7e9..76a89828 100644 --- a/web-portal/server/js/medley.js +++ b/web-portal/server/js/medley.js @@ -70,7 +70,7 @@ function medleyEnvs(req) { const nc = (req.query.notecards && (req.query.notecards.toLowerCase() == "true")) ? "true" : "false"; const rooms = (req.query.rooms && (req.query.rooms.toLowerCase() == "true")) ? "true" : "false"; const exec = (req.query.exec && (req.query.exec.toLowerCase() == "common")) ? "common" : "inter"; - try { const start = req.query.start && decodeURI(req.query.start: } + try { const start = req.query.start && decodeURI(req.query.start); } catch(e) { const start = false; } return ` --env MEDLEY_EMAIL='${u.username}'` + ` --env MEDLEY_UNAME='${u.uname || "medley" }'` @@ -81,7 +81,7 @@ function medleyEnvs(req) { + ` --env RUN_ROOMS=${rooms}` + ` --env MEDLEY_EXEC=${exec}` + ` --env MEDLEY_MEMORY=${config.medleyMemoryArg}` - + start ? ` --env START_SCRIPT_URL='${init}` : "" + + start ? ` --env START_SCRIPT_URL='${start}` : "" ; } From 6cf61ae0a8617217c6f3c4d7f212ef82160e3148 Mon Sep 17 00:00:00 2001 From: Frank Halasz Date: Wed, 29 Oct 2025 18:52:55 +0000 Subject: [PATCH 003/166] Fix typo in client/js/main.js --- web-portal/client/js/main.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/web-portal/client/js/main.js b/web-portal/client/js/main.js index fb53c06f..ff0b0bb1 100644 --- a/web-portal/client/js/main.js +++ b/web-portal/client/js/main.js @@ -171,7 +171,7 @@ function startSession (interlispOrXterm) { + `&sftp=${startSftp || "false"}` + `&exec=${medleyExec || "inter"}` + ( isAutoLogin ? "&autologin" : "") - + ( (alStart != "") ? `&start=${alStart}` : "" + + ( (alStart != "") ? `&start=${alStart}` : "" ) ; if(isRunning) { From f02e6ccc7569bc27d6b1133611f94043c5962224 Mon Sep 17 00:00:00 2001 From: Frank Halasz Date: Wed, 29 Oct 2025 19:37:49 +0000 Subject: [PATCH 004/166] Fix up a small bit of code in /server/js/medley.js --- web-portal/server/js/medley.js | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/web-portal/server/js/medley.js b/web-portal/server/js/medley.js index 76a89828..02a4b79a 100644 --- a/web-portal/server/js/medley.js +++ b/web-portal/server/js/medley.js @@ -70,8 +70,12 @@ function medleyEnvs(req) { const nc = (req.query.notecards && (req.query.notecards.toLowerCase() == "true")) ? "true" : "false"; const rooms = (req.query.rooms && (req.query.rooms.toLowerCase() == "true")) ? "true" : "false"; const exec = (req.query.exec && (req.query.exec.toLowerCase() == "common")) ? "common" : "inter"; - try { const start = req.query.start && decodeURI(req.query.start); } - catch(e) { const start = false; } + var start = false; + try { + if ((req.query.start != undefined) && (req.query.start != "")) + start = decodeURIcomponent(req.query.start); + } + catch(e) { start = false; } return ` --env MEDLEY_EMAIL='${u.username}'` + ` --env MEDLEY_UNAME='${u.uname || "medley" }'` + ` --env MEDLEY_FIRSTNAME='${u.firstname || "Medley"}'` From b04276ce88ac63ad4ab7b2ea0a7b8ab6e25acd1b Mon Sep 17 00:00:00 2001 From: Frank Halasz Date: Wed, 29 Oct 2025 23:54:20 +0000 Subject: [PATCH 005/166] Fix up typo in /server/js/medley.js --- web-portal/server/js/medley.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/web-portal/server/js/medley.js b/web-portal/server/js/medley.js index 02a4b79a..160115e9 100644 --- a/web-portal/server/js/medley.js +++ b/web-portal/server/js/medley.js @@ -85,7 +85,7 @@ function medleyEnvs(req) { + ` --env RUN_ROOMS=${rooms}` + ` --env MEDLEY_EXEC=${exec}` + ` --env MEDLEY_MEMORY=${config.medleyMemoryArg}` - + start ? ` --env START_SCRIPT_URL='${start}` : "" + + start ? ` --env START_SCRIPT_URL='${start}'` : "" ; } From 75b4baa13ceb25dcbccdeffc0c3d80b7ae368b3c Mon Sep 17 00:00:00 2001 From: Frank Halasz Date: Thu, 30 Oct 2025 00:32:51 +0000 Subject: [PATCH 006/166] Fix setting of START_SCRIPT in run-online-medley script --- docker_medley/scripts/run-online-medley | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/docker_medley/scripts/run-online-medley b/docker_medley/scripts/run-online-medley index b6eeb2d1..14b0489e 100755 --- a/docker_medley/scripts/run-online-medley +++ b/docker_medley/scripts/run-online-medley @@ -67,7 +67,7 @@ if [ $# -gt 1 ] && [ "$2" = "custom" ]; then fi fi # -START_SCRIPT= +unset START_SCRIPT if [ -n "${START_SCRIPT_URL}" ] then export START_SCRIPT="${MEDLEY_USERDIR}/initdir/START-SCRIPT" @@ -75,9 +75,10 @@ then if [ $? -ne 0 ] then rm -f "${START_SCRIPT}" - START_SCRIPT= + unset START_SCRIPT fi fi +unset START_SCRIPT_URL # if [ $# -gt 2 ]; then width=$3 From a186c79988f87d9e2c3ca86086c954979b524c89 Mon Sep 17 00:00:00 2001 From: Frank Halasz Date: Thu, 30 Oct 2025 06:11:38 +0000 Subject: [PATCH 007/166] fix misformed medleyEnvs function. --- web-portal/server/js/medley.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/web-portal/server/js/medley.js b/web-portal/server/js/medley.js index 160115e9..c2220aa7 100644 --- a/web-portal/server/js/medley.js +++ b/web-portal/server/js/medley.js @@ -85,7 +85,7 @@ function medleyEnvs(req) { + ` --env RUN_ROOMS=${rooms}` + ` --env MEDLEY_EXEC=${exec}` + ` --env MEDLEY_MEMORY=${config.medleyMemoryArg}` - + start ? ` --env START_SCRIPT_URL='${start}'` : "" + + ( start ? ` --env START_SCRIPT_URL='${start}'` : "" ) ; } From 0e4191d40be66d046fe13fffccd7b38cf5c0dd56 Mon Sep 17 00:00:00 2001 From: Frank Halasz Date: Wed, 29 Oct 2025 23:59:38 -0700 Subject: [PATCH 008/166] Updating ONLINE-INIT to latest --- docker_medley/init/ONLINE-INIT | 73 +++++++++++++++++++++++----- docker_medley/init/ONLINE-INIT.LCOM | Bin 4509 -> 5572 bytes 2 files changed, 62 insertions(+), 11 deletions(-) diff --git a/docker_medley/init/ONLINE-INIT b/docker_medley/init/ONLINE-INIT index 3129e7d6..cdcae723 100644 --- a/docker_medley/init/ONLINE-INIT +++ b/docker_medley/init/ONLINE-INIT @@ -1,12 +1,15 @@ (DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "INTERLISP" BASE 10) -(FILECREATED "29-Oct-2025 10:51:28" {DSK}frank>il>medley>greetfiles>ONLINE-INIT.;2 8007 +(FILECREATED "29-Oct-2025 23:56:02" {DSK}frank>il>medley>greetfiles>ONLINE-INIT.;2 11034 :EDIT-BY "FGH" - :CHANGES-TO (FNS Online.DoInit) + :CHANGES-TO (ADVICE (SAVEVM :IN \IDLER)) + (FNS Online.SftpInitInfo Online.SftpUpdateInfo Online.SetUpNOTECARDSDIRECTORIES + Online.DoInit ONLINEP Online.FileButton) + (VARS ONLINE-INITCOMS) - :PREVIOUS-DATE "25-Feb-2024 11:38:10" {DSK}frank>il>medley>greetfiles>ONLINE-INIT.;1) + :PREVIOUS-DATE "18-Mar-2025 22:45:51" {DSK}frank>il>medley>greetfiles>ONLINE-INIT.;1) (PRETTYCOMPRINT ONLINE-INITCOMS) @@ -22,8 +25,8 @@ (INITVARS (Online.LogoutTimeout 30) (ONLINEP NIL)) (ADVISE (SAVEVM :IN \IDLER)) - (FNS Online.SftpInitInfo Online.SftpUpdateInfo Online.SetUpNOTECARDSDIRECTORIES Online.DoInit - ONLINEP) + (FNS Online.SftpInitInfo Online.SftpUpdateInfo Online.SetUpNOTECARDSDIRECTORIES + Online.FileButton Online.DoInit ONLINEP) (DECLARE%: DONTEVAL@LOAD DOCOPY (P (Online.DoInit))) (DECLARE%: FIRST DONTEVAL@LOAD DOCOPY (P (BKSYSBUF " "]) @@ -102,10 +105,58 @@ (PRIN1 "and Notecards will not work properly." T) NIL]) +(Online.FileButton + [LAMBDA NIL (* ; "Edited 18-Mar-2025 22:31 by guest") + (* ; "Edited 17-Mar-2025 16:51 by fgh") + (* ; "Edited 16-Mar-2025 23:40 by guest") + + (* ;; " Add the FILES IMPORT/EXPORT button to the bottom of the button stack on the right side of the screen") + + (LET* ((RIGHTMARGINISH 140) + (Apps.BUTTONS (for B in *ALL-BUTTONS* when (WINDOWPROP B 'Apps.BUTTON) collect B)) + (LowestButton (CAR Apps.BUTTONS)) + P B L) + (if LowestButton + then + (* ;; " Find the lowest existing button on the right side of the screen") + + (for B in Apps.BUTTONS when [ILESSP (fetch BOTTOM of (WINDOWPROP B 'REGION)) + (fetch BOTTOM of (WINDOWPROP LowestButton + 'REGION] + do (SETQ LowestButton B)) + + (* ;; + " Set the y-position for the label based on the lowest button, then create the label") + + (SETQ L (Apps.CreateLabel "FILES" (IDIFFERENCE SCREENWIDTH (IDIFFERENCE + RIGHTMARGINISH + 50)) + (IDIFFERENCE (fetch BOTTOM of (WINDOWPROP LowestButton 'REGION)) + 35))) + (WINDOWPROP L 'RIGHTBUTTONFN 'NILL) + + (* ;; + " Set the position of the files button based on the label, then create the button") + + (SETQ P (create POSITION + XCOORD _ (IDIFFERENCE SCREENWIDTH RIGHTMARGINISH) + YCOORD _ (IDIFFERENCE (fetch BOTTOM of (WINDOWPROP LowestButton + 'REGION)) + 85))) + (SETQ B (CREATE-BUTTON '(ShellBrowse (UNIX-GETENV "OIO_FB_URL")) + "IMPORT/EXPORT" P)) + (WINDOWPROP B 'RIGHTBUTTONFN 'NILL) + [WINDOWPROP B 'BUTTONEVENTFN (FUNCTION (LAMBDA (BUTTON) + (if (LASTMOUSESTATE (ONLY LEFT)) + then (EXECUTE-BUTTON BUTTON] + T]) + (Online.DoInit [LAMBDA NIL - (* ;; "Edited 29-Oct-2025 10:50 by FGH") + (* ;; "Edited 29-Oct-2025 23:55 by FGH") + + (* ;; "Edited 16-Mar-2025 23:26 by guest") (* ;; "Edited 25-Feb-2024 11:37 by fgh") @@ -173,10 +224,9 @@ (RPLACA (CAR CHAT.DISPLAYTYPES) NIL) - (* ;; - "Setup NOTECARDSDIRECTORIES. Should be done it APPS-INIT. But until thats done, we'll do it here.") + (* ;; "Create File Import/Export Button") - (Online.SetUpNOTECARDSDIRECTORIES) + (Online.FileButton) (* ;; "If there is a start-script file, load it ") @@ -197,6 +247,7 @@ (BKSYSBUF " ") ) (DECLARE%: DONTCOPY - (FILEMAP (NIL (1692 7871 (Online.SftpInitInfo 1702 . 2575) (Online.SftpUpdateInfo 2577 . 2832) ( -Online.SetUpNOTECARDSDIRECTORIES 2834 . 4542) (Online.DoInit 4544 . 7732) (ONLINEP 7734 . 7869))))) + (FILEMAP (NIL (1924 10898 (Online.SftpInitInfo 1934 . 2807) (Online.SftpUpdateInfo 2809 . 3064) ( +Online.SetUpNOTECARDSDIRECTORIES 3066 . 4774) (Online.FileButton 4776 . 7604) (Online.DoInit 7606 . +10759) (ONLINEP 10761 . 10896))))) STOP diff --git a/docker_medley/init/ONLINE-INIT.LCOM b/docker_medley/init/ONLINE-INIT.LCOM index 96d18f3427ce2c66a9dc98fd9f6c1950e487582f..a9e38cda3eedee849c1f1ea2a6fa7a80534b2dd1 100644 GIT binary patch delta 1156 zcmZWpK~EDw6y8NaTo77BLpYdcNz4{g*x9yp+jwx>PTSG#OtZT!7$F6;Y3R9=v*n02d|k;>Dl9!J~IQs3(JOyBmRe=-ZvI-+S}DdEe~2sn0jJ9}eotTzW1? zvag>WhVPo*nUym|LbPNGlpHNGH<7;wu~NAbgIu9v@-lT2t^n06Hdujz>X;4Ms6vi$ zSY$5&Dov)*r8i+M-b*(j1TJ>7_=UZFrYshJswgZA&jMD_;%q@tj z6URMkHf=CbcM?U@r4S=VqPnt?&^0{`x}Hm=b7_Ja(|bSV#ew!oMN`u>0=c50s0=j7 z*IifeI7n9{Ns^Z_NZy5S-udtQgSRjGtB9l$1Ly)R)Lohg>57^H%XHi-?oR{Ei7RSc z`LBUsr*;hpfjrb83l>HLe>KQ}wf>^DxfQgEz#N#*o^8&A1rbPhb2PA7x#Ct$yNn0m zRGttzXry0^?EC08 zk4A^Ycu2Xt?l-#Zhl-~k9f^@{=U)c;WN+$d$j6&wj~@HaZs;P*{<3n0TR)m?M!L1S zK}5R5CCqG}Nv-yjT8+p{T}bh3zO5eKJ-B2&nY{mj_1)V&zGdC`xbs_XUi~NPl)gVd z-iWK%ni%hEj_)4plBy?@XfW>7Z930*QOu(o^mY$KvO1Kh8xU}WcFh(zq72TZ9-;v< zr}rYMG!$%#mJ81w2W#|J*HS%MZ6h3QVWYLO)v{I|v^>b9&gP+kh>cyi`4xe9yeh5={lGfFRc}Pyf(hT^Gj?R|O>_Q(d>z zBwZr|BNGKfLn~toD? Date: Fri, 31 Oct 2025 12:49:35 -0700 Subject: [PATCH 009/166] Create a start script for testing museum mode --- test/start-scripts/START_KINETIC | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 test/start-scripts/START_KINETIC diff --git a/test/start-scripts/START_KINETIC b/test/start-scripts/START_KINETIC new file mode 100644 index 00000000..2cfa7354 --- /dev/null +++ b/test/start-scripts/START_KINETIC @@ -0,0 +1,31 @@ +(DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "INTERLISP" BASE 10) + +(FILECREATED "31-Oct-2025 12:36:44" {DSK}frank>il>medley>START_KINETIC.;1 897 + + :EDIT-BY "FGH" + + :CHANGES-TO (VARS START_KINETICCOMS) + (FNS START_KINETIC)) + + +(PRETTYCOMPRINT START_KINETICCOMS) + +(RPAQQ START_KINETICCOMS ((FILES KINETIC) + (FNS START_KINETIC) + (P (START-KINETIC)))) + +(FILESLOAD KINETIC) +(DEFINEQ + +(START_KINETIC + [LAMBDA NIL (* ; "Edited 31-Oct-2025 12:33 by FGH") + (KINETIC (CREATEW (CREATEREGION (FIX (TIMES 0.25 SCREENWIDTH)) + (FIX (TIMES 0.25 SCREENHEIGHT)) + (FIX (TIMES 0.5 SCREENWIDTH)) + (FIX (TIMES 0.5 SCREENHEIGHT]) +) + +(START-KINETIC) +(DECLARE%: DONTCOPY + (FILEMAP (NIL (471 857 (START_KINETIC 481 . 855))))) +STOP From 928b207d3477c18c29b790a58404935764f4b9b5 Mon Sep 17 00:00:00 2001 From: Frank Halasz Date: Fri, 31 Oct 2025 21:12:27 +0000 Subject: [PATCH 010/166] Adding some debugging code --- web-portal/client/js/main.js | 1 + 1 file changed, 1 insertion(+) diff --git a/web-portal/client/js/main.js b/web-portal/client/js/main.js index ff0b0bb1..0c9d0399 100644 --- a/web-portal/client/js/main.js +++ b/web-portal/client/js/main.js @@ -173,6 +173,7 @@ function startSession (interlispOrXterm) { + ( isAutoLogin ? "&autologin" : "") + ( (alStart != "") ? `&start=${alStart}` : "" ) ; + console.log(medley_url); if(isRunning) { new Promise((resolve, reject) => { From 7cd212675c3a26ec4cfa1cc6d5fd42fa004e22cd Mon Sep 17 00:00:00 2001 From: Frank Halasz Date: Fri, 31 Oct 2025 21:55:53 +0000 Subject: [PATCH 011/166] Adding some debugging code --- web-portal/client/js/main.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/web-portal/client/js/main.js b/web-portal/client/js/main.js index 0c9d0399..b7c67a35 100644 --- a/web-portal/client/js/main.js +++ b/web-portal/client/js/main.js @@ -174,7 +174,7 @@ function startSession (interlispOrXterm) { + ( (alStart != "") ? `&start=${alStart}` : "" ) ; console.log(medley_url); - +if(false){ if(isRunning) { new Promise((resolve, reject) => { const dlg = document.getElementById("reconnect-dialog"); @@ -188,6 +188,7 @@ function startSession (interlispOrXterm) { .then(RorK => { window.location.assign(medley_url + `&if=${RorK}`); } ); } else window.location.assign(medley_url); +} }, reason => {} ); From 3d4939177ebc1a69003531ddafb606d16ef24d82 Mon Sep 17 00:00:00 2001 From: Frank Halasz Date: Fri, 31 Oct 2025 22:07:27 +0000 Subject: [PATCH 012/166] Adding some debugging code --- web-portal/client/js/main.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/web-portal/client/js/main.js b/web-portal/client/js/main.js index b7c67a35..ba2eeff6 100644 --- a/web-portal/client/js/main.js +++ b/web-portal/client/js/main.js @@ -171,7 +171,7 @@ function startSession (interlispOrXterm) { + `&sftp=${startSftp || "false"}` + `&exec=${medleyExec || "inter"}` + ( isAutoLogin ? "&autologin" : "") - + ( (alStart != "") ? `&start=${alStart}` : "" ) + + ( (alStart != "") ? `&start=${encodeURIComponent(alStart)}` : "" ) ; console.log(medley_url); if(false){ From 9d36aa23b4705555c10348482953aa6ed8a8581b Mon Sep 17 00:00:00 2001 From: Frank Halasz Date: Fri, 31 Oct 2025 22:26:50 +0000 Subject: [PATCH 013/166] Adding some debugging code --- web-portal/client/js/main.js | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/web-portal/client/js/main.js b/web-portal/client/js/main.js index ba2eeff6..b77f9b2c 100644 --- a/web-portal/client/js/main.js +++ b/web-portal/client/js/main.js @@ -174,7 +174,7 @@ function startSession (interlispOrXterm) { + ( (alStart != "") ? `&start=${encodeURIComponent(alStart)}` : "" ) ; console.log(medley_url); -if(false){ + if(isRunning) { new Promise((resolve, reject) => { const dlg = document.getElementById("reconnect-dialog"); @@ -188,7 +188,6 @@ if(false){ .then(RorK => { window.location.assign(medley_url + `&if=${RorK}`); } ); } else window.location.assign(medley_url); -} }, reason => {} ); From 63c5b61199e16085b63068a00acbf9b15c83e3aa Mon Sep 17 00:00:00 2001 From: Frank Halasz Date: Fri, 31 Oct 2025 22:53:16 +0000 Subject: [PATCH 014/166] Removing some debugging code; fixing typo in medley.js --- web-portal/client/js/main.js | 1 - web-portal/server/js/medley.js | 2 +- 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/web-portal/client/js/main.js b/web-portal/client/js/main.js index b77f9b2c..ed894003 100644 --- a/web-portal/client/js/main.js +++ b/web-portal/client/js/main.js @@ -173,7 +173,6 @@ function startSession (interlispOrXterm) { + ( isAutoLogin ? "&autologin" : "") + ( (alStart != "") ? `&start=${encodeURIComponent(alStart)}` : "" ) ; - console.log(medley_url); if(isRunning) { new Promise((resolve, reject) => { diff --git a/web-portal/server/js/medley.js b/web-portal/server/js/medley.js index c2220aa7..462defb2 100644 --- a/web-portal/server/js/medley.js +++ b/web-portal/server/js/medley.js @@ -73,7 +73,7 @@ function medleyEnvs(req) { var start = false; try { if ((req.query.start != undefined) && (req.query.start != "")) - start = decodeURIcomponent(req.query.start); + start = decodeURIComponent(req.query.start); } catch(e) { start = false; } return ` --env MEDLEY_EMAIL='${u.username}'` From 991999ba75955a417350bbf04f82214fa14e0e5e Mon Sep 17 00:00:00 2001 From: Frank Halasz Date: Fri, 31 Oct 2025 23:12:51 +0000 Subject: [PATCH 015/166] Adding some debugging code --- web-portal/server/js/medley.js | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/web-portal/server/js/medley.js b/web-portal/server/js/medley.js index 462defb2..ab525c66 100644 --- a/web-portal/server/js/medley.js +++ b/web-portal/server/js/medley.js @@ -71,11 +71,13 @@ function medleyEnvs(req) { const rooms = (req.query.rooms && (req.query.rooms.toLowerCase() == "true")) ? "true" : "false"; const exec = (req.query.exec && (req.query.exec.toLowerCase() == "common")) ? "common" : "inter"; var start = false; + var frank = 0; try { - if ((req.query.start != undefined) && (req.query.start != "")) + if ((req.query.start != undefined) && (req.query.start != "")){ start = decodeURIComponent(req.query.start); + frank = 1;} } - catch(e) { start = false; } + catch(e) { start = false; frank = 2;} return ` --env MEDLEY_EMAIL='${u.username}'` + ` --env MEDLEY_UNAME='${u.uname || "medley" }'` + ` --env MEDLEY_FIRSTNAME='${u.firstname || "Medley"}'` @@ -85,6 +87,7 @@ function medleyEnvs(req) { + ` --env RUN_ROOMS=${rooms}` + ` --env MEDLEY_EXEC=${exec}` + ` --env MEDLEY_MEMORY=${config.medleyMemoryArg}` + + ` --env FRANK=${frank}` + ( start ? ` --env START_SCRIPT_URL='${start}'` : "" ) ; } From 911510457819155dc288d55373675af670069ac3 Mon Sep 17 00:00:00 2001 From: Frank Halasz Date: Fri, 31 Oct 2025 23:29:03 +0000 Subject: [PATCH 016/166] Adding some debugging code --- web-portal/server/js/medley.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/web-portal/server/js/medley.js b/web-portal/server/js/medley.js index ab525c66..696628eb 100644 --- a/web-portal/server/js/medley.js +++ b/web-portal/server/js/medley.js @@ -75,7 +75,7 @@ function medleyEnvs(req) { try { if ((req.query.start != undefined) && (req.query.start != "")){ start = decodeURIComponent(req.query.start); - frank = 1;} + frank = req.query.start;} } catch(e) { start = false; frank = 2;} return ` --env MEDLEY_EMAIL='${u.username}'` From cca61e6acba29b29169dab4bfc9c71f6bc2e87d5 Mon Sep 17 00:00:00 2001 From: Frank Halasz Date: Fri, 31 Oct 2025 23:43:23 +0000 Subject: [PATCH 017/166] Adding some debugging code --- web-portal/server/js/medley.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/web-portal/server/js/medley.js b/web-portal/server/js/medley.js index 696628eb..cd192852 100644 --- a/web-portal/server/js/medley.js +++ b/web-portal/server/js/medley.js @@ -74,7 +74,7 @@ function medleyEnvs(req) { var frank = 0; try { if ((req.query.start != undefined) && (req.query.start != "")){ - start = decodeURIComponent(req.query.start); + start = req.query.start; frank = req.query.start;} } catch(e) { start = false; frank = 2;} From 5e398b8b10fa1e535a47992f9aedc364e5f4e395 Mon Sep 17 00:00:00 2001 From: Frank Halasz Date: Sat, 1 Nov 2025 01:02:54 +0000 Subject: [PATCH 018/166] Adding some debugging code --- web-portal/server/js/medley.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/web-portal/server/js/medley.js b/web-portal/server/js/medley.js index cd192852..83c553b9 100644 --- a/web-portal/server/js/medley.js +++ b/web-portal/server/js/medley.js @@ -88,7 +88,7 @@ function medleyEnvs(req) { + ` --env MEDLEY_EXEC=${exec}` + ` --env MEDLEY_MEMORY=${config.medleyMemoryArg}` + ` --env FRANK=${frank}` - + ( start ? ` --env START_SCRIPT_URL='${start}'` : "" ) + + ( start ? ` --env START_SCRIPT_URL="${start}"` : "" ) ; } From 6b78411b80240c05a8f368793fa1902f74094ad3 Mon Sep 17 00:00:00 2001 From: Frank Halasz Date: Sat, 1 Nov 2025 01:59:58 +0000 Subject: [PATCH 019/166] Debugging --- docker_medley/scripts/run-online-medley | 12 ++++++------ web-portal/server/js/medley.js | 4 +--- 2 files changed, 7 insertions(+), 9 deletions(-) diff --git a/docker_medley/scripts/run-online-medley b/docker_medley/scripts/run-online-medley index 14b0489e..2132863f 100755 --- a/docker_medley/scripts/run-online-medley +++ b/docker_medley/scripts/run-online-medley @@ -72,13 +72,13 @@ if [ -n "${START_SCRIPT_URL}" ] then export START_SCRIPT="${MEDLEY_USERDIR}/initdir/START-SCRIPT" wget "${START_SCRIPT_URL}" -O "${START_SCRIPT}" - if [ $? -ne 0 ] - then - rm -f "${START_SCRIPT}" - unset START_SCRIPT - fi +# if [ $? -ne 0 ] +# then +# rm -f "${START_SCRIPT}" +# unset START_SCRIPT +# fi fi -unset START_SCRIPT_URL +#unset START_SCRIPT_URL # if [ $# -gt 2 ]; then width=$3 diff --git a/web-portal/server/js/medley.js b/web-portal/server/js/medley.js index 83c553b9..9d4914a3 100644 --- a/web-portal/server/js/medley.js +++ b/web-portal/server/js/medley.js @@ -73,9 +73,8 @@ function medleyEnvs(req) { var start = false; var frank = 0; try { - if ((req.query.start != undefined) && (req.query.start != "")){ + if ((req.query.start != undefined) && (req.query.start != "")) start = req.query.start; - frank = req.query.start;} } catch(e) { start = false; frank = 2;} return ` --env MEDLEY_EMAIL='${u.username}'` @@ -87,7 +86,6 @@ function medleyEnvs(req) { + ` --env RUN_ROOMS=${rooms}` + ` --env MEDLEY_EXEC=${exec}` + ` --env MEDLEY_MEMORY=${config.medleyMemoryArg}` - + ` --env FRANK=${frank}` + ( start ? ` --env START_SCRIPT_URL="${start}"` : "" ) ; } From 6c5faf3d7feb58f5fed2333a3a16a670a2d9124c Mon Sep 17 00:00:00 2001 From: Frank Halasz Date: Sat, 1 Nov 2025 02:24:24 +0000 Subject: [PATCH 020/166] Debugging --- docker_medley/scripts/run-online-medley | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/docker_medley/scripts/run-online-medley b/docker_medley/scripts/run-online-medley index 2132863f..b6850f7d 100755 --- a/docker_medley/scripts/run-online-medley +++ b/docker_medley/scripts/run-online-medley @@ -71,14 +71,15 @@ unset START_SCRIPT if [ -n "${START_SCRIPT_URL}" ] then export START_SCRIPT="${MEDLEY_USERDIR}/initdir/START-SCRIPT" + mkdir -p "$(dirname "${START_SCRIPT}")" wget "${START_SCRIPT_URL}" -O "${START_SCRIPT}" -# if [ $? -ne 0 ] -# then -# rm -f "${START_SCRIPT}" -# unset START_SCRIPT -# fi + if [ $? -ne 0 ] + then + rm -f "${START_SCRIPT}" + unset START_SCRIPT + fi fi -#unset START_SCRIPT_URL +unset START_SCRIPT_URL # if [ $# -gt 2 ]; then width=$3 From ae08c158cf581b2db89585c4f875a981ef8b381c Mon Sep 17 00:00:00 2001 From: Frank Halasz Date: Fri, 31 Oct 2025 23:14:32 -0700 Subject: [PATCH 021/166] Rename START_KINETIC to START-KINETIC Signed-off-by: Frank Halasz --- test/start-scripts/START_KINETIC | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/test/start-scripts/START_KINETIC b/test/start-scripts/START_KINETIC index 2cfa7354..5f4016f7 100644 --- a/test/start-scripts/START_KINETIC +++ b/test/start-scripts/START_KINETIC @@ -17,7 +17,7 @@ (FILESLOAD KINETIC) (DEFINEQ -(START_KINETIC +(START-KINETIC [LAMBDA NIL (* ; "Edited 31-Oct-2025 12:33 by FGH") (KINETIC (CREATEW (CREATEREGION (FIX (TIMES 0.25 SCREENWIDTH)) (FIX (TIMES 0.25 SCREENHEIGHT)) @@ -27,5 +27,5 @@ (START-KINETIC) (DECLARE%: DONTCOPY - (FILEMAP (NIL (471 857 (START_KINETIC 481 . 855))))) + (FILEMAP (NIL (471 857 (START-KINETIC 481 . 855))))) STOP From 040eb4d6b331bc42f98f563c50b24d6352bfea7e Mon Sep 17 00:00:00 2001 From: Frank Halasz Date: Sat, 1 Nov 2025 13:24:46 -0700 Subject: [PATCH 022/166] Renaming START_KINETIC to START-KINETIC and adding ADD.PROCESS to it. --- test/start-scripts/START-KINETIC | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 test/start-scripts/START-KINETIC diff --git a/test/start-scripts/START-KINETIC b/test/start-scripts/START-KINETIC new file mode 100644 index 00000000..4504c574 --- /dev/null +++ b/test/start-scripts/START-KINETIC @@ -0,0 +1,31 @@ +(DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "INTERLISP" BASE 10) + +(FILECREATED " 1-Nov-2025 13:21:22" {DSK}frank>il>medley>START-KINETIC.;1 1031 + + :EDIT-BY "FGH" + + :CHANGES-TO (FNS START-KINETIC)) + + +(PRETTYCOMPRINT START-KINETICCOMS) + +(RPAQQ START-KINETICCOMS ((FILES KINETIC) + (FNS START-KINETIC) + (P (START-KINETIC)))) + +(FILESLOAD KINETIC) +(DEFINEQ + +(START-KINETIC + [LAMBDA NIL (* ; "Edited 1-Nov-2025 13:18 by FGH") + (LAMBDA NIL (* ; "Edited 1-Nov-2025 13:15 by FGH") + (ADD.PROCESS '(KINETIC (CREATEW (CREATEREGION (FIX (TIMES 0.25 SCREENWIDTH)) + (FIX (TIMES 0.25 SCREENHEIGHT)) + (FIX (TIMES 0.5 SCREENWIDTH)) + (FIX (TIMES 0.5 SCREENHEIGHT]) +) + +(START-KINETIC) +(DECLARE%: DONTCOPY + (FILEMAP (NIL (428 987 (START-KINETIC 438 . 985))))) +STOP From 7839dac6c0c1b08296be500e4dd8d1f3d1f4f4b5 Mon Sep 17 00:00:00 2001 From: Frank Halasz Date: Sat, 1 Nov 2025 13:27:46 -0700 Subject: [PATCH 023/166] Fixing up delete of START_KINETIC from last commit --- test/start-scripts/START_KINETIC | 31 ------------------------------- 1 file changed, 31 deletions(-) delete mode 100644 test/start-scripts/START_KINETIC diff --git a/test/start-scripts/START_KINETIC b/test/start-scripts/START_KINETIC deleted file mode 100644 index 5f4016f7..00000000 --- a/test/start-scripts/START_KINETIC +++ /dev/null @@ -1,31 +0,0 @@ -(DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "INTERLISP" BASE 10) - -(FILECREATED "31-Oct-2025 12:36:44" {DSK}frank>il>medley>START_KINETIC.;1 897 - - :EDIT-BY "FGH" - - :CHANGES-TO (VARS START_KINETICCOMS) - (FNS START_KINETIC)) - - -(PRETTYCOMPRINT START_KINETICCOMS) - -(RPAQQ START_KINETICCOMS ((FILES KINETIC) - (FNS START_KINETIC) - (P (START-KINETIC)))) - -(FILESLOAD KINETIC) -(DEFINEQ - -(START-KINETIC - [LAMBDA NIL (* ; "Edited 31-Oct-2025 12:33 by FGH") - (KINETIC (CREATEW (CREATEREGION (FIX (TIMES 0.25 SCREENWIDTH)) - (FIX (TIMES 0.25 SCREENHEIGHT)) - (FIX (TIMES 0.5 SCREENWIDTH)) - (FIX (TIMES 0.5 SCREENHEIGHT]) -) - -(START-KINETIC) -(DECLARE%: DONTCOPY - (FILEMAP (NIL (471 857 (START-KINETIC 481 . 855))))) -STOP From 43bee9e473ae31a0d75193a5f857643ae6ac77bc Mon Sep 17 00:00:00 2001 From: Frank Halasz Date: Sat, 1 Nov 2025 13:42:20 -0700 Subject: [PATCH 024/166] Fixing START-KINETIC --- test/start-scripts/START-KINETIC | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/test/start-scripts/START-KINETIC b/test/start-scripts/START-KINETIC index 4504c574..299ebbab 100644 --- a/test/start-scripts/START-KINETIC +++ b/test/start-scripts/START-KINETIC @@ -1,10 +1,12 @@ (DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "INTERLISP" BASE 10) -(FILECREATED " 1-Nov-2025 13:21:22" {DSK}frank>il>medley>START-KINETIC.;1 1031 +(FILECREATED " 1-Nov-2025 13:41:38" {DSK}frank>il>medley>START-KINETIC.;2 1112 :EDIT-BY "FGH" - :CHANGES-TO (FNS START-KINETIC)) + :CHANGES-TO (FNS START-KINETIC) + + :PREVIOUS-DATE " 1-Nov-2025 13:21:22" {DSK}frank>il>medley>START-KINETIC.;1) (PRETTYCOMPRINT START-KINETICCOMS) @@ -17,15 +19,15 @@ (DEFINEQ (START-KINETIC - [LAMBDA NIL (* ; "Edited 1-Nov-2025 13:18 by FGH") - (LAMBDA NIL (* ; "Edited 1-Nov-2025 13:15 by FGH") - (ADD.PROCESS '(KINETIC (CREATEW (CREATEREGION (FIX (TIMES 0.25 SCREENWIDTH)) - (FIX (TIMES 0.25 SCREENHEIGHT)) - (FIX (TIMES 0.5 SCREENWIDTH)) - (FIX (TIMES 0.5 SCREENHEIGHT]) + [LAMBDA NIL (* ; "Edited 1-Nov-2025 13:41 by FGH") + (* ; "Edited 1-Nov-2025 13:15 by FGH") + (ADD.PROCESS '(KINETIC (CREATEW (CREATEREGION (FIX (TIMES 0.25 SCREENWIDTH)) + (FIX (TIMES 0.25 SCREENHEIGHT)) + (FIX (TIMES 0.5 SCREENWIDTH)) + (FIX (TIMES 0.5 SCREENHEIGHT]) ) (START-KINETIC) (DECLARE%: DONTCOPY - (FILEMAP (NIL (428 987 (START-KINETIC 438 . 985))))) + (FILEMAP (NIL (517 1068 (START-KINETIC 527 . 1066))))) STOP From 8d0b6e66b5b5bb4468c8e7765a00ef5f501f2dbb Mon Sep 17 00:00:00 2001 From: Frank Halasz Date: Wed, 5 Nov 2025 23:33:26 -0800 Subject: [PATCH 025/166] Add second mudeum-mode sample start script focused on pamoroso's INSPHEX app --- test/start-scripts/START-INSPHEX | 55 +++++++++++++++++++++++++ test/start-scripts/START-INSPHEX.DFASL | Bin 0 -> 1676 bytes 2 files changed, 55 insertions(+) create mode 100644 test/start-scripts/START-INSPHEX create mode 100644 test/start-scripts/START-INSPHEX.DFASL diff --git a/test/start-scripts/START-INSPHEX b/test/start-scripts/START-INSPHEX new file mode 100644 index 00000000..2fe3d269 --- /dev/null +++ b/test/start-scripts/START-INSPHEX @@ -0,0 +1,55 @@ +(DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "INTERLISP" BASE 10) + +(FILECREATED " 5-Nov-2025 23:12:38" {DSK}frank>il>medley>library>START-INSPHEX.;5 2142 + + :EDIT-BY "FGH" + + :CHANGES-TO (FNS START-INSPHEX) + (VARS START-INSPHEXCOMS) + (FUNCTIONS TmpShellWget) + + :PREVIOUS-DATE " 5-Nov-2025 19:57:59" {DSK}frank>il>medley>library>START-INSPHEX.;1) + + +(PRETTYCOMPRINT START-INSPHEXCOMS) + +(RPAQQ START-INSPHEXCOMS ((FUNCTIONS TmpShellWget) + (FNS START-INSPHEX) + (P (START-INSPHEX)))) + +(CL:DEFUN TmpShellWget (URL OUTFILENAME) + (LET* ((WGET (ShellWhich "wget")) + (OUTNAME (OUTFILEP OUTFILENAME)) + (UNIXNAME (LET [(UN (UNIX-FILE-NAME OUTNAME 'OUTPUT] + (if (STREQUAL (SUBSTRING UN (NCHARS UN)) + ".") + then (SUBSTRING UN 1 -2) + else UN))) + (CMD (CONCAT WGET " " URL " -O " UNIXNAME))) + (if (NULL WGET) + then (ERROR "ShellWget - wget not available")) + (ShellCommand CMD) + OUTNAME)) +(DEFINEQ + +(START-INSPHEX + [LAMBDA NIL (* ; "Edited 5-Nov-2025 23:09 by FGH") + (LET ((INSPHEX.FILE (CONCAT LOGINDIR ">INSPHEX")) + INSPHEX.DFASL) + (TmpShellWget "https://raw.githubusercontent.com/pamoroso/insphex/refs/heads/main/INSPHEX" + INSPHEX.FILE) + (SETQ INSPHEX.DFASL (CL:COMPILE-FILE INSPHEX.FILE)) + (LOAD INSPHEX.DFASL) + [ADVISE '(TEDIT IN INSPHEX::CREATE-HEX-WINDOW) + 'BEFORE + '(SETQ WINDOW (CREATEW (CREATEREGION (FIX (TIMES 0.25 SCREENWIDTH)) + (FIX (TIMES 0.25 SCREENHEIGHT)) + (FIX (TIMES 0.5 SCREENWIDTH)) + (FIX (TIMES 0.5 SCREENHEIGHT] + (ADD.PROCESS '(INSPHEX:HEXDUMP INSPHEX.DFASL T]) +) + +(START-INSPHEX) +(DECLARE%: DONTCOPY + (FILEMAP (NIL (608 1201 (TmpShellWget 608 . 1201)) (1202 2098 (START-INSPHEX 1212 . 2096))))) +STOP diff --git a/test/start-scripts/START-INSPHEX.DFASL b/test/start-scripts/START-INSPHEX.DFASL new file mode 100644 index 0000000000000000000000000000000000000000..efe40f7abe4d1a88e858a2404b729e91efc08165 GIT binary patch literal 1676 zcmbVMTW{k;6n30z({@P(luF#pLC+BmK`%U#@y_Ef2EOOi4+DGjpgwf#p3`@ole#-R2<+gbjxEu&%8G`K zHrlUzzFEZA;(LK(hfZG*Hp`lST&~@zZ3?xG?Yp(@jjdu+#AL}ri&R=!Nip>TJ(M^;MV>{snu>}f6Nwg* zRbApa@>5h=hoUuEG-asU=vwO}D%}-Ae_VE*W5=Z^cs!&aKSzaTSCcG7*T`Awlz$r% zmSogaG*qT}A-t)VAY(>1kj5`UKu+&kkTM72f~=T`1@mj|9j@T=qulJU%Kh7g9slI4x@z;WHZ zBPUGk>86HbaHqa00}6;&7vWESE_t4RC* zw!<_`W`0bHI}f~n8HlHyzuQdzHT!p#voz|T_McZt&v#ggbEU+^YZ;E?8K$(mDBU$x z5-q~}Q{Xgl7ZndEBn%H2G|wLOzXL@UnWk=PAmt=olSFF^#0A`KV9QjrRs~K45YfG^ zsD2oK@-B7Mq_$|{H4txgHDx~`AH8Ckde5#j=&KbI_y@z@AoVH@P579-Poj4&Uq&bk z58;7?ksk{7u|0I{1J`MhC?k}0K_pR1_!xc_AYO+00k*5;dAe<0fi@qtHiPiIoj{#n z!@L;kOuEKTW}gk_@_c2;bPvE>0#tJq1u#tsQ&9DmqQM-+t9&XUaQc)^%;oqz$u+=l zQIzEh@L56_e@eR+<@*Xo?}M08by0o`W^@UNZP1~m*^6`4AOnn=ushcSKC8hK) zQ6AQq+}$)0=h3x`mWAH`Vo+4XqNELU$Dc+e|mlA6mDXq43&HNRRGFERY^pEB@AX%{> zIj?BY&Pq~E8M-PbHOJB`B Date: Fri, 7 Nov 2025 10:28:53 -0800 Subject: [PATCH 026/166] Updated START-INSPHEX start-script - this time it actually works --- test/start-scripts/START-INSPHEX | 23 ++++++++++++++--------- test/start-scripts/START-INSPHEX.DFASL | Bin 1676 -> 1907 bytes 2 files changed, 14 insertions(+), 9 deletions(-) diff --git a/test/start-scripts/START-INSPHEX b/test/start-scripts/START-INSPHEX index 2fe3d269..29a3d0f3 100644 --- a/test/start-scripts/START-INSPHEX +++ b/test/start-scripts/START-INSPHEX @@ -1,22 +1,25 @@ (DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "INTERLISP" BASE 10) -(FILECREATED " 5-Nov-2025 23:12:38" {DSK}frank>il>medley>library>START-INSPHEX.;5 2142 +(FILECREATED " 7-Nov-2025 10:09:00" {DSK}frank>il>online>test>start-scripts>START-INSPHEX.;8 2341 :EDIT-BY "FGH" - :CHANGES-TO (FNS START-INSPHEX) - (VARS START-INSPHEXCOMS) - (FUNCTIONS TmpShellWget) + :CHANGES-TO (VARS START-INSPHEXCOMS) + (FNS START-INSPHEX) - :PREVIOUS-DATE " 5-Nov-2025 19:57:59" {DSK}frank>il>medley>library>START-INSPHEX.;1) + :PREVIOUS-DATE " 6-Nov-2025 20:45:51" +{DSK}frank>il>online>test>start-scripts>START-INSPHEX.;2) (PRETTYCOMPRINT START-INSPHEXCOMS) -(RPAQQ START-INSPHEXCOMS ((FUNCTIONS TmpShellWget) +(RPAQQ START-INSPHEXCOMS ((P (DEFPACKAGE "INSPHEX" (:USE "LISP" "XCL"))) + (FUNCTIONS TmpShellWget) (FNS START-INSPHEX) (P (START-INSPHEX)))) +(DEFPACKAGE "INSPHEX" (:USE "LISP" "XCL")) + (CL:DEFUN TmpShellWget (URL OUTFILENAME) (LET* ((WGET (ShellWhich "wget")) (OUTNAME (OUTFILEP OUTFILENAME)) @@ -33,7 +36,7 @@ (DEFINEQ (START-INSPHEX - [LAMBDA NIL (* ; "Edited 5-Nov-2025 23:09 by FGH") + [LAMBDA NIL (* ; "Edited 7-Nov-2025 10:07 by FGH") (LET ((INSPHEX.FILE (CONCAT LOGINDIR ">INSPHEX")) INSPHEX.DFASL) (TmpShellWget "https://raw.githubusercontent.com/pamoroso/insphex/refs/heads/main/INSPHEX" @@ -46,10 +49,12 @@ (FIX (TIMES 0.25 SCREENHEIGHT)) (FIX (TIMES 0.5 SCREENWIDTH)) (FIX (TIMES 0.5 SCREENHEIGHT] - (ADD.PROCESS '(INSPHEX:HEXDUMP INSPHEX.DFASL T]) + (ADD.PROCESS (LIST (CL:INTERN "HEXDUMP" (CL:FIND-PACKAGE "INSPHEX")) + (KWOTE INSPHEX.DFASL) + T]) ) (START-INSPHEX) (DECLARE%: DONTCOPY - (FILEMAP (NIL (608 1201 (TmpShellWget 608 . 1201)) (1202 2098 (START-INSPHEX 1212 . 2096))))) + (FILEMAP (NIL (705 1298 (TmpShellWget 705 . 1298)) (1299 2297 (START-INSPHEX 1309 . 2295))))) STOP diff --git a/test/start-scripts/START-INSPHEX.DFASL b/test/start-scripts/START-INSPHEX.DFASL index efe40f7abe4d1a88e858a2404b729e91efc08165..3460bd83b72b429b7acbb872c58f3d330d926fd2 100644 GIT binary patch delta 715 zcmeC-{meJPx;{TICo?bAt|Ya%#ICp`v8Y71IJqdZprqI?IK(k1MAy?VIKaa-LeJWQ zD>%QjC^=OjEi)%oA-O0uu_QG`LBU+tFTYIJ$iT={!O+0Uz|zXVfXmG>*auaaTTy08 zVx^9PxdKpiYHm_$kpf7IjsgcnlcC|pU5t#3I+OP>$_wt#X8;0D5Fx-Yqeswq@hNYRWQ<_KpWu^E$DK z$U=m~4oA+(&zRyEH72_uyBTyRD)+Gkd&HS#$xRz$;8OOFq0YR`37JBaeDfNxCVj3r;(!=7%JS3 zE-rcjLH^FJ!NEQ=`g_>G@_z0>CXbt^pNlRuA|~HvQ8(0JpJ~aI43uIG4D}Cj)dlKj zb8>a_4{~L5LWHX=kO@poE}^~wlMPu@*`h$<9zA&utE3!+*Fgdd_iOrbIJoyxpwmy)-G-GNHV*pTcrWiMnoH2!IMvn+KH%{#_ zo~+0$qD;Wg40C2mOipIbXOx(HnK^|~d$I*f8>`riY0Msz53@KHYZm%{~%XZTcBHKOzL3=hNw%ZZ@`R+ zGkVyeAw1KfaWWrUs;w7L$xQDSy9NdZphlix=O9;CKMz+=caIRD|7Jp^?Lnd7gD&7d Yc>|jU(@f{dPuSWy#DGd>CI9~q09z208UO$Q From 43d785e27e33081207c561675701b520d53639cc Mon Sep 17 00:00:00 2001 From: Frank Halasz Date: Fri, 7 Nov 2025 10:44:23 -0800 Subject: [PATCH 027/166] Scooching INSPHEX window over a bit in START-INSPHEX start script --- test/start-scripts/START-INSPHEX | 12 ++++++------ test/start-scripts/START-INSPHEX.DFASL | Bin 1907 -> 1909 bytes 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/test/start-scripts/START-INSPHEX b/test/start-scripts/START-INSPHEX index 29a3d0f3..e66faa59 100644 --- a/test/start-scripts/START-INSPHEX +++ b/test/start-scripts/START-INSPHEX @@ -1,11 +1,11 @@ (DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "INTERLISP" BASE 10) -(FILECREATED " 7-Nov-2025 10:09:00" {DSK}frank>il>online>test>start-scripts>START-INSPHEX.;8 2341 +(FILECREATED " 7-Nov-2025 10:43:14" {DSK}frank>il>online>test>start-scripts>START-INSPHEX.;10 2342 :EDIT-BY "FGH" - :CHANGES-TO (VARS START-INSPHEXCOMS) - (FNS START-INSPHEX) + :CHANGES-TO (FNS START-INSPHEX) + (VARS START-INSPHEXCOMS) :PREVIOUS-DATE " 6-Nov-2025 20:45:51" {DSK}frank>il>online>test>start-scripts>START-INSPHEX.;2) @@ -36,7 +36,7 @@ (DEFINEQ (START-INSPHEX - [LAMBDA NIL (* ; "Edited 7-Nov-2025 10:07 by FGH") + [LAMBDA NIL (* ; "Edited 7-Nov-2025 10:43 by FGH") (LET ((INSPHEX.FILE (CONCAT LOGINDIR ">INSPHEX")) INSPHEX.DFASL) (TmpShellWget "https://raw.githubusercontent.com/pamoroso/insphex/refs/heads/main/INSPHEX" @@ -45,7 +45,7 @@ (LOAD INSPHEX.DFASL) [ADVISE '(TEDIT IN INSPHEX::CREATE-HEX-WINDOW) 'BEFORE - '(SETQ WINDOW (CREATEW (CREATEREGION (FIX (TIMES 0.25 SCREENWIDTH)) + '(SETQ WINDOW (CREATEW (CREATEREGION (FIX (TIMES 0.35 SCREENWIDTH)) (FIX (TIMES 0.25 SCREENHEIGHT)) (FIX (TIMES 0.5 SCREENWIDTH)) (FIX (TIMES 0.5 SCREENHEIGHT] @@ -56,5 +56,5 @@ (START-INSPHEX) (DECLARE%: DONTCOPY - (FILEMAP (NIL (705 1298 (TmpShellWget 705 . 1298)) (1299 2297 (START-INSPHEX 1309 . 2295))))) + (FILEMAP (NIL (706 1299 (TmpShellWget 706 . 1299)) (1300 2298 (START-INSPHEX 1310 . 2296))))) STOP diff --git a/test/start-scripts/START-INSPHEX.DFASL b/test/start-scripts/START-INSPHEX.DFASL index 3460bd83b72b429b7acbb872c58f3d330d926fd2..f5c0927be8cad956084bd8ea0568f1c29a0789c3 100644 GIT binary patch delta 61 zcmey&_myu#3X`G1#8eel6JskwlZk!$Acm3A#zWyu9AKfTJ@%6onQeipHpesnV`AQH LY`i&vO_&h?LckHo delta 58 zcmey$_nB`(3ZuouG!<3@ODh9|iT(N@hN0oc!{JOEV48 JoWv%~2mlsn5ZnL& From d9d797b0e77532d5bb4528fdf3d545ae66c84f4b Mon Sep 17 00:00:00 2001 From: Frank Halasz Date: Fri, 7 Nov 2025 11:09:31 -0800 Subject: [PATCH 028/166] Move start-scripts to top level of online repo. Add URLs used with these start scripts --- {test/start-scripts => start-scripts}/START-INSPHEX | 0 .../START-INSPHEX.DFASL | Bin start-scripts/START-INSPHEX.URL | 1 + {test/start-scripts => start-scripts}/START-KINETIC | 0 start-scripts/START-KINETIC.URL | 1 + 5 files changed, 2 insertions(+) rename {test/start-scripts => start-scripts}/START-INSPHEX (100%) rename {test/start-scripts => start-scripts}/START-INSPHEX.DFASL (100%) create mode 100644 start-scripts/START-INSPHEX.URL rename {test/start-scripts => start-scripts}/START-KINETIC (100%) create mode 100644 start-scripts/START-KINETIC.URL diff --git a/test/start-scripts/START-INSPHEX b/start-scripts/START-INSPHEX similarity index 100% rename from test/start-scripts/START-INSPHEX rename to start-scripts/START-INSPHEX diff --git a/test/start-scripts/START-INSPHEX.DFASL b/start-scripts/START-INSPHEX.DFASL similarity index 100% rename from test/start-scripts/START-INSPHEX.DFASL rename to start-scripts/START-INSPHEX.DFASL diff --git a/start-scripts/START-INSPHEX.URL b/start-scripts/START-INSPHEX.URL new file mode 100644 index 00000000..28c73d7c --- /dev/null +++ b/start-scripts/START-INSPHEX.URL @@ -0,0 +1 @@ +https://online.interlisp.org:8081/guest?start=https%3A%2F%2Fgithub.com%2FInterlisp%2Fonline%2Fraw%2Frefs%2Fheads%2Ffgh_museum-mode%2Ftest%2Fstart-scripts%2FSTART-INSPHEX.DFASL diff --git a/test/start-scripts/START-KINETIC b/start-scripts/START-KINETIC similarity index 100% rename from test/start-scripts/START-KINETIC rename to start-scripts/START-KINETIC diff --git a/start-scripts/START-KINETIC.URL b/start-scripts/START-KINETIC.URL new file mode 100644 index 00000000..b0be74cc --- /dev/null +++ b/start-scripts/START-KINETIC.URL @@ -0,0 +1 @@ +https://online.interlisp.org:8081/guest?start=https%3A%2F%2Fraw.githubusercontent.com%2FInterlisp%2Fonline%2Frefs%2Fheads%2Ffgh_museum-mode%2Ftest%2Fstart-scripts%2FSTART-KINETIC From 48fb93bd542d731e5cd0181d4919d6e877f776b2 Mon Sep 17 00:00:00 2001 From: Frank Halasz Date: Fri, 7 Nov 2025 11:17:28 -0800 Subject: [PATCH 029/166] Fix start-script URLs --- start-scripts/START-INSPHEX.URL | 3 ++- start-scripts/START-KINETIC.URL | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/start-scripts/START-INSPHEX.URL b/start-scripts/START-INSPHEX.URL index 28c73d7c..638101cb 100644 --- a/start-scripts/START-INSPHEX.URL +++ b/start-scripts/START-INSPHEX.URL @@ -1 +1,2 @@ -https://online.interlisp.org:8081/guest?start=https%3A%2F%2Fgithub.com%2FInterlisp%2Fonline%2Fraw%2Frefs%2Fheads%2Ffgh_museum-mode%2Ftest%2Fstart-scripts%2FSTART-INSPHEX.DFASL +https://online.interlisp.org:8081/guest?start=https%3A%2F%2Fgithub.com%2FInterlisp%2Fonline%2Fraw%2Frefs%2Fheads%2Ffgh_museum-mode%2Fstart-scripts%2FSTART-INSPHEX.DFASL + diff --git a/start-scripts/START-KINETIC.URL b/start-scripts/START-KINETIC.URL index b0be74cc..9bb0938a 100644 --- a/start-scripts/START-KINETIC.URL +++ b/start-scripts/START-KINETIC.URL @@ -1 +1 @@ -https://online.interlisp.org:8081/guest?start=https%3A%2F%2Fraw.githubusercontent.com%2FInterlisp%2Fonline%2Frefs%2Fheads%2Ffgh_museum-mode%2Ftest%2Fstart-scripts%2FSTART-KINETIC +https://online.interlisp.org:8081/guest?start=https%3A%2F%2Fraw.githubusercontent.com%2FInterlisp%2Fonline%2Frefs%2Fheads%2Ffgh_museum-mode%2Fstart-scripts%2FSTART-KINETIC From 67ee9ae35c3e886e6e206e678baed833b639d2ac Mon Sep 17 00:00:00 2001 From: Frank Halasz Date: Fri, 7 Nov 2025 11:21:31 -0800 Subject: [PATCH 030/166] Update URL to use 'github.com' instead of 'raw.githubusercontent.com' Signed-off-by: Frank Halasz --- start-scripts/START-KINETIC.URL | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/start-scripts/START-KINETIC.URL b/start-scripts/START-KINETIC.URL index 9bb0938a..74d5447b 100644 --- a/start-scripts/START-KINETIC.URL +++ b/start-scripts/START-KINETIC.URL @@ -1 +1 @@ -https://online.interlisp.org:8081/guest?start=https%3A%2F%2Fraw.githubusercontent.com%2FInterlisp%2Fonline%2Frefs%2Fheads%2Ffgh_museum-mode%2Fstart-scripts%2FSTART-KINETIC +https://online.interlisp.org:8081/guest?start=https%3A%2F%2Fgithub.com%2FInterlisp%2Fonline%2Fraw%2Frefs%2Fheads%2Ffgh_museum-mode%2Fstart-scripts%2FSTART-KINETIC From 958349ca5632a7af9bf8bb4a08d0b786ee8fa73a Mon Sep 17 00:00:00 2001 From: Frank Halasz Date: Fri, 7 Nov 2025 19:35:04 -0800 Subject: [PATCH 031/166] Add new routes for autologin, /demo/guest is equivalent to the current /guest. And /demo/login requires a login and then skips the run medley page. --- web-portal/server/js/app.js | 23 ++++++++++++++--------- web-portal/server/js/user.js | 6 +++--- 2 files changed, 17 insertions(+), 12 deletions(-) diff --git a/web-portal/server/js/app.js b/web-portal/server/js/app.js index 70006ebf..7c1606dc 100644 --- a/web-portal/server/js/app.js +++ b/web-portal/server/js/app.js @@ -116,20 +116,25 @@ app.get('/main', ); } ); -app.get('/guest', +app.get([ '/guest', '/demo/guest' ], (req, res) => { const cookieUrl = encodeURI(`${req.protocol}://${req.get('host')}${req.originalUrl}`); res.cookie('autologinURL', cookieUrl); - const newQuery = {}; - newQuery.autologin = ""; - newQuery.username = config.guestUsername; - newQuery.password = config.guestPassword; - if(req.query.notecards != undefined) newQuery.notecards=""; - if(req.query.rooms != undefined) newQuery.rooms=""; - if((req.query.start != undefined) && (req.query.start != "")) newQuery.start = req.query.start; - res.redirect(url.format({pathname:"/user/autologin", query: newQuery})); + req.query.username = config.guestUsername; + req.query.password = config.guestPassword; + res.redirect("/user/autologin"); + } + ); +app.get([ '/demo/login' ], + (req, res) => { + + const cookieUrl = encodeURI(`${req.protocol}://${req.get('host')}${req.originalUrl}`); + res.cookie('autologinURL', cookieUrl); + + req.query.autologin = "true"; + res.redirect("/main"); } ); app.use('/user', userRouter); diff --git a/web-portal/server/js/user.js b/web-portal/server/js/user.js index 7e3f8ee6..888bd569 100644 --- a/web-portal/server/js/user.js +++ b/web-portal/server/js/user.js @@ -123,9 +123,9 @@ function passportAuthenticate(req, res, next) { if(user.uname) if ((user.uname == "guest") && (req.query.autologin != undefined)) { const newQuery={}; - newQuery.autologin=""; - if(req.query.notecards != undefined) newQuery.notecards=""; - if(req.query.rooms != undefined) newQuery.rooms=""; + newQuery.autologin="true"; + if(req.query.notecards != undefined) newQuery.notecards="true"; + if(req.query.rooms != undefined) newQuery.rooms="true"; if((req.query.start != undefined) && (req.query.start != "")) newQuery.start=req.query.start; return res.redirect(url.format({pathname:"/main", query: newQuery})); From 3906ca482f74ee3ef5871b53d68b47a69d51a076 Mon Sep 17 00:00:00 2001 From: Frank Halasz Date: Sat, 8 Nov 2025 06:09:53 +0000 Subject: [PATCH 032/166] Fixing res.redirect statements to include query --- web-portal/server/js/app.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/web-portal/server/js/app.js b/web-portal/server/js/app.js index 7c1606dc..67d93de0 100644 --- a/web-portal/server/js/app.js +++ b/web-portal/server/js/app.js @@ -121,10 +121,10 @@ app.get([ '/guest', '/demo/guest' ], const cookieUrl = encodeURI(`${req.protocol}://${req.get('host')}${req.originalUrl}`); res.cookie('autologinURL', cookieUrl); - + req.query.autologin = "true"; req.query.username = config.guestUsername; req.query.password = config.guestPassword; - res.redirect("/user/autologin"); + res.redirect(url.format({pathname:"/user/autologin", query: req.query})); } ); app.get([ '/demo/login' ], @@ -134,7 +134,7 @@ app.get([ '/demo/login' ], res.cookie('autologinURL', cookieUrl); req.query.autologin = "true"; - res.redirect("/main"); + res.redirect(url.format({pathname:"/main", query: req.query})); } ); app.use('/user', userRouter); From 2299b538f0ce62cd36f34f8ed7bd651be570a25a Mon Sep 17 00:00:00 2001 From: Frank Halasz Date: Sat, 8 Nov 2025 07:00:36 +0000 Subject: [PATCH 033/166] Debugging /demo/login route --- web-portal/server/js/app.js | 4 ++-- web-portal/server/js/user.js | 11 ++--------- 2 files changed, 4 insertions(+), 11 deletions(-) diff --git a/web-portal/server/js/app.js b/web-portal/server/js/app.js index 67d93de0..32083653 100644 --- a/web-portal/server/js/app.js +++ b/web-portal/server/js/app.js @@ -132,10 +132,10 @@ app.get([ '/demo/login' ], const cookieUrl = encodeURI(`${req.protocol}://${req.get('host')}${req.originalUrl}`); res.cookie('autologinURL', cookieUrl); - + if(req.query == undefined) req.query = {}; req.query.autologin = "true"; res.redirect(url.format({pathname:"/main", query: req.query})); - } + }. ); app.use('/user', userRouter); app.use('/medley', ensureLoggedIn(), medleyRouter); diff --git a/web-portal/server/js/user.js b/web-portal/server/js/user.js index 888bd569..42ca4f2a 100644 --- a/web-portal/server/js/user.js +++ b/web-portal/server/js/user.js @@ -121,15 +121,8 @@ function passportAuthenticate(req, res, next) { console.log("Error in logging login: " + err); } if(user.uname) - if ((user.uname == "guest") && (req.query.autologin != undefined)) { - const newQuery={}; - newQuery.autologin="true"; - if(req.query.notecards != undefined) newQuery.notecards="true"; - if(req.query.rooms != undefined) newQuery.rooms="true"; - if((req.query.start != undefined) && (req.query.start != "")) - newQuery.start=req.query.start; - return res.redirect(url.format({pathname:"/main", query: newQuery})); - } + if (req.query.autologin != undefined) + return res.redirect(url.format({pathname:"/main", query: req.query})); else return res.redirect('/main'); else From 73bd1b9a0837ef73d1e1e4d2163752fe5f8530c2 Mon Sep 17 00:00:00 2001 From: Frank Halasz Date: Sat, 8 Nov 2025 07:10:26 +0000 Subject: [PATCH 034/166] Fix typo --- web-portal/server/js/app.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/web-portal/server/js/app.js b/web-portal/server/js/app.js index 32083653..d6bacd48 100644 --- a/web-portal/server/js/app.js +++ b/web-portal/server/js/app.js @@ -132,10 +132,10 @@ app.get([ '/demo/login' ], const cookieUrl = encodeURI(`${req.protocol}://${req.get('host')}${req.originalUrl}`); res.cookie('autologinURL', cookieUrl); - if(req.query == undefined) req.query = {}; + if(req.query == undefined) req.query = {}; req.query.autologin = "true"; res.redirect(url.format({pathname:"/main", query: req.query})); - }. + } ); app.use('/user', userRouter); app.use('/medley', ensureLoggedIn(), medleyRouter); From cedf3816f200b05f44264798e2d2947a9edca402 Mon Sep 17 00:00:00 2001 From: Frank Halasz Date: Sat, 8 Nov 2025 21:25:59 +0000 Subject: [PATCH 035/166] Debugging /demo/login route --- web-portal/server/js/user.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/web-portal/server/js/user.js b/web-portal/server/js/user.js index 42ca4f2a..09275263 100644 --- a/web-portal/server/js/user.js +++ b/web-portal/server/js/user.js @@ -121,10 +121,10 @@ function passportAuthenticate(req, res, next) { console.log("Error in logging login: " + err); } if(user.uname) - if (req.query.autologin != undefined) + #if (req.query.autologin != undefined) return res.redirect(url.format({pathname:"/main", query: req.query})); - else - return res.redirect('/main'); + #else + # return res.redirect('/main'); else return res.render('reregister', {isNCO: config.isNCO(req)}); } From 08f5e5029fb57554c21163c7407df2808a271c6b Mon Sep 17 00:00:00 2001 From: Frank Halasz Date: Sat, 8 Nov 2025 21:49:17 +0000 Subject: [PATCH 036/166] Debugging /demo/login route --- web-portal/server/js/user.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/web-portal/server/js/user.js b/web-portal/server/js/user.js index 09275263..f484aa4c 100644 --- a/web-portal/server/js/user.js +++ b/web-portal/server/js/user.js @@ -121,10 +121,10 @@ function passportAuthenticate(req, res, next) { console.log("Error in logging login: " + err); } if(user.uname) - #if (req.query.autologin != undefined) + // if (req.query.autologin != undefined) return res.redirect(url.format({pathname:"/main", query: req.query})); - #else - # return res.redirect('/main'); + // else + // return res.redirect('/main'); else return res.render('reregister', {isNCO: config.isNCO(req)}); } From e7b0bb68f014a36943fb969eea2273a7e3d22973 Mon Sep 17 00:00:00 2001 From: Frank Halasz Date: Sun, 9 Nov 2025 07:17:40 +0000 Subject: [PATCH 037/166] Redoing routing for /demo/guest and /demo/login paths. --- web-portal/server/js/app.js | 34 ++++++++++++++++++++++++++-------- web-portal/server/js/user.js | 4 ++-- 2 files changed, 28 insertions(+), 10 deletions(-) diff --git a/web-portal/server/js/app.js b/web-portal/server/js/app.js index d6bacd48..b97f1e4b 100644 --- a/web-portal/server/js/app.js +++ b/web-portal/server/js/app.js @@ -117,26 +117,44 @@ app.get('/main', } ); app.get([ '/guest', '/demo/guest' ], + (req, res, next) => { + if(req.query.autologin === undefined) { + if (req.isAuthenticated && req.isAuthenticated()) { + req.logout(); + } + req.session.returnTo = `${req.protocol}://${req.get('host')}${req.originalUrl}&autologin=true`; + let newQuery = {}; + newQuery.username = config.guestUsername; + newQuery.password = config.guestPassword; + res.redirect(url.format({pathname:"/user/autologin", query: newQuery})); + } + else next(); + }, (req, res) => { - const cookieUrl = encodeURI(`${req.protocol}://${req.get('host')}${req.originalUrl}`); res.cookie('autologinURL', cookieUrl); - req.query.autologin = "true"; - req.query.username = config.guestUsername; - req.query.password = config.guestPassword; - res.redirect(url.format({pathname:"/user/autologin", query: req.query})); + res.redirect(url.format({pathname:"/main", query: req.query})); } ); + app.get([ '/demo/login' ], + (req, res, next) => { + if(req.query.autologin === undefined) { + if (req.isAuthenticated && req.isAuthenticated()) { + req.logout(); + } + req.session.returnTo = `${req.protocol}://${req.get('host')}${req.originalUrl}&autologin=true`; + res.redirect(url.format({ pathname:"/user/autologin", query:{} })); + } + else next(); + }, (req, res) => { - const cookieUrl = encodeURI(`${req.protocol}://${req.get('host')}${req.originalUrl}`); res.cookie('autologinURL', cookieUrl); - if(req.query == undefined) req.query = {}; - req.query.autologin = "true"; res.redirect(url.format({pathname:"/main", query: req.query})); } ); + app.use('/user', userRouter); app.use('/medley', ensureLoggedIn(), medleyRouter); app.use('/client', ensureLoggedIn(), clientRouter); diff --git a/web-portal/server/js/user.js b/web-portal/server/js/user.js index f484aa4c..46c5ffb5 100644 --- a/web-portal/server/js/user.js +++ b/web-portal/server/js/user.js @@ -120,9 +120,9 @@ function passportAuthenticate(req, res, next) { } catch (err) { console.log("Error in logging login: " + err); } - if(user.uname) + if(user.uname) res.redirect(req.session.returnTo); // if (req.query.autologin != undefined) - return res.redirect(url.format({pathname:"/main", query: req.query})); + //return res.redirect(url.format({pathname:"/main", query: req.query})); // else // return res.redirect('/main'); else From b1ef52ceda5bba8424e8d54506e5c1fb92030b43 Mon Sep 17 00:00:00 2001 From: Frank Halasz Date: Mon, 10 Nov 2025 05:22:41 +0000 Subject: [PATCH 038/166] Add relogin route for /demo routes. --- web-portal/client/views/relogin.pug | 48 +++++++++++++++++++++++++++++ web-portal/server/js/app.js | 40 +++++++++++++++--------- web-portal/server/js/user.js | 26 ++++++++++------ 3 files changed, 90 insertions(+), 24 deletions(-) create mode 100644 web-portal/client/views/relogin.pug diff --git a/web-portal/client/views/relogin.pug b/web-portal/client/views/relogin.pug new file mode 100644 index 00000000..007c2c10 --- /dev/null +++ b/web-portal/client/views/relogin.pug @@ -0,0 +1,48 @@ +//- + /*************************************************************************** + * + * relogin.pug: relogin page for online.interlisp.org web portal. + * + * 2025-11-09 Frank Halasz + * + * + * Copyright: 2025 by Interlisp.org + * + * + **************************************************************************/ + +extends layout + +block variables + +block headeradds + + link(rel="stylesheet", href="/stylesheets/login.css") + + script. + + document.getElementByName("username").innerHTML = "#{loggedUsername}"; + + function Yes() { window.location.xxx = "#{redirectYes}" } + + function No() { window.location.xxx = "#{redirectNo}" }; + +block content + + div#page-title Change Login? + + include combined.pug + + div#logged-in-as-div + p Currently logged in as: + p + p + p Keep current login? + p + p + .row + .text-center#yes_no_button_div + button(type="button" id="yes_button" onclick="yes()").main-button No, log in again + button(type="button" id="no_button" onclick="no()").main-button Yes, continue with current login + + diff --git a/web-portal/server/js/app.js b/web-portal/server/js/app.js index b97f1e4b..15f9d35d 100644 --- a/web-portal/server/js/app.js +++ b/web-portal/server/js/app.js @@ -97,7 +97,7 @@ app.get('/main', const fromvnc = (req.query.fromvnc != undefined); const isAutoLogin = (req.query.autologin != undefined); if(isAutoLogin && fromvnc) { - alURL = req.cookies.autologinURL; + alURL = decodeURI(req.cookies.autologinURL); page = 'again'; } res.render(page, @@ -116,13 +116,24 @@ app.get('/main', ); } ); -app.get([ '/guest', '/demo/guest' ], + +function autologinGoToMain(req, res, next) { + const cookieUrl = encodeURI(`${req.protocol}://${req.get('host')}${req.originalUrl}`); + res.cookie('autologinURL', cookieUrl); + res.redirect(url.format({pathname:"/main", query: req.query})); +} + +function autologinReturnTo(req) { + return req.originalUrl + (req.originalUrl.includes("?") ? "&" : "?") + "autologin=true"; +} + +app.get([ '/guest', '/demo', '/demo/guest' ], (req, res, next) => { if(req.query.autologin === undefined) { if (req.isAuthenticated && req.isAuthenticated()) { req.logout(); } - req.session.returnTo = `${req.protocol}://${req.get('host')}${req.originalUrl}&autologin=true`; + req.session.returnTo = autologinReturnTo(req); let newQuery = {}; newQuery.username = config.guestUsername; newQuery.password = config.guestPassword; @@ -130,29 +141,28 @@ app.get([ '/guest', '/demo/guest' ], } else next(); }, - (req, res) => { - const cookieUrl = encodeURI(`${req.protocol}://${req.get('host')}${req.originalUrl}`); - res.cookie('autologinURL', cookieUrl); - res.redirect(url.format({pathname:"/main", query: req.query})); - } + autologinGoToMain() ); app.get([ '/demo/login' ], (req, res, next) => { if(req.query.autologin === undefined) { + req.session.returnTo = autologinReturnTo(req); if (req.isAuthenticated && req.isAuthenticated()) { - req.logout(); + if (req.user.uname == config.guestUsername) req.logout(); + else res.render('relogin', + { + username: req.user.username, + redirectNo: url.format({ pathname:"/user/autologin", query:{} }), + redirectYes: url.format({ pathname:"/user/autologin", query:{logout: "true"} }) + } + ); } - req.session.returnTo = `${req.protocol}://${req.get('host')}${req.originalUrl}&autologin=true`; res.redirect(url.format({ pathname:"/user/autologin", query:{} })); } else next(); }, - (req, res) => { - const cookieUrl = encodeURI(`${req.protocol}://${req.get('host')}${req.originalUrl}`); - res.cookie('autologinURL', cookieUrl); - res.redirect(url.format({pathname:"/main", query: req.query})); - } + autologinGoToMain() ); app.use('/user', userRouter); diff --git a/web-portal/server/js/user.js b/web-portal/server/js/user.js index 46c5ffb5..b5902994 100644 --- a/web-portal/server/js/user.js +++ b/web-portal/server/js/user.js @@ -20,6 +20,7 @@ const {userModel, loginModel} = require('./mongodb'); const validateEmail = require('email-addresses').parseOneAddress; const crypto = require('crypto'); const gmailSend = require('./gmail-send')({user: config.gmailUsername, pass: config.gmailPassword, from: config.gmailFrom }); +const util = require('util'); // // The router @@ -101,7 +102,13 @@ function passportAuthenticate(req, res, next) { if (!user) { console.dir(info); - return res.redirect('/user/login?info=' + info); + let redirectTo = "/user/login"; + if ((info !== undefined) && (info != "")) { + redirectTo = redirectTo + "?info="; + if ( (typeof info) == "string") redirectTo = redirectTo + encodeURIComponent(info); + else redirectTo = redirectTo + encodeURIComponent(util.inspect(info, {depth:0})); + } + return res.redirect(redirectTo); } @@ -120,13 +127,8 @@ function passportAuthenticate(req, res, next) { } catch (err) { console.log("Error in logging login: " + err); } - if(user.uname) res.redirect(req.session.returnTo); - // if (req.query.autologin != undefined) - //return res.redirect(url.format({pathname:"/main", query: req.query})); - // else - // return res.redirect('/main'); - else - return res.render('reregister', {isNCO: config.isNCO(req)}); + if(user.uname) return res.redirect(req.session.returnTo); + else return res.render('reregister', {isNCO: config.isNCO(req)}); } } ); @@ -135,7 +137,13 @@ function passportAuthenticate(req, res, next) { } userRouter.post('/login', passportAuthenticate); -userRouter.get('/autologin', passportAuthenticate); +userRouter.get('/autologin', + (req, res, next) => { + if(req.query.logout !== undefined) req.logout(); + next(); + }, + passportAuthenticate + ); userRouter.get('/login', (req, res) => { From fb526288b8bee2061c60404535aedcb279650d9a Mon Sep 17 00:00:00 2001 From: Frank Halasz Date: Mon, 10 Nov 2025 05:44:36 +0000 Subject: [PATCH 039/166] Fix typo --- web-portal/server/js/app.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/web-portal/server/js/app.js b/web-portal/server/js/app.js index 15f9d35d..adf1385b 100644 --- a/web-portal/server/js/app.js +++ b/web-portal/server/js/app.js @@ -141,7 +141,7 @@ app.get([ '/guest', '/demo', '/demo/guest' ], } else next(); }, - autologinGoToMain() + autologinGoToMain ); app.get([ '/demo/login' ], @@ -162,7 +162,7 @@ app.get([ '/demo/login' ], } else next(); }, - autologinGoToMain() + autologinGoToMain ); app.use('/user', userRouter); From 4c137709dc8ed237c24c44f95004d10113d341a0 Mon Sep 17 00:00:00 2001 From: Frank Halasz Date: Mon, 10 Nov 2025 06:42:50 +0000 Subject: [PATCH 040/166] Fix relogin page; fix adding autologin=true to originalURL --- web-portal/client/views/relogin.pug | 12 +++++------- web-portal/server/js/app.js | 7 +++++-- 2 files changed, 10 insertions(+), 9 deletions(-) diff --git a/web-portal/client/views/relogin.pug b/web-portal/client/views/relogin.pug index 007c2c10..25b3a1fe 100644 --- a/web-portal/client/views/relogin.pug +++ b/web-portal/client/views/relogin.pug @@ -21,18 +21,16 @@ block headeradds script. - document.getElementByName("username").innerHTML = "#{loggedUsername}"; + document.getElementById("username").innerHTML = "#{loggedUsername}"; - function Yes() { window.location.xxx = "#{redirectYes}" } + function Yes() { window.location.assign("#{redirectYes}"); } - function No() { window.location.xxx = "#{redirectNo}" }; + function No() { window.location.assign("#{redirectNo}"); } block content div#page-title Change Login? - include combined.pug - div#logged-in-as-div p Currently logged in as: p @@ -42,7 +40,7 @@ block content p .row .text-center#yes_no_button_div - button(type="button" id="yes_button" onclick="yes()").main-button No, log in again - button(type="button" id="no_button" onclick="no()").main-button Yes, continue with current login + button(type="button" id="yes_button" onclick="Yes()").main-button No, log in again + button(type="button" id="no_button" onclick="No()").main-button Yes, continue with current login diff --git a/web-portal/server/js/app.js b/web-portal/server/js/app.js index adf1385b..19f6495b 100644 --- a/web-portal/server/js/app.js +++ b/web-portal/server/js/app.js @@ -124,7 +124,10 @@ function autologinGoToMain(req, res, next) { } function autologinReturnTo(req) { - return req.originalUrl + (req.originalUrl.includes("?") ? "&" : "?") + "autologin=true"; + const newURL = new URL(req.originalURL); + const query = newURL.searchParams; + query.append("autologin", "true"); + return newURL; } app.get([ '/guest', '/demo', '/demo/guest' ], @@ -152,7 +155,7 @@ app.get([ '/demo/login' ], if (req.user.uname == config.guestUsername) req.logout(); else res.render('relogin', { - username: req.user.username, + loggedUsername: req.user.username, redirectNo: url.format({ pathname:"/user/autologin", query:{} }), redirectYes: url.format({ pathname:"/user/autologin", query:{logout: "true"} }) } From d891c835d5557803d9318591e11d9e5f2d285a59 Mon Sep 17 00:00:00 2001 From: Frank Halasz Date: Mon, 10 Nov 2025 07:17:56 +0000 Subject: [PATCH 041/166] Fix typo --- web-portal/server/js/app.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/web-portal/server/js/app.js b/web-portal/server/js/app.js index 19f6495b..14247cfd 100644 --- a/web-portal/server/js/app.js +++ b/web-portal/server/js/app.js @@ -124,7 +124,7 @@ function autologinGoToMain(req, res, next) { } function autologinReturnTo(req) { - const newURL = new URL(req.originalURL); + const newURL = new URL(req.originalUrl); const query = newURL.searchParams; query.append("autologin", "true"); return newURL; From 2557e31cb6ce4a9270ae00fda13c9f8c381343fd Mon Sep 17 00:00:00 2001 From: Frank Halasz Date: Mon, 10 Nov 2025 08:14:28 +0000 Subject: [PATCH 042/166] Fixing handling of encode and decode of URLS --- web-portal/client/views/again.pug | 2 +- web-portal/server/js/app.js | 13 +++++++------ 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/web-portal/client/views/again.pug b/web-portal/client/views/again.pug index 7bf68f8a..45545554 100644 --- a/web-portal/client/views/again.pug +++ b/web-portal/client/views/again.pug @@ -28,5 +28,5 @@ block headeradds block content .row.text-center#again-button - button.main-button(type="button" onclick='window.location.assign(decodeURI(alURL));')!= "Run Medley Again" + button.main-button(type="button" onclick='window.location.assign(decodeURIComponent(alURL));')!= "Run Medley Again" diff --git a/web-portal/server/js/app.js b/web-portal/server/js/app.js index 14247cfd..f174e5fb 100644 --- a/web-portal/server/js/app.js +++ b/web-portal/server/js/app.js @@ -97,7 +97,7 @@ app.get('/main', const fromvnc = (req.query.fromvnc != undefined); const isAutoLogin = (req.query.autologin != undefined); if(isAutoLogin && fromvnc) { - alURL = decodeURI(req.cookies.autologinURL); + alURL = req.cookies.autologinURL; page = 'again'; } res.render(page, @@ -118,16 +118,17 @@ app.get('/main', ); function autologinGoToMain(req, res, next) { - const cookieUrl = encodeURI(`${req.protocol}://${req.get('host')}${req.originalUrl}`); + const cookieUrl = encodeURIComponent(`${req.protocol}://${req.get('host')}${req.originalUrl}`); res.cookie('autologinURL', cookieUrl); res.redirect(url.format({pathname:"/main", query: req.query})); } function autologinReturnTo(req) { - const newURL = new URL(req.originalUrl); - const query = newURL.searchParams; - query.append("autologin", "true"); - return newURL; + // const newURL = new URL(req.originalUrl); + // const query = newURL.searchParams; + // query.append("autologin", "true"); + // return newURL; + return req.originalUrl + (req.originalUrl.includes("?") ? "&" : "?") + "autologin=true"; } app.get([ '/guest', '/demo', '/demo/guest' ], From 440205393690c3d404714b40493f8c93a5893246 Mon Sep 17 00:00:00 2001 From: Frank Halasz Date: Mon, 10 Nov 2025 08:46:59 +0000 Subject: [PATCH 043/166] Debugging relogin route --- web-portal/client/views/relogin.pug | 2 +- web-portal/server/js/app.js | 6 +----- 2 files changed, 2 insertions(+), 6 deletions(-) diff --git a/web-portal/client/views/relogin.pug b/web-portal/client/views/relogin.pug index 25b3a1fe..48ff28a3 100644 --- a/web-portal/client/views/relogin.pug +++ b/web-portal/client/views/relogin.pug @@ -32,7 +32,7 @@ block content div#page-title Change Login? div#logged-in-as-div - p Currently logged in as: + p Currently logged in as: p p p Keep current login? diff --git a/web-portal/server/js/app.js b/web-portal/server/js/app.js index f174e5fb..c1498310 100644 --- a/web-portal/server/js/app.js +++ b/web-portal/server/js/app.js @@ -124,10 +124,6 @@ function autologinGoToMain(req, res, next) { } function autologinReturnTo(req) { - // const newURL = new URL(req.originalUrl); - // const query = newURL.searchParams; - // query.append("autologin", "true"); - // return newURL; return req.originalUrl + (req.originalUrl.includes("?") ? "&" : "?") + "autologin=true"; } @@ -153,7 +149,7 @@ app.get([ '/demo/login' ], if(req.query.autologin === undefined) { req.session.returnTo = autologinReturnTo(req); if (req.isAuthenticated && req.isAuthenticated()) { - if (req.user.uname == config.guestUsername) req.logout(); + if (req.user.username == config.guestUsername) req.logout(); else res.render('relogin', { loggedUsername: req.user.username, From 8ded7804e9ecbe6dcbb173a50a2f84c65be62600 Mon Sep 17 00:00:00 2001 From: Frank Halasz Date: Mon, 10 Nov 2025 09:49:29 +0000 Subject: [PATCH 044/166] Still debugging /demo/login --- web-portal/server/js/app.js | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/web-portal/server/js/app.js b/web-portal/server/js/app.js index c1498310..ff0e3266 100644 --- a/web-portal/server/js/app.js +++ b/web-portal/server/js/app.js @@ -149,7 +149,8 @@ app.get([ '/demo/login' ], if(req.query.autologin === undefined) { req.session.returnTo = autologinReturnTo(req); if (req.isAuthenticated && req.isAuthenticated()) { - if (req.user.username == config.guestUsername) req.logout(); + if (req.user.username == config.guestUsername) + res.redirect(url.format({ pathname:"/user/autologin", query:{logout: "true"} })); else res.render('relogin', { loggedUsername: req.user.username, @@ -158,7 +159,7 @@ app.get([ '/demo/login' ], } ); } - res.redirect(url.format({ pathname:"/user/autologin", query:{} })); + else res.redirect(url.format({ pathname:"/user/autologin", query:{} })); } else next(); }, From 24f502b1ff2627e2fc3d27c74a6d2440b8ec7450 Mon Sep 17 00:00:00 2001 From: Frank Halasz Date: Mon, 10 Nov 2025 19:15:37 +0000 Subject: [PATCH 045/166] Still debugging /demo/login --- web-portal/client/views/relogin.pug | 2 +- web-portal/server/js/app.js | 11 ++++++----- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/web-portal/client/views/relogin.pug b/web-portal/client/views/relogin.pug index 48ff28a3..2fe82ced 100644 --- a/web-portal/client/views/relogin.pug +++ b/web-portal/client/views/relogin.pug @@ -21,7 +21,7 @@ block headeradds script. - document.getElementById("username").innerHTML = "#{loggedUsername}"; + document.getElementById("username").innerText = "#{loggedUsername}"; function Yes() { window.location.assign("#{redirectYes}"); } diff --git a/web-portal/server/js/app.js b/web-portal/server/js/app.js index ff0e3266..f9e26ee4 100644 --- a/web-portal/server/js/app.js +++ b/web-portal/server/js/app.js @@ -149,17 +149,18 @@ app.get([ '/demo/login' ], if(req.query.autologin === undefined) { req.session.returnTo = autologinReturnTo(req); if (req.isAuthenticated && req.isAuthenticated()) { - if (req.user.username == config.guestUsername) - res.redirect(url.format({ pathname:"/user/autologin", query:{logout: "true"} })); + if (req.user.username == config.guestUsername) { + res.redirect(url.format({ pathname:"/user/login", query:{ } })); + } else res.render('relogin', { loggedUsername: req.user.username, - redirectNo: url.format({ pathname:"/user/autologin", query:{} }), - redirectYes: url.format({ pathname:"/user/autologin", query:{logout: "true"} }) + redirectNo: req.session.returnTo, + redirectYes: url.format({ pathname:"/user/login", query:{ } }) } ); } - else res.redirect(url.format({ pathname:"/user/autologin", query:{} })); + else res.redirect(url.format({ pathname:"/user/login", query:{} })); } else next(); }, From b9a2f037c4fcb2b37e5abd48f8d5c32d2f1053a6 Mon Sep 17 00:00:00 2001 From: Frank Halasz Date: Wed, 12 Nov 2025 02:24:05 +0000 Subject: [PATCH 046/166] Fixing up relogin page; adding install_mongodb thats just been hanging around. --- system/install_mongodb8.0.sh | 8 ++++++++ web-portal/client/views/relogin.pug | 13 ++++++++----- 2 files changed, 16 insertions(+), 5 deletions(-) create mode 100755 system/install_mongodb8.0.sh diff --git a/system/install_mongodb8.0.sh b/system/install_mongodb8.0.sh new file mode 100755 index 00000000..0d72eeb0 --- /dev/null +++ b/system/install_mongodb8.0.sh @@ -0,0 +1,8 @@ +!#/bin/bash +wget -qO - https://www.mongodb.org/static/pgp/server-8.0.asc | sudo apt-key add - +echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu focal/mongodb-org/8.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-8.0.list +sudo apt update +sudo apt install -y mongodb-org +sudo systemctl start mongod +sudo systemctl enable mongod +sudo systemctl status mongod diff --git a/web-portal/client/views/relogin.pug b/web-portal/client/views/relogin.pug index 2fe82ced..6f89a76f 100644 --- a/web-portal/client/views/relogin.pug +++ b/web-portal/client/views/relogin.pug @@ -17,11 +17,13 @@ block variables block headeradds - link(rel="stylesheet", href="/stylesheets/login.css") + link(rel="stylesheet", href="/stylesheets/common.css") script. - document.getElementById("username").innerText = "#{loggedUsername}"; + window.addEventListener('load', + function() { document.getElementById("username").innerText = "#{loggedUsername}"; } + ); function Yes() { window.location.assign("#{redirectYes}"); } @@ -29,9 +31,9 @@ block headeradds block content - div#page-title Change Login? + div#page-title Demo Mode: Re-login? - div#logged-in-as-div + div.text-center.h2 p Currently logged in as: p p @@ -40,7 +42,8 @@ block content p .row .text-center#yes_no_button_div - button(type="button" id="yes_button" onclick="Yes()").main-button No, log in again button(type="button" id="no_button" onclick="No()").main-button Yes, continue with current login + br + button(type="button" id="yes_button" onclick="Yes()").main-button No, re-login From d9bade1b7b8c5c2abff84712f056eef003d113da Mon Sep 17 00:00:00 2001 From: Frank Halasz Date: Wed, 12 Nov 2025 02:52:29 +0000 Subject: [PATCH 047/166] Fixing up relogin page --- web-portal/client/views/relogin.pug | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/web-portal/client/views/relogin.pug b/web-portal/client/views/relogin.pug index 6f89a76f..faf72fc9 100644 --- a/web-portal/client/views/relogin.pug +++ b/web-portal/client/views/relogin.pug @@ -33,17 +33,18 @@ block content div#page-title Demo Mode: Re-login? - div.text-center.h2 - p Currently logged in as: - p - p - p Keep current login? - p - p + div.text-center.field.primary-field + p Currently logged in as: + p + p + p Keep current login? + p + p .row - .text-center#yes_no_button_div + .text-center.field.primary-field#yes_no_button_div button(type="button" id="no_button" onclick="No()").main-button Yes, continue with current login - br + p + p button(type="button" id="yes_button" onclick="Yes()").main-button No, re-login From 83c2c37815b6fb584a0b7c1cdfeabd6dac93a2a2 Mon Sep 17 00:00:00 2001 From: Frank Halasz Date: Wed, 12 Nov 2025 03:58:34 +0000 Subject: [PATCH 048/166] Switch yes/no labels on relogin --- web-portal/client/views/relogin.pug | 4 ++-- web-portal/server/js/app.js | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/web-portal/client/views/relogin.pug b/web-portal/client/views/relogin.pug index faf72fc9..ae1c5fa0 100644 --- a/web-portal/client/views/relogin.pug +++ b/web-portal/client/views/relogin.pug @@ -42,9 +42,9 @@ block content p .row .text-center.field.primary-field#yes_no_button_div - button(type="button" id="no_button" onclick="No()").main-button Yes, continue with current login + button(type="button" id="yes_button" onclick="Yes()").main-button Yes, continue with current login p p - button(type="button" id="yes_button" onclick="Yes()").main-button No, re-login + button(type="button" id="no_button" onclick="No()").main-button No, re-login diff --git a/web-portal/server/js/app.js b/web-portal/server/js/app.js index f9e26ee4..d458e658 100644 --- a/web-portal/server/js/app.js +++ b/web-portal/server/js/app.js @@ -155,8 +155,8 @@ app.get([ '/demo/login' ], else res.render('relogin', { loggedUsername: req.user.username, - redirectNo: req.session.returnTo, - redirectYes: url.format({ pathname:"/user/login", query:{ } }) + redirectYes: req.session.returnTo, + redirectNo: url.format({ pathname:"/user/login", query:{ } }) } ); } From a93e0f5b4b4044ceb169518b94d0d8d9b6cbc3e9 Mon Sep 17 00:00:00 2001 From: Frank Halasz Date: Tue, 11 Nov 2025 20:56:10 -0800 Subject: [PATCH 049/166] Update START-INSPHEX to use new HEXDUMP function signature. Update to sonme better commonlisp in the START-INSPHEX function --- start-scripts/START-INSPHEX | 43 +++++++++++++++--------------- start-scripts/START-INSPHEX.DFASL | Bin 1909 -> 0 bytes start-scripts/START-INSPHEX.LCOM | Bin 0 -> 1785 bytes start-scripts/START-INSPHEX.URL | 2 +- 4 files changed, 22 insertions(+), 23 deletions(-) delete mode 100644 start-scripts/START-INSPHEX.DFASL create mode 100644 start-scripts/START-INSPHEX.LCOM diff --git a/start-scripts/START-INSPHEX b/start-scripts/START-INSPHEX index e66faa59..661987ca 100644 --- a/start-scripts/START-INSPHEX +++ b/start-scripts/START-INSPHEX @@ -1,25 +1,23 @@ (DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "INTERLISP" BASE 10) -(FILECREATED " 7-Nov-2025 10:43:14" {DSK}frank>il>online>test>start-scripts>START-INSPHEX.;10 2342 +(FILECREATED "11-Nov-2025 20:45:40" {DSK}frank>il>online>start-scripts>START-INSPHEX.;12 2401 :EDIT-BY "FGH" :CHANGES-TO (FNS START-INSPHEX) (VARS START-INSPHEXCOMS) + (FUNCTIONS TmpShellWget) - :PREVIOUS-DATE " 6-Nov-2025 20:45:51" -{DSK}frank>il>online>test>start-scripts>START-INSPHEX.;2) + :PREVIOUS-DATE "11-Nov-2025 20:10:15" {DSK}frank>il>online>start-scripts>START-INSPHEX.;11 +) (PRETTYCOMPRINT START-INSPHEXCOMS) -(RPAQQ START-INSPHEXCOMS ((P (DEFPACKAGE "INSPHEX" (:USE "LISP" "XCL"))) - (FUNCTIONS TmpShellWget) +(RPAQQ START-INSPHEXCOMS ((FUNCTIONS TmpShellWget) (FNS START-INSPHEX) (P (START-INSPHEX)))) -(DEFPACKAGE "INSPHEX" (:USE "LISP" "XCL")) - (CL:DEFUN TmpShellWget (URL OUTFILENAME) (LET* ((WGET (ShellWhich "wget")) (OUTNAME (OUTFILEP OUTFILENAME)) @@ -36,25 +34,26 @@ (DEFINEQ (START-INSPHEX - [LAMBDA NIL (* ; "Edited 7-Nov-2025 10:43 by FGH") - (LET ((INSPHEX.FILE (CONCAT LOGINDIR ">INSPHEX")) - INSPHEX.DFASL) - (TmpShellWget "https://raw.githubusercontent.com/pamoroso/insphex/refs/heads/main/INSPHEX" - INSPHEX.FILE) - (SETQ INSPHEX.DFASL (CL:COMPILE-FILE INSPHEX.FILE)) - (LOAD INSPHEX.DFASL) - [ADVISE '(TEDIT IN INSPHEX::CREATE-HEX-WINDOW) - 'BEFORE - '(SETQ WINDOW (CREATEW (CREATEREGION (FIX (TIMES 0.35 SCREENWIDTH)) + [LAMBDA NIL (* ; "Edited 11-Nov-2025 20:44 by FGH") + (* ; "Edited 7-Nov-2025 10:43 by FGH") + (LET* ((INSPHEX.FILE (CONCAT LOGINDIR ">INSPHEX")) + (INSPHEX.DFASL (CONCAT INSPHEX.FILE ".DFASL"))) + (DIRECTORY INSPHEX.DFASL 'DELETE) + (DIRECTORY (CONCAT INSPHEX.FILE ".") + 'DELETE) + (TmpShellWget "https://raw.githubusercontent.com/pamoroso/insphex/refs/heads/main/INSPHEX" + INSPHEX.FILE) + (SETQ INSPHEX.DFASL (CL:COMPILE-FILE INSPHEX.FILE)) + (LOAD INSPHEX.DFASL) + (ADD.PROCESS (LIST (CL:FIND-SYMBOL "HEXDUMP" "INSPHEX") + (KWOTE INSPHEX.DFASL) + '(CREATEW (CREATEREGION (FIX (TIMES 0.35 SCREENWIDTH)) (FIX (TIMES 0.25 SCREENHEIGHT)) (FIX (TIMES 0.5 SCREENWIDTH)) - (FIX (TIMES 0.5 SCREENHEIGHT] - (ADD.PROCESS (LIST (CL:INTERN "HEXDUMP" (CL:FIND-PACKAGE "INSPHEX")) - (KWOTE INSPHEX.DFASL) - T]) + (FIX (TIMES 0.5 SCREENHEIGHT]) ) (START-INSPHEX) (DECLARE%: DONTCOPY - (FILEMAP (NIL (706 1299 (TmpShellWget 706 . 1299)) (1300 2298 (START-INSPHEX 1310 . 2296))))) + (FILEMAP (NIL (623 1216 (TmpShellWget 623 . 1216)) (1217 2357 (START-INSPHEX 1227 . 2355))))) STOP diff --git a/start-scripts/START-INSPHEX.DFASL b/start-scripts/START-INSPHEX.DFASL deleted file mode 100644 index f5c0927be8cad956084bd8ea0568f1c29a0789c3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1909 zcmbtV-EZ4e6i=M*q#dbXuy%Zy51}&ENk4`P1v1?DCb?~Dr?#_(4GFoaTbm_uWIG+x zG%27x@L&l_>10prAK;Z21P}d}_zNiKUMEdk?TtKG=brmJ=brOBA32JoTje@iwz_?@ zquZ=CaQg$7-M4Jku?BWqXZJzRJ{FYCC!ZTuS1;|`TJJ&0?3Aot$L#4PS9jc!<7&3c zIc?kQyG}__d0FMKs5EM*RrqXaF{@ng)wXrb)%RF-l@qN)Zh3L}V|HnA?e@yr((P=8 zSL)%DV_3yD_q0a~>?#Xry}JuR5|f3I&GK^g?1le~dEbh_@8JBCBht)Fl&Ul2kdH7? z|HQji!F5!Y5w9YlE|r;x|C5)$1tE(9FAETLqp9BVz5EjET79mgAL<=KN0$K?{?A^z z(iF=omPG$JI%M7ghj{^2u!uO~7tAYC9z4dS1`?SZ7$l{p3NDi%W&|uFYRug5kBKJL z;LDqQ75QEUiz<@qSZNR-geR!{dj0A}e4STNHtKuH$Ks&Vc@lxtBMXzPX|^==Q!2he z5)Z`@2fjD6awRi|fPxrJ=tKV(FAE8c<2nL-3&~Q8D@$8jlE{$=^N@84a%#v@BX$!G zGnXn3NF@o{3}Hk7o)yCT^d(H}UH_Qzz0{~l{Nos;9cwC(aGa9h#h@==_mATQcj84G z012*NvIuTo0*AoNxIPM4O{v|!V(6XD&VlZR_pyqo1hXIqEF>Jv=HTo93ZcCAvVJ`A z?)=ZzkNg(QLyf+j^x>a8EyY)~YFWbly$!0NGR09T*m%(Wm)3H)@mG!Nzog%d=>)O* zyY~CU>FFkQafp#A))a9ooB{I0G(nG^ zY>;NihIKH^wh?`mn1*AKxa)gwpO=W`*oROlwr9DlcBq*hZMUOWp~@^LvApj^*^l5; zfc}pY9B@19KZ`w*C!~!hzD6lLt%X#F+)xx{ok|zRWWpmg!!NM;&yn#XUdbOBKbS)! zpjOzJn;T*izH`*!XrWAx7o9+s7wi+@cB~?d$4LLC>rxeqF#o|U6Ah;=HYAgNKK9?I z9l+&yK`6jnm64*pHT4@Ql6InSXlvmP5~?ucd($=$mHE4vwZ()X$TvYG$OsN zAzZDg7q0I>j|X30ReUo)egO$s1#OZnv$TtM}YO+v*nkTGz5I$10jVr*G)r6>WXrDH^)A=M=k|*(;8!3Nw{1 ejbyrjQ)x1f`N&KDHONJ{TBERR;P8BKcJ?3csW&44 diff --git a/start-scripts/START-INSPHEX.LCOM b/start-scripts/START-INSPHEX.LCOM new file mode 100644 index 0000000000000000000000000000000000000000..907234848e0eafeda3ebc38a8cc126919fe9e307 GIT binary patch literal 1785 zcmbtUPmh~c5cl?0dP&vW9-`5^6e?kZjT4(xmM}b-TD3>kpx?na0o@8U$prs<*pxldqw! zfPnOe6TklR*P`C$liPh({Wd8#le*fJRX%CjY~QNQYG3Z!W)de>lwf{w=+c|+E4{B^ z3_}f8?R|`aX=tW4CeZQ_o1fQERv-~83}ZM2cDr2y>#W5To^YU#i1M$M7#e~9o;dUk zO$W)O4olSO63A@s5-@Go^5-;GlK|wIAH!L}3dnD)=qsTeEMip5Qr}KkfF{Xy7Z>?v zbA6Y$3PuPc`i2E*tUB0}M=jAcQy>11LUcts%MnaxB*`J@aO{#ZvtkcI&>kdwL|_Je z@Paw>9Tq9j`RlujPA956_(=Tq<3-0k{kvdy54sb@7oh;V!q)wsLzipu5%Mpd*!t5? z>++wEgJ*yLAdFdYc`4NRy%ZMDI@q$AC3bI|-sC7-O&l-?kDMj84RT<0#g(`x8!}t`FfV4X|xP z103p6JYi;s6Y4=nJNdx2>*FD!bDRU52zCQ5P-PFCZYIa5bdvBlLHoYRx)=h7ll~wQPTml0fBAfLwe#Ed5 z7y_9b0eDYHfh1Y-CPlc+&PgTsBgs){U0prafc#BnJ;~1y+&`(0NW5|d+9Iz` zQ3%pO#jTugnq1(}rM+;YbT%v{CJ-*k1vS?{M7S+Lyr+?6a^8GhrI?W q@Ed`uZXtW0m7DDCCKvZ3Aa=doX4M)nvchjz+%ERvyfu=~Jn1uuWXfj% literal 0 HcmV?d00001 diff --git a/start-scripts/START-INSPHEX.URL b/start-scripts/START-INSPHEX.URL index 638101cb..b0e5fb6f 100644 --- a/start-scripts/START-INSPHEX.URL +++ b/start-scripts/START-INSPHEX.URL @@ -1,2 +1,2 @@ -https://online.interlisp.org:8081/guest?start=https%3A%2F%2Fgithub.com%2FInterlisp%2Fonline%2Fraw%2Frefs%2Fheads%2Ffgh_museum-mode%2Fstart-scripts%2FSTART-INSPHEX.DFASL +https://online.interlisp.org:8081/demo?start=https%3A%2F%2Fgithub.com%2FInterlisp%2Fonline%2Fraw%2Frefs%2Fheads%2Ffgh_museum-mode%2Fstart-scripts%2FSTART-INSPHEX.LCOM From 44f024af71c699a407680bf7299c3fc0be7c5545 Mon Sep 17 00:00:00 2001 From: Frank Halasz Date: Wed, 12 Nov 2025 05:31:59 +0000 Subject: [PATCH 050/166] Fix relogin when using ¬ecards=1 --- web-portal/client/views/relogin.pug | 2 +- web-portal/server/js/app.js | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/web-portal/client/views/relogin.pug b/web-portal/client/views/relogin.pug index ae1c5fa0..1b263ccb 100644 --- a/web-portal/client/views/relogin.pug +++ b/web-portal/client/views/relogin.pug @@ -25,7 +25,7 @@ block headeradds function() { document.getElementById("username").innerText = "#{loggedUsername}"; } ); - function Yes() { window.location.assign("#{redirectYes}"); } + function Yes() { window.location.assign(decodeURIComponent("#{redirectYes}")); } function No() { window.location.assign("#{redirectNo}"); } diff --git a/web-portal/server/js/app.js b/web-portal/server/js/app.js index d458e658..e729045f 100644 --- a/web-portal/server/js/app.js +++ b/web-portal/server/js/app.js @@ -155,7 +155,7 @@ app.get([ '/demo/login' ], else res.render('relogin', { loggedUsername: req.user.username, - redirectYes: req.session.returnTo, + redirectYes: encodeURIComponent(req.session.returnTo), redirectNo: url.format({ pathname:"/user/login", query:{ } }) } ); From c3b4f4003f327bfa11daf012645cb2e6224055c6 Mon Sep 17 00:00:00 2001 From: Frank Halasz Date: Tue, 11 Nov 2025 21:58:46 -0800 Subject: [PATCH 051/166] Update START-INSPHEX to fix wget filename issues --- start-scripts/START-INSPHEX | 15 ++++++--------- start-scripts/START-INSPHEX.LCOM | Bin 1785 -> 1668 bytes 2 files changed, 6 insertions(+), 9 deletions(-) diff --git a/start-scripts/START-INSPHEX b/start-scripts/START-INSPHEX index 661987ca..b46c7fb7 100644 --- a/start-scripts/START-INSPHEX +++ b/start-scripts/START-INSPHEX @@ -1,6 +1,6 @@ (DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "INTERLISP" BASE 10) -(FILECREATED "11-Nov-2025 20:45:40" {DSK}frank>il>online>start-scripts>START-INSPHEX.;12 2401 +(FILECREATED "11-Nov-2025 21:56:34" {DSK}frank>il>online>start-scripts>START-INSPHEX.;13 2262 :EDIT-BY "FGH" @@ -8,7 +8,7 @@ (VARS START-INSPHEXCOMS) (FUNCTIONS TmpShellWget) - :PREVIOUS-DATE "11-Nov-2025 20:10:15" {DSK}frank>il>online>start-scripts>START-INSPHEX.;11 + :PREVIOUS-DATE "11-Nov-2025 20:45:40" {DSK}frank>il>online>start-scripts>START-INSPHEX.;12 ) @@ -34,13 +34,10 @@ (DEFINEQ (START-INSPHEX - [LAMBDA NIL (* ; "Edited 11-Nov-2025 20:44 by FGH") + [LAMBDA NIL (* ; "Edited 11-Nov-2025 21:56 by FGH") (* ; "Edited 7-Nov-2025 10:43 by FGH") - (LET* ((INSPHEX.FILE (CONCAT LOGINDIR ">INSPHEX")) - (INSPHEX.DFASL (CONCAT INSPHEX.FILE ".DFASL"))) - (DIRECTORY INSPHEX.DFASL 'DELETE) - (DIRECTORY (CONCAT INSPHEX.FILE ".") - 'DELETE) + (LET* ((INSPHEX.FILE (OUTFILEP (CONCAT LOGINDIR ">INSPHEX"))) + INSPHEX.DFASL) (TmpShellWget "https://raw.githubusercontent.com/pamoroso/insphex/refs/heads/main/INSPHEX" INSPHEX.FILE) (SETQ INSPHEX.DFASL (CL:COMPILE-FILE INSPHEX.FILE)) @@ -55,5 +52,5 @@ (START-INSPHEX) (DECLARE%: DONTCOPY - (FILEMAP (NIL (623 1216 (TmpShellWget 623 . 1216)) (1217 2357 (START-INSPHEX 1227 . 2355))))) + (FILEMAP (NIL (623 1216 (TmpShellWget 623 . 1216)) (1217 2218 (START-INSPHEX 1227 . 2216))))) STOP diff --git a/start-scripts/START-INSPHEX.LCOM b/start-scripts/START-INSPHEX.LCOM index 907234848e0eafeda3ebc38a8cc126919fe9e307..649d99a6d387d0bbc1de513c1fa3bdd95f607574 100644 GIT binary patch delta 252 zcmey#+rm2`h27A~)Xd7nY+|+#qw&NYWe~ox$>e{G)@;TKMn+~vlgk*JCmS$2PPSrl zmxyO#WMBx&X8-~&5Wxu|1O*ube051tUv^klcdcjMSW*@buIY1w&H>|IiSS zRDgn^fr7KYpR;3#CYOe}i9%qge~2rPsbFEOpy3?k>KNi04q{9`&fFzqYNVj#=@%T} g;ToZ&U}CPI1Z22``UWT|7#UB_W%1v9o<)lZ0F9$Qm;e9( delta 356 zcmYk0F;BxV5QXE=3aO|A%nT<_AZQgQPMd@&*ba^4#34yVyHgd3A{bCt1{fHrJRp7t z3;ztUAY2fT8{WNp-y80s`_X+m-*h7CM?PI$O60EImiisBHn`LwdWr7a#EFQnKhY5) zIHSQDnQB9)?-7=fV!_0>&vF4@3_}$p=>=EL_=~&eQdFe)4VE1VuB$E02{-{S%G0d Y^;S#mPztz@frMu9B(5ZWowg3_FUsgn%m4rY From f83ab09118366acae7050b53f21c7ff472ed083c Mon Sep 17 00:00:00 2001 From: Frank Halasz Date: Tue, 11 Nov 2025 23:57:19 -0800 Subject: [PATCH 052/166] Fix issues with unix vs lisp filenames in ShellWget --- start-scripts/START-INSPHEX | 25 ++++++++++++------------- start-scripts/START-INSPHEX.LCOM | Bin 1668 -> 1662 bytes 2 files changed, 12 insertions(+), 13 deletions(-) diff --git a/start-scripts/START-INSPHEX b/start-scripts/START-INSPHEX index b46c7fb7..897a43dc 100644 --- a/start-scripts/START-INSPHEX +++ b/start-scripts/START-INSPHEX @@ -1,14 +1,14 @@ (DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "INTERLISP" BASE 10) -(FILECREATED "11-Nov-2025 21:56:34" {DSK}frank>il>online>start-scripts>START-INSPHEX.;13 2262 +(FILECREATED "11-Nov-2025 23:54:22" {DSK}frank>il>online>start-scripts>START-INSPHEX.;18 2203 :EDIT-BY "FGH" :CHANGES-TO (FNS START-INSPHEX) - (VARS START-INSPHEXCOMS) (FUNCTIONS TmpShellWget) + (VARS START-INSPHEXCOMS) - :PREVIOUS-DATE "11-Nov-2025 20:45:40" {DSK}frank>il>online>start-scripts>START-INSPHEX.;12 + :PREVIOUS-DATE "11-Nov-2025 23:50:23" {DSK}frank>il>online>start-scripts>START-INSPHEX.;17 ) @@ -18,25 +18,24 @@ (FNS START-INSPHEX) (P (START-INSPHEX)))) -(CL:DEFUN TmpShellWget (URL OUTFILENAME) +(CL:DEFUN TmpShellWget (URL OUTFILENAME) (* ; "Edited 11-Nov-2025 23:50 by FGH") (LET* ((WGET (ShellWhich "wget")) (OUTNAME (OUTFILEP OUTFILENAME)) - (UNIXNAME (LET [(UN (UNIX-FILE-NAME OUTNAME 'OUTPUT] - (if (STREQUAL (SUBSTRING UN (NCHARS UN)) - ".") - then (SUBSTRING UN 1 -2) - else UN))) - (CMD (CONCAT WGET " " URL " -O " UNIXNAME))) + (TMPFILE (CONCAT "/tmp/wget" (CLOCK))) + (UNIXFILE (CONCAT "{UNIX}" TMPFILE)) + (CMD (CONCAT WGET " " URL " -O " TMPFILE))) (if (NULL WGET) then (ERROR "ShellWget - wget not available")) (ShellCommand CMD) + (COPYFILE UNIXFILE OUTNAME) + (DELFILE UNIXFILE) OUTNAME)) (DEFINEQ (START-INSPHEX - [LAMBDA NIL (* ; "Edited 11-Nov-2025 21:56 by FGH") + [LAMBDA NIL (* ; "Edited 11-Nov-2025 23:54 by FGH") (* ; "Edited 7-Nov-2025 10:43 by FGH") - (LET* ((INSPHEX.FILE (OUTFILEP (CONCAT LOGINDIR ">INSPHEX"))) + (LET* ((INSPHEX.FILE (OUTFILEP "{CORE}INSPHEX")) INSPHEX.DFASL) (TmpShellWget "https://raw.githubusercontent.com/pamoroso/insphex/refs/heads/main/INSPHEX" INSPHEX.FILE) @@ -52,5 +51,5 @@ (START-INSPHEX) (DECLARE%: DONTCOPY - (FILEMAP (NIL (623 1216 (TmpShellWget 623 . 1216)) (1217 2218 (START-INSPHEX 1227 . 2216))))) + (FILEMAP (NIL (623 1170 (TmpShellWget 623 . 1170)) (1171 2159 (START-INSPHEX 1181 . 2157))))) STOP diff --git a/start-scripts/START-INSPHEX.LCOM b/start-scripts/START-INSPHEX.LCOM index 649d99a6d387d0bbc1de513c1fa3bdd95f607574..74306c2ee0aadc1e5704269890c95b924862c2e3 100644 GIT binary patch delta 538 zcmY+9&u-H|7{ueyrfPsQ91x5wB-WKo?R8?O?#bAj)MD*5{zH;W4=5?E+R_}NAXHVo za7CipSK+{wr{Dp2kBYTPD{)zUyWh<0Z@xahee`{{<@o)c@6el5t_^N}uKwLAmABe{ zX8=kqN3Jv~e`!yjkoQ4epeTd9G~=|$4%j3VNg;o0sBM-{o!X{((r!bi5Bg;&a&{#TH-5M~*oV$$C(HQ^wr!>tE0bEZuW(dXeE5Rl=s-6>I4gHR z$aus`kgj~O`D(J}OM`?NN>L_RQ-p*f4TBQ;?(%%G`&o6-6(<+rTceg$X*_9k-Fx9> z{dT2eogn{gzPw9oEGI`GX~j9}-wiB}=bu1Wo{Jn^X?0vnC1ukl^gdm|HDDkSHNi#$SKpo`EMyM^AxaPFM%-g}-lzjW^2Yz)I-6#Aq4i_G%wAFfxu z=c^}cf87J6BdV?~s(x6{)NSjz`f2qx2B9B>{=gvG37g|CCZNdjY08tdbkTU#v>J`_ zV?&p%J~vNq_9&tx*(u6AW>tk?j5rG?8t+%9v%@@tZ|0)}USOO!pA~7w`V;+t?m@i& zRGrt0#r$o3g<*hP3S$)*4iM)&j)ZHIv5#Y!3#KJ@J&?F$kzjKp)O77@H=uA*UKK~| z#DPDCqeUWTg#+rTUu$_QfODW&>w70-VjG0ar%ZsTm+cof_TP& From a113f19a92816fa3535bb49a5f593fe6ce88d845 Mon Sep 17 00:00:00 2001 From: Frank Halasz Date: Wed, 12 Nov 2025 00:07:04 -0800 Subject: [PATCH 053/166] Update URL for KINETIC script Signed-off-by: Frank Halasz --- start-scripts/START-KINETIC.URL | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/start-scripts/START-KINETIC.URL b/start-scripts/START-KINETIC.URL index 74d5447b..a0816cee 100644 --- a/start-scripts/START-KINETIC.URL +++ b/start-scripts/START-KINETIC.URL @@ -1 +1 @@ -https://online.interlisp.org:8081/guest?start=https%3A%2F%2Fgithub.com%2FInterlisp%2Fonline%2Fraw%2Frefs%2Fheads%2Ffgh_museum-mode%2Fstart-scripts%2FSTART-KINETIC +https://online.interlisp.org:8081/demo?start=https%3A%2F%2Fgithub.com%2FInterlisp%2Fonline%2Fraw%2Frefs%2Fheads%2Ffgh_museum-mode%2Fstart-scripts%2FSTART-KINETIC From 42e2d5ac3d32bdffd300c08bd00c4daa850b4a4f Mon Sep 17 00:00:00 2001 From: Frank Halasz Date: Wed, 12 Nov 2025 20:53:17 +0000 Subject: [PATCH 054/166] Adding start-script option to main Run Medley page --- web-portal/client/js/main.js | 11 +++++++++-- web-portal/client/views/help_dialogs.pug | 11 +++++++++++ web-portal/client/views/main.pug | 4 ++++ 3 files changed, 24 insertions(+), 2 deletions(-) diff --git a/web-portal/client/js/main.js b/web-portal/client/js/main.js index ed894003..786aa786 100644 --- a/web-portal/client/js/main.js +++ b/web-portal/client/js/main.js @@ -127,6 +127,13 @@ function startSession (interlispOrXterm) { const runRooms = document.getElementById("run_rooms_cb").checked ? "true": "false"; const startSftp = document.getElementById("sftp_checkbox").checked ? "true": "false"; const medleyExec = document.getElementById("interlisp_rb").checked ? "inter" : "common"; + const startScriptUrl = + (function() { + const ss = document.getElementById("start_script_url").value; + if (ss != "") return encodeURIComponent(ss); + if (alStart != "") return encodeURIComponent(alStart); + return ""; + })(); if(!isGuest) { localStore.setItem("fill-window", fillWindow ? 'true' : 'false'); if(! fillWindow) { @@ -171,8 +178,8 @@ function startSession (interlispOrXterm) { + `&sftp=${startSftp || "false"}` + `&exec=${medleyExec || "inter"}` + ( isAutoLogin ? "&autologin" : "") - + ( (alStart != "") ? `&start=${encodeURIComponent(alStart)}` : "" ) - ; + + ( (startScriptUrl != "") ? `&start=${startScriptUrl}` : "" ) + ; if(isRunning) { new Promise((resolve, reject) => { diff --git a/web-portal/client/views/help_dialogs.pug b/web-portal/client/views/help_dialogs.pug index 8267f87a..fdb36eba 100644 --- a/web-portal/client/views/help_dialogs.pug +++ b/web-portal/client/views/help_dialogs.pug @@ -122,3 +122,14 @@ dialog(id="help-dialog-which-exec").help-dialog Additional Exec windows based on either Interlisp or Common Lisp can be started at any time from the background menu. .single-button-div button(type="button" onclick='helpDialogClose("which-exec");').main-button OK +dialog(id="help-dialog-start-script").help-dialog + h2 Help + p. + A start-script if a Medley Lisp file that will be LOADed at the end of the ONLINE-INIT script while Online + Medley is starting up. It can be used to fetch other files from the Internet and/or to run code that will + set-up the Medley environment or start a specific Medley application. This is generally used for automatings + demos. Example start-scripts can be found at https://github.com/interlisp/online/start-scripts. + p. + In this field enter a URL that points to a Medley Lisp file that can be downloaded from the Internet with + wget. This file will be downloaded amd LOADed at the end of ONLINE-INIT. + diff --git a/web-portal/client/views/main.pug b/web-portal/client/views/main.pug index 145f78cf..118413ea 100644 --- a/web-portal/client/views/main.pug +++ b/web-portal/client/views/main.pug @@ -115,6 +115,10 @@ block content label.  Show advanced options #dev-div-controls(style="display:none;") + #start_script_row + label.run-option.dev-div-run-option. +  URL for start-script + span.in-circle(onclick='helpOnClick("start-script");') ? #custom_sysout_row label.run-option.dev-div-run-option.  Run custom sysout From 9cb9517ebc959dbe22008951afca2e2c44575941 Mon Sep 17 00:00:00 2001 From: Frank Halasz Date: Wed, 12 Nov 2025 21:30:26 +0000 Subject: [PATCH 055/166] Polishing start-script entry on run medley page --- web-portal/client/js/main.js | 5 ++++- web-portal/client/views/help_dialogs.pug | 2 ++ web-portal/client/views/main.pug | 3 ++- 3 files changed, 8 insertions(+), 2 deletions(-) diff --git a/web-portal/client/js/main.js b/web-portal/client/js/main.js index 786aa786..aecf8bab 100644 --- a/web-portal/client/js/main.js +++ b/web-portal/client/js/main.js @@ -130,7 +130,10 @@ function startSession (interlispOrXterm) { const startScriptUrl = (function() { const ss = document.getElementById("start_script_url").value; - if (ss != "") return encodeURIComponent(ss); + if (ss != "") { + if (ss.includes("%2F)) ss = decodeURIComponent(ss); + return encodeURIComponent(ss); + } if (alStart != "") return encodeURIComponent(alStart); return ""; })(); diff --git a/web-portal/client/views/help_dialogs.pug b/web-portal/client/views/help_dialogs.pug index fdb36eba..160d1840 100644 --- a/web-portal/client/views/help_dialogs.pug +++ b/web-portal/client/views/help_dialogs.pug @@ -132,4 +132,6 @@ dialog(id="help-dialog-start-script").help-dialog p. In this field enter a URL that points to a Medley Lisp file that can be downloaded from the Internet with wget. This file will be downloaded amd LOADed at the end of ONLINE-INIT. + .single-button-div + button(type="button" onclick='helpDialogClose("start-script");').main-button OK diff --git a/web-portal/client/views/main.pug b/web-portal/client/views/main.pug index 118413ea..15e61737 100644 --- a/web-portal/client/views/main.pug +++ b/web-portal/client/views/main.pug @@ -117,7 +117,8 @@ block content #dev-div-controls(style="display:none;") #start_script_row label.run-option.dev-div-run-option. -  URL for start-script + + span.in-circle(onclick='helpOnClick("start-script");') ? #custom_sysout_row label.run-option.dev-div-run-option. From 2c7fef8123a3dd4d56ad4b93e8c5400c7186c86f Mon Sep 17 00:00:00 2001 From: Frank Halasz Date: Wed, 12 Nov 2025 21:42:26 +0000 Subject: [PATCH 056/166] Fix typo --- web-portal/client/js/main.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/web-portal/client/js/main.js b/web-portal/client/js/main.js index aecf8bab..298263c0 100644 --- a/web-portal/client/js/main.js +++ b/web-portal/client/js/main.js @@ -131,7 +131,7 @@ function startSession (interlispOrXterm) { (function() { const ss = document.getElementById("start_script_url").value; if (ss != "") { - if (ss.includes("%2F)) ss = decodeURIComponent(ss); + if (ss.includes("%2F")) ss = decodeURIComponent(ss); return encodeURIComponent(ss); } if (alStart != "") return encodeURIComponent(alStart); From 4d5de1b93a997e439a402910a0c22ad69f95fb11 Mon Sep 17 00:00:00 2001 From: Frank Halasz Date: Wed, 12 Nov 2025 23:56:24 +0000 Subject: [PATCH 057/166] Fix const -> let --- web-portal/client/js/main.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/web-portal/client/js/main.js b/web-portal/client/js/main.js index 298263c0..4b50b5a6 100644 --- a/web-portal/client/js/main.js +++ b/web-portal/client/js/main.js @@ -129,7 +129,7 @@ function startSession (interlispOrXterm) { const medleyExec = document.getElementById("interlisp_rb").checked ? "inter" : "common"; const startScriptUrl = (function() { - const ss = document.getElementById("start_script_url").value; + let ss = document.getElementById("start_script_url").value; if (ss != "") { if (ss.includes("%2F")) ss = decodeURIComponent(ss); return encodeURIComponent(ss); From fb0eec9b6432f4a40e5737577ad93db93d4d9ccb Mon Sep 17 00:00:00 2001 From: Frank Halasz Date: Thu, 13 Nov 2025 01:11:04 +0000 Subject: [PATCH 058/166] Adjusting start-script typein element --- web-portal/client/views/help_dialogs.pug | 194 +++++++++++++++++++++++ 1 file changed, 194 insertions(+) diff --git a/web-portal/client/views/help_dialogs.pug b/web-portal/client/views/help_dialogs.pug index 160d1840..a3af0a09 100644 --- a/web-portal/client/views/help_dialogs.pug +++ b/web-portal/client/views/help_dialogs.pug @@ -135,3 +135,197 @@ dialog(id="help-dialog-start-script").help-dialog .single-button-div button(type="button" onclick='helpDialogClose("start-script");').main-button OK +//- + /*************************************************************************** + * + * main.pug: "main" page for online.interlisp.org web portal. + * This is where the user starts up interlisp, etc., + * + * 2021-11-22 Frank Halasz + * + * + * Copyright: 2021-2022 by Interlisp.org + * + * + **************************************************************************/ + +extends layout + +block variables + +block headeradds + + script. + const isGuest = #{isGuest}; + const isVerified = #{isVerified}; + const nodisclaimer = #{nodisclaimer}; + const isAutoLogin = #{isAutoLogin}; + const alNotecards = #{notecards}; + const alRooms = #{rooms}; + const alURL = "#{alURL}"; + const alStart = "#{start}"; + + link(rel="stylesheet", href="/stylesheets/main.css") + + script(src="/js/main.js") + + +block content + .row.text-center#logged-in-as + form#dummy002(method="POST" action="/user/logout" style="display:none") + != `Logged in as: ${login}.LOGOUT` + + .row.text-center#run-button + button.main-button(type="button" onclick='startSession("interlisp");')!= "Run " + (isNCO ? "Notecards" : "Medley") + + .row.text-center#run-options + table#ro-table + thead + tr + th#ro-col1 + th#ro-col2 + th#ro-col3 + tbody + //- Resume on click + tr#resume_row + td + td + label.run-option. +  Resume previous session + td + span.in-circle(onclick='helpOnClick("resume");') ? +
+ tr#initial_exec_row + //- Initial Exec + td + td + table + tr + td(rowspan="2"). + Initial Exec: + td(style="text-align:left;") + label. +  Interlisp + tr + td(style="text-align:left;") + label. +  Common Lisp + td + span.in-circle(onclick='helpOnClick("which-exec");') ? +
+ tr#run_notecards_row + //- Run Notecards + td + td + label.run-option. +  Run Notecards + td + span.in-circle(onclick='helpOnClick("run_notecards");') ? +
+ tr#run_rooms_row + //- Run Rooms + td + td + label.run-option. +  Run Rooms + td + span.in-circle(onclick='helpOnClick("run_rooms");') ? +
+ tr + //- Screen Width and Height + td + td#wh-cell + div + label Screen Width:  + input(type="number", id="screen-width", class="number-input", value=1024, min=100, max=9999) + div + label Screen Height:  + input(type="number", id="screen-height", class="number-input", value=808, min=100, max=9999) + #fill-window-label + label. +  Fill browser window + td +
+ + .row#dev-div(style="display:none;") + .text-center#dev-div-checkbox + label. +  Show advanced options + #dev-div-controls(style="display:none;") + #start_script_row + label.run-option.dev-div-run-option. + + + #custom_sysout_row + label.run-option.dev-div-run-option. +  Run custom sysout + span.in-circle(onclick='helpOnClick("custom");') ? + #custom_init_row + label.run-option.dev-div-run-option. +  Use custom site init + span.in-circle(onclick='helpOnClick("custom-init");') ? + #sftp-label + label.run-option.dev-div-run-option. +  Start SFTP Server + span.in-circle(onclick='helpOnClick("sftp");') ? + #dev-div-buttons + .text-center.dev-div-button + button(type="button" onclick='startSession("xterm");').main-button Start Terminal Session + .text-center.dev-div-button + button(type="button" onclick='reset();').main-button Reset Home Directory + + dialog.vdialog#reconnect-dialog + p You already have an Interlisp session running. + p Do you want to reconnect to this session or + p kill this session and start a new one? + br + .button-div + button(type="button" onclick='rdDone("reconnect");').main-button Reconnect + button(type="button" onclick='rdDone("kill");').main-button Kill + + dialog.vdialog#alert-dialog + p Alert + br + .single-button-div + button(type="button" onclick='alertOk();').main-button OK + + dialog.vdialog#verification-dialog1 + h2 Notice + p. + This account has not been verified. You are free to use online.interlisp.org to + explore the many wonders of Interlisp. + p. + However, any account that has not been verified within 7 days of its creation + may be deleted without notice. + p. + A verification email was sent to #{login} when the account was created. Please follow the + directions in this email to verify your account. + .single-button-div + button(type="button" onclick='verificationClose(1, false);').main-button OK + .single-button-div + button(type="button" onclick='verificationClose(1, true);').main-button Resend Verification Email + + dialog.vdialog#verification-dialog2 + h2 Notice + p. + As part of the re-registration process, we are asking you to verify your email address. + You are free to continue to use online.interlisp.org to + explore the many wonders of Interlisp. + p. + However, if your account email is not been verified within the next 7 days, it + may be deleted without notice. + p. + A verification email was just sent to #{login}. Please follow the + directions in this email to verify your account. + .single-button-div + button(type="button" onclick='verificationClose(2, false);').main-button OK + + script. + function disclaimerCheckboxCallback() { + fetch(`/user/nodisclaimer`).then(response => {console.log(response);}); + } + + include disclaimer.pug + include help_dialogs.pug From a4055bf29071288101478738bdf3b1794d5a6c61 Mon Sep 17 00:00:00 2001 From: Frank Halasz Date: Thu, 13 Nov 2025 01:28:17 +0000 Subject: [PATCH 059/166] Adjusting start-script typein element --- web-portal/client/views/help_dialogs.pug | 194 ----------------------- web-portal/client/views/main.pug | 5 +- 2 files changed, 3 insertions(+), 196 deletions(-) diff --git a/web-portal/client/views/help_dialogs.pug b/web-portal/client/views/help_dialogs.pug index a3af0a09..160d1840 100644 --- a/web-portal/client/views/help_dialogs.pug +++ b/web-portal/client/views/help_dialogs.pug @@ -135,197 +135,3 @@ dialog(id="help-dialog-start-script").help-dialog .single-button-div button(type="button" onclick='helpDialogClose("start-script");').main-button OK -//- - /*************************************************************************** - * - * main.pug: "main" page for online.interlisp.org web portal. - * This is where the user starts up interlisp, etc., - * - * 2021-11-22 Frank Halasz - * - * - * Copyright: 2021-2022 by Interlisp.org - * - * - **************************************************************************/ - -extends layout - -block variables - -block headeradds - - script. - const isGuest = #{isGuest}; - const isVerified = #{isVerified}; - const nodisclaimer = #{nodisclaimer}; - const isAutoLogin = #{isAutoLogin}; - const alNotecards = #{notecards}; - const alRooms = #{rooms}; - const alURL = "#{alURL}"; - const alStart = "#{start}"; - - link(rel="stylesheet", href="/stylesheets/main.css") - - script(src="/js/main.js") - - -block content - .row.text-center#logged-in-as - form#dummy002(method="POST" action="/user/logout" style="display:none") - != `Logged in as: ${login}.LOGOUT` - - .row.text-center#run-button - button.main-button(type="button" onclick='startSession("interlisp");')!= "Run " + (isNCO ? "Notecards" : "Medley") - - .row.text-center#run-options - table#ro-table - thead - tr - th#ro-col1 - th#ro-col2 - th#ro-col3 - tbody - //- Resume on click - tr#resume_row - td - td - label.run-option. -  Resume previous session - td - span.in-circle(onclick='helpOnClick("resume");') ? -
- tr#initial_exec_row - //- Initial Exec - td - td - table - tr - td(rowspan="2"). - Initial Exec: - td(style="text-align:left;") - label. -  Interlisp - tr - td(style="text-align:left;") - label. -  Common Lisp - td - span.in-circle(onclick='helpOnClick("which-exec");') ? -
- tr#run_notecards_row - //- Run Notecards - td - td - label.run-option. -  Run Notecards - td - span.in-circle(onclick='helpOnClick("run_notecards");') ? -
- tr#run_rooms_row - //- Run Rooms - td - td - label.run-option. -  Run Rooms - td - span.in-circle(onclick='helpOnClick("run_rooms");') ? -
- tr - //- Screen Width and Height - td - td#wh-cell - div - label Screen Width:  - input(type="number", id="screen-width", class="number-input", value=1024, min=100, max=9999) - div - label Screen Height:  - input(type="number", id="screen-height", class="number-input", value=808, min=100, max=9999) - #fill-window-label - label. -  Fill browser window - td -
- - .row#dev-div(style="display:none;") - .text-center#dev-div-checkbox - label. -  Show advanced options - #dev-div-controls(style="display:none;") - #start_script_row - label.run-option.dev-div-run-option. - - - #custom_sysout_row - label.run-option.dev-div-run-option. -  Run custom sysout - span.in-circle(onclick='helpOnClick("custom");') ? - #custom_init_row - label.run-option.dev-div-run-option. -  Use custom site init - span.in-circle(onclick='helpOnClick("custom-init");') ? - #sftp-label - label.run-option.dev-div-run-option. -  Start SFTP Server - span.in-circle(onclick='helpOnClick("sftp");') ? - #dev-div-buttons - .text-center.dev-div-button - button(type="button" onclick='startSession("xterm");').main-button Start Terminal Session - .text-center.dev-div-button - button(type="button" onclick='reset();').main-button Reset Home Directory - - dialog.vdialog#reconnect-dialog - p You already have an Interlisp session running. - p Do you want to reconnect to this session or - p kill this session and start a new one? - br - .button-div - button(type="button" onclick='rdDone("reconnect");').main-button Reconnect - button(type="button" onclick='rdDone("kill");').main-button Kill - - dialog.vdialog#alert-dialog - p Alert - br - .single-button-div - button(type="button" onclick='alertOk();').main-button OK - - dialog.vdialog#verification-dialog1 - h2 Notice - p. - This account has not been verified. You are free to use online.interlisp.org to - explore the many wonders of Interlisp. - p. - However, any account that has not been verified within 7 days of its creation - may be deleted without notice. - p. - A verification email was sent to #{login} when the account was created. Please follow the - directions in this email to verify your account. - .single-button-div - button(type="button" onclick='verificationClose(1, false);').main-button OK - .single-button-div - button(type="button" onclick='verificationClose(1, true);').main-button Resend Verification Email - - dialog.vdialog#verification-dialog2 - h2 Notice - p. - As part of the re-registration process, we are asking you to verify your email address. - You are free to continue to use online.interlisp.org to - explore the many wonders of Interlisp. - p. - However, if your account email is not been verified within the next 7 days, it - may be deleted without notice. - p. - A verification email was just sent to #{login}. Please follow the - directions in this email to verify your account. - .single-button-div - button(type="button" onclick='verificationClose(2, false);').main-button OK - - script. - function disclaimerCheckboxCallback() { - fetch(`/user/nodisclaimer`).then(response => {console.log(response);}); - } - - include disclaimer.pug - include help_dialogs.pug diff --git a/web-portal/client/views/main.pug b/web-portal/client/views/main.pug index 15e61737..f98ade24 100644 --- a/web-portal/client/views/main.pug +++ b/web-portal/client/views/main.pug @@ -117,9 +117,10 @@ block content #dev-div-controls(style="display:none;") #start_script_row label.run-option.dev-div-run-option. - + - span.in-circle(onclick='helpOnClick("start-script");') ? #custom_sysout_row label.run-option.dev-div-run-option.  Run custom sysout From d0cc9e7559ea3658a1cd5975c18669b4d3230475 Mon Sep 17 00:00:00 2001 From: Frank Halasz Date: Thu, 13 Nov 2025 01:42:03 +0000 Subject: [PATCH 060/166] Adjusting start-script typein element --- web-portal/client/views/main.pug | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/web-portal/client/views/main.pug b/web-portal/client/views/main.pug index f98ade24..5b5fb70e 100644 --- a/web-portal/client/views/main.pug +++ b/web-portal/client/views/main.pug @@ -117,9 +117,8 @@ block content #dev-div-controls(style="display:none;") #start_script_row label.run-option.dev-div-run-option. - #custom_sysout_row label.run-option.dev-div-run-option. From 73e4c8e3a1550fa97c343e64d613e303209d1979 Mon Sep 17 00:00:00 2001 From: Frank Halasz Date: Thu, 13 Nov 2025 02:03:34 +0000 Subject: [PATCH 061/166] Still adjusting start-script typein --- web-portal/client/views/main.pug | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/web-portal/client/views/main.pug b/web-portal/client/views/main.pug index 5b5fb70e..9a8ed7cf 100644 --- a/web-portal/client/views/main.pug +++ b/web-portal/client/views/main.pug @@ -116,10 +116,9 @@ block content  Show advanced options #dev-div-controls(style="display:none;") #start_script_row - label.run-option.dev-div-run-option. - - span.in-circle(onclick='helpOnClick("start-script");') ? - + div.run-option.dev-div-run-option. + p URL for start-script   ? + #custom_sysout_row label.run-option.dev-div-run-option.  Run custom sysout From dee8a0e21a7acfa468c7e4bc4d32206337bd5cae Mon Sep 17 00:00:00 2001 From: Frank Halasz Date: Thu, 13 Nov 2025 07:06:54 +0000 Subject: [PATCH 062/166] Still adjusting start-script typein --- web-portal/client/views/main.pug | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/web-portal/client/views/main.pug b/web-portal/client/views/main.pug index 9a8ed7cf..5e34e581 100644 --- a/web-portal/client/views/main.pug +++ b/web-portal/client/views/main.pug @@ -117,8 +117,11 @@ block content #dev-div-controls(style="display:none;") #start_script_row div.run-option.dev-div-run-option. - p URL for start-script   ? - + + URL for start-script + ? + + #custom_sysout_row label.run-option.dev-div-run-option.  Run custom sysout From 9f8c602ed94200b89d308b2403d4719ed1cc4d04 Mon Sep 17 00:00:00 2001 From: Frank Halasz Date: Thu, 13 Nov 2025 07:41:48 +0000 Subject: [PATCH 063/166] Still adjusting start-script typein --- web-portal/client/views/main.pug | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/web-portal/client/views/main.pug b/web-portal/client/views/main.pug index 5e34e581..ae7c75ff 100644 --- a/web-portal/client/views/main.pug +++ b/web-portal/client/views/main.pug @@ -118,10 +118,11 @@ block content #start_script_row div.run-option.dev-div-run-option. - URL for start-script - ? + URL for start-script + + ? - + #custom_sysout_row label.run-option.dev-div-run-option.  Run custom sysout From fa8d462378e30d6c5c92dea1ea7e59dae73c6338 Mon Sep 17 00:00:00 2001 From: Frank Halasz Date: Thu, 13 Nov 2025 08:05:32 +0000 Subject: [PATCH 064/166] Still adjusting start-script typein --- web-portal/client/views/main.pug | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/web-portal/client/views/main.pug b/web-portal/client/views/main.pug index ae7c75ff..16020892 100644 --- a/web-portal/client/views/main.pug +++ b/web-portal/client/views/main.pug @@ -117,7 +117,7 @@ block content #dev-div-controls(style="display:none;") #start_script_row div.run-option.dev-div-run-option. - + URL for start-script ? From 38194a62e11b989e845967e81de35ae155f46d17 Mon Sep 17 00:00:00 2001 From: Frank Halasz Date: Fri, 14 Nov 2025 02:19:40 +0000 Subject: [PATCH 065/166] Still adjusting start-script typein --- web-portal/client/views/main.pug | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/web-portal/client/views/main.pug b/web-portal/client/views/main.pug index 16020892..030c2d32 100644 --- a/web-portal/client/views/main.pug +++ b/web-portal/client/views/main.pug @@ -117,11 +117,18 @@ block content #dev-div-controls(style="display:none;") #start_script_row div.run-option.dev-div-run-option. - - URL for start-script - - ? - + table + thead + tr + th + th + tbody + + URL for start-script + + ? + + #custom_sysout_row label.run-option.dev-div-run-option. From a4ec07df1b87a3201feb33dec1451ae34f572ef0 Mon Sep 17 00:00:00 2001 From: Frank Halasz Date: Fri, 14 Nov 2025 02:32:14 +0000 Subject: [PATCH 066/166] Still adjusting start-script typein --- web-portal/client/views/main.pug | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/web-portal/client/views/main.pug b/web-portal/client/views/main.pug index 030c2d32..e21246c8 100644 --- a/web-portal/client/views/main.pug +++ b/web-portal/client/views/main.pug @@ -121,9 +121,9 @@ block content thead tr th - th + th tbody - + URL for start-script ? From 3971f5f48fd297438eae747c9a1acc38fe0d811e Mon Sep 17 00:00:00 2001 From: Frank Halasz Date: Fri, 14 Nov 2025 02:45:13 +0000 Subject: [PATCH 067/166] Still adjusting start-script typein --- web-portal/client/views/main.pug | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/web-portal/client/views/main.pug b/web-portal/client/views/main.pug index e21246c8..b2575063 100644 --- a/web-portal/client/views/main.pug +++ b/web-portal/client/views/main.pug @@ -116,7 +116,7 @@ block content  Show advanced options #dev-div-controls(style="display:none;") #start_script_row - div.run-option.dev-div-run-option. + div.run-option.dev-div-run-option table thead tr From f11a42a7b31fdafd35b9e2ca9f5e847e538a3dcf Mon Sep 17 00:00:00 2001 From: Frank Halasz Date: Fri, 14 Nov 2025 03:23:10 +0000 Subject: [PATCH 068/166] Still adjusting start-script typein --- web-portal/client/views/main.pug | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/web-portal/client/views/main.pug b/web-portal/client/views/main.pug index b2575063..98ed4f2e 100644 --- a/web-portal/client/views/main.pug +++ b/web-portal/client/views/main.pug @@ -124,8 +124,8 @@ block content th tbody - URL for start-script - + URL for start-script + ? From 3d5a2475310077f50461d31cd5999eab2790c34f Mon Sep 17 00:00:00 2001 From: Frank Halasz Date: Fri, 14 Nov 2025 03:45:30 +0000 Subject: [PATCH 069/166] Still adjusting start-script typein --- web-portal/client/views/main.pug | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/web-portal/client/views/main.pug b/web-portal/client/views/main.pug index 98ed4f2e..bdbe1719 100644 --- a/web-portal/client/views/main.pug +++ b/web-portal/client/views/main.pug @@ -117,19 +117,17 @@ block content #dev-div-controls(style="display:none;") #start_script_row div.run-option.dev-div-run-option - table + table(style="width:260px;") thead tr th th tbody - - URL for start-script - + tr(style="width:100%") + td(style="text-align:left;width:80%;") URL for start-script + td(style="text-align:right;width:20%;") ? - - - + input(type="url" id="start_script_url" name="start_script_url" class="url-input" style="width:100%;margin-bottom:12px;") #custom_sysout_row label.run-option.dev-div-run-option.  Run custom sysout From c3c2f9640f8b3d15682c6723d72597482574afc6 Mon Sep 17 00:00:00 2001 From: Frank Halasz Date: Fri, 14 Nov 2025 04:41:51 +0000 Subject: [PATCH 070/166] Storing start_script_url in local store so saved between invocations --- web-portal/client/js/main.js | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/web-portal/client/js/main.js b/web-portal/client/js/main.js index 4b50b5a6..a3b80272 100644 --- a/web-portal/client/js/main.js +++ b/web-portal/client/js/main.js @@ -99,7 +99,10 @@ window.addEventListener('load', (event) => { document.getElementById("interlisp_rb").checked = true; } fillWindowOnClick(); - document.getElementById("dev-options-checkbox").checked = (localStore.getItem("show_dev_options") == "true"); + if (alStart != "") document.getElementById("start_script_url").value = alStart; + else document.getElementById("start_script_url").value = localStore.getItem("start_script_url"); + if ((localStore.getItem("show_dev_options") == "true") || (document.getElementById("start_script_url").value != "")) + document.getElementById("dev-options-checkbox").checked = true; showDevOptionsOnClick(); if( ! (isAutoLogin || fromvnc)) { if(isVerified != true) { @@ -130,14 +133,11 @@ function startSession (interlispOrXterm) { const startScriptUrl = (function() { let ss = document.getElementById("start_script_url").value; - if (ss != "") { - if (ss.includes("%2F")) ss = decodeURIComponent(ss); - return encodeURIComponent(ss); - } - if (alStart != "") return encodeURIComponent(alStart); - return ""; + if (ss.includes("%2F")) ss = decodeURIComponent(ss); + return ss; })(); if(!isGuest) { + localStore.setItem("start_script_url", startScriptUrl); localStore.setItem("fill-window", fillWindow ? 'true' : 'false'); if(! fillWindow) { localStore.setItem("screen_width", screenWidth); @@ -181,7 +181,7 @@ function startSession (interlispOrXterm) { + `&sftp=${startSftp || "false"}` + `&exec=${medleyExec || "inter"}` + ( isAutoLogin ? "&autologin" : "") - + ( (startScriptUrl != "") ? `&start=${startScriptUrl}` : "" ) + + ( (startScriptUrl != "") ? `&start=${encodeURIComponent(startScriptUrl)}` : "" ) ; if(isRunning) { From d9e474447290484c3a952dd01b9cf34bdfd3c7bd Mon Sep 17 00:00:00 2001 From: Frank Halasz Date: Fri, 14 Nov 2025 07:12:07 +0000 Subject: [PATCH 071/166] Fixing error messages on login page --- web-portal/client/js/main.js | 2 +- web-portal/client/views/login.pug | 2 +- web-portal/server/js/user.js | 7 ++----- 3 files changed, 4 insertions(+), 7 deletions(-) diff --git a/web-portal/client/js/main.js b/web-portal/client/js/main.js index a3b80272..52c8c237 100644 --- a/web-portal/client/js/main.js +++ b/web-portal/client/js/main.js @@ -182,7 +182,7 @@ function startSession (interlispOrXterm) { + `&exec=${medleyExec || "inter"}` + ( isAutoLogin ? "&autologin" : "") + ( (startScriptUrl != "") ? `&start=${encodeURIComponent(startScriptUrl)}` : "" ) - ; + ; if(isRunning) { new Promise((resolve, reject) => { diff --git a/web-portal/client/views/login.pug b/web-portal/client/views/login.pug index 391762dc..5dc99c51 100644 --- a/web-portal/client/views/login.pug +++ b/web-portal/client/views/login.pug @@ -41,7 +41,7 @@ block headeradds if(info) { const errorMessage = document.getElementById("error-message"); - errorMessage.innerText = info; + errorMessage.innerText = decodeURIComponent(info); //errorMessage.style.display = "block"; } else if("#{verificationNotice}" == "true") { const dlg = document.getElementById("verification-dialog"); diff --git a/web-portal/server/js/user.js b/web-portal/server/js/user.js index b5902994..16836d5d 100644 --- a/web-portal/server/js/user.js +++ b/web-portal/server/js/user.js @@ -103,11 +103,8 @@ function passportAuthenticate(req, res, next) { if (!user) { console.dir(info); let redirectTo = "/user/login"; - if ((info !== undefined) && (info != "")) { - redirectTo = redirectTo + "?info="; - if ( (typeof info) == "string") redirectTo = redirectTo + encodeURIComponent(info); - else redirectTo = redirectTo + encodeURIComponent(util.inspect(info, {depth:0})); - } + if ((info !== undefined) && (info != "")) + redirectTo = redirectTo + "?info=" + encodeURIComponent(info); return res.redirect(redirectTo); } From 8627d45df56599b33f3ef40d1cd65afae1748dc1 Mon Sep 17 00:00:00 2001 From: Frank Halasz Date: Sun, 16 Nov 2025 15:46:36 -0800 Subject: [PATCH 072/166] docs/Demo_mode.md created from https://stackedit.io/ --- docs/Demo_mode.md | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 docs/Demo_mode.md diff --git a/docs/Demo_mode.md b/docs/Demo_mode.md new file mode 100644 index 00000000..46dff5f4 --- /dev/null +++ b/docs/Demo_mode.md @@ -0,0 +1,7 @@ + + + +> Written with [StackEdit](https://stackedit.io/). + \ No newline at end of file From 93ffbf7053cac648f5d2ed2a03d21cdc678cc625 Mon Sep 17 00:00:00 2001 From: Frank Halasz Date: Sun, 16 Nov 2025 15:48:10 -0800 Subject: [PATCH 073/166] docs/Demo_mode.md updated from https://stackedit.io/ --- docs/Demo_mode.md | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/docs/Demo_mode.md b/docs/Demo_mode.md index 46dff5f4..33c29fa5 100644 --- a/docs/Demo_mode.md +++ b/docs/Demo_mode.md @@ -1,7 +1,9 @@ +# Online.Interlisp.Org: Demo mode (aka Museum Mode) +## Overview - +Accessing online.interlisp.org (OIO) using dem > Written with [StackEdit](https://stackedit.io/). \ No newline at end of file From 77bc9722e9f425462431e58bde2138889c0bcb4b Mon Sep 17 00:00:00 2001 From: Frank Halasz Date: Sun, 16 Nov 2025 15:49:41 -0800 Subject: [PATCH 074/166] docs/Demo_mode.md updated from https://stackedit.io/ --- docs/Demo_mode.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/Demo_mode.md b/docs/Demo_mode.md index 33c29fa5..bed12c31 100644 --- a/docs/Demo_mode.md +++ b/docs/Demo_mode.md @@ -2,8 +2,8 @@ # Online.Interlisp.Org: Demo mode (aka Museum Mode) ## Overview -Accessing online.interlisp.org (OIO) using dem +When accessing online.interlisp.org (OIO) using Demo Mode, Online Medley will start up and at the end oD > Written with [StackEdit](https://stackedit.io/). \ No newline at end of file From e3d033f78b275fd67277932eb1f748a76cd12d85 Mon Sep 17 00:00:00 2001 From: Frank Halasz Date: Sun, 16 Nov 2025 15:51:12 -0800 Subject: [PATCH 075/166] docs/Demo_mode.md updated from https://stackedit.io/ --- docs/Demo_mode.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/Demo_mode.md b/docs/Demo_mode.md index bed12c31..6f5d3410 100644 --- a/docs/Demo_mode.md +++ b/docs/Demo_mode.md @@ -2,8 +2,8 @@ # Online.Interlisp.Org: Demo mode (aka Museum Mode) ## Overview -When accessing online.interlisp.org (OIO) using Demo Mode, Online Medley will start up and at the end oD +When accessing online.interlisp.org (OIO) using Demo Mode, Online Medley will start up and at the end of processing the ONLINE-INIT file will automatically LOAD an Interlisp > Written with [StackEdit](https://stackedit.io/). \ No newline at end of file From 3141b013a877885fb2636dc1196aaa779d5a5352 Mon Sep 17 00:00:00 2001 From: Frank Halasz Date: Sun, 16 Nov 2025 15:52:44 -0800 Subject: [PATCH 076/166] docs/Demo_mode.md updated from https://stackedit.io/ --- docs/Demo_mode.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/Demo_mode.md b/docs/Demo_mode.md index 6f5d3410..81a13c2a 100644 --- a/docs/Demo_mode.md +++ b/docs/Demo_mode.md @@ -2,8 +2,8 @@ # Online.Interlisp.Org: Demo mode (aka Museum Mode) ## Overview -When accessing online.interlisp.org (OIO) using Demo Mode, Online Medley will start up and at the end of processing the ONLINE-INIT file will automatically LOAD an Interlisp +When accessing online.interlisp.org (OIO) using Demo Mode, Online Medley will start up and at the end of processing the ONLINE-INIT file will automatically LOAD an Interlisp file (source or compiled) that > Written with [StackEdit](https://stackedit.io/). \ No newline at end of file From 48a57a762e88203434f6c638b5325d54967da373 Mon Sep 17 00:00:00 2001 From: Frank Halasz Date: Sun, 16 Nov 2025 15:54:15 -0800 Subject: [PATCH 077/166] docs/Demo_mode.md updated from https://stackedit.io/ --- docs/Demo_mode.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/Demo_mode.md b/docs/Demo_mode.md index 81a13c2a..b5c11f60 100644 --- a/docs/Demo_mode.md +++ b/docs/Demo_mode.md @@ -2,8 +2,8 @@ # Online.Interlisp.Org: Demo mode (aka Museum Mode) ## Overview -When accessing online.interlisp.org (OIO) using Demo Mode, Online Medley will start up and at the end of processing the ONLINE-INIT file will automatically LOAD an Interlisp file (source or compiled) that +When accessing online.interlisp.org (OIO) using Demo Mode, Online Medley will start up and at the end of processing the ONLINE-INIT file will automatically LOAD an lisp file (source or compiled) that was specified in the URL through which OIO was accessed. This Interlisp file > Written with [StackEdit](https://stackedit.io/). \ No newline at end of file From ff027c67e260e0fce2157898842e02f28203d48a Mon Sep 17 00:00:00 2001 From: Frank Halasz Date: Sun, 16 Nov 2025 15:55:46 -0800 Subject: [PATCH 078/166] docs/Demo_mode.md updated from https://stackedit.io/ --- docs/Demo_mode.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/Demo_mode.md b/docs/Demo_mode.md index b5c11f60..97a24aa4 100644 --- a/docs/Demo_mode.md +++ b/docs/Demo_mode.md @@ -2,8 +2,8 @@ # Online.Interlisp.Org: Demo mode (aka Museum Mode) ## Overview -When accessing online.interlisp.org (OIO) using Demo Mode, Online Medley will start up and at the end of processing the ONLINE-INIT file will automatically LOAD an lisp file (source or compiled) that was specified in the URL through which OIO was accessed. This Interlisp file +When accessing online.interlisp.org (OIO) using Demo Mode, Online Medley will start up and at the end of processing the ONLINE-INIT file will automatically LOAD an lisp file (source or compiled, Interlisp or Medley CommonLisp) that was specified in the URL through which OIO was accessed. This lisp file is referred to as a *start-script* and it is intended > Written with [StackEdit](https://stackedit.io/). \ No newline at end of file From f8e05cee735933e396185f61f5f8dd5b71246d64 Mon Sep 17 00:00:00 2001 From: Frank Halasz Date: Sun, 16 Nov 2025 15:57:18 -0800 Subject: [PATCH 079/166] docs/Demo_mode.md updated from https://stackedit.io/ --- docs/Demo_mode.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/Demo_mode.md b/docs/Demo_mode.md index 97a24aa4..b140426a 100644 --- a/docs/Demo_mode.md +++ b/docs/Demo_mode.md @@ -2,8 +2,8 @@ # Online.Interlisp.Org: Demo mode (aka Museum Mode) ## Overview -When accessing online.interlisp.org (OIO) using Demo Mode, Online Medley will start up and at the end of processing the ONLINE-INIT file will automatically LOAD an lisp file (source or compiled, Interlisp or Medley CommonLisp) that was specified in the URL through which OIO was accessed. This lisp file is referred to as a *start-script* and it is intended +When accessing online.interlisp.org (OIO) using Demo Mode, Online Medley will start up and at the end of processing the ONLINE-INIT file will automatically LOAD an lisp file (source or compiled, Interlisp or Medley CommonLisp) that was specified in the URL through which OIO was accessed. This lisp file is referred to as a *start-script* and the intention is that the start script will run a demo by defining and/or LOADing additional lisp code > Written with [StackEdit](https://stackedit.io/). \ No newline at end of file From 47f32903dfe8a0c1cb78d804edb59360f7ac1362 Mon Sep 17 00:00:00 2001 From: Frank Halasz Date: Sun, 16 Nov 2025 15:58:49 -0800 Subject: [PATCH 080/166] docs/Demo_mode.md updated from https://stackedit.io/ --- docs/Demo_mode.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/Demo_mode.md b/docs/Demo_mode.md index b140426a..4031b260 100644 --- a/docs/Demo_mode.md +++ b/docs/Demo_mode.md @@ -2,8 +2,8 @@ # Online.Interlisp.Org: Demo mode (aka Museum Mode) ## Overview -When accessing online.interlisp.org (OIO) using Demo Mode, Online Medley will start up and at the end of processing the ONLINE-INIT file will automatically LOAD an lisp file (source or compiled, Interlisp or Medley CommonLisp) that was specified in the URL through which OIO was accessed. This lisp file is referred to as a *start-script* and the intention is that the start script will run a demo by defining and/or LOADing additional lisp code +When accessing online.interlisp.org (OIO) using Demo Mode, Online Medley will start up and at the end of processing the ONLINE-INIT file will automatically LOAD an lisp file (source or compiled, Interlisp or Medley CommonLisp) that was specified in the URL through which OIO was accessed. This lisp file is referred to as a *start-script* and the intention is that the start script will run a demo by defining and/or LOADing additional lisp code and then starting up that demo (e.g., via a P file package command in the start-script file). > Written with [StackEdit](https://stackedit.io/). \ No newline at end of file From 6721ed5314fcb95ad60782fd10001e3cc3c49a70 Mon Sep 17 00:00:00 2001 From: Frank Halasz Date: Sun, 16 Nov 2025 16:00:20 -0800 Subject: [PATCH 081/166] docs/Demo_mode.md updated from https://stackedit.io/ --- docs/Demo_mode.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/Demo_mode.md b/docs/Demo_mode.md index 4031b260..cd5eecbb 100644 --- a/docs/Demo_mode.md +++ b/docs/Demo_mode.md @@ -2,8 +2,8 @@ # Online.Interlisp.Org: Demo mode (aka Museum Mode) ## Overview -When accessing online.interlisp.org (OIO) using Demo Mode, Online Medley will start up and at the end of processing the ONLINE-INIT file will automatically LOAD an lisp file (source or compiled, Interlisp or Medley CommonLisp) that was specified in the URL through which OIO was accessed. This lisp file is referred to as a *start-script* and the intention is that the start script will run a demo by defining and/or LOADing additional lisp code and then starting up that demo (e.g., via a P file package command in the start-script file). +When accessing online.interlisp.org (OIO) using Demo Mode, Online Medley will start up and at the end of processing the ONLINE-INIT file will automatically LOAD an lisp file (source or compiled, Interlisp or Medley CommonLisp) that was specified in the URL through which OIO was accessed. This lisp file is referred to as a *start-script* and the intention is that when is is LOADed it will run a demo by defining and/or LOADing additional lisp code and then starting up that demo (e.g., via a P file package command in the start-script file). > Written with [StackEdit](https://stackedit.io/). \ No newline at end of file From 568c7c0cd4d766e0fced7006ee8eafae6c58f5f6 Mon Sep 17 00:00:00 2001 From: Frank Halasz Date: Sun, 16 Nov 2025 16:01:52 -0800 Subject: [PATCH 082/166] docs/Demo_mode.md updated from https://stackedit.io/ --- docs/Demo_mode.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/Demo_mode.md b/docs/Demo_mode.md index cd5eecbb..5796efea 100644 --- a/docs/Demo_mode.md +++ b/docs/Demo_mode.md @@ -2,8 +2,8 @@ # Online.Interlisp.Org: Demo mode (aka Museum Mode) ## Overview -When accessing online.interlisp.org (OIO) using Demo Mode, Online Medley will start up and at the end of processing the ONLINE-INIT file will automatically LOAD an lisp file (source or compiled, Interlisp or Medley CommonLisp) that was specified in the URL through which OIO was accessed. This lisp file is referred to as a *start-script* and the intention is that when is is LOADed it will run a demo by defining and/or LOADing additional lisp code and then starting up that demo (e.g., via a P file package command in the start-script file). +When accessing online.interlisp.org (OIO) using Demo Mode, Online Medley will start up and at the end of processing the ONLINE-INIT file will automatically LOAD an lisp file (source or compiled, Interlisp or Medley CommonLisp) that was specified in the URL through which OIO was accessed. This lisp file is referred to as a *start-script* and the intention is that when is is LOADed it will run a demo or some sort by defining and/or LOADing additional lisp code and then starting up that demo, e.g., via a P file package command. > Written with [StackEdit](https://stackedit.io/). \ No newline at end of file From 4371d1b797efb718f557dfba595a9e5ded909d83 Mon Sep 17 00:00:00 2001 From: Frank Halasz Date: Sun, 16 Nov 2025 16:03:23 -0800 Subject: [PATCH 083/166] docs/Demo_mode.md updated from https://stackedit.io/ --- docs/Demo_mode.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/Demo_mode.md b/docs/Demo_mode.md index 5796efea..4241901e 100644 --- a/docs/Demo_mode.md +++ b/docs/Demo_mode.md @@ -2,8 +2,8 @@ # Online.Interlisp.Org: Demo mode (aka Museum Mode) ## Overview -When accessing online.interlisp.org (OIO) using Demo Mode, Online Medley will start up and at the end of processing the ONLINE-INIT file will automatically LOAD an lisp file (source or compiled, Interlisp or Medley CommonLisp) that was specified in the URL through which OIO was accessed. This lisp file is referred to as a *start-script* and the intention is that when is is LOADed it will run a demo or some sort by defining and/or LOADing additional lisp code and then starting up that demo, e.g., via a P file package command. +When accessing online.interlisp.org (OIO) using Demo Mode, Online Medley will start up and at the end of processing the ONLINE-INIT file will automatically LOAD an lisp file (source or compiled, Interlisp or Medley CommonLisp) that was specified in the URL through which OIO was accessed. This lisp file is referred to as a *start-script* and the intention is that when is is LOADed it will run a demo or some sort by defining and/or LOADing additional lisp code and then starting up that demo, e.g., via a P file package command. Before the Online Medley run is started, the start-script file is downdownloaded on the Web > Written with [StackEdit](https://stackedit.io/). \ No newline at end of file From 795ed2d9333a080816879a17ccda12c38b9e5495 Mon Sep 17 00:00:00 2001 From: Frank Halasz Date: Sun, 16 Nov 2025 16:04:55 -0800 Subject: [PATCH 084/166] docs/Demo_mode.md updated from https://stackedit.io/ --- docs/Demo_mode.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/Demo_mode.md b/docs/Demo_mode.md index 4241901e..41fdaa9d 100644 --- a/docs/Demo_mode.md +++ b/docs/Demo_mode.md @@ -2,8 +2,8 @@ # Online.Interlisp.Org: Demo mode (aka Museum Mode) ## Overview -When accessing online.interlisp.org (OIO) using Demo Mode, Online Medley will start up and at the end of processing the ONLINE-INIT file will automatically LOAD an lisp file (source or compiled, Interlisp or Medley CommonLisp) that was specified in the URL through which OIO was accessed. This lisp file is referred to as a *start-script* and the intention is that when is is LOADed it will run a demo or some sort by defining and/or LOADing additional lisp code and then starting up that demo, e.g., via a P file package command. Before the Online Medley run is started, the start-script file is downdownloaded on the Web +When accessing online.interlisp.org (OIO) using Demo Mode, Online Medley will start up and at the end of processing the ONLINE-INIT file will automatically LOAD an lisp file (source or compiled, Interlisp or Medley CommonLisp) that was specified in the URL through which OIO was accessed. This lisp file is referred to as a *start-script* and the intention is that when is is LOADed it will run a demo or some sort by defining and/or LOADing additional lisp code and then starting up that demo, e.g., via a P file package command. Before the Online Medley run is started, the start-script file is downloaded using ```wget```into a known file inMedley file systemdownloaded on the Web > Written with [StackEdit](https://stackedit.io/). \ No newline at end of file From bd3e86d0b7b2873827cdc551c71f8fe0b7c32056 Mon Sep 17 00:00:00 2001 From: Frank Halasz Date: Sun, 16 Nov 2025 16:06:27 -0800 Subject: [PATCH 085/166] docs/Demo_mode.md updated from https://stackedit.io/ --- docs/Demo_mode.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/Demo_mode.md b/docs/Demo_mode.md index 41fdaa9d..4f8539bc 100644 --- a/docs/Demo_mode.md +++ b/docs/Demo_mode.md @@ -2,8 +2,8 @@ # Online.Interlisp.Org: Demo mode (aka Museum Mode) ## Overview -When accessing online.interlisp.org (OIO) using Demo Mode, Online Medley will start up and at the end of processing the ONLINE-INIT file will automatically LOAD an lisp file (source or compiled, Interlisp or Medley CommonLisp) that was specified in the URL through which OIO was accessed. This lisp file is referred to as a *start-script* and the intention is that when is is LOADed it will run a demo or some sort by defining and/or LOADing additional lisp code and then starting up that demo, e.g., via a P file package command. Before the Online Medley run is started, the start-script file is downloaded using ```wget```into a known file inMedley file systemdownloaded on the Web +When accessing online.interlisp.org (OIO) using Demo Mode, Online Medley will start up and at the end of processing the ONLINE-INIT file will automatically LOAD an lisp file (source or compiled, Interlisp or Medley CommonLisp) that was specified in the URL through which OIO was accessed. This lisp file is referred to as a *start-script* and the intention is that when is is LOADed it will run a demo or some sort by defining and/or LOADing additional lisp code and then starting up that demo, e.g., via a P file package command. Before the Online Medley run is started, the start-script file is downloaded using ```wget```into a known file in the Medley file system from where it is LOADed by ONLINE-INIT. > Written with [StackEdit](https://stackedit.io/). \ No newline at end of file From 871d12b5d3ab106ce7438c87fe1a1e044f8bba1b Mon Sep 17 00:00:00 2001 From: Frank Halasz Date: Sun, 16 Nov 2025 16:07:58 -0800 Subject: [PATCH 086/166] docs/Demo_mode.md updated from https://stackedit.io/ --- docs/Demo_mode.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/Demo_mode.md b/docs/Demo_mode.md index 4f8539bc..fcc789ab 100644 --- a/docs/Demo_mode.md +++ b/docs/Demo_mode.md @@ -2,8 +2,8 @@ # Online.Interlisp.Org: Demo mode (aka Museum Mode) ## Overview -When accessing online.interlisp.org (OIO) using Demo Mode, Online Medley will start up and at the end of processing the ONLINE-INIT file will automatically LOAD an lisp file (source or compiled, Interlisp or Medley CommonLisp) that was specified in the URL through which OIO was accessed. This lisp file is referred to as a *start-script* and the intention is that when is is LOADed it will run a demo or some sort by defining and/or LOADing additional lisp code and then starting up that demo, e.g., via a P file package command. Before the Online Medley run is started, the start-script file is downloaded using ```wget```into a known file in the Medley file system from where it is LOADed by ONLINE-INIT. +When accessing online.interlisp.org (OIO) using Demo Mode, Online Medley will start up and at the end of processing the ONLINE-INIT file will automatically LOAD a lisp file (source or compiled, Interlisp or Medley CommonLisp) that was specified in the URL through which OIO was accessed. This lisp file is referred to as a *start-script* and the intention is that when it is LOADed it will run a demo by defining and/or LOADing additional lisp code and then starting up that demo, e.g., via a P file package command. Before the Online Medley run is started, the start-script file is downloaded using ```wget```into a known file in the Medley file system from where it is LOADed by ONLINE-INIT. > Written with [StackEdit](https://stackedit.io/). \ No newline at end of file From 85b149738882d0ac97f736758d2fdb2ae0f8672a Mon Sep 17 00:00:00 2001 From: Frank Halasz Date: Sun, 16 Nov 2025 16:09:29 -0800 Subject: [PATCH 087/166] docs/Demo_mode.md updated from https://stackedit.io/ --- docs/Demo_mode.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/docs/Demo_mode.md b/docs/Demo_mode.md index fcc789ab..a1d412d2 100644 --- a/docs/Demo_mode.md +++ b/docs/Demo_mode.md @@ -3,7 +3,9 @@ ## Overview When accessing online.interlisp.org (OIO) using Demo Mode, Online Medley will start up and at the end of processing the ONLINE-INIT file will automatically LOAD a lisp file (source or compiled, Interlisp or Medley CommonLisp) that was specified in the URL through which OIO was accessed. This lisp file is referred to as a *start-script* and the intention is that when it is LOADed it will run a demo by defining and/or LOADing additional lisp code and then starting up that demo, e.g., via a P file package command. Before the Online Medley run is started, the start-script file is downloaded using ```wget```into a known file in the Medley file system from where it is LOADed by ONLINE-INIT. + +An addition aspect of Demo Mode is that login processing can be > Written with [StackEdit](https://stackedit.io/). \ No newline at end of file From 169157d71664d17711b6f91bf84b22ea679bcc65 Mon Sep 17 00:00:00 2001 From: Frank Halasz Date: Sun, 16 Nov 2025 16:11:01 -0800 Subject: [PATCH 088/166] docs/Demo_mode.md updated from https://stackedit.io/ --- docs/Demo_mode.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/Demo_mode.md b/docs/Demo_mode.md index a1d412d2..602162cc 100644 --- a/docs/Demo_mode.md +++ b/docs/Demo_mode.md @@ -4,8 +4,8 @@ When accessing online.interlisp.org (OIO) using Demo Mode, Online Medley will start up and at the end of processing the ONLINE-INIT file will automatically LOAD a lisp file (source or compiled, Interlisp or Medley CommonLisp) that was specified in the URL through which OIO was accessed. This lisp file is referred to as a *start-script* and the intention is that when it is LOADed it will run a demo by defining and/or LOADing additional lisp code and then starting up that demo, e.g., via a P file package command. Before the Online Medley run is started, the start-script file is downloaded using ```wget```into a known file in the Medley file system from where it is LOADed by ONLINE-INIT. -An addition aspect of Demo Mode is that login processing can be +An addition aspect of Demo Mode is that blogin processing can be optionally skipped and the user automatically logged in as guest with no user interaction required. > Written with [StackEdit](https://stackedit.io/). \ No newline at end of file From 1c801aed340d4d6256623fbf073ee891913b26a1 Mon Sep 17 00:00:00 2001 From: Frank Halasz Date: Sun, 16 Nov 2025 16:12:32 -0800 Subject: [PATCH 089/166] docs/Demo_mode.md updated from https://stackedit.io/ --- docs/Demo_mode.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/Demo_mode.md b/docs/Demo_mode.md index 602162cc..dc665930 100644 --- a/docs/Demo_mode.md +++ b/docs/Demo_mode.md @@ -4,8 +4,8 @@ When accessing online.interlisp.org (OIO) using Demo Mode, Online Medley will start up and at the end of processing the ONLINE-INIT file will automatically LOAD a lisp file (source or compiled, Interlisp or Medley CommonLisp) that was specified in the URL through which OIO was accessed. This lisp file is referred to as a *start-script* and the intention is that when it is LOADed it will run a demo by defining and/or LOADing additional lisp code and then starting up that demo, e.g., via a P file package command. Before the Online Medley run is started, the start-script file is downloaded using ```wget```into a known file in the Medley file system from where it is LOADed by ONLINE-INIT. -An addition aspect of Demo Mode is that blogin processing can be optionally skipped and the user automatically logged in as guest with no user interaction required. +An addition aspect of Demo Mode is that based on flags in the URL login processing can be skipped, the user automatically logged in as guest with no user interaction required. > Written with [StackEdit](https://stackedit.io/). \ No newline at end of file From aff0e04830cfb54d21ea17a10814fa2650faf486 Mon Sep 17 00:00:00 2001 From: Frank Halasz Date: Sun, 16 Nov 2025 16:14:03 -0800 Subject: [PATCH 090/166] docs/Demo_mode.md updated from https://stackedit.io/ --- docs/Demo_mode.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/Demo_mode.md b/docs/Demo_mode.md index dc665930..6f3e221d 100644 --- a/docs/Demo_mode.md +++ b/docs/Demo_mode.md @@ -4,8 +4,8 @@ When accessing online.interlisp.org (OIO) using Demo Mode, Online Medley will start up and at the end of processing the ONLINE-INIT file will automatically LOAD a lisp file (source or compiled, Interlisp or Medley CommonLisp) that was specified in the URL through which OIO was accessed. This lisp file is referred to as a *start-script* and the intention is that when it is LOADed it will run a demo by defining and/or LOADing additional lisp code and then starting up that demo, e.g., via a P file package command. Before the Online Medley run is started, the start-script file is downloaded using ```wget```into a known file in the Medley file system from where it is LOADed by ONLINE-INIT. -An addition aspect of Demo Mode is that based on flags in the URL login processing can be skipped, the user automatically logged in as guest with no user interaction required. +An addition aspect of Demo Mode is that based on flags in the URL login processing can be skipped, the user automatically logged in as guest, and the Online Medley session started with no user interaction required. Alternatively, the login process can remain > Written with [StackEdit](https://stackedit.io/). \ No newline at end of file From f9a0fc8fa3fa2a518c0446a8270b8f483b99d604 Mon Sep 17 00:00:00 2001 From: Frank Halasz Date: Sun, 16 Nov 2025 16:15:34 -0800 Subject: [PATCH 091/166] docs/Demo_mode.md updated from https://stackedit.io/ --- docs/Demo_mode.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/Demo_mode.md b/docs/Demo_mode.md index 6f3e221d..90fe587f 100644 --- a/docs/Demo_mode.md +++ b/docs/Demo_mode.md @@ -4,8 +4,8 @@ When accessing online.interlisp.org (OIO) using Demo Mode, Online Medley will start up and at the end of processing the ONLINE-INIT file will automatically LOAD a lisp file (source or compiled, Interlisp or Medley CommonLisp) that was specified in the URL through which OIO was accessed. This lisp file is referred to as a *start-script* and the intention is that when it is LOADed it will run a demo by defining and/or LOADing additional lisp code and then starting up that demo, e.g., via a P file package command. Before the Online Medley run is started, the start-script file is downloaded using ```wget```into a known file in the Medley file system from where it is LOADed by ONLINE-INIT. -An addition aspect of Demo Mode is that based on flags in the URL login processing can be skipped, the user automatically logged in as guest, and the Online Medley session started with no user interaction required. Alternatively, the login process can remain +An addition aspect of Demo Mode is that based on flags in the URL login processing can be skipped, the user automatically logged in as guest, and the Online Medley session started with no user interaction required. Alternatively, the login process can remain but the standard "Run Medley" page will be skipped and the user will go directly from login to the running Medley > Written with [StackEdit](https://stackedit.io/). \ No newline at end of file From 3eacb700993e06fa9defd6ff4065af3e5f9715f4 Mon Sep 17 00:00:00 2001 From: Frank Halasz Date: Sun, 16 Nov 2025 16:17:06 -0800 Subject: [PATCH 092/166] docs/Demo_mode.md updated from https://stackedit.io/ --- docs/Demo_mode.md | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/docs/Demo_mode.md b/docs/Demo_mode.md index 90fe587f..0a4aabdc 100644 --- a/docs/Demo_mode.md +++ b/docs/Demo_mode.md @@ -4,8 +4,10 @@ When accessing online.interlisp.org (OIO) using Demo Mode, Online Medley will start up and at the end of processing the ONLINE-INIT file will automatically LOAD a lisp file (source or compiled, Interlisp or Medley CommonLisp) that was specified in the URL through which OIO was accessed. This lisp file is referred to as a *start-script* and the intention is that when it is LOADed it will run a demo by defining and/or LOADing additional lisp code and then starting up that demo, e.g., via a P file package command. Before the Online Medley run is started, the start-script file is downloaded using ```wget```into a known file in the Medley file system from where it is LOADed by ONLINE-INIT. -An addition aspect of Demo Mode is that based on flags in the URL login processing can be skipped, the user automatically logged in as guest, and the Online Medley session started with no user interaction required. Alternatively, the login process can remain but the standard "Run Medley" page will be skipped and the user will go directly from login to the running Medley +An addition aspect of Demo Mode is that based on flags in the URL login processing can be skipped, the user automatically logged in as guest, and the Online Medley session started with no user interaction required. Alternatively, the login process can remain but the standard "Run Medley" page will be skipped and the user will go directly from login to the running Medley without having to set all the run parameters in the Run Medley page. Automatic login is suffic + + > Written with [StackEdit](https://stackedit.io/). \ No newline at end of file From 4b71c88aec4352a030c2cf3237af3dcd8aaddb17 Mon Sep 17 00:00:00 2001 From: Frank Halasz Date: Sun, 16 Nov 2025 16:18:37 -0800 Subject: [PATCH 093/166] docs/Demo_mode.md updated from https://stackedit.io/ --- docs/Demo_mode.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/Demo_mode.md b/docs/Demo_mode.md index 0a4aabdc..3d9efd76 100644 --- a/docs/Demo_mode.md +++ b/docs/Demo_mode.md @@ -4,10 +4,10 @@ When accessing online.interlisp.org (OIO) using Demo Mode, Online Medley will start up and at the end of processing the ONLINE-INIT file will automatically LOAD a lisp file (source or compiled, Interlisp or Medley CommonLisp) that was specified in the URL through which OIO was accessed. This lisp file is referred to as a *start-script* and the intention is that when it is LOADed it will run a demo by defining and/or LOADing additional lisp code and then starting up that demo, e.g., via a P file package command. Before the Online Medley run is started, the start-script file is downloaded using ```wget```into a known file in the Medley file system from where it is LOADed by ONLINE-INIT. -An addition aspect of Demo Mode is that based on flags in the URL login processing can be skipped, the user automatically logged in as guest, and the Online Medley session started with no user interaction required. Alternatively, the login process can remain but the standard "Run Medley" page will be skipped and the user will go directly from login to the running Medley without having to set all the run parameters in the Run Medley page. Automatic login is suffic +An addition aspect of Demo Mode is that based on flags in the URL login processing can be skipped, the user automatically logged in as guest, and the Online Medley session started with no user interaction required. Alternatively, the login process can remain but the standard "Run Medley" page will be skipped and the user will go directly from login to the running Medley without having to set all the run parameters in the Run Medley page. Automatic login is sufficient for most demos. But requiring login allows demos to files and context between runs of Online Medley, > Written with [StackEdit](https://stackedit.io/). \ No newline at end of file From ebfa996f5021f179328be6d09e038ee866c8df56 Mon Sep 17 00:00:00 2001 From: Frank Halasz Date: Sun, 16 Nov 2025 16:20:08 -0800 Subject: [PATCH 094/166] docs/Demo_mode.md updated from https://stackedit.io/ --- docs/Demo_mode.md | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/docs/Demo_mode.md b/docs/Demo_mode.md index 3d9efd76..54aad152 100644 --- a/docs/Demo_mode.md +++ b/docs/Demo_mode.md @@ -4,10 +4,12 @@ When accessing online.interlisp.org (OIO) using Demo Mode, Online Medley will start up and at the end of processing the ONLINE-INIT file will automatically LOAD a lisp file (source or compiled, Interlisp or Medley CommonLisp) that was specified in the URL through which OIO was accessed. This lisp file is referred to as a *start-script* and the intention is that when it is LOADed it will run a demo by defining and/or LOADing additional lisp code and then starting up that demo, e.g., via a P file package command. Before the Online Medley run is started, the start-script file is downloaded using ```wget```into a known file in the Medley file system from where it is LOADed by ONLINE-INIT. -An addition aspect of Demo Mode is that based on flags in the URL login processing can be skipped, the user automatically logged in as guest, and the Online Medley session started with no user interaction required. Alternatively, the login process can remain but the standard "Run Medley" page will be skipped and the user will go directly from login to the running Medley without having to set all the run parameters in the Run Medley page. Automatic login is sufficient for most demos. But requiring login allows demos to files and context between runs of Online Medley, +An addition aspect of Demo Mode is that based on flags in the URL login processing can be skipped, the user automatically logged in as guest, and the Online Medley session started with no user interaction required. Alternatively, the login process can remain but the standard "Run Medley" page will be skipped and the user will go directly from login to the running Medley without having to set all the run parameters in the Run Medley page. Automatic guest login is sufficient for most demos. But requiring login allows demos to save files and context between runs of Online Medley, which is not possible with guest login. + + > Written with [StackEdit](https://stackedit.io/). \ No newline at end of file From 1a6c8cda994510132955e19ce76cd1373fbced04 Mon Sep 17 00:00:00 2001 From: Frank Halasz Date: Sun, 16 Nov 2025 16:21:40 -0800 Subject: [PATCH 095/166] docs/Demo_mode.md updated from https://stackedit.io/ --- docs/Demo_mode.md | 23 ++++++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) diff --git a/docs/Demo_mode.md b/docs/Demo_mode.md index 54aad152..50037319 100644 --- a/docs/Demo_mode.md +++ b/docs/Demo_mode.md @@ -6,10 +6,31 @@ When accessing online.interlisp.org (OIO) using Demo Mode, Online Medley will s An addition aspect of Demo Mode is that based on flags in the URL login processing can be skipped, the user automatically logged in as guest, and the Online Medley session started with no user interaction required. Alternatively, the login process can remain but the standard "Run Medley" page will be skipped and the user will go directly from login to the running Medley without having to set all the run parameters in the Run Medley page. Automatic guest login is sufficient for most demos. But requiring login allows demos to save files and context between runs of Online Medley, which is not possible with guest login. +##Demo mode URLs +To access Demo mode, use the following URLs: + + + + + + + + + + + + + + + + + + + > Written with [StackEdit](https://stackedit.io/). \ No newline at end of file From f5458c7c2bd4d2a22839ca207a315f86b9f3157a Mon Sep 17 00:00:00 2001 From: Frank Halasz Date: Sun, 16 Nov 2025 16:23:11 -0800 Subject: [PATCH 096/166] docs/Demo_mode.md updated from https://stackedit.io/ --- docs/Demo_mode.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/docs/Demo_mode.md b/docs/Demo_mode.md index 50037319..c613d4f9 100644 --- a/docs/Demo_mode.md +++ b/docs/Demo_mode.md @@ -9,6 +9,7 @@ An addition aspect of Demo Mode is that based on flags in the URL login processi ##Demo mode URLs To access Demo mode, use the following URLs: +```https://online.interlisp.og/demo?start=\``` @@ -32,5 +33,5 @@ To access Demo mode, use the following URLs: > Written with [StackEdit](https://stackedit.io/). \ No newline at end of file From eebc7686c9375839cb3fdb2ba07c7487659ade63 Mon Sep 17 00:00:00 2001 From: Frank Halasz Date: Sun, 16 Nov 2025 16:24:42 -0800 Subject: [PATCH 097/166] docs/Demo_mode.md updated from https://stackedit.io/ --- docs/Demo_mode.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/docs/Demo_mode.md b/docs/Demo_mode.md index c613d4f9..8cd9136f 100644 --- a/docs/Demo_mode.md +++ b/docs/Demo_mode.md @@ -9,7 +9,8 @@ An addition aspect of Demo Mode is that based on flags in the URL login processi ##Demo mode URLs To access Demo mode, use the following URLs: -```https://online.interlisp.og/demo?start=\``` +```https://online.interlisp.og/demo?start=\``` for automatic guest login. +```https://online.interlisp.og/demo/login?start=\``` to enable log @@ -33,5 +34,5 @@ To access Demo mode, use the following URLs: > Written with [StackEdit](https://stackedit.io/). \ No newline at end of file From c15a7f904e09ecf4e2edbf35ab43e6dc518dc3b8 Mon Sep 17 00:00:00 2001 From: Frank Halasz Date: Sun, 16 Nov 2025 16:26:14 -0800 Subject: [PATCH 098/166] docs/Demo_mode.md updated from https://stackedit.io/ --- docs/Demo_mode.md | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/docs/Demo_mode.md b/docs/Demo_mode.md index 8cd9136f..95f3980a 100644 --- a/docs/Demo_mode.md +++ b/docs/Demo_mode.md @@ -10,7 +10,9 @@ An addition aspect of Demo Mode is that based on flags in the URL login processi To access Demo mode, use the following URLs: ```https://online.interlisp.og/demo?start=\``` for automatic guest login. -```https://online.interlisp.og/demo/login?start=\``` to enable log +```https://online.interlisp.og/demo/login?start=\``` to require logins + +`````` is a URL pointing to a start-script lisp file that @@ -34,5 +36,5 @@ To access Demo mode, use the following URLs: > Written with [StackEdit](https://stackedit.io/). \ No newline at end of file From d2b9d61f66d5293dbcac93d68e2326b13cf6f32c Mon Sep 17 00:00:00 2001 From: Frank Halasz Date: Sun, 16 Nov 2025 16:27:45 -0800 Subject: [PATCH 099/166] docs/Demo_mode.md updated from https://stackedit.io/ --- docs/Demo_mode.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/Demo_mode.md b/docs/Demo_mode.md index 95f3980a..2fce404f 100644 --- a/docs/Demo_mode.md +++ b/docs/Demo_mode.md @@ -12,7 +12,7 @@ To access Demo mode, use the following URLs: ```https://online.interlisp.og/demo?start=\``` for automatic guest login. ```https://online.interlisp.og/demo/login?start=\``` to require logins -`````` is a URL pointing to a start-script lisp file that +`````` is a URL pointing to a start-script lisp file that can be wget'd by the OIO server. ***This URL must be encoded using the equivalent of Javascr @@ -36,5 +36,5 @@ To access Demo mode, use the following URLs: > Written with [StackEdit](https://stackedit.io/). \ No newline at end of file From e36ea7cb46cc7f0783c0821a853db7ad8e594974 Mon Sep 17 00:00:00 2001 From: Frank Halasz Date: Sun, 16 Nov 2025 16:29:16 -0800 Subject: [PATCH 100/166] docs/Demo_mode.md updated from https://stackedit.io/ --- docs/Demo_mode.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/Demo_mode.md b/docs/Demo_mode.md index 2fce404f..97eae6cf 100644 --- a/docs/Demo_mode.md +++ b/docs/Demo_mode.md @@ -12,7 +12,7 @@ To access Demo mode, use the following URLs: ```https://online.interlisp.og/demo?start=\``` for automatic guest login. ```https://online.interlisp.og/demo/login?start=\``` to require logins -`````` is a URL pointing to a start-script lisp file that can be wget'd by the OIO server. ***This URL must be encoded using the equivalent of Javascr +`````` is a URL pointing to a start-script lisp file that can be wget'd by the OIO server. ***This URL must be encoded using the equivalent of Javascript's *encodeURIComponent*. The easiest way to do this is via one o @@ -36,5 +36,5 @@ To access Demo mode, use the following URLs: > Written with [StackEdit](https://stackedit.io/). \ No newline at end of file From 44dd9a17da9a48fcd1efeca84f56be3d3b8c7f32 Mon Sep 17 00:00:00 2001 From: Frank Halasz Date: Sun, 16 Nov 2025 16:30:48 -0800 Subject: [PATCH 101/166] docs/Demo_mode.md updated from https://stackedit.io/ --- docs/Demo_mode.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/Demo_mode.md b/docs/Demo_mode.md index 97eae6cf..402b0ddb 100644 --- a/docs/Demo_mode.md +++ b/docs/Demo_mode.md @@ -12,7 +12,7 @@ To access Demo mode, use the following URLs: ```https://online.interlisp.og/demo?start=\``` for automatic guest login. ```https://online.interlisp.og/demo/login?start=\``` to require logins -`````` is a URL pointing to a start-script lisp file that can be wget'd by the OIO server. ***This URL must be encoded using the equivalent of Javascript's *encodeURIComponent*. The easiest way to do this is via one o +`````` is a URL pointing to a start-script lisp file that can be wget'd by the OIO server. ***This URL must be encoded using the equivalent of Javascript's *encodeURIComponent*. The easiest way to do this is via one of the many websites that offer this service such as https://meyerweb.com/eric/tools/dencoder/. @@ -36,5 +36,5 @@ To access Demo mode, use the following URLs: > Written with [StackEdit](https://stackedit.io/). \ No newline at end of file From bb95e0b58ec91c519765ba32cdcda5995d9dd3a5 Mon Sep 17 00:00:00 2001 From: Frank Halasz Date: Sun, 16 Nov 2025 16:32:19 -0800 Subject: [PATCH 102/166] docs/Demo_mode.md updated from https://stackedit.io/ --- docs/Demo_mode.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/docs/Demo_mode.md b/docs/Demo_mode.md index 402b0ddb..5be9cbee 100644 --- a/docs/Demo_mode.md +++ b/docs/Demo_mode.md @@ -14,6 +14,8 @@ To access Demo mode, use the following URLs: `````` is a URL pointing to a start-script lisp file that can be wget'd by the OIO server. ***This URL must be encoded using the equivalent of Javascript's *encodeURIComponent*. The easiest way to do this is via one of the many websites that offer this service such as https://meyerweb.com/eric/tools/dencoder/. +In addition to the *start* query parameter, Demo mode supports the *notecards=1* am + @@ -36,5 +38,5 @@ To access Demo mode, use the following URLs: > Written with [StackEdit](https://stackedit.io/). \ No newline at end of file From b33fdd4f9c93ba71f7115efdc60d1dc4d2623b05 Mon Sep 17 00:00:00 2001 From: Frank Halasz Date: Sun, 16 Nov 2025 16:33:50 -0800 Subject: [PATCH 103/166] docs/Demo_mode.md updated from https://stackedit.io/ --- docs/Demo_mode.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/Demo_mode.md b/docs/Demo_mode.md index 5be9cbee..097f5aba 100644 --- a/docs/Demo_mode.md +++ b/docs/Demo_mode.md @@ -14,7 +14,7 @@ To access Demo mode, use the following URLs: `````` is a URL pointing to a start-script lisp file that can be wget'd by the OIO server. ***This URL must be encoded using the equivalent of Javascript's *encodeURIComponent*. The easiest way to do this is via one of the many websites that offer this service such as https://meyerweb.com/eric/tools/dencoder/. -In addition to the *start* query parameter, Demo mode supports the *notecards=1* am +In addition to the *start* query parameter, Demo mode supports the *notecards=1* and *rooms=1* query parameters. If these query parameters are included in the Demo mode URL, then NoteCards (and/or Rooms) will be automatic @@ -38,5 +38,5 @@ In addition to the *start* query parameter, Demo mode supports the *notecards=1* > Written with [StackEdit](https://stackedit.io/). \ No newline at end of file From d0842b9e03a7c3b1301b00ac96bfd4159a5dcff8 Mon Sep 17 00:00:00 2001 From: Frank Halasz Date: Sun, 16 Nov 2025 16:35:22 -0800 Subject: [PATCH 104/166] docs/Demo_mode.md updated from https://stackedit.io/ --- docs/Demo_mode.md | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/docs/Demo_mode.md b/docs/Demo_mode.md index 097f5aba..3f0ade6b 100644 --- a/docs/Demo_mode.md +++ b/docs/Demo_mode.md @@ -14,7 +14,9 @@ To access Demo mode, use the following URLs: `````` is a URL pointing to a start-script lisp file that can be wget'd by the OIO server. ***This URL must be encoded using the equivalent of Javascript's *encodeURIComponent*. The easiest way to do this is via one of the many websites that offer this service such as https://meyerweb.com/eric/tools/dencoder/. -In addition to the *start* query parameter, Demo mode supports the *notecards=1* and *rooms=1* query parameters. If these query parameters are included in the Demo mode URL, then NoteCards (and/or Rooms) will be automatic +In addition to the *start* query parameter, Demo mode supports the *notecards=1* and *rooms=1* query parameters. If these query parameters are included in the Demo mode URL, then NoteCards (and/or Rooms) will be automatically started when Online Medley runs, in addition to the start-script. + +Any of the query parameters (start, notecards, rooms) can be left off, with the @@ -38,5 +40,5 @@ In addition to the *start* query parameter, Demo mode supports the *notecards=1* > Written with [StackEdit](https://stackedit.io/). \ No newline at end of file From d5e1ae066f88924e62850cbd3b9b430efe354338 Mon Sep 17 00:00:00 2001 From: Frank Halasz Date: Sun, 16 Nov 2025 16:36:53 -0800 Subject: [PATCH 105/166] docs/Demo_mode.md updated from https://stackedit.io/ --- docs/Demo_mode.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/Demo_mode.md b/docs/Demo_mode.md index 3f0ade6b..5ce258da 100644 --- a/docs/Demo_mode.md +++ b/docs/Demo_mode.md @@ -16,7 +16,7 @@ To access Demo mode, use the following URLs: In addition to the *start* query parameter, Demo mode supports the *notecards=1* and *rooms=1* query parameters. If these query parameters are included in the Demo mode URL, then NoteCards (and/or Rooms) will be automatically started when Online Medley runs, in addition to the start-script. -Any of the query parameters (start, notecards, rooms) can be left off, with the +Any of the query parameters (start, notecards, rooms) can be left off, with the expected change of function. For example, htpps://online.interlisp.org @@ -40,5 +40,5 @@ Any of the query parameters (start, notecards, rooms) can be left off, with the > Written with [StackEdit](https://stackedit.io/). \ No newline at end of file From f274beb736af489d00a461a21de75db93f15ed3a Mon Sep 17 00:00:00 2001 From: Frank Halasz Date: Sun, 16 Nov 2025 16:38:25 -0800 Subject: [PATCH 106/166] docs/Demo_mode.md updated from https://stackedit.io/ --- docs/Demo_mode.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/docs/Demo_mode.md b/docs/Demo_mode.md index 5ce258da..6b397c70 100644 --- a/docs/Demo_mode.md +++ b/docs/Demo_mode.md @@ -16,7 +16,8 @@ To access Demo mode, use the following URLs: In addition to the *start* query parameter, Demo mode supports the *notecards=1* and *rooms=1* query parameters. If these query parameters are included in the Demo mode URL, then NoteCards (and/or Rooms) will be automatically started when Online Medley runs, in addition to the start-script. -Any of the query parameters (start, notecards, rooms) can be left off, with the expected change of function. For example, htpps://online.interlisp.org +Any of the query parameters (start, notecards, rooms) can be left off, with the expected change of function. For example, https://online.interlisp.org/demo?notecards=1 will automatically login as guest and start notecards - but not run any start-script. + @@ -40,5 +41,5 @@ Any of the query parameters (start, notecards, rooms) can be left off, with the > Written with [StackEdit](https://stackedit.io/). \ No newline at end of file From e14b0e984902dedc8a99c0f3bef258c44e2f3a46 Mon Sep 17 00:00:00 2001 From: Frank Halasz Date: Sun, 16 Nov 2025 16:39:56 -0800 Subject: [PATCH 107/166] docs/Demo_mode.md updated from https://stackedit.io/ --- docs/Demo_mode.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/docs/Demo_mode.md b/docs/Demo_mode.md index 6b397c70..ee74f120 100644 --- a/docs/Demo_mode.md +++ b/docs/Demo_mode.md @@ -18,6 +18,7 @@ In addition to the *start* query parameter, Demo mode supports the *notecards=1* Any of the query parameters (start, notecards, rooms) can be left off, with the expected change of function. For example, https://online.interlisp.org/demo?notecards=1 will automatically login as guest and start notecards - but not run any start-script. +Example Demo mode URL: @@ -41,5 +42,5 @@ Any of the query parameters (start, notecards, rooms) can be left off, with the > Written with [StackEdit](https://stackedit.io/). \ No newline at end of file From a86ae00477fbcf93ebc3d6eed5796bb2e72b44ce Mon Sep 17 00:00:00 2001 From: Frank Halasz Date: Sun, 16 Nov 2025 16:41:27 -0800 Subject: [PATCH 108/166] docs/Demo_mode.md updated from https://stackedit.io/ --- docs/Demo_mode.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/Demo_mode.md b/docs/Demo_mode.md index ee74f120..0afc2be6 100644 --- a/docs/Demo_mode.md +++ b/docs/Demo_mode.md @@ -18,7 +18,7 @@ In addition to the *start* query parameter, Demo mode supports the *notecards=1* Any of the query parameters (start, notecards, rooms) can be left off, with the expected change of function. For example, https://online.interlisp.org/demo?notecards=1 will automatically login as guest and start notecards - but not run any start-script. -Example Demo mode URL: +Example Demo mode URL: https://online.interlisp.org/demo?start=https%3A%2F%2Fgithub.com%2FInterlisp%2Fonline%2Fraw%2Frefs%2Fheads%2Ffgh_museum-mode%2Fstart-scripts%2FSTART-INSPHEX.LCOM¬ecards=1. This URL will wget @@ -42,5 +42,5 @@ Example Demo mode URL: > Written with [StackEdit](https://stackedit.io/). \ No newline at end of file From 299cf51c3f926d5723d7926b57fcd70b46b18aff Mon Sep 17 00:00:00 2001 From: Frank Halasz Date: Sun, 16 Nov 2025 16:44:39 -0800 Subject: [PATCH 109/166] docs/Demo_mode.md updated from https://stackedit.io/ --- docs/Demo_mode.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/Demo_mode.md b/docs/Demo_mode.md index 0afc2be6..8b42d858 100644 --- a/docs/Demo_mode.md +++ b/docs/Demo_mode.md @@ -18,7 +18,7 @@ In addition to the *start* query parameter, Demo mode supports the *notecards=1* Any of the query parameters (start, notecards, rooms) can be left off, with the expected change of function. For example, https://online.interlisp.org/demo?notecards=1 will automatically login as guest and start notecards - but not run any start-script. -Example Demo mode URL: https://online.interlisp.org/demo?start=https%3A%2F%2Fgithub.com%2FInterlisp%2Fonline%2Fraw%2Frefs%2Fheads%2Ffgh_museum-mode%2Fstart-scripts%2FSTART-INSPHEX.LCOM¬ecards=1. This URL will wget +Example Demo mode URL: https://online.interlisp.org/demo?start=https%3A%2F%2Fgithub.com%2FInterlisp%2Fonline%2Fraw%2Frefs%2Fheads%2Ffgh_museum-mode%2Fstart-scripts%2FSTART-INSPHEX.LCOM¬ecards=1. This URL will wget @@ -42,5 +42,5 @@ Example Demo mode URL: https://online.interlisp.org/demo?start=https%3A%2F%2Fgi > Written with [StackEdit](https://stackedit.io/). \ No newline at end of file From ddd3fcb5b218e5bea5a33f7cfb9dd4e1a0a4bcfd Mon Sep 17 00:00:00 2001 From: Frank Halasz Date: Sun, 16 Nov 2025 16:46:10 -0800 Subject: [PATCH 110/166] docs/Demo_mode.md updated from https://stackedit.io/ --- docs/Demo_mode.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/Demo_mode.md b/docs/Demo_mode.md index 8b42d858..62f93a0e 100644 --- a/docs/Demo_mode.md +++ b/docs/Demo_mode.md @@ -18,7 +18,7 @@ In addition to the *start* query parameter, Demo mode supports the *notecards=1* Any of the query parameters (start, notecards, rooms) can be left off, with the expected change of function. For example, https://online.interlisp.org/demo?notecards=1 will automatically login as guest and start notecards - but not run any start-script. -Example Demo mode URL: https://online.interlisp.org/demo?start=https%3A%2F%2Fgithub.com%2FInterlisp%2Fonline%2Fraw%2Frefs%2Fheads%2Ffgh_museum-mode%2Fstart-scripts%2FSTART-INSPHEX.LCOM¬ecards=1. This URL will wget +Example Demo mode URL: https://online.interlisp.org/demo?start=https%3A%2F%2Fgithub.com%2FInterlisp%2Fonline%2Fraw%2Frefs%2Fheads%2Ffgh_museum-mode%2Fstart-scripts%2FSTART-INSPHEX.LCOM¬ecards=1. This URL will automaticallywget and LOAD the file START-INSPHEX.LCOM from the Interlisp/Online repo on github as well @@ -42,5 +42,5 @@ Example Demo mode URL: https://online.interlisp.org/demo?start=https%3A%2F%2Fgi > Written with [StackEdit](https://stackedit.io/). \ No newline at end of file From 6ebe6915612f0b6b521e1ab0c89c3392f21795a5 Mon Sep 17 00:00:00 2001 From: Frank Halasz Date: Sun, 16 Nov 2025 16:47:42 -0800 Subject: [PATCH 111/166] docs/Demo_mode.md updated from https://stackedit.io/ --- docs/Demo_mode.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/docs/Demo_mode.md b/docs/Demo_mode.md index 62f93a0e..f6964b1a 100644 --- a/docs/Demo_mode.md +++ b/docs/Demo_mode.md @@ -6,19 +6,19 @@ When accessing online.interlisp.org (OIO) using Demo Mode, Online Medley will s An addition aspect of Demo Mode is that based on flags in the URL login processing can be skipped, the user automatically logged in as guest, and the Online Medley session started with no user interaction required. Alternatively, the login process can remain but the standard "Run Medley" page will be skipped and the user will go directly from login to the running Medley without having to set all the run parameters in the Run Medley page. Automatic guest login is sufficient for most demos. But requiring login allows demos to save files and context between runs of Online Medley, which is not possible with guest login. -##Demo mode URLs +## Demo mode URLs To access Demo mode, use the following URLs: ```https://online.interlisp.og/demo?start=\``` for automatic guest login. ```https://online.interlisp.og/demo/login?start=\``` to require logins -`````` is a URL pointing to a start-script lisp file that can be wget'd by the OIO server. ***This URL must be encoded using the equivalent of Javascript's *encodeURIComponent*. The easiest way to do this is via one of the many websites that offer this service such as https://meyerweb.com/eric/tools/dencoder/. +`````` is a URL pointing to a start-script lisp file that can be wget'd by the OIO server. *This URL must be encoded using the equivalent of Javascript's *encodeURIComponent*. The easiest way to do this is via one of the many websites that offer this service such as https://meyerweb.com/eric/tools/dencoder/. In addition to the *start* query parameter, Demo mode supports the *notecards=1* and *rooms=1* query parameters. If these query parameters are included in the Demo mode URL, then NoteCards (and/or Rooms) will be automatically started when Online Medley runs, in addition to the start-script. Any of the query parameters (start, notecards, rooms) can be left off, with the expected change of function. For example, https://online.interlisp.org/demo?notecards=1 will automatically login as guest and start notecards - but not run any start-script. -Example Demo mode URL: https://online.interlisp.org/demo?start=https%3A%2F%2Fgithub.com%2FInterlisp%2Fonline%2Fraw%2Frefs%2Fheads%2Ffgh_museum-mode%2Fstart-scripts%2FSTART-INSPHEX.LCOM¬ecards=1. This URL will automaticallywget and LOAD the file START-INSPHEX.LCOM from the Interlisp/Online repo on github as well +Example Demo mode URL: https://online.interlisp.org/demo?start=https%3A%2F%2Fgithub.com%2FInterlisp%2Fonline%2Fraw%2Frefs%2Fheads%2Ffgh_museum-mode%2Fstart-scripts%2FSTART-INSPHEX.LCOM¬ecards=1. This URL will automatically login as guest, wget and LOAD the file START-INSPHEX.LCOM from the Interlisp/Online repo on github and start Notecards. @@ -42,5 +42,5 @@ Example Demo mode URL: https://online.interlisp.org/demo?start=https%3A%2F%2Fgi > Written with [StackEdit](https://stackedit.io/). \ No newline at end of file From 2021f2f4761ee7ce752b2b3efb7469f3bac4dd69 Mon Sep 17 00:00:00 2001 From: Frank Halasz Date: Sun, 16 Nov 2025 16:49:13 -0800 Subject: [PATCH 112/166] docs/Demo_mode.md updated from https://stackedit.io/ --- docs/Demo_mode.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/Demo_mode.md b/docs/Demo_mode.md index f6964b1a..f443df70 100644 --- a/docs/Demo_mode.md +++ b/docs/Demo_mode.md @@ -12,7 +12,7 @@ To access Demo mode, use the following URLs: ```https://online.interlisp.og/demo?start=\``` for automatic guest login. ```https://online.interlisp.og/demo/login?start=\``` to require logins -`````` is a URL pointing to a start-script lisp file that can be wget'd by the OIO server. *This URL must be encoded using the equivalent of Javascript's *encodeURIComponent*. The easiest way to do this is via one of the many websites that offer this service such as https://meyerweb.com/eric/tools/dencoder/. +`````` is a URL pointing to a start-script lisp file that can be wget'd by the OIO server. **This URL must be encoded using the equivalent of Javascript's encodeURIComponent.** The easiest way to do this is via one of the many websites that offer this service such as https://meyerweb.com/eric/tools/dencoder/. In addition to the *start* query parameter, Demo mode supports the *notecards=1* and *rooms=1* query parameters. If these query parameters are included in the Demo mode URL, then NoteCards (and/or Rooms) will be automatically started when Online Medley runs, in addition to the start-script. @@ -42,5 +42,5 @@ Example Demo mode URL: https://online.interlisp.org/demo?start=https%3A%2F%2Fgi > Written with [StackEdit](https://stackedit.io/). \ No newline at end of file From 4c0996970b9cef8cafa8611ead451a90f315b62b Mon Sep 17 00:00:00 2001 From: Frank Halasz Date: Sun, 16 Nov 2025 16:50:44 -0800 Subject: [PATCH 113/166] docs/Demo_mode.md updated from https://stackedit.io/ --- docs/Demo_mode.md | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/docs/Demo_mode.md b/docs/Demo_mode.md index f443df70..57f55c12 100644 --- a/docs/Demo_mode.md +++ b/docs/Demo_mode.md @@ -12,7 +12,7 @@ To access Demo mode, use the following URLs: ```https://online.interlisp.og/demo?start=\``` for automatic guest login. ```https://online.interlisp.og/demo/login?start=\``` to require logins -`````` is a URL pointing to a start-script lisp file that can be wget'd by the OIO server. **This URL must be encoded using the equivalent of Javascript's encodeURIComponent.** The easiest way to do this is via one of the many websites that offer this service such as https://meyerweb.com/eric/tools/dencoder/. +`````` is a URL pointing to a start-script lisp file that can be wget'd by the OIO server. **This URL must be encoded using the equivalent of Javascript's *encodeURIComponent*.** The easiest way to do this is via one of the many websites that offer this service such as https://meyerweb.com/eric/tools/dencoder/. In addition to the *start* query parameter, Demo mode supports the *notecards=1* and *rooms=1* query parameters. If these query parameters are included in the Demo mode URL, then NoteCards (and/or Rooms) will be automatically started when Online Medley runs, in addition to the start-script. @@ -20,6 +20,8 @@ Any of the query parameters (start, notecards, rooms) can be left off, with the Example Demo mode URL: https://online.interlisp.org/demo?start=https%3A%2F%2Fgithub.com%2FInterlisp%2Fonline%2Fraw%2Frefs%2Fheads%2Ffgh_museum-mode%2Fstart-scripts%2FSTART-INSPHEX.LCOM¬ecards=1. This URL will automatically login as guest, wget and LOAD the file START-INSPHEX.LCOM from the Interlisp/Online repo on github and start Notecards. +## Start scripts + @@ -42,5 +44,5 @@ Example Demo mode URL: https://online.interlisp.org/demo?start=https%3A%2F%2Fgi > Written with [StackEdit](https://stackedit.io/). \ No newline at end of file From 9254cc9ee021ea1ab6ec8af7cc7b740b3b4e1bcd Mon Sep 17 00:00:00 2001 From: Frank Halasz Date: Sun, 16 Nov 2025 16:52:15 -0800 Subject: [PATCH 114/166] docs/Demo_mode.md updated from https://stackedit.io/ --- docs/Demo_mode.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/Demo_mode.md b/docs/Demo_mode.md index 57f55c12..57bc2715 100644 --- a/docs/Demo_mode.md +++ b/docs/Demo_mode.md @@ -22,7 +22,7 @@ Example Demo mode URL: https://online.interlisp.org/demo?start=https%3A%2F%2Fgi ## Start scripts - +Sample start scripts can be found in the Interlisp/Online Github repo at https;//github.com/insterlisp/online/start-scripts @@ -44,5 +44,5 @@ Example Demo mode URL: https://online.interlisp.org/demo?start=https%3A%2F%2Fgi > Written with [StackEdit](https://stackedit.io/). \ No newline at end of file From 4bfa2a0b11ce53541c0a26d86ecb0c181ba204ba Mon Sep 17 00:00:00 2001 From: Frank Halasz Date: Sun, 16 Nov 2025 16:53:46 -0800 Subject: [PATCH 115/166] docs/Demo_mode.md updated from https://stackedit.io/ --- docs/Demo_mode.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/Demo_mode.md b/docs/Demo_mode.md index 57bc2715..e746a6c9 100644 --- a/docs/Demo_mode.md +++ b/docs/Demo_mode.md @@ -22,7 +22,7 @@ Example Demo mode URL: https://online.interlisp.org/demo?start=https%3A%2F%2Fgi ## Start scripts -Sample start scripts can be found in the Interlisp/Online Github repo at https;//github.com/insterlisp/online/start-scripts +Sample start scripts can be found in the Interlisp/Online Github repo at https://github.com/interlisp/online/start-scripts @@ -44,5 +44,5 @@ Sample start scripts can be found in the Interlisp/Online Github repo at https;/ > Written with [StackEdit](https://stackedit.io/). \ No newline at end of file From 3d476b9a7b9633ddaa3e8640bb87352a24ae00ea Mon Sep 17 00:00:00 2001 From: Frank Halasz Date: Sun, 16 Nov 2025 16:55:17 -0800 Subject: [PATCH 116/166] docs/Demo_mode.md updated from https://stackedit.io/ --- docs/Demo_mode.md | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/docs/Demo_mode.md b/docs/Demo_mode.md index e746a6c9..df81cbae 100644 --- a/docs/Demo_mode.md +++ b/docs/Demo_mode.md @@ -22,7 +22,9 @@ Example Demo mode URL: https://online.interlisp.org/demo?start=https%3A%2F%2Fgi ## Start scripts -Sample start scripts can be found in the Interlisp/Online Github repo at https://github.com/interlisp/online/start-scripts +Sample start scripts can be found in the Interlisp/Online Github repo in the start-scripts directory. + +One very handy function to be used in start-scrip @@ -44,5 +46,5 @@ Sample start scripts can be found in the Interlisp/Online Github repo at https:/ > Written with [StackEdit](https://stackedit.io/). \ No newline at end of file From ad4b66127509f4e93010dbd0cc57e41cd0bf0ad4 Mon Sep 17 00:00:00 2001 From: Frank Halasz Date: Sun, 16 Nov 2025 16:56:48 -0800 Subject: [PATCH 117/166] docs/Demo_mode.md updated from https://stackedit.io/ --- docs/Demo_mode.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/Demo_mode.md b/docs/Demo_mode.md index df81cbae..d9d33129 100644 --- a/docs/Demo_mode.md +++ b/docs/Demo_mode.md @@ -24,7 +24,7 @@ Example Demo mode URL: https://online.interlisp.org/demo?start=https%3A%2F%2Fgi Sample start scripts can be found in the Interlisp/Online Github repo in the start-scripts directory. -One very handy function to be used in start-scrip +Most demos will require Lisp (or other) files thyat are not inclOne very handy function to be used in start-scripts is ```(ShellWget URL OUTFILE)```. @@ -46,5 +46,5 @@ One very handy function to be used in start-scrip > Written with [StackEdit](https://stackedit.io/). \ No newline at end of file From 0fbfbc0d5a985861eeb40c3b071f585a5993d780 Mon Sep 17 00:00:00 2001 From: Frank Halasz Date: Sun, 16 Nov 2025 16:58:19 -0800 Subject: [PATCH 118/166] docs/Demo_mode.md updated from https://stackedit.io/ --- docs/Demo_mode.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/Demo_mode.md b/docs/Demo_mode.md index d9d33129..bbd7e1e7 100644 --- a/docs/Demo_mode.md +++ b/docs/Demo_mode.md @@ -24,7 +24,7 @@ Example Demo mode URL: https://online.interlisp.org/demo?start=https%3A%2F%2Fgi Sample start scripts can be found in the Interlisp/Online Github repo in the start-scripts directory. -Most demos will require Lisp (or other) files thyat are not inclOne very handy function to be used in start-scripts is ```(ShellWget URL OUTFILE)```. +Most demos will require Lisp (or other) files that are not included in the standard Online Medley image. One very handy function to be used in start-scripts for these demos is ```(ShellWget URL OUTFILE)```. This function will download (using wget) the file specified @@ -46,5 +46,5 @@ Most demos will require Lisp (or other) files thyat are not inclOne very handy f > Written with [StackEdit](https://stackedit.io/). \ No newline at end of file From 4b00ac4a7143b8b04e85d04aaaf46eff706c8c98 Mon Sep 17 00:00:00 2001 From: Frank Halasz Date: Sun, 16 Nov 2025 16:59:51 -0800 Subject: [PATCH 119/166] docs/Demo_mode.md updated from https://stackedit.io/ --- docs/Demo_mode.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/docs/Demo_mode.md b/docs/Demo_mode.md index bbd7e1e7..a18559de 100644 --- a/docs/Demo_mode.md +++ b/docs/Demo_mode.md @@ -24,7 +24,8 @@ Example Demo mode URL: https://online.interlisp.org/demo?start=https%3A%2F%2Fgi Sample start scripts can be found in the Interlisp/Online Github repo in the start-scripts directory. -Most demos will require Lisp (or other) files that are not included in the standard Online Medley image. One very handy function to be used in start-scripts for these demos is ```(ShellWget URL OUTFILE)```. This function will download (using wget) the file specified +Most demos will require Lisp (or other) files that are not included in the standard Online Medley image. One very handy function to be used in start-scripts for these demos is ```(ShellWget URL OUTFILE)```. This function will download (using wget) the file specified by URL and store it in the versioned Online Medley file system under the name OUTFILE. OUTFILE can then be LOADed in the start-script. + @@ -46,5 +47,5 @@ Most demos will require Lisp (or other) files that are not included in the stand > Written with [StackEdit](https://stackedit.io/). \ No newline at end of file From eac6eadad7e47b8b6d643f443e4f9052864177e6 Mon Sep 17 00:00:00 2001 From: Frank Halasz Date: Sun, 16 Nov 2025 17:01:23 -0800 Subject: [PATCH 120/166] docs/Demo_mode.md updated from https://stackedit.io/ --- docs/Demo_mode.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/Demo_mode.md b/docs/Demo_mode.md index a18559de..ba138731 100644 --- a/docs/Demo_mode.md +++ b/docs/Demo_mode.md @@ -26,7 +26,7 @@ Sample start scripts can be found in the Interlisp/Online Github repo in the sta Most demos will require Lisp (or other) files that are not included in the standard Online Medley image. One very handy function to be used in start-scripts for these demos is ```(ShellWget URL OUTFILE)```. This function will download (using wget) the file specified by URL and store it in the versioned Online Medley file system under the name OUTFILE. OUTFILE can then be LOADed in the start-script. - +Below is the start-script for a demo of INSPHEX. The start-script defines and then runs a function called START-INSPHEX. START-INPH @@ -47,5 +47,5 @@ Most demos will require Lisp (or other) files that are not included in the stand > Written with [StackEdit](https://stackedit.io/). \ No newline at end of file From 21b03814c46eb4630900acb749a3111921217d01 Mon Sep 17 00:00:00 2001 From: Frank Halasz Date: Sun, 16 Nov 2025 17:02:54 -0800 Subject: [PATCH 121/166] docs/Demo_mode.md updated from https://stackedit.io/ --- docs/Demo_mode.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/Demo_mode.md b/docs/Demo_mode.md index ba138731..60ecc5ec 100644 --- a/docs/Demo_mode.md +++ b/docs/Demo_mode.md @@ -26,7 +26,7 @@ Sample start scripts can be found in the Interlisp/Online Github repo in the sta Most demos will require Lisp (or other) files that are not included in the standard Online Medley image. One very handy function to be used in start-scripts for these demos is ```(ShellWget URL OUTFILE)```. This function will download (using wget) the file specified by URL and store it in the versioned Online Medley file system under the name OUTFILE. OUTFILE can then be LOADed in the start-script. -Below is the start-script for a demo of INSPHEX. The start-script defines and then runs a function called START-INSPHEX. START-INPH +Below is the start-script for a demo of INSPHEX. The start-script defines and then runs a function called START-INSPHEX. START-INPHEX uses ShellWget to download the source code to INSPHEX from Github, com @@ -47,5 +47,5 @@ Below is the start-script for a demo of INSPHEX. The start-script defines and t > Written with [StackEdit](https://stackedit.io/). \ No newline at end of file From 7dd84151ffb3207f67da4f98a8421309b5397f53 Mon Sep 17 00:00:00 2001 From: Frank Halasz Date: Sun, 16 Nov 2025 17:04:26 -0800 Subject: [PATCH 122/166] docs/Demo_mode.md updated from https://stackedit.io/ --- docs/Demo_mode.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/Demo_mode.md b/docs/Demo_mode.md index 60ecc5ec..72e22d1f 100644 --- a/docs/Demo_mode.md +++ b/docs/Demo_mode.md @@ -26,7 +26,7 @@ Sample start scripts can be found in the Interlisp/Online Github repo in the sta Most demos will require Lisp (or other) files that are not included in the standard Online Medley image. One very handy function to be used in start-scripts for these demos is ```(ShellWget URL OUTFILE)```. This function will download (using wget) the file specified by URL and store it in the versioned Online Medley file system under the name OUTFILE. OUTFILE can then be LOADed in the start-script. -Below is the start-script for a demo of INSPHEX. The start-script defines and then runs a function called START-INSPHEX. START-INPHEX uses ShellWget to download the source code to INSPHEX from Github, com +Below is the start-script for a demo of INSPHEX. The start-script defines and then runs a function called START-INSPHEX. START-INPHEX in turn uses ShellWget to download the source code to INSPHEX from Github, compiles it, loads the compiled file and then uses ADD.PROCESS to run the main INSP function @@ -47,5 +47,5 @@ Below is the start-script for a demo of INSPHEX. The start-script defines and t > Written with [StackEdit](https://stackedit.io/). \ No newline at end of file From dc7aa079669e7a8a7904aa633df51acc3f043383 Mon Sep 17 00:00:00 2001 From: Frank Halasz Date: Sun, 16 Nov 2025 17:05:57 -0800 Subject: [PATCH 123/166] docs/Demo_mode.md updated from https://stackedit.io/ --- docs/Demo_mode.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/Demo_mode.md b/docs/Demo_mode.md index 72e22d1f..6c643a37 100644 --- a/docs/Demo_mode.md +++ b/docs/Demo_mode.md @@ -26,7 +26,7 @@ Sample start scripts can be found in the Interlisp/Online Github repo in the sta Most demos will require Lisp (or other) files that are not included in the standard Online Medley image. One very handy function to be used in start-scripts for these demos is ```(ShellWget URL OUTFILE)```. This function will download (using wget) the file specified by URL and store it in the versioned Online Medley file system under the name OUTFILE. OUTFILE can then be LOADed in the start-script. -Below is the start-script for a demo of INSPHEX. The start-script defines and then runs a function called START-INSPHEX. START-INPHEX in turn uses ShellWget to download the source code to INSPHEX from Github, compiles it, loads the compiled file and then uses ADD.PROCESS to run the main INSP function +Below is the start-script for a demo of INSPHEX. The start-script defines and then runs a function called START-INSPHEX. START-INPHEX in turn uses ShellWget to download the source code to INSPHEX from Github, compiles it, loads the compiled file and then uses ADD.PROCESS to run the main HEXDUMP function. There is some additional complication in the call to ADD.PROCESS to ensure th @@ -47,5 +47,5 @@ Below is the start-script for a demo of INSPHEX. The start-script defines and t > Written with [StackEdit](https://stackedit.io/). \ No newline at end of file From 4e4df7b72d2ce9834105edd446c93c6bf430e6f7 Mon Sep 17 00:00:00 2001 From: Frank Halasz Date: Sun, 16 Nov 2025 17:07:28 -0800 Subject: [PATCH 124/166] docs/Demo_mode.md updated from https://stackedit.io/ --- docs/Demo_mode.md | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/docs/Demo_mode.md b/docs/Demo_mode.md index 6c643a37..8e5a9681 100644 --- a/docs/Demo_mode.md +++ b/docs/Demo_mode.md @@ -26,7 +26,9 @@ Sample start scripts can be found in the Interlisp/Online Github repo in the sta Most demos will require Lisp (or other) files that are not included in the standard Online Medley image. One very handy function to be used in start-scripts for these demos is ```(ShellWget URL OUTFILE)```. This function will download (using wget) the file specified by URL and store it in the versioned Online Medley file system under the name OUTFILE. OUTFILE can then be LOADed in the start-script. -Below is the start-script for a demo of INSPHEX. The start-script defines and then runs a function called START-INSPHEX. START-INPHEX in turn uses ShellWget to download the source code to INSPHEX from Github, compiles it, loads the compiled file and then uses ADD.PROCESS to run the main HEXDUMP function. There is some additional complication in the call to ADD.PROCESS to ensure th +Below is the start-script for a demo of INSPHEX. The start-script defines and then runs a function called START-INSPHEX. START-INPHEX in turn uses ShellWget to download the source code to INSPHEX from Github, compiles it, loads the compiled file and then uses ADD.PROCESS to run the main HEXDUMP function. There is some additional complication in the call to ADD.PROCESS to ensure that packages are handled correctly. Most exisitng Interlisp demos will not need this complexity since they don't use packages. + + @@ -47,5 +49,5 @@ Below is the start-script for a demo of INSPHEX. The start-script defines and t > Written with [StackEdit](https://stackedit.io/). \ No newline at end of file From 1fd4253217b74a7698e7580e876274139516628d Mon Sep 17 00:00:00 2001 From: Frank Halasz Date: Sun, 16 Nov 2025 17:10:31 -0800 Subject: [PATCH 125/166] docs/Demo_mode.md updated from https://stackedit.io/ --- docs/Demo_mode.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/docs/Demo_mode.md b/docs/Demo_mode.md index 8e5a9681..7e2870af 100644 --- a/docs/Demo_mode.md +++ b/docs/Demo_mode.md @@ -28,7 +28,7 @@ Most demos will require Lisp (or other) files that are not included in the stand Below is the start-script for a demo of INSPHEX. The start-script defines and then runs a function called START-INSPHEX. START-INPHEX in turn uses ShellWget to download the source code to INSPHEX from Github, compiles it, loads the compiled file and then uses ADD.PROCESS to run the main HEXDUMP function. There is some additional complication in the call to ADD.PROCESS to ensure that packages are handled correctly. Most exisitng Interlisp demos will not need this complexity since they don't use packages. - +## Start scripts outside of Dem @@ -49,5 +49,6 @@ Below is the start-script for a demo of INSPHEX. The start-script defines and t > Written with [StackEdit](https://stackedit.io/). \ No newline at end of file From 9aa52f3f80f081390879a72d3304f7fc17435a86 Mon Sep 17 00:00:00 2001 From: Frank Halasz Date: Sun, 16 Nov 2025 17:12:02 -0800 Subject: [PATCH 126/166] docs/Demo_mode.md updated from https://stackedit.io/ --- docs/Demo_mode.md | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/docs/Demo_mode.md b/docs/Demo_mode.md index 7e2870af..6e1eb6e5 100644 --- a/docs/Demo_mode.md +++ b/docs/Demo_mode.md @@ -28,7 +28,9 @@ Most demos will require Lisp (or other) files that are not included in the stand Below is the start-script for a demo of INSPHEX. The start-script defines and then runs a function called START-INSPHEX. START-INPHEX in turn uses ShellWget to download the source code to INSPHEX from Github, compiles it, loads the compiled file and then uses ADD.PROCESS to run the main HEXDUMP function. There is some additional complication in the call to ADD.PROCESS to ensure that packages are handled correctly. Most exisitng Interlisp demos will not need this complexity since they don't use packages. -## Start scripts outside of Dem +## Start scripts outside of Demo mode + +Start scripts can also be used outside of Demo mode. In the normal workflow, the user will be taken to the "Run Medley" page. On the Ru @@ -49,6 +51,6 @@ Below is the start-script for a demo of INSPHEX. The start-script defines and t > Written with [StackEdit](https://stackedit.io/). \ No newline at end of file From 4e0c4fc28cec7e6529d590b71c77b51d125954a8 Mon Sep 17 00:00:00 2001 From: Frank Halasz Date: Sun, 16 Nov 2025 17:13:33 -0800 Subject: [PATCH 127/166] docs/Demo_mode.md updated from https://stackedit.io/ --- docs/Demo_mode.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/Demo_mode.md b/docs/Demo_mode.md index 6e1eb6e5..0aa8859e 100644 --- a/docs/Demo_mode.md +++ b/docs/Demo_mode.md @@ -30,7 +30,7 @@ Below is the start-script for a demo of INSPHEX. The start-script defines and t ## Start scripts outside of Demo mode -Start scripts can also be used outside of Demo mode. In the normal workflow, the user will be taken to the "Run Medley" page. On the Ru +Start scripts can also be used outside of Demo mode. In the normal workflow, the user will be taken to the "Run Medley" page. On the Run Medley page, if you enable @@ -51,6 +51,6 @@ Start scripts can also be used outside of Demo mode. In the normal workflow, th > Written with [StackEdit](https://stackedit.io/). \ No newline at end of file From 0cce7877742a4cf5b2146cee609a587ff25afb1b Mon Sep 17 00:00:00 2001 From: Frank Halasz Date: Sun, 16 Nov 2025 17:15:04 -0800 Subject: [PATCH 128/166] docs/Demo_mode.md updated from https://stackedit.io/ --- docs/Demo_mode.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/Demo_mode.md b/docs/Demo_mode.md index 0aa8859e..b9e24b82 100644 --- a/docs/Demo_mode.md +++ b/docs/Demo_mode.md @@ -30,7 +30,7 @@ Below is the start-script for a demo of INSPHEX. The start-script defines and t ## Start scripts outside of Demo mode -Start scripts can also be used outside of Demo mode. In the normal workflow, the user will be taken to the "Run Medley" page. On the Run Medley page, if you enable +Start scripts can also be used outside of Demo mode. In the normal workflow, the user will be taken to the "Run Medley" page. On the Run Medley page, if you enable *Show advanced options* there will be a field into which you enter the URL for a start-scripts (in either original or URI encoded forms @@ -51,6 +51,6 @@ Start scripts can also be used outside of Demo mode. In the normal workflow, th > Written with [StackEdit](https://stackedit.io/). \ No newline at end of file From d3051523b60b0610ece819bccd05dc1131accf6a Mon Sep 17 00:00:00 2001 From: Frank Halasz Date: Sun, 16 Nov 2025 17:16:35 -0800 Subject: [PATCH 129/166] docs/Demo_mode.md updated from https://stackedit.io/ --- docs/Demo_mode.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/Demo_mode.md b/docs/Demo_mode.md index b9e24b82..0ccab3ba 100644 --- a/docs/Demo_mode.md +++ b/docs/Demo_mode.md @@ -30,7 +30,7 @@ Below is the start-script for a demo of INSPHEX. The start-script defines and t ## Start scripts outside of Demo mode -Start scripts can also be used outside of Demo mode. In the normal workflow, the user will be taken to the "Run Medley" page. On the Run Medley page, if you enable *Show advanced options* there will be a field into which you enter the URL for a start-scripts (in either original or URI encoded forms +Start scripts can also be used outside of Demo mode. In the normal workflow, the user will be taken to the "Run Medley" page. On the Run Medley page, if you enable *Show advanced options* there will be a field into which you can enter the URL for a start-script (in either original or URI encoded forms). When O @@ -51,6 +51,6 @@ Start scripts can also be used outside of Demo mode. In the normal workflow, th > Written with [StackEdit](https://stackedit.io/). \ No newline at end of file From 6a6a8f983bcd842a4908b92434fd1f9020236045 Mon Sep 17 00:00:00 2001 From: Frank Halasz Date: Sun, 16 Nov 2025 17:18:07 -0800 Subject: [PATCH 130/166] docs/Demo_mode.md updated from https://stackedit.io/ --- docs/Demo_mode.md | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/docs/Demo_mode.md b/docs/Demo_mode.md index 0ccab3ba..dbb13743 100644 --- a/docs/Demo_mode.md +++ b/docs/Demo_mode.md @@ -30,7 +30,11 @@ Below is the start-script for a demo of INSPHEX. The start-script defines and t ## Start scripts outside of Demo mode -Start scripts can also be used outside of Demo mode. In the normal workflow, the user will be taken to the "Run Medley" page. On the Run Medley page, if you enable *Show advanced options* there will be a field into which you can enter the URL for a start-script (in either original or URI encoded forms). When O +Start scripts can also be used outside of Demo mode. In the normal workflow, the user will be taken to the "Run Medley" page. On the Run Medley page, if you enable *Show advanced options* there will be a field into which you can enter the URL for a start-script (in either original or URI encoded forms). When Online Medley starts up, the specified start script will be download and LOADed as in Demo mode. + +Additionally, i + + @@ -51,6 +55,6 @@ Start scripts can also be used outside of Demo mode. In the normal workflow, th > Written with [StackEdit](https://stackedit.io/). \ No newline at end of file From 1f3c575d6a6332ffc710ff2ec3264badac5cc581 Mon Sep 17 00:00:00 2001 From: Frank Halasz Date: Sun, 16 Nov 2025 17:19:38 -0800 Subject: [PATCH 131/166] docs/Demo_mode.md updated from https://stackedit.io/ --- docs/Demo_mode.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/Demo_mode.md b/docs/Demo_mode.md index dbb13743..3139c8ac 100644 --- a/docs/Demo_mode.md +++ b/docs/Demo_mode.md @@ -32,7 +32,7 @@ Below is the start-script for a demo of INSPHEX. The start-script defines and t Start scripts can also be used outside of Demo mode. In the normal workflow, the user will be taken to the "Run Medley" page. On the Run Medley page, if you enable *Show advanced options* there will be a field into which you can enter the URL for a start-script (in either original or URI encoded forms). When Online Medley starts up, the specified start script will be download and LOADed as in Demo mode. -Additionally, i +Additionally, if a ```start=``` query parameter is included in the URL used to access OIO (outside of Demo mode), then the decoded @@ -55,6 +55,6 @@ Additionally, i > Written with [StackEdit](https://stackedit.io/). \ No newline at end of file From b5a9dafb57d19c82d5d88b7e61e23aa820e0c9a1 Mon Sep 17 00:00:00 2001 From: Frank Halasz Date: Sun, 16 Nov 2025 17:21:09 -0800 Subject: [PATCH 132/166] docs/Demo_mode.md updated from https://stackedit.io/ --- docs/Demo_mode.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/Demo_mode.md b/docs/Demo_mode.md index 3139c8ac..d455221f 100644 --- a/docs/Demo_mode.md +++ b/docs/Demo_mode.md @@ -32,7 +32,7 @@ Below is the start-script for a demo of INSPHEX. The start-script defines and t Start scripts can also be used outside of Demo mode. In the normal workflow, the user will be taken to the "Run Medley" page. On the Run Medley page, if you enable *Show advanced options* there will be a field into which you can enter the URL for a start-script (in either original or URI encoded forms). When Online Medley starts up, the specified start script will be download and LOADed as in Demo mode. -Additionally, if a ```start=``` query parameter is included in the URL used to access OIO (outside of Demo mode), then the decoded +Additionally, if a ```start=``` query parameter is included in the URL used to access OIO (outside of Demo mode), then the specified URL (decoded) will be inserted into the Advanced Options/Start URL field on the Run Medley page. @@ -55,6 +55,6 @@ Additionally, if a ```start=``` query parameter is included in the > Written with [StackEdit](https://stackedit.io/). \ No newline at end of file From 06b471728fa0379f483c65b4624725c7e8a06275 Mon Sep 17 00:00:00 2001 From: Frank Halasz Date: Sun, 16 Nov 2025 17:22:40 -0800 Subject: [PATCH 133/166] docs/Demo_mode.md updated from https://stackedit.io/ --- docs/Demo_mode.md | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/docs/Demo_mode.md b/docs/Demo_mode.md index d455221f..b6219b6e 100644 --- a/docs/Demo_mode.md +++ b/docs/Demo_mode.md @@ -28,11 +28,15 @@ Most demos will require Lisp (or other) files that are not included in the stand Below is the start-script for a demo of INSPHEX. The start-script defines and then runs a function called START-INSPHEX. START-INPHEX in turn uses ShellWget to download the source code to INSPHEX from Github, compiles it, loads the compiled file and then uses ADD.PROCESS to run the main HEXDUMP function. There is some additional complication in the call to ADD.PROCESS to ensure that packages are handled correctly. Most exisitng Interlisp demos will not need this complexity since they don't use packages. +``` + +``` + ## Start scripts outside of Demo mode Start scripts can also be used outside of Demo mode. In the normal workflow, the user will be taken to the "Run Medley" page. On the Run Medley page, if you enable *Show advanced options* there will be a field into which you can enter the URL for a start-script (in either original or URI encoded forms). When Online Medley starts up, the specified start script will be download and LOADed as in Demo mode. -Additionally, if a ```start=``` query parameter is included in the URL used to access OIO (outside of Demo mode), then the specified URL (decoded) will be inserted into the Advanced Options/Start URL field on the Run Medley page. +Additionally, if a ```start=``` query parameter is included in the URL used to access OIO (outside of Demo mode), then the specified URL (decoded) will be prepopulated into the Advanced Options/Start URL field on the Run Medley page. @@ -55,6 +59,6 @@ Additionally, if a ```start=``` query parameter is included in the > Written with [StackEdit](https://stackedit.io/). \ No newline at end of file From 4cbfd0b015a8aa9624d741051b9cd39f103775b0 Mon Sep 17 00:00:00 2001 From: Frank Halasz Date: Sun, 16 Nov 2025 17:35:36 -0800 Subject: [PATCH 134/166] docs/Demo_mode.md updated from https://stackedit.io/ --- docs/Demo_mode.md | 92 +++++++++++++++-------------------------------- 1 file changed, 29 insertions(+), 63 deletions(-) diff --git a/docs/Demo_mode.md b/docs/Demo_mode.md index b6219b6e..830f2695 100644 --- a/docs/Demo_mode.md +++ b/docs/Demo_mode.md @@ -1,64 +1,30 @@ +--- + + +--- + +

Online.Interlisp.Org: Demo mode (aka Museum Mode)

+

Overview

+

When accessing online.interlisp.org (OIO) using Demo Mode, Online Medley will start up and at the end of processing the ONLINE-INIT file will automatically LOAD a lisp file (source or compiled, Interlisp or Medley CommonLisp) that was specified in the URL through which OIO was accessed. This lisp file is referred to as a start-script and the intention is that when it is LOADed it will run a demo by defining and/or LOADing additional lisp code and then starting up that demo, e.g., via a P file package command. Before the Online Medley run is started, the start-script file is downloaded using wgetinto a known file in the Medley file system from where it is LOADed by ONLINE-INIT.

+

An addition aspect of Demo Mode is that based on flags in the URL login processing can be skipped, the user automatically logged in as guest, and the Online Medley session started with no user interaction required. Alternatively, the login process can remain but the standard “Run Medley” page will be skipped and the user will go directly from login to the running Medley without having to set all the run parameters in the Run Medley page. Automatic guest login is sufficient for most demos. But requiring login allows demos to save files and context between runs of Online Medley, which is not possible with guest login.

+

Demo mode URLs

+

To access Demo mode, use the following URLs:

+

https://online.interlisp.og/demo?start=\<START-SCRIPT> for automatic guest login.
+https://online.interlisp.og/demo/login?start=\<START-SCRIPT> to require logins

+

<START-SCRIPT> is a URL pointing to a start-script lisp file that can be wget’d by the OIO server. This URL must be encoded using the equivalent of Javascript’s encodeURIComponent. The easiest way to do this is via one of the many websites that offer this service such as https://meyerweb.com/eric/tools/dencoder/.

+

In addition to the start query parameter, Demo mode supports the notecards=1 and rooms=1 query parameters. If these query parameters are included in the Demo mode URL, then NoteCards (and/or Rooms) will be automatically started when Online Medley runs, in addition to the start-script.

+

Any of the query parameters (start, notecards, rooms) can be left off, with the expected change of function. For example, https://online.interlisp.org/demo?notecards=1 will automatically login as guest and start notecards - but not run any start-script.

+

Example Demo mode URL: https://online.interlisp.org/demo?start=https%3A%2F%2Fgithub.com%2FInterlisp%2Fonline%2Fraw%2Frefs%2Fheads%2Ffgh_museum-mode%2Fstart-scripts%2FSTART-INSPHEX.LCOM&notecards=1. This URL will automatically login as guest, wget and LOAD the file START-INSPHEX.LCOM from the Interlisp/Online repo on github and start Notecards.

+

Start scripts

+

Sample start scripts can be found in the Interlisp/Online Github repo in the start-scripts directory.

+

Most demos will require Lisp (or other) files that are not included in the standard Online Medley image. One very handy function to be used in start-scripts for these demos is (ShellWget URL OUTFILE). This function will download (using wget) the file specified by URL and store it in the versioned Online Medley file system under the name OUTFILE. OUTFILE can then be LOADed in the start-script.

+

Below is the start-script for a demo of INSPHEX. The start-script defines and then runs a function called START-INSPHEX. START-INPHEX in turn uses ShellWget to download the source code to INSPHEX from Github, compiles it, loads the compiled file and then uses ADD.PROCESS to run the main HEXDUMP function. There is some additional complication in the call to ADD.PROCESS to ensure that packages are handled correctly. Most exisitng Interlisp demos will not need this complexity since they don’t use packages.

+

+
+

Start scripts outside of Demo mode

+

Start scripts can also be used outside of Demo mode. In the normal workflow, the user will be taken to the “Run Medley” page. On the Run Medley page, if you enable Show advanced options there will be a field into which you can enter the URL for a start-script (in either original or URI encoded forms). When Online Medley starts up, the specified start script will be download and LOADed as in Demo mode.

+

Additionally, if a start=<encoded start-script URL> query parameter is included in the URL used to access OIO (outside of Demo mode), then the specified URL (decoded) will be prepopulated into the Advanced Options/Start URL field on the Run Medley page.

+
+

Written with StackEdit.

+
-# Online.Interlisp.Org: Demo mode (aka Museum Mode) -## Overview - -When accessing online.interlisp.org (OIO) using Demo Mode, Online Medley will start up and at the end of processing the ONLINE-INIT file will automatically LOAD a lisp file (source or compiled, Interlisp or Medley CommonLisp) that was specified in the URL through which OIO was accessed. This lisp file is referred to as a *start-script* and the intention is that when it is LOADed it will run a demo by defining and/or LOADing additional lisp code and then starting up that demo, e.g., via a P file package command. Before the Online Medley run is started, the start-script file is downloaded using ```wget```into a known file in the Medley file system from where it is LOADed by ONLINE-INIT. - -An addition aspect of Demo Mode is that based on flags in the URL login processing can be skipped, the user automatically logged in as guest, and the Online Medley session started with no user interaction required. Alternatively, the login process can remain but the standard "Run Medley" page will be skipped and the user will go directly from login to the running Medley without having to set all the run parameters in the Run Medley page. Automatic guest login is sufficient for most demos. But requiring login allows demos to save files and context between runs of Online Medley, which is not possible with guest login. - -## Demo mode URLs -To access Demo mode, use the following URLs: - -```https://online.interlisp.og/demo?start=\``` for automatic guest login. -```https://online.interlisp.og/demo/login?start=\``` to require logins - -`````` is a URL pointing to a start-script lisp file that can be wget'd by the OIO server. **This URL must be encoded using the equivalent of Javascript's *encodeURIComponent*.** The easiest way to do this is via one of the many websites that offer this service such as https://meyerweb.com/eric/tools/dencoder/. - -In addition to the *start* query parameter, Demo mode supports the *notecards=1* and *rooms=1* query parameters. If these query parameters are included in the Demo mode URL, then NoteCards (and/or Rooms) will be automatically started when Online Medley runs, in addition to the start-script. - -Any of the query parameters (start, notecards, rooms) can be left off, with the expected change of function. For example, https://online.interlisp.org/demo?notecards=1 will automatically login as guest and start notecards - but not run any start-script. - -Example Demo mode URL: https://online.interlisp.org/demo?start=https%3A%2F%2Fgithub.com%2FInterlisp%2Fonline%2Fraw%2Frefs%2Fheads%2Ffgh_museum-mode%2Fstart-scripts%2FSTART-INSPHEX.LCOM¬ecards=1. This URL will automatically login as guest, wget and LOAD the file START-INSPHEX.LCOM from the Interlisp/Online repo on github and start Notecards. - -## Start scripts - -Sample start scripts can be found in the Interlisp/Online Github repo in the start-scripts directory. - -Most demos will require Lisp (or other) files that are not included in the standard Online Medley image. One very handy function to be used in start-scripts for these demos is ```(ShellWget URL OUTFILE)```. This function will download (using wget) the file specified by URL and store it in the versioned Online Medley file system under the name OUTFILE. OUTFILE can then be LOADed in the start-script. - -Below is the start-script for a demo of INSPHEX. The start-script defines and then runs a function called START-INSPHEX. START-INPHEX in turn uses ShellWget to download the source code to INSPHEX from Github, compiles it, loads the compiled file and then uses ADD.PROCESS to run the main HEXDUMP function. There is some additional complication in the call to ADD.PROCESS to ensure that packages are handled correctly. Most exisitng Interlisp demos will not need this complexity since they don't use packages. - -``` - -``` - -## Start scripts outside of Demo mode - -Start scripts can also be used outside of Demo mode. In the normal workflow, the user will be taken to the "Run Medley" page. On the Run Medley page, if you enable *Show advanced options* there will be a field into which you can enter the URL for a start-script (in either original or URI encoded forms). When Online Medley starts up, the specified start script will be download and LOADed as in Demo mode. - -Additionally, if a ```start=``` query parameter is included in the URL used to access OIO (outside of Demo mode), then the specified URL (decoded) will be prepopulated into the Advanced Options/Start URL field on the Run Medley page. - - - - - - - - - - - - - - - - - - - - -> Written with [StackEdit](https://stackedit.io/). - \ No newline at end of file From 569f9392f92ee10527e75f7f2670d1999cd76335 Mon Sep 17 00:00:00 2001 From: Frank Halasz Date: Sun, 16 Nov 2025 17:36:13 -0800 Subject: [PATCH 135/166] docs/Demo_mode.eyJicmFuY2giOiJmZ2hfbXVzZXVtLW1vZGUiLCJvd25lciI6ImludGVybGlzcCIsInBhdGgiOiJkb2NzL0RlbW9fbW9kZS5tZCIsInByb3ZpZGVySWQiOiJnaXRodWIiLCJyZXBvIjoib25saW5lIiwic3ViIjoiMTI1MTUzOSIsInRlbXBsYXRlSWQiOiJqZWt5bGxTaXRlIn0.publish created from https://stackedit.io/ --- ...3ViIjoiMTI1MTUzOSIsInRlbXBsYXRlSWQiOiJqZWt5bGxTaXRlIn0.publish | 0 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 docs/Demo_mode.eyJicmFuY2giOiJmZ2hfbXVzZXVtLW1vZGUiLCJvd25lciI6ImludGVybGlzcCIsInBhdGgiOiJkb2NzL0RlbW9fbW9kZS5tZCIsInByb3ZpZGVySWQiOiJnaXRodWIiLCJyZXBvIjoib25saW5lIiwic3ViIjoiMTI1MTUzOSIsInRlbXBsYXRlSWQiOiJqZWt5bGxTaXRlIn0.publish diff --git a/docs/Demo_mode.eyJicmFuY2giOiJmZ2hfbXVzZXVtLW1vZGUiLCJvd25lciI6ImludGVybGlzcCIsInBhdGgiOiJkb2NzL0RlbW9fbW9kZS5tZCIsInByb3ZpZGVySWQiOiJnaXRodWIiLCJyZXBvIjoib25saW5lIiwic3ViIjoiMTI1MTUzOSIsInRlbXBsYXRlSWQiOiJqZWt5bGxTaXRlIn0.publish b/docs/Demo_mode.eyJicmFuY2giOiJmZ2hfbXVzZXVtLW1vZGUiLCJvd25lciI6ImludGVybGlzcCIsInBhdGgiOiJkb2NzL0RlbW9fbW9kZS5tZCIsInByb3ZpZGVySWQiOiJnaXRodWIiLCJyZXBvIjoib25saW5lIiwic3ViIjoiMTI1MTUzOSIsInRlbXBsYXRlSWQiOiJqZWt5bGxTaXRlIn0.publish new file mode 100644 index 00000000..e69de29b From 3d03e787e2bc6ec8804ead82588025625a8de9b0 Mon Sep 17 00:00:00 2001 From: Frank Halasz Date: Sun, 16 Nov 2025 20:35:22 -0800 Subject: [PATCH 136/166] docs/Demo_mode.md updated from https://stackedit.io/ --- docs/Demo_mode.md | 91 ++++++++++++++++++++++++++++++++--------------- 1 file changed, 62 insertions(+), 29 deletions(-) diff --git a/docs/Demo_mode.md b/docs/Demo_mode.md index 830f2695..04bc712c 100644 --- a/docs/Demo_mode.md +++ b/docs/Demo_mode.md @@ -1,30 +1,63 @@ ---- - - ---- - -

Online.Interlisp.Org: Demo mode (aka Museum Mode)

-

Overview

-

When accessing online.interlisp.org (OIO) using Demo Mode, Online Medley will start up and at the end of processing the ONLINE-INIT file will automatically LOAD a lisp file (source or compiled, Interlisp or Medley CommonLisp) that was specified in the URL through which OIO was accessed. This lisp file is referred to as a start-script and the intention is that when it is LOADed it will run a demo by defining and/or LOADing additional lisp code and then starting up that demo, e.g., via a P file package command. Before the Online Medley run is started, the start-script file is downloaded using wgetinto a known file in the Medley file system from where it is LOADed by ONLINE-INIT.

-

An addition aspect of Demo Mode is that based on flags in the URL login processing can be skipped, the user automatically logged in as guest, and the Online Medley session started with no user interaction required. Alternatively, the login process can remain but the standard “Run Medley” page will be skipped and the user will go directly from login to the running Medley without having to set all the run parameters in the Run Medley page. Automatic guest login is sufficient for most demos. But requiring login allows demos to save files and context between runs of Online Medley, which is not possible with guest login.

-

Demo mode URLs

-

To access Demo mode, use the following URLs:

-

https://online.interlisp.og/demo?start=\<START-SCRIPT> for automatic guest login.
-https://online.interlisp.og/demo/login?start=\<START-SCRIPT> to require logins

-

<START-SCRIPT> is a URL pointing to a start-script lisp file that can be wget’d by the OIO server. This URL must be encoded using the equivalent of Javascript’s encodeURIComponent. The easiest way to do this is via one of the many websites that offer this service such as https://meyerweb.com/eric/tools/dencoder/.

-

In addition to the start query parameter, Demo mode supports the notecards=1 and rooms=1 query parameters. If these query parameters are included in the Demo mode URL, then NoteCards (and/or Rooms) will be automatically started when Online Medley runs, in addition to the start-script.

-

Any of the query parameters (start, notecards, rooms) can be left off, with the expected change of function. For example, https://online.interlisp.org/demo?notecards=1 will automatically login as guest and start notecards - but not run any start-script.

-

Example Demo mode URL: https://online.interlisp.org/demo?start=https%3A%2F%2Fgithub.com%2FInterlisp%2Fonline%2Fraw%2Frefs%2Fheads%2Ffgh_museum-mode%2Fstart-scripts%2FSTART-INSPHEX.LCOM&notecards=1. This URL will automatically login as guest, wget and LOAD the file START-INSPHEX.LCOM from the Interlisp/Online repo on github and start Notecards.

-

Start scripts

-

Sample start scripts can be found in the Interlisp/Online Github repo in the start-scripts directory.

-

Most demos will require Lisp (or other) files that are not included in the standard Online Medley image. One very handy function to be used in start-scripts for these demos is (ShellWget URL OUTFILE). This function will download (using wget) the file specified by URL and store it in the versioned Online Medley file system under the name OUTFILE. OUTFILE can then be LOADed in the start-script.

-

Below is the start-script for a demo of INSPHEX. The start-script defines and then runs a function called START-INSPHEX. START-INPHEX in turn uses ShellWget to download the source code to INSPHEX from Github, compiles it, loads the compiled file and then uses ADD.PROCESS to run the main HEXDUMP function. There is some additional complication in the call to ADD.PROCESS to ensure that packages are handled correctly. Most exisitng Interlisp demos will not need this complexity since they don’t use packages.

-

-
-

Start scripts outside of Demo mode

-

Start scripts can also be used outside of Demo mode. In the normal workflow, the user will be taken to the “Run Medley” page. On the Run Medley page, if you enable Show advanced options there will be a field into which you can enter the URL for a start-script (in either original or URI encoded forms). When Online Medley starts up, the specified start script will be download and LOADed as in Demo mode.

-

Additionally, if a start=<encoded start-script URL> query parameter is included in the URL used to access OIO (outside of Demo mode), then the specified URL (decoded) will be prepopulated into the Advanced Options/Start URL field on the Run Medley page.

-
-

Written with StackEdit.

-
+# Online.Interlisp.Org: Demo mode (aka Museum Mode) +## Overview + +When accessing online.interlisp.org (OIO) using Demo Mode, Online Medley will start up and at the end of processing the ONLINE-INIT file will automatically LOAD a lisp file (source or compiled, Interlisp or Medley CommonLisp) that was specified in the URL through which OIO was accessed. This lisp file is referred to as a *start-script* and the intention is that when it is LOADed it will run a demo by defining and/or LOADing additional lisp code and then starting up that demo, e.g., via a P file package command. Before the Online Medley run is started, the start-script file is downloaded using ```wget```into a known file in the Medley file system from where it is LOADed by ONLINE-INIT. + +An addition aspect of Demo Mode is that based on flags in the URL login processing can be skipped, the user automatically logged in as guest, and the Online Medley session started with no user interaction required. Alternatively, the login process can remain but the standard "Run Medley" page will be skipped and the user will go directly from login to the running Medley without having to set all the run parameters in the Run Medley page. Automatic guest login is sufficient for most demos. But requiring login allows demos to save files and context between runs of Online Medley, which is not possible with guest login. + +## Demo mode URLs +To access Demo mode, use the following URLs: + +```https://online.interlisp.og/demo?start=\``` for automatic guest login. +```https://online.interlisp.og/demo/login?start=\``` to require logins + +`````` is a URL pointing to a start-script lisp file that can be wget'd by the OIO server. **This URL must be encoded using the equivalent of Javascript's *encodeURIComponent*.** The easiest way to do this is via one of the many websites that offer this service such as https://meyerweb.com/eric/tools/dencoder/. + +In addition to the *start* query parameter, Demo mode supports the *notecards=1* and *rooms=1* query parameters. If these query parameters are included in the Demo mode URL, then NoteCards (and/or Rooms) will be automatically started when Online Medley runs, in addition to the start-script. + +Any of the query parameters (start, notecards, rooms) can be left off, with the expected change of function. For example, https://online.interlisp.org/demo?notecards=1 will automatically login as guest and start notecards - but not run any start-script. + +Example Demo mode URL: https://online.interlisp.org/demo?start=https%3A%2F%2Fgithub.com%2FInterlisp%2Fonline%2Fraw%2Frefs%2Fheads%2Ffgh_museum-mode%2Fstart-scripts%2FSTART-INSPHEX.LCOM¬ecards=1. This URL will automatically login as guest, wget and LOAD the file START-INSPHEX.LCOM from the Interlisp/Online repo on github and start Notecards. + +## Start scripts + +Sample start scripts can be found in the Interlisp/Online Github repo in the start-scripts directory. + +Most demos will require Lisp (or other) files that are not included in the standard Online Medley image. One very handy function to be used in start-scripts for these demos is ```(ShellWget URL OUTFILE)```. This function will download (using wget) the file specified by URL and store it in the versioned Online Medley file system under the name OUTFILE. OUTFILE can then be LOADed in the start-script. + +Below is the start-script for a demo of INSPHEX. The start-script defines and then runs a function called START-INSPHEX. START-INPHEX in turn uses ShellWget to download the source code to INSPHEX from Github, compiles it, loads the compiled file and then uses ADD.PROCESS to run the main HEXDUMP function. There is some additional complication in the call to ADD.PROCESS to ensure that packages are handled correctly. Most exisitng Interlisp demos will not need this complexity since they don't use packages. + +``` + +``` + +## Start scripts outside of Demo mode + +Start scripts can also be used outside of Demo mode. In the normal workflow, the user will be taken to the "Run Medley" page. On the Run Medley page, if you enable *Show advanced options* there will be a field into which you can enter the URL for a start-script (in either original or URI encoded forms). When Online Medley starts up, the specified start script will be download and LOADed as in Demo mode. + +Additionally, if a ```start=``` query parameter is included in the URL used to access OIO (outside of Demo mode), then the specified URL (decoded) will be prepopulated into the Advanced Options/Start URL field on the Run Medley page. + + + + + + + + + + + + + + + + + + + + +> Written with [StackEdit](https://stackedit.io/). + \ No newline at end of file From 041963b96ddd077436334581105cbf42b2fcb4d9 Mon Sep 17 00:00:00 2001 From: Frank Halasz Date: Sun, 16 Nov 2025 20:36:13 -0800 Subject: [PATCH 137/166] docs/Demo_mode.md updated from https://stackedit.io/ --- docs/Demo_mode.md | 91 +++++++++++++++-------------------------------- 1 file changed, 29 insertions(+), 62 deletions(-) diff --git a/docs/Demo_mode.md b/docs/Demo_mode.md index 04bc712c..830f2695 100644 --- a/docs/Demo_mode.md +++ b/docs/Demo_mode.md @@ -1,63 +1,30 @@ +--- + + +--- + +

Online.Interlisp.Org: Demo mode (aka Museum Mode)

+

Overview

+

When accessing online.interlisp.org (OIO) using Demo Mode, Online Medley will start up and at the end of processing the ONLINE-INIT file will automatically LOAD a lisp file (source or compiled, Interlisp or Medley CommonLisp) that was specified in the URL through which OIO was accessed. This lisp file is referred to as a start-script and the intention is that when it is LOADed it will run a demo by defining and/or LOADing additional lisp code and then starting up that demo, e.g., via a P file package command. Before the Online Medley run is started, the start-script file is downloaded using wgetinto a known file in the Medley file system from where it is LOADed by ONLINE-INIT.

+

An addition aspect of Demo Mode is that based on flags in the URL login processing can be skipped, the user automatically logged in as guest, and the Online Medley session started with no user interaction required. Alternatively, the login process can remain but the standard “Run Medley” page will be skipped and the user will go directly from login to the running Medley without having to set all the run parameters in the Run Medley page. Automatic guest login is sufficient for most demos. But requiring login allows demos to save files and context between runs of Online Medley, which is not possible with guest login.

+

Demo mode URLs

+

To access Demo mode, use the following URLs:

+

https://online.interlisp.og/demo?start=\<START-SCRIPT> for automatic guest login.
+https://online.interlisp.og/demo/login?start=\<START-SCRIPT> to require logins

+

<START-SCRIPT> is a URL pointing to a start-script lisp file that can be wget’d by the OIO server. This URL must be encoded using the equivalent of Javascript’s encodeURIComponent. The easiest way to do this is via one of the many websites that offer this service such as https://meyerweb.com/eric/tools/dencoder/.

+

In addition to the start query parameter, Demo mode supports the notecards=1 and rooms=1 query parameters. If these query parameters are included in the Demo mode URL, then NoteCards (and/or Rooms) will be automatically started when Online Medley runs, in addition to the start-script.

+

Any of the query parameters (start, notecards, rooms) can be left off, with the expected change of function. For example, https://online.interlisp.org/demo?notecards=1 will automatically login as guest and start notecards - but not run any start-script.

+

Example Demo mode URL: https://online.interlisp.org/demo?start=https%3A%2F%2Fgithub.com%2FInterlisp%2Fonline%2Fraw%2Frefs%2Fheads%2Ffgh_museum-mode%2Fstart-scripts%2FSTART-INSPHEX.LCOM&notecards=1. This URL will automatically login as guest, wget and LOAD the file START-INSPHEX.LCOM from the Interlisp/Online repo on github and start Notecards.

+

Start scripts

+

Sample start scripts can be found in the Interlisp/Online Github repo in the start-scripts directory.

+

Most demos will require Lisp (or other) files that are not included in the standard Online Medley image. One very handy function to be used in start-scripts for these demos is (ShellWget URL OUTFILE). This function will download (using wget) the file specified by URL and store it in the versioned Online Medley file system under the name OUTFILE. OUTFILE can then be LOADed in the start-script.

+

Below is the start-script for a demo of INSPHEX. The start-script defines and then runs a function called START-INSPHEX. START-INPHEX in turn uses ShellWget to download the source code to INSPHEX from Github, compiles it, loads the compiled file and then uses ADD.PROCESS to run the main HEXDUMP function. There is some additional complication in the call to ADD.PROCESS to ensure that packages are handled correctly. Most exisitng Interlisp demos will not need this complexity since they don’t use packages.

+

+
+

Start scripts outside of Demo mode

+

Start scripts can also be used outside of Demo mode. In the normal workflow, the user will be taken to the “Run Medley” page. On the Run Medley page, if you enable Show advanced options there will be a field into which you can enter the URL for a start-script (in either original or URI encoded forms). When Online Medley starts up, the specified start script will be download and LOADed as in Demo mode.

+

Additionally, if a start=<encoded start-script URL> query parameter is included in the URL used to access OIO (outside of Demo mode), then the specified URL (decoded) will be prepopulated into the Advanced Options/Start URL field on the Run Medley page.

+
+

Written with StackEdit.

+
-# Online.Interlisp.Org: Demo mode (aka Museum Mode) -## Overview - -When accessing online.interlisp.org (OIO) using Demo Mode, Online Medley will start up and at the end of processing the ONLINE-INIT file will automatically LOAD a lisp file (source or compiled, Interlisp or Medley CommonLisp) that was specified in the URL through which OIO was accessed. This lisp file is referred to as a *start-script* and the intention is that when it is LOADed it will run a demo by defining and/or LOADing additional lisp code and then starting up that demo, e.g., via a P file package command. Before the Online Medley run is started, the start-script file is downloaded using ```wget```into a known file in the Medley file system from where it is LOADed by ONLINE-INIT. - -An addition aspect of Demo Mode is that based on flags in the URL login processing can be skipped, the user automatically logged in as guest, and the Online Medley session started with no user interaction required. Alternatively, the login process can remain but the standard "Run Medley" page will be skipped and the user will go directly from login to the running Medley without having to set all the run parameters in the Run Medley page. Automatic guest login is sufficient for most demos. But requiring login allows demos to save files and context between runs of Online Medley, which is not possible with guest login. - -## Demo mode URLs -To access Demo mode, use the following URLs: - -```https://online.interlisp.og/demo?start=\``` for automatic guest login. -```https://online.interlisp.og/demo/login?start=\``` to require logins - -`````` is a URL pointing to a start-script lisp file that can be wget'd by the OIO server. **This URL must be encoded using the equivalent of Javascript's *encodeURIComponent*.** The easiest way to do this is via one of the many websites that offer this service such as https://meyerweb.com/eric/tools/dencoder/. - -In addition to the *start* query parameter, Demo mode supports the *notecards=1* and *rooms=1* query parameters. If these query parameters are included in the Demo mode URL, then NoteCards (and/or Rooms) will be automatically started when Online Medley runs, in addition to the start-script. - -Any of the query parameters (start, notecards, rooms) can be left off, with the expected change of function. For example, https://online.interlisp.org/demo?notecards=1 will automatically login as guest and start notecards - but not run any start-script. - -Example Demo mode URL: https://online.interlisp.org/demo?start=https%3A%2F%2Fgithub.com%2FInterlisp%2Fonline%2Fraw%2Frefs%2Fheads%2Ffgh_museum-mode%2Fstart-scripts%2FSTART-INSPHEX.LCOM¬ecards=1. This URL will automatically login as guest, wget and LOAD the file START-INSPHEX.LCOM from the Interlisp/Online repo on github and start Notecards. - -## Start scripts - -Sample start scripts can be found in the Interlisp/Online Github repo in the start-scripts directory. - -Most demos will require Lisp (or other) files that are not included in the standard Online Medley image. One very handy function to be used in start-scripts for these demos is ```(ShellWget URL OUTFILE)```. This function will download (using wget) the file specified by URL and store it in the versioned Online Medley file system under the name OUTFILE. OUTFILE can then be LOADed in the start-script. - -Below is the start-script for a demo of INSPHEX. The start-script defines and then runs a function called START-INSPHEX. START-INPHEX in turn uses ShellWget to download the source code to INSPHEX from Github, compiles it, loads the compiled file and then uses ADD.PROCESS to run the main HEXDUMP function. There is some additional complication in the call to ADD.PROCESS to ensure that packages are handled correctly. Most exisitng Interlisp demos will not need this complexity since they don't use packages. - -``` - -``` - -## Start scripts outside of Demo mode - -Start scripts can also be used outside of Demo mode. In the normal workflow, the user will be taken to the "Run Medley" page. On the Run Medley page, if you enable *Show advanced options* there will be a field into which you can enter the URL for a start-script (in either original or URI encoded forms). When Online Medley starts up, the specified start script will be download and LOADed as in Demo mode. - -Additionally, if a ```start=``` query parameter is included in the URL used to access OIO (outside of Demo mode), then the specified URL (decoded) will be prepopulated into the Advanced Options/Start URL field on the Run Medley page. - - - - - - - - - - - - - - - - - - - - -> Written with [StackEdit](https://stackedit.io/). - \ No newline at end of file From 716f6e3877c7753d42963a30a1c790a0bb72b290 Mon Sep 17 00:00:00 2001 From: Frank Halasz Date: Sun, 16 Nov 2025 20:36:53 -0800 Subject: [PATCH 138/166] docs/Demo_mode.md updated from https://stackedit.io/ --- docs/Demo_mode.md | 91 ++++++++++++++++++++++++++++++++--------------- 1 file changed, 62 insertions(+), 29 deletions(-) diff --git a/docs/Demo_mode.md b/docs/Demo_mode.md index 830f2695..04bc712c 100644 --- a/docs/Demo_mode.md +++ b/docs/Demo_mode.md @@ -1,30 +1,63 @@ ---- - - ---- - -

Online.Interlisp.Org: Demo mode (aka Museum Mode)

-

Overview

-

When accessing online.interlisp.org (OIO) using Demo Mode, Online Medley will start up and at the end of processing the ONLINE-INIT file will automatically LOAD a lisp file (source or compiled, Interlisp or Medley CommonLisp) that was specified in the URL through which OIO was accessed. This lisp file is referred to as a start-script and the intention is that when it is LOADed it will run a demo by defining and/or LOADing additional lisp code and then starting up that demo, e.g., via a P file package command. Before the Online Medley run is started, the start-script file is downloaded using wgetinto a known file in the Medley file system from where it is LOADed by ONLINE-INIT.

-

An addition aspect of Demo Mode is that based on flags in the URL login processing can be skipped, the user automatically logged in as guest, and the Online Medley session started with no user interaction required. Alternatively, the login process can remain but the standard “Run Medley” page will be skipped and the user will go directly from login to the running Medley without having to set all the run parameters in the Run Medley page. Automatic guest login is sufficient for most demos. But requiring login allows demos to save files and context between runs of Online Medley, which is not possible with guest login.

-

Demo mode URLs

-

To access Demo mode, use the following URLs:

-

https://online.interlisp.og/demo?start=\<START-SCRIPT> for automatic guest login.
-https://online.interlisp.og/demo/login?start=\<START-SCRIPT> to require logins

-

<START-SCRIPT> is a URL pointing to a start-script lisp file that can be wget’d by the OIO server. This URL must be encoded using the equivalent of Javascript’s encodeURIComponent. The easiest way to do this is via one of the many websites that offer this service such as https://meyerweb.com/eric/tools/dencoder/.

-

In addition to the start query parameter, Demo mode supports the notecards=1 and rooms=1 query parameters. If these query parameters are included in the Demo mode URL, then NoteCards (and/or Rooms) will be automatically started when Online Medley runs, in addition to the start-script.

-

Any of the query parameters (start, notecards, rooms) can be left off, with the expected change of function. For example, https://online.interlisp.org/demo?notecards=1 will automatically login as guest and start notecards - but not run any start-script.

-

Example Demo mode URL: https://online.interlisp.org/demo?start=https%3A%2F%2Fgithub.com%2FInterlisp%2Fonline%2Fraw%2Frefs%2Fheads%2Ffgh_museum-mode%2Fstart-scripts%2FSTART-INSPHEX.LCOM&notecards=1. This URL will automatically login as guest, wget and LOAD the file START-INSPHEX.LCOM from the Interlisp/Online repo on github and start Notecards.

-

Start scripts

-

Sample start scripts can be found in the Interlisp/Online Github repo in the start-scripts directory.

-

Most demos will require Lisp (or other) files that are not included in the standard Online Medley image. One very handy function to be used in start-scripts for these demos is (ShellWget URL OUTFILE). This function will download (using wget) the file specified by URL and store it in the versioned Online Medley file system under the name OUTFILE. OUTFILE can then be LOADed in the start-script.

-

Below is the start-script for a demo of INSPHEX. The start-script defines and then runs a function called START-INSPHEX. START-INPHEX in turn uses ShellWget to download the source code to INSPHEX from Github, compiles it, loads the compiled file and then uses ADD.PROCESS to run the main HEXDUMP function. There is some additional complication in the call to ADD.PROCESS to ensure that packages are handled correctly. Most exisitng Interlisp demos will not need this complexity since they don’t use packages.

-

-
-

Start scripts outside of Demo mode

-

Start scripts can also be used outside of Demo mode. In the normal workflow, the user will be taken to the “Run Medley” page. On the Run Medley page, if you enable Show advanced options there will be a field into which you can enter the URL for a start-script (in either original or URI encoded forms). When Online Medley starts up, the specified start script will be download and LOADed as in Demo mode.

-

Additionally, if a start=<encoded start-script URL> query parameter is included in the URL used to access OIO (outside of Demo mode), then the specified URL (decoded) will be prepopulated into the Advanced Options/Start URL field on the Run Medley page.

-
-

Written with StackEdit.

-
+# Online.Interlisp.Org: Demo mode (aka Museum Mode) +## Overview + +When accessing online.interlisp.org (OIO) using Demo Mode, Online Medley will start up and at the end of processing the ONLINE-INIT file will automatically LOAD a lisp file (source or compiled, Interlisp or Medley CommonLisp) that was specified in the URL through which OIO was accessed. This lisp file is referred to as a *start-script* and the intention is that when it is LOADed it will run a demo by defining and/or LOADing additional lisp code and then starting up that demo, e.g., via a P file package command. Before the Online Medley run is started, the start-script file is downloaded using ```wget```into a known file in the Medley file system from where it is LOADed by ONLINE-INIT. + +An addition aspect of Demo Mode is that based on flags in the URL login processing can be skipped, the user automatically logged in as guest, and the Online Medley session started with no user interaction required. Alternatively, the login process can remain but the standard "Run Medley" page will be skipped and the user will go directly from login to the running Medley without having to set all the run parameters in the Run Medley page. Automatic guest login is sufficient for most demos. But requiring login allows demos to save files and context between runs of Online Medley, which is not possible with guest login. + +## Demo mode URLs +To access Demo mode, use the following URLs: + +```https://online.interlisp.og/demo?start=\``` for automatic guest login. +```https://online.interlisp.og/demo/login?start=\``` to require logins + +`````` is a URL pointing to a start-script lisp file that can be wget'd by the OIO server. **This URL must be encoded using the equivalent of Javascript's *encodeURIComponent*.** The easiest way to do this is via one of the many websites that offer this service such as https://meyerweb.com/eric/tools/dencoder/. + +In addition to the *start* query parameter, Demo mode supports the *notecards=1* and *rooms=1* query parameters. If these query parameters are included in the Demo mode URL, then NoteCards (and/or Rooms) will be automatically started when Online Medley runs, in addition to the start-script. + +Any of the query parameters (start, notecards, rooms) can be left off, with the expected change of function. For example, https://online.interlisp.org/demo?notecards=1 will automatically login as guest and start notecards - but not run any start-script. + +Example Demo mode URL: https://online.interlisp.org/demo?start=https%3A%2F%2Fgithub.com%2FInterlisp%2Fonline%2Fraw%2Frefs%2Fheads%2Ffgh_museum-mode%2Fstart-scripts%2FSTART-INSPHEX.LCOM¬ecards=1. This URL will automatically login as guest, wget and LOAD the file START-INSPHEX.LCOM from the Interlisp/Online repo on github and start Notecards. + +## Start scripts + +Sample start scripts can be found in the Interlisp/Online Github repo in the start-scripts directory. + +Most demos will require Lisp (or other) files that are not included in the standard Online Medley image. One very handy function to be used in start-scripts for these demos is ```(ShellWget URL OUTFILE)```. This function will download (using wget) the file specified by URL and store it in the versioned Online Medley file system under the name OUTFILE. OUTFILE can then be LOADed in the start-script. + +Below is the start-script for a demo of INSPHEX. The start-script defines and then runs a function called START-INSPHEX. START-INPHEX in turn uses ShellWget to download the source code to INSPHEX from Github, compiles it, loads the compiled file and then uses ADD.PROCESS to run the main HEXDUMP function. There is some additional complication in the call to ADD.PROCESS to ensure that packages are handled correctly. Most exisitng Interlisp demos will not need this complexity since they don't use packages. + +``` + +``` + +## Start scripts outside of Demo mode + +Start scripts can also be used outside of Demo mode. In the normal workflow, the user will be taken to the "Run Medley" page. On the Run Medley page, if you enable *Show advanced options* there will be a field into which you can enter the URL for a start-script (in either original or URI encoded forms). When Online Medley starts up, the specified start script will be download and LOADed as in Demo mode. + +Additionally, if a ```start=``` query parameter is included in the URL used to access OIO (outside of Demo mode), then the specified URL (decoded) will be prepopulated into the Advanced Options/Start URL field on the Run Medley page. + + + + + + + + + + + + + + + + + + + + +> Written with [StackEdit](https://stackedit.io/). + \ No newline at end of file From 71c80cdaaacc5dca2805a88ef6d1cca83a1af9c3 Mon Sep 17 00:00:00 2001 From: Frank Halasz Date: Sun, 16 Nov 2025 20:41:26 -0800 Subject: [PATCH 139/166] docs/Demo_mode.eyJicmFuY2giOiJmZ2hfbXVzZXVtLW1vZGUiLCJvd25lciI6ImludGVybGlzcCIsInBhdGgiOiJkb2NzL0RlbW9fbW9kZS5tZCIsInByb3ZpZGVySWQiOiJnaXRodWIiLCJyZXBvIjoib25saW5lIiwic3ViIjoiMTI1MTUzOSIsInRlbXBsYXRlSWQiOiJqZWt5bGxTaXRlIn0.publish deleted from https://stackedit.io/ --- ...3ViIjoiMTI1MTUzOSIsInRlbXBsYXRlSWQiOiJqZWt5bGxTaXRlIn0.publish | 0 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 docs/Demo_mode.eyJicmFuY2giOiJmZ2hfbXVzZXVtLW1vZGUiLCJvd25lciI6ImludGVybGlzcCIsInBhdGgiOiJkb2NzL0RlbW9fbW9kZS5tZCIsInByb3ZpZGVySWQiOiJnaXRodWIiLCJyZXBvIjoib25saW5lIiwic3ViIjoiMTI1MTUzOSIsInRlbXBsYXRlSWQiOiJqZWt5bGxTaXRlIn0.publish diff --git a/docs/Demo_mode.eyJicmFuY2giOiJmZ2hfbXVzZXVtLW1vZGUiLCJvd25lciI6ImludGVybGlzcCIsInBhdGgiOiJkb2NzL0RlbW9fbW9kZS5tZCIsInByb3ZpZGVySWQiOiJnaXRodWIiLCJyZXBvIjoib25saW5lIiwic3ViIjoiMTI1MTUzOSIsInRlbXBsYXRlSWQiOiJqZWt5bGxTaXRlIn0.publish b/docs/Demo_mode.eyJicmFuY2giOiJmZ2hfbXVzZXVtLW1vZGUiLCJvd25lciI6ImludGVybGlzcCIsInBhdGgiOiJkb2NzL0RlbW9fbW9kZS5tZCIsInByb3ZpZGVySWQiOiJnaXRodWIiLCJyZXBvIjoib25saW5lIiwic3ViIjoiMTI1MTUzOSIsInRlbXBsYXRlSWQiOiJqZWt5bGxTaXRlIn0.publish deleted file mode 100644 index e69de29b..00000000 From 3cbc3760fb0b2478ddb144d51bf8f3ca7f152694 Mon Sep 17 00:00:00 2001 From: Frank Halasz Date: Sun, 16 Nov 2025 21:22:31 -0800 Subject: [PATCH 140/166] docs/Demo_mode.md updated from https://stackedit.io/ --- docs/Demo_mode.md | 34 +++++++++++++++++++++++++++++++++- 1 file changed, 33 insertions(+), 1 deletion(-) diff --git a/docs/Demo_mode.md b/docs/Demo_mode.md index 04bc712c..89fb9be4 100644 --- a/docs/Demo_mode.md +++ b/docs/Demo_mode.md @@ -29,6 +29,38 @@ Most demos will require Lisp (or other) files that are not included in the stand Below is the start-script for a demo of INSPHEX. The start-script defines and then runs a function called START-INSPHEX. START-INPHEX in turn uses ShellWget to download the source code to INSPHEX from Github, compiles it, loads the compiled file and then uses ADD.PROCESS to run the main HEXDUMP function. There is some additional complication in the call to ADD.PROCESS to ensure that packages are handled correctly. Most exisitng Interlisp demos will not need this complexity since they don't use packages. ``` +(DEFINE-FILE-INFO ^^PACKAGE "INTERLISP" ^^READTABLE "INTERLISP" ^^BASE 10) + +(FILECREATED "16-Nov-2025 21:15:14" {DSK}frank>il>START-INSPHEX.;1 1641) + +(PRETTYCOMPRINT START-INSPHEXCOMS) + +(RPAQQ START-INSPHEXCOMS ((FNS START-INSPHEX) + (P (START-INSPHEX)))) +(DEFINEQ + +(START-INSPHEX + [LAMBDA NIL (* ; "Edited 16-Nov-2025 21:14 by FGH") + (* ; "Edited 11-Nov-2025 23:54 by FGH") + (* ; "Edited 7-Nov-2025 10:43 by FGH") + (LET* ((INSPHEX.FILE (OUTFILEP "{CORE}INSPHEX")) + INSPHEX.DFASL) + (ShellWget "https://raw.githubusercontent.com/pamoroso/insphex/refs/heads/main/INSPHEX" + INSPHEX.FILE) + (SETQ INSPHEX.DFASL (CL:COMPILE-FILE INSPHEX.FILE)) + (LOAD INSPHEX.DFASL) + (ADD.PROCESS (LIST (CL:FIND-SYMBOL "HEXDUMP" "INSPHEX") + (KWOTE INSPHEX.DFASL) + '(CREATEW (CREATEREGION (FIX (TIMES 0.35 SCREENWIDTH)) + (FIX (TIMES 0.25 SCREENHEIGHT)) + (FIX (TIMES 0.5 SCREENWIDTH)) + (FIX (TIMES 0.5 SCREENHEIGHT]) +) + +(START-INSPHEX) +(DECLARE%: DONTCOPY + (FILEMAP (NIL (506 1597 (START-INSPHEX 516 . 1595))))) +STOP ``` @@ -59,5 +91,5 @@ Additionally, if a ```start=``` query parameter is inc > Written with [StackEdit](https://stackedit.io/). \ No newline at end of file From 683b661adc579d0364af3a05d2909be26cc55283 Mon Sep 17 00:00:00 2001 From: Frank Halasz Date: Sun, 16 Nov 2025 21:24:03 -0800 Subject: [PATCH 141/166] docs/Demo_mode.md updated from https://stackedit.io/ --- docs/Demo_mode.md | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/docs/Demo_mode.md b/docs/Demo_mode.md index 89fb9be4..a002a7d2 100644 --- a/docs/Demo_mode.md +++ b/docs/Demo_mode.md @@ -40,9 +40,7 @@ Below is the start-script for a demo of INSPHEX. The start-script defines and t (DEFINEQ (START-INSPHEX - [LAMBDA NIL (* ; "Edited 16-Nov-2025 21:14 by FGH") - (* ; "Edited 11-Nov-2025 23:54 by FGH") - (* ; "Edited 7-Nov-2025 10:43 by FGH") + [LAMBDA NIL (LET* ((INSPHEX.FILE (OUTFILEP "{CORE}INSPHEX")) INSPHEX.DFASL) (ShellWget "https://raw.githubusercontent.com/pamoroso/insphex/refs/heads/main/INSPHEX" @@ -91,5 +89,5 @@ Additionally, if a ```start=``` query parameter is inc > Written with [StackEdit](https://stackedit.io/). \ No newline at end of file From e1ddc31086458a63f1f2db80d7eb1152efc22ff9 Mon Sep 17 00:00:00 2001 From: Frank Halasz Date: Sun, 16 Nov 2025 21:25:34 -0800 Subject: [PATCH 142/166] docs/Demo_mode.md updated from https://stackedit.io/ --- docs/Demo_mode.md | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/docs/Demo_mode.md b/docs/Demo_mode.md index a002a7d2..9791a7fe 100644 --- a/docs/Demo_mode.md +++ b/docs/Demo_mode.md @@ -54,10 +54,7 @@ Below is the start-script for a demo of INSPHEX. The start-script defines and t (FIX (TIMES 0.5 SCREENWIDTH)) (FIX (TIMES 0.5 SCREENHEIGHT]) ) - (START-INSPHEX) -(DECLARE%: DONTCOPY - (FILEMAP (NIL (506 1597 (START-INSPHEX 516 . 1595))))) STOP ``` @@ -89,5 +86,5 @@ Additionally, if a ```start=``` query parameter is inc > Written with [StackEdit](https://stackedit.io/). \ No newline at end of file From 9552f6fb231dcbe60d3188329a00bba3d4c4b026 Mon Sep 17 00:00:00 2001 From: Frank Halasz Date: Sun, 16 Nov 2025 21:28:37 -0800 Subject: [PATCH 143/166] docs/Demo_mode.md updated from https://stackedit.io/ --- docs/Demo_mode.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/docs/Demo_mode.md b/docs/Demo_mode.md index 9791a7fe..a52c38d9 100644 --- a/docs/Demo_mode.md +++ b/docs/Demo_mode.md @@ -2,7 +2,7 @@ # Online.Interlisp.Org: Demo mode (aka Museum Mode) ## Overview -When accessing online.interlisp.org (OIO) using Demo Mode, Online Medley will start up and at the end of processing the ONLINE-INIT file will automatically LOAD a lisp file (source or compiled, Interlisp or Medley CommonLisp) that was specified in the URL through which OIO was accessed. This lisp file is referred to as a *start-script* and the intention is that when it is LOADed it will run a demo by defining and/or LOADing additional lisp code and then starting up that demo, e.g., via a P file package command. Before the Online Medley run is started, the start-script file is downloaded using ```wget```into a known file in the Medley file system from where it is LOADed by ONLINE-INIT. +When accessing online.interlisp.org (OIO) using Demo Mode, at start-up Online Medley will LOAD a lisp file that was specified in the URL through which OIO was accessed. This lisp file is referred to as a *start-script* and the intention is that when it is LOADed it will run a demo by defining and/or LOADing additional lisp code and then starting up that demo, e.g., via a P file package command. Before the Online Medley run is started, the start-script file is downloaded using ```wget```into a known file in the Medley file system from where it is LOADed by ONLINE-INIT. An addition aspect of Demo Mode is that based on flags in the URL login processing can be skipped, the user automatically logged in as guest, and the Online Medley session started with no user interaction required. Alternatively, the login process can remain but the standard "Run Medley" page will be skipped and the user will go directly from login to the running Medley without having to set all the run parameters in the Run Medley page. Automatic guest login is sufficient for most demos. But requiring login allows demos to save files and context between runs of Online Medley, which is not possible with guest login. @@ -86,5 +86,6 @@ Additionally, if a ```start=``` query parameter is inc > Written with [StackEdit](https://stackedit.io/). \ No newline at end of file From fb545780ffbc885867279a7d632fd9f9cb1c100f Mon Sep 17 00:00:00 2001 From: Frank Halasz Date: Sun, 16 Nov 2025 21:30:08 -0800 Subject: [PATCH 144/166] docs/Demo_mode.md updated from https://stackedit.io/ --- docs/Demo_mode.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/Demo_mode.md b/docs/Demo_mode.md index a52c38d9..30054fa6 100644 --- a/docs/Demo_mode.md +++ b/docs/Demo_mode.md @@ -2,7 +2,7 @@ # Online.Interlisp.Org: Demo mode (aka Museum Mode) ## Overview -When accessing online.interlisp.org (OIO) using Demo Mode, at start-up Online Medley will LOAD a lisp file that was specified in the URL through which OIO was accessed. This lisp file is referred to as a *start-script* and the intention is that when it is LOADed it will run a demo by defining and/or LOADing additional lisp code and then starting up that demo, e.g., via a P file package command. Before the Online Medley run is started, the start-script file is downloaded using ```wget```into a known file in the Medley file system from where it is LOADed by ONLINE-INIT. +When accessing online.interlisp.org (OIO) using Demo Mode, Online Medley will LOAD a lisp file that was specified in the URL through which OIO was accessed. This lisp file is referred to as a *start-script* and the intention is that when it is LOADed it will run a demo by defining and/or LOADing additional lisp code and then starting up that demo, e.g., via a P file package command. Before the Online Medley run is started, the start-script file is downloaded using ```wget```into a known file in the Medley file system from where it is LOADed by ONLINE-INIT. An addition aspect of Demo Mode is that based on flags in the URL login processing can be skipped, the user automatically logged in as guest, and the Online Medley session started with no user interaction required. Alternatively, the login process can remain but the standard "Run Medley" page will be skipped and the user will go directly from login to the running Medley without having to set all the run parameters in the Run Medley page. Automatic guest login is sufficient for most demos. But requiring login allows demos to save files and context between runs of Online Medley, which is not possible with guest login. @@ -86,6 +86,6 @@ Additionally, if a ```start=``` query parameter is inc > Written with [StackEdit](https://stackedit.io/). \ No newline at end of file From c7b1f107eba77ac0936bc999155b71431b075bf7 Mon Sep 17 00:00:00 2001 From: Frank Halasz Date: Sun, 16 Nov 2025 21:31:39 -0800 Subject: [PATCH 145/166] docs/Demo_mode.md updated from https://stackedit.io/ --- docs/Demo_mode.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/Demo_mode.md b/docs/Demo_mode.md index 30054fa6..ee89f806 100644 --- a/docs/Demo_mode.md +++ b/docs/Demo_mode.md @@ -2,7 +2,7 @@ # Online.Interlisp.Org: Demo mode (aka Museum Mode) ## Overview -When accessing online.interlisp.org (OIO) using Demo Mode, Online Medley will LOAD a lisp file that was specified in the URL through which OIO was accessed. This lisp file is referred to as a *start-script* and the intention is that when it is LOADed it will run a demo by defining and/or LOADing additional lisp code and then starting up that demo, e.g., via a P file package command. Before the Online Medley run is started, the start-script file is downloaded using ```wget```into a known file in the Medley file system from where it is LOADed by ONLINE-INIT. +When accessing online.interlisp.org (OIO) using Demo Mode, Online Medley will LOAD a lisp file called a *start script*. The start script is specified by a query parameter in the URL through which OIO was accessed. This lisp file is referred to as a *start-script* and the intention is that when it is LOADed it will run a demo by defining and/or LOADing additional lisp code and then starting up that demo, e.g., via a P file package command. Before the Online Medley run is started, the start-script file is downloaded using ```wget```into a known file in the Medley file system from where it is LOADed by ONLINE-INIT. An addition aspect of Demo Mode is that based on flags in the URL login processing can be skipped, the user automatically logged in as guest, and the Online Medley session started with no user interaction required. Alternatively, the login process can remain but the standard "Run Medley" page will be skipped and the user will go directly from login to the running Medley without having to set all the run parameters in the Run Medley page. Automatic guest login is sufficient for most demos. But requiring login allows demos to save files and context between runs of Online Medley, which is not possible with guest login. @@ -86,6 +86,6 @@ Additionally, if a ```start=``` query parameter is inc > Written with [StackEdit](https://stackedit.io/). \ No newline at end of file From ec7cba230725b490fb6ca82776aefb943b6a5502 Mon Sep 17 00:00:00 2001 From: Frank Halasz Date: Sun, 16 Nov 2025 21:33:10 -0800 Subject: [PATCH 146/166] docs/Demo_mode.md updated from https://stackedit.io/ --- docs/Demo_mode.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/Demo_mode.md b/docs/Demo_mode.md index ee89f806..5ad3bc62 100644 --- a/docs/Demo_mode.md +++ b/docs/Demo_mode.md @@ -2,7 +2,7 @@ # Online.Interlisp.Org: Demo mode (aka Museum Mode) ## Overview -When accessing online.interlisp.org (OIO) using Demo Mode, Online Medley will LOAD a lisp file called a *start script*. The start script is specified by a query parameter in the URL through which OIO was accessed. This lisp file is referred to as a *start-script* and the intention is that when it is LOADed it will run a demo by defining and/or LOADing additional lisp code and then starting up that demo, e.g., via a P file package command. Before the Online Medley run is started, the start-script file is downloaded using ```wget```into a known file in the Medley file system from where it is LOADed by ONLINE-INIT. +When accessing online.interlisp.org (OIO) using Demo Mode, Online Medley will LOAD a lisp file called a *start script*. The start script is specified by a query parameter in the URL through which OIO was accessed. The intention is that when it is LOADed the start script will run a demo by defining and/or LOADing additional lisp code and then starting up that demo, e.g., via a P file package command. The start script is LOADed as the last step in running thBefore the Online Medley run is started, the start-script file is downloaded using ```wget```into a known file in the Medley file system from where it is LOADed by ONLINE-INIT. An addition aspect of Demo Mode is that based on flags in the URL login processing can be skipped, the user automatically logged in as guest, and the Online Medley session started with no user interaction required. Alternatively, the login process can remain but the standard "Run Medley" page will be skipped and the user will go directly from login to the running Medley without having to set all the run parameters in the Run Medley page. Automatic guest login is sufficient for most demos. But requiring login allows demos to save files and context between runs of Online Medley, which is not possible with guest login. @@ -86,6 +86,6 @@ Additionally, if a ```start=``` query parameter is inc > Written with [StackEdit](https://stackedit.io/). \ No newline at end of file From 6e31ec219ba5827016904ac00de3c960f2311e1e Mon Sep 17 00:00:00 2001 From: Frank Halasz Date: Sun, 16 Nov 2025 21:34:42 -0800 Subject: [PATCH 147/166] docs/Demo_mode.md updated from https://stackedit.io/ --- docs/Demo_mode.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/Demo_mode.md b/docs/Demo_mode.md index 5ad3bc62..542f4626 100644 --- a/docs/Demo_mode.md +++ b/docs/Demo_mode.md @@ -2,7 +2,7 @@ # Online.Interlisp.Org: Demo mode (aka Museum Mode) ## Overview -When accessing online.interlisp.org (OIO) using Demo Mode, Online Medley will LOAD a lisp file called a *start script*. The start script is specified by a query parameter in the URL through which OIO was accessed. The intention is that when it is LOADed the start script will run a demo by defining and/or LOADing additional lisp code and then starting up that demo, e.g., via a P file package command. The start script is LOADed as the last step in running thBefore the Online Medley run is started, the start-script file is downloaded using ```wget```into a known file in the Medley file system from where it is LOADed by ONLINE-INIT. +When accessing online.interlisp.org (OIO) using Demo Mode, Online Medley will LOAD a lisp file called a *start script*. The start script is specified by a query parameter in the URL through which OIO was accessed. Before the Online Medley run star, the start script file is downloaded using ```wget```into a known file in the Medley file systemThe intention is that when it is LOADed the start script will run a demo by defining and/or LOADing additional lisp code and then starting up that demo, e.g., via a P file package command. The start script is LOADed as the last step in running the ONLINE-INIT initialization. from where it is LOADed by ONLINE-INIT. An addition aspect of Demo Mode is that based on flags in the URL login processing can be skipped, the user automatically logged in as guest, and the Online Medley session started with no user interaction required. Alternatively, the login process can remain but the standard "Run Medley" page will be skipped and the user will go directly from login to the running Medley without having to set all the run parameters in the Run Medley page. Automatic guest login is sufficient for most demos. But requiring login allows demos to save files and context between runs of Online Medley, which is not possible with guest login. @@ -86,6 +86,6 @@ Additionally, if a ```start=``` query parameter is inc > Written with [StackEdit](https://stackedit.io/). \ No newline at end of file From 917fa951d6022e7602fef2be44ca7c47453d2cc1 Mon Sep 17 00:00:00 2001 From: Frank Halasz Date: Sun, 16 Nov 2025 21:36:13 -0800 Subject: [PATCH 148/166] docs/Demo_mode.md updated from https://stackedit.io/ --- docs/Demo_mode.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/Demo_mode.md b/docs/Demo_mode.md index 542f4626..c31f99b3 100644 --- a/docs/Demo_mode.md +++ b/docs/Demo_mode.md @@ -2,7 +2,7 @@ # Online.Interlisp.Org: Demo mode (aka Museum Mode) ## Overview -When accessing online.interlisp.org (OIO) using Demo Mode, Online Medley will LOAD a lisp file called a *start script*. The start script is specified by a query parameter in the URL through which OIO was accessed. Before the Online Medley run star, the start script file is downloaded using ```wget```into a known file in the Medley file systemThe intention is that when it is LOADed the start script will run a demo by defining and/or LOADing additional lisp code and then starting up that demo, e.g., via a P file package command. The start script is LOADed as the last step in running the ONLINE-INIT initialization. from where it is LOADed by ONLINE-INIT. +When accessing online.interlisp.org (OIO) using Demo Mode, Online Medley will LOAD a Lisp file called a *start script*. The start script is specified by a query parameter in the URL through which OIO was accessed. Before the Online Medley run starts, the start script file is downloaded using ```wget```into a known file in the Medley file system. It is then LOADed as the last step in the ONLINE-INIT initialization. The intent is that upon LOAD the start script will run a demo by defining and/or LOADing additional lisp code and then starting up that demo, e.g., via a P file package command. The start script is LOADed as the last step in running the ONLINE-INIT initialization. from where it is LOADed by ONLINE-INIT. An addition aspect of Demo Mode is that based on flags in the URL login processing can be skipped, the user automatically logged in as guest, and the Online Medley session started with no user interaction required. Alternatively, the login process can remain but the standard "Run Medley" page will be skipped and the user will go directly from login to the running Medley without having to set all the run parameters in the Run Medley page. Automatic guest login is sufficient for most demos. But requiring login allows demos to save files and context between runs of Online Medley, which is not possible with guest login. @@ -86,6 +86,6 @@ Additionally, if a ```start=``` query parameter is inc > Written with [StackEdit](https://stackedit.io/). \ No newline at end of file From db969ff6877ba609a190ad9f653d03324b4f579f Mon Sep 17 00:00:00 2001 From: Frank Halasz Date: Sun, 16 Nov 2025 21:37:44 -0800 Subject: [PATCH 149/166] docs/Demo_mode.md updated from https://stackedit.io/ --- docs/Demo_mode.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/Demo_mode.md b/docs/Demo_mode.md index c31f99b3..9477300b 100644 --- a/docs/Demo_mode.md +++ b/docs/Demo_mode.md @@ -2,7 +2,7 @@ # Online.Interlisp.Org: Demo mode (aka Museum Mode) ## Overview -When accessing online.interlisp.org (OIO) using Demo Mode, Online Medley will LOAD a Lisp file called a *start script*. The start script is specified by a query parameter in the URL through which OIO was accessed. Before the Online Medley run starts, the start script file is downloaded using ```wget```into a known file in the Medley file system. It is then LOADed as the last step in the ONLINE-INIT initialization. The intent is that upon LOAD the start script will run a demo by defining and/or LOADing additional lisp code and then starting up that demo, e.g., via a P file package command. The start script is LOADed as the last step in running the ONLINE-INIT initialization. from where it is LOADed by ONLINE-INIT. +When accessing online.interlisp.org (OIO) using Demo Mode, Online Medley will LOAD a Lisp file called a *start script*. The start script is specified by a query parameter in the URL through which OIO was accessed. Before the Online Medley run starts, the start script file is downloaded using ```wget```into a known file in the Medley file system. It is then LOADed as the last step in the ONLINE-INIT initialization. The intent is that upon LOAD the start script will run a demo by defining and/or LOADing additional Lisp code and then starting up that demo, e.g., via a P file package command. The start script is LOADed as the last step in running the ONLINE-INIT initialization. from where it is LOADed by ONLINE-INIT. An addition aspect of Demo Mode is that based on flags in the URL login processing can be skipped, the user automatically logged in as guest, and the Online Medley session started with no user interaction required. Alternatively, the login process can remain but the standard "Run Medley" page will be skipped and the user will go directly from login to the running Medley without having to set all the run parameters in the Run Medley page. Automatic guest login is sufficient for most demos. But requiring login allows demos to save files and context between runs of Online Medley, which is not possible with guest login. @@ -86,6 +86,6 @@ Additionally, if a ```start=``` query parameter is inc > Written with [StackEdit](https://stackedit.io/). \ No newline at end of file From e428528a77e292dc0ce9ce5ab4738fdd23bd4a85 Mon Sep 17 00:00:00 2001 From: Frank Halasz Date: Sun, 16 Nov 2025 21:39:16 -0800 Subject: [PATCH 150/166] docs/Demo_mode.md updated from https://stackedit.io/ --- docs/Demo_mode.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/docs/Demo_mode.md b/docs/Demo_mode.md index 9477300b..3e50dccb 100644 --- a/docs/Demo_mode.md +++ b/docs/Demo_mode.md @@ -2,9 +2,9 @@ # Online.Interlisp.Org: Demo mode (aka Museum Mode) ## Overview -When accessing online.interlisp.org (OIO) using Demo Mode, Online Medley will LOAD a Lisp file called a *start script*. The start script is specified by a query parameter in the URL through which OIO was accessed. Before the Online Medley run starts, the start script file is downloaded using ```wget```into a known file in the Medley file system. It is then LOADed as the last step in the ONLINE-INIT initialization. The intent is that upon LOAD the start script will run a demo by defining and/or LOADing additional Lisp code and then starting up that demo, e.g., via a P file package command. The start script is LOADed as the last step in running the ONLINE-INIT initialization. from where it is LOADed by ONLINE-INIT. +When accessing online.interlisp.org (OIO) using Demo Mode, Online Medley will LOAD a Lisp file called a *start script*. The start script is specified by a query parameter in the URL through which OIO was accessed. Before the Online Medley run starts, the start script file is downloaded using ```wget```into a known file in the Medley file system. It is then LOADed as the last step in the ONLINE-INIT initialization. The intent is that upon LOAD the start script will run a demo by defining and/or LOADing additional Lisp code and then starting up that demo, e.g., via a P file package command. -An addition aspect of Demo Mode is that based on flags in the URL login processing can be skipped, the user automatically logged in as guest, and the Online Medley session started with no user interaction required. Alternatively, the login process can remain but the standard "Run Medley" page will be skipped and the user will go directly from login to the running Medley without having to set all the run parameters in the Run Medley page. Automatic guest login is sufficient for most demos. But requiring login allows demos to save files and context between runs of Online Medley, which is not possible with guest login. +An addition aspect of Demo Mode is that login processing can (optionally) be skipped, the user automatically logged in as guest, and the Online Medley session started with no user interaction required. Alternatively, the login process can remain but the standard "Run Medley" page will be skipped and the user will go directly from login to the running Medley without having to set all the run parameters in the Run Medley page. Automatic guest login is sufficient for most demos. But requiring login allows demos to save files and context between runs of Online Medley, which is not possible with guest login. ## Demo mode URLs To access Demo mode, use the following URLs: @@ -86,6 +86,6 @@ Additionally, if a ```start=``` query parameter is inc > Written with [StackEdit](https://stackedit.io/). \ No newline at end of file From 300a720c77745fa1f5b7dd7959fc4c3eeda83d9e Mon Sep 17 00:00:00 2001 From: Frank Halasz Date: Sun, 16 Nov 2025 21:40:47 -0800 Subject: [PATCH 151/166] docs/Demo_mode.md updated from https://stackedit.io/ --- docs/Demo_mode.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/Demo_mode.md b/docs/Demo_mode.md index 3e50dccb..470d6e9c 100644 --- a/docs/Demo_mode.md +++ b/docs/Demo_mode.md @@ -14,7 +14,7 @@ To access Demo mode, use the following URLs: `````` is a URL pointing to a start-script lisp file that can be wget'd by the OIO server. **This URL must be encoded using the equivalent of Javascript's *encodeURIComponent*.** The easiest way to do this is via one of the many websites that offer this service such as https://meyerweb.com/eric/tools/dencoder/. -In addition to the *start* query parameter, Demo mode supports the *notecards=1* and *rooms=1* query parameters. If these query parameters are included in the Demo mode URL, then NoteCards (and/or Rooms) will be automatically started when Online Medley runs, in addition to the start-script. +In addition to the *start* query parameter, Demo mode supports the *notecards=1* and *rooms=1* query parameters. If these query parameters are included in the Demo mode URL, then NoteCards and/or Rooms will be automatically started when Online Medley runs, in addition to the start-script. Any of the query parameters (start, notecards, rooms) can be left off, with the expected change of function. For example, https://online.interlisp.org/demo?notecards=1 will automatically login as guest and start notecards - but not run any start-script. @@ -86,6 +86,6 @@ Additionally, if a ```start=``` query parameter is inc > Written with [StackEdit](https://stackedit.io/). \ No newline at end of file From 43ca8184f8af1d4836ddc6213be50fbf932707b5 Mon Sep 17 00:00:00 2001 From: Frank Halasz Date: Sun, 16 Nov 2025 21:42:18 -0800 Subject: [PATCH 152/166] docs/Demo_mode.md updated from https://stackedit.io/ --- docs/Demo_mode.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/Demo_mode.md b/docs/Demo_mode.md index 470d6e9c..335cd8bc 100644 --- a/docs/Demo_mode.md +++ b/docs/Demo_mode.md @@ -16,13 +16,13 @@ To access Demo mode, use the following URLs: In addition to the *start* query parameter, Demo mode supports the *notecards=1* and *rooms=1* query parameters. If these query parameters are included in the Demo mode URL, then NoteCards and/or Rooms will be automatically started when Online Medley runs, in addition to the start-script. -Any of the query parameters (start, notecards, rooms) can be left off, with the expected change of function. For example, https://online.interlisp.org/demo?notecards=1 will automatically login as guest and start notecards - but not run any start-script. +Any of the query parameters (start, notecards, rooms) can be left off, with the expected change of function. For example, https://online.interlisp.org/demo?notecards=1 will automatically login as guest and start notecards - but not run any start script. Example Demo mode URL: https://online.interlisp.org/demo?start=https%3A%2F%2Fgithub.com%2FInterlisp%2Fonline%2Fraw%2Frefs%2Fheads%2Ffgh_museum-mode%2Fstart-scripts%2FSTART-INSPHEX.LCOM¬ecards=1. This URL will automatically login as guest, wget and LOAD the file START-INSPHEX.LCOM from the Interlisp/Online repo on github and start Notecards. ## Start scripts -Sample start scripts can be found in the Interlisp/Online Github repo in the start-scripts directory. +Any LOADable Lisp file (source or compiled, InterStart scriptsSample start scripts can be found in the Interlisp/Online Github repo in the start-scripts directory. Most demos will require Lisp (or other) files that are not included in the standard Online Medley image. One very handy function to be used in start-scripts for these demos is ```(ShellWget URL OUTFILE)```. This function will download (using wget) the file specified by URL and store it in the versioned Online Medley file system under the name OUTFILE. OUTFILE can then be LOADed in the start-script. @@ -86,6 +86,6 @@ Additionally, if a ```start=``` query parameter is inc > Written with [StackEdit](https://stackedit.io/). \ No newline at end of file From 49886cf85699d782b8749ccab630106ac3feb0de Mon Sep 17 00:00:00 2001 From: Frank Halasz Date: Sun, 16 Nov 2025 21:43:50 -0800 Subject: [PATCH 153/166] docs/Demo_mode.md updated from https://stackedit.io/ --- docs/Demo_mode.md | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/docs/Demo_mode.md b/docs/Demo_mode.md index 335cd8bc..1053876c 100644 --- a/docs/Demo_mode.md +++ b/docs/Demo_mode.md @@ -22,9 +22,11 @@ Example Demo mode URL: https://online.interlisp.org/demo?start=https%3A%2F%2Fgi ## Start scripts -Any LOADable Lisp file (source or compiled, InterStart scriptsSample start scripts can be found in the Interlisp/Online Github repo in the start-scripts directory. +Any LOADable Lisp file (source or compiled, Interlisp or Medley CommonLisp) can serve as a source script. -Most demos will require Lisp (or other) files that are not included in the standard Online Medley image. One very handy function to be used in start-scripts for these demos is ```(ShellWget URL OUTFILE)```. This function will download (using wget) the file specified by URL and store it in the versioned Online Medley file system under the name OUTFILE. OUTFILE can then be LOADed in the start-script. +Sample start scripts can be found in the Interlisp/Online Github repo in the start-scripts directory. + +Most demos will require Lisp (or other) files that are not included in the standard Online Medley image. One very handy function to be used in start scripts for these demos is ```(ShellWget URL OUTFILE)```. This function will download (using wget) the file specified by URL and store it in the versioned Online Medley file system under the name OUTFILE. OUTFILE can then be LOADed in the start-script. Below is the start-script for a demo of INSPHEX. The start-script defines and then runs a function called START-INSPHEX. START-INPHEX in turn uses ShellWget to download the source code to INSPHEX from Github, compiles it, loads the compiled file and then uses ADD.PROCESS to run the main HEXDUMP function. There is some additional complication in the call to ADD.PROCESS to ensure that packages are handled correctly. Most exisitng Interlisp demos will not need this complexity since they don't use packages. @@ -86,6 +88,6 @@ Additionally, if a ```start=``` query parameter is inc > Written with [StackEdit](https://stackedit.io/). \ No newline at end of file From f69e7aacfc21340c8456684fbe33d6a0f428566e Mon Sep 17 00:00:00 2001 From: Frank Halasz Date: Sun, 16 Nov 2025 21:45:22 -0800 Subject: [PATCH 154/166] docs/Demo_mode.md updated from https://stackedit.io/ --- docs/Demo_mode.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/Demo_mode.md b/docs/Demo_mode.md index 1053876c..1657caa6 100644 --- a/docs/Demo_mode.md +++ b/docs/Demo_mode.md @@ -26,9 +26,9 @@ Any LOADable Lisp file (source or compiled, Interlisp or Medley CommonLisp) can Sample start scripts can be found in the Interlisp/Online Github repo in the start-scripts directory. -Most demos will require Lisp (or other) files that are not included in the standard Online Medley image. One very handy function to be used in start scripts for these demos is ```(ShellWget URL OUTFILE)```. This function will download (using wget) the file specified by URL and store it in the versioned Online Medley file system under the name OUTFILE. OUTFILE can then be LOADed in the start-script. +Most demos will require Lisp (or other) files that are not included in the standard Online Medley image. One very handy function to be used in start scripts for these demos is ```(ShellWget URL OUTFILE)```. This function will download (using wget) the file specified by URL and store it in the versioned Online Medley file system under the name OUTFILE. OUTFILE can then be LOADed by the start script. -Below is the start-script for a demo of INSPHEX. The start-script defines and then runs a function called START-INSPHEX. START-INPHEX in turn uses ShellWget to download the source code to INSPHEX from Github, compiles it, loads the compiled file and then uses ADD.PROCESS to run the main HEXDUMP function. There is some additional complication in the call to ADD.PROCESS to ensure that packages are handled correctly. Most exisitng Interlisp demos will not need this complexity since they don't use packages. +Below is the start script for a demo of Pamoroso's INSPHEX utility The start script defines and then runs a function called START-INSPHEX. START-INPHEX in turn uses ShellWget to download the source code to INSPHEX from Github, compiles it, loads the compiled file and then uses ADD.PROCESS to run the main HEXDUMP function. There is some additional complication in the call to ADD.PROCESS to ensure that packages are handled correctly. Most exisitng Interlisp demos will not need this complexity since they don't use packages. ``` (DEFINE-FILE-INFO ^^PACKAGE "INTERLISP" ^^READTABLE "INTERLISP" ^^BASE 10) @@ -88,6 +88,6 @@ Additionally, if a ```start=``` query parameter is inc > Written with [StackEdit](https://stackedit.io/). \ No newline at end of file From 013ba8bb065fa39e55d7b1b49b29a21e6d255144 Mon Sep 17 00:00:00 2001 From: Frank Halasz Date: Sun, 16 Nov 2025 21:46:54 -0800 Subject: [PATCH 155/166] docs/Demo_mode.md updated from https://stackedit.io/ --- docs/Demo_mode.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/docs/Demo_mode.md b/docs/Demo_mode.md index 1657caa6..03fe34f8 100644 --- a/docs/Demo_mode.md +++ b/docs/Demo_mode.md @@ -22,13 +22,13 @@ Example Demo mode URL: https://online.interlisp.org/demo?start=https%3A%2F%2Fgi ## Start scripts -Any LOADable Lisp file (source or compiled, Interlisp or Medley CommonLisp) can serve as a source script. +Any LOADable Lisp file (source or compiled, Interlisp or Medley CommonLisp) can serve as a start script. Sample start scripts can be found in the Interlisp/Online Github repo in the start-scripts directory. Most demos will require Lisp (or other) files that are not included in the standard Online Medley image. One very handy function to be used in start scripts for these demos is ```(ShellWget URL OUTFILE)```. This function will download (using wget) the file specified by URL and store it in the versioned Online Medley file system under the name OUTFILE. OUTFILE can then be LOADed by the start script. -Below is the start script for a demo of Pamoroso's INSPHEX utility The start script defines and then runs a function called START-INSPHEX. START-INPHEX in turn uses ShellWget to download the source code to INSPHEX from Github, compiles it, loads the compiled file and then uses ADD.PROCESS to run the main HEXDUMP function. There is some additional complication in the call to ADD.PROCESS to ensure that packages are handled correctly. Most exisitng Interlisp demos will not need this complexity since they don't use packages. +Below is the start script for a demo of Pamoroso's INSPHEX utility The start script defines and then runs a function called START-INSPHEX. START-INPHEX in turn uses ShellWget to download the source code to INSPHEX from Github, compiles it, loads the compiled file and then uses ADD.PROCESS to run the main HEXDUMP function. There is some additional complication in the call to ADD.PROCESS to ensure that packages are handled correctly. But most existing Interlisp demos will not need this complexity since they don't use packages. ``` (DEFINE-FILE-INFO ^^PACKAGE "INTERLISP" ^^READTABLE "INTERLISP" ^^BASE 10) @@ -88,6 +88,6 @@ Additionally, if a ```start=``` query parameter is inc > Written with [StackEdit](https://stackedit.io/). \ No newline at end of file From 6365187b85d68fd8a2b98b81d9bbc4dac662a254 Mon Sep 17 00:00:00 2001 From: Frank Halasz Date: Sun, 16 Nov 2025 21:48:25 -0800 Subject: [PATCH 156/166] docs/Demo_mode.md updated from https://stackedit.io/ --- docs/Demo_mode.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/docs/Demo_mode.md b/docs/Demo_mode.md index 03fe34f8..4edcabf2 100644 --- a/docs/Demo_mode.md +++ b/docs/Demo_mode.md @@ -63,10 +63,11 @@ STOP ## Start scripts outside of Demo mode -Start scripts can also be used outside of Demo mode. In the normal workflow, the user will be taken to the "Run Medley" page. On the Run Medley page, if you enable *Show advanced options* there will be a field into which you can enter the URL for a start-script (in either original or URI encoded forms). When Online Medley starts up, the specified start script will be download and LOADed as in Demo mode. +Start scripts can also be used outside of Demo mode. In the normal OIO workflow, the user will be taken to the "Run Medley" page. On the Run Medley page, if you enable *Show advanced options* there will be a field into which you can enter the URL for a start-script (in either original or URI encoded forms). When Online Medley starts up, the specified start script will be wget'd and LOADed as in Demo mode. Additionally, if a ```start=``` query parameter is included in the URL used to access OIO (outside of Demo mode), then the specified URL (decoded) will be prepopulated into the Advanced Options/Start URL field on the Run Medley page. +## @@ -88,6 +89,6 @@ Additionally, if a ```start=``` query parameter is inc > Written with [StackEdit](https://stackedit.io/). \ No newline at end of file From bc47f1ad351e43d6e8757c432c61b33e1a0547ae Mon Sep 17 00:00:00 2001 From: Frank Halasz Date: Sun, 16 Nov 2025 21:49:56 -0800 Subject: [PATCH 157/166] docs/Demo_mode.md updated from https://stackedit.io/ --- docs/Demo_mode.md | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/docs/Demo_mode.md b/docs/Demo_mode.md index 4edcabf2..2b142198 100644 --- a/docs/Demo_mode.md +++ b/docs/Demo_mode.md @@ -67,7 +67,9 @@ Start scripts can also be used outside of Demo mode. In the normal OIO workflow Additionally, if a ```start=``` query parameter is included in the URL used to access OIO (outside of Demo mode), then the specified URL (decoded) will be prepopulated into the Advanced Options/Start URL field on the Run Medley page. -## +## Synonyms for + +For legacy reasons, https::online.interlisp.org/demo/guest @@ -89,6 +91,6 @@ Additionally, if a ```start=``` query parameter is inc > Written with [StackEdit](https://stackedit.io/). \ No newline at end of file From e84db58d1c8ba589b353f4409ac3e38d4a5c2a48 Mon Sep 17 00:00:00 2001 From: Frank Halasz Date: Sun, 16 Nov 2025 21:51:27 -0800 Subject: [PATCH 158/166] docs/Demo_mode.md updated from https://stackedit.io/ --- docs/Demo_mode.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/docs/Demo_mode.md b/docs/Demo_mode.md index 2b142198..0ca7cc50 100644 --- a/docs/Demo_mode.md +++ b/docs/Demo_mode.md @@ -67,9 +67,9 @@ Start scripts can also be used outside of Demo mode. In the normal OIO workflow Additionally, if a ```start=``` query parameter is included in the URL used to access OIO (outside of Demo mode), then the specified URL (decoded) will be prepopulated into the Advanced Options/Start URL field on the Run Medley page. -## Synonyms for +## Synonyms for https::online.interlisp.org/demo -For legacy reasons, https::online.interlisp.org/demo/guest +For legacy reasons, *https::online.interlisp.org/demo/guest* and https::online.interlisp.org/guest are synonyms for https::online.interlisp.org/demo. @@ -91,6 +91,6 @@ For legacy reasons, https::online.interlisp.org/demo/guest > Written with [StackEdit](https://stackedit.io/). \ No newline at end of file From d0c873de6f093dadd2eb41cb12b88d01ddd432c2 Mon Sep 17 00:00:00 2001 From: Frank Halasz Date: Sun, 16 Nov 2025 21:52:59 -0800 Subject: [PATCH 159/166] docs/Demo_mode.md updated from https://stackedit.io/ --- docs/Demo_mode.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/Demo_mode.md b/docs/Demo_mode.md index 0ca7cc50..7a01cc2a 100644 --- a/docs/Demo_mode.md +++ b/docs/Demo_mode.md @@ -69,7 +69,7 @@ Additionally, if a ```start=``` query parameter is inc ## Synonyms for https::online.interlisp.org/demo -For legacy reasons, *https::online.interlisp.org/demo/guest* and https::online.interlisp.org/guest are synonyms for https::online.interlisp.org/demo. +For legacy reasons, ```https:://online.interlisp.org/demo/guest``` and ```https:://online.interlisp.org/guest``` are synonyms for ```https::online.interlisp.org/demo```. @@ -91,6 +91,6 @@ For legacy reasons, *https::online.interlisp.org/demo/guest* and https::online. > Written with [StackEdit](https://stackedit.io/). \ No newline at end of file From 39806617466591a8ee78be1d06dc33d1fa10b580 Mon Sep 17 00:00:00 2001 From: Frank Halasz Date: Sun, 16 Nov 2025 21:54:30 -0800 Subject: [PATCH 160/166] docs/Demo_mode.md updated from https://stackedit.io/ --- docs/Demo_mode.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/docs/Demo_mode.md b/docs/Demo_mode.md index 7a01cc2a..5a9071a8 100644 --- a/docs/Demo_mode.md +++ b/docs/Demo_mode.md @@ -28,7 +28,7 @@ Sample start scripts can be found in the Interlisp/Online Github repo in the sta Most demos will require Lisp (or other) files that are not included in the standard Online Medley image. One very handy function to be used in start scripts for these demos is ```(ShellWget URL OUTFILE)```. This function will download (using wget) the file specified by URL and store it in the versioned Online Medley file system under the name OUTFILE. OUTFILE can then be LOADed by the start script. -Below is the start script for a demo of Pamoroso's INSPHEX utility The start script defines and then runs a function called START-INSPHEX. START-INPHEX in turn uses ShellWget to download the source code to INSPHEX from Github, compiles it, loads the compiled file and then uses ADD.PROCESS to run the main HEXDUMP function. There is some additional complication in the call to ADD.PROCESS to ensure that packages are handled correctly. But most existing Interlisp demos will not need this complexity since they don't use packages. +Below is the start script for a demo of Pamoroso's INSPHEX utility The start script defines and then runs a function called START-INSPHEX. The START-INPHEX in turn uses ShellWget to download the source code to INSPHEX from Github, compiles it, loads the compiled file and then uses ADD.PROCESS to run the main HEXDUMP function. There is some additional complication in the call to ADD.PROCESS to ensure that packages are handled correctly. But most existing Interlisp demos will not need this complexity since they don't use packages. ``` (DEFINE-FILE-INFO ^^PACKAGE "INTERLISP" ^^READTABLE "INTERLISP" ^^BASE 10) @@ -67,7 +67,7 @@ Start scripts can also be used outside of Demo mode. In the normal OIO workflow Additionally, if a ```start=``` query parameter is included in the URL used to access OIO (outside of Demo mode), then the specified URL (decoded) will be prepopulated into the Advanced Options/Start URL field on the Run Medley page. -## Synonyms for https::online.interlisp.org/demo +## Synonyms for *https::online.interlisp.org/demo* For legacy reasons, ```https:://online.interlisp.org/demo/guest``` and ```https:://online.interlisp.org/guest``` are synonyms for ```https::online.interlisp.org/demo```. @@ -91,6 +91,6 @@ For legacy reasons, ```https:://online.interlisp.org/demo/guest``` and ```https > Written with [StackEdit](https://stackedit.io/). \ No newline at end of file From 21aa5bc2fb2ab503cd901ca861a8e6909697a272 Mon Sep 17 00:00:00 2001 From: Frank Halasz Date: Sun, 16 Nov 2025 21:56:01 -0800 Subject: [PATCH 161/166] docs/Demo_mode.md updated from https://stackedit.io/ --- docs/Demo_mode.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/Demo_mode.md b/docs/Demo_mode.md index 5a9071a8..3e11b011 100644 --- a/docs/Demo_mode.md +++ b/docs/Demo_mode.md @@ -28,7 +28,7 @@ Sample start scripts can be found in the Interlisp/Online Github repo in the sta Most demos will require Lisp (or other) files that are not included in the standard Online Medley image. One very handy function to be used in start scripts for these demos is ```(ShellWget URL OUTFILE)```. This function will download (using wget) the file specified by URL and store it in the versioned Online Medley file system under the name OUTFILE. OUTFILE can then be LOADed by the start script. -Below is the start script for a demo of Pamoroso's INSPHEX utility The start script defines and then runs a function called START-INSPHEX. The START-INPHEX in turn uses ShellWget to download the source code to INSPHEX from Github, compiles it, loads the compiled file and then uses ADD.PROCESS to run the main HEXDUMP function. There is some additional complication in the call to ADD.PROCESS to ensure that packages are handled correctly. But most existing Interlisp demos will not need this complexity since they don't use packages. +Below is the start script for a demo of Pamoroso's INSPHEX utility The start script defines and then runs a function called START-INSPHEX. The START-INPHEX function in turn uses ShellWget to download the source code to INSPHEX from Github, compiles it, loads the compiled file and then uses ADD.PROCESS to run the main HEXDUMP function. There is some additional complication in the call to ADD.PROCESS to ensure that packages are handled correctly. But most existing Interlisp demos will not need this complexity since they don't use packages. ``` (DEFINE-FILE-INFO ^^PACKAGE "INTERLISP" ^^READTABLE "INTERLISP" ^^BASE 10) @@ -91,6 +91,6 @@ For legacy reasons, ```https:://online.interlisp.org/demo/guest``` and ```https > Written with [StackEdit](https://stackedit.io/). \ No newline at end of file From 2f0f7118318767e21e870a3bda41985ac474d533 Mon Sep 17 00:00:00 2001 From: Frank Halasz Date: Sun, 16 Nov 2025 21:57:33 -0800 Subject: [PATCH 162/166] docs/Demo_mode.md updated from https://stackedit.io/ --- docs/Demo_mode.md | 23 ++--------------------- 1 file changed, 2 insertions(+), 21 deletions(-) diff --git a/docs/Demo_mode.md b/docs/Demo_mode.md index 3e11b011..ecec8513 100644 --- a/docs/Demo_mode.md +++ b/docs/Demo_mode.md @@ -71,26 +71,7 @@ Additionally, if a ```start=``` query parameter is inc For legacy reasons, ```https:://online.interlisp.org/demo/guest``` and ```https:://online.interlisp.org/guest``` are synonyms for ```https::online.interlisp.org/demo```. - - - - - - - - - - - - - - - - - - -> Written with [StackEdit](https://stackedit.io/). \ No newline at end of file From bf6beb60bf4042f897c26bce2eab4ff72e61b4b6 Mon Sep 17 00:00:00 2001 From: Frank Halasz Date: Sun, 16 Nov 2025 22:13:05 -0800 Subject: [PATCH 163/166] Cleaning stackedit garbage out of Demo_mode.md file --- docs/Demo_mode.md | 4 ---- 1 file changed, 4 deletions(-) diff --git a/docs/Demo_mode.md b/docs/Demo_mode.md index ecec8513..023daa3c 100644 --- a/docs/Demo_mode.md +++ b/docs/Demo_mode.md @@ -71,7 +71,3 @@ Additionally, if a ```start=``` query parameter is inc For legacy reasons, ```https:://online.interlisp.org/demo/guest``` and ```https:://online.interlisp.org/guest``` are synonyms for ```https::online.interlisp.org/demo```. - \ No newline at end of file From 5b9d52494d336c93162c1d34e0d5406bf7cd89b2 Mon Sep 17 00:00:00 2001 From: Frank Halasz Date: Sun, 16 Nov 2025 22:17:26 -0800 Subject: [PATCH 164/166] Fix up some formatting in Demo_mode.md --- docs/Demo_mode.md | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/Demo_mode.md b/docs/Demo_mode.md index 023daa3c..d3de39b9 100644 --- a/docs/Demo_mode.md +++ b/docs/Demo_mode.md @@ -10,6 +10,7 @@ An addition aspect of Demo Mode is that login processing can (optionally) be ski To access Demo mode, use the following URLs: ```https://online.interlisp.og/demo?start=\``` for automatic guest login. + ```https://online.interlisp.og/demo/login?start=\``` to require logins `````` is a URL pointing to a start-script lisp file that can be wget'd by the OIO server. **This URL must be encoded using the equivalent of Javascript's *encodeURIComponent*.** The easiest way to do this is via one of the many websites that offer this service such as https://meyerweb.com/eric/tools/dencoder/. From 244cadb18dc8c774c7301eae8f0785576f6551e4 Mon Sep 17 00:00:00 2001 From: Frank Halasz Date: Mon, 17 Nov 2025 10:36:58 -0800 Subject: [PATCH 165/166] Fix a few typos in Demo_mode.md --- docs/Demo_mode.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/Demo_mode.md b/docs/Demo_mode.md index d3de39b9..e11ee451 100644 --- a/docs/Demo_mode.md +++ b/docs/Demo_mode.md @@ -29,7 +29,7 @@ Sample start scripts can be found in the Interlisp/Online Github repo in the sta Most demos will require Lisp (or other) files that are not included in the standard Online Medley image. One very handy function to be used in start scripts for these demos is ```(ShellWget URL OUTFILE)```. This function will download (using wget) the file specified by URL and store it in the versioned Online Medley file system under the name OUTFILE. OUTFILE can then be LOADed by the start script. -Below is the start script for a demo of Pamoroso's INSPHEX utility The start script defines and then runs a function called START-INSPHEX. The START-INPHEX function in turn uses ShellWget to download the source code to INSPHEX from Github, compiles it, loads the compiled file and then uses ADD.PROCESS to run the main HEXDUMP function. There is some additional complication in the call to ADD.PROCESS to ensure that packages are handled correctly. But most existing Interlisp demos will not need this complexity since they don't use packages. +Below is the start script for a demo of Pamoroso's INSPHEX utility. The start script defines and then runs a function called START-INSPHEX. The START-INPHEX function in turn uses ShellWget to download the source code to INSPHEX from Github, compiles it, loads the compiled file and then uses ADD.PROCESS to run the main HEXDUMP function. There is some additional complication in the call to ADD.PROCESS to ensure that packages are handled correctly. But most existing Interlisp demos will not need this complexity since they don't use packages. ``` (DEFINE-FILE-INFO ^^PACKAGE "INTERLISP" ^^READTABLE "INTERLISP" ^^BASE 10) @@ -43,7 +43,7 @@ Below is the start script for a demo of Pamoroso's INSPHEX utility The start sc (DEFINEQ (START-INSPHEX - [LAMBDA NIL + [LAMBDA NIL (LET* ((INSPHEX.FILE (OUTFILEP "{CORE}INSPHEX")) INSPHEX.DFASL) (ShellWget "https://raw.githubusercontent.com/pamoroso/insphex/refs/heads/main/INSPHEX" @@ -70,5 +70,5 @@ Additionally, if a ```start=``` query parameter is inc ## Synonyms for *https::online.interlisp.org/demo* -For legacy reasons, ```https:://online.interlisp.org/demo/guest``` and ```https:://online.interlisp.org/guest``` are synonyms for ```https::online.interlisp.org/demo```. +For legacy reasons, ```https://online.interlisp.org/demo/guest``` and ```https://online.interlisp.org/guest``` are synonyms for ```https://online.interlisp.org/demo```. From 063c292b59ff8aee71211495367317717dce618c Mon Sep 17 00:00:00 2001 From: Frank Halasz Date: Tue, 18 Nov 2025 23:45:03 -0800 Subject: [PATCH 166/166] Rename ShellWget to be ShellHttpGet; ShellHttpGet now tries to use curl if wget is not present; ShellHttpGet now resides in the file library/ONLINEUTILS (rather than library/UNIXUTILS) and is loaded only into the Online Medley docker image and not the standard Medley loadups --- docker_medley/Dockerfile_medley | 3 ++ docker_medley/init/ONLINE-INIT | 21 ++++++----- docker_medley/init/ONLINE-INIT.LCOM | Bin 5572 -> 5512 bytes docker_medley/library/ONLINEUTILS | 47 +++++++++++++++++++++++++ docker_medley/library/ONLINEUTILS.LCOM | Bin 0 -> 1337 bytes docs/Demo_mode.md | 6 ++-- start-scripts/START-INSPHEX | 28 ++++----------- start-scripts/START-INSPHEX.LCOM | Bin 1662 -> 1201 bytes 8 files changed, 72 insertions(+), 33 deletions(-) create mode 100644 docker_medley/library/ONLINEUTILS create mode 100644 docker_medley/library/ONLINEUTILS.LCOM diff --git a/docker_medley/Dockerfile_medley b/docker_medley/Dockerfile_medley index 7ddefac6..89e0e8ef 100644 --- a/docker_medley/Dockerfile_medley +++ b/docker_medley/Dockerfile_medley @@ -114,6 +114,9 @@ COPY scripts/* ${ONLINE_BINDIR} RUN chmod ugo+x ${ONLINE_BINDIR}/* \ && ln -s ${ONLINE_BINDIR}/request_new_tab.sh ${ONLINE_BINDIR}/request_new_tab +# copy online-specific files into medley/library +COPY --chown=${USER_NAME}:${USER_NAME} library/ONLINEUTILS ${MEDLEY_INSTALLDIR}/library +COPY --chown=${USER_NAME}:${USER_NAME} library/ONLINEUTILS.LCOM ${MEDLEY_INSTALLDIR}/library # copy INIT file into home directory COPY --chown=${USER_NAME}:${USER_NAME} init/INIT ${MEDLEY_USERDIR} diff --git a/docker_medley/init/ONLINE-INIT b/docker_medley/init/ONLINE-INIT index cdcae723..666b8d77 100644 --- a/docker_medley/init/ONLINE-INIT +++ b/docker_medley/init/ONLINE-INIT @@ -1,15 +1,13 @@ (DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "INTERLISP" BASE 10) -(FILECREATED "29-Oct-2025 23:56:02" {DSK}frank>il>medley>greetfiles>ONLINE-INIT.;2 11034 +(FILECREATED "18-Nov-2025 23:19:56" {DSK}frank>il>online>docker_medley>init>ONLINE-INIT.;51 10938 :EDIT-BY "FGH" - :CHANGES-TO (ADVICE (SAVEVM :IN \IDLER)) - (FNS Online.SftpInitInfo Online.SftpUpdateInfo Online.SetUpNOTECARDSDIRECTORIES - Online.DoInit ONLINEP Online.FileButton) - (VARS ONLINE-INITCOMS) + :CHANGES-TO (VARS ONLINE-INITCOMS) - :PREVIOUS-DATE "18-Mar-2025 22:45:51" {DSK}frank>il>medley>greetfiles>ONLINE-INIT.;1) + :PREVIOUS-DATE "29-Oct-2025 23:56:02" +{DSK}frank>il>online>docker_medley>init>ONLINE-INIT.;50) (PRETTYCOMPRINT ONLINE-INITCOMS) @@ -19,6 +17,8 @@ APPS-INIT) (FILES (SYSLOAD) VTCHAT) + (FILES (SYSLOAD) + ONLINEUTILS) (GLOBALVARS Online.LogoutTimeout Online.SftpPort Online.SftpPassword Online.SftpDisplay IDLE.PROFILE IDLE.BOUNCING.BOX Online.SftpDisplayMenu ONLINEP ShellBrowser ShellOpener CLHS.OPENER MEDLEYDIR) @@ -35,6 +35,9 @@ (FILESLOAD (SYSLOAD) VTCHAT) + +(FILESLOAD (SYSLOAD) + ONLINEUTILS) (DECLARE%: DOEVAL@COMPILE DONTCOPY (GLOBALVARS Online.LogoutTimeout Online.SftpPort Online.SftpPassword Online.SftpDisplay IDLE.PROFILE @@ -247,7 +250,7 @@ (BKSYSBUF " ") ) (DECLARE%: DONTCOPY - (FILEMAP (NIL (1924 10898 (Online.SftpInitInfo 1934 . 2807) (Online.SftpUpdateInfo 2809 . 3064) ( -Online.SetUpNOTECARDSDIRECTORIES 3066 . 4774) (Online.FileButton 4776 . 7604) (Online.DoInit 7606 . -10759) (ONLINEP 10761 . 10896))))) + (FILEMAP (NIL (1828 10802 (Online.SftpInitInfo 1838 . 2711) (Online.SftpUpdateInfo 2713 . 2968) ( +Online.SetUpNOTECARDSDIRECTORIES 2970 . 4678) (Online.FileButton 4680 . 7508) (Online.DoInit 7510 . +10663) (ONLINEP 10665 . 10800))))) STOP diff --git a/docker_medley/init/ONLINE-INIT.LCOM b/docker_medley/init/ONLINE-INIT.LCOM index a9e38cda3eedee849c1f1ea2a6fa7a80534b2dd1..ef9c00fba349bb9ed9c1f42a0383640df26391c3 100644 GIT binary patch delta 354 zcmX@2-Jv}pT*S~q*Dt?J*T}%gRKdvD%E-XVz-(f+x@LY}PG(-JT}pm(c4|?4ZfZ(S zYNcIfUS^4%zn_n%pR2B?pJ#}kwW;C6O_}J17+PAHnoZVc6f-2+6a_9r150BIg~_>$ zGLsdU#MG?IwT^vJP6_kuDb^Vh|;O;avvobJJQsA0w$S6XzTMaf(WReol za`W_Y4OY+yjtutkcXZKI;DY!lG{n;9O9SG|BB pe~>h$8}^ z3iRB7E^{g^Dap^%RL}@>3<`!S0K3xJ-#1uOfy*i&$TiHSH4-6H_ZwLnQ@V{*b{F2!@+QnWO}G+EjCY>1LrYUSC(BSfq<*5YVk$o5h5y7$9d;`K diff --git a/docker_medley/library/ONLINEUTILS b/docker_medley/library/ONLINEUTILS new file mode 100644 index 00000000..1a1bd6ad --- /dev/null +++ b/docker_medley/library/ONLINEUTILS @@ -0,0 +1,47 @@ +(DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "INTERLISP" BASE 10) + +(FILECREATED "18-Nov-2025 22:54:33" {DSK}frank>il>medley>library>ONLINEUTILS.;2 2078 + + :EDIT-BY "FGH" + + :CHANGES-TO (FNS ShellHttpGet) + + :PREVIOUS-DATE "18-Nov-2025 22:48:48" {DSK}frank>il>medley>library>ONLINEUTILS.;1) + + +(PRETTYCOMPRINT ONLINEUTILSCOMS) + +(RPAQQ ONLINEUTILSCOMS ((FNS ShellHttpGet))) +(DEFINEQ + +(ShellHttpGet + [LAMBDA (URL OUTFILENAME) (* ; "Edited 18-Nov-2025 22:54 by FGH") + + (* ;; "Download a file specified by URL from the internet and place it in anew file name OUTFILENAME. OUTFILENAME will be versioned if it is on a versioned file device. Protocol of URL must be http: or https:. Uses wget (if it exists) or curl (if it exists) via a ShellCommand. It is an error if the underlying system doesn't have either wget or curl.") + (* ; "Edited 18-Nov-2025 22:39 by FGH") + (LET ((UURL (U-CASE URL))) + (if (NOT (OR (STRPOS "HTTP:://" UURL NIL NIL T) + (STRPOS "HTTPS://" UURL NIL NIL T))) + then (ERROR "ShellHttpGet URL argument is not a HTTP:// or HTTPS:// Url"))) + (LET* ((WGET (ShellWhich "wget")) + (CURL (if (NULL WGET) + then (ShellWhich "curl") + else NIL)) + (OUTNAME (OUTFILEP OUTFILENAME)) + (TMPFILE (CONCAT "/tmp/wget" (CLOCK))) + (UNIXFILE (CONCAT "{UNIX}" TMPFILE)) + (CMD (if WGET + then (CONCAT WGET " " URL " -O " TMPFILE) + elseif CURL + then (CONCAT CURL " " URL " --output " TMPFILE) + else NIL))) + (if (NULL CMD) + then (ERROR "ShellHttpGet - neither wget nor curl are available on this system")) + (ShellCommand CMD) + (COPYFILE UNIXFILE OUTNAME) + (DELFILE UNIXFILE) + OUTNAME]) +) +(DECLARE%: DONTCOPY + (FILEMAP (NIL (414 2055 (ShellHttpGet 424 . 2053))))) +STOP diff --git a/docker_medley/library/ONLINEUTILS.LCOM b/docker_medley/library/ONLINEUTILS.LCOM new file mode 100644 index 0000000000000000000000000000000000000000..29b163318536f8b7f5d2598963075ea70bd86467 GIT binary patch literal 1337 zcmbVM&ySN(5N`b~iN@+#^W|M^59|V^TNX{TEYKE90fDM}#4TDPEt@X8W@Ah|`=@x+ zc=qgnS~9f$qtM8QI@Au6bmrC zv7*u2hqGdy_FgQL#j9SH_vYy|PtSUJ_I#Nv&w9S+QhJlvaigsVN=qPVRrC+bwRBro zC0*KOD7kWee~OHRjUb4y$=ll6Vwff+1^&Z*S!1og=HG7rN4`*`t_IzY_aa2IG|z`+c{E7N7W5#rpE&*`5-lp`Z?#l4UDX(be=VNe5;o&N zw=|&{Ua~LJ!`U>uahY46?w$iaRDQ+&a_6VrsMnp1qj$4L{erR9 zyjan$aXEo6jryeuao65u=kx7H(~qdYy=r~GVY{nL8ucsQ=bIJ2itbh0cvPv3D`#}8 z)|7Xa6OQE6yJpB7owXyrRe zLlldX^5~=l6Ck&DRwr@?>frank>il>online>start-scripts>START-INSPHEX.;18 2203 +(FILECREATED "18-Nov-2025 23:40:40" {DSK}frank>il>online>start-scripts>START-INSPHEX.;25 1665 :EDIT-BY "FGH" :CHANGES-TO (FNS START-INSPHEX) - (FUNCTIONS TmpShellWget) (VARS START-INSPHEXCOMS) - :PREVIOUS-DATE "11-Nov-2025 23:50:23" {DSK}frank>il>online>start-scripts>START-INSPHEX.;17 + :PREVIOUS-DATE "11-Nov-2025 23:54:22" {DSK}frank>il>online>start-scripts>START-INSPHEX.;18 ) (PRETTYCOMPRINT START-INSPHEXCOMS) -(RPAQQ START-INSPHEXCOMS ((FUNCTIONS TmpShellWget) - (FNS START-INSPHEX) +(RPAQQ START-INSPHEXCOMS ((FNS START-INSPHEX) (P (START-INSPHEX)))) - -(CL:DEFUN TmpShellWget (URL OUTFILENAME) (* ; "Edited 11-Nov-2025 23:50 by FGH") - (LET* ((WGET (ShellWhich "wget")) - (OUTNAME (OUTFILEP OUTFILENAME)) - (TMPFILE (CONCAT "/tmp/wget" (CLOCK))) - (UNIXFILE (CONCAT "{UNIX}" TMPFILE)) - (CMD (CONCAT WGET " " URL " -O " TMPFILE))) - (if (NULL WGET) - then (ERROR "ShellWget - wget not available")) - (ShellCommand CMD) - (COPYFILE UNIXFILE OUTNAME) - (DELFILE UNIXFILE) - OUTNAME)) (DEFINEQ (START-INSPHEX - [LAMBDA NIL (* ; "Edited 11-Nov-2025 23:54 by FGH") + [LAMBDA NIL (* ; "Edited 18-Nov-2025 23:40 by FGH") + (* ; "Edited 11-Nov-2025 23:54 by FGH") (* ; "Edited 7-Nov-2025 10:43 by FGH") (LET* ((INSPHEX.FILE (OUTFILEP "{CORE}INSPHEX")) INSPHEX.DFASL) - (TmpShellWget "https://raw.githubusercontent.com/pamoroso/insphex/refs/heads/main/INSPHEX" + (ShellHttpGet "https://raw.githubusercontent.com/pamoroso/insphex/refs/heads/main/INSPHEX" INSPHEX.FILE) (SETQ INSPHEX.DFASL (CL:COMPILE-FILE INSPHEX.FILE)) (LOAD INSPHEX.DFASL) @@ -51,5 +37,5 @@ (START-INSPHEX) (DECLARE%: DONTCOPY - (FILEMAP (NIL (623 1170 (TmpShellWget 623 . 1170)) (1171 2159 (START-INSPHEX 1181 . 2157))))) + (FILEMAP (NIL (528 1621 (START-INSPHEX 538 . 1619))))) STOP diff --git a/start-scripts/START-INSPHEX.LCOM b/start-scripts/START-INSPHEX.LCOM index 74306c2ee0aadc1e5704269890c95b924862c2e3..9ebf828e344213a2b0fd4bb289165998b38ddcc6 100644 GIT binary patch delta 140 zcmeyzvypQ`gs_FKUw)ack%5t^f|0S6iGh`=!NhEDCL_~{JF+k(O$;XgW3*xiDmFAT zGo4(8llPM=jp=*0MorEGynhq delta 626 zcmZ{i%}(1u6or*Q7q!^2V0${NF~~~n6cxEE%b9@1WX7_`kS;^xHfi&NS}O=4$SV-# zNf4VpM^`)zV#ZBfrByeh(Y>F}Id|?nynf!f@9nydn9Uup=^esr`G;@)mbd(RT6d3@ zKfbJf*5oUAUbD5D*SuaQ6QPQvNTDW|=`bIU&p+pd4SE(NDN+?A%85i8pRisiyQvM! zj}vwl$t-o+fnp%;Uv5p`YY{B(j_U5a)tma0^+)(|YwKHW?>~;K@7o89ko#?>Gi{^+ z%@PiosZPY12)azi+sAtlHW(H80RJSw#Wgy|Cq#3cseMp-e#{i8^=rW4=;ILNO3z7b zjc8#bYA%b?BHr-QgzCn|8Z?w53=~MCm|QkW0bS!VJhhEbCZb-+SrvF=YPSSy1w)11 zb|qBCA|NmW5;zN~&x+OX=o6^OIENu^6vKQ9%92DTut>EoI51%_ofYWM`=fFHVw{(= sl}I?7O#0ISw6pP-@rN>H6?gpry63hT-{|Rm|L)or-S`f+B_eLU07}8E;s5{u