Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
169 commits
Select commit Hold shift + click to select a range
134662b
First pass at museum mode where can specify a URL of a start script w…
fghalasz Oct 29, 2025
80bec28
Fix typo in server/js/medley.js
fghalasz Oct 29, 2025
6cf61ae
Fix typo in client/js/main.js
fghalasz Oct 29, 2025
f02e6cc
Fix up a small bit of code in /server/js/medley.js
fghalasz Oct 29, 2025
b04276c
Fix up typo in /server/js/medley.js
fghalasz Oct 29, 2025
75b4baa
Fix setting of START_SCRIPT in run-online-medley script
fghalasz Oct 30, 2025
a186c79
fix misformed medleyEnvs function.
fghalasz Oct 30, 2025
0e4191d
Updating ONLINE-INIT to latest
fghalasz Oct 30, 2025
47b4fbd
Create a start script for testing museum mode
fghalasz Oct 31, 2025
928b207
Adding some debugging code
fghalasz Oct 31, 2025
7cd2126
Adding some debugging code
fghalasz Oct 31, 2025
3d49391
Adding some debugging code
fghalasz Oct 31, 2025
9d36aa2
Adding some debugging code
fghalasz Oct 31, 2025
63c5b61
Removing some debugging code; fixing typo in medley.js
fghalasz Oct 31, 2025
991999b
Adding some debugging code
fghalasz Oct 31, 2025
9115104
Adding some debugging code
fghalasz Oct 31, 2025
cca61e6
Adding some debugging code
fghalasz Oct 31, 2025
5e398b8
Adding some debugging code
fghalasz Nov 1, 2025
6b78411
Debugging
fghalasz Nov 1, 2025
6c5faf3
Debugging
fghalasz Nov 1, 2025
ae08c15
Rename START_KINETIC to START-KINETIC
fghalasz Nov 1, 2025
040eb4d
Renaming START_KINETIC to START-KINETIC and adding ADD.PROCESS to it.
fghalasz Nov 1, 2025
7839dac
Fixing up delete of START_KINETIC from last commit
fghalasz Nov 1, 2025
43bee9e
Fixing START-KINETIC
fghalasz Nov 1, 2025
8d0b6e6
Add second mudeum-mode sample start script focused on pamoroso's INSP…
fghalasz Nov 6, 2025
826768a
Updated START-INSPHEX start-script - this time it actually works
fghalasz Nov 7, 2025
43d785e
Scooching INSPHEX window over a bit in START-INSPHEX start script
fghalasz Nov 7, 2025
d9d797b
Move start-scripts to top level of online repo. Add URLs used with t…
fghalasz Nov 7, 2025
48fb93b
Fix start-script URLs
fghalasz Nov 7, 2025
67ee9ae
Update URL to use 'github.com' instead of 'raw.githubusercontent.com'
fghalasz Nov 7, 2025
72b293c
Merge branch 'main' into fgh_museum-mode
fghalasz Nov 8, 2025
958349c
Add new routes for autologin, /demo/guest is equivalent to the curren…
fghalasz Nov 8, 2025
3906ca4
Fixing res.redirect statements to include query
fghalasz Nov 8, 2025
2299b53
Debugging /demo/login route
fghalasz Nov 8, 2025
73bd1b9
Fix typo
fghalasz Nov 8, 2025
cedf381
Debugging /demo/login route
fghalasz Nov 8, 2025
08f5e50
Debugging /demo/login route
fghalasz Nov 8, 2025
e7b0bb6
Redoing routing for /demo/guest and /demo/login paths.
fghalasz Nov 9, 2025
b1ef52c
Add relogin route for /demo routes.
fghalasz Nov 10, 2025
fb52628
Fix typo
fghalasz Nov 10, 2025
4c13770
Fix relogin page; fix adding autologin=true to originalURL
fghalasz Nov 10, 2025
d891c83
Fix typo
fghalasz Nov 10, 2025
2557e31
Fixing handling of encode and decode of URLS
fghalasz Nov 10, 2025
4402053
Debugging relogin route
fghalasz Nov 10, 2025
8ded780
Still debugging /demo/login
fghalasz Nov 10, 2025
24f502b
Still debugging /demo/login
fghalasz Nov 10, 2025
b9a2f03
Fixing up relogin page; adding install_mongodb thats just been hangin…
fghalasz Nov 12, 2025
d9bade1
Fixing up relogin page
fghalasz Nov 12, 2025
83c2c37
Switch yes/no labels on relogin
fghalasz Nov 12, 2025
a93e0f5
Update START-INSPHEX to use new HEXDUMP function signature. Update t…
fghalasz Nov 12, 2025
44f024a
Fix relogin when using &notecards=1
fghalasz Nov 12, 2025
539bf6d
Merge branch 'fgh_museum-mode' of https://github.com/Interlisp/online…
fghalasz Nov 12, 2025
c3b4f40
Update START-INSPHEX to fix wget filename issues
fghalasz Nov 12, 2025
f83ab09
Fix issues with unix vs lisp filenames in ShellWget
fghalasz Nov 12, 2025
a113f19
Update URL for KINETIC script
fghalasz Nov 12, 2025
42e2d5a
Adding start-script option to main Run Medley page
fghalasz Nov 12, 2025
d2f3ea3
Merge branch 'fgh_museum-mode' of https://github.com/Interlisp/online…
fghalasz Nov 12, 2025
9cb9517
Polishing start-script entry on run medley page
fghalasz Nov 12, 2025
2c7fef8
Fix typo
fghalasz Nov 12, 2025
4d5de1b
Fix const -> let
fghalasz Nov 12, 2025
fb0eec9
Adjusting start-script typein element
fghalasz Nov 13, 2025
a4055bf
Adjusting start-script typein element
fghalasz Nov 13, 2025
d0cc9e7
Adjusting start-script typein element
fghalasz Nov 13, 2025
73e4c8e
Still adjusting start-script typein
fghalasz Nov 13, 2025
dee8a0e
Still adjusting start-script typein
fghalasz Nov 13, 2025
9f8c602
Still adjusting start-script typein
fghalasz Nov 13, 2025
fa8d462
Still adjusting start-script typein
fghalasz Nov 13, 2025
38194a6
Still adjusting start-script typein
fghalasz Nov 14, 2025
a4ec07d
Still adjusting start-script typein
fghalasz Nov 14, 2025
3971f5f
Still adjusting start-script typein
fghalasz Nov 14, 2025
f11a42a
Still adjusting start-script typein
fghalasz Nov 14, 2025
3d5a247
Still adjusting start-script typein
fghalasz Nov 14, 2025
c3c2f96
Storing start_script_url in local store so saved between invocations
fghalasz Nov 14, 2025
d9e4744
Fixing error messages on login page
fghalasz Nov 14, 2025
8627d45
docs/Demo_mode.md created from https://stackedit.io/
fghalasz Nov 16, 2025
93ffbf7
docs/Demo_mode.md updated from https://stackedit.io/
fghalasz Nov 16, 2025
77bc972
docs/Demo_mode.md updated from https://stackedit.io/
fghalasz Nov 16, 2025
e3d033f
docs/Demo_mode.md updated from https://stackedit.io/
fghalasz Nov 16, 2025
3141b01
docs/Demo_mode.md updated from https://stackedit.io/
fghalasz Nov 16, 2025
48a57a7
docs/Demo_mode.md updated from https://stackedit.io/
fghalasz Nov 16, 2025
ff027c6
docs/Demo_mode.md updated from https://stackedit.io/
fghalasz Nov 16, 2025
f8e05ce
docs/Demo_mode.md updated from https://stackedit.io/
fghalasz Nov 16, 2025
47f3290
docs/Demo_mode.md updated from https://stackedit.io/
fghalasz Nov 16, 2025
6721ed5
docs/Demo_mode.md updated from https://stackedit.io/
fghalasz Nov 17, 2025
568c7c0
docs/Demo_mode.md updated from https://stackedit.io/
fghalasz Nov 17, 2025
4371d1b
docs/Demo_mode.md updated from https://stackedit.io/
fghalasz Nov 17, 2025
795ed2d
docs/Demo_mode.md updated from https://stackedit.io/
fghalasz Nov 17, 2025
bd3e86d
docs/Demo_mode.md updated from https://stackedit.io/
fghalasz Nov 17, 2025
871d12b
docs/Demo_mode.md updated from https://stackedit.io/
fghalasz Nov 17, 2025
85b1497
docs/Demo_mode.md updated from https://stackedit.io/
fghalasz Nov 17, 2025
169157d
docs/Demo_mode.md updated from https://stackedit.io/
fghalasz Nov 17, 2025
1c801ae
docs/Demo_mode.md updated from https://stackedit.io/
fghalasz Nov 17, 2025
aff0e04
docs/Demo_mode.md updated from https://stackedit.io/
fghalasz Nov 17, 2025
f9a0fc8
docs/Demo_mode.md updated from https://stackedit.io/
fghalasz Nov 17, 2025
3eacb70
docs/Demo_mode.md updated from https://stackedit.io/
fghalasz Nov 17, 2025
4b71c88
docs/Demo_mode.md updated from https://stackedit.io/
fghalasz Nov 17, 2025
ebfa996
docs/Demo_mode.md updated from https://stackedit.io/
fghalasz Nov 17, 2025
1a6c8cd
docs/Demo_mode.md updated from https://stackedit.io/
fghalasz Nov 17, 2025
f5458c7
docs/Demo_mode.md updated from https://stackedit.io/
fghalasz Nov 17, 2025
eebc768
docs/Demo_mode.md updated from https://stackedit.io/
fghalasz Nov 17, 2025
c15a7f9
docs/Demo_mode.md updated from https://stackedit.io/
fghalasz Nov 17, 2025
d2b9d61
docs/Demo_mode.md updated from https://stackedit.io/
fghalasz Nov 17, 2025
e36ea7c
docs/Demo_mode.md updated from https://stackedit.io/
fghalasz Nov 17, 2025
44dd9a1
docs/Demo_mode.md updated from https://stackedit.io/
fghalasz Nov 17, 2025
bb95e0b
docs/Demo_mode.md updated from https://stackedit.io/
fghalasz Nov 17, 2025
b33fdd4
docs/Demo_mode.md updated from https://stackedit.io/
fghalasz Nov 17, 2025
d0842b9
docs/Demo_mode.md updated from https://stackedit.io/
fghalasz Nov 17, 2025
d5e1ae0
docs/Demo_mode.md updated from https://stackedit.io/
fghalasz Nov 17, 2025
f274beb
docs/Demo_mode.md updated from https://stackedit.io/
fghalasz Nov 17, 2025
e14b0e9
docs/Demo_mode.md updated from https://stackedit.io/
fghalasz Nov 17, 2025
a86ae00
docs/Demo_mode.md updated from https://stackedit.io/
fghalasz Nov 17, 2025
299cf51
docs/Demo_mode.md updated from https://stackedit.io/
fghalasz Nov 17, 2025
ddd3fcb
docs/Demo_mode.md updated from https://stackedit.io/
fghalasz Nov 17, 2025
6ebe691
docs/Demo_mode.md updated from https://stackedit.io/
fghalasz Nov 17, 2025
2021f2f
docs/Demo_mode.md updated from https://stackedit.io/
fghalasz Nov 17, 2025
4c09969
docs/Demo_mode.md updated from https://stackedit.io/
fghalasz Nov 17, 2025
9254cc9
docs/Demo_mode.md updated from https://stackedit.io/
fghalasz Nov 17, 2025
4bfa2a0
docs/Demo_mode.md updated from https://stackedit.io/
fghalasz Nov 17, 2025
3d476b9
docs/Demo_mode.md updated from https://stackedit.io/
fghalasz Nov 17, 2025
ad4b661
docs/Demo_mode.md updated from https://stackedit.io/
fghalasz Nov 17, 2025
0fbfbc0
docs/Demo_mode.md updated from https://stackedit.io/
fghalasz Nov 17, 2025
4b00ac4
docs/Demo_mode.md updated from https://stackedit.io/
fghalasz Nov 17, 2025
eac6ead
docs/Demo_mode.md updated from https://stackedit.io/
fghalasz Nov 17, 2025
21b0381
docs/Demo_mode.md updated from https://stackedit.io/
fghalasz Nov 17, 2025
7dd8415
docs/Demo_mode.md updated from https://stackedit.io/
fghalasz Nov 17, 2025
dc7aa07
docs/Demo_mode.md updated from https://stackedit.io/
fghalasz Nov 17, 2025
4e4df7b
docs/Demo_mode.md updated from https://stackedit.io/
fghalasz Nov 17, 2025
1fd4253
docs/Demo_mode.md updated from https://stackedit.io/
fghalasz Nov 17, 2025
9aa52f3
docs/Demo_mode.md updated from https://stackedit.io/
fghalasz Nov 17, 2025
4e0c4fc
docs/Demo_mode.md updated from https://stackedit.io/
fghalasz Nov 17, 2025
0cce787
docs/Demo_mode.md updated from https://stackedit.io/
fghalasz Nov 17, 2025
d305152
docs/Demo_mode.md updated from https://stackedit.io/
fghalasz Nov 17, 2025
6a6a8f9
docs/Demo_mode.md updated from https://stackedit.io/
fghalasz Nov 17, 2025
1f3c575
docs/Demo_mode.md updated from https://stackedit.io/
fghalasz Nov 17, 2025
b5a9daf
docs/Demo_mode.md updated from https://stackedit.io/
fghalasz Nov 17, 2025
06b4717
docs/Demo_mode.md updated from https://stackedit.io/
fghalasz Nov 17, 2025
4cbfd0b
docs/Demo_mode.md updated from https://stackedit.io/
fghalasz Nov 17, 2025
569f939
docs/Demo_mode.eyJicmFuY2giOiJmZ2hfbXVzZXVtLW1vZGUiLCJvd25lciI6ImludG…
fghalasz Nov 17, 2025
3d03e78
docs/Demo_mode.md updated from https://stackedit.io/
fghalasz Nov 17, 2025
041963b
docs/Demo_mode.md updated from https://stackedit.io/
fghalasz Nov 17, 2025
716f6e3
docs/Demo_mode.md updated from https://stackedit.io/
fghalasz Nov 17, 2025
71c80cd
docs/Demo_mode.eyJicmFuY2giOiJmZ2hfbXVzZXVtLW1vZGUiLCJvd25lciI6ImludG…
fghalasz Nov 17, 2025
3cbc376
docs/Demo_mode.md updated from https://stackedit.io/
fghalasz Nov 17, 2025
683b661
docs/Demo_mode.md updated from https://stackedit.io/
fghalasz Nov 17, 2025
e1ddc31
docs/Demo_mode.md updated from https://stackedit.io/
fghalasz Nov 17, 2025
9552f6f
docs/Demo_mode.md updated from https://stackedit.io/
fghalasz Nov 17, 2025
fb54578
docs/Demo_mode.md updated from https://stackedit.io/
fghalasz Nov 17, 2025
c7b1f10
docs/Demo_mode.md updated from https://stackedit.io/
fghalasz Nov 17, 2025
ec7cba2
docs/Demo_mode.md updated from https://stackedit.io/
fghalasz Nov 17, 2025
6e31ec2
docs/Demo_mode.md updated from https://stackedit.io/
fghalasz Nov 17, 2025
917fa95
docs/Demo_mode.md updated from https://stackedit.io/
fghalasz Nov 17, 2025
db969ff
docs/Demo_mode.md updated from https://stackedit.io/
fghalasz Nov 17, 2025
e428528
docs/Demo_mode.md updated from https://stackedit.io/
fghalasz Nov 17, 2025
300a720
docs/Demo_mode.md updated from https://stackedit.io/
fghalasz Nov 17, 2025
43ca818
docs/Demo_mode.md updated from https://stackedit.io/
fghalasz Nov 17, 2025
49886cf
docs/Demo_mode.md updated from https://stackedit.io/
fghalasz Nov 17, 2025
f69e7aa
docs/Demo_mode.md updated from https://stackedit.io/
fghalasz Nov 17, 2025
013ba8b
docs/Demo_mode.md updated from https://stackedit.io/
fghalasz Nov 17, 2025
6365187
docs/Demo_mode.md updated from https://stackedit.io/
fghalasz Nov 17, 2025
bc47f1a
docs/Demo_mode.md updated from https://stackedit.io/
fghalasz Nov 17, 2025
e84db58
docs/Demo_mode.md updated from https://stackedit.io/
fghalasz Nov 17, 2025
d0c873d
docs/Demo_mode.md updated from https://stackedit.io/
fghalasz Nov 17, 2025
3980661
docs/Demo_mode.md updated from https://stackedit.io/
fghalasz Nov 17, 2025
21aa5bc
docs/Demo_mode.md updated from https://stackedit.io/
fghalasz Nov 17, 2025
2f0f711
docs/Demo_mode.md updated from https://stackedit.io/
fghalasz Nov 17, 2025
bf6beb6
Cleaning stackedit garbage out of Demo_mode.md file
fghalasz Nov 17, 2025
5b9d524
Fix up some formatting in Demo_mode.md
fghalasz Nov 17, 2025
244cadb
Fix a few typos in Demo_mode.md
fghalasz Nov 17, 2025
063c292
Rename ShellWget to be ShellHttpGet; ShellHttpGet now tries to use cu…
fghalasz Nov 19, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions docker_medley/Dockerfile_medley
Original file line number Diff line number Diff line change
Expand Up @@ -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}
Expand Down
33 changes: 22 additions & 11 deletions docker_medley/init/ONLINE-INIT
100755 → 100644
Original file line number Diff line number Diff line change
@@ -1,10 +1,13 @@
(DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "INTERLISP" BASE 10)

