From 331c614acece8f22296ce099c86dcff11d003c4e Mon Sep 17 00:00:00 2001 From: Sacha Chua Date: Thu, 14 Dec 2023 08:25:35 -0500 Subject: update --- 2023/organizers-notebook.md | 175 +++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 165 insertions(+), 10 deletions(-) (limited to '2023/organizers-notebook.md') diff --git a/2023/organizers-notebook.md b/2023/organizers-notebook.md index e5dba38e..8fe6916b 100644 --- a/2023/organizers-notebook.md +++ b/2023/organizers-notebook.md @@ -29,8 +29,10 @@ Help wanted: - [Draft schedule for EmacsConf 2023](#draft-schedule) - [Prepare for the conference](#status) - [Get ready for production](#go-live):preflight: + - [Harvest cool stuff](#org45dfd5e) + - [Make things easier for next year](#org3dd5255) - [Volunteers](#coordinate-volunteers) - - [Lessons learned](#orgf5ad05e) + - [Lessons learned](#org5fa50a9) - [Progress reports](#progress) - [E-mail templates](#templates) - [Review](#review) @@ -635,7 +637,7 @@ doc These times are in EST (GMT-5). - Graphical view of the schedule Schedule for Saturday Saturday 9:00- 9:10 Saturday opening remarks sat-open 9:10- 9:20 An Org-Mode based text adventure game for learning the basics of Emacs, inside Emacs, written in Emacs Lisp adventure 9:30- 9:50 Authoring and presenting university courses with Emacs and a full libre software stack uni 10:05-10:25 Teaching computer and data science with literate programming tools teaching 10:40-10:50 Who needs Excel? Managing your students qualifications with org-table table 11:05-11:15 Taming things with Org Mode taming 11:30-11:50 one.el: the static site generator for Emacs Lisp Programmers one 1:00- 1:10 Emacs turbo-charges my writing writing 1:25- 1:35 Why Nabokov would use Org-Mode if he were writing today nabokov 1:50- 2:10 Collaborative data processing and documenting using org-babel collab 2:20- 2:40 How I play TTRPGs in Emacs solo 2:55- 3:15 Org-Mode workflow: informal reference tracking ref 3:25- 3:35 (Un)entangling projects and repos unentangling 3:45- 3:55 Emacs development updates devel 4:10- 4:50 Emacs core development: how it works core 5:05- 5:15 Saturday closing remarks sat-close 10:00-10:10 MatplotLLM, iterative natural language data visualization in org-babel matplotllm 10:20-10:40 Enhancing productivity with voice computing voice 10:55-11:15 LLM clients in Emacs, functionality and standardization llm 1:00- 1:20 Improving compiler diagnostics with overlays overlay 1:35- 1:45 Editor Integrated REPL Driven Development for all languages eval 2:00- 3:00 REPLs in strange places: Lua, LaTeX, LPeg, LPegRex, TikZ repl 3:10- 3:50 Literate Documentation with Emacs and Org Mode doc 4:05- 4:45 Windows into Freedom windows 9 AM 10 AM 11 AM 12 PM 1 PM 2 PM 3 PM 4 PM 5 PM Schedule for Sunday Sunday 8:59- 9:04 Sunday opening remarks sun-open 9:05- 9:25 Top 10 ways Hyperbole amps up Emacs hyperamp 9:40-10:00 Using Koutline for stream of thought journaling koutline 10:10-10:25 Parallel text replacement parallel 10:35-10:45 Eat and Eat powered Eshell, fast featureful terminal inside Emacs eat 11:00-11:20 The browser in a buffer poltys 11:35-11:55 Speedcubing in Emacs cubing 1:00- 1:40 Emacs MultiMedia System (EMMS) emms 1:55- 2:25 Programming with steno steno 2:35- 2:45 Mentoring VS-Coders as an Emacsian (or How to show not tell people about the wonders of Emacs) mentor 3:10- 3:40 Emacs saves the Web (maybe) web 3:55- 4:15 Sharing Emacs is Caring Emacs: Emacs education and why I embraced video sharing 4:30- 4:40 Sunday closing remarks sun-close 10:00-10:20 Bringing joy to Scheme programming scheme 10:35-10:55 GNU Emacs: A World of Possibilities world 11:10-11:20 A modern Emacs look-and-feel without pain flat 11:35-11:55 The Emacsen family, the design of an Emacs and the importance of Lisp emacsen 1:00- 1:35 emacs-gc-stats: Does garbage collection actually slow down Emacs? gc 1:50- 2:30 hyperdrive.el: Peer-to-peer filesystem in Emacs hyperdrive 2:45- 3:00 Writing a language server in OCaml for Emacs, fun, and profit lspocaml 3:15- 3:45 What I learned by writing test cases for GNU Hyperbole test 4:00- 4:20 EmacsConf.org: How we use Org Mode and TRAMP to organize and run a multi-track conference emacsconf 9 AM 10 AM 11 AM 12 PM 1 PM 2 PM 3 PM 4 PM 5 PM + Graphical view of the schedule Schedule for Saturday Saturday 9:00- 9:10 Saturday opening remarks sat-open 9:10- 9:20 An Org-Mode based text adventure game for learning the basics of Emacs, inside Emacs, written in Emacs Lisp adventure 9:30- 9:50 Authoring and presenting university courses with Emacs and a full libre software stack uni 10:05-10:25 Teaching computer and data science with literate programming tools teaching 10:40-10:50 Who needs Excel? Managing your students qualifications with org-table table 11:30-11:50 one.el: the static site generator for Emacs Lisp Programmers one 1:00- 1:10 Emacs turbo-charges my writing writing 1:25- 1:35 Why Nabokov would use Org-Mode if he were writing today nabokov 1:50- 2:10 Collaborative data processing and documenting using org-babel collab 2:20- 2:40 How I play TTRPGs in Emacs solo 2:55- 3:15 Org-Mode workflow: informal reference tracking ref 3:25- 3:35 (Un)entangling projects and repos unentangling 3:45- 3:55 Emacs development updates devel 4:10- 4:50 Emacs core development: how it works core 5:05- 5:15 Saturday closing remarks sat-close 10:00-10:10 MatplotLLM, iterative natural language data visualization in org-babel matplotllm 10:20-10:40 Enhancing productivity with voice computing voice 10:55-11:15 LLM clients in Emacs, functionality and standardization llm 1:00- 1:20 Improving compiler diagnostics with overlays overlay 1:35- 1:45 Editor Integrated REPL Driven Development for all languages eval 2:00- 3:00 REPLs in strange places: Lua, LaTeX, LPeg, LPegRex, TikZ repl 3:10- 3:50 Literate Documentation with Emacs and Org Mode doc 4:05- 4:45 Windows into Freedom windows 9 AM 10 AM 11 AM 12 PM 1 PM 2 PM 3 PM 4 PM 5 PM Schedule for Sunday Sunday 8:59- 9:04 Sunday opening remarks sun-open 9:05- 9:25 Top 10 ways Hyperbole amps up Emacs hyperamp 9:40-10:00 Using Koutline for stream of thought journaling koutline 10:10-10:25 Parallel text replacement parallel 10:35-10:45 Eat and Eat powered Eshell, fast featureful terminal inside Emacs eat 11:00-11:20 The browser in a buffer poltys 11:35-11:55 Speedcubing in Emacs cubing 1:00- 1:40 Emacs MultiMedia System (EMMS) emms 1:55- 2:25 Programming with steno steno 2:35- 2:45 Mentoring VS-Coders as an Emacsian (or How to show not tell people about the wonders of Emacs) mentor 3:10- 3:40 Emacs saves the Web (maybe) web 3:55- 4:15 Sharing Emacs is Caring Emacs: Emacs education and why I embraced video sharing 4:30- 4:40 Sunday closing remarks sun-close 10:00-10:20 Bringing joy to Scheme programming scheme 10:35-10:55 GNU Emacs: A World of Possibilities world 11:10-11:20 A modern Emacs look-and-feel without pain flat 11:35-11:55 The Emacsen family, the design of an Emacs and the importance of Lisp emacsen 1:00- 1:35 emacs-gc-stats: Does garbage collection actually slow down Emacs? gc 1:50- 2:30 hyperdrive.el: Peer-to-peer filesystem in Emacs hyperdrive 2:45- 3:00 Writing a language server in OCaml for Emacs, fun, and profit lspocaml 3:15- 3:45 What I learned by writing test cases for GNU Hyperbole test 4:00- 4:20 EmacsConf.org: How we use Org Mode and TRAMP to organize and run a multi-track conference emacsconf 9 AM 10 AM 11 AM 12 PM 1 PM 2 PM 3 PM 4 PM 5 PM - Legend: dashed line means non-BBB Q&A; light gray means penciled-in talk; yellow means video already submitted and being processed @@ -702,10 +704,6 @@ These times are in EST (GMT-5). ### Schedule notes - **Schedule changes after the schedule FYI email from 2023-10-05**: - - [2023-12-01 Fri] [gc](https://emacsconf.org/2023/talks/gc "emacs-gc-stats: Does garbage collection actually slow down Emacs?") needs 30 minutes, adjusting later talks; - - [2023-12-01 Fri] [windows](https://emacsconf.org/2023/talks/windows "Windows into Freedom") now on Sat afternoon devel track and [emacsconf](https://emacsconf.org/2023/talks/emacsconf "EmacsConf.org: How we use Org Mode and TRAMP to organize and run a multi-track conference") now on Sunday afternoon devel track - - [2023-12-01 Fri] Cancelled [taming](https://emacsconf.org/2023/talks/taming "Taming things with Org Mode") - - [2023-11-29 Wed] Changed title for [voice](https://emacsconf.org/2023/talks/voice "Enhancing productivity with voice computing"), changed [table](https://emacsconf.org/2023/talks/table "Who needs Excel? Managing your students qualifications with org-table") Q&A to after the conference - [2023-11-29 Wed] Allocated 15 minutes to [lspocaml](https://emacsconf.org/2023/talks/lspocaml "Writing a language server in OCaml for Emacs, fun, and profit") - [2023-11-23 Thu] Allocated 30 minutes to [test](https://emacsconf.org/2023/talks/test "What I learned by writing test cases for GNU Hyperbole") - [2023-11-14 Tue] Update [steno](https://emacsconf.org/2023/talks/steno "Programming with steno") title; add Prot to [hyperdrive](https://emacsconf.org/2023/talks/hyperdrive "hyperdrive.el: Peer-to-peer filesystem in Emacs") @@ -1013,7 +1011,7 @@ and we can have space in the schedule if they cancel last-minute. ### Status - Graphical view of the schedule Schedule for Saturday Saturday 9:00- 9:10 Saturday opening remarks sat-open 9:10- 9:20 An Org-Mode based text adventure game for learning the basics of Emacs, inside Emacs, written in Emacs Lisp adventure 9:30- 9:50 Authoring and presenting university courses with Emacs and a full libre software stack uni 10:05-10:25 Teaching computer and data science with literate programming tools teaching 10:40-10:50 Who needs Excel? Managing your students qualifications with org-table table 11:05-11:15 Taming things with Org Mode taming 11:30-11:50 one.el: the static site generator for Emacs Lisp Programmers one 1:00- 1:10 Emacs turbo-charges my writing writing 1:25- 1:35 Why Nabokov would use Org-Mode if he were writing today nabokov 1:50- 2:10 Collaborative data processing and documenting using org-babel collab 2:20- 2:40 How I play TTRPGs in Emacs solo 2:55- 3:15 Org-Mode workflow: informal reference tracking ref 3:25- 3:35 (Un)entangling projects and repos unentangling 3:45- 3:55 Emacs development updates devel 4:10- 4:50 Emacs core development: how it works core 5:05- 5:15 Saturday closing remarks sat-close 10:00-10:10 MatplotLLM, iterative natural language data visualization in org-babel matplotllm 10:20-10:40 Enhancing productivity with voice computing voice 10:55-11:15 LLM clients in Emacs, functionality and standardization llm 1:00- 1:20 Improving compiler diagnostics with overlays overlay 1:35- 1:45 Editor Integrated REPL Driven Development for all languages eval 2:00- 3:00 REPLs in strange places: Lua, LaTeX, LPeg, LPegRex, TikZ repl 3:10- 3:50 Literate Documentation with Emacs and Org Mode doc 4:05- 4:45 Windows into Freedom windows 9 AM 10 AM 11 AM 12 PM 1 PM 2 PM 3 PM 4 PM 5 PM Schedule for Sunday Sunday 8:59- 9:04 Sunday opening remarks sun-open 9:05- 9:25 Top 10 ways Hyperbole amps up Emacs hyperamp 9:40-10:00 Using Koutline for stream of thought journaling koutline 10:10-10:25 Parallel text replacement parallel 10:35-10:45 Eat and Eat powered Eshell, fast featureful terminal inside Emacs eat 11:00-11:20 The browser in a buffer poltys 11:35-11:55 Speedcubing in Emacs cubing 1:00- 1:40 Emacs MultiMedia System (EMMS) emms 1:55- 2:25 Programming with steno steno 2:35- 2:45 Mentoring VS-Coders as an Emacsian (or How to show not tell people about the wonders of Emacs) mentor 3:10- 3:40 Emacs saves the Web (maybe) web 3:55- 4:15 Sharing Emacs is Caring Emacs: Emacs education and why I embraced video sharing 4:30- 4:40 Sunday closing remarks sun-close 10:00-10:20 Bringing joy to Scheme programming scheme 10:35-10:55 GNU Emacs: A World of Possibilities world 11:10-11:20 A modern Emacs look-and-feel without pain flat 11:35-11:55 The Emacsen family, the design of an Emacs and the importance of Lisp emacsen 1:00- 1:35 emacs-gc-stats: Does garbage collection actually slow down Emacs? gc 1:50- 2:30 hyperdrive.el: Peer-to-peer filesystem in Emacs hyperdrive 2:45- 3:00 Writing a language server in OCaml for Emacs, fun, and profit lspocaml 3:15- 3:45 What I learned by writing test cases for GNU Hyperbole test 4:00- 4:20 EmacsConf.org: How we use Org Mode and TRAMP to organize and run a multi-track conference emacsconf 9 AM 10 AM 11 AM 12 PM 1 PM 2 PM 3 PM 4 PM 5 PM + Graphical view of the schedule Schedule for Saturday Saturday 9:00- 9:10 Saturday opening remarks sat-open 9:10- 9:20 An Org-Mode based text adventure game for learning the basics of Emacs, inside Emacs, written in Emacs Lisp adventure 9:30- 9:50 Authoring and presenting university courses with Emacs and a full libre software stack uni 10:05-10:25 Teaching computer and data science with literate programming tools teaching 10:40-10:50 Who needs Excel? Managing your students qualifications with org-table table 11:30-11:50 one.el: the static site generator for Emacs Lisp Programmers one 1:00- 1:10 Emacs turbo-charges my writing writing 1:25- 1:35 Why Nabokov would use Org-Mode if he were writing today nabokov 1:50- 2:10 Collaborative data processing and documenting using org-babel collab 2:20- 2:40 How I play TTRPGs in Emacs solo 2:55- 3:15 Org-Mode workflow: informal reference tracking ref 3:25- 3:35 (Un)entangling projects and repos unentangling 3:45- 3:55 Emacs development updates devel 4:10- 4:50 Emacs core development: how it works core 5:05- 5:15 Saturday closing remarks sat-close 10:00-10:10 MatplotLLM, iterative natural language data visualization in org-babel matplotllm 10:20-10:40 Enhancing productivity with voice computing voice 10:55-11:15 LLM clients in Emacs, functionality and standardization llm 1:00- 1:20 Improving compiler diagnostics with overlays overlay 1:35- 1:45 Editor Integrated REPL Driven Development for all languages eval 2:00- 3:00 REPLs in strange places: Lua, LaTeX, LPeg, LPegRex, TikZ repl 3:10- 3:50 Literate Documentation with Emacs and Org Mode doc 4:05- 4:45 Windows into Freedom windows 9 AM 10 AM 11 AM 12 PM 1 PM 2 PM 3 PM 4 PM 5 PM Schedule for Sunday Sunday 8:59- 9:04 Sunday opening remarks sun-open 9:05- 9:25 Top 10 ways Hyperbole amps up Emacs hyperamp 9:40-10:00 Using Koutline for stream of thought journaling koutline 10:10-10:25 Parallel text replacement parallel 10:35-10:45 Eat and Eat powered Eshell, fast featureful terminal inside Emacs eat 11:00-11:20 The browser in a buffer poltys 11:35-11:55 Speedcubing in Emacs cubing 1:00- 1:40 Emacs MultiMedia System (EMMS) emms 1:55- 2:25 Programming with steno steno 2:35- 2:45 Mentoring VS-Coders as an Emacsian (or How to show not tell people about the wonders of Emacs) mentor 3:10- 3:40 Emacs saves the Web (maybe) web 3:55- 4:15 Sharing Emacs is Caring Emacs: Emacs education and why I embraced video sharing 4:30- 4:40 Sunday closing remarks sun-close 10:00-10:20 Bringing joy to Scheme programming scheme 10:35-10:55 GNU Emacs: A World of Possibilities world 11:10-11:20 A modern Emacs look-and-feel without pain flat 11:35-11:55 The Emacsen family, the design of an Emacs and the importance of Lisp emacsen 1:00- 1:35 emacs-gc-stats: Does garbage collection actually slow down Emacs? gc 1:50- 2:30 hyperdrive.el: Peer-to-peer filesystem in Emacs hyperdrive 2:45- 3:00 Writing a language server in OCaml for Emacs, fun, and profit lspocaml 3:15- 3:45 What I learned by writing test cases for GNU Hyperbole test 4:00- 4:20 EmacsConf.org: How we use Org Mode and TRAMP to organize and run a multi-track conference emacsconf 9 AM 10 AM 11 AM 12 PM 1 PM 2 PM 3 PM 4 PM 5 PM ### DONE Upload @@ -1734,6 +1732,163 @@ awesome. #### TODO Update the emacsconf-tracks status + + +## Harvest cool stuff + + +### Harvesting + +- download published recordings: (defun emacsconf-harvest-download-published-recordings (source dest) + "Copy the command for downloading published recordings from SOURCE to DEST." + (kill-new + (mapconcat (lambda (o) (if (plist-get o :bbb-meeting-id) + (format "rsync -avzue ssh %s%s %s\n" + source + (match-string 1 (plist-get o :bbb-rec)) + dest) + "")) + (emacsconf-get-talk-info)))) + + +### TODO Announce that videos have been uploaded :emacsconf: + + +### When the speaker posts a video to their own channel :process: + +1. Open the video. +2. Add it to the playlist. +3. Open the playlist: +4. Move the video to the correct place. +5. Open the old video. +6. Remove the old video from the playlist. +7. Edit the video. Add the link to the new video in the description. +8. Select **Editor** from the left side. Add an info card and maybe an end screen pointing to the new video. +9. Update the `YOUTUBE_URL` property in the conf.org file. Commit and push. + + +### DONE Figure out which published presentations don’t have any deskshare, so I can just upload those directly + +The following talks do not have deskshares and can therefore be published by copying webcams.webm. + + (seq-keep + (lambda (o) + (when (plist-get o :bbb-meeting-id) + (let* ((xml-file + (expand-file-name "deskshare.xml" + (expand-file-name (plist-get o :bbb-meeting-id) emacsconf-harvest-bbb-published-dir))) + (dom (and (file-exists-p xml-file) + (xml-parse-file xml-file)))) + (unless (and dom (dom-by-tag dom 'event)) + (plist-get o :slug))))) + (emacsconf-get-talk-info)) + + (defun emacsconf-harvest-bbb-copy-webcams-only-sessions () + "Copy the webcam-only Q&A sessions as --answers.webm in the cache directory." + (interactive) + (seq-keep + (lambda (o) + (when (and (plist-get o :bbb-meeting-id) + (file-exists-p + (expand-file-name "video/webcams.webm" + (expand-file-name (plist-get o :bbb-meeting-id) emacsconf-harvest-bbb-published-dir)))) + (let* ((xml-file + (expand-file-name "deskshare.xml" + (expand-file-name (plist-get o :bbb-meeting-id) emacsconf-harvest-bbb-published-dir))) + (dom (and (file-exists-p xml-file) + (xml-parse-file xml-file)))) + (unless + (and dom + (dom-by-tag dom 'event)) + (unless (file-exists-p (expand-file-name + (concat (plist-get o :file-prefix) "--answers.webm") + emacsconf-cache-dir)) + (copy-file + (expand-file-name "video/webcams.webm" + (expand-file-name (plist-get o :bbb-meeting-id) emacsconf-harvest-bbb-published-dir)) + (expand-file-name (concat (plist-get o :file-prefix) "--answers.webm") + emacsconf-cache-dir))) + (plist-get o :slug))))) + (emacsconf-get-talk-info))) + + (emacsconf-harvest-bbb-copy-webcams-only-sessions) + + (defun emacsconf-harvest-set-qa-public () + (dolist (talk (emacsconf-publish-prepare-for-display (emacsconf-get-talk-info))) + (when (emacsconf-talk-file talk "--answers.webm") + (emacsconf-with-talk-heading talk + (org-entry-put (point) "QA_PUBLIC" "1"))))) + + +### DONE Figure out which talks have screenshares and process them + +hmm, speed is about the same on my computer? + +The following talks have deskshares and need splicing. + + (seq-keep + (lambda (o) + (when (plist-get o :bbb-meeting-id) + (let* ((xml-file + (expand-file-name "deskshare.xml" + (expand-file-name (plist-get o :bbb-meeting-id) emacsconf-harvest-bbb-published-dir))) + (dom (and (file-exists-p xml-file) + (xml-parse-file xml-file)))) + (when (and dom (dom-by-tag dom 'event)) + (plist-get o :slug))))) + (emacsconf-get-talk-info)) + + (emacsconf-extract-replace-strings + `((,(expand-file-name emacsconf-extract-bbb-published-dir) . "~/current/bbb-published/") + (,(expand-file-name emacsconf-cache-dir) . "~/current/cache")) + (mapconcat + (lambda (slug) + (let ((prefix (plist-get (emacsconf-resolve-talk (symbol-name slug)) :file-prefix))) + (format "if [ ! -f ~/current/cache/%s--answers--original.webm ]; then\n %s && cp ~/current/cache/%s--answers.webm ~/current/cache/%s--answers--original.webm\nfi" + prefix + (emacsconf-get-ffmpeg-to-splice-webcam-and-recording (symbol-name slug)) + prefix + prefix))) + '(teaching one writing sat-close hyperamp poltys sun-close voice scheme world flat emacsen gc) + "\n")) + + +### SOMEDAY Clean up storage on media :emacsconf: + + +### DONE Move answers to main for live talks + + (mapconcat + (lambda (o) + (and (null + (file-exists-p + (expand-file-name (concat (plist-get o :file-prefix) "--main.webm") + emacsconf-cache-dir))) + (file-exists-p + (expand-file-name (concat (plist-get o :file-prefix) "--answers.webm") + emacsconf-cache-dir)) + (format "cp %s %s; ../rm-from-cache %s\n" + (concat (plist-get o :file-prefix) "--answers.webm") + (concat (plist-get o :file-prefix) "--main.webm") + (concat (plist-get o :file-prefix) "--answers.webm") + ))) + (emacsconf-get-talk-info) + "") + + + + +## Make things easier for next year + + +### TODO Figure out better space usage for backstage vs public on media.emacsconf.org :emacsconf: + +Maybe I can use hard links or symbolic links? + + +### TODO Update the makefile :emacsconf: + + ## Volunteers @@ -1795,7 +1950,7 @@ AM: 9-12 PM EST, PM: 1-5 PM EST (plus a little extra for setup/transition) Saturday Dec 2 2023 - +
@@ -1873,7 +2028,7 @@ Saturday Dec 2 2023 Sunday Dec 3 2023 -
+
@@ -2011,7 +2166,7 @@ Interested in a shift? Please e-mail and Copied it over from the previous year - + ## Lessons learned -- cgit v1.2.3