(FILECREATED "18-Mar-2025 22:45:51" {DSK}<home>medley>il>ONLINE-INIT.;1 10668
(FILECREATED "18-Nov-2025 23:19:56" {DSK}<home>frank>il>online>docker_medley>init>ONLINE-INIT.;51 10938

:EDIT-BY "guest"
:EDIT-BY "FGH"

:PREVIOUS-DATE "17-Mar-2025 17:06:18" {DSK}<home>medley>il>ONLINE-INIT.;1)
:CHANGES-TO (VARS ONLINE-INITCOMS)

:PREVIOUS-DATE "29-Oct-2025 23:56:02"
{DSK}<home>frank>il>online>docker_medley>init>ONLINE-INIT.;50)


(PRETTYCOMPRINT ONLINE-INITCOMS)
Expand All @@ -14,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)
Expand All @@ -30,6 +35,9 @@

(FILESLOAD (SYSLOAD)
VTCHAT)

(FILESLOAD (SYSLOAD)
ONLINEUTILS)
(DECLARE%: DOEVAL@COMPILE DONTCOPY

(GLOBALVARS Online.LogoutTimeout Online.SftpPort Online.SftpPassword Online.SftpDisplay IDLE.PROFILE
Expand Down Expand Up @@ -149,6 +157,8 @@
(Online.DoInit
[LAMBDA NIL

(* ;; "Edited 29-Oct-2025 23:55 by FGH")

(* ;; "Edited 16-Mar-2025 23:26 by guest")

(* ;; "Edited 25-Feb-2024 11:37 by fgh")
Expand Down Expand Up @@ -217,14 +227,15 @@
(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)

(* ;; "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")
Expand All @@ -239,7 +250,7 @@
(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 (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
Binary file modified docker_medley/init/ONLINE-INIT.LCOM
100755 → 100644
Binary file not shown.
47 changes: 47 additions & 0 deletions docker_medley/library/ONLINEUTILS
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
(DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "INTERLISP" BASE 10)

(FILECREATED "18-Nov-2025 22:54:33" {DSK}<home>frank>il>medley>library>ONLINEUTILS.;2 2078

:EDIT-BY "FGH"

:CHANGES-TO (FNS ShellHttpGet)

:PREVIOUS-DATE "18-Nov-2025 22:48:48" {DSK}<home>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
Binary file added docker_medley/library/ONLINEUTILS.LCOM
Binary file not shown.
14 changes: 14 additions & 0 deletions docker_medley/scripts/run-online-medley
Original file line number Diff line number Diff line change
Expand Up @@ -67,6 +67,20 @@ if [ $# -gt 1 ] && [ "$2" = "custom" ]; then
fi
fi
#
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
fi
unset START_SCRIPT_URL
#
if [ $# -gt 2 ]; then
width=$3
else
Expand Down
74 changes: 74 additions & 0 deletions docs/Demo_mode.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,74 @@

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

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:

```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.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

When visiting the example demo URL I get this error in Firefox and Chrome on Linux:

/demo?start=https%3A%2F%2Fgithub.com%2FInterlisp%2Fonline%2Fraw%2Frefs%2Fheads%2Ffgh_museum-mode%2Fstart-scripts%2FSTART-INSPHEX.LCOM&notecards=1 Not Found

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Expected. The URL in the documentation points to production OIO But demo-mode is not yet running on production, only on the development OIO. To test the URL at this point, you will need to manually add the :8081. This should go away once we deploy demo-mode PR to production.


## Start scripts

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 ```(ShellHttpGet URL OUTFILE)```. This function will download (using wget or curl) 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 ShellHttpGet 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)

(FILECREATED "16-Nov-2025 21:15:14" {DSK}<home>frank>il>START-INSPHEX.;1 1641)

(PRETTYCOMPRINT START-INSPHEXCOMS)

(RPAQQ START-INSPHEXCOMS ((FNS START-INSPHEX)
(P (START-INSPHEX))))
(DEFINEQ

(START-INSPHEX
[LAMBDA NIL
(LET* ((INSPHEX.FILE (OUTFILEP "{CORE}INSPHEX"))
INSPHEX.DFASL)
(ShellHttpGet "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)
STOP

```

## Start scripts outside of 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=<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.

## Synonyms for *https::online.interlisp.org/demo*

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is the double colon :: intentional? The URLs don't seem to work.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@pamoroso No the double colons are a typo. Fixed.


For legacy reasons, ```https://online.interlisp.org/demo/guest``` and ```https://online.interlisp.org/guest``` are synonyms for ```https://online.interlisp.org/demo```.

41 changes: 41 additions & 0 deletions start-scripts/START-INSPHEX
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
(DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "INTERLISP" BASE 10)

(FILECREATED "18-Nov-2025 23:40:40" {DSK}<home>frank>il>online>start-scripts>START-INSPHEX.;25 1665

:EDIT-BY "FGH"

:CHANGES-TO (FNS START-INSPHEX)
(VARS START-INSPHEXCOMS)

:PREVIOUS-DATE "11-Nov-2025 23:54:22" {DSK}<home>frank>il>online>start-scripts>START-INSPHEX.;18
)


(PRETTYCOMPRINT START-INSPHEXCOMS)

(RPAQQ START-INSPHEXCOMS ((FNS START-INSPHEX)
(P (START-INSPHEX))))
(DEFINEQ

(START-INSPHEX
[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)
(ShellHttpGet "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 (528 1621 (START-INSPHEX 538 . 1619)))))
STOP
Binary file added start-scripts/START-INSPHEX.LCOM
Binary file not shown.
2 changes: 2 additions & 0 deletions start-scripts/START-INSPHEX.URL
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
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

33 changes: 33 additions & 0 deletions start-scripts/START-KINETIC
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
(DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "INTERLISP" BASE 10)

(FILECREATED " 1-Nov-2025 13:41:38" {DSK}<home>frank>il>medley>START-KINETIC.;2 1112

:EDIT-BY "FGH"

:CHANGES-TO (FNS START-KINETIC)

:PREVIOUS-DATE " 1-Nov-2025 13:21:22" {DSK}<home>frank>il>medley>START-KINETIC.;1)


(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: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 (517 1068 (START-KINETIC 527 . 1066)))))
STOP
1 change: 1 addition & 0 deletions start-scripts/START-KINETIC.URL
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
https://online.interlisp.org:8081/demo?start=https%3A%2F%2Fgithub.com%2FInterlisp%2Fonline%2Fraw%2Frefs%2Fheads%2Ffgh_museum-mode%2Fstart-scripts%2FSTART-KINETIC
8 changes: 8 additions & 0 deletions system/install_mongodb8.0.sh
Original file line number Diff line number Diff line change
@@ -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
Loading