summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--2022/talks/hyperorg.md3
-rw-r--r--2023/organizers-notebook/index.org2
-rw-r--r--2024.md2
-rw-r--r--2024/draft-schedule.md58
-rw-r--r--2024/info/blee-after.md5
-rw-r--r--2024/info/blee-before.md10
-rw-r--r--2024/info/blee-nav.md6
-rw-r--r--2024/info/casual-after.md3
-rw-r--r--2024/info/casual-before.md12
-rw-r--r--2024/info/casual-nav.md6
-rw-r--r--2024/info/color-after.md3
-rw-r--r--2024/info/color-before.md10
-rw-r--r--2024/info/color-nav.md6
-rw-r--r--2024/info/emacs30-after.md7
-rw-r--r--2024/info/emacs30-before.md18
-rw-r--r--2024/info/emacs30-nav.md7
-rw-r--r--2024/info/flp-after.md3
-rw-r--r--2024/info/flp-before.md5
-rw-r--r--2024/info/flp-nav.md5
-rw-r--r--2024/info/graph-after.md3
-rw-r--r--2024/info/graph-before.md5
-rw-r--r--2024/info/graph-nav.md5
-rw-r--r--2024/info/guile-after.md3
-rw-r--r--2024/info/guile-before.md10
-rw-r--r--2024/info/guile-nav.md6
-rw-r--r--2024/info/gypsum-after.md3
-rw-r--r--2024/info/gypsum-before.md12
-rw-r--r--2024/info/gypsum-nav.md6
-rw-r--r--2024/info/hyperbole-after.md3
-rw-r--r--2024/info/hyperbole-before.md14
-rw-r--r--2024/info/hyperbole-nav.md6
-rw-r--r--2024/info/hyperdrive-after.md3
-rw-r--r--2024/info/hyperdrive-before.md10
-rw-r--r--2024/info/hyperdrive-nav.md6
-rw-r--r--2024/info/hywiki-after.md3
-rw-r--r--2024/info/hywiki-before.md10
-rw-r--r--2024/info/hywiki-nav.md6
-rw-r--r--2024/info/julia-after.md3
-rw-r--r--2024/info/julia-before.md12
-rw-r--r--2024/info/julia-nav.md6
-rw-r--r--2024/info/language-after.md3
-rw-r--r--2024/info/language-before.md10
-rw-r--r--2024/info/language-nav.md6
-rw-r--r--2024/info/learning-after.md3
-rw-r--r--2024/info/learning-before.md12
-rw-r--r--2024/info/learning-nav.md6
-rw-r--r--2024/info/links-after.md3
-rw-r--r--2024/info/links-before.md10
-rw-r--r--2024/info/links-nav.md6
-rw-r--r--2024/info/literate-after.md3
-rw-r--r--2024/info/literate-before.md12
-rw-r--r--2024/info/literate-nav.md6
-rw-r--r--2024/info/mcclim-after.md3
-rw-r--r--2024/info/mcclim-before.md12
-rw-r--r--2024/info/mcclim-nav.md6
-rw-r--r--2024/info/org-teach-after.md3
-rw-r--r--2024/info/org-teach-before.md10
-rw-r--r--2024/info/org-teach-nav.md6
-rw-r--r--2024/info/org-update-after.md7
-rw-r--r--2024/info/org-update-before.md18
-rw-r--r--2024/info/org-update-nav.md7
-rw-r--r--2024/info/p-search-after.md3
-rw-r--r--2024/info/p-search-before.md12
-rw-r--r--2024/info/p-search-nav.md6
-rw-r--r--2024/info/papers-after.md3
-rw-r--r--2024/info/papers-before.md12
-rw-r--r--2024/info/papers-nav.md5
-rw-r--r--2024/info/pgmacs-after.md3
-rw-r--r--2024/info/pgmacs-before.md12
-rw-r--r--2024/info/pgmacs-nav.md6
-rw-r--r--2024/info/project-after.md3
-rw-r--r--2024/info/project-before.md12
-rw-r--r--2024/info/project-nav.md6
-rw-r--r--2024/info/regex-after.md3
-rw-r--r--2024/info/regex-before.md10
-rw-r--r--2024/info/regex-nav.md6
-rw-r--r--2024/info/repro-after.md3
-rw-r--r--2024/info/repro-before.md10
-rw-r--r--2024/info/repro-nav.md5
-rw-r--r--2024/info/rust-after.md3
-rw-r--r--2024/info/rust-before.md12
-rw-r--r--2024/info/rust-nav.md6
-rw-r--r--2024/info/sat-close-after.md7
-rw-r--r--2024/info/sat-close-before.md18
-rw-r--r--2024/info/sat-close-nav.md7
-rw-r--r--2024/info/sat-open-after.md7
-rw-r--r--2024/info/sat-open-before.md18
-rw-r--r--2024/info/sat-open-nav.md6
-rw-r--r--2024/info/secrets-after.md3
-rw-r--r--2024/info/secrets-before.md10
-rw-r--r--2024/info/secrets-nav.md6
-rw-r--r--2024/info/sharing-after.md3
-rw-r--r--2024/info/sharing-before.md10
-rw-r--r--2024/info/sharing-nav.md6
-rw-r--r--2024/info/shell-after.md3
-rw-r--r--2024/info/shell-before.md12
-rw-r--r--2024/info/shell-nav.md6
-rw-r--r--2024/info/students-after.md3
-rw-r--r--2024/info/students-before.md10
-rw-r--r--2024/info/students-nav.md6
-rw-r--r--2024/info/sun-close-after.md7
-rw-r--r--2024/info/sun-close-before.md18
-rw-r--r--2024/info/sun-close-nav.md6
-rw-r--r--2024/info/sun-open-after.md7
-rw-r--r--2024/info/sun-open-before.md18
-rw-r--r--2024/info/sun-open-nav.md7
-rw-r--r--2024/info/theme-after.md3
-rw-r--r--2024/info/theme-before.md12
-rw-r--r--2024/info/theme-nav.md6
-rw-r--r--2024/info/transducers-after.md3
-rw-r--r--2024/info/transducers-before.md12
-rw-r--r--2024/info/transducers-nav.md6
-rw-r--r--2024/info/water-after.md3
-rw-r--r--2024/info/water-before.md12
-rw-r--r--2024/info/water-nav.md6
-rw-r--r--2024/info/writing-after.md3
-rw-r--r--2024/info/writing-before.md12
-rw-r--r--2024/info/writing-nav.md6
-rw-r--r--2024/organizers-notebook.md301
-rw-r--r--2024/organizers-notebook/index.org348
-rw-r--r--2024/organizers-notebook/schedule-1.5-tracks.svg2
-rw-r--r--2024/qa.md43
-rw-r--r--2024/schedule-details.md89
-rw-r--r--2024/schedule-image.md1
-rw-r--r--2024/sidebar.md6
-rw-r--r--2024/talks.md4
-rw-r--r--2024/talks/blee.md46
-rw-r--r--2024/talks/emacs30.md21
-rw-r--r--2024/talks/gypsum.md281
-rw-r--r--2024/talks/org-update.md21
-rw-r--r--2024/watch.md87
-rw-r--r--2024/watch/dev.md93
-rw-r--r--2024/watch/gen.md234
-rw-r--r--2024/watch/info.md11
-rw-r--r--local.css2
-rw-r--r--organizers-notebook.md450
-rw-r--r--organizers-notebook/index.org356
137 files changed, 2833 insertions, 450 deletions
diff --git a/2022/talks/hyperorg.md b/2022/talks/hyperorg.md
index ccfed5a5..6c1040a5 100644
--- a/2022/talks/hyperorg.md
+++ b/2022/talks/hyperorg.md
@@ -6,10 +6,11 @@
<!-- Initially generated with emacsconf-generate-talk-page and then left alone for manual editing -->
<!-- You can manually edit this file to update the abstract, add links, etc. --->
-
# Powerful productivity with Hyperbole and Org Mode
Robert Weiner (wine-er)
+[[!inline pages="internal(2022/info/hyperorg-before)" raw="yes"]]
+
[[!template id="help"
summary="main talk does not have captions"
tags="help_with_main_captions"
diff --git a/2023/organizers-notebook/index.org b/2023/organizers-notebook/index.org
index 321e6eea..9efcde97 100644
--- a/2023/organizers-notebook/index.org
+++ b/2023/organizers-notebook/index.org
@@ -1291,7 +1291,7 @@ elisp:emacsconf-publish-media-files-on-change should remove it.
SCHEDULED: <2023-11-25 Sat>
1. Clear public media directory.
-2. Set =media_protect_root= to false in Ansible =group_vars/all.yml=.
+2. Set =media_protect_root= to false in Ansible =prod-vars.yml=.
3. =ansible-playbook -i inventory.yml prod-playbook.yml --tags media=
You can generate the index with =emacsconf-publish-update-media=.
diff --git a/2024.md b/2024.md
index 13b4bb47..377a508b 100644
--- a/2024.md
+++ b/2024.md
@@ -6,7 +6,7 @@
<p class="center">[[!img /i/emacsconf-logo1-256.png
alt="EmacsConf logo"]]</p>
-<p class="center">[[Talks]] | [[Volunteer]] | [[Guidelines for Conduct|conduct]]</p>
+<p class="center"><strong>[[How to watch/participate|watch]]</strong> | <strong>[[Talks]]</strong> | [[Volunteer]] | [[Guidelines for Conduct|conduct]]</p>
<p class="center">EmacsConf is the conference about the joy of
<a href="https://www.gnu.org/software/emacs/">GNU Emacs</a> and
diff --git a/2024/draft-schedule.md b/2024/draft-schedule.md
index 03913881..90d5bd3d 100644
--- a/2024/draft-schedule.md
+++ b/2024/draft-schedule.md
@@ -7,39 +7,41 @@ Jump to: <a href="#date-2024-12-07">Sat Dec 7</a> - <a href="#date-2024-12-08">S
<div class="schedule" data-start="2024-12-07T14:00:00+0000" data-end="2024-12-07T22:30:00+0000" data-tracks="General,Development">
[[!template id=sched time="""10""" q-and-a="""<a href="https://media.emacsconf.org/2024/current/bbb-papers.html">BBB</a>""" startutc="""2024-12-07T14:10:00+0000""" endutc="""2024-12-07T14:20:00+0000""" start="""9:10""" end="""9:20""" title="""Writing academic papers in Org-Roam""" url="""/2024/talks/papers""" speakers="""Vincent Conus""" track="""General""" watch="""https://emacsconf.org/2024/watch/gen""" slug="""papers""" note=""""""]]
-[[!template id=sched time="""10""" q-and-a="""<a href="https://pad.emacsconf.org/2024-links">Etherpad</a>""" startutc="""2024-12-07T14:40:00+0000""" endutc="""2024-12-07T14:50:00+0000""" start="""9:40""" end="""9:50""" title="""Unlocking linked data: replacing specialized apps with an Org-based semantic wiki""" url="""/2024/talks/links""" speakers="""Abhinav Tushar""" track="""General""" watch="""https://emacsconf.org/2024/watch/gen""" slug="""links""" note=""""""]]
+[[!template id=sched time="""20""" q-and-a="""<a href="https://media.emacsconf.org/2024/current/bbb-project.html">BBB</a>""" startutc="""2024-12-07T14:40:00+0000""" endutc="""2024-12-07T15:00:00+0000""" start="""9:40""" end="""10:00""" title="""Managing writing project metadata with org-mode""" url="""/2024/talks/project""" speakers="""Blaine Mooers""" track="""General""" watch="""https://emacsconf.org/2024/watch/gen""" slug="""project""" note=""""""]]
[[!template id=sched time="""20""" q-and-a="""<a href="https://media.emacsconf.org/2024/current/bbb-gypsum.html">BBB</a>""" startutc="""2024-12-07T15:00:00+0000""" endutc="""2024-12-07T15:20:00+0000""" start="""10:00""" end="""10:20""" title="""Gypsum: my clone of Emacs and ELisp written in Scheme""" url="""/2024/talks/gypsum""" speakers="""Ramin Honary""" track="""Development""" watch="""https://emacsconf.org/2024/watch/dev""" slug="""gypsum""" note=""""""]]
-[[!template id=sched time="""20""" q-and-a="""<a href="https://media.emacsconf.org/2024/current/bbb-org-teach.html">BBB</a>""" startutc="""2024-12-07T15:00:00+0000""" endutc="""2024-12-07T15:20:00+0000""" start="""10:00""" end="""10:20""" title="""org-teach: a minor mode for writing course materials in Emacs""" url="""/2024/talks/org-teach""" speakers="""James Endres Howell""" track="""General""" watch="""https://emacsconf.org/2024/watch/gen""" slug="""org-teach""" note=""""""]]
-[[!template id=sched time="""10""" q-and-a="""<a href="https://pad.emacsconf.org/2024-language">Etherpad</a>""" startutc="""2024-12-07T15:40:00+0000""" endutc="""2024-12-07T15:50:00+0000""" start="""10:40""" end="""10:50""" title="""Immersive language learning with Emacs""" url="""/2024/talks/language""" speakers="""Sebastian Dümcke""" track="""General""" watch="""https://emacsconf.org/2024/watch/gen""" slug="""language""" note=""""""]]
+[[!template id=sched time="""20""" q-and-a="""<a href="https://media.emacsconf.org/2024/current/bbb-org-update.html">BBB</a>""" startutc="""2024-12-07T15:20:00+0000""" endutc="""2024-12-07T15:40:00+0000""" start="""10:20""" end="""10:40""" title="""The Future of Org""" url="""/2024/talks/org-update""" speakers="""Ihor Radchenko and Bastien Guerry""" track="""General""" watch="""https://emacsconf.org/2024/watch/gen""" slug="""org-update""" note=""""""]]
[[!template id=sched time="""20""" q-and-a="""<a href="https://media.emacsconf.org/2024/current/bbb-rust.html">BBB</a>""" startutc="""2024-12-07T15:40:00+0000""" endutc="""2024-12-07T16:00:00+0000""" start="""10:40""" end="""11:00""" title="""An experimental Emacs core in Rust""" url="""/2024/talks/rust""" speakers="""Troy Hinckley""" track="""Development""" watch="""https://emacsconf.org/2024/watch/dev""" slug="""rust""" note=""""""]]
-[[!template id=sched time="""20""" q-and-a="""<a href="https://media.emacsconf.org/2024/current/bbb-hyperdrive.html">BBB</a>""" startutc="""2024-12-07T16:00:00+0000""" endutc="""2024-12-07T16:20:00+0000""" start="""11:00""" end="""11:20""" title="""New in hyperdrive.el: org-transclusion, easy installation, and more!""" url="""/2024/talks/hyperdrive""" speakers="""Joseph Turner""" track="""General""" watch="""https://emacsconf.org/2024/watch/gen""" slug="""hyperdrive""" note=""""""]]
-[[!template id=sched time="""20""" q-and-a="""<a href="https://media.emacsconf.org/2024/current/bbb-graph.html">BBB</a>""" startutc="""2024-12-07T16:20:00+0000""" endutc="""2024-12-07T16:40:00+0000""" start="""11:20""" end="""11:40""" title="""Graph mode: a major mode to create, edit and display discrete element graphs""" url="""/2024/talks/graph""" speakers="""John Darrington""" track="""Development""" watch="""https://emacsconf.org/2024/watch/dev""" slug="""graph""" note=""""""]]
-[[!template id=sched time="""10""" q-and-a="""""" startutc="""2024-12-07T16:40:00+0000""" endutc="""2024-12-07T16:50:00+0000""" start="""11:40""" end="""11:50""" title="""Colour your Emacs with ease""" url="""/2024/talks/color""" speakers="""Ryota""" track="""General""" watch="""https://emacsconf.org/2024/watch/gen""" slug="""color""" note=""""""]]
-[[!template id=sched time="""5""" q-and-a="""<a href="https://media.emacsconf.org/2024/current/bbb-julia.html">BBB</a>""" startutc="""2024-12-07T18:00:00+0000""" endutc="""2024-12-07T18:05:00+0000""" start="""1:00""" end="""1:05""" title="""Exploring shared philosophies in Julia and Emacs""" url="""/2024/talks/julia""" speakers="""Gabriele Bozzola""" track="""Development""" watch="""https://emacsconf.org/2024/watch/gen""" slug="""julia""" note=""""""]]
-[[!template id=sched time="""10""" q-and-a="""<a href="https://chat.emacsconf.org/?join=emacsconf">#emacsconf, speaker nick: lispmacs</a>""" startutc="""2024-12-07T18:40:00+0000""" endutc="""2024-12-07T18:50:00+0000""" start="""1:40""" end="""1:50""" title="""Watering my (digital) plant with Emacs timers""" url="""/2024/talks/water""" speakers="""Christopher Howard""" track="""General""" watch="""https://emacsconf.org/2024/watch/gen""" slug="""water""" note=""""""]]
-[[!template id=sched time="""20""" q-and-a="""<a href="https://chat.emacsconf.org/?join=emacsconf">#emacsconf, speaker nick: cosmicexplorer</a>""" startutc="""2024-12-07T18:55:00+0000""" endutc="""2024-12-07T19:15:00+0000""" start="""1:55""" end="""2:15""" title="""Emacs regex compilation and future directions for expressive pattern matching""" url="""/2024/talks/regex""" speakers="""Danny McClanahan""" track="""Development""" watch="""https://emacsconf.org/2024/watch/dev""" slug="""regex""" note=""""""]]
-[[!template id=sched time="""40""" q-and-a="""<a href="https://chat.emacsconf.org/?join=emacsconf">#emacsconf, speaker nick: lispmacs</a>""" startutc="""2024-12-07T19:00:00+0000""" endutc="""2024-12-07T19:40:00+0000""" start="""2:00""" end="""2:40""" title="""Emacs as a shell""" url="""/2024/talks/shell""" speakers="""Christopher Howard""" track="""General""" watch="""https://emacsconf.org/2024/watch/gen""" slug="""shell""" note=""""""]]
-[[!template id=sched time="""60""" q-and-a="""<a href="https://media.emacsconf.org/2024/current/bbb-mcclim.html">BBB</a>""" startutc="""2024-12-07T19:25:00+0000""" endutc="""2024-12-07T20:25:00+0000""" start="""2:25""" end="""3:25""" title="""Elisp and McCLIM""" url="""/2024/talks/mcclim""" speakers="""screwlisp""" track="""Development""" watch="""https://emacsconf.org/2024/watch/gen""" slug="""mcclim""" note=""""""]]
-[[!template id=sched time="""10""" q-and-a="""<a href="https://media.emacsconf.org/2024/current/bbb-theme.html">BBB</a>""" startutc="""2024-12-07T19:50:00+0000""" endutc="""2024-12-07T20:00:00+0000""" start="""2:50""" end="""3:00""" title="""My journey of finding and creating the “perfect” Emacs theme""" url="""/2024/talks/theme""" speakers="""MetroWind""" track="""General""" watch="""https://emacsconf.org/2024/watch/gen""" slug="""theme""" note=""""""]]
-[[!template id=sched time="""20""" q-and-a="""<a href="https://chat.emacsconf.org/?join=emacsconf">#emacsconf, speaker nick: aindilis</a>""" startutc="""2024-12-07T20:20:00+0000""" endutc="""2024-12-07T20:40:00+0000""" start="""3:20""" end="""3:40""" title="""The Free Life Planner: Empowering lives with Emacs-based AI""" url="""/2024/talks/flp""" speakers="""Andrew Dougherty""" track="""General""" watch="""https://emacsconf.org/2024/watch/gen""" slug="""flp""" note=""""""]]
-[[!template id=sched time="""10""" q-and-a="""<a href="https://media.emacsconf.org/2024/current/bbb-secrets.html">BBB</a>""" startutc="""2024-12-07T20:45:00+0000""" endutc="""2024-12-07T20:55:00+0000""" start="""3:45""" end="""3:55""" title="""Committing secrets with git using sops-mode""" url="""/2024/talks/secrets""" speakers="""Jonathan Otsuka""" track="""Development""" watch="""https://emacsconf.org/2024/watch/gen""" slug="""secrets""" note=""""""]]
-[[!template id=sched time="""10""" q-and-a="""none""" startutc="""2024-12-07T20:50:00+0000""" endutc="""2024-12-07T21:00:00+0000""" start="""3:50""" end="""4:00""" title="""Emacs Writing Studio""" url="""/2024/talks/writing""" speakers="""Peter Prevos""" track="""General""" watch="""https://emacsconf.org/2024/watch/gen""" slug="""writing""" note=""""""]]
-[[!template id=sched time="""20""" q-and-a="""<a href="https://media.emacsconf.org/2024/current/bbb-repro.html">BBB</a>""" startutc="""2024-12-07T21:15:00+0000""" endutc="""2024-12-07T21:35:00+0000""" start="""4:15""" end="""4:35""" title="""Reproducibly building Emacs: “Hey your checksum is the same as mine!”""" url="""/2024/talks/repro""" speakers="""Aaron Grothe""" track="""Development""" watch="""https://emacsconf.org/2024/watch/dev""" slug="""repro""" note=""""""]]</div>
+[[!template id=sched time="""20""" q-and-a="""<a href="https://chat.emacsconf.org/?join=emacsconf">#emacsconf, speaker nick: aindilis</a>""" startutc="""2024-12-07T16:00:00+0000""" endutc="""2024-12-07T16:20:00+0000""" start="""11:00""" end="""11:20""" title="""The Free Life Planner: Empowering lives with Emacs-based AI""" url="""/2024/talks/flp""" speakers="""Andrew Dougherty""" track="""General""" watch="""https://emacsconf.org/2024/watch/gen""" slug="""flp""" note=""""""]]
+[[!template id=sched time="""20""" q-and-a="""<a href="https://media.emacsconf.org/2024/current/bbb-p-search.html">BBB</a>""" startutc="""2024-12-07T16:20:00+0000""" endutc="""2024-12-07T16:40:00+0000""" start="""11:20""" end="""11:40""" title="""p-search: a local search engine in Emacs""" url="""/2024/talks/p-search""" speakers="""Zac Romero""" track="""Development""" watch="""https://emacsconf.org/2024/watch/dev""" slug="""p-search""" note=""""""]]
+[[!template id=sched time="""10""" q-and-a="""""" startutc="""2024-12-07T16:30:00+0000""" endutc="""2024-12-07T16:40:00+0000""" start="""11:30""" end="""11:40""" title="""Colour your Emacs with ease""" url="""/2024/talks/color""" speakers="""Ryota""" track="""General""" watch="""https://emacsconf.org/2024/watch/gen""" slug="""color""" note=""""""]]
+[[!template id=sched time="""10""" q-and-a="""<a href="https://media.emacsconf.org/2024/current/bbb-julia.html">BBB</a>""" startutc="""2024-12-07T18:00:00+0000""" endutc="""2024-12-07T18:10:00+0000""" start="""1:00""" end="""1:10""" title="""Exploring shared philosophies in Julia and Emacs""" url="""/2024/talks/julia""" speakers="""Gabriele Bozzola""" track="""Development""" watch="""https://emacsconf.org/2024/watch/dev""" slug="""julia""" note="""captioned, video: 09:17"""]]
+[[!template id=sched time="""10""" q-and-a="""<a href="https://media.emacsconf.org/2024/current/bbb-theme.html">BBB</a>""" startutc="""2024-12-07T18:00:00+0000""" endutc="""2024-12-07T18:10:00+0000""" start="""1:00""" end="""1:10""" title="""My journey of finding and creating the “perfect” Emacs theme""" url="""/2024/talks/theme""" speakers="""MetroWind""" track="""General""" watch="""https://emacsconf.org/2024/watch/gen""" slug="""theme""" note=""""""]]
+[[!template id=sched time="""20""" q-and-a="""<a href="https://chat.emacsconf.org/?join=emacsconf">#emacsconf, speaker nick: robin</a>""" startutc="""2024-12-07T18:25:00+0000""" endutc="""2024-12-07T18:45:00+0000""" start="""1:25""" end="""1:45""" title="""Beguiling Emacs: Guile-Emacs relaunched!""" url="""/2024/talks/guile""" speakers="""Robin Templeton""" track="""Development""" watch="""https://emacsconf.org/2024/watch/dev""" slug="""guile""" note=""""""]]
+[[!template id=sched time="""15""" q-and-a="""<a href="https://chat.emacsconf.org/?join=emacsconf">#emacsconf, speaker nick: lispmacs</a>""" startutc="""2024-12-07T18:30:00+0000""" endutc="""2024-12-07T18:45:00+0000""" start="""1:30""" end="""1:45""" title="""Watering my (digital) plant with Emacs timers""" url="""/2024/talks/water""" speakers="""Christopher Howard""" track="""General""" watch="""https://emacsconf.org/2024/watch/gen""" slug="""water""" note="""video: 13:50"""]]
+[[!template id=sched time="""10""" q-and-a="""<a href="https://media.emacsconf.org/2024/current/bbb-secrets.html">BBB</a>""" startutc="""2024-12-07T18:55:00+0000""" endutc="""2024-12-07T19:05:00+0000""" start="""1:55""" end="""2:05""" title="""Committing secrets with git using sops-mode""" url="""/2024/talks/secrets""" speakers="""Jonathan Otsuka""" track="""Development""" watch="""https://emacsconf.org/2024/watch/dev""" slug="""secrets""" note=""""""]]
+[[!template id=sched time="""40""" q-and-a="""<a href="https://chat.emacsconf.org/?join=emacsconf">#emacsconf, speaker nick: lispmacs</a>""" startutc="""2024-12-07T18:55:00+0000""" endutc="""2024-12-07T19:35:00+0000""" start="""1:55""" end="""2:35""" title="""Emacs as a shell""" url="""/2024/talks/shell""" speakers="""Christopher Howard""" track="""General""" watch="""https://emacsconf.org/2024/watch/gen""" slug="""shell""" note=""""""]]
+[[!template id=sched time="""60""" q-and-a="""<a href="https://media.emacsconf.org/2024/current/bbb-mcclim.html">BBB</a>""" startutc="""2024-12-07T19:25:00+0000""" endutc="""2024-12-07T20:25:00+0000""" start="""2:25""" end="""3:25""" title="""Elisp and McCLIM""" url="""/2024/talks/mcclim""" speakers="""screwlisp""" track="""Development""" watch="""https://emacsconf.org/2024/watch/dev""" slug="""mcclim""" note=""""""]]
+[[!template id=sched time="""20""" q-and-a="""<a href="https://media.emacsconf.org/2024/current/bbb-casual.html">BBB</a>""" startutc="""2024-12-07T19:45:00+0000""" endutc="""2024-12-07T20:05:00+0000""" start="""2:45""" end="""3:05""" title="""Re-imagining the Emacs user experience with Casual Suite""" url="""/2024/talks/casual""" speakers="""Charles Choi""" track="""General""" watch="""https://emacsconf.org/2024/watch/gen""" slug="""casual""" note=""""""]]
+[[!template id=sched time="""20""" q-and-a="""<a href="https://media.emacsconf.org/2024/current/bbb-hyperdrive.html">BBB</a>""" startutc="""2024-12-07T20:25:00+0000""" endutc="""2024-12-07T20:45:00+0000""" start="""3:25""" end="""3:45""" title="""New in hyperdrive.el: org-transclusion, easy installation, and more!""" url="""/2024/talks/hyperdrive""" speakers="""Joseph Turner""" track="""General""" watch="""https://emacsconf.org/2024/watch/gen""" slug="""hyperdrive""" note=""""""]]
+[[!template id=sched time="""20""" q-and-a="""<a href="https://media.emacsconf.org/2024/current/bbb-repro.html">BBB</a>""" startutc="""2024-12-07T20:45:00+0000""" endutc="""2024-12-07T21:05:00+0000""" start="""3:45""" end="""4:05""" title="""Reproducibly building Emacs: “Hey your checksum is the same as mine!”""" url="""/2024/talks/repro""" speakers="""Aaron Grothe""" track="""Development""" watch="""https://emacsconf.org/2024/watch/dev""" slug="""repro""" note=""""""]]
+[[!template id=sched time="""10""" q-and-a="""none""" startutc="""2024-12-07T21:05:00+0000""" endutc="""2024-12-07T21:15:00+0000""" start="""4:05""" end="""4:15""" title="""Emacs Writing Studio""" url="""/2024/talks/writing""" speakers="""Peter Prevos""" track="""General""" watch="""https://emacsconf.org/2024/watch/gen""" slug="""writing""" note=""""""]]
+[[!template id=sched time="""20""" q-and-a="""""" startutc="""2024-12-07T21:25:00+0000""" endutc="""2024-12-07T21:45:00+0000""" start="""4:25""" end="""4:45""" title="""Emacs 30 Highlights""" url="""/2024/talks/emacs30""" speakers="""Philip Kaludercic""" track="""General""" watch="""https://emacsconf.org/2024/watch/gen""" slug="""emacs30""" note=""""""]]</div>
Jump to: <a href="#date-2024-12-07">Sat Dec 7</a> - <a href="#date-2024-12-08">Sun Dec 8</a><a name="date-2024-12-08"></a>
# Sunday Dec 8, 2024
[[!inline pages="internal(2024/schedule-2024-12-08)" raw="yes"]]
<div class="schedule" data-start="2024-12-08T14:00:00+0000" data-end="2024-12-08T22:30:00+0000" data-tracks="General,Development">
-[[!template id=sched time="""10""" q-and-a="""<a href="https://media.emacsconf.org/2024/current/bbb-pgmacs.html">BBB</a>""" startutc="""2024-12-08T14:10:00+0000""" endutc="""2024-12-08T14:20:00+0000""" start="""9:10""" end="""9:20""" title="""PGmacs: browsing and editing PostgreSQL databases from Emacs""" url="""/2024/talks/pgmacs""" speakers="""Eric Marsden""" track="""General""" watch="""https://emacsconf.org/2024/watch/dev""" slug="""pgmacs""" note=""""""]]
-[[!template id=sched time="""20""" q-and-a="""<a href="https://media.emacsconf.org/2024/current/bbb-p-search.html">BBB</a>""" startutc="""2024-12-08T14:40:00+0000""" endutc="""2024-12-08T15:00:00+0000""" start="""9:40""" end="""10:00""" title="""p-search: a local search engine in Emacs""" url="""/2024/talks/p-search""" speakers="""Zac Romero""" track="""General""" watch="""https://emacsconf.org/2024/watch/gen""" slug="""p-search""" note=""""""]]
-[[!template id=sched time="""10""" q-and-a="""<a href="https://media.emacsconf.org/2024/current/bbb-hyperbole.html">BBB</a>""" startutc="""2024-12-08T15:20:00+0000""" endutc="""2024-12-08T15:30:00+0000""" start="""10:20""" end="""10:30""" title="""Fun things with GNU Hyperbole""" url="""/2024/talks/hyperbole""" speakers="""Mats Lidell""" track="""General""" watch="""https://emacsconf.org/2024/watch/gen""" slug="""hyperbole""" note=""""""]]
-[[!template id=sched time="""20""" q-and-a="""<a href="https://media.emacsconf.org/2024/current/bbb-hywiki.html">BBB</a>""" startutc="""2024-12-08T15:50:00+0000""" endutc="""2024-12-08T16:10:00+0000""" start="""10:50""" end="""11:10""" title="""HyWiki: Fast, hyperlinked note-taking with no markup required""" url="""/2024/talks/hywiki""" speakers="""Bob Weiner""" track="""General""" watch="""https://emacsconf.org/2024/watch/gen""" slug="""hywiki""" note=""""""]]
-[[!template id=sched time="""20""" q-and-a="""<a href="https://media.emacsconf.org/2024/current/bbb-project.html">BBB</a>""" startutc="""2024-12-08T16:30:00+0000""" endutc="""2024-12-08T16:50:00+0000""" start="""11:30""" end="""11:50""" title="""Managing writing project metadata with org-mode""" url="""/2024/talks/project""" speakers="""Blaine Mooers""" track="""General""" watch="""https://emacsconf.org/2024/watch/gen""" slug="""project""" note=""""""]]
-[[!template id=sched time="""20""" q-and-a="""<a href="https://media.emacsconf.org/2024/current/bbb-blee.html">BBB</a>""" startutc="""2024-12-08T17:10:00+0000""" endutc="""2024-12-08T17:30:00+0000""" start="""12:10""" end="""12:30""" title="""About Blee: towards an integrated Emacs environment for enveloping our own autonomy directed digital ecosystem""" url="""/2024/talks/blee""" speakers="""Mohsen BANAN""" track="""General""" watch="""https://emacsconf.org/2024/watch/gen""" slug="""blee""" note=""""""]]
-[[!template id=sched time="""20""" q-and-a="""<a href="https://media.emacsconf.org/2024/current/bbb-casual.html">BBB</a>""" startutc="""2024-12-08T18:00:00+0000""" endutc="""2024-12-08T18:20:00+0000""" start="""1:00""" end="""1:20""" title="""Re-imagining the Emacs user experience with Casual Suite""" url="""/2024/talks/casual""" speakers="""Charles Choi""" track="""General""" watch="""https://emacsconf.org/2024/watch/gen""" slug="""casual""" note=""""""]]
-[[!template id=sched time="""20""" q-and-a="""<a href="https://pad.emacsconf.org/2024-learning">Etherpad</a>""" startutc="""2024-12-08T18:40:00+0000""" endutc="""2024-12-08T19:00:00+0000""" start="""1:40""" end="""2:00""" title="""Survival of the skillest: Thriving in the learning jungle""" url="""/2024/talks/learning""" speakers="""Bala Ramadurai""" track="""General""" watch="""https://emacsconf.org/2024/watch/gen""" slug="""learning""" note=""""""]]
-[[!template id=sched time="""20""" q-and-a="""<a href="https://pad.emacsconf.org/2024-sharing">Etherpad</a>""" startutc="""2024-12-08T19:10:00+0000""" endutc="""2024-12-08T19:30:00+0000""" start="""2:10""" end="""2:30""" title="""So you want to be an Emacs-fluencer?""" url="""/2024/talks/sharing""" speakers="""Gopar""" track="""General""" watch="""https://emacsconf.org/2024/watch/gen""" slug="""sharing""" note=""""""]]
-[[!template id=sched time="""20""" q-and-a="""<a href="https://media.emacsconf.org/2024/current/bbb-literate.html">BBB</a>""" startutc="""2024-12-08T19:40:00+0000""" endutc="""2024-12-08T20:00:00+0000""" start="""2:40""" end="""3:00""" title="""Literate programming for the 21st Century""" url="""/2024/talks/literate""" speakers="""Howard Abrams""" track="""General""" watch="""https://emacsconf.org/2024/watch/dev""" slug="""literate""" note=""""""]]
-[[!template id=sched time="""10""" q-and-a="""<a href="https://chat.emacsconf.org/?join=emacsconf">#emacsconf, speaker nick: bardman</a>""" startutc="""2024-12-08T20:20:00+0000""" endutc="""2024-12-08T20:30:00+0000""" start="""3:20""" end="""3:30""" title="""An example of a cohesive student workflow in Emacs""" url="""/2024/talks/students""" speakers="""Daniel Pinkston""" track="""General""" watch="""https://emacsconf.org/2024/watch/gen""" slug="""students""" note=""""""]]
-[[!template id=sched time="""30""" q-and-a="""<a href="https://media.emacsconf.org/2024/current/bbb-transducers.html">BBB</a>""" startutc="""2024-12-08T21:00:00+0000""" endutc="""2024-12-08T21:30:00+0000""" start="""4:00""" end="""4:30""" title="""Transducers: finally, ergonomic data processing for Emacs!""" url="""/2024/talks/transducers""" speakers="""Colin Woodbury""" track="""General""" watch="""https://emacsconf.org/2024/watch/dev""" slug="""transducers""" note=""""""]]</div> \ No newline at end of file
+[[!template id=sched time="""10""" q-and-a="""<a href="https://pad.emacsconf.org/2024-links">Etherpad</a>""" startutc="""2024-12-08T14:10:00+0000""" endutc="""2024-12-08T14:20:00+0000""" start="""9:10""" end="""9:20""" title="""Unlocking linked data: replacing specialized apps with an Org-based semantic wiki""" url="""/2024/talks/links""" speakers="""Abhinav Tushar""" track="""General""" watch="""https://emacsconf.org/2024/watch/gen""" slug="""links""" note=""""""]]
+[[!template id=sched time="""20""" q-and-a="""<a href="https://chat.emacsconf.org/?join=emacsconf">#emacsconf, speaker nick: cosmicexplorer</a>""" note="""Development-focused; on the general track for scheduling reasons""" startutc="""2024-12-08T14:30:00+0000""" endutc="""2024-12-08T14:50:00+0000""" start="""9:30""" end="""9:50""" title="""Emacs regex compilation and future directions for expressive pattern matching""" url="""/2024/talks/regex""" speakers="""Danny McClanahan""" track="""General""" watch="""https://emacsconf.org/2024/watch/gen""" slug="""regex""" note=""""""]]
+[[!template id=sched time="""20""" q-and-a="""<a href="https://pad.emacsconf.org/2024-learning">Etherpad</a>""" startutc="""2024-12-08T15:00:00+0000""" endutc="""2024-12-08T15:20:00+0000""" start="""10:00""" end="""10:20""" title="""Survival of the skillest: Thriving in the learning jungle""" url="""/2024/talks/learning""" speakers="""Bala Ramadurai""" track="""General""" watch="""https://emacsconf.org/2024/watch/gen""" slug="""learning""" note=""""""]]
+[[!template id=sched time="""10""" q-and-a="""<a href="https://pad.emacsconf.org/2024-language">Etherpad</a>""" startutc="""2024-12-08T15:30:00+0000""" endutc="""2024-12-08T15:40:00+0000""" start="""10:30""" end="""10:40""" title="""Immersive language learning with Emacs""" url="""/2024/talks/language""" speakers="""Sebastian Dümcke""" track="""General""" watch="""https://emacsconf.org/2024/watch/gen""" slug="""language""" note=""""""]]
+[[!template id=sched time="""20""" q-and-a="""<a href="https://media.emacsconf.org/2024/current/bbb-org-teach.html">BBB</a>""" startutc="""2024-12-08T15:50:00+0000""" endutc="""2024-12-08T16:10:00+0000""" start="""10:50""" end="""11:10""" title="""org-teach: a minor mode for writing course materials in Emacs""" url="""/2024/talks/org-teach""" speakers="""James Endres Howell""" track="""General""" watch="""https://emacsconf.org/2024/watch/gen""" slug="""org-teach""" note=""""""]]
+[[!template id=sched time="""10""" q-and-a="""<a href="https://media.emacsconf.org/2024/current/bbb-hyperbole.html">BBB</a>""" startutc="""2024-12-08T16:25:00+0000""" endutc="""2024-12-08T16:35:00+0000""" start="""11:25""" end="""11:35""" title="""Fun things with GNU Hyperbole""" url="""/2024/talks/hyperbole""" speakers="""Mats Lidell""" track="""General""" watch="""https://emacsconf.org/2024/watch/gen""" slug="""hyperbole""" note=""""""]]
+[[!template id=sched time="""20""" q-and-a="""<a href="https://media.emacsconf.org/2024/current/bbb-hywiki.html">BBB</a>""" startutc="""2024-12-08T18:00:00+0000""" endutc="""2024-12-08T18:20:00+0000""" start="""1:00""" end="""1:20""" title="""HyWiki: Fast, hyperlinked note-taking with no markup required""" url="""/2024/talks/hywiki""" speakers="""Bob Weiner""" track="""General""" watch="""https://emacsconf.org/2024/watch/gen""" slug="""hywiki""" note=""""""]]
+[[!template id=sched time="""10""" q-and-a="""<a href="https://media.emacsconf.org/2024/current/bbb-pgmacs.html">BBB</a>""" note="""Development-focused; on the general track for scheduling reasons""" startutc="""2024-12-08T18:35:00+0000""" endutc="""2024-12-08T18:45:00+0000""" start="""1:35""" end="""1:45""" title="""PGmacs: browsing and editing PostgreSQL databases from Emacs""" url="""/2024/talks/pgmacs""" speakers="""Eric Marsden""" track="""General""" watch="""https://emacsconf.org/2024/watch/gen""" slug="""pgmacs""" note=""""""]]
+[[!template id=sched time="""40""" q-and-a="""<a href="https://media.emacsconf.org/2024/current/bbb-blee.html">BBB</a>""" startutc="""2024-12-08T19:00:00+0000""" endutc="""2024-12-08T19:40:00+0000""" start="""2:00""" end="""2:40""" title="""About Blee: towards an integrated Emacs environment for enveloping our own autonomy directed digital ecosystem""" url="""/2024/talks/blee""" speakers="""Mohsen BANAN""" track="""General""" watch="""https://emacsconf.org/2024/watch/gen""" slug="""blee""" note=""""""]]
+[[!template id=sched time="""20""" q-and-a="""<a href="https://media.emacsconf.org/2024/current/bbb-literate.html">BBB</a>""" startutc="""2024-12-08T19:50:00+0000""" endutc="""2024-12-08T20:10:00+0000""" start="""2:50""" end="""3:10""" title="""Literate programming for the 21st Century""" url="""/2024/talks/literate""" speakers="""Howard Abrams""" track="""General""" watch="""https://emacsconf.org/2024/watch/gen""" slug="""literate""" note=""""""]]
+[[!template id=sched time="""10""" q-and-a="""<a href="https://chat.emacsconf.org/?join=emacsconf">#emacsconf, speaker nick: bardman</a>""" startutc="""2024-12-08T20:25:00+0000""" endutc="""2024-12-08T20:35:00+0000""" start="""3:25""" end="""3:35""" title="""An example of a cohesive student workflow in Emacs""" url="""/2024/talks/students""" speakers="""Daniel Pinkston""" track="""General""" watch="""https://emacsconf.org/2024/watch/gen""" slug="""students""" note=""""""]]
+[[!template id=sched time="""20""" q-and-a="""<a href="https://pad.emacsconf.org/2024-sharing">Etherpad</a>""" startutc="""2024-12-08T20:45:00+0000""" endutc="""2024-12-08T21:05:00+0000""" start="""3:45""" end="""4:05""" title="""So you want to be an Emacs-fluencer?""" url="""/2024/talks/sharing""" speakers="""Gopar""" track="""General""" watch="""https://emacsconf.org/2024/watch/gen""" slug="""sharing""" note=""""""]]
+[[!template id=sched time="""30""" q-and-a="""<a href="https://media.emacsconf.org/2024/current/bbb-transducers.html">BBB</a>""" note="""Development-focused; on the general track for scheduling reasons""" startutc="""2024-12-08T21:15:00+0000""" endutc="""2024-12-08T21:45:00+0000""" start="""4:15""" end="""4:45""" title="""Transducers: finally, ergonomic data processing for Emacs!""" url="""/2024/talks/transducers""" speakers="""Colin Woodbury""" track="""General""" watch="""https://emacsconf.org/2024/watch/gen""" slug="""transducers""" note=""""""]]</div> \ No newline at end of file
diff --git a/2024/info/blee-after.md b/2024/info/blee-after.md
index e24f508e..f096aa8a 100644
--- a/2024/info/blee-after.md
+++ b/2024/info/blee-after.md
@@ -1,10 +1,7 @@
<!-- Automatically generated by emacsconf-publish-after-page -->
-Questions or comments? Please e-mail [emacsconf-org-private@gnu.org](mailto:emacsconf-org-private@gnu.org?subject=Comment%20for%20EmacsConf%202023%20blee%3A%20About%20Blee%3A%20towards%20an%20integrated%20Emacs%20environment%20for%20enveloping%20our%20own%20autonomy%20directed%20digital%20ecosystem)
-
-----
-Got an idea for an EmacsConf talk or session? We'd love to hear from you! Check out the [[Call for Participation|/2024/cfp]] for details.
+Questions or comments? Please e-mail [emacsconf-org-private@gnu.org](mailto:emacsconf-org-private@gnu.org?subject=Comment%20for%20EmacsConf%202023%20blee%3A%20About%20Blee%3A%20enveloping%20our%20own%20autonomy%20directed%20digital%20ecosystem%20with%20Emacs)
<!-- End of emacsconf-publish-after-page -->
diff --git a/2024/info/blee-before.md b/2024/info/blee-before.md
index 7cb3e64d..4cb268da 100644
--- a/2024/info/blee-before.md
+++ b/2024/info/blee-before.md
@@ -1,8 +1,14 @@
<!-- Automatically generated by emacsconf-publish-before-page -->
+
+The following image shows where the talk is in the schedule for Sun 2024-12-08. Solid lines show talks with Q&A via BigBlueButton. Dashed lines show talks with Q&A via IRC or Etherpad.<div class="schedule-in-context schedule-svg-container" data-slug="blee">
+<svg width="700" height="150" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><title>Schedule for Sunday</title><rect width="700" height="150" x="0" y="0" fill="white"></rect><text font-size="10" fill="black" y="12" x="3">Sunday</text><a href="/2024/talks/sun-open" title="Sunday opening remarks" data-slug="sun-open"><title> 9:00- 9:10 Sunday opening remarks</title><rect x="0" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(11,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sun-open</text></g></a><a href="/2024/talks/links" title="Unlocking linked data: replacing specialized apps with an Org-based semantic wiki" data-slug="links"><title> 9:10- 9:20 Unlocking linked data: replacing specialized apps with an Org-based semantic wiki</title><rect x="13" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(24,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">links</text></g></a><a href="/2024/talks/regex" title="Emacs regex compilation and future directions for expressive pattern matching" data-slug="regex"><title> 9:30- 9:50 Emacs regex compilation and future directions for expressive pattern matching</title><rect x="41" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(66,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">regex</text></g></a><a href="/2024/talks/learning" title="Survival of the skillest: Thriving in the learning jungle" data-slug="learning"><title>10:00-10:20 Survival of the skillest: Thriving in the learning jungle</title><rect x="82" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(107,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">learning</text></g></a><a href="/2024/talks/language" title="Immersive language learning with Emacs" data-slug="language"><title>10:30-10:40 Immersive language learning with Emacs</title><rect x="123" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(134,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">language</text></g></a><a href="/2024/talks/org-teach" title="org-teach: a minor mode for writing course materials in Emacs" data-slug="org-teach"><title>10:50-11:10 org-teach: a minor mode for writing course materials in Emacs</title><rect x="150" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(175,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">org-teach</text></g></a><a href="/2024/talks/hyperbole" title="Fun things with GNU Hyperbole" data-slug="hyperbole"><title>11:25-11:40 Fun things with GNU Hyperbole</title><rect x="199" y="15" opacity="0.5" width="20" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(217,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">hyperbole</text></g></a><a href="/2024/talks/hywiki" title="HyWiki: Fast, hyperlinked note-taking with no markup required" data-slug="hywiki"><title> 1:00- 1:20 HyWiki: Fast, hyperlinked note-taking with no markup required</title><rect x="329" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(354,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">hywiki</text></g></a><a href="/2024/talks/pgmacs" title="PGmacs: browsing and editing PostgreSQL databases from Emacs" data-slug="pgmacs"><title> 1:35- 1:50 PGmacs: browsing and editing PostgreSQL databases from Emacs</title><rect x="377" y="15" opacity="0.5" width="20" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(395,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">pgmacs</text></g></a><a href="/2024/talks/blee" title="About Blee: enveloping our own autonomy directed digital ecosystem with Emacs" data-slug="blee"><title> 2:05- 2:45 About Blee: enveloping our own autonomy directed digital ecosystem with Emacs</title><rect stroke-width="3" x="418" y="15" opacity="0.8" width="54" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(470,73)"><text font-weight="bold" fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">blee</text></g></a><a href="/2024/talks/literate" title="Literate programming for the 21st Century" data-slug="literate"><title> 2:55- 3:15 Literate programming for the 21st Century</title><rect x="487" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(512,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">literate</text></g></a><a href="/2024/talks/students" title="An example of a cohesive student workflow in Emacs" data-slug="students"><title> 3:30- 3:40 An example of a cohesive student workflow in Emacs</title><rect x="535" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(546,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">students</text></g></a><a href="/2024/talks/sharing" title="So you want to be an Emacs-fluencer?" data-slug="sharing"><title> 3:50- 4:10 So you want to be an Emacs-fluencer?</title><rect x="562" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(587,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sharing</text></g></a><a href="/2024/talks/transducers" title="Transducers: finally, ergonomic data processing for Emacs!" data-slug="transducers"><title> 4:20- 4:50 Transducers: finally, ergonomic data processing for Emacs!</title><rect x="603" y="15" opacity="0.5" width="41" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(642,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">transducers</text></g></a><a href="/2024/talks/sun-close" title="Sunday closing remarks" data-slug="sun-close"><title> 5:00- 5:10 Sunday closing remarks</title><rect x="658" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(669,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sun-close</text></g></a><g transform="translate(0,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">9 AM</text></g><g transform="translate(82,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">10 AM</text></g><g transform="translate(164,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">11 AM</text></g><g transform="translate(247,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">12 PM</text></g><g transform="translate(329,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">1 PM</text></g><g transform="translate(411,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">2 PM</text></g><g transform="translate(494,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">3 PM</text></g><g transform="translate(576,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">4 PM</text></g><g transform="translate(658,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">5 PM</text></g></svg>
+</div>
+
[[!toc ]]
-Format: 20-min talk; Q&A: BigBlueButton conference room
+Format: 40-min talk; Q&A: BigBlueButton conference room <https://media.emacsconf.org/2024/current/bbb-blee.html>
+Discuss on IRC: [#emacsconf](https://chat.emacsconf.org/?join=emacsconf)
Status: Waiting for video from speaker
-
+<div>Times in different time zones:</div><div class="times" start="2024-12-08T19:05:00Z" end="2024-12-08T19:45:00Z"><div class="conf-time">Sunday, Dec 8 2024, ~2:05 PM - 2:45 PM EST (US/Eastern)</div><div class="others"><div>which is the same as:</div>Sunday, Dec 8 2024, ~1:05 PM - 1:45 PM CST (US/Central)<br />Sunday, Dec 8 2024, ~12:05 PM - 12:45 PM MST (US/Mountain)<br />Sunday, Dec 8 2024, ~11:05 AM - 11:45 AM PST (US/Pacific)<br />Sunday, Dec 8 2024, ~7:05 PM - 7:45 PM UTC <br />Sunday, Dec 8 2024, ~8:05 PM - 8:45 PM CET (Europe/Paris)<br />Sunday, Dec 8 2024, ~9:05 PM - 9:45 PM EET (Europe/Athens)<br />Monday, Dec 9 2024, ~12:35 AM - 1:15 AM IST (Asia/Kolkata)<br />Monday, Dec 9 2024, ~3:05 AM - 3:45 AM +08 (Asia/Singapore)<br />Monday, Dec 9 2024, ~4:05 AM - 4:45 AM JST (Asia/Tokyo)</div></div><div><strong><a href="/2024/watch/gen/">Find out how to watch and participate</a></strong></div>
diff --git a/2024/info/blee-nav.md b/2024/info/blee-nav.md
index 6d451e33..64f5fbf1 100644
--- a/2024/info/blee-nav.md
+++ b/2024/info/blee-nav.md
@@ -1,7 +1,7 @@
<div class="talk-nav">
Back to the [[talks]]
-Previous by track: <a href="/2024/talks/project">Managing writing project metadata with org-mode</a>
-Next by track: <a href="/2024/talks/casual">Re-imagining the Emacs user experience with Casual Suite</a>
-Track: <span class="sched-track General">General</span>
+Previous by time: <a href="/2024/talks/pgmacs">PGmacs: browsing and editing PostgreSQL databases from Emacs</a>
+Next by time: <a href="/2024/talks/literate">Literate programming for the 21st Century</a>
+Track: <span class="sched-track General">General</span> - <strong><a href="https://emacsconf.org/2024/watch/gen">Watch</a></strong>
</div>
diff --git a/2024/info/casual-after.md b/2024/info/casual-after.md
index 478c2e0f..abb1f6fd 100644
--- a/2024/info/casual-after.md
+++ b/2024/info/casual-after.md
@@ -3,8 +3,5 @@
Questions or comments? Please e-mail [emacsconf-org-private@gnu.org](mailto:emacsconf-org-private@gnu.org?subject=Comment%20for%20EmacsConf%202023%20casual%3A%20Re-imagining%20the%20Emacs%20user%20experience%20with%20Casual%20Suite)
-----
-Got an idea for an EmacsConf talk or session? We'd love to hear from you! Check out the [[Call for Participation|/2024/cfp]] for details.
-
<!-- End of emacsconf-publish-after-page -->
diff --git a/2024/info/casual-before.md b/2024/info/casual-before.md
index 7cb3e64d..bf854ddf 100644
--- a/2024/info/casual-before.md
+++ b/2024/info/casual-before.md
@@ -1,8 +1,14 @@
<!-- Automatically generated by emacsconf-publish-before-page -->
-[[!toc ]]
-Format: 20-min talk; Q&A: BigBlueButton conference room
-Status: Waiting for video from speaker
+The following image shows where the talk is in the schedule for Sat 2024-12-07. Solid lines show talks with Q&A via BigBlueButton. Dashed lines show talks with Q&A via IRC or Etherpad.<div class="schedule-in-context schedule-svg-container" data-slug="casual">
+<svg width="700" height="150" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><title>Schedule for Saturday</title><rect width="700" height="150" x="0" y="0" fill="white"></rect><text font-size="10" fill="black" y="12" x="3">Saturday</text><a href="/2024/talks/sat-open" title="Saturday opening remarks" data-slug="sat-open"><title> 9:00- 9:10 Saturday opening remarks</title><rect x="0" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(11,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sat-open</text></g></a><a href="/2024/talks/papers" title="Writing academic papers in Org-Roam" data-slug="papers"><title> 9:10- 9:20 Writing academic papers in Org-Roam</title><rect x="13" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(24,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">papers</text></g></a><a href="/2024/talks/project" title="Managing writing project metadata with org-mode" data-slug="project"><title> 9:40-10:00 Managing writing project metadata with org-mode</title><rect x="54" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(79,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">project</text></g></a><a href="/2024/talks/org-update" title="The Future of Org" data-slug="org-update"><title>10:20-10:40 The Future of Org</title><rect x="109" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(134,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">org-update</text></g></a><a href="/2024/talks/color" title="Colour your Emacs with ease" data-slug="color"><title>11:00-11:10 Colour your Emacs with ease</title><rect x="164" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(175,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">color</text></g></a><a href="/2024/talks/theme" title="My journey of finding and creating the “perfect” Emacs theme" data-slug="theme"><title> 1:00- 1:10 My journey of finding and creating the “perfect” Emacs theme</title><rect x="329" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(340,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">theme</text></g></a><a href="/2024/talks/water" title="Watering my (digital) plant with Emacs timers" data-slug="water"><title> 1:30- 1:45 Watering my (digital) plant with Emacs timers</title><rect x="370" y="15" opacity="0.5" width="20" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(388,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">water</text></g></a><a href="/2024/talks/shell" title="Emacs as a shell" data-slug="shell"><title> 1:55- 2:35 Emacs as a shell</title><rect x="404" y="15" opacity="0.5" width="54" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(456,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">shell</text></g></a><a href="/2024/talks/casual" title="Re-imagining the Emacs user experience with Casual Suite" data-slug="casual"><title> 2:45- 3:05 Re-imagining the Emacs user experience with Casual Suite</title><rect stroke-width="3" x="473" y="15" opacity="0.8" width="27" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(498,73)"><text font-weight="bold" fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">casual</text></g></a><a href="/2024/talks/hyperdrive" title="New in hyperdrive.el: org-transclusion, easy installation, and more!" data-slug="hyperdrive"><title> 3:25- 3:45 New in hyperdrive.el: org-transclusion, easy installation, and more!</title><rect x="528" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(553,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">hyperdrive</text></g></a><a href="/2024/talks/writing" title="Emacs Writing Studio" data-slug="writing"><title> 4:05- 4:15 Emacs Writing Studio</title><rect x="583" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(594,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">writing</text></g></a><a href="/2024/talks/emacs30" title="Emacs 30 Highlights" data-slug="emacs30"><title> 4:25- 4:50 Emacs 30 Highlights</title><rect x="610" y="15" opacity="0.5" width="34" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(642,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">emacs30</text></g></a><a href="/2024/talks/sat-close" title="Saturday closing remarks" data-slug="sat-close"><title> 5:00- 5:10 Saturday closing remarks</title><rect x="658" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(669,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sat-close</text></g></a><a href="/2024/talks/gypsum" title="Gypsum: my clone of Emacs and ELisp written in Scheme" data-slug="gypsum"><title>10:00-10:20 Gypsum: my clone of Emacs and ELisp written in Scheme</title><rect x="82" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(107,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">gypsum</text></g></a><a href="/2024/talks/rust" title="An experimental Emacs core in Rust" data-slug="rust"><title>10:40-11:00 An experimental Emacs core in Rust</title><rect x="137" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(162,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">rust</text></g></a><a href="/2024/talks/p-search" title="p-search: a local search engine in Emacs" data-slug="p-search"><title>11:20-11:45 p-search: a local search engine in Emacs</title><rect x="192" y="75" opacity="0.5" width="34" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(224,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">p-search</text></g></a><a href="/2024/talks/julia" title="Exploring shared philosophies in Julia and Emacs" data-slug="julia"><title> 1:00- 1:10 Exploring shared philosophies in Julia and Emacs</title><rect x="329" y="75" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(340,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">julia</text></g></a><a href="/2024/talks/guile" title="Beguiling Emacs: Guile-Emacs relaunched!" data-slug="guile"><title> 1:25- 1:45 Beguiling Emacs: Guile-Emacs relaunched!</title><rect x="363" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="5,5,5" fill="skyblue"></rect><g transform="translate(388,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">guile</text></g></a><a href="/2024/talks/secrets" title="Committing secrets with git using sops-mode" data-slug="secrets"><title> 1:55- 2:05 Committing secrets with git using sops-mode</title><rect x="404" y="75" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(415,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">secrets</text></g></a><a href="/2024/talks/mcclim" title="Elisp and McCLIM" data-slug="mcclim"><title> 2:25- 3:25 Elisp and McCLIM</title><rect x="446" y="75" opacity="0.5" width="82" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(526,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">mcclim</text></g></a><a href="/2024/talks/repro" title="Reproducibly building Emacs: “Hey your checksum is the same as mine!”" data-slug="repro"><title> 3:45- 4:05 Reproducibly building Emacs: “Hey your checksum is the same as mine!”</title><rect x="555" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(580,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">repro</text></g></a><g transform="translate(0,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">9 AM</text></g><g transform="translate(82,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">10 AM</text></g><g transform="translate(164,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">11 AM</text></g><g transform="translate(247,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">12 PM</text></g><g transform="translate(329,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">1 PM</text></g><g transform="translate(411,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">2 PM</text></g><g transform="translate(494,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">3 PM</text></g><g transform="translate(576,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">4 PM</text></g><g transform="translate(658,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">5 PM</text></g></svg>
+</div>
+
+[[!toc ]]
+Format: 19-min talk; Q&A: BigBlueButton conference room <https://media.emacsconf.org/2024/current/bbb-casual.html>
+Discuss on IRC: [#emacsconf](https://chat.emacsconf.org/?join=emacsconf)
+Status: Quality check
+<div>Times in different time zones:</div><div class="times" start="2024-12-07T19:45:00Z" end="2024-12-07T20:05:00Z"><div class="conf-time">Saturday, Dec 7 2024, ~2:45 PM - 3:05 PM EST (US/Eastern)</div><div class="others"><div>which is the same as:</div>Saturday, Dec 7 2024, ~1:45 PM - 2:05 PM CST (US/Central)<br />Saturday, Dec 7 2024, ~12:45 PM - 1:05 PM MST (US/Mountain)<br />Saturday, Dec 7 2024, ~11:45 AM - 12:05 PM PST (US/Pacific)<br />Saturday, Dec 7 2024, ~7:45 PM - 8:05 PM UTC <br />Saturday, Dec 7 2024, ~8:45 PM - 9:05 PM CET (Europe/Paris)<br />Saturday, Dec 7 2024, ~9:45 PM - 10:05 PM EET (Europe/Athens)<br />Sunday, Dec 8 2024, ~1:15 AM - 1:35 AM IST (Asia/Kolkata)<br />Sunday, Dec 8 2024, ~3:45 AM - 4:05 AM +08 (Asia/Singapore)<br />Sunday, Dec 8 2024, ~4:45 AM - 5:05 AM JST (Asia/Tokyo)</div></div><div><strong><a href="/2024/watch/gen/">Find out how to watch and participate</a></strong></div>
diff --git a/2024/info/casual-nav.md b/2024/info/casual-nav.md
index c9d138a9..79f70094 100644
--- a/2024/info/casual-nav.md
+++ b/2024/info/casual-nav.md
@@ -1,7 +1,7 @@
<div class="talk-nav">
Back to the [[talks]]
-Previous by track: <a href="/2024/talks/blee">About Blee: towards an integrated Emacs environment for enveloping our own autonomy directed digital ecosystem</a>
-Next by track: <a href="/2024/talks/learning">Survival of the skillest: Thriving in the learning jungle</a>
-Track: <span class="sched-track General">General</span>
+Previous by time: <a href="/2024/talks/mcclim">Elisp and McCLIM</a>
+Next by time: <a href="/2024/talks/hyperdrive">New in hyperdrive.el: org-transclusion, easy installation, and more!</a>
+Track: <span class="sched-track General">General</span> - <strong><a href="https://emacsconf.org/2024/watch/gen">Watch</a></strong>
</div>
diff --git a/2024/info/color-after.md b/2024/info/color-after.md
index 9bee72c6..dbd67a8e 100644
--- a/2024/info/color-after.md
+++ b/2024/info/color-after.md
@@ -3,8 +3,5 @@
Questions or comments? Please e-mail [emacsconf-org-private@gnu.org](mailto:emacsconf-org-private@gnu.org?subject=Comment%20for%20EmacsConf%202023%20color%3A%20Colour%20your%20Emacs%20with%20ease)
-----
-Got an idea for an EmacsConf talk or session? We'd love to hear from you! Check out the [[Call for Participation|/2024/cfp]] for details.
-
<!-- End of emacsconf-publish-after-page -->
diff --git a/2024/info/color-before.md b/2024/info/color-before.md
index 4f4824ed..822bc24c 100644
--- a/2024/info/color-before.md
+++ b/2024/info/color-before.md
@@ -1,8 +1,14 @@
<!-- Automatically generated by emacsconf-publish-before-page -->
+
+The following image shows where the talk is in the schedule for Sat 2024-12-07. Solid lines show talks with Q&A via BigBlueButton. Dashed lines show talks with Q&A via IRC or Etherpad.<div class="schedule-in-context schedule-svg-container" data-slug="color">
+<svg width="700" height="150" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><title>Schedule for Saturday</title><rect width="700" height="150" x="0" y="0" fill="white"></rect><text font-size="10" fill="black" y="12" x="3">Saturday</text><a href="/2024/talks/sat-open" title="Saturday opening remarks" data-slug="sat-open"><title> 9:00- 9:10 Saturday opening remarks</title><rect x="0" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(11,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sat-open</text></g></a><a href="/2024/talks/papers" title="Writing academic papers in Org-Roam" data-slug="papers"><title> 9:10- 9:20 Writing academic papers in Org-Roam</title><rect x="13" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(24,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">papers</text></g></a><a href="/2024/talks/project" title="Managing writing project metadata with org-mode" data-slug="project"><title> 9:40-10:00 Managing writing project metadata with org-mode</title><rect x="54" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(79,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">project</text></g></a><a href="/2024/talks/org-update" title="The Future of Org" data-slug="org-update"><title>10:20-10:40 The Future of Org</title><rect x="109" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(134,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">org-update</text></g></a><a href="/2024/talks/color" title="Colour your Emacs with ease" data-slug="color"><title>11:00-11:10 Colour your Emacs with ease</title><rect stroke-width="3" x="164" y="15" opacity="0.8" width="13" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(175,73)"><text font-weight="bold" fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">color</text></g></a><a href="/2024/talks/theme" title="My journey of finding and creating the “perfect” Emacs theme" data-slug="theme"><title> 1:00- 1:10 My journey of finding and creating the “perfect” Emacs theme</title><rect x="329" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(340,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">theme</text></g></a><a href="/2024/talks/water" title="Watering my (digital) plant with Emacs timers" data-slug="water"><title> 1:30- 1:45 Watering my (digital) plant with Emacs timers</title><rect x="370" y="15" opacity="0.5" width="20" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(388,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">water</text></g></a><a href="/2024/talks/shell" title="Emacs as a shell" data-slug="shell"><title> 1:55- 2:35 Emacs as a shell</title><rect x="404" y="15" opacity="0.5" width="54" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(456,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">shell</text></g></a><a href="/2024/talks/casual" title="Re-imagining the Emacs user experience with Casual Suite" data-slug="casual"><title> 2:45- 3:05 Re-imagining the Emacs user experience with Casual Suite</title><rect x="473" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(498,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">casual</text></g></a><a href="/2024/talks/hyperdrive" title="New in hyperdrive.el: org-transclusion, easy installation, and more!" data-slug="hyperdrive"><title> 3:25- 3:45 New in hyperdrive.el: org-transclusion, easy installation, and more!</title><rect x="528" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(553,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">hyperdrive</text></g></a><a href="/2024/talks/writing" title="Emacs Writing Studio" data-slug="writing"><title> 4:05- 4:15 Emacs Writing Studio</title><rect x="583" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(594,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">writing</text></g></a><a href="/2024/talks/emacs30" title="Emacs 30 Highlights" data-slug="emacs30"><title> 4:25- 4:50 Emacs 30 Highlights</title><rect x="610" y="15" opacity="0.5" width="34" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(642,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">emacs30</text></g></a><a href="/2024/talks/sat-close" title="Saturday closing remarks" data-slug="sat-close"><title> 5:00- 5:10 Saturday closing remarks</title><rect x="658" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(669,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sat-close</text></g></a><a href="/2024/talks/gypsum" title="Gypsum: my clone of Emacs and ELisp written in Scheme" data-slug="gypsum"><title>10:00-10:20 Gypsum: my clone of Emacs and ELisp written in Scheme</title><rect x="82" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(107,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">gypsum</text></g></a><a href="/2024/talks/rust" title="An experimental Emacs core in Rust" data-slug="rust"><title>10:40-11:00 An experimental Emacs core in Rust</title><rect x="137" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(162,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">rust</text></g></a><a href="/2024/talks/p-search" title="p-search: a local search engine in Emacs" data-slug="p-search"><title>11:20-11:45 p-search: a local search engine in Emacs</title><rect x="192" y="75" opacity="0.5" width="34" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(224,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">p-search</text></g></a><a href="/2024/talks/julia" title="Exploring shared philosophies in Julia and Emacs" data-slug="julia"><title> 1:00- 1:10 Exploring shared philosophies in Julia and Emacs</title><rect x="329" y="75" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(340,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">julia</text></g></a><a href="/2024/talks/guile" title="Beguiling Emacs: Guile-Emacs relaunched!" data-slug="guile"><title> 1:25- 1:45 Beguiling Emacs: Guile-Emacs relaunched!</title><rect x="363" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="5,5,5" fill="skyblue"></rect><g transform="translate(388,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">guile</text></g></a><a href="/2024/talks/secrets" title="Committing secrets with git using sops-mode" data-slug="secrets"><title> 1:55- 2:05 Committing secrets with git using sops-mode</title><rect x="404" y="75" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(415,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">secrets</text></g></a><a href="/2024/talks/mcclim" title="Elisp and McCLIM" data-slug="mcclim"><title> 2:25- 3:25 Elisp and McCLIM</title><rect x="446" y="75" opacity="0.5" width="82" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(526,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">mcclim</text></g></a><a href="/2024/talks/repro" title="Reproducibly building Emacs: “Hey your checksum is the same as mine!”" data-slug="repro"><title> 3:45- 4:05 Reproducibly building Emacs: “Hey your checksum is the same as mine!”</title><rect x="555" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(580,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">repro</text></g></a><g transform="translate(0,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">9 AM</text></g><g transform="translate(82,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">10 AM</text></g><g transform="translate(164,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">11 AM</text></g><g transform="translate(247,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">12 PM</text></g><g transform="translate(329,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">1 PM</text></g><g transform="translate(411,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">2 PM</text></g><g transform="translate(494,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">3 PM</text></g><g transform="translate(576,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">4 PM</text></g><g transform="translate(658,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">5 PM</text></g></svg>
+</div>
+
[[!toc ]]
-Format: 10-min talk; Q&A: ask questions via Etherpad/IRC; we'll e-mail the speaker and post answers on this wiki page after the conference
+Format: 10-min talk; Q&A: BigBlueButton conference room <https://media.emacsconf.org/2024/current/bbb-color.html>
+Discuss on IRC: [#emacsconf](https://chat.emacsconf.org/?join=emacsconf)
Status: Waiting for video from speaker
-
+<div>Times in different time zones:</div><div class="times" start="2024-12-07T16:00:00Z" end="2024-12-07T16:10:00Z"><div class="conf-time">Saturday, Dec 7 2024, ~11:00 AM - 11:10 AM EST (US/Eastern)</div><div class="others"><div>which is the same as:</div>Saturday, Dec 7 2024, ~10:00 AM - 10:10 AM CST (US/Central)<br />Saturday, Dec 7 2024, ~9:00 AM - 9:10 AM MST (US/Mountain)<br />Saturday, Dec 7 2024, ~8:00 AM - 8:10 AM PST (US/Pacific)<br />Saturday, Dec 7 2024, ~4:00 PM - 4:10 PM UTC <br />Saturday, Dec 7 2024, ~5:00 PM - 5:10 PM CET (Europe/Paris)<br />Saturday, Dec 7 2024, ~6:00 PM - 6:10 PM EET (Europe/Athens)<br />Saturday, Dec 7 2024, ~9:30 PM - 9:40 PM IST (Asia/Kolkata)<br />Sunday, Dec 8 2024, ~12:00 AM - 12:10 AM +08 (Asia/Singapore)<br />Sunday, Dec 8 2024, ~1:00 AM - 1:10 AM JST (Asia/Tokyo)</div></div><div><strong><a href="/2024/watch/gen/">Find out how to watch and participate</a></strong></div>
diff --git a/2024/info/color-nav.md b/2024/info/color-nav.md
index 7513f0c6..034282f1 100644
--- a/2024/info/color-nav.md
+++ b/2024/info/color-nav.md
@@ -1,7 +1,7 @@
<div class="talk-nav">
Back to the [[talks]]
-Previous by track: <a href="/2024/talks/hyperdrive">New in hyperdrive.el: org-transclusion, easy installation, and more!</a>
-Next by track: <a href="/2024/talks/water">Watering my (digital) plant with Emacs timers</a>
-Track: <span class="sched-track General">General</span>
+Previous by time: <a href="/2024/talks/rust">An experimental Emacs core in Rust</a>
+Next by time: <a href="/2024/talks/p-search">p-search: a local search engine in Emacs</a>
+Track: <span class="sched-track General">General</span> - <strong><a href="https://emacsconf.org/2024/watch/gen">Watch</a></strong>
</div>
diff --git a/2024/info/emacs30-after.md b/2024/info/emacs30-after.md
new file mode 100644
index 00000000..c854e4a5
--- /dev/null
+++ b/2024/info/emacs30-after.md
@@ -0,0 +1,7 @@
+<!-- Automatically generated by emacsconf-publish-after-page -->
+
+
+Questions or comments? Please e-mail [emacsconf-org-private@gnu.org](mailto:emacsconf-org-private@gnu.org?subject=Comment%20for%20EmacsConf%202023%20emacs30%3A%20Emacs%2030%20Highlights)
+
+
+<!-- End of emacsconf-publish-after-page -->
diff --git a/2024/info/emacs30-before.md b/2024/info/emacs30-before.md
new file mode 100644
index 00000000..cbe8f3b5
--- /dev/null
+++ b/2024/info/emacs30-before.md
@@ -0,0 +1,18 @@
+<!-- Automatically generated by emacsconf-publish-before-page -->
+
+The following image shows where the talk is in the schedule for Sat 2024-12-07. Solid lines show talks with Q&A via BigBlueButton. Dashed lines show talks with Q&A via IRC or Etherpad.<div class="schedule-in-context schedule-svg-container" data-slug="emacs30">
+<svg width="700" height="150" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><title>Schedule for Saturday</title><rect width="700" height="150" x="0" y="0" fill="white"></rect><text font-size="10" fill="black" y="12" x="3">Saturday</text><a href="/2024/talks/sat-open" title="Saturday opening remarks" data-slug="sat-open"><title> 9:00- 9:10 Saturday opening remarks</title><rect x="0" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(11,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sat-open</text></g></a><a href="/2024/talks/papers" title="Writing academic papers in Org-Roam" data-slug="papers"><title> 9:10- 9:20 Writing academic papers in Org-Roam</title><rect x="13" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(24,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">papers</text></g></a><a href="/2024/talks/project" title="Managing writing project metadata with org-mode" data-slug="project"><title> 9:40-10:00 Managing writing project metadata with org-mode</title><rect x="54" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(79,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">project</text></g></a><a href="/2024/talks/org-update" title="The Future of Org" data-slug="org-update"><title>10:20-10:40 The Future of Org</title><rect x="109" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(134,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">org-update</text></g></a><a href="/2024/talks/color" title="Colour your Emacs with ease" data-slug="color"><title>11:00-11:10 Colour your Emacs with ease</title><rect x="164" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(175,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">color</text></g></a><a href="/2024/talks/theme" title="My journey of finding and creating the “perfect” Emacs theme" data-slug="theme"><title> 1:00- 1:10 My journey of finding and creating the “perfect” Emacs theme</title><rect x="329" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(340,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">theme</text></g></a><a href="/2024/talks/water" title="Watering my (digital) plant with Emacs timers" data-slug="water"><title> 1:30- 1:45 Watering my (digital) plant with Emacs timers</title><rect x="370" y="15" opacity="0.5" width="20" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(388,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">water</text></g></a><a href="/2024/talks/shell" title="Emacs as a shell" data-slug="shell"><title> 1:55- 2:35 Emacs as a shell</title><rect x="404" y="15" opacity="0.5" width="54" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(456,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">shell</text></g></a><a href="/2024/talks/casual" title="Re-imagining the Emacs user experience with Casual Suite" data-slug="casual"><title> 2:45- 3:05 Re-imagining the Emacs user experience with Casual Suite</title><rect x="473" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(498,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">casual</text></g></a><a href="/2024/talks/hyperdrive" title="New in hyperdrive.el: org-transclusion, easy installation, and more!" data-slug="hyperdrive"><title> 3:25- 3:45 New in hyperdrive.el: org-transclusion, easy installation, and more!</title><rect x="528" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(553,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">hyperdrive</text></g></a><a href="/2024/talks/writing" title="Emacs Writing Studio" data-slug="writing"><title> 4:05- 4:15 Emacs Writing Studio</title><rect x="583" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(594,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">writing</text></g></a><a href="/2024/talks/emacs30" title="Emacs 30 Highlights" data-slug="emacs30"><title> 4:25- 4:50 Emacs 30 Highlights</title><rect stroke-width="3" x="610" y="15" opacity="0.8" width="34" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(642,73)"><text font-weight="bold" fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">emacs30</text></g></a><a href="/2024/talks/sat-close" title="Saturday closing remarks" data-slug="sat-close"><title> 5:00- 5:10 Saturday closing remarks</title><rect x="658" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(669,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sat-close</text></g></a><a href="/2024/talks/gypsum" title="Gypsum: my clone of Emacs and ELisp written in Scheme" data-slug="gypsum"><title>10:00-10:20 Gypsum: my clone of Emacs and ELisp written in Scheme</title><rect x="82" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(107,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">gypsum</text></g></a><a href="/2024/talks/rust" title="An experimental Emacs core in Rust" data-slug="rust"><title>10:40-11:00 An experimental Emacs core in Rust</title><rect x="137" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(162,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">rust</text></g></a><a href="/2024/talks/p-search" title="p-search: a local search engine in Emacs" data-slug="p-search"><title>11:20-11:45 p-search: a local search engine in Emacs</title><rect x="192" y="75" opacity="0.5" width="34" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(224,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">p-search</text></g></a><a href="/2024/talks/julia" title="Exploring shared philosophies in Julia and Emacs" data-slug="julia"><title> 1:00- 1:10 Exploring shared philosophies in Julia and Emacs</title><rect x="329" y="75" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(340,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">julia</text></g></a><a href="/2024/talks/guile" title="Beguiling Emacs: Guile-Emacs relaunched!" data-slug="guile"><title> 1:25- 1:45 Beguiling Emacs: Guile-Emacs relaunched!</title><rect x="363" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="5,5,5" fill="skyblue"></rect><g transform="translate(388,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">guile</text></g></a><a href="/2024/talks/secrets" title="Committing secrets with git using sops-mode" data-slug="secrets"><title> 1:55- 2:05 Committing secrets with git using sops-mode</title><rect x="404" y="75" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(415,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">secrets</text></g></a><a href="/2024/talks/mcclim" title="Elisp and McCLIM" data-slug="mcclim"><title> 2:25- 3:25 Elisp and McCLIM</title><rect x="446" y="75" opacity="0.5" width="82" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(526,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">mcclim</text></g></a><a href="/2024/talks/repro" title="Reproducibly building Emacs: “Hey your checksum is the same as mine!”" data-slug="repro"><title> 3:45- 4:05 Reproducibly building Emacs: “Hey your checksum is the same as mine!”</title><rect x="555" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(580,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">repro</text></g></a><g transform="translate(0,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">9 AM</text></g><g transform="translate(82,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">10 AM</text></g><g transform="translate(164,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">11 AM</text></g><g transform="translate(247,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">12 PM</text></g><g transform="translate(329,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">1 PM</text></g><g transform="translate(411,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">2 PM</text></g><g transform="translate(494,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">3 PM</text></g><g transform="translate(576,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">4 PM</text></g><g transform="translate(658,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">5 PM</text></g></svg>
+</div>
+
+[[!toc ]]
+Format: 25-min talk; Q&A: BigBlueButton conference room <https://media.emacsconf.org/2024/current/bbb-emacs30.html>
+Discuss on IRC: [#emacsconf](https://chat.emacsconf.org/?join=emacsconf)
+Status: Quality check
+<div>Times in different time zones:</div><div class="times" start="2024-12-07T21:25:00Z" end="2024-12-07T21:50:00Z"><div class="conf-time">Saturday, Dec 7 2024, ~4:25 PM - 4:50 PM EST (US/Eastern)</div><div class="others"><div>which is the same as:</div>Saturday, Dec 7 2024, ~3:25 PM - 3:50 PM CST (US/Central)<br />Saturday, Dec 7 2024, ~2:25 PM - 2:50 PM MST (US/Mountain)<br />Saturday, Dec 7 2024, ~1:25 PM - 1:50 PM PST (US/Pacific)<br />Saturday, Dec 7 2024, ~9:25 PM - 9:50 PM UTC <br />Saturday, Dec 7 2024, ~10:25 PM - 10:50 PM CET (Europe/Paris)<br />Saturday, Dec 7 2024, ~11:25 PM - 11:50 PM EET (Europe/Athens)<br />Sunday, Dec 8 2024, ~2:55 AM - 3:20 AM IST (Asia/Kolkata)<br />Sunday, Dec 8 2024, ~5:25 AM - 5:50 AM +08 (Asia/Singapore)<br />Sunday, Dec 8 2024, ~6:25 AM - 6:50 AM JST (Asia/Tokyo)</div></div><div><strong><a href="/2024/watch/gen/">Find out how to watch and participate</a></strong></div>
+
+
+
+
+
+# Description
+<!-- End of emacsconf-publish-before-page --> \ No newline at end of file
diff --git a/2024/info/emacs30-nav.md b/2024/info/emacs30-nav.md
new file mode 100644
index 00000000..db0453e0
--- /dev/null
+++ b/2024/info/emacs30-nav.md
@@ -0,0 +1,7 @@
+
+<div class="talk-nav">
+Back to the [[talks]]
+Previous by time: <a href="/2024/talks/writing">Emacs Writing Studio</a>
+Next by time: <a href="/2024/talks/sat-close">Saturday closing remarks</a>
+Track: <span class="sched-track General">General</span> - <strong><a href="https://emacsconf.org/2024/watch/gen">Watch</a></strong>
+</div>
diff --git a/2024/info/flp-after.md b/2024/info/flp-after.md
index 98388a5c..63642a23 100644
--- a/2024/info/flp-after.md
+++ b/2024/info/flp-after.md
@@ -3,8 +3,5 @@
Questions or comments? Please e-mail [adougher9@gmail.com](mailto:adougher9@gmail.com?subject=Comment%20for%20EmacsConf%202023%20flp%3A%20The%20Free%20Life%20Planner%3A%20Empowering%20lives%20with%20Emacs-based%20AI)
-----
-Got an idea for an EmacsConf talk or session? We'd love to hear from you! Check out the [[Call for Participation|/2024/cfp]] for details.
-
<!-- End of emacsconf-publish-after-page -->
diff --git a/2024/info/flp-before.md b/2024/info/flp-before.md
index 49413c04..d9c35617 100644
--- a/2024/info/flp-before.md
+++ b/2024/info/flp-before.md
@@ -1,7 +1,8 @@
<!-- Automatically generated by emacsconf-publish-before-page -->
[[!toc ]]
-Format: 20-min talk; Q&A: IRC
-Status: Waiting for video from speaker
+Format: 20-min talk cancelled
+Discuss on IRC: [#emacsconf](https://chat.emacsconf.org/?join=emacsconf)
+Status: Sorry, this talk has been cancelled
diff --git a/2024/info/flp-nav.md b/2024/info/flp-nav.md
index 6f5c143a..35ed938a 100644
--- a/2024/info/flp-nav.md
+++ b/2024/info/flp-nav.md
@@ -1,7 +1,4 @@
<div class="talk-nav">
Back to the [[talks]]
-Previous by track: <a href="/2024/talks/theme">My journey of finding and creating the “perfect” Emacs theme</a>
-Next by track: <a href="/2024/talks/writing">Emacs Writing Studio</a>
-Track: <span class="sched-track General">General</span>
-</div>
+</div> \ No newline at end of file
diff --git a/2024/info/graph-after.md b/2024/info/graph-after.md
index 50313995..445f7ee1 100644
--- a/2024/info/graph-after.md
+++ b/2024/info/graph-after.md
@@ -3,8 +3,5 @@
Questions or comments? Please e-mail [john@cellform.com](mailto:john@cellform.com?subject=Comment%20for%20EmacsConf%202023%20graph%3A%20Graph%20mode%3A%20a%20major%20mode%20to%20create%2C%20edit%20and%20display%20discrete%20element%20graphs)
-----
-Got an idea for an EmacsConf talk or session? We'd love to hear from you! Check out the [[Call for Participation|/2024/cfp]] for details.
-
<!-- End of emacsconf-publish-after-page -->
diff --git a/2024/info/graph-before.md b/2024/info/graph-before.md
index 7cb3e64d..d9c35617 100644
--- a/2024/info/graph-before.md
+++ b/2024/info/graph-before.md
@@ -1,7 +1,8 @@
<!-- Automatically generated by emacsconf-publish-before-page -->
[[!toc ]]
-Format: 20-min talk; Q&A: BigBlueButton conference room
-Status: Waiting for video from speaker
+Format: 20-min talk cancelled
+Discuss on IRC: [#emacsconf](https://chat.emacsconf.org/?join=emacsconf)
+Status: Sorry, this talk has been cancelled
diff --git a/2024/info/graph-nav.md b/2024/info/graph-nav.md
index 94ac3f62..35ed938a 100644
--- a/2024/info/graph-nav.md
+++ b/2024/info/graph-nav.md
@@ -1,7 +1,4 @@
<div class="talk-nav">
Back to the [[talks]]
-Previous by track: <a href="/2024/talks/rust">An experimental Emacs core in Rust</a>
-Next by track: <a href="/2024/talks/julia">Exploring shared philosophies in Julia and Emacs</a>
-Track: <span class="sched-track Development">Development</span>
-</div>
+</div> \ No newline at end of file
diff --git a/2024/info/guile-after.md b/2024/info/guile-after.md
index 1ca4f8c0..7ffcb322 100644
--- a/2024/info/guile-after.md
+++ b/2024/info/guile-after.md
@@ -3,8 +3,5 @@
Questions or comments? Please e-mail [robin@terpri.org](mailto:robin@terpri.org?subject=Comment%20for%20EmacsConf%202023%20guile%3A%20Beguiling%20Emacs%3A%20Guile-Emacs%20relaunched%21)
-----
-Got an idea for an EmacsConf talk or session? We'd love to hear from you! Check out the [[Call for Participation|/2024/cfp]] for details.
-
<!-- End of emacsconf-publish-after-page -->
diff --git a/2024/info/guile-before.md b/2024/info/guile-before.md
index 49413c04..d710b7a6 100644
--- a/2024/info/guile-before.md
+++ b/2024/info/guile-before.md
@@ -1,8 +1,14 @@
<!-- Automatically generated by emacsconf-publish-before-page -->
+
+The following image shows where the talk is in the schedule for Sat 2024-12-07. Solid lines show talks with Q&A via BigBlueButton. Dashed lines show talks with Q&A via IRC or Etherpad.<div class="schedule-in-context schedule-svg-container" data-slug="guile">
+<svg width="700" height="150" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><title>Schedule for Saturday</title><rect width="700" height="150" x="0" y="0" fill="white"></rect><text font-size="10" fill="black" y="12" x="3">Saturday</text><a href="/2024/talks/sat-open" title="Saturday opening remarks" data-slug="sat-open"><title> 9:00- 9:10 Saturday opening remarks</title><rect x="0" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(11,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sat-open</text></g></a><a href="/2024/talks/papers" title="Writing academic papers in Org-Roam" data-slug="papers"><title> 9:10- 9:20 Writing academic papers in Org-Roam</title><rect x="13" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(24,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">papers</text></g></a><a href="/2024/talks/project" title="Managing writing project metadata with org-mode" data-slug="project"><title> 9:40-10:00 Managing writing project metadata with org-mode</title><rect x="54" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(79,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">project</text></g></a><a href="/2024/talks/org-update" title="The Future of Org" data-slug="org-update"><title>10:20-10:40 The Future of Org</title><rect x="109" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(134,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">org-update</text></g></a><a href="/2024/talks/color" title="Colour your Emacs with ease" data-slug="color"><title>11:00-11:10 Colour your Emacs with ease</title><rect x="164" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(175,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">color</text></g></a><a href="/2024/talks/theme" title="My journey of finding and creating the “perfect” Emacs theme" data-slug="theme"><title> 1:00- 1:10 My journey of finding and creating the “perfect” Emacs theme</title><rect x="329" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(340,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">theme</text></g></a><a href="/2024/talks/water" title="Watering my (digital) plant with Emacs timers" data-slug="water"><title> 1:30- 1:45 Watering my (digital) plant with Emacs timers</title><rect x="370" y="15" opacity="0.5" width="20" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(388,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">water</text></g></a><a href="/2024/talks/shell" title="Emacs as a shell" data-slug="shell"><title> 1:55- 2:35 Emacs as a shell</title><rect x="404" y="15" opacity="0.5" width="54" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(456,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">shell</text></g></a><a href="/2024/talks/casual" title="Re-imagining the Emacs user experience with Casual Suite" data-slug="casual"><title> 2:45- 3:05 Re-imagining the Emacs user experience with Casual Suite</title><rect x="473" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(498,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">casual</text></g></a><a href="/2024/talks/hyperdrive" title="New in hyperdrive.el: org-transclusion, easy installation, and more!" data-slug="hyperdrive"><title> 3:25- 3:45 New in hyperdrive.el: org-transclusion, easy installation, and more!</title><rect x="528" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(553,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">hyperdrive</text></g></a><a href="/2024/talks/writing" title="Emacs Writing Studio" data-slug="writing"><title> 4:05- 4:15 Emacs Writing Studio</title><rect x="583" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(594,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">writing</text></g></a><a href="/2024/talks/emacs30" title="Emacs 30 Highlights" data-slug="emacs30"><title> 4:25- 4:50 Emacs 30 Highlights</title><rect x="610" y="15" opacity="0.5" width="34" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(642,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">emacs30</text></g></a><a href="/2024/talks/sat-close" title="Saturday closing remarks" data-slug="sat-close"><title> 5:00- 5:10 Saturday closing remarks</title><rect x="658" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(669,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sat-close</text></g></a><a href="/2024/talks/gypsum" title="Gypsum: my clone of Emacs and ELisp written in Scheme" data-slug="gypsum"><title>10:00-10:20 Gypsum: my clone of Emacs and ELisp written in Scheme</title><rect x="82" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(107,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">gypsum</text></g></a><a href="/2024/talks/rust" title="An experimental Emacs core in Rust" data-slug="rust"><title>10:40-11:00 An experimental Emacs core in Rust</title><rect x="137" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(162,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">rust</text></g></a><a href="/2024/talks/p-search" title="p-search: a local search engine in Emacs" data-slug="p-search"><title>11:20-11:45 p-search: a local search engine in Emacs</title><rect x="192" y="75" opacity="0.5" width="34" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(224,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">p-search</text></g></a><a href="/2024/talks/julia" title="Exploring shared philosophies in Julia and Emacs" data-slug="julia"><title> 1:00- 1:10 Exploring shared philosophies in Julia and Emacs</title><rect x="329" y="75" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(340,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">julia</text></g></a><a href="/2024/talks/guile" title="Beguiling Emacs: Guile-Emacs relaunched!" data-slug="guile"><title> 1:25- 1:45 Beguiling Emacs: Guile-Emacs relaunched!</title><rect stroke-width="3" x="363" y="75" opacity="0.8" width="27" height="59" stroke="black" stroke-dasharray="5,5,5" fill="skyblue"></rect><g transform="translate(388,133)"><text font-weight="bold" fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">guile</text></g></a><a href="/2024/talks/secrets" title="Committing secrets with git using sops-mode" data-slug="secrets"><title> 1:55- 2:05 Committing secrets with git using sops-mode</title><rect x="404" y="75" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(415,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">secrets</text></g></a><a href="/2024/talks/mcclim" title="Elisp and McCLIM" data-slug="mcclim"><title> 2:25- 3:25 Elisp and McCLIM</title><rect x="446" y="75" opacity="0.5" width="82" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(526,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">mcclim</text></g></a><a href="/2024/talks/repro" title="Reproducibly building Emacs: “Hey your checksum is the same as mine!”" data-slug="repro"><title> 3:45- 4:05 Reproducibly building Emacs: “Hey your checksum is the same as mine!”</title><rect x="555" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(580,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">repro</text></g></a><g transform="translate(0,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">9 AM</text></g><g transform="translate(82,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">10 AM</text></g><g transform="translate(164,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">11 AM</text></g><g transform="translate(247,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">12 PM</text></g><g transform="translate(329,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">1 PM</text></g><g transform="translate(411,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">2 PM</text></g><g transform="translate(494,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">3 PM</text></g><g transform="translate(576,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">4 PM</text></g><g transform="translate(658,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">5 PM</text></g></svg>
+</div>
+
[[!toc ]]
-Format: 20-min talk; Q&A: IRC
+Format: 20-min talk; Q&A: IRC <https://chat.emacsconf.org/?join=emacsconf>
+Discuss on IRC: [#emacsconf](https://chat.emacsconf.org/?join=emacsconf)
Status: Waiting for video from speaker
-
+<div>Times in different time zones:</div><div class="times" start="2024-12-07T18:25:00Z" end="2024-12-07T18:45:00Z"><div class="conf-time">Saturday, Dec 7 2024, ~1:25 PM - 1:45 PM EST (US/Eastern)</div><div class="others"><div>which is the same as:</div>Saturday, Dec 7 2024, ~12:25 PM - 12:45 PM CST (US/Central)<br />Saturday, Dec 7 2024, ~11:25 AM - 11:45 AM MST (US/Mountain)<br />Saturday, Dec 7 2024, ~10:25 AM - 10:45 AM PST (US/Pacific)<br />Saturday, Dec 7 2024, ~6:25 PM - 6:45 PM UTC <br />Saturday, Dec 7 2024, ~7:25 PM - 7:45 PM CET (Europe/Paris)<br />Saturday, Dec 7 2024, ~8:25 PM - 8:45 PM EET (Europe/Athens)<br />Saturday, Dec 7 2024, ~11:55 PM - 12:15 AM IST (Asia/Kolkata)<br />Sunday, Dec 8 2024, ~2:25 AM - 2:45 AM +08 (Asia/Singapore)<br />Sunday, Dec 8 2024, ~3:25 AM - 3:45 AM JST (Asia/Tokyo)</div></div><div><strong><a href="/2024/watch/dev/">Find out how to watch and participate</a></strong></div>
diff --git a/2024/info/guile-nav.md b/2024/info/guile-nav.md
index b90d8344..e5de6fae 100644
--- a/2024/info/guile-nav.md
+++ b/2024/info/guile-nav.md
@@ -1,7 +1,7 @@
<div class="talk-nav">
Back to the [[talks]]
-Previous by track: <a href="/2024/talks/julia">Exploring shared philosophies in Julia and Emacs</a>
-Next by track: <a href="/2024/talks/regex">Emacs regex compilation and future directions for expressive pattern matching</a>
-Track: <span class="sched-track Development">Development</span>
+Previous by time: <a href="/2024/talks/theme">My journey of finding and creating the “perfect” Emacs theme</a>
+Next by time: <a href="/2024/talks/water">Watering my (digital) plant with Emacs timers</a>
+Track: <span class="sched-track Development">Development</span> - <strong><a href="https://emacsconf.org/2024/watch/dev">Watch</a></strong>
</div>
diff --git a/2024/info/gypsum-after.md b/2024/info/gypsum-after.md
index 177673d6..9f7ec514 100644
--- a/2024/info/gypsum-after.md
+++ b/2024/info/gypsum-after.md
@@ -3,8 +3,5 @@
Questions or comments? Please e-mail [ramin.honary@gmail.com](mailto:ramin.honary@gmail.com?subject=Comment%20for%20EmacsConf%202023%20gypsum%3A%20Gypsum%3A%20my%20clone%20of%20Emacs%20and%20ELisp%20written%20in%20Scheme)
-----
-Got an idea for an EmacsConf talk or session? We'd love to hear from you! Check out the [[Call for Participation|/2024/cfp]] for details.
-
<!-- End of emacsconf-publish-after-page -->
diff --git a/2024/info/gypsum-before.md b/2024/info/gypsum-before.md
index 7cb3e64d..c571e3bc 100644
--- a/2024/info/gypsum-before.md
+++ b/2024/info/gypsum-before.md
@@ -1,8 +1,14 @@
<!-- Automatically generated by emacsconf-publish-before-page -->
-[[!toc ]]
-Format: 20-min talk; Q&A: BigBlueButton conference room
-Status: Waiting for video from speaker
+The following image shows where the talk is in the schedule for Sat 2024-12-07. Solid lines show talks with Q&A via BigBlueButton. Dashed lines show talks with Q&A via IRC or Etherpad.<div class="schedule-in-context schedule-svg-container" data-slug="gypsum">
+<svg width="700" height="150" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><title>Schedule for Saturday</title><rect width="700" height="150" x="0" y="0" fill="white"></rect><text font-size="10" fill="black" y="12" x="3">Saturday</text><a href="/2024/talks/sat-open" title="Saturday opening remarks" data-slug="sat-open"><title> 9:00- 9:10 Saturday opening remarks</title><rect x="0" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(11,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sat-open</text></g></a><a href="/2024/talks/papers" title="Writing academic papers in Org-Roam" data-slug="papers"><title> 9:10- 9:20 Writing academic papers in Org-Roam</title><rect x="13" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(24,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">papers</text></g></a><a href="/2024/talks/project" title="Managing writing project metadata with org-mode" data-slug="project"><title> 9:40-10:00 Managing writing project metadata with org-mode</title><rect x="54" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(79,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">project</text></g></a><a href="/2024/talks/org-update" title="The Future of Org" data-slug="org-update"><title>10:20-10:40 The Future of Org</title><rect x="109" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(134,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">org-update</text></g></a><a href="/2024/talks/color" title="Colour your Emacs with ease" data-slug="color"><title>11:00-11:10 Colour your Emacs with ease</title><rect x="164" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(175,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">color</text></g></a><a href="/2024/talks/theme" title="My journey of finding and creating the “perfect” Emacs theme" data-slug="theme"><title> 1:00- 1:10 My journey of finding and creating the “perfect” Emacs theme</title><rect x="329" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(340,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">theme</text></g></a><a href="/2024/talks/water" title="Watering my (digital) plant with Emacs timers" data-slug="water"><title> 1:30- 1:45 Watering my (digital) plant with Emacs timers</title><rect x="370" y="15" opacity="0.5" width="20" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(388,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">water</text></g></a><a href="/2024/talks/shell" title="Emacs as a shell" data-slug="shell"><title> 1:55- 2:35 Emacs as a shell</title><rect x="404" y="15" opacity="0.5" width="54" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(456,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">shell</text></g></a><a href="/2024/talks/casual" title="Re-imagining the Emacs user experience with Casual Suite" data-slug="casual"><title> 2:45- 3:05 Re-imagining the Emacs user experience with Casual Suite</title><rect x="473" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(498,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">casual</text></g></a><a href="/2024/talks/hyperdrive" title="New in hyperdrive.el: org-transclusion, easy installation, and more!" data-slug="hyperdrive"><title> 3:25- 3:45 New in hyperdrive.el: org-transclusion, easy installation, and more!</title><rect x="528" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(553,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">hyperdrive</text></g></a><a href="/2024/talks/writing" title="Emacs Writing Studio" data-slug="writing"><title> 4:05- 4:15 Emacs Writing Studio</title><rect x="583" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(594,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">writing</text></g></a><a href="/2024/talks/emacs30" title="Emacs 30 Highlights" data-slug="emacs30"><title> 4:25- 4:50 Emacs 30 Highlights</title><rect x="610" y="15" opacity="0.5" width="34" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(642,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">emacs30</text></g></a><a href="/2024/talks/sat-close" title="Saturday closing remarks" data-slug="sat-close"><title> 5:00- 5:10 Saturday closing remarks</title><rect x="658" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(669,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sat-close</text></g></a><a href="/2024/talks/gypsum" title="Gypsum: my clone of Emacs and ELisp written in Scheme" data-slug="gypsum"><title>10:00-10:20 Gypsum: my clone of Emacs and ELisp written in Scheme</title><rect stroke-width="3" x="82" y="75" opacity="0.8" width="27" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(107,133)"><text font-weight="bold" fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">gypsum</text></g></a><a href="/2024/talks/rust" title="An experimental Emacs core in Rust" data-slug="rust"><title>10:40-11:00 An experimental Emacs core in Rust</title><rect x="137" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(162,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">rust</text></g></a><a href="/2024/talks/p-search" title="p-search: a local search engine in Emacs" data-slug="p-search"><title>11:20-11:45 p-search: a local search engine in Emacs</title><rect x="192" y="75" opacity="0.5" width="34" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(224,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">p-search</text></g></a><a href="/2024/talks/julia" title="Exploring shared philosophies in Julia and Emacs" data-slug="julia"><title> 1:00- 1:10 Exploring shared philosophies in Julia and Emacs</title><rect x="329" y="75" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(340,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">julia</text></g></a><a href="/2024/talks/guile" title="Beguiling Emacs: Guile-Emacs relaunched!" data-slug="guile"><title> 1:25- 1:45 Beguiling Emacs: Guile-Emacs relaunched!</title><rect x="363" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="5,5,5" fill="skyblue"></rect><g transform="translate(388,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">guile</text></g></a><a href="/2024/talks/secrets" title="Committing secrets with git using sops-mode" data-slug="secrets"><title> 1:55- 2:05 Committing secrets with git using sops-mode</title><rect x="404" y="75" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(415,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">secrets</text></g></a><a href="/2024/talks/mcclim" title="Elisp and McCLIM" data-slug="mcclim"><title> 2:25- 3:25 Elisp and McCLIM</title><rect x="446" y="75" opacity="0.5" width="82" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(526,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">mcclim</text></g></a><a href="/2024/talks/repro" title="Reproducibly building Emacs: “Hey your checksum is the same as mine!”" data-slug="repro"><title> 3:45- 4:05 Reproducibly building Emacs: “Hey your checksum is the same as mine!”</title><rect x="555" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(580,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">repro</text></g></a><g transform="translate(0,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">9 AM</text></g><g transform="translate(82,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">10 AM</text></g><g transform="translate(164,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">11 AM</text></g><g transform="translate(247,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">12 PM</text></g><g transform="translate(329,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">1 PM</text></g><g transform="translate(411,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">2 PM</text></g><g transform="translate(494,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">3 PM</text></g><g transform="translate(576,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">4 PM</text></g><g transform="translate(658,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">5 PM</text></g></svg>
+</div>
+
+[[!toc ]]
+Format: 25-min talk; Q&A: BigBlueButton conference room <https://media.emacsconf.org/2024/current/bbb-gypsum.html>
+Discuss on IRC: [#emacsconf](https://chat.emacsconf.org/?join=emacsconf)
+Status: Being captioned
+<div>Times in different time zones:</div><div class="times" start="2024-12-07T15:00:00Z" end="2024-12-07T15:20:00Z"><div class="conf-time">Saturday, Dec 7 2024, ~10:00 AM - 10:20 AM EST (US/Eastern)</div><div class="others"><div>which is the same as:</div>Saturday, Dec 7 2024, ~9:00 AM - 9:20 AM CST (US/Central)<br />Saturday, Dec 7 2024, ~8:00 AM - 8:20 AM MST (US/Mountain)<br />Saturday, Dec 7 2024, ~7:00 AM - 7:20 AM PST (US/Pacific)<br />Saturday, Dec 7 2024, ~3:00 PM - 3:20 PM UTC <br />Saturday, Dec 7 2024, ~4:00 PM - 4:20 PM CET (Europe/Paris)<br />Saturday, Dec 7 2024, ~5:00 PM - 5:20 PM EET (Europe/Athens)<br />Saturday, Dec 7 2024, ~8:30 PM - 8:50 PM IST (Asia/Kolkata)<br />Saturday, Dec 7 2024, ~11:00 PM - 11:20 PM +08 (Asia/Singapore)<br />Sunday, Dec 8 2024, ~12:00 AM - 12:20 AM JST (Asia/Tokyo)</div></div><div><strong><a href="/2024/watch/dev/">Find out how to watch and participate</a></strong></div>
diff --git a/2024/info/gypsum-nav.md b/2024/info/gypsum-nav.md
index f4e22e7a..0a28649f 100644
--- a/2024/info/gypsum-nav.md
+++ b/2024/info/gypsum-nav.md
@@ -1,7 +1,7 @@
<div class="talk-nav">
Back to the [[talks]]
-Previous by track: <a href="/2024/talks/transducers">Transducers: finally, ergonomic data processing for Emacs!</a>
-Next by track: <a href="/2024/talks/rust">An experimental Emacs core in Rust</a>
-Track: <span class="sched-track Development">Development</span>
+Previous by time: <a href="/2024/talks/project">Managing writing project metadata with org-mode</a>
+Next by time: <a href="/2024/talks/org-update">The Future of Org</a>
+Track: <span class="sched-track Development">Development</span> - <strong><a href="https://emacsconf.org/2024/watch/dev">Watch</a></strong>
</div>
diff --git a/2024/info/hyperbole-after.md b/2024/info/hyperbole-after.md
index fc47bf27..c837eacb 100644
--- a/2024/info/hyperbole-after.md
+++ b/2024/info/hyperbole-after.md
@@ -3,8 +3,5 @@
Questions or comments? Please e-mail [matsl@gnu.org](mailto:matsl@gnu.org?subject=Comment%20for%20EmacsConf%202023%20hyperbole%3A%20Fun%20things%20with%20GNU%20Hyperbole)
-----
-Got an idea for an EmacsConf talk or session? We'd love to hear from you! Check out the [[Call for Participation|/2024/cfp]] for details.
-
<!-- End of emacsconf-publish-after-page -->
diff --git a/2024/info/hyperbole-before.md b/2024/info/hyperbole-before.md
index b8e44d2c..3e4e0ed4 100644
--- a/2024/info/hyperbole-before.md
+++ b/2024/info/hyperbole-before.md
@@ -1,8 +1,16 @@
<!-- Automatically generated by emacsconf-publish-before-page -->
-[[!toc ]]
-Format: 10-min talk; Q&A: BigBlueButton conference room
-Status: Waiting for video from speaker
+May take questions after the event depending on how his move goes
+
+The following image shows where the talk is in the schedule for Sun 2024-12-08. Solid lines show talks with Q&A via BigBlueButton. Dashed lines show talks with Q&A via IRC or Etherpad.<div class="schedule-in-context schedule-svg-container" data-slug="hyperbole">
+<svg width="700" height="150" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><title>Schedule for Sunday</title><rect width="700" height="150" x="0" y="0" fill="white"></rect><text font-size="10" fill="black" y="12" x="3">Sunday</text><a href="/2024/talks/sun-open" title="Sunday opening remarks" data-slug="sun-open"><title> 9:00- 9:10 Sunday opening remarks</title><rect x="0" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(11,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sun-open</text></g></a><a href="/2024/talks/links" title="Unlocking linked data: replacing specialized apps with an Org-based semantic wiki" data-slug="links"><title> 9:10- 9:20 Unlocking linked data: replacing specialized apps with an Org-based semantic wiki</title><rect x="13" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(24,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">links</text></g></a><a href="/2024/talks/regex" title="Emacs regex compilation and future directions for expressive pattern matching" data-slug="regex"><title> 9:30- 9:50 Emacs regex compilation and future directions for expressive pattern matching</title><rect x="41" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(66,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">regex</text></g></a><a href="/2024/talks/learning" title="Survival of the skillest: Thriving in the learning jungle" data-slug="learning"><title>10:00-10:20 Survival of the skillest: Thriving in the learning jungle</title><rect x="82" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(107,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">learning</text></g></a><a href="/2024/talks/language" title="Immersive language learning with Emacs" data-slug="language"><title>10:30-10:40 Immersive language learning with Emacs</title><rect x="123" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(134,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">language</text></g></a><a href="/2024/talks/org-teach" title="org-teach: a minor mode for writing course materials in Emacs" data-slug="org-teach"><title>10:50-11:10 org-teach: a minor mode for writing course materials in Emacs</title><rect x="150" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(175,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">org-teach</text></g></a><a href="/2024/talks/hyperbole" title="Fun things with GNU Hyperbole" data-slug="hyperbole"><title>11:25-11:40 Fun things with GNU Hyperbole</title><rect stroke-width="3" x="199" y="15" opacity="0.8" width="20" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(217,73)"><text font-weight="bold" fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">hyperbole</text></g></a><a href="/2024/talks/hywiki" title="HyWiki: Fast, hyperlinked note-taking with no markup required" data-slug="hywiki"><title> 1:00- 1:20 HyWiki: Fast, hyperlinked note-taking with no markup required</title><rect x="329" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(354,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">hywiki</text></g></a><a href="/2024/talks/pgmacs" title="PGmacs: browsing and editing PostgreSQL databases from Emacs" data-slug="pgmacs"><title> 1:35- 1:50 PGmacs: browsing and editing PostgreSQL databases from Emacs</title><rect x="377" y="15" opacity="0.5" width="20" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(395,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">pgmacs</text></g></a><a href="/2024/talks/blee" title="About Blee: enveloping our own autonomy directed digital ecosystem with Emacs" data-slug="blee"><title> 2:05- 2:45 About Blee: enveloping our own autonomy directed digital ecosystem with Emacs</title><rect x="418" y="15" opacity="0.5" width="54" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(470,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">blee</text></g></a><a href="/2024/talks/literate" title="Literate programming for the 21st Century" data-slug="literate"><title> 2:55- 3:15 Literate programming for the 21st Century</title><rect x="487" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(512,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">literate</text></g></a><a href="/2024/talks/students" title="An example of a cohesive student workflow in Emacs" data-slug="students"><title> 3:30- 3:40 An example of a cohesive student workflow in Emacs</title><rect x="535" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(546,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">students</text></g></a><a href="/2024/talks/sharing" title="So you want to be an Emacs-fluencer?" data-slug="sharing"><title> 3:50- 4:10 So you want to be an Emacs-fluencer?</title><rect x="562" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(587,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sharing</text></g></a><a href="/2024/talks/transducers" title="Transducers: finally, ergonomic data processing for Emacs!" data-slug="transducers"><title> 4:20- 4:50 Transducers: finally, ergonomic data processing for Emacs!</title><rect x="603" y="15" opacity="0.5" width="41" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(642,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">transducers</text></g></a><a href="/2024/talks/sun-close" title="Sunday closing remarks" data-slug="sun-close"><title> 5:00- 5:10 Sunday closing remarks</title><rect x="658" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(669,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sun-close</text></g></a><g transform="translate(0,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">9 AM</text></g><g transform="translate(82,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">10 AM</text></g><g transform="translate(164,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">11 AM</text></g><g transform="translate(247,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">12 PM</text></g><g transform="translate(329,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">1 PM</text></g><g transform="translate(411,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">2 PM</text></g><g transform="translate(494,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">3 PM</text></g><g transform="translate(576,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">4 PM</text></g><g transform="translate(658,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">5 PM</text></g></svg>
+</div>
+
+[[!toc ]]
+Format: 15-min talk; Q&A: BigBlueButton conference room <https://media.emacsconf.org/2024/current/bbb-hyperbole.html>
+Discuss on IRC: [#emacsconf](https://chat.emacsconf.org/?join=emacsconf)
+Status: Quality check
+<div>Times in different time zones:</div><div class="times" start="2024-12-08T16:25:00Z" end="2024-12-08T16:40:00Z"><div class="conf-time">Sunday, Dec 8 2024, ~11:25 AM - 11:40 AM EST (US/Eastern)</div><div class="others"><div>which is the same as:</div>Sunday, Dec 8 2024, ~10:25 AM - 10:40 AM CST (US/Central)<br />Sunday, Dec 8 2024, ~9:25 AM - 9:40 AM MST (US/Mountain)<br />Sunday, Dec 8 2024, ~8:25 AM - 8:40 AM PST (US/Pacific)<br />Sunday, Dec 8 2024, ~4:25 PM - 4:40 PM UTC <br />Sunday, Dec 8 2024, ~5:25 PM - 5:40 PM CET (Europe/Paris)<br />Sunday, Dec 8 2024, ~6:25 PM - 6:40 PM EET (Europe/Athens)<br />Sunday, Dec 8 2024, ~9:55 PM - 10:10 PM IST (Asia/Kolkata)<br />Monday, Dec 9 2024, ~12:25 AM - 12:40 AM +08 (Asia/Singapore)<br />Monday, Dec 9 2024, ~1:25 AM - 1:40 AM JST (Asia/Tokyo)</div></div><div><strong><a href="/2024/watch/gen/">Find out how to watch and participate</a></strong></div>
diff --git a/2024/info/hyperbole-nav.md b/2024/info/hyperbole-nav.md
index 06d04c73..8dbc95a1 100644
--- a/2024/info/hyperbole-nav.md
+++ b/2024/info/hyperbole-nav.md
@@ -1,7 +1,7 @@
<div class="talk-nav">
Back to the [[talks]]
-Previous by track: <a href="/2024/talks/p-search">p-search: a local search engine in Emacs</a>
-Next by track: <a href="/2024/talks/hywiki">HyWiki: Fast, hyperlinked note-taking with no markup required</a>
-Track: <span class="sched-track General">General</span>
+Previous by time: <a href="/2024/talks/org-teach">org-teach: a minor mode for writing course materials in Emacs</a>
+Next by time: <a href="/2024/talks/hywiki">HyWiki: Fast, hyperlinked note-taking with no markup required</a>
+Track: <span class="sched-track General">General</span> - <strong><a href="https://emacsconf.org/2024/watch/gen">Watch</a></strong>
</div>
diff --git a/2024/info/hyperdrive-after.md b/2024/info/hyperdrive-after.md
index bdf58a40..43a8a696 100644
--- a/2024/info/hyperdrive-after.md
+++ b/2024/info/hyperdrive-after.md
@@ -3,8 +3,5 @@
Questions or comments? Please e-mail [contact@ushin.org](mailto:contact@ushin.org?subject=Comment%20for%20EmacsConf%202023%20hyperdrive%3A%20New%20in%20hyperdrive.el%3A%20org-transclusion%2C%20easy%20installation%2C%20and%20more%21)
-----
-Got an idea for an EmacsConf talk or session? We'd love to hear from you! Check out the [[Call for Participation|/2024/cfp]] for details.
-
<!-- End of emacsconf-publish-after-page -->
diff --git a/2024/info/hyperdrive-before.md b/2024/info/hyperdrive-before.md
index 7cb3e64d..7fba05dd 100644
--- a/2024/info/hyperdrive-before.md
+++ b/2024/info/hyperdrive-before.md
@@ -1,8 +1,14 @@
<!-- Automatically generated by emacsconf-publish-before-page -->
+
+The following image shows where the talk is in the schedule for Sat 2024-12-07. Solid lines show talks with Q&A via BigBlueButton. Dashed lines show talks with Q&A via IRC or Etherpad.<div class="schedule-in-context schedule-svg-container" data-slug="hyperdrive">
+<svg width="700" height="150" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><title>Schedule for Saturday</title><rect width="700" height="150" x="0" y="0" fill="white"></rect><text font-size="10" fill="black" y="12" x="3">Saturday</text><a href="/2024/talks/sat-open" title="Saturday opening remarks" data-slug="sat-open"><title> 9:00- 9:10 Saturday opening remarks</title><rect x="0" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(11,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sat-open</text></g></a><a href="/2024/talks/papers" title="Writing academic papers in Org-Roam" data-slug="papers"><title> 9:10- 9:20 Writing academic papers in Org-Roam</title><rect x="13" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(24,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">papers</text></g></a><a href="/2024/talks/project" title="Managing writing project metadata with org-mode" data-slug="project"><title> 9:40-10:00 Managing writing project metadata with org-mode</title><rect x="54" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(79,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">project</text></g></a><a href="/2024/talks/org-update" title="The Future of Org" data-slug="org-update"><title>10:20-10:40 The Future of Org</title><rect x="109" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(134,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">org-update</text></g></a><a href="/2024/talks/color" title="Colour your Emacs with ease" data-slug="color"><title>11:00-11:10 Colour your Emacs with ease</title><rect x="164" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(175,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">color</text></g></a><a href="/2024/talks/theme" title="My journey of finding and creating the “perfect” Emacs theme" data-slug="theme"><title> 1:00- 1:10 My journey of finding and creating the “perfect” Emacs theme</title><rect x="329" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(340,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">theme</text></g></a><a href="/2024/talks/water" title="Watering my (digital) plant with Emacs timers" data-slug="water"><title> 1:30- 1:45 Watering my (digital) plant with Emacs timers</title><rect x="370" y="15" opacity="0.5" width="20" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(388,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">water</text></g></a><a href="/2024/talks/shell" title="Emacs as a shell" data-slug="shell"><title> 1:55- 2:35 Emacs as a shell</title><rect x="404" y="15" opacity="0.5" width="54" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(456,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">shell</text></g></a><a href="/2024/talks/casual" title="Re-imagining the Emacs user experience with Casual Suite" data-slug="casual"><title> 2:45- 3:05 Re-imagining the Emacs user experience with Casual Suite</title><rect x="473" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(498,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">casual</text></g></a><a href="/2024/talks/hyperdrive" title="New in hyperdrive.el: org-transclusion, easy installation, and more!" data-slug="hyperdrive"><title> 3:25- 3:45 New in hyperdrive.el: org-transclusion, easy installation, and more!</title><rect stroke-width="3" x="528" y="15" opacity="0.8" width="27" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(553,73)"><text font-weight="bold" fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">hyperdrive</text></g></a><a href="/2024/talks/writing" title="Emacs Writing Studio" data-slug="writing"><title> 4:05- 4:15 Emacs Writing Studio</title><rect x="583" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(594,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">writing</text></g></a><a href="/2024/talks/emacs30" title="Emacs 30 Highlights" data-slug="emacs30"><title> 4:25- 4:50 Emacs 30 Highlights</title><rect x="610" y="15" opacity="0.5" width="34" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(642,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">emacs30</text></g></a><a href="/2024/talks/sat-close" title="Saturday closing remarks" data-slug="sat-close"><title> 5:00- 5:10 Saturday closing remarks</title><rect x="658" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(669,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sat-close</text></g></a><a href="/2024/talks/gypsum" title="Gypsum: my clone of Emacs and ELisp written in Scheme" data-slug="gypsum"><title>10:00-10:20 Gypsum: my clone of Emacs and ELisp written in Scheme</title><rect x="82" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(107,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">gypsum</text></g></a><a href="/2024/talks/rust" title="An experimental Emacs core in Rust" data-slug="rust"><title>10:40-11:00 An experimental Emacs core in Rust</title><rect x="137" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(162,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">rust</text></g></a><a href="/2024/talks/p-search" title="p-search: a local search engine in Emacs" data-slug="p-search"><title>11:20-11:45 p-search: a local search engine in Emacs</title><rect x="192" y="75" opacity="0.5" width="34" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(224,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">p-search</text></g></a><a href="/2024/talks/julia" title="Exploring shared philosophies in Julia and Emacs" data-slug="julia"><title> 1:00- 1:10 Exploring shared philosophies in Julia and Emacs</title><rect x="329" y="75" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(340,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">julia</text></g></a><a href="/2024/talks/guile" title="Beguiling Emacs: Guile-Emacs relaunched!" data-slug="guile"><title> 1:25- 1:45 Beguiling Emacs: Guile-Emacs relaunched!</title><rect x="363" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="5,5,5" fill="skyblue"></rect><g transform="translate(388,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">guile</text></g></a><a href="/2024/talks/secrets" title="Committing secrets with git using sops-mode" data-slug="secrets"><title> 1:55- 2:05 Committing secrets with git using sops-mode</title><rect x="404" y="75" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(415,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">secrets</text></g></a><a href="/2024/talks/mcclim" title="Elisp and McCLIM" data-slug="mcclim"><title> 2:25- 3:25 Elisp and McCLIM</title><rect x="446" y="75" opacity="0.5" width="82" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(526,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">mcclim</text></g></a><a href="/2024/talks/repro" title="Reproducibly building Emacs: “Hey your checksum is the same as mine!”" data-slug="repro"><title> 3:45- 4:05 Reproducibly building Emacs: “Hey your checksum is the same as mine!”</title><rect x="555" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(580,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">repro</text></g></a><g transform="translate(0,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">9 AM</text></g><g transform="translate(82,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">10 AM</text></g><g transform="translate(164,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">11 AM</text></g><g transform="translate(247,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">12 PM</text></g><g transform="translate(329,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">1 PM</text></g><g transform="translate(411,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">2 PM</text></g><g transform="translate(494,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">3 PM</text></g><g transform="translate(576,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">4 PM</text></g><g transform="translate(658,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">5 PM</text></g></svg>
+</div>
+
[[!toc ]]
-Format: 20-min talk; Q&A: BigBlueButton conference room
+Format: 20-min talk; Q&A: BigBlueButton conference room <https://media.emacsconf.org/2024/current/bbb-hyperdrive.html>
+Discuss on IRC: [#emacsconf](https://chat.emacsconf.org/?join=emacsconf)
Status: Waiting for video from speaker
-
+<div>Times in different time zones:</div><div class="times" start="2024-12-07T20:25:00Z" end="2024-12-07T20:45:00Z"><div class="conf-time">Saturday, Dec 7 2024, ~3:25 PM - 3:45 PM EST (US/Eastern)</div><div class="others"><div>which is the same as:</div>Saturday, Dec 7 2024, ~2:25 PM - 2:45 PM CST (US/Central)<br />Saturday, Dec 7 2024, ~1:25 PM - 1:45 PM MST (US/Mountain)<br />Saturday, Dec 7 2024, ~12:25 PM - 12:45 PM PST (US/Pacific)<br />Saturday, Dec 7 2024, ~8:25 PM - 8:45 PM UTC <br />Saturday, Dec 7 2024, ~9:25 PM - 9:45 PM CET (Europe/Paris)<br />Saturday, Dec 7 2024, ~10:25 PM - 10:45 PM EET (Europe/Athens)<br />Sunday, Dec 8 2024, ~1:55 AM - 2:15 AM IST (Asia/Kolkata)<br />Sunday, Dec 8 2024, ~4:25 AM - 4:45 AM +08 (Asia/Singapore)<br />Sunday, Dec 8 2024, ~5:25 AM - 5:45 AM JST (Asia/Tokyo)</div></div><div><strong><a href="/2024/watch/gen/">Find out how to watch and participate</a></strong></div>
diff --git a/2024/info/hyperdrive-nav.md b/2024/info/hyperdrive-nav.md
index c12ea720..8eceed72 100644
--- a/2024/info/hyperdrive-nav.md
+++ b/2024/info/hyperdrive-nav.md
@@ -1,7 +1,7 @@
<div class="talk-nav">
Back to the [[talks]]
-Previous by track: <a href="/2024/talks/language">Immersive language learning with Emacs</a>
-Next by track: <a href="/2024/talks/color">Colour your Emacs with ease</a>
-Track: <span class="sched-track General">General</span>
+Previous by time: <a href="/2024/talks/casual">Re-imagining the Emacs user experience with Casual Suite</a>
+Next by time: <a href="/2024/talks/repro">Reproducibly building Emacs: “Hey your checksum is the same as mine!”</a>
+Track: <span class="sched-track General">General</span> - <strong><a href="https://emacsconf.org/2024/watch/gen">Watch</a></strong>
</div>
diff --git a/2024/info/hywiki-after.md b/2024/info/hywiki-after.md
index ad9f3653..57a51aa4 100644
--- a/2024/info/hywiki-after.md
+++ b/2024/info/hywiki-after.md
@@ -3,8 +3,5 @@
Questions or comments? Please e-mail [rsw@gnu.com](mailto:rsw@gnu.com?subject=Comment%20for%20EmacsConf%202023%20hywiki%3A%20HyWiki%3A%20Fast%2C%20hyperlinked%20note-taking%20with%20no%20markup%20required)
-----
-Got an idea for an EmacsConf talk or session? We'd love to hear from you! Check out the [[Call for Participation|/2024/cfp]] for details.
-
<!-- End of emacsconf-publish-after-page -->
diff --git a/2024/info/hywiki-before.md b/2024/info/hywiki-before.md
index 7cb3e64d..3b6de944 100644
--- a/2024/info/hywiki-before.md
+++ b/2024/info/hywiki-before.md
@@ -1,8 +1,14 @@
<!-- Automatically generated by emacsconf-publish-before-page -->
+
+The following image shows where the talk is in the schedule for Sun 2024-12-08. Solid lines show talks with Q&A via BigBlueButton. Dashed lines show talks with Q&A via IRC or Etherpad.<div class="schedule-in-context schedule-svg-container" data-slug="hywiki">
+<svg width="700" height="150" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><title>Schedule for Sunday</title><rect width="700" height="150" x="0" y="0" fill="white"></rect><text font-size="10" fill="black" y="12" x="3">Sunday</text><a href="/2024/talks/sun-open" title="Sunday opening remarks" data-slug="sun-open"><title> 9:00- 9:10 Sunday opening remarks</title><rect x="0" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(11,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sun-open</text></g></a><a href="/2024/talks/links" title="Unlocking linked data: replacing specialized apps with an Org-based semantic wiki" data-slug="links"><title> 9:10- 9:20 Unlocking linked data: replacing specialized apps with an Org-based semantic wiki</title><rect x="13" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(24,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">links</text></g></a><a href="/2024/talks/regex" title="Emacs regex compilation and future directions for expressive pattern matching" data-slug="regex"><title> 9:30- 9:50 Emacs regex compilation and future directions for expressive pattern matching</title><rect x="41" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(66,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">regex</text></g></a><a href="/2024/talks/learning" title="Survival of the skillest: Thriving in the learning jungle" data-slug="learning"><title>10:00-10:20 Survival of the skillest: Thriving in the learning jungle</title><rect x="82" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(107,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">learning</text></g></a><a href="/2024/talks/language" title="Immersive language learning with Emacs" data-slug="language"><title>10:30-10:40 Immersive language learning with Emacs</title><rect x="123" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(134,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">language</text></g></a><a href="/2024/talks/org-teach" title="org-teach: a minor mode for writing course materials in Emacs" data-slug="org-teach"><title>10:50-11:10 org-teach: a minor mode for writing course materials in Emacs</title><rect x="150" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(175,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">org-teach</text></g></a><a href="/2024/talks/hyperbole" title="Fun things with GNU Hyperbole" data-slug="hyperbole"><title>11:25-11:40 Fun things with GNU Hyperbole</title><rect x="199" y="15" opacity="0.5" width="20" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(217,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">hyperbole</text></g></a><a href="/2024/talks/hywiki" title="HyWiki: Fast, hyperlinked note-taking with no markup required" data-slug="hywiki"><title> 1:00- 1:20 HyWiki: Fast, hyperlinked note-taking with no markup required</title><rect stroke-width="3" x="329" y="15" opacity="0.8" width="27" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(354,73)"><text font-weight="bold" fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">hywiki</text></g></a><a href="/2024/talks/pgmacs" title="PGmacs: browsing and editing PostgreSQL databases from Emacs" data-slug="pgmacs"><title> 1:35- 1:50 PGmacs: browsing and editing PostgreSQL databases from Emacs</title><rect x="377" y="15" opacity="0.5" width="20" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(395,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">pgmacs</text></g></a><a href="/2024/talks/blee" title="About Blee: enveloping our own autonomy directed digital ecosystem with Emacs" data-slug="blee"><title> 2:05- 2:45 About Blee: enveloping our own autonomy directed digital ecosystem with Emacs</title><rect x="418" y="15" opacity="0.5" width="54" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(470,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">blee</text></g></a><a href="/2024/talks/literate" title="Literate programming for the 21st Century" data-slug="literate"><title> 2:55- 3:15 Literate programming for the 21st Century</title><rect x="487" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(512,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">literate</text></g></a><a href="/2024/talks/students" title="An example of a cohesive student workflow in Emacs" data-slug="students"><title> 3:30- 3:40 An example of a cohesive student workflow in Emacs</title><rect x="535" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(546,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">students</text></g></a><a href="/2024/talks/sharing" title="So you want to be an Emacs-fluencer?" data-slug="sharing"><title> 3:50- 4:10 So you want to be an Emacs-fluencer?</title><rect x="562" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(587,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sharing</text></g></a><a href="/2024/talks/transducers" title="Transducers: finally, ergonomic data processing for Emacs!" data-slug="transducers"><title> 4:20- 4:50 Transducers: finally, ergonomic data processing for Emacs!</title><rect x="603" y="15" opacity="0.5" width="41" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(642,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">transducers</text></g></a><a href="/2024/talks/sun-close" title="Sunday closing remarks" data-slug="sun-close"><title> 5:00- 5:10 Sunday closing remarks</title><rect x="658" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(669,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sun-close</text></g></a><g transform="translate(0,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">9 AM</text></g><g transform="translate(82,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">10 AM</text></g><g transform="translate(164,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">11 AM</text></g><g transform="translate(247,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">12 PM</text></g><g transform="translate(329,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">1 PM</text></g><g transform="translate(411,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">2 PM</text></g><g transform="translate(494,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">3 PM</text></g><g transform="translate(576,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">4 PM</text></g><g transform="translate(658,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">5 PM</text></g></svg>
+</div>
+
[[!toc ]]
-Format: 20-min talk; Q&A: BigBlueButton conference room
+Format: 20-min talk; Q&A: BigBlueButton conference room <https://media.emacsconf.org/2024/current/bbb-hywiki.html>
+Discuss on IRC: [#emacsconf](https://chat.emacsconf.org/?join=emacsconf)
Status: Waiting for video from speaker
-
+<div>Times in different time zones:</div><div class="times" start="2024-12-08T18:00:00Z" end="2024-12-08T18:20:00Z"><div class="conf-time">Sunday, Dec 8 2024, ~1:00 PM - 1:20 PM EST (US/Eastern)</div><div class="others"><div>which is the same as:</div>Sunday, Dec 8 2024, ~12:00 PM - 12:20 PM CST (US/Central)<br />Sunday, Dec 8 2024, ~11:00 AM - 11:20 AM MST (US/Mountain)<br />Sunday, Dec 8 2024, ~10:00 AM - 10:20 AM PST (US/Pacific)<br />Sunday, Dec 8 2024, ~6:00 PM - 6:20 PM UTC <br />Sunday, Dec 8 2024, ~7:00 PM - 7:20 PM CET (Europe/Paris)<br />Sunday, Dec 8 2024, ~8:00 PM - 8:20 PM EET (Europe/Athens)<br />Sunday, Dec 8 2024, ~11:30 PM - 11:50 PM IST (Asia/Kolkata)<br />Monday, Dec 9 2024, ~2:00 AM - 2:20 AM +08 (Asia/Singapore)<br />Monday, Dec 9 2024, ~3:00 AM - 3:20 AM JST (Asia/Tokyo)</div></div><div><strong><a href="/2024/watch/gen/">Find out how to watch and participate</a></strong></div>
diff --git a/2024/info/hywiki-nav.md b/2024/info/hywiki-nav.md
index b66f2c50..a34fc554 100644
--- a/2024/info/hywiki-nav.md
+++ b/2024/info/hywiki-nav.md
@@ -1,7 +1,7 @@
<div class="talk-nav">
Back to the [[talks]]
-Previous by track: <a href="/2024/talks/hyperbole">Fun things with GNU Hyperbole</a>
-Next by track: <a href="/2024/talks/project">Managing writing project metadata with org-mode</a>
-Track: <span class="sched-track General">General</span>
+Previous by time: <a href="/2024/talks/hyperbole">Fun things with GNU Hyperbole</a>
+Next by time: <a href="/2024/talks/pgmacs">PGmacs: browsing and editing PostgreSQL databases from Emacs</a>
+Track: <span class="sched-track General">General</span> - <strong><a href="https://emacsconf.org/2024/watch/gen">Watch</a></strong>
</div>
diff --git a/2024/info/julia-after.md b/2024/info/julia-after.md
index c22841e5..7a3e5008 100644
--- a/2024/info/julia-after.md
+++ b/2024/info/julia-after.md
@@ -3,8 +3,5 @@
Questions or comments? Please e-mail [emacsconf-org-private@gnu.org](mailto:emacsconf-org-private@gnu.org?subject=Comment%20for%20EmacsConf%202023%20julia%3A%20Exploring%20shared%20philosophies%20in%20Julia%20and%20Emacs)
-----
-Got an idea for an EmacsConf talk or session? We'd love to hear from you! Check out the [[Call for Participation|/2024/cfp]] for details.
-
<!-- End of emacsconf-publish-after-page -->
diff --git a/2024/info/julia-before.md b/2024/info/julia-before.md
index 719c2039..b65900b9 100644
--- a/2024/info/julia-before.md
+++ b/2024/info/julia-before.md
@@ -1,8 +1,14 @@
<!-- Automatically generated by emacsconf-publish-before-page -->
-[[!toc ]]
-Format: 5-min talk; Q&A: BigBlueButton conference room
-Status: Waiting for video from speaker
+The following image shows where the talk is in the schedule for Sat 2024-12-07. Solid lines show talks with Q&A via BigBlueButton. Dashed lines show talks with Q&A via IRC or Etherpad.<div class="schedule-in-context schedule-svg-container" data-slug="julia">
+<svg width="700" height="150" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><title>Schedule for Saturday</title><rect width="700" height="150" x="0" y="0" fill="white"></rect><text font-size="10" fill="black" y="12" x="3">Saturday</text><a href="/2024/talks/sat-open" title="Saturday opening remarks" data-slug="sat-open"><title> 9:00- 9:10 Saturday opening remarks</title><rect x="0" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(11,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sat-open</text></g></a><a href="/2024/talks/papers" title="Writing academic papers in Org-Roam" data-slug="papers"><title> 9:10- 9:20 Writing academic papers in Org-Roam</title><rect x="13" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(24,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">papers</text></g></a><a href="/2024/talks/project" title="Managing writing project metadata with org-mode" data-slug="project"><title> 9:40-10:00 Managing writing project metadata with org-mode</title><rect x="54" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(79,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">project</text></g></a><a href="/2024/talks/org-update" title="The Future of Org" data-slug="org-update"><title>10:20-10:40 The Future of Org</title><rect x="109" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(134,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">org-update</text></g></a><a href="/2024/talks/color" title="Colour your Emacs with ease" data-slug="color"><title>11:00-11:10 Colour your Emacs with ease</title><rect x="164" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(175,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">color</text></g></a><a href="/2024/talks/theme" title="My journey of finding and creating the “perfect” Emacs theme" data-slug="theme"><title> 1:00- 1:10 My journey of finding and creating the “perfect” Emacs theme</title><rect x="329" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(340,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">theme</text></g></a><a href="/2024/talks/water" title="Watering my (digital) plant with Emacs timers" data-slug="water"><title> 1:30- 1:45 Watering my (digital) plant with Emacs timers</title><rect x="370" y="15" opacity="0.5" width="20" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(388,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">water</text></g></a><a href="/2024/talks/shell" title="Emacs as a shell" data-slug="shell"><title> 1:55- 2:35 Emacs as a shell</title><rect x="404" y="15" opacity="0.5" width="54" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(456,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">shell</text></g></a><a href="/2024/talks/casual" title="Re-imagining the Emacs user experience with Casual Suite" data-slug="casual"><title> 2:45- 3:05 Re-imagining the Emacs user experience with Casual Suite</title><rect x="473" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(498,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">casual</text></g></a><a href="/2024/talks/hyperdrive" title="New in hyperdrive.el: org-transclusion, easy installation, and more!" data-slug="hyperdrive"><title> 3:25- 3:45 New in hyperdrive.el: org-transclusion, easy installation, and more!</title><rect x="528" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(553,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">hyperdrive</text></g></a><a href="/2024/talks/writing" title="Emacs Writing Studio" data-slug="writing"><title> 4:05- 4:15 Emacs Writing Studio</title><rect x="583" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(594,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">writing</text></g></a><a href="/2024/talks/emacs30" title="Emacs 30 Highlights" data-slug="emacs30"><title> 4:25- 4:50 Emacs 30 Highlights</title><rect x="610" y="15" opacity="0.5" width="34" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(642,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">emacs30</text></g></a><a href="/2024/talks/sat-close" title="Saturday closing remarks" data-slug="sat-close"><title> 5:00- 5:10 Saturday closing remarks</title><rect x="658" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(669,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sat-close</text></g></a><a href="/2024/talks/gypsum" title="Gypsum: my clone of Emacs and ELisp written in Scheme" data-slug="gypsum"><title>10:00-10:20 Gypsum: my clone of Emacs and ELisp written in Scheme</title><rect x="82" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(107,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">gypsum</text></g></a><a href="/2024/talks/rust" title="An experimental Emacs core in Rust" data-slug="rust"><title>10:40-11:00 An experimental Emacs core in Rust</title><rect x="137" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(162,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">rust</text></g></a><a href="/2024/talks/p-search" title="p-search: a local search engine in Emacs" data-slug="p-search"><title>11:20-11:45 p-search: a local search engine in Emacs</title><rect x="192" y="75" opacity="0.5" width="34" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(224,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">p-search</text></g></a><a href="/2024/talks/julia" title="Exploring shared philosophies in Julia and Emacs" data-slug="julia"><title> 1:00- 1:10 Exploring shared philosophies in Julia and Emacs</title><rect stroke-width="3" x="329" y="75" opacity="0.8" width="13" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(340,133)"><text font-weight="bold" fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">julia</text></g></a><a href="/2024/talks/guile" title="Beguiling Emacs: Guile-Emacs relaunched!" data-slug="guile"><title> 1:25- 1:45 Beguiling Emacs: Guile-Emacs relaunched!</title><rect x="363" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="5,5,5" fill="skyblue"></rect><g transform="translate(388,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">guile</text></g></a><a href="/2024/talks/secrets" title="Committing secrets with git using sops-mode" data-slug="secrets"><title> 1:55- 2:05 Committing secrets with git using sops-mode</title><rect x="404" y="75" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(415,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">secrets</text></g></a><a href="/2024/talks/mcclim" title="Elisp and McCLIM" data-slug="mcclim"><title> 2:25- 3:25 Elisp and McCLIM</title><rect x="446" y="75" opacity="0.5" width="82" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(526,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">mcclim</text></g></a><a href="/2024/talks/repro" title="Reproducibly building Emacs: “Hey your checksum is the same as mine!”" data-slug="repro"><title> 3:45- 4:05 Reproducibly building Emacs: “Hey your checksum is the same as mine!”</title><rect x="555" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(580,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">repro</text></g></a><g transform="translate(0,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">9 AM</text></g><g transform="translate(82,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">10 AM</text></g><g transform="translate(164,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">11 AM</text></g><g transform="translate(247,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">12 PM</text></g><g transform="translate(329,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">1 PM</text></g><g transform="translate(411,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">2 PM</text></g><g transform="translate(494,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">3 PM</text></g><g transform="translate(576,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">4 PM</text></g><g transform="translate(658,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">5 PM</text></g></svg>
+</div>
+
+[[!toc ]]
+Format: 10-min talk; Q&A: BigBlueButton conference room <https://media.emacsconf.org/2024/current/bbb-julia.html>
+Discuss on IRC: [#emacsconf](https://chat.emacsconf.org/?join=emacsconf)
+Status: Ready to stream
+<div>Times in different time zones:</div><div class="times" start="2024-12-07T18:00:00Z" end="2024-12-07T18:10:00Z"><div class="conf-time">Saturday, Dec 7 2024, ~1:00 PM - 1:10 PM EST (US/Eastern)</div><div class="others"><div>which is the same as:</div>Saturday, Dec 7 2024, ~12:00 PM - 12:10 PM CST (US/Central)<br />Saturday, Dec 7 2024, ~11:00 AM - 11:10 AM MST (US/Mountain)<br />Saturday, Dec 7 2024, ~10:00 AM - 10:10 AM PST (US/Pacific)<br />Saturday, Dec 7 2024, ~6:00 PM - 6:10 PM UTC <br />Saturday, Dec 7 2024, ~7:00 PM - 7:10 PM CET (Europe/Paris)<br />Saturday, Dec 7 2024, ~8:00 PM - 8:10 PM EET (Europe/Athens)<br />Saturday, Dec 7 2024, ~11:30 PM - 11:40 PM IST (Asia/Kolkata)<br />Sunday, Dec 8 2024, ~2:00 AM - 2:10 AM +08 (Asia/Singapore)<br />Sunday, Dec 8 2024, ~3:00 AM - 3:10 AM JST (Asia/Tokyo)</div></div><div><strong><a href="/2024/watch/dev/">Find out how to watch and participate</a></strong></div>
diff --git a/2024/info/julia-nav.md b/2024/info/julia-nav.md
index 53274a6f..550340d5 100644
--- a/2024/info/julia-nav.md
+++ b/2024/info/julia-nav.md
@@ -1,7 +1,7 @@
<div class="talk-nav">
Back to the [[talks]]
-Previous by track: <a href="/2024/talks/graph">Graph mode: a major mode to create, edit and display discrete element graphs</a>
-Next by track: <a href="/2024/talks/guile">Beguiling Emacs: Guile-Emacs relaunched!</a>
-Track: <span class="sched-track Development">Development</span>
+Previous by time: <a href="/2024/talks/p-search">p-search: a local search engine in Emacs</a>
+Next by time: <a href="/2024/talks/theme">My journey of finding and creating the “perfect” Emacs theme</a>
+Track: <span class="sched-track Development">Development</span> - <strong><a href="https://emacsconf.org/2024/watch/dev">Watch</a></strong>
</div>
diff --git a/2024/info/language-after.md b/2024/info/language-after.md
index 5e40221f..dacd8db3 100644
--- a/2024/info/language-after.md
+++ b/2024/info/language-after.md
@@ -3,8 +3,5 @@
Questions or comments? Please e-mail [code@sam-d.com](mailto:code@sam-d.com?subject=Comment%20for%20EmacsConf%202023%20language%3A%20Immersive%20language%20learning%20with%20Emacs)
-----
-Got an idea for an EmacsConf talk or session? We'd love to hear from you! Check out the [[Call for Participation|/2024/cfp]] for details.
-
<!-- End of emacsconf-publish-after-page -->
diff --git a/2024/info/language-before.md b/2024/info/language-before.md
index 576aea46..942ad064 100644
--- a/2024/info/language-before.md
+++ b/2024/info/language-before.md
@@ -1,8 +1,14 @@
<!-- Automatically generated by emacsconf-publish-before-page -->
+
+The following image shows where the talk is in the schedule for Sun 2024-12-08. Solid lines show talks with Q&A via BigBlueButton. Dashed lines show talks with Q&A via IRC or Etherpad.<div class="schedule-in-context schedule-svg-container" data-slug="language">
+<svg width="700" height="150" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><title>Schedule for Sunday</title><rect width="700" height="150" x="0" y="0" fill="white"></rect><text font-size="10" fill="black" y="12" x="3">Sunday</text><a href="/2024/talks/sun-open" title="Sunday opening remarks" data-slug="sun-open"><title> 9:00- 9:10 Sunday opening remarks</title><rect x="0" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(11,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sun-open</text></g></a><a href="/2024/talks/links" title="Unlocking linked data: replacing specialized apps with an Org-based semantic wiki" data-slug="links"><title> 9:10- 9:20 Unlocking linked data: replacing specialized apps with an Org-based semantic wiki</title><rect x="13" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(24,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">links</text></g></a><a href="/2024/talks/regex" title="Emacs regex compilation and future directions for expressive pattern matching" data-slug="regex"><title> 9:30- 9:50 Emacs regex compilation and future directions for expressive pattern matching</title><rect x="41" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(66,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">regex</text></g></a><a href="/2024/talks/learning" title="Survival of the skillest: Thriving in the learning jungle" data-slug="learning"><title>10:00-10:20 Survival of the skillest: Thriving in the learning jungle</title><rect x="82" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(107,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">learning</text></g></a><a href="/2024/talks/language" title="Immersive language learning with Emacs" data-slug="language"><title>10:30-10:40 Immersive language learning with Emacs</title><rect stroke-width="3" x="123" y="15" opacity="0.8" width="13" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(134,73)"><text font-weight="bold" fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">language</text></g></a><a href="/2024/talks/org-teach" title="org-teach: a minor mode for writing course materials in Emacs" data-slug="org-teach"><title>10:50-11:10 org-teach: a minor mode for writing course materials in Emacs</title><rect x="150" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(175,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">org-teach</text></g></a><a href="/2024/talks/hyperbole" title="Fun things with GNU Hyperbole" data-slug="hyperbole"><title>11:25-11:40 Fun things with GNU Hyperbole</title><rect x="199" y="15" opacity="0.5" width="20" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(217,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">hyperbole</text></g></a><a href="/2024/talks/hywiki" title="HyWiki: Fast, hyperlinked note-taking with no markup required" data-slug="hywiki"><title> 1:00- 1:20 HyWiki: Fast, hyperlinked note-taking with no markup required</title><rect x="329" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(354,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">hywiki</text></g></a><a href="/2024/talks/pgmacs" title="PGmacs: browsing and editing PostgreSQL databases from Emacs" data-slug="pgmacs"><title> 1:35- 1:50 PGmacs: browsing and editing PostgreSQL databases from Emacs</title><rect x="377" y="15" opacity="0.5" width="20" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(395,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">pgmacs</text></g></a><a href="/2024/talks/blee" title="About Blee: enveloping our own autonomy directed digital ecosystem with Emacs" data-slug="blee"><title> 2:05- 2:45 About Blee: enveloping our own autonomy directed digital ecosystem with Emacs</title><rect x="418" y="15" opacity="0.5" width="54" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(470,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">blee</text></g></a><a href="/2024/talks/literate" title="Literate programming for the 21st Century" data-slug="literate"><title> 2:55- 3:15 Literate programming for the 21st Century</title><rect x="487" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(512,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">literate</text></g></a><a href="/2024/talks/students" title="An example of a cohesive student workflow in Emacs" data-slug="students"><title> 3:30- 3:40 An example of a cohesive student workflow in Emacs</title><rect x="535" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(546,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">students</text></g></a><a href="/2024/talks/sharing" title="So you want to be an Emacs-fluencer?" data-slug="sharing"><title> 3:50- 4:10 So you want to be an Emacs-fluencer?</title><rect x="562" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(587,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sharing</text></g></a><a href="/2024/talks/transducers" title="Transducers: finally, ergonomic data processing for Emacs!" data-slug="transducers"><title> 4:20- 4:50 Transducers: finally, ergonomic data processing for Emacs!</title><rect x="603" y="15" opacity="0.5" width="41" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(642,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">transducers</text></g></a><a href="/2024/talks/sun-close" title="Sunday closing remarks" data-slug="sun-close"><title> 5:00- 5:10 Sunday closing remarks</title><rect x="658" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(669,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sun-close</text></g></a><g transform="translate(0,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">9 AM</text></g><g transform="translate(82,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">10 AM</text></g><g transform="translate(164,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">11 AM</text></g><g transform="translate(247,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">12 PM</text></g><g transform="translate(329,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">1 PM</text></g><g transform="translate(411,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">2 PM</text></g><g transform="translate(494,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">3 PM</text></g><g transform="translate(576,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">4 PM</text></g><g transform="translate(658,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">5 PM</text></g></svg>
+</div>
+
[[!toc ]]
-Format: 10-min talk; Q&A: Etherpad
+Format: 10-min talk; Q&A: Etherpad <https://pad.emacsconf.org/2024-language>
+Discuss on IRC: [#emacsconf](https://chat.emacsconf.org/?join=emacsconf)
Status: Waiting for video from speaker
-
+<div>Times in different time zones:</div><div class="times" start="2024-12-08T15:30:00Z" end="2024-12-08T15:40:00Z"><div class="conf-time">Sunday, Dec 8 2024, ~10:30 AM - 10:40 AM EST (US/Eastern)</div><div class="others"><div>which is the same as:</div>Sunday, Dec 8 2024, ~9:30 AM - 9:40 AM CST (US/Central)<br />Sunday, Dec 8 2024, ~8:30 AM - 8:40 AM MST (US/Mountain)<br />Sunday, Dec 8 2024, ~7:30 AM - 7:40 AM PST (US/Pacific)<br />Sunday, Dec 8 2024, ~3:30 PM - 3:40 PM UTC <br />Sunday, Dec 8 2024, ~4:30 PM - 4:40 PM CET (Europe/Paris)<br />Sunday, Dec 8 2024, ~5:30 PM - 5:40 PM EET (Europe/Athens)<br />Sunday, Dec 8 2024, ~9:00 PM - 9:10 PM IST (Asia/Kolkata)<br />Sunday, Dec 8 2024, ~11:30 PM - 11:40 PM +08 (Asia/Singapore)<br />Monday, Dec 9 2024, ~12:30 AM - 12:40 AM JST (Asia/Tokyo)</div></div><div><strong><a href="/2024/watch/gen/">Find out how to watch and participate</a></strong></div>
diff --git a/2024/info/language-nav.md b/2024/info/language-nav.md
index 2dc74196..d08615b2 100644
--- a/2024/info/language-nav.md
+++ b/2024/info/language-nav.md
@@ -1,7 +1,7 @@
<div class="talk-nav">
Back to the [[talks]]
-Previous by track: <a href="/2024/talks/org-teach">org-teach: a minor mode for writing course materials in Emacs</a>
-Next by track: <a href="/2024/talks/hyperdrive">New in hyperdrive.el: org-transclusion, easy installation, and more!</a>
-Track: <span class="sched-track General">General</span>
+Previous by time: <a href="/2024/talks/learning">Survival of the skillest: Thriving in the learning jungle</a>
+Next by time: <a href="/2024/talks/org-teach">org-teach: a minor mode for writing course materials in Emacs</a>
+Track: <span class="sched-track General">General</span> - <strong><a href="https://emacsconf.org/2024/watch/gen">Watch</a></strong>
</div>
diff --git a/2024/info/learning-after.md b/2024/info/learning-after.md
index 2c677bf3..cc330e4f 100644
--- a/2024/info/learning-after.md
+++ b/2024/info/learning-after.md
@@ -3,8 +3,5 @@
Questions or comments? Please e-mail [emacsconf-org-private@gnu.org](mailto:emacsconf-org-private@gnu.org?subject=Comment%20for%20EmacsConf%202023%20learning%3A%20Survival%20of%20the%20skillest%3A%20Thriving%20in%20the%20learning%20jungle)
-----
-Got an idea for an EmacsConf talk or session? We'd love to hear from you! Check out the [[Call for Participation|/2024/cfp]] for details.
-
<!-- End of emacsconf-publish-after-page -->
diff --git a/2024/info/learning-before.md b/2024/info/learning-before.md
index 9939a45b..851e3a8e 100644
--- a/2024/info/learning-before.md
+++ b/2024/info/learning-before.md
@@ -1,8 +1,14 @@
<!-- Automatically generated by emacsconf-publish-before-page -->
-[[!toc ]]
-Format: 20-min talk; Q&A: Etherpad
-Status: Waiting for video from speaker
+The following image shows where the talk is in the schedule for Sun 2024-12-08. Solid lines show talks with Q&A via BigBlueButton. Dashed lines show talks with Q&A via IRC or Etherpad.<div class="schedule-in-context schedule-svg-container" data-slug="learning">
+<svg width="700" height="150" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><title>Schedule for Sunday</title><rect width="700" height="150" x="0" y="0" fill="white"></rect><text font-size="10" fill="black" y="12" x="3">Sunday</text><a href="/2024/talks/sun-open" title="Sunday opening remarks" data-slug="sun-open"><title> 9:00- 9:10 Sunday opening remarks</title><rect x="0" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(11,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sun-open</text></g></a><a href="/2024/talks/links" title="Unlocking linked data: replacing specialized apps with an Org-based semantic wiki" data-slug="links"><title> 9:10- 9:20 Unlocking linked data: replacing specialized apps with an Org-based semantic wiki</title><rect x="13" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(24,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">links</text></g></a><a href="/2024/talks/regex" title="Emacs regex compilation and future directions for expressive pattern matching" data-slug="regex"><title> 9:30- 9:50 Emacs regex compilation and future directions for expressive pattern matching</title><rect x="41" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(66,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">regex</text></g></a><a href="/2024/talks/learning" title="Survival of the skillest: Thriving in the learning jungle" data-slug="learning"><title>10:00-10:20 Survival of the skillest: Thriving in the learning jungle</title><rect stroke-width="3" x="82" y="15" opacity="0.8" width="27" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(107,73)"><text font-weight="bold" fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">learning</text></g></a><a href="/2024/talks/language" title="Immersive language learning with Emacs" data-slug="language"><title>10:30-10:40 Immersive language learning with Emacs</title><rect x="123" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(134,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">language</text></g></a><a href="/2024/talks/org-teach" title="org-teach: a minor mode for writing course materials in Emacs" data-slug="org-teach"><title>10:50-11:10 org-teach: a minor mode for writing course materials in Emacs</title><rect x="150" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(175,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">org-teach</text></g></a><a href="/2024/talks/hyperbole" title="Fun things with GNU Hyperbole" data-slug="hyperbole"><title>11:25-11:40 Fun things with GNU Hyperbole</title><rect x="199" y="15" opacity="0.5" width="20" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(217,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">hyperbole</text></g></a><a href="/2024/talks/hywiki" title="HyWiki: Fast, hyperlinked note-taking with no markup required" data-slug="hywiki"><title> 1:00- 1:20 HyWiki: Fast, hyperlinked note-taking with no markup required</title><rect x="329" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(354,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">hywiki</text></g></a><a href="/2024/talks/pgmacs" title="PGmacs: browsing and editing PostgreSQL databases from Emacs" data-slug="pgmacs"><title> 1:35- 1:50 PGmacs: browsing and editing PostgreSQL databases from Emacs</title><rect x="377" y="15" opacity="0.5" width="20" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(395,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">pgmacs</text></g></a><a href="/2024/talks/blee" title="About Blee: enveloping our own autonomy directed digital ecosystem with Emacs" data-slug="blee"><title> 2:05- 2:45 About Blee: enveloping our own autonomy directed digital ecosystem with Emacs</title><rect x="418" y="15" opacity="0.5" width="54" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(470,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">blee</text></g></a><a href="/2024/talks/literate" title="Literate programming for the 21st Century" data-slug="literate"><title> 2:55- 3:15 Literate programming for the 21st Century</title><rect x="487" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(512,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">literate</text></g></a><a href="/2024/talks/students" title="An example of a cohesive student workflow in Emacs" data-slug="students"><title> 3:30- 3:40 An example of a cohesive student workflow in Emacs</title><rect x="535" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(546,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">students</text></g></a><a href="/2024/talks/sharing" title="So you want to be an Emacs-fluencer?" data-slug="sharing"><title> 3:50- 4:10 So you want to be an Emacs-fluencer?</title><rect x="562" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(587,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sharing</text></g></a><a href="/2024/talks/transducers" title="Transducers: finally, ergonomic data processing for Emacs!" data-slug="transducers"><title> 4:20- 4:50 Transducers: finally, ergonomic data processing for Emacs!</title><rect x="603" y="15" opacity="0.5" width="41" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(642,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">transducers</text></g></a><a href="/2024/talks/sun-close" title="Sunday closing remarks" data-slug="sun-close"><title> 5:00- 5:10 Sunday closing remarks</title><rect x="658" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(669,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sun-close</text></g></a><g transform="translate(0,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">9 AM</text></g><g transform="translate(82,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">10 AM</text></g><g transform="translate(164,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">11 AM</text></g><g transform="translate(247,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">12 PM</text></g><g transform="translate(329,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">1 PM</text></g><g transform="translate(411,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">2 PM</text></g><g transform="translate(494,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">3 PM</text></g><g transform="translate(576,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">4 PM</text></g><g transform="translate(658,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">5 PM</text></g></svg>
+</div>
+
+[[!toc ]]
+Format: 20-min talk; Q&A: Etherpad <https://pad.emacsconf.org/2024-learning>
+Discuss on IRC: [#emacsconf](https://chat.emacsconf.org/?join=emacsconf)
+Status: Quality check
+<div>Times in different time zones:</div><div class="times" start="2024-12-08T15:00:00Z" end="2024-12-08T15:20:00Z"><div class="conf-time">Sunday, Dec 8 2024, ~10:00 AM - 10:20 AM EST (US/Eastern)</div><div class="others"><div>which is the same as:</div>Sunday, Dec 8 2024, ~9:00 AM - 9:20 AM CST (US/Central)<br />Sunday, Dec 8 2024, ~8:00 AM - 8:20 AM MST (US/Mountain)<br />Sunday, Dec 8 2024, ~7:00 AM - 7:20 AM PST (US/Pacific)<br />Sunday, Dec 8 2024, ~3:00 PM - 3:20 PM UTC <br />Sunday, Dec 8 2024, ~4:00 PM - 4:20 PM CET (Europe/Paris)<br />Sunday, Dec 8 2024, ~5:00 PM - 5:20 PM EET (Europe/Athens)<br />Sunday, Dec 8 2024, ~8:30 PM - 8:50 PM IST (Asia/Kolkata)<br />Sunday, Dec 8 2024, ~11:00 PM - 11:20 PM +08 (Asia/Singapore)<br />Monday, Dec 9 2024, ~12:00 AM - 12:20 AM JST (Asia/Tokyo)</div></div><div><strong><a href="/2024/watch/gen/">Find out how to watch and participate</a></strong></div>
diff --git a/2024/info/learning-nav.md b/2024/info/learning-nav.md
index 79bcbeb7..591e8f0e 100644
--- a/2024/info/learning-nav.md
+++ b/2024/info/learning-nav.md
@@ -1,7 +1,7 @@
<div class="talk-nav">
Back to the [[talks]]
-Previous by track: <a href="/2024/talks/casual">Re-imagining the Emacs user experience with Casual Suite</a>
-Next by track: <a href="/2024/talks/sharing">So you want to be an Emacs-fluencer?</a>
-Track: <span class="sched-track General">General</span>
+Previous by time: <a href="/2024/talks/regex">Emacs regex compilation and future directions for expressive pattern matching</a>
+Next by time: <a href="/2024/talks/language">Immersive language learning with Emacs</a>
+Track: <span class="sched-track General">General</span> - <strong><a href="https://emacsconf.org/2024/watch/gen">Watch</a></strong>
</div>
diff --git a/2024/info/links-after.md b/2024/info/links-after.md
index 6b62c57d..e6649061 100644
--- a/2024/info/links-after.md
+++ b/2024/info/links-after.md
@@ -3,8 +3,5 @@
Questions or comments? Please e-mail [emacsconf-org-private@gnu.org](mailto:emacsconf-org-private@gnu.org?subject=Comment%20for%20EmacsConf%202023%20links%3A%20Unlocking%20linked%20data%3A%20replacing%20specialized%20apps%20with%20an%20Org-based%20semantic%20wiki)
-----
-Got an idea for an EmacsConf talk or session? We'd love to hear from you! Check out the [[Call for Participation|/2024/cfp]] for details.
-
<!-- End of emacsconf-publish-after-page -->
diff --git a/2024/info/links-before.md b/2024/info/links-before.md
index 576aea46..90ef08cb 100644
--- a/2024/info/links-before.md
+++ b/2024/info/links-before.md
@@ -1,8 +1,14 @@
<!-- Automatically generated by emacsconf-publish-before-page -->
+
+The following image shows where the talk is in the schedule for Sun 2024-12-08. Solid lines show talks with Q&A via BigBlueButton. Dashed lines show talks with Q&A via IRC or Etherpad.<div class="schedule-in-context schedule-svg-container" data-slug="links">
+<svg width="700" height="150" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><title>Schedule for Sunday</title><rect width="700" height="150" x="0" y="0" fill="white"></rect><text font-size="10" fill="black" y="12" x="3">Sunday</text><a href="/2024/talks/sun-open" title="Sunday opening remarks" data-slug="sun-open"><title> 9:00- 9:10 Sunday opening remarks</title><rect x="0" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(11,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sun-open</text></g></a><a href="/2024/talks/links" title="Unlocking linked data: replacing specialized apps with an Org-based semantic wiki" data-slug="links"><title> 9:10- 9:20 Unlocking linked data: replacing specialized apps with an Org-based semantic wiki</title><rect stroke-width="3" x="13" y="15" opacity="0.8" width="13" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(24,73)"><text font-weight="bold" fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">links</text></g></a><a href="/2024/talks/regex" title="Emacs regex compilation and future directions for expressive pattern matching" data-slug="regex"><title> 9:30- 9:50 Emacs regex compilation and future directions for expressive pattern matching</title><rect x="41" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(66,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">regex</text></g></a><a href="/2024/talks/learning" title="Survival of the skillest: Thriving in the learning jungle" data-slug="learning"><title>10:00-10:20 Survival of the skillest: Thriving in the learning jungle</title><rect x="82" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(107,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">learning</text></g></a><a href="/2024/talks/language" title="Immersive language learning with Emacs" data-slug="language"><title>10:30-10:40 Immersive language learning with Emacs</title><rect x="123" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(134,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">language</text></g></a><a href="/2024/talks/org-teach" title="org-teach: a minor mode for writing course materials in Emacs" data-slug="org-teach"><title>10:50-11:10 org-teach: a minor mode for writing course materials in Emacs</title><rect x="150" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(175,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">org-teach</text></g></a><a href="/2024/talks/hyperbole" title="Fun things with GNU Hyperbole" data-slug="hyperbole"><title>11:25-11:40 Fun things with GNU Hyperbole</title><rect x="199" y="15" opacity="0.5" width="20" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(217,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">hyperbole</text></g></a><a href="/2024/talks/hywiki" title="HyWiki: Fast, hyperlinked note-taking with no markup required" data-slug="hywiki"><title> 1:00- 1:20 HyWiki: Fast, hyperlinked note-taking with no markup required</title><rect x="329" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(354,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">hywiki</text></g></a><a href="/2024/talks/pgmacs" title="PGmacs: browsing and editing PostgreSQL databases from Emacs" data-slug="pgmacs"><title> 1:35- 1:50 PGmacs: browsing and editing PostgreSQL databases from Emacs</title><rect x="377" y="15" opacity="0.5" width="20" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(395,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">pgmacs</text></g></a><a href="/2024/talks/blee" title="About Blee: enveloping our own autonomy directed digital ecosystem with Emacs" data-slug="blee"><title> 2:05- 2:45 About Blee: enveloping our own autonomy directed digital ecosystem with Emacs</title><rect x="418" y="15" opacity="0.5" width="54" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(470,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">blee</text></g></a><a href="/2024/talks/literate" title="Literate programming for the 21st Century" data-slug="literate"><title> 2:55- 3:15 Literate programming for the 21st Century</title><rect x="487" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(512,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">literate</text></g></a><a href="/2024/talks/students" title="An example of a cohesive student workflow in Emacs" data-slug="students"><title> 3:30- 3:40 An example of a cohesive student workflow in Emacs</title><rect x="535" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(546,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">students</text></g></a><a href="/2024/talks/sharing" title="So you want to be an Emacs-fluencer?" data-slug="sharing"><title> 3:50- 4:10 So you want to be an Emacs-fluencer?</title><rect x="562" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(587,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sharing</text></g></a><a href="/2024/talks/transducers" title="Transducers: finally, ergonomic data processing for Emacs!" data-slug="transducers"><title> 4:20- 4:50 Transducers: finally, ergonomic data processing for Emacs!</title><rect x="603" y="15" opacity="0.5" width="41" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(642,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">transducers</text></g></a><a href="/2024/talks/sun-close" title="Sunday closing remarks" data-slug="sun-close"><title> 5:00- 5:10 Sunday closing remarks</title><rect x="658" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(669,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sun-close</text></g></a><g transform="translate(0,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">9 AM</text></g><g transform="translate(82,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">10 AM</text></g><g transform="translate(164,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">11 AM</text></g><g transform="translate(247,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">12 PM</text></g><g transform="translate(329,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">1 PM</text></g><g transform="translate(411,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">2 PM</text></g><g transform="translate(494,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">3 PM</text></g><g transform="translate(576,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">4 PM</text></g><g transform="translate(658,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">5 PM</text></g></svg>
+</div>
+
[[!toc ]]
-Format: 10-min talk; Q&A: Etherpad
+Format: 10-min talk; Q&A: Etherpad <https://pad.emacsconf.org/2024-links>
+Discuss on IRC: [#emacsconf](https://chat.emacsconf.org/?join=emacsconf)
Status: Waiting for video from speaker
-
+<div>Times in different time zones:</div><div class="times" start="2024-12-08T14:10:00Z" end="2024-12-08T14:20:00Z"><div class="conf-time">Sunday, Dec 8 2024, ~9:10 AM - 9:20 AM EST (US/Eastern)</div><div class="others"><div>which is the same as:</div>Sunday, Dec 8 2024, ~8:10 AM - 8:20 AM CST (US/Central)<br />Sunday, Dec 8 2024, ~7:10 AM - 7:20 AM MST (US/Mountain)<br />Sunday, Dec 8 2024, ~6:10 AM - 6:20 AM PST (US/Pacific)<br />Sunday, Dec 8 2024, ~2:10 PM - 2:20 PM UTC <br />Sunday, Dec 8 2024, ~3:10 PM - 3:20 PM CET (Europe/Paris)<br />Sunday, Dec 8 2024, ~4:10 PM - 4:20 PM EET (Europe/Athens)<br />Sunday, Dec 8 2024, ~7:40 PM - 7:50 PM IST (Asia/Kolkata)<br />Sunday, Dec 8 2024, ~10:10 PM - 10:20 PM +08 (Asia/Singapore)<br />Sunday, Dec 8 2024, ~11:10 PM - 11:20 PM JST (Asia/Tokyo)</div></div><div><strong><a href="/2024/watch/gen/">Find out how to watch and participate</a></strong></div>
diff --git a/2024/info/links-nav.md b/2024/info/links-nav.md
index 46d404cb..cab0a904 100644
--- a/2024/info/links-nav.md
+++ b/2024/info/links-nav.md
@@ -1,7 +1,7 @@
<div class="talk-nav">
Back to the [[talks]]
-Previous by track: <a href="/2024/talks/papers">Writing academic papers in Org-Roam</a>
-Next by track: <a href="/2024/talks/org-teach">org-teach: a minor mode for writing course materials in Emacs</a>
-Track: <span class="sched-track General">General</span>
+Previous by time: <a href="/2024/talks/sun-open">Sunday opening remarks</a>
+Next by time: <a href="/2024/talks/regex">Emacs regex compilation and future directions for expressive pattern matching</a>
+Track: <span class="sched-track General">General</span> - <strong><a href="https://emacsconf.org/2024/watch/gen">Watch</a></strong>
</div>
diff --git a/2024/info/literate-after.md b/2024/info/literate-after.md
index d569874e..0e8a28df 100644
--- a/2024/info/literate-after.md
+++ b/2024/info/literate-after.md
@@ -3,8 +3,5 @@
Questions or comments? Please e-mail [emacsconf-org-private@gnu.org](mailto:emacsconf-org-private@gnu.org?subject=Comment%20for%20EmacsConf%202023%20literate%3A%20Literate%20programming%20for%20the%2021st%20Century)
-----
-Got an idea for an EmacsConf talk or session? We'd love to hear from you! Check out the [[Call for Participation|/2024/cfp]] for details.
-
<!-- End of emacsconf-publish-after-page -->
diff --git a/2024/info/literate-before.md b/2024/info/literate-before.md
index 7cb3e64d..a91f87d4 100644
--- a/2024/info/literate-before.md
+++ b/2024/info/literate-before.md
@@ -1,8 +1,14 @@
<!-- Automatically generated by emacsconf-publish-before-page -->
-[[!toc ]]
-Format: 20-min talk; Q&A: BigBlueButton conference room
-Status: Waiting for video from speaker
+The following image shows where the talk is in the schedule for Sun 2024-12-08. Solid lines show talks with Q&A via BigBlueButton. Dashed lines show talks with Q&A via IRC or Etherpad.<div class="schedule-in-context schedule-svg-container" data-slug="literate">
+<svg width="700" height="150" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><title>Schedule for Sunday</title><rect width="700" height="150" x="0" y="0" fill="white"></rect><text font-size="10" fill="black" y="12" x="3">Sunday</text><a href="/2024/talks/sun-open" title="Sunday opening remarks" data-slug="sun-open"><title> 9:00- 9:10 Sunday opening remarks</title><rect x="0" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(11,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sun-open</text></g></a><a href="/2024/talks/links" title="Unlocking linked data: replacing specialized apps with an Org-based semantic wiki" data-slug="links"><title> 9:10- 9:20 Unlocking linked data: replacing specialized apps with an Org-based semantic wiki</title><rect x="13" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(24,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">links</text></g></a><a href="/2024/talks/regex" title="Emacs regex compilation and future directions for expressive pattern matching" data-slug="regex"><title> 9:30- 9:50 Emacs regex compilation and future directions for expressive pattern matching</title><rect x="41" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(66,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">regex</text></g></a><a href="/2024/talks/learning" title="Survival of the skillest: Thriving in the learning jungle" data-slug="learning"><title>10:00-10:20 Survival of the skillest: Thriving in the learning jungle</title><rect x="82" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(107,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">learning</text></g></a><a href="/2024/talks/language" title="Immersive language learning with Emacs" data-slug="language"><title>10:30-10:40 Immersive language learning with Emacs</title><rect x="123" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(134,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">language</text></g></a><a href="/2024/talks/org-teach" title="org-teach: a minor mode for writing course materials in Emacs" data-slug="org-teach"><title>10:50-11:10 org-teach: a minor mode for writing course materials in Emacs</title><rect x="150" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(175,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">org-teach</text></g></a><a href="/2024/talks/hyperbole" title="Fun things with GNU Hyperbole" data-slug="hyperbole"><title>11:25-11:40 Fun things with GNU Hyperbole</title><rect x="199" y="15" opacity="0.5" width="20" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(217,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">hyperbole</text></g></a><a href="/2024/talks/hywiki" title="HyWiki: Fast, hyperlinked note-taking with no markup required" data-slug="hywiki"><title> 1:00- 1:20 HyWiki: Fast, hyperlinked note-taking with no markup required</title><rect x="329" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(354,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">hywiki</text></g></a><a href="/2024/talks/pgmacs" title="PGmacs: browsing and editing PostgreSQL databases from Emacs" data-slug="pgmacs"><title> 1:35- 1:50 PGmacs: browsing and editing PostgreSQL databases from Emacs</title><rect x="377" y="15" opacity="0.5" width="20" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(395,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">pgmacs</text></g></a><a href="/2024/talks/blee" title="About Blee: enveloping our own autonomy directed digital ecosystem with Emacs" data-slug="blee"><title> 2:05- 2:45 About Blee: enveloping our own autonomy directed digital ecosystem with Emacs</title><rect x="418" y="15" opacity="0.5" width="54" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(470,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">blee</text></g></a><a href="/2024/talks/literate" title="Literate programming for the 21st Century" data-slug="literate"><title> 2:55- 3:15 Literate programming for the 21st Century</title><rect stroke-width="3" x="487" y="15" opacity="0.8" width="27" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(512,73)"><text font-weight="bold" fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">literate</text></g></a><a href="/2024/talks/students" title="An example of a cohesive student workflow in Emacs" data-slug="students"><title> 3:30- 3:40 An example of a cohesive student workflow in Emacs</title><rect x="535" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(546,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">students</text></g></a><a href="/2024/talks/sharing" title="So you want to be an Emacs-fluencer?" data-slug="sharing"><title> 3:50- 4:10 So you want to be an Emacs-fluencer?</title><rect x="562" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(587,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sharing</text></g></a><a href="/2024/talks/transducers" title="Transducers: finally, ergonomic data processing for Emacs!" data-slug="transducers"><title> 4:20- 4:50 Transducers: finally, ergonomic data processing for Emacs!</title><rect x="603" y="15" opacity="0.5" width="41" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(642,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">transducers</text></g></a><a href="/2024/talks/sun-close" title="Sunday closing remarks" data-slug="sun-close"><title> 5:00- 5:10 Sunday closing remarks</title><rect x="658" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(669,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sun-close</text></g></a><g transform="translate(0,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">9 AM</text></g><g transform="translate(82,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">10 AM</text></g><g transform="translate(164,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">11 AM</text></g><g transform="translate(247,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">12 PM</text></g><g transform="translate(329,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">1 PM</text></g><g transform="translate(411,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">2 PM</text></g><g transform="translate(494,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">3 PM</text></g><g transform="translate(576,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">4 PM</text></g><g transform="translate(658,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">5 PM</text></g></svg>
+</div>
+
+[[!toc ]]
+Format: 16-min talk; Q&A: BigBlueButton conference room <https://media.emacsconf.org/2024/current/bbb-literate.html>
+Discuss on IRC: [#emacsconf](https://chat.emacsconf.org/?join=emacsconf)
+Status: Ready to stream
+<div>Times in different time zones:</div><div class="times" start="2024-12-08T19:55:00Z" end="2024-12-08T20:15:00Z"><div class="conf-time">Sunday, Dec 8 2024, ~2:55 PM - 3:15 PM EST (US/Eastern)</div><div class="others"><div>which is the same as:</div>Sunday, Dec 8 2024, ~1:55 PM - 2:15 PM CST (US/Central)<br />Sunday, Dec 8 2024, ~12:55 PM - 1:15 PM MST (US/Mountain)<br />Sunday, Dec 8 2024, ~11:55 AM - 12:15 PM PST (US/Pacific)<br />Sunday, Dec 8 2024, ~7:55 PM - 8:15 PM UTC <br />Sunday, Dec 8 2024, ~8:55 PM - 9:15 PM CET (Europe/Paris)<br />Sunday, Dec 8 2024, ~9:55 PM - 10:15 PM EET (Europe/Athens)<br />Monday, Dec 9 2024, ~1:25 AM - 1:45 AM IST (Asia/Kolkata)<br />Monday, Dec 9 2024, ~3:55 AM - 4:15 AM +08 (Asia/Singapore)<br />Monday, Dec 9 2024, ~4:55 AM - 5:15 AM JST (Asia/Tokyo)</div></div><div><strong><a href="/2024/watch/gen/">Find out how to watch and participate</a></strong></div>
diff --git a/2024/info/literate-nav.md b/2024/info/literate-nav.md
index 32f9cd74..90573a89 100644
--- a/2024/info/literate-nav.md
+++ b/2024/info/literate-nav.md
@@ -1,7 +1,7 @@
<div class="talk-nav">
Back to the [[talks]]
-Previous by track: <a href="/2024/talks/sharing">So you want to be an Emacs-fluencer?</a>
-Next by track: <a href="/2024/talks/students">An example of a cohesive student workflow in Emacs</a>
-Track: <span class="sched-track General">General</span>
+Previous by time: <a href="/2024/talks/blee">About Blee: enveloping our own autonomy directed digital ecosystem with Emacs</a>
+Next by time: <a href="/2024/talks/students">An example of a cohesive student workflow in Emacs</a>
+Track: <span class="sched-track General">General</span> - <strong><a href="https://emacsconf.org/2024/watch/gen">Watch</a></strong>
</div>
diff --git a/2024/info/mcclim-after.md b/2024/info/mcclim-after.md
index 797e6f23..7324ea84 100644
--- a/2024/info/mcclim-after.md
+++ b/2024/info/mcclim-after.md
@@ -3,8 +3,5 @@
Questions or comments? Please e-mail [emacsconf-org-private@gnu.org](mailto:emacsconf-org-private@gnu.org?subject=Comment%20for%20EmacsConf%202023%20mcclim%3A%20Elisp%20and%20McCLIM)
-----
-Got an idea for an EmacsConf talk or session? We'd love to hear from you! Check out the [[Call for Participation|/2024/cfp]] for details.
-
<!-- End of emacsconf-publish-after-page -->
diff --git a/2024/info/mcclim-before.md b/2024/info/mcclim-before.md
index f98a5a6a..335f9a07 100644
--- a/2024/info/mcclim-before.md
+++ b/2024/info/mcclim-before.md
@@ -1,8 +1,14 @@
<!-- Automatically generated by emacsconf-publish-before-page -->
-[[!toc ]]
-Format: 60-min talk; Q&A: BigBlueButton conference room
-Status: Waiting for video from speaker
+The following image shows where the talk is in the schedule for Sat 2024-12-07. Solid lines show talks with Q&A via BigBlueButton. Dashed lines show talks with Q&A via IRC or Etherpad.<div class="schedule-in-context schedule-svg-container" data-slug="mcclim">
+<svg width="700" height="150" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><title>Schedule for Saturday</title><rect width="700" height="150" x="0" y="0" fill="white"></rect><text font-size="10" fill="black" y="12" x="3">Saturday</text><a href="/2024/talks/sat-open" title="Saturday opening remarks" data-slug="sat-open"><title> 9:00- 9:10 Saturday opening remarks</title><rect x="0" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(11,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sat-open</text></g></a><a href="/2024/talks/papers" title="Writing academic papers in Org-Roam" data-slug="papers"><title> 9:10- 9:20 Writing academic papers in Org-Roam</title><rect x="13" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(24,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">papers</text></g></a><a href="/2024/talks/project" title="Managing writing project metadata with org-mode" data-slug="project"><title> 9:40-10:00 Managing writing project metadata with org-mode</title><rect x="54" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(79,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">project</text></g></a><a href="/2024/talks/org-update" title="The Future of Org" data-slug="org-update"><title>10:20-10:40 The Future of Org</title><rect x="109" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(134,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">org-update</text></g></a><a href="/2024/talks/color" title="Colour your Emacs with ease" data-slug="color"><title>11:00-11:10 Colour your Emacs with ease</title><rect x="164" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(175,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">color</text></g></a><a href="/2024/talks/theme" title="My journey of finding and creating the “perfect” Emacs theme" data-slug="theme"><title> 1:00- 1:10 My journey of finding and creating the “perfect” Emacs theme</title><rect x="329" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(340,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">theme</text></g></a><a href="/2024/talks/water" title="Watering my (digital) plant with Emacs timers" data-slug="water"><title> 1:30- 1:45 Watering my (digital) plant with Emacs timers</title><rect x="370" y="15" opacity="0.5" width="20" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(388,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">water</text></g></a><a href="/2024/talks/shell" title="Emacs as a shell" data-slug="shell"><title> 1:55- 2:35 Emacs as a shell</title><rect x="404" y="15" opacity="0.5" width="54" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(456,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">shell</text></g></a><a href="/2024/talks/casual" title="Re-imagining the Emacs user experience with Casual Suite" data-slug="casual"><title> 2:45- 3:05 Re-imagining the Emacs user experience with Casual Suite</title><rect x="473" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(498,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">casual</text></g></a><a href="/2024/talks/hyperdrive" title="New in hyperdrive.el: org-transclusion, easy installation, and more!" data-slug="hyperdrive"><title> 3:25- 3:45 New in hyperdrive.el: org-transclusion, easy installation, and more!</title><rect x="528" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(553,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">hyperdrive</text></g></a><a href="/2024/talks/writing" title="Emacs Writing Studio" data-slug="writing"><title> 4:05- 4:15 Emacs Writing Studio</title><rect x="583" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(594,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">writing</text></g></a><a href="/2024/talks/emacs30" title="Emacs 30 Highlights" data-slug="emacs30"><title> 4:25- 4:50 Emacs 30 Highlights</title><rect x="610" y="15" opacity="0.5" width="34" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(642,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">emacs30</text></g></a><a href="/2024/talks/sat-close" title="Saturday closing remarks" data-slug="sat-close"><title> 5:00- 5:10 Saturday closing remarks</title><rect x="658" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(669,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sat-close</text></g></a><a href="/2024/talks/gypsum" title="Gypsum: my clone of Emacs and ELisp written in Scheme" data-slug="gypsum"><title>10:00-10:20 Gypsum: my clone of Emacs and ELisp written in Scheme</title><rect x="82" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(107,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">gypsum</text></g></a><a href="/2024/talks/rust" title="An experimental Emacs core in Rust" data-slug="rust"><title>10:40-11:00 An experimental Emacs core in Rust</title><rect x="137" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(162,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">rust</text></g></a><a href="/2024/talks/p-search" title="p-search: a local search engine in Emacs" data-slug="p-search"><title>11:20-11:45 p-search: a local search engine in Emacs</title><rect x="192" y="75" opacity="0.5" width="34" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(224,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">p-search</text></g></a><a href="/2024/talks/julia" title="Exploring shared philosophies in Julia and Emacs" data-slug="julia"><title> 1:00- 1:10 Exploring shared philosophies in Julia and Emacs</title><rect x="329" y="75" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(340,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">julia</text></g></a><a href="/2024/talks/guile" title="Beguiling Emacs: Guile-Emacs relaunched!" data-slug="guile"><title> 1:25- 1:45 Beguiling Emacs: Guile-Emacs relaunched!</title><rect x="363" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="5,5,5" fill="skyblue"></rect><g transform="translate(388,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">guile</text></g></a><a href="/2024/talks/secrets" title="Committing secrets with git using sops-mode" data-slug="secrets"><title> 1:55- 2:05 Committing secrets with git using sops-mode</title><rect x="404" y="75" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(415,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">secrets</text></g></a><a href="/2024/talks/mcclim" title="Elisp and McCLIM" data-slug="mcclim"><title> 2:25- 3:25 Elisp and McCLIM</title><rect stroke-width="3" x="446" y="75" opacity="0.8" width="82" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(526,133)"><text font-weight="bold" fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">mcclim</text></g></a><a href="/2024/talks/repro" title="Reproducibly building Emacs: “Hey your checksum is the same as mine!”" data-slug="repro"><title> 3:45- 4:05 Reproducibly building Emacs: “Hey your checksum is the same as mine!”</title><rect x="555" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(580,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">repro</text></g></a><g transform="translate(0,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">9 AM</text></g><g transform="translate(82,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">10 AM</text></g><g transform="translate(164,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">11 AM</text></g><g transform="translate(247,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">12 PM</text></g><g transform="translate(329,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">1 PM</text></g><g transform="translate(411,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">2 PM</text></g><g transform="translate(494,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">3 PM</text></g><g transform="translate(576,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">4 PM</text></g><g transform="translate(658,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">5 PM</text></g></svg>
+</div>
+
+[[!toc ]]
+Format: 35-min talk; Q&A: BigBlueButton conference room <https://media.emacsconf.org/2024/current/bbb-mcclim.html>
+Discuss on IRC: [#emacsconf](https://chat.emacsconf.org/?join=emacsconf)
+Status: Quality check
+<div>Times in different time zones:</div><div class="times" start="2024-12-07T19:25:00Z" end="2024-12-07T20:25:00Z"><div class="conf-time">Saturday, Dec 7 2024, ~2:25 PM - 3:25 PM EST (US/Eastern)</div><div class="others"><div>which is the same as:</div>Saturday, Dec 7 2024, ~1:25 PM - 2:25 PM CST (US/Central)<br />Saturday, Dec 7 2024, ~12:25 PM - 1:25 PM MST (US/Mountain)<br />Saturday, Dec 7 2024, ~11:25 AM - 12:25 PM PST (US/Pacific)<br />Saturday, Dec 7 2024, ~7:25 PM - 8:25 PM UTC <br />Saturday, Dec 7 2024, ~8:25 PM - 9:25 PM CET (Europe/Paris)<br />Saturday, Dec 7 2024, ~9:25 PM - 10:25 PM EET (Europe/Athens)<br />Sunday, Dec 8 2024, ~12:55 AM - 1:55 AM IST (Asia/Kolkata)<br />Sunday, Dec 8 2024, ~3:25 AM - 4:25 AM +08 (Asia/Singapore)<br />Sunday, Dec 8 2024, ~4:25 AM - 5:25 AM JST (Asia/Tokyo)</div></div><div><strong><a href="/2024/watch/dev/">Find out how to watch and participate</a></strong></div>
diff --git a/2024/info/mcclim-nav.md b/2024/info/mcclim-nav.md
index 9ca68987..99937353 100644
--- a/2024/info/mcclim-nav.md
+++ b/2024/info/mcclim-nav.md
@@ -1,7 +1,7 @@
<div class="talk-nav">
Back to the [[talks]]
-Previous by track: <a href="/2024/talks/regex">Emacs regex compilation and future directions for expressive pattern matching</a>
-Next by track: <a href="/2024/talks/secrets">Committing secrets with git using sops-mode</a>
-Track: <span class="sched-track Development">Development</span>
+Previous by time: <a href="/2024/talks/shell">Emacs as a shell</a>
+Next by time: <a href="/2024/talks/casual">Re-imagining the Emacs user experience with Casual Suite</a>
+Track: <span class="sched-track Development">Development</span> - <strong><a href="https://emacsconf.org/2024/watch/dev">Watch</a></strong>
</div>
diff --git a/2024/info/org-teach-after.md b/2024/info/org-teach-after.md
index ef8639dc..7a5e966e 100644
--- a/2024/info/org-teach-after.md
+++ b/2024/info/org-teach-after.md
@@ -3,8 +3,5 @@
Questions or comments? Please e-mail [james@endres-howell.org](mailto:james@endres-howell.org?subject=Comment%20for%20EmacsConf%202023%20org-teach%3A%20org-teach%3A%20a%20minor%20mode%20for%20writing%20course%20materials%20in%20Emacs)
-----
-Got an idea for an EmacsConf talk or session? We'd love to hear from you! Check out the [[Call for Participation|/2024/cfp]] for details.
-
<!-- End of emacsconf-publish-after-page -->
diff --git a/2024/info/org-teach-before.md b/2024/info/org-teach-before.md
index 7cb3e64d..82a39f56 100644
--- a/2024/info/org-teach-before.md
+++ b/2024/info/org-teach-before.md
@@ -1,8 +1,14 @@
<!-- Automatically generated by emacsconf-publish-before-page -->
+
+The following image shows where the talk is in the schedule for Sun 2024-12-08. Solid lines show talks with Q&A via BigBlueButton. Dashed lines show talks with Q&A via IRC or Etherpad.<div class="schedule-in-context schedule-svg-container" data-slug="org-teach">
+<svg width="700" height="150" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><title>Schedule for Sunday</title><rect width="700" height="150" x="0" y="0" fill="white"></rect><text font-size="10" fill="black" y="12" x="3">Sunday</text><a href="/2024/talks/sun-open" title="Sunday opening remarks" data-slug="sun-open"><title> 9:00- 9:10 Sunday opening remarks</title><rect x="0" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(11,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sun-open</text></g></a><a href="/2024/talks/links" title="Unlocking linked data: replacing specialized apps with an Org-based semantic wiki" data-slug="links"><title> 9:10- 9:20 Unlocking linked data: replacing specialized apps with an Org-based semantic wiki</title><rect x="13" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(24,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">links</text></g></a><a href="/2024/talks/regex" title="Emacs regex compilation and future directions for expressive pattern matching" data-slug="regex"><title> 9:30- 9:50 Emacs regex compilation and future directions for expressive pattern matching</title><rect x="41" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(66,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">regex</text></g></a><a href="/2024/talks/learning" title="Survival of the skillest: Thriving in the learning jungle" data-slug="learning"><title>10:00-10:20 Survival of the skillest: Thriving in the learning jungle</title><rect x="82" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(107,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">learning</text></g></a><a href="/2024/talks/language" title="Immersive language learning with Emacs" data-slug="language"><title>10:30-10:40 Immersive language learning with Emacs</title><rect x="123" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(134,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">language</text></g></a><a href="/2024/talks/org-teach" title="org-teach: a minor mode for writing course materials in Emacs" data-slug="org-teach"><title>10:50-11:10 org-teach: a minor mode for writing course materials in Emacs</title><rect stroke-width="3" x="150" y="15" opacity="0.8" width="27" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(175,73)"><text font-weight="bold" fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">org-teach</text></g></a><a href="/2024/talks/hyperbole" title="Fun things with GNU Hyperbole" data-slug="hyperbole"><title>11:25-11:40 Fun things with GNU Hyperbole</title><rect x="199" y="15" opacity="0.5" width="20" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(217,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">hyperbole</text></g></a><a href="/2024/talks/hywiki" title="HyWiki: Fast, hyperlinked note-taking with no markup required" data-slug="hywiki"><title> 1:00- 1:20 HyWiki: Fast, hyperlinked note-taking with no markup required</title><rect x="329" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(354,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">hywiki</text></g></a><a href="/2024/talks/pgmacs" title="PGmacs: browsing and editing PostgreSQL databases from Emacs" data-slug="pgmacs"><title> 1:35- 1:50 PGmacs: browsing and editing PostgreSQL databases from Emacs</title><rect x="377" y="15" opacity="0.5" width="20" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(395,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">pgmacs</text></g></a><a href="/2024/talks/blee" title="About Blee: enveloping our own autonomy directed digital ecosystem with Emacs" data-slug="blee"><title> 2:05- 2:45 About Blee: enveloping our own autonomy directed digital ecosystem with Emacs</title><rect x="418" y="15" opacity="0.5" width="54" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(470,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">blee</text></g></a><a href="/2024/talks/literate" title="Literate programming for the 21st Century" data-slug="literate"><title> 2:55- 3:15 Literate programming for the 21st Century</title><rect x="487" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(512,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">literate</text></g></a><a href="/2024/talks/students" title="An example of a cohesive student workflow in Emacs" data-slug="students"><title> 3:30- 3:40 An example of a cohesive student workflow in Emacs</title><rect x="535" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(546,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">students</text></g></a><a href="/2024/talks/sharing" title="So you want to be an Emacs-fluencer?" data-slug="sharing"><title> 3:50- 4:10 So you want to be an Emacs-fluencer?</title><rect x="562" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(587,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sharing</text></g></a><a href="/2024/talks/transducers" title="Transducers: finally, ergonomic data processing for Emacs!" data-slug="transducers"><title> 4:20- 4:50 Transducers: finally, ergonomic data processing for Emacs!</title><rect x="603" y="15" opacity="0.5" width="41" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(642,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">transducers</text></g></a><a href="/2024/talks/sun-close" title="Sunday closing remarks" data-slug="sun-close"><title> 5:00- 5:10 Sunday closing remarks</title><rect x="658" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(669,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sun-close</text></g></a><g transform="translate(0,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">9 AM</text></g><g transform="translate(82,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">10 AM</text></g><g transform="translate(164,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">11 AM</text></g><g transform="translate(247,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">12 PM</text></g><g transform="translate(329,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">1 PM</text></g><g transform="translate(411,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">2 PM</text></g><g transform="translate(494,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">3 PM</text></g><g transform="translate(576,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">4 PM</text></g><g transform="translate(658,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">5 PM</text></g></svg>
+</div>
+
[[!toc ]]
-Format: 20-min talk; Q&A: BigBlueButton conference room
+Format: 20-min talk; Q&A: BigBlueButton conference room <https://media.emacsconf.org/2024/current/bbb-org-teach.html>
+Discuss on IRC: [#emacsconf](https://chat.emacsconf.org/?join=emacsconf)
Status: Waiting for video from speaker
-
+<div>Times in different time zones:</div><div class="times" start="2024-12-08T15:50:00Z" end="2024-12-08T16:10:00Z"><div class="conf-time">Sunday, Dec 8 2024, ~10:50 AM - 11:10 AM EST (US/Eastern)</div><div class="others"><div>which is the same as:</div>Sunday, Dec 8 2024, ~9:50 AM - 10:10 AM CST (US/Central)<br />Sunday, Dec 8 2024, ~8:50 AM - 9:10 AM MST (US/Mountain)<br />Sunday, Dec 8 2024, ~7:50 AM - 8:10 AM PST (US/Pacific)<br />Sunday, Dec 8 2024, ~3:50 PM - 4:10 PM UTC <br />Sunday, Dec 8 2024, ~4:50 PM - 5:10 PM CET (Europe/Paris)<br />Sunday, Dec 8 2024, ~5:50 PM - 6:10 PM EET (Europe/Athens)<br />Sunday, Dec 8 2024, ~9:20 PM - 9:40 PM IST (Asia/Kolkata)<br />Sunday, Dec 8 2024, ~11:50 PM - 12:10 AM +08 (Asia/Singapore)<br />Monday, Dec 9 2024, ~12:50 AM - 1:10 AM JST (Asia/Tokyo)</div></div><div><strong><a href="/2024/watch/gen/">Find out how to watch and participate</a></strong></div>
diff --git a/2024/info/org-teach-nav.md b/2024/info/org-teach-nav.md
index 6511b094..7ad8975c 100644
--- a/2024/info/org-teach-nav.md
+++ b/2024/info/org-teach-nav.md
@@ -1,7 +1,7 @@
<div class="talk-nav">
Back to the [[talks]]
-Previous by track: <a href="/2024/talks/links">Unlocking linked data: replacing specialized apps with an Org-based semantic wiki</a>
-Next by track: <a href="/2024/talks/language">Immersive language learning with Emacs</a>
-Track: <span class="sched-track General">General</span>
+Previous by time: <a href="/2024/talks/language">Immersive language learning with Emacs</a>
+Next by time: <a href="/2024/talks/hyperbole">Fun things with GNU Hyperbole</a>
+Track: <span class="sched-track General">General</span> - <strong><a href="https://emacsconf.org/2024/watch/gen">Watch</a></strong>
</div>
diff --git a/2024/info/org-update-after.md b/2024/info/org-update-after.md
new file mode 100644
index 00000000..59e79be9
--- /dev/null
+++ b/2024/info/org-update-after.md
@@ -0,0 +1,7 @@
+<!-- Automatically generated by emacsconf-publish-after-page -->
+
+
+Questions or comments? Please e-mail [emacsconf-org-private@gnu.org](mailto:emacsconf-org-private@gnu.org?subject=Comment%20for%20EmacsConf%202023%20org-update%3A%20The%20Future%20of%20Org)
+
+
+<!-- End of emacsconf-publish-after-page -->
diff --git a/2024/info/org-update-before.md b/2024/info/org-update-before.md
new file mode 100644
index 00000000..22c4d977
--- /dev/null
+++ b/2024/info/org-update-before.md
@@ -0,0 +1,18 @@
+<!-- Automatically generated by emacsconf-publish-before-page -->
+
+The following image shows where the talk is in the schedule for Sat 2024-12-07. Solid lines show talks with Q&A via BigBlueButton. Dashed lines show talks with Q&A via IRC or Etherpad.<div class="schedule-in-context schedule-svg-container" data-slug="org-update">
+<svg width="700" height="150" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><title>Schedule for Saturday</title><rect width="700" height="150" x="0" y="0" fill="white"></rect><text font-size="10" fill="black" y="12" x="3">Saturday</text><a href="/2024/talks/sat-open" title="Saturday opening remarks" data-slug="sat-open"><title> 9:00- 9:10 Saturday opening remarks</title><rect x="0" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(11,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sat-open</text></g></a><a href="/2024/talks/papers" title="Writing academic papers in Org-Roam" data-slug="papers"><title> 9:10- 9:20 Writing academic papers in Org-Roam</title><rect x="13" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(24,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">papers</text></g></a><a href="/2024/talks/project" title="Managing writing project metadata with org-mode" data-slug="project"><title> 9:40-10:00 Managing writing project metadata with org-mode</title><rect x="54" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(79,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">project</text></g></a><a href="/2024/talks/org-update" title="The Future of Org" data-slug="org-update"><title>10:20-10:40 The Future of Org</title><rect stroke-width="3" x="109" y="15" opacity="0.8" width="27" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(134,73)"><text font-weight="bold" fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">org-update</text></g></a><a href="/2024/talks/color" title="Colour your Emacs with ease" data-slug="color"><title>11:00-11:10 Colour your Emacs with ease</title><rect x="164" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(175,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">color</text></g></a><a href="/2024/talks/theme" title="My journey of finding and creating the “perfect” Emacs theme" data-slug="theme"><title> 1:00- 1:10 My journey of finding and creating the “perfect” Emacs theme</title><rect x="329" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(340,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">theme</text></g></a><a href="/2024/talks/water" title="Watering my (digital) plant with Emacs timers" data-slug="water"><title> 1:30- 1:45 Watering my (digital) plant with Emacs timers</title><rect x="370" y="15" opacity="0.5" width="20" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(388,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">water</text></g></a><a href="/2024/talks/shell" title="Emacs as a shell" data-slug="shell"><title> 1:55- 2:35 Emacs as a shell</title><rect x="404" y="15" opacity="0.5" width="54" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(456,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">shell</text></g></a><a href="/2024/talks/casual" title="Re-imagining the Emacs user experience with Casual Suite" data-slug="casual"><title> 2:45- 3:05 Re-imagining the Emacs user experience with Casual Suite</title><rect x="473" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(498,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">casual</text></g></a><a href="/2024/talks/hyperdrive" title="New in hyperdrive.el: org-transclusion, easy installation, and more!" data-slug="hyperdrive"><title> 3:25- 3:45 New in hyperdrive.el: org-transclusion, easy installation, and more!</title><rect x="528" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(553,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">hyperdrive</text></g></a><a href="/2024/talks/writing" title="Emacs Writing Studio" data-slug="writing"><title> 4:05- 4:15 Emacs Writing Studio</title><rect x="583" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(594,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">writing</text></g></a><a href="/2024/talks/emacs30" title="Emacs 30 Highlights" data-slug="emacs30"><title> 4:25- 4:50 Emacs 30 Highlights</title><rect x="610" y="15" opacity="0.5" width="34" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(642,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">emacs30</text></g></a><a href="/2024/talks/sat-close" title="Saturday closing remarks" data-slug="sat-close"><title> 5:00- 5:10 Saturday closing remarks</title><rect x="658" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(669,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sat-close</text></g></a><a href="/2024/talks/gypsum" title="Gypsum: my clone of Emacs and ELisp written in Scheme" data-slug="gypsum"><title>10:00-10:20 Gypsum: my clone of Emacs and ELisp written in Scheme</title><rect x="82" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(107,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">gypsum</text></g></a><a href="/2024/talks/rust" title="An experimental Emacs core in Rust" data-slug="rust"><title>10:40-11:00 An experimental Emacs core in Rust</title><rect x="137" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(162,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">rust</text></g></a><a href="/2024/talks/p-search" title="p-search: a local search engine in Emacs" data-slug="p-search"><title>11:20-11:45 p-search: a local search engine in Emacs</title><rect x="192" y="75" opacity="0.5" width="34" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(224,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">p-search</text></g></a><a href="/2024/talks/julia" title="Exploring shared philosophies in Julia and Emacs" data-slug="julia"><title> 1:00- 1:10 Exploring shared philosophies in Julia and Emacs</title><rect x="329" y="75" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(340,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">julia</text></g></a><a href="/2024/talks/guile" title="Beguiling Emacs: Guile-Emacs relaunched!" data-slug="guile"><title> 1:25- 1:45 Beguiling Emacs: Guile-Emacs relaunched!</title><rect x="363" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="5,5,5" fill="skyblue"></rect><g transform="translate(388,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">guile</text></g></a><a href="/2024/talks/secrets" title="Committing secrets with git using sops-mode" data-slug="secrets"><title> 1:55- 2:05 Committing secrets with git using sops-mode</title><rect x="404" y="75" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(415,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">secrets</text></g></a><a href="/2024/talks/mcclim" title="Elisp and McCLIM" data-slug="mcclim"><title> 2:25- 3:25 Elisp and McCLIM</title><rect x="446" y="75" opacity="0.5" width="82" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(526,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">mcclim</text></g></a><a href="/2024/talks/repro" title="Reproducibly building Emacs: “Hey your checksum is the same as mine!”" data-slug="repro"><title> 3:45- 4:05 Reproducibly building Emacs: “Hey your checksum is the same as mine!”</title><rect x="555" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(580,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">repro</text></g></a><g transform="translate(0,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">9 AM</text></g><g transform="translate(82,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">10 AM</text></g><g transform="translate(164,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">11 AM</text></g><g transform="translate(247,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">12 PM</text></g><g transform="translate(329,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">1 PM</text></g><g transform="translate(411,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">2 PM</text></g><g transform="translate(494,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">3 PM</text></g><g transform="translate(576,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">4 PM</text></g><g transform="translate(658,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">5 PM</text></g></svg>
+</div>
+
+[[!toc ]]
+Format: 20-min talk; Q&A: BigBlueButton conference room <https://media.emacsconf.org/2024/current/bbb-org-update.html>
+Discuss on IRC: [#emacsconf](https://chat.emacsconf.org/?join=emacsconf)
+Status: Waiting for video from speaker
+<div>Times in different time zones:</div><div class="times" start="2024-12-07T15:20:00Z" end="2024-12-07T15:40:00Z"><div class="conf-time">Saturday, Dec 7 2024, ~10:20 AM - 10:40 AM EST (US/Eastern)</div><div class="others"><div>which is the same as:</div>Saturday, Dec 7 2024, ~9:20 AM - 9:40 AM CST (US/Central)<br />Saturday, Dec 7 2024, ~8:20 AM - 8:40 AM MST (US/Mountain)<br />Saturday, Dec 7 2024, ~7:20 AM - 7:40 AM PST (US/Pacific)<br />Saturday, Dec 7 2024, ~3:20 PM - 3:40 PM UTC <br />Saturday, Dec 7 2024, ~4:20 PM - 4:40 PM CET (Europe/Paris)<br />Saturday, Dec 7 2024, ~5:20 PM - 5:40 PM EET (Europe/Athens)<br />Saturday, Dec 7 2024, ~8:50 PM - 9:10 PM IST (Asia/Kolkata)<br />Saturday, Dec 7 2024, ~11:20 PM - 11:40 PM +08 (Asia/Singapore)<br />Sunday, Dec 8 2024, ~12:20 AM - 12:40 AM JST (Asia/Tokyo)</div></div><div><strong><a href="/2024/watch/gen/">Find out how to watch and participate</a></strong></div>
+
+
+
+
+
+# Description
+<!-- End of emacsconf-publish-before-page --> \ No newline at end of file
diff --git a/2024/info/org-update-nav.md b/2024/info/org-update-nav.md
new file mode 100644
index 00000000..dd35300a
--- /dev/null
+++ b/2024/info/org-update-nav.md
@@ -0,0 +1,7 @@
+
+<div class="talk-nav">
+Back to the [[talks]]
+Previous by time: <a href="/2024/talks/gypsum">Gypsum: my clone of Emacs and ELisp written in Scheme</a>
+Next by time: <a href="/2024/talks/rust">An experimental Emacs core in Rust</a>
+Track: <span class="sched-track General">General</span> - <strong><a href="https://emacsconf.org/2024/watch/gen">Watch</a></strong>
+</div>
diff --git a/2024/info/p-search-after.md b/2024/info/p-search-after.md
index 04999565..6850a230 100644
--- a/2024/info/p-search-after.md
+++ b/2024/info/p-search-after.md
@@ -3,8 +3,5 @@
Questions or comments? Please e-mail [zacromero@posteo.com](mailto:zacromero@posteo.com?subject=Comment%20for%20EmacsConf%202023%20p-search%3A%20p-search%3A%20a%20local%20search%20engine%20in%20Emacs)
-----
-Got an idea for an EmacsConf talk or session? We'd love to hear from you! Check out the [[Call for Participation|/2024/cfp]] for details.
-
<!-- End of emacsconf-publish-after-page -->
diff --git a/2024/info/p-search-before.md b/2024/info/p-search-before.md
index 7cb3e64d..edf6acb0 100644
--- a/2024/info/p-search-before.md
+++ b/2024/info/p-search-before.md
@@ -1,8 +1,14 @@
<!-- Automatically generated by emacsconf-publish-before-page -->
-[[!toc ]]
-Format: 20-min talk; Q&A: BigBlueButton conference room
-Status: Waiting for video from speaker
+The following image shows where the talk is in the schedule for Sat 2024-12-07. Solid lines show talks with Q&A via BigBlueButton. Dashed lines show talks with Q&A via IRC or Etherpad.<div class="schedule-in-context schedule-svg-container" data-slug="p-search">
+<svg width="700" height="150" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><title>Schedule for Saturday</title><rect width="700" height="150" x="0" y="0" fill="white"></rect><text font-size="10" fill="black" y="12" x="3">Saturday</text><a href="/2024/talks/sat-open" title="Saturday opening remarks" data-slug="sat-open"><title> 9:00- 9:10 Saturday opening remarks</title><rect x="0" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(11,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sat-open</text></g></a><a href="/2024/talks/papers" title="Writing academic papers in Org-Roam" data-slug="papers"><title> 9:10- 9:20 Writing academic papers in Org-Roam</title><rect x="13" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(24,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">papers</text></g></a><a href="/2024/talks/project" title="Managing writing project metadata with org-mode" data-slug="project"><title> 9:40-10:00 Managing writing project metadata with org-mode</title><rect x="54" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(79,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">project</text></g></a><a href="/2024/talks/org-update" title="The Future of Org" data-slug="org-update"><title>10:20-10:40 The Future of Org</title><rect x="109" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(134,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">org-update</text></g></a><a href="/2024/talks/color" title="Colour your Emacs with ease" data-slug="color"><title>11:00-11:10 Colour your Emacs with ease</title><rect x="164" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(175,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">color</text></g></a><a href="/2024/talks/theme" title="My journey of finding and creating the “perfect” Emacs theme" data-slug="theme"><title> 1:00- 1:10 My journey of finding and creating the “perfect” Emacs theme</title><rect x="329" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(340,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">theme</text></g></a><a href="/2024/talks/water" title="Watering my (digital) plant with Emacs timers" data-slug="water"><title> 1:30- 1:45 Watering my (digital) plant with Emacs timers</title><rect x="370" y="15" opacity="0.5" width="20" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(388,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">water</text></g></a><a href="/2024/talks/shell" title="Emacs as a shell" data-slug="shell"><title> 1:55- 2:35 Emacs as a shell</title><rect x="404" y="15" opacity="0.5" width="54" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(456,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">shell</text></g></a><a href="/2024/talks/casual" title="Re-imagining the Emacs user experience with Casual Suite" data-slug="casual"><title> 2:45- 3:05 Re-imagining the Emacs user experience with Casual Suite</title><rect x="473" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(498,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">casual</text></g></a><a href="/2024/talks/hyperdrive" title="New in hyperdrive.el: org-transclusion, easy installation, and more!" data-slug="hyperdrive"><title> 3:25- 3:45 New in hyperdrive.el: org-transclusion, easy installation, and more!</title><rect x="528" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(553,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">hyperdrive</text></g></a><a href="/2024/talks/writing" title="Emacs Writing Studio" data-slug="writing"><title> 4:05- 4:15 Emacs Writing Studio</title><rect x="583" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(594,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">writing</text></g></a><a href="/2024/talks/emacs30" title="Emacs 30 Highlights" data-slug="emacs30"><title> 4:25- 4:50 Emacs 30 Highlights</title><rect x="610" y="15" opacity="0.5" width="34" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(642,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">emacs30</text></g></a><a href="/2024/talks/sat-close" title="Saturday closing remarks" data-slug="sat-close"><title> 5:00- 5:10 Saturday closing remarks</title><rect x="658" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(669,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sat-close</text></g></a><a href="/2024/talks/gypsum" title="Gypsum: my clone of Emacs and ELisp written in Scheme" data-slug="gypsum"><title>10:00-10:20 Gypsum: my clone of Emacs and ELisp written in Scheme</title><rect x="82" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(107,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">gypsum</text></g></a><a href="/2024/talks/rust" title="An experimental Emacs core in Rust" data-slug="rust"><title>10:40-11:00 An experimental Emacs core in Rust</title><rect x="137" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(162,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">rust</text></g></a><a href="/2024/talks/p-search" title="p-search: a local search engine in Emacs" data-slug="p-search"><title>11:20-11:45 p-search: a local search engine in Emacs</title><rect stroke-width="3" x="192" y="75" opacity="0.8" width="34" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(224,133)"><text font-weight="bold" fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">p-search</text></g></a><a href="/2024/talks/julia" title="Exploring shared philosophies in Julia and Emacs" data-slug="julia"><title> 1:00- 1:10 Exploring shared philosophies in Julia and Emacs</title><rect x="329" y="75" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(340,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">julia</text></g></a><a href="/2024/talks/guile" title="Beguiling Emacs: Guile-Emacs relaunched!" data-slug="guile"><title> 1:25- 1:45 Beguiling Emacs: Guile-Emacs relaunched!</title><rect x="363" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="5,5,5" fill="skyblue"></rect><g transform="translate(388,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">guile</text></g></a><a href="/2024/talks/secrets" title="Committing secrets with git using sops-mode" data-slug="secrets"><title> 1:55- 2:05 Committing secrets with git using sops-mode</title><rect x="404" y="75" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(415,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">secrets</text></g></a><a href="/2024/talks/mcclim" title="Elisp and McCLIM" data-slug="mcclim"><title> 2:25- 3:25 Elisp and McCLIM</title><rect x="446" y="75" opacity="0.5" width="82" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(526,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">mcclim</text></g></a><a href="/2024/talks/repro" title="Reproducibly building Emacs: “Hey your checksum is the same as mine!”" data-slug="repro"><title> 3:45- 4:05 Reproducibly building Emacs: “Hey your checksum is the same as mine!”</title><rect x="555" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(580,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">repro</text></g></a><g transform="translate(0,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">9 AM</text></g><g transform="translate(82,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">10 AM</text></g><g transform="translate(164,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">11 AM</text></g><g transform="translate(247,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">12 PM</text></g><g transform="translate(329,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">1 PM</text></g><g transform="translate(411,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">2 PM</text></g><g transform="translate(494,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">3 PM</text></g><g transform="translate(576,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">4 PM</text></g><g transform="translate(658,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">5 PM</text></g></svg>
+</div>
+
+[[!toc ]]
+Format: 23-min talk; Q&A: BigBlueButton conference room <https://media.emacsconf.org/2024/current/bbb-p-search.html>
+Discuss on IRC: [#emacsconf](https://chat.emacsconf.org/?join=emacsconf)
+Status: Ready to stream
+<div>Times in different time zones:</div><div class="times" start="2024-12-07T16:20:00Z" end="2024-12-07T16:45:00Z"><div class="conf-time">Saturday, Dec 7 2024, ~11:20 AM - 11:45 AM EST (US/Eastern)</div><div class="others"><div>which is the same as:</div>Saturday, Dec 7 2024, ~10:20 AM - 10:45 AM CST (US/Central)<br />Saturday, Dec 7 2024, ~9:20 AM - 9:45 AM MST (US/Mountain)<br />Saturday, Dec 7 2024, ~8:20 AM - 8:45 AM PST (US/Pacific)<br />Saturday, Dec 7 2024, ~4:20 PM - 4:45 PM UTC <br />Saturday, Dec 7 2024, ~5:20 PM - 5:45 PM CET (Europe/Paris)<br />Saturday, Dec 7 2024, ~6:20 PM - 6:45 PM EET (Europe/Athens)<br />Saturday, Dec 7 2024, ~9:50 PM - 10:15 PM IST (Asia/Kolkata)<br />Sunday, Dec 8 2024, ~12:20 AM - 12:45 AM +08 (Asia/Singapore)<br />Sunday, Dec 8 2024, ~1:20 AM - 1:45 AM JST (Asia/Tokyo)</div></div><div><strong><a href="/2024/watch/dev/">Find out how to watch and participate</a></strong></div>
diff --git a/2024/info/p-search-nav.md b/2024/info/p-search-nav.md
index b6c71a22..65da4e68 100644
--- a/2024/info/p-search-nav.md
+++ b/2024/info/p-search-nav.md
@@ -1,7 +1,7 @@
<div class="talk-nav">
Back to the [[talks]]
-Previous by track: <a href="/2024/talks/pgmacs">PGmacs: browsing and editing PostgreSQL databases from Emacs</a>
-Next by track: <a href="/2024/talks/hyperbole">Fun things with GNU Hyperbole</a>
-Track: <span class="sched-track General">General</span>
+Previous by time: <a href="/2024/talks/color">Colour your Emacs with ease</a>
+Next by time: <a href="/2024/talks/julia">Exploring shared philosophies in Julia and Emacs</a>
+Track: <span class="sched-track Development">Development</span> - <strong><a href="https://emacsconf.org/2024/watch/dev">Watch</a></strong>
</div>
diff --git a/2024/info/papers-after.md b/2024/info/papers-after.md
index 3ac88ff7..085d363f 100644
--- a/2024/info/papers-after.md
+++ b/2024/info/papers-after.md
@@ -3,8 +3,5 @@
Questions or comments? Please e-mail [vincent.conus@pm.me](mailto:vincent.conus@pm.me?subject=Comment%20for%20EmacsConf%202023%20papers%3A%20Writing%20academic%20papers%20in%20Org-Roam)
-----
-Got an idea for an EmacsConf talk or session? We'd love to hear from you! Check out the [[Call for Participation|/2024/cfp]] for details.
-
<!-- End of emacsconf-publish-after-page -->
diff --git a/2024/info/papers-before.md b/2024/info/papers-before.md
index b8e44d2c..29b09c30 100644
--- a/2024/info/papers-before.md
+++ b/2024/info/papers-before.md
@@ -1,8 +1,14 @@
<!-- Automatically generated by emacsconf-publish-before-page -->
-[[!toc ]]
-Format: 10-min talk; Q&A: BigBlueButton conference room
-Status: Waiting for video from speaker
+The following image shows where the talk is in the schedule for Sat 2024-12-07. Solid lines show talks with Q&A via BigBlueButton. Dashed lines show talks with Q&A via IRC or Etherpad.<div class="schedule-in-context schedule-svg-container" data-slug="papers">
+<svg width="700" height="150" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><title>Schedule for Saturday</title><rect width="700" height="150" x="0" y="0" fill="white"></rect><text font-size="10" fill="black" y="12" x="3">Saturday</text><a href="/2024/talks/sat-open" title="Saturday opening remarks" data-slug="sat-open"><title> 9:00- 9:10 Saturday opening remarks</title><rect x="0" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(11,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sat-open</text></g></a><a href="/2024/talks/papers" title="Writing academic papers in Org-Roam" data-slug="papers"><title> 9:10- 9:20 Writing academic papers in Org-Roam</title><rect stroke-width="3" x="13" y="15" opacity="0.8" width="13" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(24,73)"><text font-weight="bold" fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">papers</text></g></a><a href="/2024/talks/project" title="Managing writing project metadata with org-mode" data-slug="project"><title> 9:40-10:00 Managing writing project metadata with org-mode</title><rect x="54" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(79,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">project</text></g></a><a href="/2024/talks/org-update" title="The Future of Org" data-slug="org-update"><title>10:20-10:40 The Future of Org</title><rect x="109" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(134,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">org-update</text></g></a><a href="/2024/talks/color" title="Colour your Emacs with ease" data-slug="color"><title>11:00-11:10 Colour your Emacs with ease</title><rect x="164" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(175,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">color</text></g></a><a href="/2024/talks/theme" title="My journey of finding and creating the “perfect” Emacs theme" data-slug="theme"><title> 1:00- 1:10 My journey of finding and creating the “perfect” Emacs theme</title><rect x="329" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(340,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">theme</text></g></a><a href="/2024/talks/water" title="Watering my (digital) plant with Emacs timers" data-slug="water"><title> 1:30- 1:45 Watering my (digital) plant with Emacs timers</title><rect x="370" y="15" opacity="0.5" width="20" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(388,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">water</text></g></a><a href="/2024/talks/shell" title="Emacs as a shell" data-slug="shell"><title> 1:55- 2:35 Emacs as a shell</title><rect x="404" y="15" opacity="0.5" width="54" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(456,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">shell</text></g></a><a href="/2024/talks/casual" title="Re-imagining the Emacs user experience with Casual Suite" data-slug="casual"><title> 2:45- 3:05 Re-imagining the Emacs user experience with Casual Suite</title><rect x="473" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(498,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">casual</text></g></a><a href="/2024/talks/hyperdrive" title="New in hyperdrive.el: org-transclusion, easy installation, and more!" data-slug="hyperdrive"><title> 3:25- 3:45 New in hyperdrive.el: org-transclusion, easy installation, and more!</title><rect x="528" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(553,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">hyperdrive</text></g></a><a href="/2024/talks/writing" title="Emacs Writing Studio" data-slug="writing"><title> 4:05- 4:15 Emacs Writing Studio</title><rect x="583" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(594,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">writing</text></g></a><a href="/2024/talks/emacs30" title="Emacs 30 Highlights" data-slug="emacs30"><title> 4:25- 4:50 Emacs 30 Highlights</title><rect x="610" y="15" opacity="0.5" width="34" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(642,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">emacs30</text></g></a><a href="/2024/talks/sat-close" title="Saturday closing remarks" data-slug="sat-close"><title> 5:00- 5:10 Saturday closing remarks</title><rect x="658" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(669,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sat-close</text></g></a><a href="/2024/talks/gypsum" title="Gypsum: my clone of Emacs and ELisp written in Scheme" data-slug="gypsum"><title>10:00-10:20 Gypsum: my clone of Emacs and ELisp written in Scheme</title><rect x="82" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(107,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">gypsum</text></g></a><a href="/2024/talks/rust" title="An experimental Emacs core in Rust" data-slug="rust"><title>10:40-11:00 An experimental Emacs core in Rust</title><rect x="137" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(162,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">rust</text></g></a><a href="/2024/talks/p-search" title="p-search: a local search engine in Emacs" data-slug="p-search"><title>11:20-11:45 p-search: a local search engine in Emacs</title><rect x="192" y="75" opacity="0.5" width="34" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(224,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">p-search</text></g></a><a href="/2024/talks/julia" title="Exploring shared philosophies in Julia and Emacs" data-slug="julia"><title> 1:00- 1:10 Exploring shared philosophies in Julia and Emacs</title><rect x="329" y="75" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(340,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">julia</text></g></a><a href="/2024/talks/guile" title="Beguiling Emacs: Guile-Emacs relaunched!" data-slug="guile"><title> 1:25- 1:45 Beguiling Emacs: Guile-Emacs relaunched!</title><rect x="363" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="5,5,5" fill="skyblue"></rect><g transform="translate(388,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">guile</text></g></a><a href="/2024/talks/secrets" title="Committing secrets with git using sops-mode" data-slug="secrets"><title> 1:55- 2:05 Committing secrets with git using sops-mode</title><rect x="404" y="75" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(415,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">secrets</text></g></a><a href="/2024/talks/mcclim" title="Elisp and McCLIM" data-slug="mcclim"><title> 2:25- 3:25 Elisp and McCLIM</title><rect x="446" y="75" opacity="0.5" width="82" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(526,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">mcclim</text></g></a><a href="/2024/talks/repro" title="Reproducibly building Emacs: “Hey your checksum is the same as mine!”" data-slug="repro"><title> 3:45- 4:05 Reproducibly building Emacs: “Hey your checksum is the same as mine!”</title><rect x="555" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(580,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">repro</text></g></a><g transform="translate(0,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">9 AM</text></g><g transform="translate(82,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">10 AM</text></g><g transform="translate(164,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">11 AM</text></g><g transform="translate(247,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">12 PM</text></g><g transform="translate(329,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">1 PM</text></g><g transform="translate(411,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">2 PM</text></g><g transform="translate(494,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">3 PM</text></g><g transform="translate(576,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">4 PM</text></g><g transform="translate(658,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">5 PM</text></g></svg>
+</div>
+
+[[!toc ]]
+Format: 11-min talk; Q&A: BigBlueButton conference room <https://media.emacsconf.org/2024/current/bbb-papers.html>
+Discuss on IRC: [#emacsconf](https://chat.emacsconf.org/?join=emacsconf)
+Status: Quality check
+<div>Times in different time zones:</div><div class="times" start="2024-12-07T14:10:00Z" end="2024-12-07T14:20:00Z"><div class="conf-time">Saturday, Dec 7 2024, ~9:10 AM - 9:20 AM EST (US/Eastern)</div><div class="others"><div>which is the same as:</div>Saturday, Dec 7 2024, ~8:10 AM - 8:20 AM CST (US/Central)<br />Saturday, Dec 7 2024, ~7:10 AM - 7:20 AM MST (US/Mountain)<br />Saturday, Dec 7 2024, ~6:10 AM - 6:20 AM PST (US/Pacific)<br />Saturday, Dec 7 2024, ~2:10 PM - 2:20 PM UTC <br />Saturday, Dec 7 2024, ~3:10 PM - 3:20 PM CET (Europe/Paris)<br />Saturday, Dec 7 2024, ~4:10 PM - 4:20 PM EET (Europe/Athens)<br />Saturday, Dec 7 2024, ~7:40 PM - 7:50 PM IST (Asia/Kolkata)<br />Saturday, Dec 7 2024, ~10:10 PM - 10:20 PM +08 (Asia/Singapore)<br />Saturday, Dec 7 2024, ~11:10 PM - 11:20 PM JST (Asia/Tokyo)</div></div><div><strong><a href="/2024/watch/gen/">Find out how to watch and participate</a></strong></div>
diff --git a/2024/info/papers-nav.md b/2024/info/papers-nav.md
index 402b6fbd..7d153318 100644
--- a/2024/info/papers-nav.md
+++ b/2024/info/papers-nav.md
@@ -1,6 +1,7 @@
<div class="talk-nav">
Back to the [[talks]]
-Next by track: <a href="/2024/talks/links">Unlocking linked data: replacing specialized apps with an Org-based semantic wiki</a>
-Track: <span class="sched-track General">General</span>
+Previous by time: <a href="/2024/talks/sat-open">Saturday opening remarks</a>
+Next by time: <a href="/2024/talks/project">Managing writing project metadata with org-mode</a>
+Track: <span class="sched-track General">General</span> - <strong><a href="https://emacsconf.org/2024/watch/gen">Watch</a></strong>
</div>
diff --git a/2024/info/pgmacs-after.md b/2024/info/pgmacs-after.md
index bd63ed38..5181bb61 100644
--- a/2024/info/pgmacs-after.md
+++ b/2024/info/pgmacs-after.md
@@ -3,8 +3,5 @@
Questions or comments? Please e-mail [eric.marsden@risk-engineering.org](mailto:eric.marsden@risk-engineering.org?subject=Comment%20for%20EmacsConf%202023%20pgmacs%3A%20PGmacs%3A%20browsing%20and%20editing%20PostgreSQL%20databases%20from%20Emacs)
-----
-Got an idea for an EmacsConf talk or session? We'd love to hear from you! Check out the [[Call for Participation|/2024/cfp]] for details.
-
<!-- End of emacsconf-publish-after-page -->
diff --git a/2024/info/pgmacs-before.md b/2024/info/pgmacs-before.md
index b8e44d2c..52632be2 100644
--- a/2024/info/pgmacs-before.md
+++ b/2024/info/pgmacs-before.md
@@ -1,8 +1,14 @@
<!-- Automatically generated by emacsconf-publish-before-page -->
-[[!toc ]]
-Format: 10-min talk; Q&A: BigBlueButton conference room
-Status: Waiting for video from speaker
+The following image shows where the talk is in the schedule for Sun 2024-12-08. Solid lines show talks with Q&A via BigBlueButton. Dashed lines show talks with Q&A via IRC or Etherpad.<div class="schedule-in-context schedule-svg-container" data-slug="pgmacs">
+<svg width="700" height="150" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><title>Schedule for Sunday</title><rect width="700" height="150" x="0" y="0" fill="white"></rect><text font-size="10" fill="black" y="12" x="3">Sunday</text><a href="/2024/talks/sun-open" title="Sunday opening remarks" data-slug="sun-open"><title> 9:00- 9:10 Sunday opening remarks</title><rect x="0" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(11,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sun-open</text></g></a><a href="/2024/talks/links" title="Unlocking linked data: replacing specialized apps with an Org-based semantic wiki" data-slug="links"><title> 9:10- 9:20 Unlocking linked data: replacing specialized apps with an Org-based semantic wiki</title><rect x="13" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(24,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">links</text></g></a><a href="/2024/talks/regex" title="Emacs regex compilation and future directions for expressive pattern matching" data-slug="regex"><title> 9:30- 9:50 Emacs regex compilation and future directions for expressive pattern matching</title><rect x="41" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(66,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">regex</text></g></a><a href="/2024/talks/learning" title="Survival of the skillest: Thriving in the learning jungle" data-slug="learning"><title>10:00-10:20 Survival of the skillest: Thriving in the learning jungle</title><rect x="82" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(107,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">learning</text></g></a><a href="/2024/talks/language" title="Immersive language learning with Emacs" data-slug="language"><title>10:30-10:40 Immersive language learning with Emacs</title><rect x="123" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(134,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">language</text></g></a><a href="/2024/talks/org-teach" title="org-teach: a minor mode for writing course materials in Emacs" data-slug="org-teach"><title>10:50-11:10 org-teach: a minor mode for writing course materials in Emacs</title><rect x="150" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(175,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">org-teach</text></g></a><a href="/2024/talks/hyperbole" title="Fun things with GNU Hyperbole" data-slug="hyperbole"><title>11:25-11:40 Fun things with GNU Hyperbole</title><rect x="199" y="15" opacity="0.5" width="20" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(217,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">hyperbole</text></g></a><a href="/2024/talks/hywiki" title="HyWiki: Fast, hyperlinked note-taking with no markup required" data-slug="hywiki"><title> 1:00- 1:20 HyWiki: Fast, hyperlinked note-taking with no markup required</title><rect x="329" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(354,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">hywiki</text></g></a><a href="/2024/talks/pgmacs" title="PGmacs: browsing and editing PostgreSQL databases from Emacs" data-slug="pgmacs"><title> 1:35- 1:50 PGmacs: browsing and editing PostgreSQL databases from Emacs</title><rect stroke-width="3" x="377" y="15" opacity="0.8" width="20" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(395,73)"><text font-weight="bold" fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">pgmacs</text></g></a><a href="/2024/talks/blee" title="About Blee: enveloping our own autonomy directed digital ecosystem with Emacs" data-slug="blee"><title> 2:05- 2:45 About Blee: enveloping our own autonomy directed digital ecosystem with Emacs</title><rect x="418" y="15" opacity="0.5" width="54" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(470,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">blee</text></g></a><a href="/2024/talks/literate" title="Literate programming for the 21st Century" data-slug="literate"><title> 2:55- 3:15 Literate programming for the 21st Century</title><rect x="487" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(512,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">literate</text></g></a><a href="/2024/talks/students" title="An example of a cohesive student workflow in Emacs" data-slug="students"><title> 3:30- 3:40 An example of a cohesive student workflow in Emacs</title><rect x="535" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(546,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">students</text></g></a><a href="/2024/talks/sharing" title="So you want to be an Emacs-fluencer?" data-slug="sharing"><title> 3:50- 4:10 So you want to be an Emacs-fluencer?</title><rect x="562" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(587,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sharing</text></g></a><a href="/2024/talks/transducers" title="Transducers: finally, ergonomic data processing for Emacs!" data-slug="transducers"><title> 4:20- 4:50 Transducers: finally, ergonomic data processing for Emacs!</title><rect x="603" y="15" opacity="0.5" width="41" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(642,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">transducers</text></g></a><a href="/2024/talks/sun-close" title="Sunday closing remarks" data-slug="sun-close"><title> 5:00- 5:10 Sunday closing remarks</title><rect x="658" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(669,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sun-close</text></g></a><g transform="translate(0,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">9 AM</text></g><g transform="translate(82,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">10 AM</text></g><g transform="translate(164,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">11 AM</text></g><g transform="translate(247,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">12 PM</text></g><g transform="translate(329,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">1 PM</text></g><g transform="translate(411,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">2 PM</text></g><g transform="translate(494,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">3 PM</text></g><g transform="translate(576,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">4 PM</text></g><g transform="translate(658,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">5 PM</text></g></svg>
+</div>
+
+[[!toc ]]
+Format: 14-min talk; Q&A: BigBlueButton conference room <https://media.emacsconf.org/2024/current/bbb-pgmacs.html>
+Discuss on IRC: [#emacsconf](https://chat.emacsconf.org/?join=emacsconf)
+Status: Ready to stream
+<div>Times in different time zones:</div><div class="times" start="2024-12-08T18:35:00Z" end="2024-12-08T18:50:00Z"><div class="conf-time">Sunday, Dec 8 2024, ~1:35 PM - 1:50 PM EST (US/Eastern)</div><div class="others"><div>which is the same as:</div>Sunday, Dec 8 2024, ~12:35 PM - 12:50 PM CST (US/Central)<br />Sunday, Dec 8 2024, ~11:35 AM - 11:50 AM MST (US/Mountain)<br />Sunday, Dec 8 2024, ~10:35 AM - 10:50 AM PST (US/Pacific)<br />Sunday, Dec 8 2024, ~6:35 PM - 6:50 PM UTC <br />Sunday, Dec 8 2024, ~7:35 PM - 7:50 PM CET (Europe/Paris)<br />Sunday, Dec 8 2024, ~8:35 PM - 8:50 PM EET (Europe/Athens)<br />Monday, Dec 9 2024, ~12:05 AM - 12:20 AM IST (Asia/Kolkata)<br />Monday, Dec 9 2024, ~2:35 AM - 2:50 AM +08 (Asia/Singapore)<br />Monday, Dec 9 2024, ~3:35 AM - 3:50 AM JST (Asia/Tokyo)</div></div><div><strong><a href="/2024/watch/gen/">Find out how to watch and participate</a></strong></div>
diff --git a/2024/info/pgmacs-nav.md b/2024/info/pgmacs-nav.md
index fa56629f..2f6ab0e8 100644
--- a/2024/info/pgmacs-nav.md
+++ b/2024/info/pgmacs-nav.md
@@ -1,7 +1,7 @@
<div class="talk-nav">
Back to the [[talks]]
-Previous by track: <a href="/2024/talks/writing">Emacs Writing Studio</a>
-Next by track: <a href="/2024/talks/p-search">p-search: a local search engine in Emacs</a>
-Track: <span class="sched-track General">General</span>
+Previous by time: <a href="/2024/talks/hywiki">HyWiki: Fast, hyperlinked note-taking with no markup required</a>
+Next by time: <a href="/2024/talks/blee">About Blee: enveloping our own autonomy directed digital ecosystem with Emacs</a>
+Track: <span class="sched-track General">General</span> - <strong><a href="https://emacsconf.org/2024/watch/gen">Watch</a></strong>
</div>
diff --git a/2024/info/project-after.md b/2024/info/project-after.md
index 32ab8822..a7f8a052 100644
--- a/2024/info/project-after.md
+++ b/2024/info/project-after.md
@@ -3,8 +3,5 @@
Questions or comments? Please e-mail [blaine-mooers@ouhsc.edu](mailto:blaine-mooers@ouhsc.edu?subject=Comment%20for%20EmacsConf%202023%20project%3A%20Managing%20writing%20project%20metadata%20with%20org-mode)
-----
-Got an idea for an EmacsConf talk or session? We'd love to hear from you! Check out the [[Call for Participation|/2024/cfp]] for details.
-
<!-- End of emacsconf-publish-after-page -->
diff --git a/2024/info/project-before.md b/2024/info/project-before.md
index 7cb3e64d..df887994 100644
--- a/2024/info/project-before.md
+++ b/2024/info/project-before.md
@@ -1,8 +1,14 @@
<!-- Automatically generated by emacsconf-publish-before-page -->
-[[!toc ]]
-Format: 20-min talk; Q&A: BigBlueButton conference room
-Status: Waiting for video from speaker
+The following image shows where the talk is in the schedule for Sat 2024-12-07. Solid lines show talks with Q&A via BigBlueButton. Dashed lines show talks with Q&A via IRC or Etherpad.<div class="schedule-in-context schedule-svg-container" data-slug="project">
+<svg width="700" height="150" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><title>Schedule for Saturday</title><rect width="700" height="150" x="0" y="0" fill="white"></rect><text font-size="10" fill="black" y="12" x="3">Saturday</text><a href="/2024/talks/sat-open" title="Saturday opening remarks" data-slug="sat-open"><title> 9:00- 9:10 Saturday opening remarks</title><rect x="0" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(11,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sat-open</text></g></a><a href="/2024/talks/papers" title="Writing academic papers in Org-Roam" data-slug="papers"><title> 9:10- 9:20 Writing academic papers in Org-Roam</title><rect x="13" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(24,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">papers</text></g></a><a href="/2024/talks/project" title="Managing writing project metadata with org-mode" data-slug="project"><title> 9:40-10:00 Managing writing project metadata with org-mode</title><rect stroke-width="3" x="54" y="15" opacity="0.8" width="27" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(79,73)"><text font-weight="bold" fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">project</text></g></a><a href="/2024/talks/org-update" title="The Future of Org" data-slug="org-update"><title>10:20-10:40 The Future of Org</title><rect x="109" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(134,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">org-update</text></g></a><a href="/2024/talks/color" title="Colour your Emacs with ease" data-slug="color"><title>11:00-11:10 Colour your Emacs with ease</title><rect x="164" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(175,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">color</text></g></a><a href="/2024/talks/theme" title="My journey of finding and creating the “perfect” Emacs theme" data-slug="theme"><title> 1:00- 1:10 My journey of finding and creating the “perfect” Emacs theme</title><rect x="329" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(340,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">theme</text></g></a><a href="/2024/talks/water" title="Watering my (digital) plant with Emacs timers" data-slug="water"><title> 1:30- 1:45 Watering my (digital) plant with Emacs timers</title><rect x="370" y="15" opacity="0.5" width="20" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(388,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">water</text></g></a><a href="/2024/talks/shell" title="Emacs as a shell" data-slug="shell"><title> 1:55- 2:35 Emacs as a shell</title><rect x="404" y="15" opacity="0.5" width="54" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(456,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">shell</text></g></a><a href="/2024/talks/casual" title="Re-imagining the Emacs user experience with Casual Suite" data-slug="casual"><title> 2:45- 3:05 Re-imagining the Emacs user experience with Casual Suite</title><rect x="473" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(498,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">casual</text></g></a><a href="/2024/talks/hyperdrive" title="New in hyperdrive.el: org-transclusion, easy installation, and more!" data-slug="hyperdrive"><title> 3:25- 3:45 New in hyperdrive.el: org-transclusion, easy installation, and more!</title><rect x="528" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(553,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">hyperdrive</text></g></a><a href="/2024/talks/writing" title="Emacs Writing Studio" data-slug="writing"><title> 4:05- 4:15 Emacs Writing Studio</title><rect x="583" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(594,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">writing</text></g></a><a href="/2024/talks/emacs30" title="Emacs 30 Highlights" data-slug="emacs30"><title> 4:25- 4:50 Emacs 30 Highlights</title><rect x="610" y="15" opacity="0.5" width="34" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(642,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">emacs30</text></g></a><a href="/2024/talks/sat-close" title="Saturday closing remarks" data-slug="sat-close"><title> 5:00- 5:10 Saturday closing remarks</title><rect x="658" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(669,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sat-close</text></g></a><a href="/2024/talks/gypsum" title="Gypsum: my clone of Emacs and ELisp written in Scheme" data-slug="gypsum"><title>10:00-10:20 Gypsum: my clone of Emacs and ELisp written in Scheme</title><rect x="82" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(107,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">gypsum</text></g></a><a href="/2024/talks/rust" title="An experimental Emacs core in Rust" data-slug="rust"><title>10:40-11:00 An experimental Emacs core in Rust</title><rect x="137" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(162,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">rust</text></g></a><a href="/2024/talks/p-search" title="p-search: a local search engine in Emacs" data-slug="p-search"><title>11:20-11:45 p-search: a local search engine in Emacs</title><rect x="192" y="75" opacity="0.5" width="34" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(224,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">p-search</text></g></a><a href="/2024/talks/julia" title="Exploring shared philosophies in Julia and Emacs" data-slug="julia"><title> 1:00- 1:10 Exploring shared philosophies in Julia and Emacs</title><rect x="329" y="75" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(340,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">julia</text></g></a><a href="/2024/talks/guile" title="Beguiling Emacs: Guile-Emacs relaunched!" data-slug="guile"><title> 1:25- 1:45 Beguiling Emacs: Guile-Emacs relaunched!</title><rect x="363" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="5,5,5" fill="skyblue"></rect><g transform="translate(388,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">guile</text></g></a><a href="/2024/talks/secrets" title="Committing secrets with git using sops-mode" data-slug="secrets"><title> 1:55- 2:05 Committing secrets with git using sops-mode</title><rect x="404" y="75" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(415,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">secrets</text></g></a><a href="/2024/talks/mcclim" title="Elisp and McCLIM" data-slug="mcclim"><title> 2:25- 3:25 Elisp and McCLIM</title><rect x="446" y="75" opacity="0.5" width="82" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(526,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">mcclim</text></g></a><a href="/2024/talks/repro" title="Reproducibly building Emacs: “Hey your checksum is the same as mine!”" data-slug="repro"><title> 3:45- 4:05 Reproducibly building Emacs: “Hey your checksum is the same as mine!”</title><rect x="555" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(580,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">repro</text></g></a><g transform="translate(0,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">9 AM</text></g><g transform="translate(82,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">10 AM</text></g><g transform="translate(164,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">11 AM</text></g><g transform="translate(247,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">12 PM</text></g><g transform="translate(329,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">1 PM</text></g><g transform="translate(411,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">2 PM</text></g><g transform="translate(494,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">3 PM</text></g><g transform="translate(576,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">4 PM</text></g><g transform="translate(658,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">5 PM</text></g></svg>
+</div>
+
+[[!toc ]]
+Format: 22-min talk; Q&A: BigBlueButton conference room <https://media.emacsconf.org/2024/current/bbb-project.html>
+Discuss on IRC: [#emacsconf](https://chat.emacsconf.org/?join=emacsconf)
+Status: Quality check
+<div>Times in different time zones:</div><div class="times" start="2024-12-07T14:40:00Z" end="2024-12-07T15:00:00Z"><div class="conf-time">Saturday, Dec 7 2024, ~9:40 AM - 10:00 AM EST (US/Eastern)</div><div class="others"><div>which is the same as:</div>Saturday, Dec 7 2024, ~8:40 AM - 9:00 AM CST (US/Central)<br />Saturday, Dec 7 2024, ~7:40 AM - 8:00 AM MST (US/Mountain)<br />Saturday, Dec 7 2024, ~6:40 AM - 7:00 AM PST (US/Pacific)<br />Saturday, Dec 7 2024, ~2:40 PM - 3:00 PM UTC <br />Saturday, Dec 7 2024, ~3:40 PM - 4:00 PM CET (Europe/Paris)<br />Saturday, Dec 7 2024, ~4:40 PM - 5:00 PM EET (Europe/Athens)<br />Saturday, Dec 7 2024, ~8:10 PM - 8:30 PM IST (Asia/Kolkata)<br />Saturday, Dec 7 2024, ~10:40 PM - 11:00 PM +08 (Asia/Singapore)<br />Saturday, Dec 7 2024, ~11:40 PM - 12:00 AM JST (Asia/Tokyo)</div></div><div><strong><a href="/2024/watch/gen/">Find out how to watch and participate</a></strong></div>
diff --git a/2024/info/project-nav.md b/2024/info/project-nav.md
index e9dcdd47..ccc6cc97 100644
--- a/2024/info/project-nav.md
+++ b/2024/info/project-nav.md
@@ -1,7 +1,7 @@
<div class="talk-nav">
Back to the [[talks]]
-Previous by track: <a href="/2024/talks/hywiki">HyWiki: Fast, hyperlinked note-taking with no markup required</a>
-Next by track: <a href="/2024/talks/blee">About Blee: towards an integrated Emacs environment for enveloping our own autonomy directed digital ecosystem</a>
-Track: <span class="sched-track General">General</span>
+Previous by time: <a href="/2024/talks/papers">Writing academic papers in Org-Roam</a>
+Next by time: <a href="/2024/talks/gypsum">Gypsum: my clone of Emacs and ELisp written in Scheme</a>
+Track: <span class="sched-track General">General</span> - <strong><a href="https://emacsconf.org/2024/watch/gen">Watch</a></strong>
</div>
diff --git a/2024/info/regex-after.md b/2024/info/regex-after.md
index b3a8da15..6ef39592 100644
--- a/2024/info/regex-after.md
+++ b/2024/info/regex-after.md
@@ -3,8 +3,5 @@
Questions or comments? Please e-mail [dmcC2@hypnicjerk.ai](mailto:dmcC2@hypnicjerk.ai?subject=Comment%20for%20EmacsConf%202023%20regex%3A%20Emacs%20regex%20compilation%20and%20future%20directions%20for%20expressive%20pattern%20matching)
-----
-Got an idea for an EmacsConf talk or session? We'd love to hear from you! Check out the [[Call for Participation|/2024/cfp]] for details.
-
<!-- End of emacsconf-publish-after-page -->
diff --git a/2024/info/regex-before.md b/2024/info/regex-before.md
index 49413c04..f69dbc9f 100644
--- a/2024/info/regex-before.md
+++ b/2024/info/regex-before.md
@@ -1,8 +1,14 @@
<!-- Automatically generated by emacsconf-publish-before-page -->
+
+The following image shows where the talk is in the schedule for Sun 2024-12-08. Solid lines show talks with Q&A via BigBlueButton. Dashed lines show talks with Q&A via IRC or Etherpad.<div class="schedule-in-context schedule-svg-container" data-slug="regex">
+<svg width="700" height="150" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><title>Schedule for Sunday</title><rect width="700" height="150" x="0" y="0" fill="white"></rect><text font-size="10" fill="black" y="12" x="3">Sunday</text><a href="/2024/talks/sun-open" title="Sunday opening remarks" data-slug="sun-open"><title> 9:00- 9:10 Sunday opening remarks</title><rect x="0" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(11,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sun-open</text></g></a><a href="/2024/talks/links" title="Unlocking linked data: replacing specialized apps with an Org-based semantic wiki" data-slug="links"><title> 9:10- 9:20 Unlocking linked data: replacing specialized apps with an Org-based semantic wiki</title><rect x="13" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(24,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">links</text></g></a><a href="/2024/talks/regex" title="Emacs regex compilation and future directions for expressive pattern matching" data-slug="regex"><title> 9:30- 9:50 Emacs regex compilation and future directions for expressive pattern matching</title><rect stroke-width="3" x="41" y="15" opacity="0.8" width="27" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(66,73)"><text font-weight="bold" fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">regex</text></g></a><a href="/2024/talks/learning" title="Survival of the skillest: Thriving in the learning jungle" data-slug="learning"><title>10:00-10:20 Survival of the skillest: Thriving in the learning jungle</title><rect x="82" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(107,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">learning</text></g></a><a href="/2024/talks/language" title="Immersive language learning with Emacs" data-slug="language"><title>10:30-10:40 Immersive language learning with Emacs</title><rect x="123" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(134,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">language</text></g></a><a href="/2024/talks/org-teach" title="org-teach: a minor mode for writing course materials in Emacs" data-slug="org-teach"><title>10:50-11:10 org-teach: a minor mode for writing course materials in Emacs</title><rect x="150" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(175,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">org-teach</text></g></a><a href="/2024/talks/hyperbole" title="Fun things with GNU Hyperbole" data-slug="hyperbole"><title>11:25-11:40 Fun things with GNU Hyperbole</title><rect x="199" y="15" opacity="0.5" width="20" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(217,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">hyperbole</text></g></a><a href="/2024/talks/hywiki" title="HyWiki: Fast, hyperlinked note-taking with no markup required" data-slug="hywiki"><title> 1:00- 1:20 HyWiki: Fast, hyperlinked note-taking with no markup required</title><rect x="329" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(354,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">hywiki</text></g></a><a href="/2024/talks/pgmacs" title="PGmacs: browsing and editing PostgreSQL databases from Emacs" data-slug="pgmacs"><title> 1:35- 1:50 PGmacs: browsing and editing PostgreSQL databases from Emacs</title><rect x="377" y="15" opacity="0.5" width="20" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(395,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">pgmacs</text></g></a><a href="/2024/talks/blee" title="About Blee: enveloping our own autonomy directed digital ecosystem with Emacs" data-slug="blee"><title> 2:05- 2:45 About Blee: enveloping our own autonomy directed digital ecosystem with Emacs</title><rect x="418" y="15" opacity="0.5" width="54" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(470,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">blee</text></g></a><a href="/2024/talks/literate" title="Literate programming for the 21st Century" data-slug="literate"><title> 2:55- 3:15 Literate programming for the 21st Century</title><rect x="487" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(512,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">literate</text></g></a><a href="/2024/talks/students" title="An example of a cohesive student workflow in Emacs" data-slug="students"><title> 3:30- 3:40 An example of a cohesive student workflow in Emacs</title><rect x="535" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(546,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">students</text></g></a><a href="/2024/talks/sharing" title="So you want to be an Emacs-fluencer?" data-slug="sharing"><title> 3:50- 4:10 So you want to be an Emacs-fluencer?</title><rect x="562" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(587,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sharing</text></g></a><a href="/2024/talks/transducers" title="Transducers: finally, ergonomic data processing for Emacs!" data-slug="transducers"><title> 4:20- 4:50 Transducers: finally, ergonomic data processing for Emacs!</title><rect x="603" y="15" opacity="0.5" width="41" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(642,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">transducers</text></g></a><a href="/2024/talks/sun-close" title="Sunday closing remarks" data-slug="sun-close"><title> 5:00- 5:10 Sunday closing remarks</title><rect x="658" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(669,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sun-close</text></g></a><g transform="translate(0,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">9 AM</text></g><g transform="translate(82,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">10 AM</text></g><g transform="translate(164,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">11 AM</text></g><g transform="translate(247,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">12 PM</text></g><g transform="translate(329,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">1 PM</text></g><g transform="translate(411,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">2 PM</text></g><g transform="translate(494,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">3 PM</text></g><g transform="translate(576,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">4 PM</text></g><g transform="translate(658,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">5 PM</text></g></svg>
+</div>
+
[[!toc ]]
-Format: 20-min talk; Q&A: IRC
+Format: 20-min talk; Q&A: IRC <https://chat.emacsconf.org/?join=emacsconf>
+Discuss on IRC: [#emacsconf](https://chat.emacsconf.org/?join=emacsconf)
Status: Waiting for video from speaker
-
+<div>Times in different time zones:</div><div class="times" start="2024-12-08T14:30:00Z" end="2024-12-08T14:50:00Z"><div class="conf-time">Sunday, Dec 8 2024, ~9:30 AM - 9:50 AM EST (US/Eastern)</div><div class="others"><div>which is the same as:</div>Sunday, Dec 8 2024, ~8:30 AM - 8:50 AM CST (US/Central)<br />Sunday, Dec 8 2024, ~7:30 AM - 7:50 AM MST (US/Mountain)<br />Sunday, Dec 8 2024, ~6:30 AM - 6:50 AM PST (US/Pacific)<br />Sunday, Dec 8 2024, ~2:30 PM - 2:50 PM UTC <br />Sunday, Dec 8 2024, ~3:30 PM - 3:50 PM CET (Europe/Paris)<br />Sunday, Dec 8 2024, ~4:30 PM - 4:50 PM EET (Europe/Athens)<br />Sunday, Dec 8 2024, ~8:00 PM - 8:20 PM IST (Asia/Kolkata)<br />Sunday, Dec 8 2024, ~10:30 PM - 10:50 PM +08 (Asia/Singapore)<br />Sunday, Dec 8 2024, ~11:30 PM - 11:50 PM JST (Asia/Tokyo)</div></div><div><strong><a href="/2024/watch/gen/">Find out how to watch and participate</a></strong></div>
diff --git a/2024/info/regex-nav.md b/2024/info/regex-nav.md
index 9a12c594..b5a4ae77 100644
--- a/2024/info/regex-nav.md
+++ b/2024/info/regex-nav.md
@@ -1,7 +1,7 @@
<div class="talk-nav">
Back to the [[talks]]
-Previous by track: <a href="/2024/talks/guile">Beguiling Emacs: Guile-Emacs relaunched!</a>
-Next by track: <a href="/2024/talks/mcclim">Elisp and McCLIM</a>
-Track: <span class="sched-track Development">Development</span>
+Previous by time: <a href="/2024/talks/links">Unlocking linked data: replacing specialized apps with an Org-based semantic wiki</a>
+Next by time: <a href="/2024/talks/learning">Survival of the skillest: Thriving in the learning jungle</a>
+Track: <span class="sched-track General">General</span> - <strong><a href="https://emacsconf.org/2024/watch/gen">Watch</a></strong>
</div>
diff --git a/2024/info/repro-after.md b/2024/info/repro-after.md
index 5b2aa0ff..4d9f1675 100644
--- a/2024/info/repro-after.md
+++ b/2024/info/repro-after.md
@@ -3,8 +3,5 @@
Questions or comments? Please e-mail [ajgrothe@yahoo.com](mailto:ajgrothe@yahoo.com?subject=Comment%20for%20EmacsConf%202023%20repro%3A%20Reproducibly%20building%20Emacs%3A%20%E2%80%9CHey%20your%20checksum%20is%20the%20same%20as%20mine%21%E2%80%9D)
-----
-Got an idea for an EmacsConf talk or session? We'd love to hear from you! Check out the [[Call for Participation|/2024/cfp]] for details.
-
<!-- End of emacsconf-publish-after-page -->
diff --git a/2024/info/repro-before.md b/2024/info/repro-before.md
index 7cb3e64d..4b82aee5 100644
--- a/2024/info/repro-before.md
+++ b/2024/info/repro-before.md
@@ -1,8 +1,14 @@
<!-- Automatically generated by emacsconf-publish-before-page -->
+
+The following image shows where the talk is in the schedule for Sat 2024-12-07. Solid lines show talks with Q&A via BigBlueButton. Dashed lines show talks with Q&A via IRC or Etherpad.<div class="schedule-in-context schedule-svg-container" data-slug="repro">
+<svg width="700" height="150" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><title>Schedule for Saturday</title><rect width="700" height="150" x="0" y="0" fill="white"></rect><text font-size="10" fill="black" y="12" x="3">Saturday</text><a href="/2024/talks/sat-open" title="Saturday opening remarks" data-slug="sat-open"><title> 9:00- 9:10 Saturday opening remarks</title><rect x="0" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(11,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sat-open</text></g></a><a href="/2024/talks/papers" title="Writing academic papers in Org-Roam" data-slug="papers"><title> 9:10- 9:20 Writing academic papers in Org-Roam</title><rect x="13" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(24,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">papers</text></g></a><a href="/2024/talks/project" title="Managing writing project metadata with org-mode" data-slug="project"><title> 9:40-10:00 Managing writing project metadata with org-mode</title><rect x="54" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(79,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">project</text></g></a><a href="/2024/talks/org-update" title="The Future of Org" data-slug="org-update"><title>10:20-10:40 The Future of Org</title><rect x="109" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(134,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">org-update</text></g></a><a href="/2024/talks/color" title="Colour your Emacs with ease" data-slug="color"><title>11:00-11:10 Colour your Emacs with ease</title><rect x="164" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(175,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">color</text></g></a><a href="/2024/talks/theme" title="My journey of finding and creating the “perfect” Emacs theme" data-slug="theme"><title> 1:00- 1:10 My journey of finding and creating the “perfect” Emacs theme</title><rect x="329" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(340,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">theme</text></g></a><a href="/2024/talks/water" title="Watering my (digital) plant with Emacs timers" data-slug="water"><title> 1:30- 1:45 Watering my (digital) plant with Emacs timers</title><rect x="370" y="15" opacity="0.5" width="20" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(388,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">water</text></g></a><a href="/2024/talks/shell" title="Emacs as a shell" data-slug="shell"><title> 1:55- 2:35 Emacs as a shell</title><rect x="404" y="15" opacity="0.5" width="54" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(456,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">shell</text></g></a><a href="/2024/talks/casual" title="Re-imagining the Emacs user experience with Casual Suite" data-slug="casual"><title> 2:45- 3:05 Re-imagining the Emacs user experience with Casual Suite</title><rect x="473" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(498,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">casual</text></g></a><a href="/2024/talks/hyperdrive" title="New in hyperdrive.el: org-transclusion, easy installation, and more!" data-slug="hyperdrive"><title> 3:25- 3:45 New in hyperdrive.el: org-transclusion, easy installation, and more!</title><rect x="528" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(553,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">hyperdrive</text></g></a><a href="/2024/talks/writing" title="Emacs Writing Studio" data-slug="writing"><title> 4:05- 4:15 Emacs Writing Studio</title><rect x="583" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(594,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">writing</text></g></a><a href="/2024/talks/emacs30" title="Emacs 30 Highlights" data-slug="emacs30"><title> 4:25- 4:50 Emacs 30 Highlights</title><rect x="610" y="15" opacity="0.5" width="34" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(642,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">emacs30</text></g></a><a href="/2024/talks/sat-close" title="Saturday closing remarks" data-slug="sat-close"><title> 5:00- 5:10 Saturday closing remarks</title><rect x="658" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(669,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sat-close</text></g></a><a href="/2024/talks/gypsum" title="Gypsum: my clone of Emacs and ELisp written in Scheme" data-slug="gypsum"><title>10:00-10:20 Gypsum: my clone of Emacs and ELisp written in Scheme</title><rect x="82" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(107,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">gypsum</text></g></a><a href="/2024/talks/rust" title="An experimental Emacs core in Rust" data-slug="rust"><title>10:40-11:00 An experimental Emacs core in Rust</title><rect x="137" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(162,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">rust</text></g></a><a href="/2024/talks/p-search" title="p-search: a local search engine in Emacs" data-slug="p-search"><title>11:20-11:45 p-search: a local search engine in Emacs</title><rect x="192" y="75" opacity="0.5" width="34" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(224,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">p-search</text></g></a><a href="/2024/talks/julia" title="Exploring shared philosophies in Julia and Emacs" data-slug="julia"><title> 1:00- 1:10 Exploring shared philosophies in Julia and Emacs</title><rect x="329" y="75" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(340,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">julia</text></g></a><a href="/2024/talks/guile" title="Beguiling Emacs: Guile-Emacs relaunched!" data-slug="guile"><title> 1:25- 1:45 Beguiling Emacs: Guile-Emacs relaunched!</title><rect x="363" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="5,5,5" fill="skyblue"></rect><g transform="translate(388,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">guile</text></g></a><a href="/2024/talks/secrets" title="Committing secrets with git using sops-mode" data-slug="secrets"><title> 1:55- 2:05 Committing secrets with git using sops-mode</title><rect x="404" y="75" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(415,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">secrets</text></g></a><a href="/2024/talks/mcclim" title="Elisp and McCLIM" data-slug="mcclim"><title> 2:25- 3:25 Elisp and McCLIM</title><rect x="446" y="75" opacity="0.5" width="82" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(526,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">mcclim</text></g></a><a href="/2024/talks/repro" title="Reproducibly building Emacs: “Hey your checksum is the same as mine!”" data-slug="repro"><title> 3:45- 4:05 Reproducibly building Emacs: “Hey your checksum is the same as mine!”</title><rect stroke-width="3" x="555" y="75" opacity="0.8" width="27" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(580,133)"><text font-weight="bold" fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">repro</text></g></a><g transform="translate(0,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">9 AM</text></g><g transform="translate(82,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">10 AM</text></g><g transform="translate(164,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">11 AM</text></g><g transform="translate(247,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">12 PM</text></g><g transform="translate(329,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">1 PM</text></g><g transform="translate(411,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">2 PM</text></g><g transform="translate(494,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">3 PM</text></g><g transform="translate(576,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">4 PM</text></g><g transform="translate(658,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">5 PM</text></g></svg>
+</div>
+
[[!toc ]]
-Format: 20-min talk; Q&A: BigBlueButton conference room
+Format: 20-min talk; Q&A: BigBlueButton conference room <https://media.emacsconf.org/2024/current/bbb-repro.html>
+Discuss on IRC: [#emacsconf](https://chat.emacsconf.org/?join=emacsconf)
Status: Waiting for video from speaker
-
+<div>Times in different time zones:</div><div class="times" start="2024-12-07T20:45:00Z" end="2024-12-07T21:05:00Z"><div class="conf-time">Saturday, Dec 7 2024, ~3:45 PM - 4:05 PM EST (US/Eastern)</div><div class="others"><div>which is the same as:</div>Saturday, Dec 7 2024, ~2:45 PM - 3:05 PM CST (US/Central)<br />Saturday, Dec 7 2024, ~1:45 PM - 2:05 PM MST (US/Mountain)<br />Saturday, Dec 7 2024, ~12:45 PM - 1:05 PM PST (US/Pacific)<br />Saturday, Dec 7 2024, ~8:45 PM - 9:05 PM UTC <br />Saturday, Dec 7 2024, ~9:45 PM - 10:05 PM CET (Europe/Paris)<br />Saturday, Dec 7 2024, ~10:45 PM - 11:05 PM EET (Europe/Athens)<br />Sunday, Dec 8 2024, ~2:15 AM - 2:35 AM IST (Asia/Kolkata)<br />Sunday, Dec 8 2024, ~4:45 AM - 5:05 AM +08 (Asia/Singapore)<br />Sunday, Dec 8 2024, ~5:45 AM - 6:05 AM JST (Asia/Tokyo)</div></div><div><strong><a href="/2024/watch/dev/">Find out how to watch and participate</a></strong></div>
diff --git a/2024/info/repro-nav.md b/2024/info/repro-nav.md
index 3ca91b00..34ccc940 100644
--- a/2024/info/repro-nav.md
+++ b/2024/info/repro-nav.md
@@ -1,6 +1,7 @@
<div class="talk-nav">
Back to the [[talks]]
-Previous by track: <a href="/2024/talks/secrets">Committing secrets with git using sops-mode</a>
-Track: <span class="sched-track Development">Development</span>
+Previous by time: <a href="/2024/talks/hyperdrive">New in hyperdrive.el: org-transclusion, easy installation, and more!</a>
+Next by time: <a href="/2024/talks/writing">Emacs Writing Studio</a>
+Track: <span class="sched-track Development">Development</span> - <strong><a href="https://emacsconf.org/2024/watch/dev">Watch</a></strong>
</div>
diff --git a/2024/info/rust-after.md b/2024/info/rust-after.md
index b0f5b13a..336249c7 100644
--- a/2024/info/rust-after.md
+++ b/2024/info/rust-after.md
@@ -3,8 +3,5 @@
Questions or comments? Please e-mail [troy@troyhinckley.com](mailto:troy@troyhinckley.com?subject=Comment%20for%20EmacsConf%202023%20rust%3A%20An%20experimental%20Emacs%20core%20in%20Rust)
-----
-Got an idea for an EmacsConf talk or session? We'd love to hear from you! Check out the [[Call for Participation|/2024/cfp]] for details.
-
<!-- End of emacsconf-publish-after-page -->
diff --git a/2024/info/rust-before.md b/2024/info/rust-before.md
index 7cb3e64d..581bdf8f 100644
--- a/2024/info/rust-before.md
+++ b/2024/info/rust-before.md
@@ -1,8 +1,14 @@
<!-- Automatically generated by emacsconf-publish-before-page -->
-[[!toc ]]
-Format: 20-min talk; Q&A: BigBlueButton conference room
-Status: Waiting for video from speaker
+The following image shows where the talk is in the schedule for Sat 2024-12-07. Solid lines show talks with Q&A via BigBlueButton. Dashed lines show talks with Q&A via IRC or Etherpad.<div class="schedule-in-context schedule-svg-container" data-slug="rust">
+<svg width="700" height="150" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><title>Schedule for Saturday</title><rect width="700" height="150" x="0" y="0" fill="white"></rect><text font-size="10" fill="black" y="12" x="3">Saturday</text><a href="/2024/talks/sat-open" title="Saturday opening remarks" data-slug="sat-open"><title> 9:00- 9:10 Saturday opening remarks</title><rect x="0" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(11,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sat-open</text></g></a><a href="/2024/talks/papers" title="Writing academic papers in Org-Roam" data-slug="papers"><title> 9:10- 9:20 Writing academic papers in Org-Roam</title><rect x="13" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(24,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">papers</text></g></a><a href="/2024/talks/project" title="Managing writing project metadata with org-mode" data-slug="project"><title> 9:40-10:00 Managing writing project metadata with org-mode</title><rect x="54" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(79,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">project</text></g></a><a href="/2024/talks/org-update" title="The Future of Org" data-slug="org-update"><title>10:20-10:40 The Future of Org</title><rect x="109" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(134,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">org-update</text></g></a><a href="/2024/talks/color" title="Colour your Emacs with ease" data-slug="color"><title>11:00-11:10 Colour your Emacs with ease</title><rect x="164" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(175,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">color</text></g></a><a href="/2024/talks/theme" title="My journey of finding and creating the “perfect” Emacs theme" data-slug="theme"><title> 1:00- 1:10 My journey of finding and creating the “perfect” Emacs theme</title><rect x="329" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(340,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">theme</text></g></a><a href="/2024/talks/water" title="Watering my (digital) plant with Emacs timers" data-slug="water"><title> 1:30- 1:45 Watering my (digital) plant with Emacs timers</title><rect x="370" y="15" opacity="0.5" width="20" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(388,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">water</text></g></a><a href="/2024/talks/shell" title="Emacs as a shell" data-slug="shell"><title> 1:55- 2:35 Emacs as a shell</title><rect x="404" y="15" opacity="0.5" width="54" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(456,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">shell</text></g></a><a href="/2024/talks/casual" title="Re-imagining the Emacs user experience with Casual Suite" data-slug="casual"><title> 2:45- 3:05 Re-imagining the Emacs user experience with Casual Suite</title><rect x="473" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(498,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">casual</text></g></a><a href="/2024/talks/hyperdrive" title="New in hyperdrive.el: org-transclusion, easy installation, and more!" data-slug="hyperdrive"><title> 3:25- 3:45 New in hyperdrive.el: org-transclusion, easy installation, and more!</title><rect x="528" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(553,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">hyperdrive</text></g></a><a href="/2024/talks/writing" title="Emacs Writing Studio" data-slug="writing"><title> 4:05- 4:15 Emacs Writing Studio</title><rect x="583" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(594,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">writing</text></g></a><a href="/2024/talks/emacs30" title="Emacs 30 Highlights" data-slug="emacs30"><title> 4:25- 4:50 Emacs 30 Highlights</title><rect x="610" y="15" opacity="0.5" width="34" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(642,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">emacs30</text></g></a><a href="/2024/talks/sat-close" title="Saturday closing remarks" data-slug="sat-close"><title> 5:00- 5:10 Saturday closing remarks</title><rect x="658" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(669,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sat-close</text></g></a><a href="/2024/talks/gypsum" title="Gypsum: my clone of Emacs and ELisp written in Scheme" data-slug="gypsum"><title>10:00-10:20 Gypsum: my clone of Emacs and ELisp written in Scheme</title><rect x="82" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(107,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">gypsum</text></g></a><a href="/2024/talks/rust" title="An experimental Emacs core in Rust" data-slug="rust"><title>10:40-11:00 An experimental Emacs core in Rust</title><rect stroke-width="3" x="137" y="75" opacity="0.8" width="27" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(162,133)"><text font-weight="bold" fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">rust</text></g></a><a href="/2024/talks/p-search" title="p-search: a local search engine in Emacs" data-slug="p-search"><title>11:20-11:45 p-search: a local search engine in Emacs</title><rect x="192" y="75" opacity="0.5" width="34" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(224,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">p-search</text></g></a><a href="/2024/talks/julia" title="Exploring shared philosophies in Julia and Emacs" data-slug="julia"><title> 1:00- 1:10 Exploring shared philosophies in Julia and Emacs</title><rect x="329" y="75" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(340,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">julia</text></g></a><a href="/2024/talks/guile" title="Beguiling Emacs: Guile-Emacs relaunched!" data-slug="guile"><title> 1:25- 1:45 Beguiling Emacs: Guile-Emacs relaunched!</title><rect x="363" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="5,5,5" fill="skyblue"></rect><g transform="translate(388,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">guile</text></g></a><a href="/2024/talks/secrets" title="Committing secrets with git using sops-mode" data-slug="secrets"><title> 1:55- 2:05 Committing secrets with git using sops-mode</title><rect x="404" y="75" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(415,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">secrets</text></g></a><a href="/2024/talks/mcclim" title="Elisp and McCLIM" data-slug="mcclim"><title> 2:25- 3:25 Elisp and McCLIM</title><rect x="446" y="75" opacity="0.5" width="82" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(526,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">mcclim</text></g></a><a href="/2024/talks/repro" title="Reproducibly building Emacs: “Hey your checksum is the same as mine!”" data-slug="repro"><title> 3:45- 4:05 Reproducibly building Emacs: “Hey your checksum is the same as mine!”</title><rect x="555" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(580,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">repro</text></g></a><g transform="translate(0,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">9 AM</text></g><g transform="translate(82,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">10 AM</text></g><g transform="translate(164,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">11 AM</text></g><g transform="translate(247,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">12 PM</text></g><g transform="translate(329,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">1 PM</text></g><g transform="translate(411,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">2 PM</text></g><g transform="translate(494,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">3 PM</text></g><g transform="translate(576,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">4 PM</text></g><g transform="translate(658,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">5 PM</text></g></svg>
+</div>
+
+[[!toc ]]
+Format: 21-min talk; Q&A: BigBlueButton conference room <https://media.emacsconf.org/2024/current/bbb-rust.html>
+Discuss on IRC: [#emacsconf](https://chat.emacsconf.org/?join=emacsconf)
+Status: Quality check
+<div>Times in different time zones:</div><div class="times" start="2024-12-07T15:40:00Z" end="2024-12-07T16:00:00Z"><div class="conf-time">Saturday, Dec 7 2024, ~10:40 AM - 11:00 AM EST (US/Eastern)</div><div class="others"><div>which is the same as:</div>Saturday, Dec 7 2024, ~9:40 AM - 10:00 AM CST (US/Central)<br />Saturday, Dec 7 2024, ~8:40 AM - 9:00 AM MST (US/Mountain)<br />Saturday, Dec 7 2024, ~7:40 AM - 8:00 AM PST (US/Pacific)<br />Saturday, Dec 7 2024, ~3:40 PM - 4:00 PM UTC <br />Saturday, Dec 7 2024, ~4:40 PM - 5:00 PM CET (Europe/Paris)<br />Saturday, Dec 7 2024, ~5:40 PM - 6:00 PM EET (Europe/Athens)<br />Saturday, Dec 7 2024, ~9:10 PM - 9:30 PM IST (Asia/Kolkata)<br />Saturday, Dec 7 2024, ~11:40 PM - 12:00 AM +08 (Asia/Singapore)<br />Sunday, Dec 8 2024, ~12:40 AM - 1:00 AM JST (Asia/Tokyo)</div></div><div><strong><a href="/2024/watch/dev/">Find out how to watch and participate</a></strong></div>
diff --git a/2024/info/rust-nav.md b/2024/info/rust-nav.md
index 37b0852e..b0720140 100644
--- a/2024/info/rust-nav.md
+++ b/2024/info/rust-nav.md
@@ -1,7 +1,7 @@
<div class="talk-nav">
Back to the [[talks]]
-Previous by track: <a href="/2024/talks/gypsum">Gypsum: my clone of Emacs and ELisp written in Scheme</a>
-Next by track: <a href="/2024/talks/graph">Graph mode: a major mode to create, edit and display discrete element graphs</a>
-Track: <span class="sched-track Development">Development</span>
+Previous by time: <a href="/2024/talks/org-update">The Future of Org</a>
+Next by time: <a href="/2024/talks/color">Colour your Emacs with ease</a>
+Track: <span class="sched-track Development">Development</span> - <strong><a href="https://emacsconf.org/2024/watch/dev">Watch</a></strong>
</div>
diff --git a/2024/info/sat-close-after.md b/2024/info/sat-close-after.md
new file mode 100644
index 00000000..83d8cb65
--- /dev/null
+++ b/2024/info/sat-close-after.md
@@ -0,0 +1,7 @@
+<!-- Automatically generated by emacsconf-publish-after-page -->
+
+
+Questions or comments? Please e-mail [emacsconf-org-private@gnu.org](mailto:emacsconf-org-private@gnu.org?subject=Comment%20for%20EmacsConf%202023%20sat-close%3A%20Saturday%20closing%20remarks)
+
+
+<!-- End of emacsconf-publish-after-page -->
diff --git a/2024/info/sat-close-before.md b/2024/info/sat-close-before.md
new file mode 100644
index 00000000..b385cfc3
--- /dev/null
+++ b/2024/info/sat-close-before.md
@@ -0,0 +1,18 @@
+<!-- Automatically generated by emacsconf-publish-before-page -->
+
+The following image shows where the talk is in the schedule for Sat 2024-12-07. Solid lines show talks with Q&A via BigBlueButton. Dashed lines show talks with Q&A via IRC or Etherpad.<div class="schedule-in-context schedule-svg-container" data-slug="sat-close">
+<svg width="700" height="150" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><title>Schedule for Saturday</title><rect width="700" height="150" x="0" y="0" fill="white"></rect><text font-size="10" fill="black" y="12" x="3">Saturday</text><a href="/2024/talks/sat-open" title="Saturday opening remarks" data-slug="sat-open"><title> 9:00- 9:10 Saturday opening remarks</title><rect x="0" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(11,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sat-open</text></g></a><a href="/2024/talks/papers" title="Writing academic papers in Org-Roam" data-slug="papers"><title> 9:10- 9:20 Writing academic papers in Org-Roam</title><rect x="13" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(24,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">papers</text></g></a><a href="/2024/talks/project" title="Managing writing project metadata with org-mode" data-slug="project"><title> 9:40-10:00 Managing writing project metadata with org-mode</title><rect x="54" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(79,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">project</text></g></a><a href="/2024/talks/org-update" title="The Future of Org" data-slug="org-update"><title>10:20-10:40 The Future of Org</title><rect x="109" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(134,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">org-update</text></g></a><a href="/2024/talks/color" title="Colour your Emacs with ease" data-slug="color"><title>11:00-11:10 Colour your Emacs with ease</title><rect x="164" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(175,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">color</text></g></a><a href="/2024/talks/theme" title="My journey of finding and creating the “perfect” Emacs theme" data-slug="theme"><title> 1:00- 1:10 My journey of finding and creating the “perfect” Emacs theme</title><rect x="329" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(340,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">theme</text></g></a><a href="/2024/talks/water" title="Watering my (digital) plant with Emacs timers" data-slug="water"><title> 1:30- 1:45 Watering my (digital) plant with Emacs timers</title><rect x="370" y="15" opacity="0.5" width="20" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(388,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">water</text></g></a><a href="/2024/talks/shell" title="Emacs as a shell" data-slug="shell"><title> 1:55- 2:35 Emacs as a shell</title><rect x="404" y="15" opacity="0.5" width="54" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(456,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">shell</text></g></a><a href="/2024/talks/casual" title="Re-imagining the Emacs user experience with Casual Suite" data-slug="casual"><title> 2:45- 3:05 Re-imagining the Emacs user experience with Casual Suite</title><rect x="473" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(498,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">casual</text></g></a><a href="/2024/talks/hyperdrive" title="New in hyperdrive.el: org-transclusion, easy installation, and more!" data-slug="hyperdrive"><title> 3:25- 3:45 New in hyperdrive.el: org-transclusion, easy installation, and more!</title><rect x="528" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(553,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">hyperdrive</text></g></a><a href="/2024/talks/writing" title="Emacs Writing Studio" data-slug="writing"><title> 4:05- 4:15 Emacs Writing Studio</title><rect x="583" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(594,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">writing</text></g></a><a href="/2024/talks/emacs30" title="Emacs 30 Highlights" data-slug="emacs30"><title> 4:25- 4:50 Emacs 30 Highlights</title><rect x="610" y="15" opacity="0.5" width="34" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(642,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">emacs30</text></g></a><a href="/2024/talks/sat-close" title="Saturday closing remarks" data-slug="sat-close"><title> 5:00- 5:10 Saturday closing remarks</title><rect stroke-width="3" x="658" y="15" opacity="0.8" width="13" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(669,73)"><text font-weight="bold" fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sat-close</text></g></a><a href="/2024/talks/gypsum" title="Gypsum: my clone of Emacs and ELisp written in Scheme" data-slug="gypsum"><title>10:00-10:20 Gypsum: my clone of Emacs and ELisp written in Scheme</title><rect x="82" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(107,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">gypsum</text></g></a><a href="/2024/talks/rust" title="An experimental Emacs core in Rust" data-slug="rust"><title>10:40-11:00 An experimental Emacs core in Rust</title><rect x="137" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(162,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">rust</text></g></a><a href="/2024/talks/p-search" title="p-search: a local search engine in Emacs" data-slug="p-search"><title>11:20-11:45 p-search: a local search engine in Emacs</title><rect x="192" y="75" opacity="0.5" width="34" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(224,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">p-search</text></g></a><a href="/2024/talks/julia" title="Exploring shared philosophies in Julia and Emacs" data-slug="julia"><title> 1:00- 1:10 Exploring shared philosophies in Julia and Emacs</title><rect x="329" y="75" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(340,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">julia</text></g></a><a href="/2024/talks/guile" title="Beguiling Emacs: Guile-Emacs relaunched!" data-slug="guile"><title> 1:25- 1:45 Beguiling Emacs: Guile-Emacs relaunched!</title><rect x="363" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="5,5,5" fill="skyblue"></rect><g transform="translate(388,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">guile</text></g></a><a href="/2024/talks/secrets" title="Committing secrets with git using sops-mode" data-slug="secrets"><title> 1:55- 2:05 Committing secrets with git using sops-mode</title><rect x="404" y="75" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(415,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">secrets</text></g></a><a href="/2024/talks/mcclim" title="Elisp and McCLIM" data-slug="mcclim"><title> 2:25- 3:25 Elisp and McCLIM</title><rect x="446" y="75" opacity="0.5" width="82" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(526,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">mcclim</text></g></a><a href="/2024/talks/repro" title="Reproducibly building Emacs: “Hey your checksum is the same as mine!”" data-slug="repro"><title> 3:45- 4:05 Reproducibly building Emacs: “Hey your checksum is the same as mine!”</title><rect x="555" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(580,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">repro</text></g></a><g transform="translate(0,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">9 AM</text></g><g transform="translate(82,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">10 AM</text></g><g transform="translate(164,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">11 AM</text></g><g transform="translate(247,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">12 PM</text></g><g transform="translate(329,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">1 PM</text></g><g transform="translate(411,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">2 PM</text></g><g transform="translate(494,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">3 PM</text></g><g transform="translate(576,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">4 PM</text></g><g transform="translate(658,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">5 PM</text></g></svg>
+</div>
+
+[[!toc ]]
+Format: 10-min talk; Q&A: Etherpad <https://pad.emacsconf.org/2024-sat-close>
+Discuss on IRC: [#emacsconf](https://chat.emacsconf.org/?join=emacsconf)
+Status: Ready to stream
+<div>Times in different time zones:</div><div class="times" start="2024-12-07T22:00:00Z" end="2024-12-07T22:10:00Z"><div class="conf-time">Saturday, Dec 7 2024, ~5:00 PM - 5:10 PM EST (US/Eastern)</div><div class="others"><div>which is the same as:</div>Saturday, Dec 7 2024, ~4:00 PM - 4:10 PM CST (US/Central)<br />Saturday, Dec 7 2024, ~3:00 PM - 3:10 PM MST (US/Mountain)<br />Saturday, Dec 7 2024, ~2:00 PM - 2:10 PM PST (US/Pacific)<br />Saturday, Dec 7 2024, ~10:00 PM - 10:10 PM UTC <br />Saturday, Dec 7 2024, ~11:00 PM - 11:10 PM CET (Europe/Paris)<br />Sunday, Dec 8 2024, ~12:00 AM - 12:10 AM EET (Europe/Athens)<br />Sunday, Dec 8 2024, ~3:30 AM - 3:40 AM IST (Asia/Kolkata)<br />Sunday, Dec 8 2024, ~6:00 AM - 6:10 AM +08 (Asia/Singapore)<br />Sunday, Dec 8 2024, ~7:00 AM - 7:10 AM JST (Asia/Tokyo)</div></div><div><strong><a href="/2024/watch/gen/">Find out how to watch and participate</a></strong></div>
+
+
+
+
+
+# Description
+<!-- End of emacsconf-publish-before-page --> \ No newline at end of file
diff --git a/2024/info/sat-close-nav.md b/2024/info/sat-close-nav.md
new file mode 100644
index 00000000..610d0590
--- /dev/null
+++ b/2024/info/sat-close-nav.md
@@ -0,0 +1,7 @@
+
+<div class="talk-nav">
+Back to the [[talks]]
+Previous by time: <a href="/2024/talks/emacs30">Emacs 30 Highlights</a>
+Next by time: <a href="/2024/talks/sun-open">Sunday opening remarks</a>
+Track: <span class="sched-track General">General</span> - <strong><a href="https://emacsconf.org/2024/watch/gen">Watch</a></strong>
+</div>
diff --git a/2024/info/sat-open-after.md b/2024/info/sat-open-after.md
new file mode 100644
index 00000000..ab84db89
--- /dev/null
+++ b/2024/info/sat-open-after.md
@@ -0,0 +1,7 @@
+<!-- Automatically generated by emacsconf-publish-after-page -->
+
+
+Questions or comments? Please e-mail [emacsconf-org-private@gnu.org](mailto:emacsconf-org-private@gnu.org?subject=Comment%20for%20EmacsConf%202023%20sat-open%3A%20Saturday%20opening%20remarks)
+
+
+<!-- End of emacsconf-publish-after-page -->
diff --git a/2024/info/sat-open-before.md b/2024/info/sat-open-before.md
new file mode 100644
index 00000000..6e0748e8
--- /dev/null
+++ b/2024/info/sat-open-before.md
@@ -0,0 +1,18 @@
+<!-- Automatically generated by emacsconf-publish-before-page -->
+
+The following image shows where the talk is in the schedule for Sat 2024-12-07. Solid lines show talks with Q&A via BigBlueButton. Dashed lines show talks with Q&A via IRC or Etherpad.<div class="schedule-in-context schedule-svg-container" data-slug="sat-open">
+<svg width="700" height="150" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><title>Schedule for Saturday</title><rect width="700" height="150" x="0" y="0" fill="white"></rect><text font-size="10" fill="black" y="12" x="3">Saturday</text><a href="/2024/talks/sat-open" title="Saturday opening remarks" data-slug="sat-open"><title> 9:00- 9:10 Saturday opening remarks</title><rect stroke-width="3" x="0" y="15" opacity="0.8" width="13" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(11,73)"><text font-weight="bold" fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sat-open</text></g></a><a href="/2024/talks/papers" title="Writing academic papers in Org-Roam" data-slug="papers"><title> 9:10- 9:20 Writing academic papers in Org-Roam</title><rect x="13" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(24,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">papers</text></g></a><a href="/2024/talks/project" title="Managing writing project metadata with org-mode" data-slug="project"><title> 9:40-10:00 Managing writing project metadata with org-mode</title><rect x="54" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(79,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">project</text></g></a><a href="/2024/talks/org-update" title="The Future of Org" data-slug="org-update"><title>10:20-10:40 The Future of Org</title><rect x="109" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(134,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">org-update</text></g></a><a href="/2024/talks/color" title="Colour your Emacs with ease" data-slug="color"><title>11:00-11:10 Colour your Emacs with ease</title><rect x="164" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(175,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">color</text></g></a><a href="/2024/talks/theme" title="My journey of finding and creating the “perfect” Emacs theme" data-slug="theme"><title> 1:00- 1:10 My journey of finding and creating the “perfect” Emacs theme</title><rect x="329" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(340,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">theme</text></g></a><a href="/2024/talks/water" title="Watering my (digital) plant with Emacs timers" data-slug="water"><title> 1:30- 1:45 Watering my (digital) plant with Emacs timers</title><rect x="370" y="15" opacity="0.5" width="20" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(388,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">water</text></g></a><a href="/2024/talks/shell" title="Emacs as a shell" data-slug="shell"><title> 1:55- 2:35 Emacs as a shell</title><rect x="404" y="15" opacity="0.5" width="54" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(456,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">shell</text></g></a><a href="/2024/talks/casual" title="Re-imagining the Emacs user experience with Casual Suite" data-slug="casual"><title> 2:45- 3:05 Re-imagining the Emacs user experience with Casual Suite</title><rect x="473" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(498,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">casual</text></g></a><a href="/2024/talks/hyperdrive" title="New in hyperdrive.el: org-transclusion, easy installation, and more!" data-slug="hyperdrive"><title> 3:25- 3:45 New in hyperdrive.el: org-transclusion, easy installation, and more!</title><rect x="528" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(553,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">hyperdrive</text></g></a><a href="/2024/talks/writing" title="Emacs Writing Studio" data-slug="writing"><title> 4:05- 4:15 Emacs Writing Studio</title><rect x="583" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(594,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">writing</text></g></a><a href="/2024/talks/emacs30" title="Emacs 30 Highlights" data-slug="emacs30"><title> 4:25- 4:50 Emacs 30 Highlights</title><rect x="610" y="15" opacity="0.5" width="34" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(642,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">emacs30</text></g></a><a href="/2024/talks/sat-close" title="Saturday closing remarks" data-slug="sat-close"><title> 5:00- 5:10 Saturday closing remarks</title><rect x="658" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(669,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sat-close</text></g></a><a href="/2024/talks/gypsum" title="Gypsum: my clone of Emacs and ELisp written in Scheme" data-slug="gypsum"><title>10:00-10:20 Gypsum: my clone of Emacs and ELisp written in Scheme</title><rect x="82" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(107,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">gypsum</text></g></a><a href="/2024/talks/rust" title="An experimental Emacs core in Rust" data-slug="rust"><title>10:40-11:00 An experimental Emacs core in Rust</title><rect x="137" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(162,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">rust</text></g></a><a href="/2024/talks/p-search" title="p-search: a local search engine in Emacs" data-slug="p-search"><title>11:20-11:45 p-search: a local search engine in Emacs</title><rect x="192" y="75" opacity="0.5" width="34" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(224,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">p-search</text></g></a><a href="/2024/talks/julia" title="Exploring shared philosophies in Julia and Emacs" data-slug="julia"><title> 1:00- 1:10 Exploring shared philosophies in Julia and Emacs</title><rect x="329" y="75" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(340,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">julia</text></g></a><a href="/2024/talks/guile" title="Beguiling Emacs: Guile-Emacs relaunched!" data-slug="guile"><title> 1:25- 1:45 Beguiling Emacs: Guile-Emacs relaunched!</title><rect x="363" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="5,5,5" fill="skyblue"></rect><g transform="translate(388,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">guile</text></g></a><a href="/2024/talks/secrets" title="Committing secrets with git using sops-mode" data-slug="secrets"><title> 1:55- 2:05 Committing secrets with git using sops-mode</title><rect x="404" y="75" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(415,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">secrets</text></g></a><a href="/2024/talks/mcclim" title="Elisp and McCLIM" data-slug="mcclim"><title> 2:25- 3:25 Elisp and McCLIM</title><rect x="446" y="75" opacity="0.5" width="82" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(526,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">mcclim</text></g></a><a href="/2024/talks/repro" title="Reproducibly building Emacs: “Hey your checksum is the same as mine!”" data-slug="repro"><title> 3:45- 4:05 Reproducibly building Emacs: “Hey your checksum is the same as mine!”</title><rect x="555" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(580,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">repro</text></g></a><g transform="translate(0,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">9 AM</text></g><g transform="translate(82,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">10 AM</text></g><g transform="translate(164,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">11 AM</text></g><g transform="translate(247,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">12 PM</text></g><g transform="translate(329,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">1 PM</text></g><g transform="translate(411,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">2 PM</text></g><g transform="translate(494,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">3 PM</text></g><g transform="translate(576,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">4 PM</text></g><g transform="translate(658,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">5 PM</text></g></svg>
+</div>
+
+[[!toc ]]
+Format: 10-min talk; Q&A: Etherpad <https://pad.emacsconf.org/2024-sat-open>
+Discuss on IRC: [#emacsconf](https://chat.emacsconf.org/?join=emacsconf)
+Status: Waiting for video from speaker
+<div>Times in different time zones:</div><div class="times" start="2024-12-07T14:00:00Z" end="2024-12-07T14:10:00Z"><div class="conf-time">Saturday, Dec 7 2024, ~9:00 AM - 9:10 AM EST (US/Eastern)</div><div class="others"><div>which is the same as:</div>Saturday, Dec 7 2024, ~8:00 AM - 8:10 AM CST (US/Central)<br />Saturday, Dec 7 2024, ~7:00 AM - 7:10 AM MST (US/Mountain)<br />Saturday, Dec 7 2024, ~6:00 AM - 6:10 AM PST (US/Pacific)<br />Saturday, Dec 7 2024, ~2:00 PM - 2:10 PM UTC <br />Saturday, Dec 7 2024, ~3:00 PM - 3:10 PM CET (Europe/Paris)<br />Saturday, Dec 7 2024, ~4:00 PM - 4:10 PM EET (Europe/Athens)<br />Saturday, Dec 7 2024, ~7:30 PM - 7:40 PM IST (Asia/Kolkata)<br />Saturday, Dec 7 2024, ~10:00 PM - 10:10 PM +08 (Asia/Singapore)<br />Saturday, Dec 7 2024, ~11:00 PM - 11:10 PM JST (Asia/Tokyo)</div></div><div><strong><a href="/2024/watch/gen/">Find out how to watch and participate</a></strong></div>
+
+
+
+
+
+# Description
+<!-- End of emacsconf-publish-before-page --> \ No newline at end of file
diff --git a/2024/info/sat-open-nav.md b/2024/info/sat-open-nav.md
new file mode 100644
index 00000000..c81b6b80
--- /dev/null
+++ b/2024/info/sat-open-nav.md
@@ -0,0 +1,6 @@
+
+<div class="talk-nav">
+Back to the [[talks]]
+Next by time: <a href="/2024/talks/papers">Writing academic papers in Org-Roam</a>
+Track: <span class="sched-track General">General</span> - <strong><a href="https://emacsconf.org/2024/watch/gen">Watch</a></strong>
+</div>
diff --git a/2024/info/secrets-after.md b/2024/info/secrets-after.md
index 87a818f7..bc6f7668 100644
--- a/2024/info/secrets-after.md
+++ b/2024/info/secrets-after.md
@@ -3,8 +3,5 @@
Questions or comments? Please e-mail [pitas.axioms0c@icloud.com](mailto:pitas.axioms0c@icloud.com?subject=Comment%20for%20EmacsConf%202023%20secrets%3A%20Committing%20secrets%20with%20git%20using%20sops-mode)
-----
-Got an idea for an EmacsConf talk or session? We'd love to hear from you! Check out the [[Call for Participation|/2024/cfp]] for details.
-
<!-- End of emacsconf-publish-after-page -->
diff --git a/2024/info/secrets-before.md b/2024/info/secrets-before.md
index b8e44d2c..7b4d8e5f 100644
--- a/2024/info/secrets-before.md
+++ b/2024/info/secrets-before.md
@@ -1,8 +1,14 @@
<!-- Automatically generated by emacsconf-publish-before-page -->
+
+The following image shows where the talk is in the schedule for Sat 2024-12-07. Solid lines show talks with Q&A via BigBlueButton. Dashed lines show talks with Q&A via IRC or Etherpad.<div class="schedule-in-context schedule-svg-container" data-slug="secrets">
+<svg width="700" height="150" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><title>Schedule for Saturday</title><rect width="700" height="150" x="0" y="0" fill="white"></rect><text font-size="10" fill="black" y="12" x="3">Saturday</text><a href="/2024/talks/sat-open" title="Saturday opening remarks" data-slug="sat-open"><title> 9:00- 9:10 Saturday opening remarks</title><rect x="0" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(11,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sat-open</text></g></a><a href="/2024/talks/papers" title="Writing academic papers in Org-Roam" data-slug="papers"><title> 9:10- 9:20 Writing academic papers in Org-Roam</title><rect x="13" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(24,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">papers</text></g></a><a href="/2024/talks/project" title="Managing writing project metadata with org-mode" data-slug="project"><title> 9:40-10:00 Managing writing project metadata with org-mode</title><rect x="54" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(79,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">project</text></g></a><a href="/2024/talks/org-update" title="The Future of Org" data-slug="org-update"><title>10:20-10:40 The Future of Org</title><rect x="109" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(134,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">org-update</text></g></a><a href="/2024/talks/color" title="Colour your Emacs with ease" data-slug="color"><title>11:00-11:10 Colour your Emacs with ease</title><rect x="164" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(175,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">color</text></g></a><a href="/2024/talks/theme" title="My journey of finding and creating the “perfect” Emacs theme" data-slug="theme"><title> 1:00- 1:10 My journey of finding and creating the “perfect” Emacs theme</title><rect x="329" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(340,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">theme</text></g></a><a href="/2024/talks/water" title="Watering my (digital) plant with Emacs timers" data-slug="water"><title> 1:30- 1:45 Watering my (digital) plant with Emacs timers</title><rect x="370" y="15" opacity="0.5" width="20" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(388,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">water</text></g></a><a href="/2024/talks/shell" title="Emacs as a shell" data-slug="shell"><title> 1:55- 2:35 Emacs as a shell</title><rect x="404" y="15" opacity="0.5" width="54" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(456,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">shell</text></g></a><a href="/2024/talks/casual" title="Re-imagining the Emacs user experience with Casual Suite" data-slug="casual"><title> 2:45- 3:05 Re-imagining the Emacs user experience with Casual Suite</title><rect x="473" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(498,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">casual</text></g></a><a href="/2024/talks/hyperdrive" title="New in hyperdrive.el: org-transclusion, easy installation, and more!" data-slug="hyperdrive"><title> 3:25- 3:45 New in hyperdrive.el: org-transclusion, easy installation, and more!</title><rect x="528" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(553,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">hyperdrive</text></g></a><a href="/2024/talks/writing" title="Emacs Writing Studio" data-slug="writing"><title> 4:05- 4:15 Emacs Writing Studio</title><rect x="583" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(594,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">writing</text></g></a><a href="/2024/talks/emacs30" title="Emacs 30 Highlights" data-slug="emacs30"><title> 4:25- 4:50 Emacs 30 Highlights</title><rect x="610" y="15" opacity="0.5" width="34" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(642,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">emacs30</text></g></a><a href="/2024/talks/sat-close" title="Saturday closing remarks" data-slug="sat-close"><title> 5:00- 5:10 Saturday closing remarks</title><rect x="658" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(669,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sat-close</text></g></a><a href="/2024/talks/gypsum" title="Gypsum: my clone of Emacs and ELisp written in Scheme" data-slug="gypsum"><title>10:00-10:20 Gypsum: my clone of Emacs and ELisp written in Scheme</title><rect x="82" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(107,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">gypsum</text></g></a><a href="/2024/talks/rust" title="An experimental Emacs core in Rust" data-slug="rust"><title>10:40-11:00 An experimental Emacs core in Rust</title><rect x="137" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(162,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">rust</text></g></a><a href="/2024/talks/p-search" title="p-search: a local search engine in Emacs" data-slug="p-search"><title>11:20-11:45 p-search: a local search engine in Emacs</title><rect x="192" y="75" opacity="0.5" width="34" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(224,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">p-search</text></g></a><a href="/2024/talks/julia" title="Exploring shared philosophies in Julia and Emacs" data-slug="julia"><title> 1:00- 1:10 Exploring shared philosophies in Julia and Emacs</title><rect x="329" y="75" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(340,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">julia</text></g></a><a href="/2024/talks/guile" title="Beguiling Emacs: Guile-Emacs relaunched!" data-slug="guile"><title> 1:25- 1:45 Beguiling Emacs: Guile-Emacs relaunched!</title><rect x="363" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="5,5,5" fill="skyblue"></rect><g transform="translate(388,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">guile</text></g></a><a href="/2024/talks/secrets" title="Committing secrets with git using sops-mode" data-slug="secrets"><title> 1:55- 2:05 Committing secrets with git using sops-mode</title><rect stroke-width="3" x="404" y="75" opacity="0.8" width="13" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(415,133)"><text font-weight="bold" fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">secrets</text></g></a><a href="/2024/talks/mcclim" title="Elisp and McCLIM" data-slug="mcclim"><title> 2:25- 3:25 Elisp and McCLIM</title><rect x="446" y="75" opacity="0.5" width="82" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(526,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">mcclim</text></g></a><a href="/2024/talks/repro" title="Reproducibly building Emacs: “Hey your checksum is the same as mine!”" data-slug="repro"><title> 3:45- 4:05 Reproducibly building Emacs: “Hey your checksum is the same as mine!”</title><rect x="555" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(580,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">repro</text></g></a><g transform="translate(0,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">9 AM</text></g><g transform="translate(82,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">10 AM</text></g><g transform="translate(164,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">11 AM</text></g><g transform="translate(247,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">12 PM</text></g><g transform="translate(329,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">1 PM</text></g><g transform="translate(411,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">2 PM</text></g><g transform="translate(494,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">3 PM</text></g><g transform="translate(576,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">4 PM</text></g><g transform="translate(658,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">5 PM</text></g></svg>
+</div>
+
[[!toc ]]
-Format: 10-min talk; Q&A: BigBlueButton conference room
+Format: 10-min talk; Q&A: BigBlueButton conference room <https://media.emacsconf.org/2024/current/bbb-secrets.html>
+Discuss on IRC: [#emacsconf](https://chat.emacsconf.org/?join=emacsconf)
Status: Waiting for video from speaker
-
+<div>Times in different time zones:</div><div class="times" start="2024-12-07T18:55:00Z" end="2024-12-07T19:05:00Z"><div class="conf-time">Saturday, Dec 7 2024, ~1:55 PM - 2:05 PM EST (US/Eastern)</div><div class="others"><div>which is the same as:</div>Saturday, Dec 7 2024, ~12:55 PM - 1:05 PM CST (US/Central)<br />Saturday, Dec 7 2024, ~11:55 AM - 12:05 PM MST (US/Mountain)<br />Saturday, Dec 7 2024, ~10:55 AM - 11:05 AM PST (US/Pacific)<br />Saturday, Dec 7 2024, ~6:55 PM - 7:05 PM UTC <br />Saturday, Dec 7 2024, ~7:55 PM - 8:05 PM CET (Europe/Paris)<br />Saturday, Dec 7 2024, ~8:55 PM - 9:05 PM EET (Europe/Athens)<br />Sunday, Dec 8 2024, ~12:25 AM - 12:35 AM IST (Asia/Kolkata)<br />Sunday, Dec 8 2024, ~2:55 AM - 3:05 AM +08 (Asia/Singapore)<br />Sunday, Dec 8 2024, ~3:55 AM - 4:05 AM JST (Asia/Tokyo)</div></div><div><strong><a href="/2024/watch/dev/">Find out how to watch and participate</a></strong></div>
diff --git a/2024/info/secrets-nav.md b/2024/info/secrets-nav.md
index 4c8b7cd5..16438397 100644
--- a/2024/info/secrets-nav.md
+++ b/2024/info/secrets-nav.md
@@ -1,7 +1,7 @@
<div class="talk-nav">
Back to the [[talks]]
-Previous by track: <a href="/2024/talks/mcclim">Elisp and McCLIM</a>
-Next by track: <a href="/2024/talks/repro">Reproducibly building Emacs: “Hey your checksum is the same as mine!”</a>
-Track: <span class="sched-track Development">Development</span>
+Previous by time: <a href="/2024/talks/water">Watering my (digital) plant with Emacs timers</a>
+Next by time: <a href="/2024/talks/shell">Emacs as a shell</a>
+Track: <span class="sched-track Development">Development</span> - <strong><a href="https://emacsconf.org/2024/watch/dev">Watch</a></strong>
</div>
diff --git a/2024/info/sharing-after.md b/2024/info/sharing-after.md
index 3b5cdc03..14bcae3a 100644
--- a/2024/info/sharing-after.md
+++ b/2024/info/sharing-after.md
@@ -3,8 +3,5 @@
Questions or comments? Please e-mail [gopardaniel@gmail.com](mailto:gopardaniel@gmail.com?subject=Comment%20for%20EmacsConf%202023%20sharing%3A%20So%20you%20want%20to%20be%20an%20Emacs-fluencer%3F)
-----
-Got an idea for an EmacsConf talk or session? We'd love to hear from you! Check out the [[Call for Participation|/2024/cfp]] for details.
-
<!-- End of emacsconf-publish-after-page -->
diff --git a/2024/info/sharing-before.md b/2024/info/sharing-before.md
index 9939a45b..0f34f08a 100644
--- a/2024/info/sharing-before.md
+++ b/2024/info/sharing-before.md
@@ -1,8 +1,14 @@
<!-- Automatically generated by emacsconf-publish-before-page -->
+
+The following image shows where the talk is in the schedule for Sun 2024-12-08. Solid lines show talks with Q&A via BigBlueButton. Dashed lines show talks with Q&A via IRC or Etherpad.<div class="schedule-in-context schedule-svg-container" data-slug="sharing">
+<svg width="700" height="150" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><title>Schedule for Sunday</title><rect width="700" height="150" x="0" y="0" fill="white"></rect><text font-size="10" fill="black" y="12" x="3">Sunday</text><a href="/2024/talks/sun-open" title="Sunday opening remarks" data-slug="sun-open"><title> 9:00- 9:10 Sunday opening remarks</title><rect x="0" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(11,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sun-open</text></g></a><a href="/2024/talks/links" title="Unlocking linked data: replacing specialized apps with an Org-based semantic wiki" data-slug="links"><title> 9:10- 9:20 Unlocking linked data: replacing specialized apps with an Org-based semantic wiki</title><rect x="13" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(24,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">links</text></g></a><a href="/2024/talks/regex" title="Emacs regex compilation and future directions for expressive pattern matching" data-slug="regex"><title> 9:30- 9:50 Emacs regex compilation and future directions for expressive pattern matching</title><rect x="41" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(66,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">regex</text></g></a><a href="/2024/talks/learning" title="Survival of the skillest: Thriving in the learning jungle" data-slug="learning"><title>10:00-10:20 Survival of the skillest: Thriving in the learning jungle</title><rect x="82" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(107,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">learning</text></g></a><a href="/2024/talks/language" title="Immersive language learning with Emacs" data-slug="language"><title>10:30-10:40 Immersive language learning with Emacs</title><rect x="123" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(134,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">language</text></g></a><a href="/2024/talks/org-teach" title="org-teach: a minor mode for writing course materials in Emacs" data-slug="org-teach"><title>10:50-11:10 org-teach: a minor mode for writing course materials in Emacs</title><rect x="150" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(175,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">org-teach</text></g></a><a href="/2024/talks/hyperbole" title="Fun things with GNU Hyperbole" data-slug="hyperbole"><title>11:25-11:40 Fun things with GNU Hyperbole</title><rect x="199" y="15" opacity="0.5" width="20" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(217,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">hyperbole</text></g></a><a href="/2024/talks/hywiki" title="HyWiki: Fast, hyperlinked note-taking with no markup required" data-slug="hywiki"><title> 1:00- 1:20 HyWiki: Fast, hyperlinked note-taking with no markup required</title><rect x="329" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(354,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">hywiki</text></g></a><a href="/2024/talks/pgmacs" title="PGmacs: browsing and editing PostgreSQL databases from Emacs" data-slug="pgmacs"><title> 1:35- 1:50 PGmacs: browsing and editing PostgreSQL databases from Emacs</title><rect x="377" y="15" opacity="0.5" width="20" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(395,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">pgmacs</text></g></a><a href="/2024/talks/blee" title="About Blee: enveloping our own autonomy directed digital ecosystem with Emacs" data-slug="blee"><title> 2:05- 2:45 About Blee: enveloping our own autonomy directed digital ecosystem with Emacs</title><rect x="418" y="15" opacity="0.5" width="54" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(470,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">blee</text></g></a><a href="/2024/talks/literate" title="Literate programming for the 21st Century" data-slug="literate"><title> 2:55- 3:15 Literate programming for the 21st Century</title><rect x="487" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(512,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">literate</text></g></a><a href="/2024/talks/students" title="An example of a cohesive student workflow in Emacs" data-slug="students"><title> 3:30- 3:40 An example of a cohesive student workflow in Emacs</title><rect x="535" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(546,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">students</text></g></a><a href="/2024/talks/sharing" title="So you want to be an Emacs-fluencer?" data-slug="sharing"><title> 3:50- 4:10 So you want to be an Emacs-fluencer?</title><rect stroke-width="3" x="562" y="15" opacity="0.8" width="27" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(587,73)"><text font-weight="bold" fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sharing</text></g></a><a href="/2024/talks/transducers" title="Transducers: finally, ergonomic data processing for Emacs!" data-slug="transducers"><title> 4:20- 4:50 Transducers: finally, ergonomic data processing for Emacs!</title><rect x="603" y="15" opacity="0.5" width="41" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(642,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">transducers</text></g></a><a href="/2024/talks/sun-close" title="Sunday closing remarks" data-slug="sun-close"><title> 5:00- 5:10 Sunday closing remarks</title><rect x="658" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(669,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sun-close</text></g></a><g transform="translate(0,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">9 AM</text></g><g transform="translate(82,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">10 AM</text></g><g transform="translate(164,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">11 AM</text></g><g transform="translate(247,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">12 PM</text></g><g transform="translate(329,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">1 PM</text></g><g transform="translate(411,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">2 PM</text></g><g transform="translate(494,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">3 PM</text></g><g transform="translate(576,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">4 PM</text></g><g transform="translate(658,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">5 PM</text></g></svg>
+</div>
+
[[!toc ]]
-Format: 20-min talk; Q&A: Etherpad
+Format: 20-min talk; Q&A: Etherpad <https://pad.emacsconf.org/2024-sharing>
+Discuss on IRC: [#emacsconf](https://chat.emacsconf.org/?join=emacsconf)
Status: Waiting for video from speaker
-
+<div>Times in different time zones:</div><div class="times" start="2024-12-08T20:50:00Z" end="2024-12-08T21:10:00Z"><div class="conf-time">Sunday, Dec 8 2024, ~3:50 PM - 4:10 PM EST (US/Eastern)</div><div class="others"><div>which is the same as:</div>Sunday, Dec 8 2024, ~2:50 PM - 3:10 PM CST (US/Central)<br />Sunday, Dec 8 2024, ~1:50 PM - 2:10 PM MST (US/Mountain)<br />Sunday, Dec 8 2024, ~12:50 PM - 1:10 PM PST (US/Pacific)<br />Sunday, Dec 8 2024, ~8:50 PM - 9:10 PM UTC <br />Sunday, Dec 8 2024, ~9:50 PM - 10:10 PM CET (Europe/Paris)<br />Sunday, Dec 8 2024, ~10:50 PM - 11:10 PM EET (Europe/Athens)<br />Monday, Dec 9 2024, ~2:20 AM - 2:40 AM IST (Asia/Kolkata)<br />Monday, Dec 9 2024, ~4:50 AM - 5:10 AM +08 (Asia/Singapore)<br />Monday, Dec 9 2024, ~5:50 AM - 6:10 AM JST (Asia/Tokyo)</div></div><div><strong><a href="/2024/watch/gen/">Find out how to watch and participate</a></strong></div>
diff --git a/2024/info/sharing-nav.md b/2024/info/sharing-nav.md
index 2da108c7..4a76f404 100644
--- a/2024/info/sharing-nav.md
+++ b/2024/info/sharing-nav.md
@@ -1,7 +1,7 @@
<div class="talk-nav">
Back to the [[talks]]
-Previous by track: <a href="/2024/talks/learning">Survival of the skillest: Thriving in the learning jungle</a>
-Next by track: <a href="/2024/talks/literate">Literate programming for the 21st Century</a>
-Track: <span class="sched-track General">General</span>
+Previous by time: <a href="/2024/talks/students">An example of a cohesive student workflow in Emacs</a>
+Next by time: <a href="/2024/talks/transducers">Transducers: finally, ergonomic data processing for Emacs!</a>
+Track: <span class="sched-track General">General</span> - <strong><a href="https://emacsconf.org/2024/watch/gen">Watch</a></strong>
</div>
diff --git a/2024/info/shell-after.md b/2024/info/shell-after.md
index 63b83f47..4f9b3cff 100644
--- a/2024/info/shell-after.md
+++ b/2024/info/shell-after.md
@@ -3,8 +3,5 @@
Questions or comments? Please e-mail [christopher@librehacker.com](mailto:christopher@librehacker.com?subject=Comment%20for%20EmacsConf%202023%20shell%3A%20Emacs%20as%20a%20shell)
-----
-Got an idea for an EmacsConf talk or session? We'd love to hear from you! Check out the [[Call for Participation|/2024/cfp]] for details.
-
<!-- End of emacsconf-publish-after-page -->
diff --git a/2024/info/shell-before.md b/2024/info/shell-before.md
index d151e56f..3a531bf1 100644
--- a/2024/info/shell-before.md
+++ b/2024/info/shell-before.md
@@ -1,8 +1,14 @@
<!-- Automatically generated by emacsconf-publish-before-page -->
-[[!toc ]]
-Format: 40-min talk; Q&A: IRC
-Status: Waiting for video from speaker
+The following image shows where the talk is in the schedule for Sat 2024-12-07. Solid lines show talks with Q&A via BigBlueButton. Dashed lines show talks with Q&A via IRC or Etherpad.<div class="schedule-in-context schedule-svg-container" data-slug="shell">
+<svg width="700" height="150" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><title>Schedule for Saturday</title><rect width="700" height="150" x="0" y="0" fill="white"></rect><text font-size="10" fill="black" y="12" x="3">Saturday</text><a href="/2024/talks/sat-open" title="Saturday opening remarks" data-slug="sat-open"><title> 9:00- 9:10 Saturday opening remarks</title><rect x="0" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(11,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sat-open</text></g></a><a href="/2024/talks/papers" title="Writing academic papers in Org-Roam" data-slug="papers"><title> 9:10- 9:20 Writing academic papers in Org-Roam</title><rect x="13" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(24,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">papers</text></g></a><a href="/2024/talks/project" title="Managing writing project metadata with org-mode" data-slug="project"><title> 9:40-10:00 Managing writing project metadata with org-mode</title><rect x="54" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(79,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">project</text></g></a><a href="/2024/talks/org-update" title="The Future of Org" data-slug="org-update"><title>10:20-10:40 The Future of Org</title><rect x="109" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(134,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">org-update</text></g></a><a href="/2024/talks/color" title="Colour your Emacs with ease" data-slug="color"><title>11:00-11:10 Colour your Emacs with ease</title><rect x="164" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(175,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">color</text></g></a><a href="/2024/talks/theme" title="My journey of finding and creating the “perfect” Emacs theme" data-slug="theme"><title> 1:00- 1:10 My journey of finding and creating the “perfect” Emacs theme</title><rect x="329" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(340,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">theme</text></g></a><a href="/2024/talks/water" title="Watering my (digital) plant with Emacs timers" data-slug="water"><title> 1:30- 1:45 Watering my (digital) plant with Emacs timers</title><rect x="370" y="15" opacity="0.5" width="20" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(388,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">water</text></g></a><a href="/2024/talks/shell" title="Emacs as a shell" data-slug="shell"><title> 1:55- 2:35 Emacs as a shell</title><rect stroke-width="3" x="404" y="15" opacity="0.8" width="54" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(456,73)"><text font-weight="bold" fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">shell</text></g></a><a href="/2024/talks/casual" title="Re-imagining the Emacs user experience with Casual Suite" data-slug="casual"><title> 2:45- 3:05 Re-imagining the Emacs user experience with Casual Suite</title><rect x="473" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(498,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">casual</text></g></a><a href="/2024/talks/hyperdrive" title="New in hyperdrive.el: org-transclusion, easy installation, and more!" data-slug="hyperdrive"><title> 3:25- 3:45 New in hyperdrive.el: org-transclusion, easy installation, and more!</title><rect x="528" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(553,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">hyperdrive</text></g></a><a href="/2024/talks/writing" title="Emacs Writing Studio" data-slug="writing"><title> 4:05- 4:15 Emacs Writing Studio</title><rect x="583" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(594,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">writing</text></g></a><a href="/2024/talks/emacs30" title="Emacs 30 Highlights" data-slug="emacs30"><title> 4:25- 4:50 Emacs 30 Highlights</title><rect x="610" y="15" opacity="0.5" width="34" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(642,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">emacs30</text></g></a><a href="/2024/talks/sat-close" title="Saturday closing remarks" data-slug="sat-close"><title> 5:00- 5:10 Saturday closing remarks</title><rect x="658" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(669,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sat-close</text></g></a><a href="/2024/talks/gypsum" title="Gypsum: my clone of Emacs and ELisp written in Scheme" data-slug="gypsum"><title>10:00-10:20 Gypsum: my clone of Emacs and ELisp written in Scheme</title><rect x="82" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(107,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">gypsum</text></g></a><a href="/2024/talks/rust" title="An experimental Emacs core in Rust" data-slug="rust"><title>10:40-11:00 An experimental Emacs core in Rust</title><rect x="137" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(162,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">rust</text></g></a><a href="/2024/talks/p-search" title="p-search: a local search engine in Emacs" data-slug="p-search"><title>11:20-11:45 p-search: a local search engine in Emacs</title><rect x="192" y="75" opacity="0.5" width="34" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(224,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">p-search</text></g></a><a href="/2024/talks/julia" title="Exploring shared philosophies in Julia and Emacs" data-slug="julia"><title> 1:00- 1:10 Exploring shared philosophies in Julia and Emacs</title><rect x="329" y="75" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(340,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">julia</text></g></a><a href="/2024/talks/guile" title="Beguiling Emacs: Guile-Emacs relaunched!" data-slug="guile"><title> 1:25- 1:45 Beguiling Emacs: Guile-Emacs relaunched!</title><rect x="363" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="5,5,5" fill="skyblue"></rect><g transform="translate(388,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">guile</text></g></a><a href="/2024/talks/secrets" title="Committing secrets with git using sops-mode" data-slug="secrets"><title> 1:55- 2:05 Committing secrets with git using sops-mode</title><rect x="404" y="75" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(415,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">secrets</text></g></a><a href="/2024/talks/mcclim" title="Elisp and McCLIM" data-slug="mcclim"><title> 2:25- 3:25 Elisp and McCLIM</title><rect x="446" y="75" opacity="0.5" width="82" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(526,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">mcclim</text></g></a><a href="/2024/talks/repro" title="Reproducibly building Emacs: “Hey your checksum is the same as mine!”" data-slug="repro"><title> 3:45- 4:05 Reproducibly building Emacs: “Hey your checksum is the same as mine!”</title><rect x="555" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(580,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">repro</text></g></a><g transform="translate(0,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">9 AM</text></g><g transform="translate(82,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">10 AM</text></g><g transform="translate(164,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">11 AM</text></g><g transform="translate(247,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">12 PM</text></g><g transform="translate(329,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">1 PM</text></g><g transform="translate(411,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">2 PM</text></g><g transform="translate(494,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">3 PM</text></g><g transform="translate(576,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">4 PM</text></g><g transform="translate(658,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">5 PM</text></g></svg>
+</div>
+
+[[!toc ]]
+Format: 38-min talk; Q&A: IRC <https://chat.emacsconf.org/?join=emacsconf>
+Discuss on IRC: [#emacsconf](https://chat.emacsconf.org/?join=emacsconf)
+Status: Ready to stream
+<div>Times in different time zones:</div><div class="times" start="2024-12-07T18:55:00Z" end="2024-12-07T19:35:00Z"><div class="conf-time">Saturday, Dec 7 2024, ~1:55 PM - 2:35 PM EST (US/Eastern)</div><div class="others"><div>which is the same as:</div>Saturday, Dec 7 2024, ~12:55 PM - 1:35 PM CST (US/Central)<br />Saturday, Dec 7 2024, ~11:55 AM - 12:35 PM MST (US/Mountain)<br />Saturday, Dec 7 2024, ~10:55 AM - 11:35 AM PST (US/Pacific)<br />Saturday, Dec 7 2024, ~6:55 PM - 7:35 PM UTC <br />Saturday, Dec 7 2024, ~7:55 PM - 8:35 PM CET (Europe/Paris)<br />Saturday, Dec 7 2024, ~8:55 PM - 9:35 PM EET (Europe/Athens)<br />Sunday, Dec 8 2024, ~12:25 AM - 1:05 AM IST (Asia/Kolkata)<br />Sunday, Dec 8 2024, ~2:55 AM - 3:35 AM +08 (Asia/Singapore)<br />Sunday, Dec 8 2024, ~3:55 AM - 4:35 AM JST (Asia/Tokyo)</div></div><div><strong><a href="/2024/watch/gen/">Find out how to watch and participate</a></strong></div>
diff --git a/2024/info/shell-nav.md b/2024/info/shell-nav.md
index a847122f..f096c02c 100644
--- a/2024/info/shell-nav.md
+++ b/2024/info/shell-nav.md
@@ -1,7 +1,7 @@
<div class="talk-nav">
Back to the [[talks]]
-Previous by track: <a href="/2024/talks/water">Watering my (digital) plant with Emacs timers</a>
-Next by track: <a href="/2024/talks/theme">My journey of finding and creating the “perfect” Emacs theme</a>
-Track: <span class="sched-track General">General</span>
+Previous by time: <a href="/2024/talks/secrets">Committing secrets with git using sops-mode</a>
+Next by time: <a href="/2024/talks/mcclim">Elisp and McCLIM</a>
+Track: <span class="sched-track General">General</span> - <strong><a href="https://emacsconf.org/2024/watch/gen">Watch</a></strong>
</div>
diff --git a/2024/info/students-after.md b/2024/info/students-after.md
index fe9d3a85..5fbfb120 100644
--- a/2024/info/students-after.md
+++ b/2024/info/students-after.md
@@ -3,8 +3,5 @@
Questions or comments? Please e-mail [emacsconf-org-private@gnu.org](mailto:emacsconf-org-private@gnu.org?subject=Comment%20for%20EmacsConf%202023%20students%3A%20An%20example%20of%20a%20cohesive%20student%20workflow%20in%20Emacs)
-----
-Got an idea for an EmacsConf talk or session? We'd love to hear from you! Check out the [[Call for Participation|/2024/cfp]] for details.
-
<!-- End of emacsconf-publish-after-page -->
diff --git a/2024/info/students-before.md b/2024/info/students-before.md
index 74428663..564bef55 100644
--- a/2024/info/students-before.md
+++ b/2024/info/students-before.md
@@ -1,8 +1,14 @@
<!-- Automatically generated by emacsconf-publish-before-page -->
+
+The following image shows where the talk is in the schedule for Sun 2024-12-08. Solid lines show talks with Q&A via BigBlueButton. Dashed lines show talks with Q&A via IRC or Etherpad.<div class="schedule-in-context schedule-svg-container" data-slug="students">
+<svg width="700" height="150" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><title>Schedule for Sunday</title><rect width="700" height="150" x="0" y="0" fill="white"></rect><text font-size="10" fill="black" y="12" x="3">Sunday</text><a href="/2024/talks/sun-open" title="Sunday opening remarks" data-slug="sun-open"><title> 9:00- 9:10 Sunday opening remarks</title><rect x="0" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(11,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sun-open</text></g></a><a href="/2024/talks/links" title="Unlocking linked data: replacing specialized apps with an Org-based semantic wiki" data-slug="links"><title> 9:10- 9:20 Unlocking linked data: replacing specialized apps with an Org-based semantic wiki</title><rect x="13" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(24,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">links</text></g></a><a href="/2024/talks/regex" title="Emacs regex compilation and future directions for expressive pattern matching" data-slug="regex"><title> 9:30- 9:50 Emacs regex compilation and future directions for expressive pattern matching</title><rect x="41" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(66,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">regex</text></g></a><a href="/2024/talks/learning" title="Survival of the skillest: Thriving in the learning jungle" data-slug="learning"><title>10:00-10:20 Survival of the skillest: Thriving in the learning jungle</title><rect x="82" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(107,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">learning</text></g></a><a href="/2024/talks/language" title="Immersive language learning with Emacs" data-slug="language"><title>10:30-10:40 Immersive language learning with Emacs</title><rect x="123" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(134,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">language</text></g></a><a href="/2024/talks/org-teach" title="org-teach: a minor mode for writing course materials in Emacs" data-slug="org-teach"><title>10:50-11:10 org-teach: a minor mode for writing course materials in Emacs</title><rect x="150" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(175,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">org-teach</text></g></a><a href="/2024/talks/hyperbole" title="Fun things with GNU Hyperbole" data-slug="hyperbole"><title>11:25-11:40 Fun things with GNU Hyperbole</title><rect x="199" y="15" opacity="0.5" width="20" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(217,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">hyperbole</text></g></a><a href="/2024/talks/hywiki" title="HyWiki: Fast, hyperlinked note-taking with no markup required" data-slug="hywiki"><title> 1:00- 1:20 HyWiki: Fast, hyperlinked note-taking with no markup required</title><rect x="329" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(354,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">hywiki</text></g></a><a href="/2024/talks/pgmacs" title="PGmacs: browsing and editing PostgreSQL databases from Emacs" data-slug="pgmacs"><title> 1:35- 1:50 PGmacs: browsing and editing PostgreSQL databases from Emacs</title><rect x="377" y="15" opacity="0.5" width="20" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(395,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">pgmacs</text></g></a><a href="/2024/talks/blee" title="About Blee: enveloping our own autonomy directed digital ecosystem with Emacs" data-slug="blee"><title> 2:05- 2:45 About Blee: enveloping our own autonomy directed digital ecosystem with Emacs</title><rect x="418" y="15" opacity="0.5" width="54" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(470,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">blee</text></g></a><a href="/2024/talks/literate" title="Literate programming for the 21st Century" data-slug="literate"><title> 2:55- 3:15 Literate programming for the 21st Century</title><rect x="487" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(512,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">literate</text></g></a><a href="/2024/talks/students" title="An example of a cohesive student workflow in Emacs" data-slug="students"><title> 3:30- 3:40 An example of a cohesive student workflow in Emacs</title><rect stroke-width="3" x="535" y="15" opacity="0.8" width="13" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(546,73)"><text font-weight="bold" fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">students</text></g></a><a href="/2024/talks/sharing" title="So you want to be an Emacs-fluencer?" data-slug="sharing"><title> 3:50- 4:10 So you want to be an Emacs-fluencer?</title><rect x="562" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(587,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sharing</text></g></a><a href="/2024/talks/transducers" title="Transducers: finally, ergonomic data processing for Emacs!" data-slug="transducers"><title> 4:20- 4:50 Transducers: finally, ergonomic data processing for Emacs!</title><rect x="603" y="15" opacity="0.5" width="41" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(642,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">transducers</text></g></a><a href="/2024/talks/sun-close" title="Sunday closing remarks" data-slug="sun-close"><title> 5:00- 5:10 Sunday closing remarks</title><rect x="658" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(669,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sun-close</text></g></a><g transform="translate(0,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">9 AM</text></g><g transform="translate(82,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">10 AM</text></g><g transform="translate(164,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">11 AM</text></g><g transform="translate(247,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">12 PM</text></g><g transform="translate(329,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">1 PM</text></g><g transform="translate(411,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">2 PM</text></g><g transform="translate(494,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">3 PM</text></g><g transform="translate(576,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">4 PM</text></g><g transform="translate(658,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">5 PM</text></g></svg>
+</div>
+
[[!toc ]]
-Format: 10-min talk; Q&A: IRC
+Format: 10-min talk; Q&A: IRC <https://chat.emacsconf.org/?join=emacsconf>
+Discuss on IRC: [#emacsconf](https://chat.emacsconf.org/?join=emacsconf)
Status: Waiting for video from speaker
-
+<div>Times in different time zones:</div><div class="times" start="2024-12-08T20:30:00Z" end="2024-12-08T20:40:00Z"><div class="conf-time">Sunday, Dec 8 2024, ~3:30 PM - 3:40 PM EST (US/Eastern)</div><div class="others"><div>which is the same as:</div>Sunday, Dec 8 2024, ~2:30 PM - 2:40 PM CST (US/Central)<br />Sunday, Dec 8 2024, ~1:30 PM - 1:40 PM MST (US/Mountain)<br />Sunday, Dec 8 2024, ~12:30 PM - 12:40 PM PST (US/Pacific)<br />Sunday, Dec 8 2024, ~8:30 PM - 8:40 PM UTC <br />Sunday, Dec 8 2024, ~9:30 PM - 9:40 PM CET (Europe/Paris)<br />Sunday, Dec 8 2024, ~10:30 PM - 10:40 PM EET (Europe/Athens)<br />Monday, Dec 9 2024, ~2:00 AM - 2:10 AM IST (Asia/Kolkata)<br />Monday, Dec 9 2024, ~4:30 AM - 4:40 AM +08 (Asia/Singapore)<br />Monday, Dec 9 2024, ~5:30 AM - 5:40 AM JST (Asia/Tokyo)</div></div><div><strong><a href="/2024/watch/gen/">Find out how to watch and participate</a></strong></div>
diff --git a/2024/info/students-nav.md b/2024/info/students-nav.md
index 3cfc3d75..08f863c5 100644
--- a/2024/info/students-nav.md
+++ b/2024/info/students-nav.md
@@ -1,7 +1,7 @@
<div class="talk-nav">
Back to the [[talks]]
-Previous by track: <a href="/2024/talks/literate">Literate programming for the 21st Century</a>
-Next by track: <a href="/2024/talks/transducers">Transducers: finally, ergonomic data processing for Emacs!</a>
-Track: <span class="sched-track General">General</span>
+Previous by time: <a href="/2024/talks/literate">Literate programming for the 21st Century</a>
+Next by time: <a href="/2024/talks/sharing">So you want to be an Emacs-fluencer?</a>
+Track: <span class="sched-track General">General</span> - <strong><a href="https://emacsconf.org/2024/watch/gen">Watch</a></strong>
</div>
diff --git a/2024/info/sun-close-after.md b/2024/info/sun-close-after.md
new file mode 100644
index 00000000..aebbe6f8
--- /dev/null
+++ b/2024/info/sun-close-after.md
@@ -0,0 +1,7 @@
+<!-- Automatically generated by emacsconf-publish-after-page -->
+
+
+Questions or comments? Please e-mail [emacsconf-org-private@gnu.org](mailto:emacsconf-org-private@gnu.org?subject=Comment%20for%20EmacsConf%202023%20sun-close%3A%20Sunday%20closing%20remarks)
+
+
+<!-- End of emacsconf-publish-after-page -->
diff --git a/2024/info/sun-close-before.md b/2024/info/sun-close-before.md
new file mode 100644
index 00000000..b3661431
--- /dev/null
+++ b/2024/info/sun-close-before.md
@@ -0,0 +1,18 @@
+<!-- Automatically generated by emacsconf-publish-before-page -->
+
+The following image shows where the talk is in the schedule for Sun 2024-12-08. Solid lines show talks with Q&A via BigBlueButton. Dashed lines show talks with Q&A via IRC or Etherpad.<div class="schedule-in-context schedule-svg-container" data-slug="sun-close">
+<svg width="700" height="150" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><title>Schedule for Sunday</title><rect width="700" height="150" x="0" y="0" fill="white"></rect><text font-size="10" fill="black" y="12" x="3">Sunday</text><a href="/2024/talks/sun-open" title="Sunday opening remarks" data-slug="sun-open"><title> 9:00- 9:10 Sunday opening remarks</title><rect x="0" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(11,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sun-open</text></g></a><a href="/2024/talks/links" title="Unlocking linked data: replacing specialized apps with an Org-based semantic wiki" data-slug="links"><title> 9:10- 9:20 Unlocking linked data: replacing specialized apps with an Org-based semantic wiki</title><rect x="13" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(24,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">links</text></g></a><a href="/2024/talks/regex" title="Emacs regex compilation and future directions for expressive pattern matching" data-slug="regex"><title> 9:30- 9:50 Emacs regex compilation and future directions for expressive pattern matching</title><rect x="41" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(66,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">regex</text></g></a><a href="/2024/talks/learning" title="Survival of the skillest: Thriving in the learning jungle" data-slug="learning"><title>10:00-10:20 Survival of the skillest: Thriving in the learning jungle</title><rect x="82" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(107,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">learning</text></g></a><a href="/2024/talks/language" title="Immersive language learning with Emacs" data-slug="language"><title>10:30-10:40 Immersive language learning with Emacs</title><rect x="123" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(134,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">language</text></g></a><a href="/2024/talks/org-teach" title="org-teach: a minor mode for writing course materials in Emacs" data-slug="org-teach"><title>10:50-11:10 org-teach: a minor mode for writing course materials in Emacs</title><rect x="150" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(175,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">org-teach</text></g></a><a href="/2024/talks/hyperbole" title="Fun things with GNU Hyperbole" data-slug="hyperbole"><title>11:25-11:40 Fun things with GNU Hyperbole</title><rect x="199" y="15" opacity="0.5" width="20" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(217,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">hyperbole</text></g></a><a href="/2024/talks/hywiki" title="HyWiki: Fast, hyperlinked note-taking with no markup required" data-slug="hywiki"><title> 1:00- 1:20 HyWiki: Fast, hyperlinked note-taking with no markup required</title><rect x="329" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(354,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">hywiki</text></g></a><a href="/2024/talks/pgmacs" title="PGmacs: browsing and editing PostgreSQL databases from Emacs" data-slug="pgmacs"><title> 1:35- 1:50 PGmacs: browsing and editing PostgreSQL databases from Emacs</title><rect x="377" y="15" opacity="0.5" width="20" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(395,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">pgmacs</text></g></a><a href="/2024/talks/blee" title="About Blee: enveloping our own autonomy directed digital ecosystem with Emacs" data-slug="blee"><title> 2:05- 2:45 About Blee: enveloping our own autonomy directed digital ecosystem with Emacs</title><rect x="418" y="15" opacity="0.5" width="54" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(470,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">blee</text></g></a><a href="/2024/talks/literate" title="Literate programming for the 21st Century" data-slug="literate"><title> 2:55- 3:15 Literate programming for the 21st Century</title><rect x="487" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(512,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">literate</text></g></a><a href="/2024/talks/students" title="An example of a cohesive student workflow in Emacs" data-slug="students"><title> 3:30- 3:40 An example of a cohesive student workflow in Emacs</title><rect x="535" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(546,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">students</text></g></a><a href="/2024/talks/sharing" title="So you want to be an Emacs-fluencer?" data-slug="sharing"><title> 3:50- 4:10 So you want to be an Emacs-fluencer?</title><rect x="562" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(587,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sharing</text></g></a><a href="/2024/talks/transducers" title="Transducers: finally, ergonomic data processing for Emacs!" data-slug="transducers"><title> 4:20- 4:50 Transducers: finally, ergonomic data processing for Emacs!</title><rect x="603" y="15" opacity="0.5" width="41" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(642,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">transducers</text></g></a><a href="/2024/talks/sun-close" title="Sunday closing remarks" data-slug="sun-close"><title> 5:00- 5:10 Sunday closing remarks</title><rect stroke-width="3" x="658" y="15" opacity="0.8" width="13" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(669,73)"><text font-weight="bold" fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sun-close</text></g></a><g transform="translate(0,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">9 AM</text></g><g transform="translate(82,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">10 AM</text></g><g transform="translate(164,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">11 AM</text></g><g transform="translate(247,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">12 PM</text></g><g transform="translate(329,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">1 PM</text></g><g transform="translate(411,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">2 PM</text></g><g transform="translate(494,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">3 PM</text></g><g transform="translate(576,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">4 PM</text></g><g transform="translate(658,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">5 PM</text></g></svg>
+</div>
+
+[[!toc ]]
+Format: 10-min talk; Q&A: Etherpad <https://pad.emacsconf.org/2024-sun-close>
+Discuss on IRC: [#emacsconf](https://chat.emacsconf.org/?join=emacsconf)
+Status: Ready to stream
+<div>Times in different time zones:</div><div class="times" start="2024-12-08T22:00:00Z" end="2024-12-08T22:10:00Z"><div class="conf-time">Sunday, Dec 8 2024, ~5:00 PM - 5:10 PM EST (US/Eastern)</div><div class="others"><div>which is the same as:</div>Sunday, Dec 8 2024, ~4:00 PM - 4:10 PM CST (US/Central)<br />Sunday, Dec 8 2024, ~3:00 PM - 3:10 PM MST (US/Mountain)<br />Sunday, Dec 8 2024, ~2:00 PM - 2:10 PM PST (US/Pacific)<br />Sunday, Dec 8 2024, ~10:00 PM - 10:10 PM UTC <br />Sunday, Dec 8 2024, ~11:00 PM - 11:10 PM CET (Europe/Paris)<br />Monday, Dec 9 2024, ~12:00 AM - 12:10 AM EET (Europe/Athens)<br />Monday, Dec 9 2024, ~3:30 AM - 3:40 AM IST (Asia/Kolkata)<br />Monday, Dec 9 2024, ~6:00 AM - 6:10 AM +08 (Asia/Singapore)<br />Monday, Dec 9 2024, ~7:00 AM - 7:10 AM JST (Asia/Tokyo)</div></div><div><strong><a href="/2024/watch/gen/">Find out how to watch and participate</a></strong></div>
+
+
+
+
+
+# Description
+<!-- End of emacsconf-publish-before-page --> \ No newline at end of file
diff --git a/2024/info/sun-close-nav.md b/2024/info/sun-close-nav.md
new file mode 100644
index 00000000..d1239233
--- /dev/null
+++ b/2024/info/sun-close-nav.md
@@ -0,0 +1,6 @@
+
+<div class="talk-nav">
+Back to the [[talks]]
+Previous by time: <a href="/2024/talks/transducers">Transducers: finally, ergonomic data processing for Emacs!</a>
+Track: <span class="sched-track General">General</span> - <strong><a href="https://emacsconf.org/2024/watch/gen">Watch</a></strong>
+</div>
diff --git a/2024/info/sun-open-after.md b/2024/info/sun-open-after.md
new file mode 100644
index 00000000..35dc6a0a
--- /dev/null
+++ b/2024/info/sun-open-after.md
@@ -0,0 +1,7 @@
+<!-- Automatically generated by emacsconf-publish-after-page -->
+
+
+Questions or comments? Please e-mail [emacsconf-org-private@gnu.org](mailto:emacsconf-org-private@gnu.org?subject=Comment%20for%20EmacsConf%202023%20sun-open%3A%20Sunday%20opening%20remarks)
+
+
+<!-- End of emacsconf-publish-after-page -->
diff --git a/2024/info/sun-open-before.md b/2024/info/sun-open-before.md
new file mode 100644
index 00000000..fb031da0
--- /dev/null
+++ b/2024/info/sun-open-before.md
@@ -0,0 +1,18 @@
+<!-- Automatically generated by emacsconf-publish-before-page -->
+
+The following image shows where the talk is in the schedule for Sun 2024-12-08. Solid lines show talks with Q&A via BigBlueButton. Dashed lines show talks with Q&A via IRC or Etherpad.<div class="schedule-in-context schedule-svg-container" data-slug="sun-open">
+<svg width="700" height="150" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><title>Schedule for Sunday</title><rect width="700" height="150" x="0" y="0" fill="white"></rect><text font-size="10" fill="black" y="12" x="3">Sunday</text><a href="/2024/talks/sun-open" title="Sunday opening remarks" data-slug="sun-open"><title> 9:00- 9:10 Sunday opening remarks</title><rect stroke-width="3" x="0" y="15" opacity="0.8" width="13" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(11,73)"><text font-weight="bold" fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sun-open</text></g></a><a href="/2024/talks/links" title="Unlocking linked data: replacing specialized apps with an Org-based semantic wiki" data-slug="links"><title> 9:10- 9:20 Unlocking linked data: replacing specialized apps with an Org-based semantic wiki</title><rect x="13" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(24,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">links</text></g></a><a href="/2024/talks/regex" title="Emacs regex compilation and future directions for expressive pattern matching" data-slug="regex"><title> 9:30- 9:50 Emacs regex compilation and future directions for expressive pattern matching</title><rect x="41" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(66,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">regex</text></g></a><a href="/2024/talks/learning" title="Survival of the skillest: Thriving in the learning jungle" data-slug="learning"><title>10:00-10:20 Survival of the skillest: Thriving in the learning jungle</title><rect x="82" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(107,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">learning</text></g></a><a href="/2024/talks/language" title="Immersive language learning with Emacs" data-slug="language"><title>10:30-10:40 Immersive language learning with Emacs</title><rect x="123" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(134,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">language</text></g></a><a href="/2024/talks/org-teach" title="org-teach: a minor mode for writing course materials in Emacs" data-slug="org-teach"><title>10:50-11:10 org-teach: a minor mode for writing course materials in Emacs</title><rect x="150" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(175,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">org-teach</text></g></a><a href="/2024/talks/hyperbole" title="Fun things with GNU Hyperbole" data-slug="hyperbole"><title>11:25-11:40 Fun things with GNU Hyperbole</title><rect x="199" y="15" opacity="0.5" width="20" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(217,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">hyperbole</text></g></a><a href="/2024/talks/hywiki" title="HyWiki: Fast, hyperlinked note-taking with no markup required" data-slug="hywiki"><title> 1:00- 1:20 HyWiki: Fast, hyperlinked note-taking with no markup required</title><rect x="329" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(354,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">hywiki</text></g></a><a href="/2024/talks/pgmacs" title="PGmacs: browsing and editing PostgreSQL databases from Emacs" data-slug="pgmacs"><title> 1:35- 1:50 PGmacs: browsing and editing PostgreSQL databases from Emacs</title><rect x="377" y="15" opacity="0.5" width="20" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(395,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">pgmacs</text></g></a><a href="/2024/talks/blee" title="About Blee: enveloping our own autonomy directed digital ecosystem with Emacs" data-slug="blee"><title> 2:05- 2:45 About Blee: enveloping our own autonomy directed digital ecosystem with Emacs</title><rect x="418" y="15" opacity="0.5" width="54" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(470,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">blee</text></g></a><a href="/2024/talks/literate" title="Literate programming for the 21st Century" data-slug="literate"><title> 2:55- 3:15 Literate programming for the 21st Century</title><rect x="487" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(512,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">literate</text></g></a><a href="/2024/talks/students" title="An example of a cohesive student workflow in Emacs" data-slug="students"><title> 3:30- 3:40 An example of a cohesive student workflow in Emacs</title><rect x="535" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(546,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">students</text></g></a><a href="/2024/talks/sharing" title="So you want to be an Emacs-fluencer?" data-slug="sharing"><title> 3:50- 4:10 So you want to be an Emacs-fluencer?</title><rect x="562" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(587,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sharing</text></g></a><a href="/2024/talks/transducers" title="Transducers: finally, ergonomic data processing for Emacs!" data-slug="transducers"><title> 4:20- 4:50 Transducers: finally, ergonomic data processing for Emacs!</title><rect x="603" y="15" opacity="0.5" width="41" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(642,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">transducers</text></g></a><a href="/2024/talks/sun-close" title="Sunday closing remarks" data-slug="sun-close"><title> 5:00- 5:10 Sunday closing remarks</title><rect x="658" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(669,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sun-close</text></g></a><g transform="translate(0,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">9 AM</text></g><g transform="translate(82,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">10 AM</text></g><g transform="translate(164,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">11 AM</text></g><g transform="translate(247,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">12 PM</text></g><g transform="translate(329,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">1 PM</text></g><g transform="translate(411,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">2 PM</text></g><g transform="translate(494,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">3 PM</text></g><g transform="translate(576,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">4 PM</text></g><g transform="translate(658,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">5 PM</text></g></svg>
+</div>
+
+[[!toc ]]
+Format: 10-min talk; Q&A: Etherpad <https://pad.emacsconf.org/2024-sun-open>
+Discuss on IRC: [#emacsconf](https://chat.emacsconf.org/?join=emacsconf)
+Status: Waiting for video from speaker
+<div>Times in different time zones:</div><div class="times" start="2024-12-08T14:00:00Z" end="2024-12-08T14:10:00Z"><div class="conf-time">Sunday, Dec 8 2024, ~9:00 AM - 9:10 AM EST (US/Eastern)</div><div class="others"><div>which is the same as:</div>Sunday, Dec 8 2024, ~8:00 AM - 8:10 AM CST (US/Central)<br />Sunday, Dec 8 2024, ~7:00 AM - 7:10 AM MST (US/Mountain)<br />Sunday, Dec 8 2024, ~6:00 AM - 6:10 AM PST (US/Pacific)<br />Sunday, Dec 8 2024, ~2:00 PM - 2:10 PM UTC <br />Sunday, Dec 8 2024, ~3:00 PM - 3:10 PM CET (Europe/Paris)<br />Sunday, Dec 8 2024, ~4:00 PM - 4:10 PM EET (Europe/Athens)<br />Sunday, Dec 8 2024, ~7:30 PM - 7:40 PM IST (Asia/Kolkata)<br />Sunday, Dec 8 2024, ~10:00 PM - 10:10 PM +08 (Asia/Singapore)<br />Sunday, Dec 8 2024, ~11:00 PM - 11:10 PM JST (Asia/Tokyo)</div></div><div><strong><a href="/2024/watch/gen/">Find out how to watch and participate</a></strong></div>
+
+
+
+
+
+# Description
+<!-- End of emacsconf-publish-before-page --> \ No newline at end of file
diff --git a/2024/info/sun-open-nav.md b/2024/info/sun-open-nav.md
new file mode 100644
index 00000000..e58ab52f
--- /dev/null
+++ b/2024/info/sun-open-nav.md
@@ -0,0 +1,7 @@
+
+<div class="talk-nav">
+Back to the [[talks]]
+Previous by time: <a href="/2024/talks/sat-close">Saturday closing remarks</a>
+Next by time: <a href="/2024/talks/links">Unlocking linked data: replacing specialized apps with an Org-based semantic wiki</a>
+Track: <span class="sched-track General">General</span> - <strong><a href="https://emacsconf.org/2024/watch/gen">Watch</a></strong>
+</div>
diff --git a/2024/info/theme-after.md b/2024/info/theme-after.md
index c062f3a6..93a9ea39 100644
--- a/2024/info/theme-after.md
+++ b/2024/info/theme-after.md
@@ -3,8 +3,5 @@
Questions or comments? Please e-mail [emacsconf-org-private@gnu.org](mailto:emacsconf-org-private@gnu.org?subject=Comment%20for%20EmacsConf%202023%20theme%3A%20My%20journey%20of%20finding%20and%20creating%20the%20%E2%80%9Cperfect%E2%80%9D%20Emacs%20theme)
-----
-Got an idea for an EmacsConf talk or session? We'd love to hear from you! Check out the [[Call for Participation|/2024/cfp]] for details.
-
<!-- End of emacsconf-publish-after-page -->
diff --git a/2024/info/theme-before.md b/2024/info/theme-before.md
index b8e44d2c..412b0df2 100644
--- a/2024/info/theme-before.md
+++ b/2024/info/theme-before.md
@@ -1,8 +1,14 @@
<!-- Automatically generated by emacsconf-publish-before-page -->
-[[!toc ]]
-Format: 10-min talk; Q&A: BigBlueButton conference room
-Status: Waiting for video from speaker
+The following image shows where the talk is in the schedule for Sat 2024-12-07. Solid lines show talks with Q&A via BigBlueButton. Dashed lines show talks with Q&A via IRC or Etherpad.<div class="schedule-in-context schedule-svg-container" data-slug="theme">
+<svg width="700" height="150" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><title>Schedule for Saturday</title><rect width="700" height="150" x="0" y="0" fill="white"></rect><text font-size="10" fill="black" y="12" x="3">Saturday</text><a href="/2024/talks/sat-open" title="Saturday opening remarks" data-slug="sat-open"><title> 9:00- 9:10 Saturday opening remarks</title><rect x="0" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(11,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sat-open</text></g></a><a href="/2024/talks/papers" title="Writing academic papers in Org-Roam" data-slug="papers"><title> 9:10- 9:20 Writing academic papers in Org-Roam</title><rect x="13" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(24,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">papers</text></g></a><a href="/2024/talks/project" title="Managing writing project metadata with org-mode" data-slug="project"><title> 9:40-10:00 Managing writing project metadata with org-mode</title><rect x="54" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(79,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">project</text></g></a><a href="/2024/talks/org-update" title="The Future of Org" data-slug="org-update"><title>10:20-10:40 The Future of Org</title><rect x="109" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(134,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">org-update</text></g></a><a href="/2024/talks/color" title="Colour your Emacs with ease" data-slug="color"><title>11:00-11:10 Colour your Emacs with ease</title><rect x="164" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(175,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">color</text></g></a><a href="/2024/talks/theme" title="My journey of finding and creating the “perfect” Emacs theme" data-slug="theme"><title> 1:00- 1:10 My journey of finding and creating the “perfect” Emacs theme</title><rect stroke-width="3" x="329" y="15" opacity="0.8" width="13" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(340,73)"><text font-weight="bold" fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">theme</text></g></a><a href="/2024/talks/water" title="Watering my (digital) plant with Emacs timers" data-slug="water"><title> 1:30- 1:45 Watering my (digital) plant with Emacs timers</title><rect x="370" y="15" opacity="0.5" width="20" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(388,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">water</text></g></a><a href="/2024/talks/shell" title="Emacs as a shell" data-slug="shell"><title> 1:55- 2:35 Emacs as a shell</title><rect x="404" y="15" opacity="0.5" width="54" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(456,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">shell</text></g></a><a href="/2024/talks/casual" title="Re-imagining the Emacs user experience with Casual Suite" data-slug="casual"><title> 2:45- 3:05 Re-imagining the Emacs user experience with Casual Suite</title><rect x="473" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(498,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">casual</text></g></a><a href="/2024/talks/hyperdrive" title="New in hyperdrive.el: org-transclusion, easy installation, and more!" data-slug="hyperdrive"><title> 3:25- 3:45 New in hyperdrive.el: org-transclusion, easy installation, and more!</title><rect x="528" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(553,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">hyperdrive</text></g></a><a href="/2024/talks/writing" title="Emacs Writing Studio" data-slug="writing"><title> 4:05- 4:15 Emacs Writing Studio</title><rect x="583" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(594,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">writing</text></g></a><a href="/2024/talks/emacs30" title="Emacs 30 Highlights" data-slug="emacs30"><title> 4:25- 4:50 Emacs 30 Highlights</title><rect x="610" y="15" opacity="0.5" width="34" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(642,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">emacs30</text></g></a><a href="/2024/talks/sat-close" title="Saturday closing remarks" data-slug="sat-close"><title> 5:00- 5:10 Saturday closing remarks</title><rect x="658" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(669,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sat-close</text></g></a><a href="/2024/talks/gypsum" title="Gypsum: my clone of Emacs and ELisp written in Scheme" data-slug="gypsum"><title>10:00-10:20 Gypsum: my clone of Emacs and ELisp written in Scheme</title><rect x="82" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(107,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">gypsum</text></g></a><a href="/2024/talks/rust" title="An experimental Emacs core in Rust" data-slug="rust"><title>10:40-11:00 An experimental Emacs core in Rust</title><rect x="137" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(162,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">rust</text></g></a><a href="/2024/talks/p-search" title="p-search: a local search engine in Emacs" data-slug="p-search"><title>11:20-11:45 p-search: a local search engine in Emacs</title><rect x="192" y="75" opacity="0.5" width="34" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(224,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">p-search</text></g></a><a href="/2024/talks/julia" title="Exploring shared philosophies in Julia and Emacs" data-slug="julia"><title> 1:00- 1:10 Exploring shared philosophies in Julia and Emacs</title><rect x="329" y="75" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(340,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">julia</text></g></a><a href="/2024/talks/guile" title="Beguiling Emacs: Guile-Emacs relaunched!" data-slug="guile"><title> 1:25- 1:45 Beguiling Emacs: Guile-Emacs relaunched!</title><rect x="363" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="5,5,5" fill="skyblue"></rect><g transform="translate(388,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">guile</text></g></a><a href="/2024/talks/secrets" title="Committing secrets with git using sops-mode" data-slug="secrets"><title> 1:55- 2:05 Committing secrets with git using sops-mode</title><rect x="404" y="75" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(415,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">secrets</text></g></a><a href="/2024/talks/mcclim" title="Elisp and McCLIM" data-slug="mcclim"><title> 2:25- 3:25 Elisp and McCLIM</title><rect x="446" y="75" opacity="0.5" width="82" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(526,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">mcclim</text></g></a><a href="/2024/talks/repro" title="Reproducibly building Emacs: “Hey your checksum is the same as mine!”" data-slug="repro"><title> 3:45- 4:05 Reproducibly building Emacs: “Hey your checksum is the same as mine!”</title><rect x="555" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(580,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">repro</text></g></a><g transform="translate(0,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">9 AM</text></g><g transform="translate(82,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">10 AM</text></g><g transform="translate(164,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">11 AM</text></g><g transform="translate(247,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">12 PM</text></g><g transform="translate(329,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">1 PM</text></g><g transform="translate(411,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">2 PM</text></g><g transform="translate(494,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">3 PM</text></g><g transform="translate(576,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">4 PM</text></g><g transform="translate(658,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">5 PM</text></g></svg>
+</div>
+
+[[!toc ]]
+Format: 12-min talk; Q&A: BigBlueButton conference room <https://media.emacsconf.org/2024/current/bbb-theme.html>
+Discuss on IRC: [#emacsconf](https://chat.emacsconf.org/?join=emacsconf)
+Status: Quality check
+<div>Times in different time zones:</div><div class="times" start="2024-12-07T18:00:00Z" end="2024-12-07T18:10:00Z"><div class="conf-time">Saturday, Dec 7 2024, ~1:00 PM - 1:10 PM EST (US/Eastern)</div><div class="others"><div>which is the same as:</div>Saturday, Dec 7 2024, ~12:00 PM - 12:10 PM CST (US/Central)<br />Saturday, Dec 7 2024, ~11:00 AM - 11:10 AM MST (US/Mountain)<br />Saturday, Dec 7 2024, ~10:00 AM - 10:10 AM PST (US/Pacific)<br />Saturday, Dec 7 2024, ~6:00 PM - 6:10 PM UTC <br />Saturday, Dec 7 2024, ~7:00 PM - 7:10 PM CET (Europe/Paris)<br />Saturday, Dec 7 2024, ~8:00 PM - 8:10 PM EET (Europe/Athens)<br />Saturday, Dec 7 2024, ~11:30 PM - 11:40 PM IST (Asia/Kolkata)<br />Sunday, Dec 8 2024, ~2:00 AM - 2:10 AM +08 (Asia/Singapore)<br />Sunday, Dec 8 2024, ~3:00 AM - 3:10 AM JST (Asia/Tokyo)</div></div><div><strong><a href="/2024/watch/gen/">Find out how to watch and participate</a></strong></div>
diff --git a/2024/info/theme-nav.md b/2024/info/theme-nav.md
index b818ff71..bf59a90b 100644
--- a/2024/info/theme-nav.md
+++ b/2024/info/theme-nav.md
@@ -1,7 +1,7 @@
<div class="talk-nav">
Back to the [[talks]]
-Previous by track: <a href="/2024/talks/shell">Emacs as a shell</a>
-Next by track: <a href="/2024/talks/flp">The Free Life Planner: Empowering lives with Emacs-based AI</a>
-Track: <span class="sched-track General">General</span>
+Previous by time: <a href="/2024/talks/julia">Exploring shared philosophies in Julia and Emacs</a>
+Next by time: <a href="/2024/talks/guile">Beguiling Emacs: Guile-Emacs relaunched!</a>
+Track: <span class="sched-track General">General</span> - <strong><a href="https://emacsconf.org/2024/watch/gen">Watch</a></strong>
</div>
diff --git a/2024/info/transducers-after.md b/2024/info/transducers-after.md
index 8cbe1c26..cfd894ee 100644
--- a/2024/info/transducers-after.md
+++ b/2024/info/transducers-after.md
@@ -3,8 +3,5 @@
Questions or comments? Please e-mail [emacsconf-org-private@gnu.org](mailto:emacsconf-org-private@gnu.org?subject=Comment%20for%20EmacsConf%202023%20transducers%3A%20Transducers%3A%20finally%2C%20ergonomic%20data%20processing%20for%20Emacs%21)
-----
-Got an idea for an EmacsConf talk or session? We'd love to hear from you! Check out the [[Call for Participation|/2024/cfp]] for details.
-
<!-- End of emacsconf-publish-after-page -->
diff --git a/2024/info/transducers-before.md b/2024/info/transducers-before.md
index 9c72a577..eb446cdf 100644
--- a/2024/info/transducers-before.md
+++ b/2024/info/transducers-before.md
@@ -1,8 +1,14 @@
<!-- Automatically generated by emacsconf-publish-before-page -->
-[[!toc ]]
-Format: 30-min talk; Q&A: BigBlueButton conference room
-Status: Waiting for video from speaker
+The following image shows where the talk is in the schedule for Sun 2024-12-08. Solid lines show talks with Q&A via BigBlueButton. Dashed lines show talks with Q&A via IRC or Etherpad.<div class="schedule-in-context schedule-svg-container" data-slug="transducers">
+<svg width="700" height="150" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><title>Schedule for Sunday</title><rect width="700" height="150" x="0" y="0" fill="white"></rect><text font-size="10" fill="black" y="12" x="3">Sunday</text><a href="/2024/talks/sun-open" title="Sunday opening remarks" data-slug="sun-open"><title> 9:00- 9:10 Sunday opening remarks</title><rect x="0" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(11,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sun-open</text></g></a><a href="/2024/talks/links" title="Unlocking linked data: replacing specialized apps with an Org-based semantic wiki" data-slug="links"><title> 9:10- 9:20 Unlocking linked data: replacing specialized apps with an Org-based semantic wiki</title><rect x="13" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(24,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">links</text></g></a><a href="/2024/talks/regex" title="Emacs regex compilation and future directions for expressive pattern matching" data-slug="regex"><title> 9:30- 9:50 Emacs regex compilation and future directions for expressive pattern matching</title><rect x="41" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(66,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">regex</text></g></a><a href="/2024/talks/learning" title="Survival of the skillest: Thriving in the learning jungle" data-slug="learning"><title>10:00-10:20 Survival of the skillest: Thriving in the learning jungle</title><rect x="82" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(107,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">learning</text></g></a><a href="/2024/talks/language" title="Immersive language learning with Emacs" data-slug="language"><title>10:30-10:40 Immersive language learning with Emacs</title><rect x="123" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(134,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">language</text></g></a><a href="/2024/talks/org-teach" title="org-teach: a minor mode for writing course materials in Emacs" data-slug="org-teach"><title>10:50-11:10 org-teach: a minor mode for writing course materials in Emacs</title><rect x="150" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(175,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">org-teach</text></g></a><a href="/2024/talks/hyperbole" title="Fun things with GNU Hyperbole" data-slug="hyperbole"><title>11:25-11:40 Fun things with GNU Hyperbole</title><rect x="199" y="15" opacity="0.5" width="20" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(217,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">hyperbole</text></g></a><a href="/2024/talks/hywiki" title="HyWiki: Fast, hyperlinked note-taking with no markup required" data-slug="hywiki"><title> 1:00- 1:20 HyWiki: Fast, hyperlinked note-taking with no markup required</title><rect x="329" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(354,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">hywiki</text></g></a><a href="/2024/talks/pgmacs" title="PGmacs: browsing and editing PostgreSQL databases from Emacs" data-slug="pgmacs"><title> 1:35- 1:50 PGmacs: browsing and editing PostgreSQL databases from Emacs</title><rect x="377" y="15" opacity="0.5" width="20" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(395,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">pgmacs</text></g></a><a href="/2024/talks/blee" title="About Blee: enveloping our own autonomy directed digital ecosystem with Emacs" data-slug="blee"><title> 2:05- 2:45 About Blee: enveloping our own autonomy directed digital ecosystem with Emacs</title><rect x="418" y="15" opacity="0.5" width="54" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(470,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">blee</text></g></a><a href="/2024/talks/literate" title="Literate programming for the 21st Century" data-slug="literate"><title> 2:55- 3:15 Literate programming for the 21st Century</title><rect x="487" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(512,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">literate</text></g></a><a href="/2024/talks/students" title="An example of a cohesive student workflow in Emacs" data-slug="students"><title> 3:30- 3:40 An example of a cohesive student workflow in Emacs</title><rect x="535" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(546,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">students</text></g></a><a href="/2024/talks/sharing" title="So you want to be an Emacs-fluencer?" data-slug="sharing"><title> 3:50- 4:10 So you want to be an Emacs-fluencer?</title><rect x="562" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(587,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sharing</text></g></a><a href="/2024/talks/transducers" title="Transducers: finally, ergonomic data processing for Emacs!" data-slug="transducers"><title> 4:20- 4:50 Transducers: finally, ergonomic data processing for Emacs!</title><rect stroke-width="3" x="603" y="15" opacity="0.8" width="41" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(642,73)"><text font-weight="bold" fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">transducers</text></g></a><a href="/2024/talks/sun-close" title="Sunday closing remarks" data-slug="sun-close"><title> 5:00- 5:10 Sunday closing remarks</title><rect x="658" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(669,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sun-close</text></g></a><g transform="translate(0,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">9 AM</text></g><g transform="translate(82,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">10 AM</text></g><g transform="translate(164,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">11 AM</text></g><g transform="translate(247,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">12 PM</text></g><g transform="translate(329,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">1 PM</text></g><g transform="translate(411,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">2 PM</text></g><g transform="translate(494,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">3 PM</text></g><g transform="translate(576,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">4 PM</text></g><g transform="translate(658,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">5 PM</text></g></svg>
+</div>
+
+[[!toc ]]
+Format: 27-min talk; Q&A: BigBlueButton conference room <https://media.emacsconf.org/2024/current/bbb-transducers.html>
+Discuss on IRC: [#emacsconf](https://chat.emacsconf.org/?join=emacsconf)
+Status: Quality check
+<div>Times in different time zones:</div><div class="times" start="2024-12-08T21:20:00Z" end="2024-12-08T21:50:00Z"><div class="conf-time">Sunday, Dec 8 2024, ~4:20 PM - 4:50 PM EST (US/Eastern)</div><div class="others"><div>which is the same as:</div>Sunday, Dec 8 2024, ~3:20 PM - 3:50 PM CST (US/Central)<br />Sunday, Dec 8 2024, ~2:20 PM - 2:50 PM MST (US/Mountain)<br />Sunday, Dec 8 2024, ~1:20 PM - 1:50 PM PST (US/Pacific)<br />Sunday, Dec 8 2024, ~9:20 PM - 9:50 PM UTC <br />Sunday, Dec 8 2024, ~10:20 PM - 10:50 PM CET (Europe/Paris)<br />Sunday, Dec 8 2024, ~11:20 PM - 11:50 PM EET (Europe/Athens)<br />Monday, Dec 9 2024, ~2:50 AM - 3:20 AM IST (Asia/Kolkata)<br />Monday, Dec 9 2024, ~5:20 AM - 5:50 AM +08 (Asia/Singapore)<br />Monday, Dec 9 2024, ~6:20 AM - 6:50 AM JST (Asia/Tokyo)</div></div><div><strong><a href="/2024/watch/gen/">Find out how to watch and participate</a></strong></div>
diff --git a/2024/info/transducers-nav.md b/2024/info/transducers-nav.md
index ab4af480..39473ece 100644
--- a/2024/info/transducers-nav.md
+++ b/2024/info/transducers-nav.md
@@ -1,7 +1,7 @@
<div class="talk-nav">
Back to the [[talks]]
-Previous by track: <a href="/2024/talks/students">An example of a cohesive student workflow in Emacs</a>
-Next by track: <a href="/2024/talks/gypsum">Gypsum: my clone of Emacs and ELisp written in Scheme</a>
-Track: <span class="sched-track General">General</span>
+Previous by time: <a href="/2024/talks/sharing">So you want to be an Emacs-fluencer?</a>
+Next by time: <a href="/2024/talks/sun-close">Sunday closing remarks</a>
+Track: <span class="sched-track General">General</span> - <strong><a href="https://emacsconf.org/2024/watch/gen">Watch</a></strong>
</div>
diff --git a/2024/info/water-after.md b/2024/info/water-after.md
index 6a908d6a..fca52a2e 100644
--- a/2024/info/water-after.md
+++ b/2024/info/water-after.md
@@ -3,8 +3,5 @@
Questions or comments? Please e-mail [christopher@librehacker.com](mailto:christopher@librehacker.com?subject=Comment%20for%20EmacsConf%202023%20water%3A%20Watering%20my%20%28digital%29%20plant%20with%20Emacs%20timers)
-----
-Got an idea for an EmacsConf talk or session? We'd love to hear from you! Check out the [[Call for Participation|/2024/cfp]] for details.
-
<!-- End of emacsconf-publish-after-page -->
diff --git a/2024/info/water-before.md b/2024/info/water-before.md
index 74428663..09d422cf 100644
--- a/2024/info/water-before.md
+++ b/2024/info/water-before.md
@@ -1,8 +1,14 @@
<!-- Automatically generated by emacsconf-publish-before-page -->
-[[!toc ]]
-Format: 10-min talk; Q&A: IRC
-Status: Waiting for video from speaker
+The following image shows where the talk is in the schedule for Sat 2024-12-07. Solid lines show talks with Q&A via BigBlueButton. Dashed lines show talks with Q&A via IRC or Etherpad.<div class="schedule-in-context schedule-svg-container" data-slug="water">
+<svg width="700" height="150" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><title>Schedule for Saturday</title><rect width="700" height="150" x="0" y="0" fill="white"></rect><text font-size="10" fill="black" y="12" x="3">Saturday</text><a href="/2024/talks/sat-open" title="Saturday opening remarks" data-slug="sat-open"><title> 9:00- 9:10 Saturday opening remarks</title><rect x="0" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(11,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sat-open</text></g></a><a href="/2024/talks/papers" title="Writing academic papers in Org-Roam" data-slug="papers"><title> 9:10- 9:20 Writing academic papers in Org-Roam</title><rect x="13" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(24,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">papers</text></g></a><a href="/2024/talks/project" title="Managing writing project metadata with org-mode" data-slug="project"><title> 9:40-10:00 Managing writing project metadata with org-mode</title><rect x="54" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(79,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">project</text></g></a><a href="/2024/talks/org-update" title="The Future of Org" data-slug="org-update"><title>10:20-10:40 The Future of Org</title><rect x="109" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(134,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">org-update</text></g></a><a href="/2024/talks/color" title="Colour your Emacs with ease" data-slug="color"><title>11:00-11:10 Colour your Emacs with ease</title><rect x="164" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(175,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">color</text></g></a><a href="/2024/talks/theme" title="My journey of finding and creating the “perfect” Emacs theme" data-slug="theme"><title> 1:00- 1:10 My journey of finding and creating the “perfect” Emacs theme</title><rect x="329" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(340,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">theme</text></g></a><a href="/2024/talks/water" title="Watering my (digital) plant with Emacs timers" data-slug="water"><title> 1:30- 1:45 Watering my (digital) plant with Emacs timers</title><rect stroke-width="3" x="370" y="15" opacity="0.8" width="20" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(388,73)"><text font-weight="bold" fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">water</text></g></a><a href="/2024/talks/shell" title="Emacs as a shell" data-slug="shell"><title> 1:55- 2:35 Emacs as a shell</title><rect x="404" y="15" opacity="0.5" width="54" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(456,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">shell</text></g></a><a href="/2024/talks/casual" title="Re-imagining the Emacs user experience with Casual Suite" data-slug="casual"><title> 2:45- 3:05 Re-imagining the Emacs user experience with Casual Suite</title><rect x="473" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(498,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">casual</text></g></a><a href="/2024/talks/hyperdrive" title="New in hyperdrive.el: org-transclusion, easy installation, and more!" data-slug="hyperdrive"><title> 3:25- 3:45 New in hyperdrive.el: org-transclusion, easy installation, and more!</title><rect x="528" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(553,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">hyperdrive</text></g></a><a href="/2024/talks/writing" title="Emacs Writing Studio" data-slug="writing"><title> 4:05- 4:15 Emacs Writing Studio</title><rect x="583" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(594,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">writing</text></g></a><a href="/2024/talks/emacs30" title="Emacs 30 Highlights" data-slug="emacs30"><title> 4:25- 4:50 Emacs 30 Highlights</title><rect x="610" y="15" opacity="0.5" width="34" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(642,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">emacs30</text></g></a><a href="/2024/talks/sat-close" title="Saturday closing remarks" data-slug="sat-close"><title> 5:00- 5:10 Saturday closing remarks</title><rect x="658" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(669,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sat-close</text></g></a><a href="/2024/talks/gypsum" title="Gypsum: my clone of Emacs and ELisp written in Scheme" data-slug="gypsum"><title>10:00-10:20 Gypsum: my clone of Emacs and ELisp written in Scheme</title><rect x="82" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(107,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">gypsum</text></g></a><a href="/2024/talks/rust" title="An experimental Emacs core in Rust" data-slug="rust"><title>10:40-11:00 An experimental Emacs core in Rust</title><rect x="137" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(162,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">rust</text></g></a><a href="/2024/talks/p-search" title="p-search: a local search engine in Emacs" data-slug="p-search"><title>11:20-11:45 p-search: a local search engine in Emacs</title><rect x="192" y="75" opacity="0.5" width="34" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(224,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">p-search</text></g></a><a href="/2024/talks/julia" title="Exploring shared philosophies in Julia and Emacs" data-slug="julia"><title> 1:00- 1:10 Exploring shared philosophies in Julia and Emacs</title><rect x="329" y="75" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(340,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">julia</text></g></a><a href="/2024/talks/guile" title="Beguiling Emacs: Guile-Emacs relaunched!" data-slug="guile"><title> 1:25- 1:45 Beguiling Emacs: Guile-Emacs relaunched!</title><rect x="363" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="5,5,5" fill="skyblue"></rect><g transform="translate(388,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">guile</text></g></a><a href="/2024/talks/secrets" title="Committing secrets with git using sops-mode" data-slug="secrets"><title> 1:55- 2:05 Committing secrets with git using sops-mode</title><rect x="404" y="75" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(415,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">secrets</text></g></a><a href="/2024/talks/mcclim" title="Elisp and McCLIM" data-slug="mcclim"><title> 2:25- 3:25 Elisp and McCLIM</title><rect x="446" y="75" opacity="0.5" width="82" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(526,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">mcclim</text></g></a><a href="/2024/talks/repro" title="Reproducibly building Emacs: “Hey your checksum is the same as mine!”" data-slug="repro"><title> 3:45- 4:05 Reproducibly building Emacs: “Hey your checksum is the same as mine!”</title><rect x="555" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(580,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">repro</text></g></a><g transform="translate(0,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">9 AM</text></g><g transform="translate(82,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">10 AM</text></g><g transform="translate(164,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">11 AM</text></g><g transform="translate(247,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">12 PM</text></g><g transform="translate(329,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">1 PM</text></g><g transform="translate(411,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">2 PM</text></g><g transform="translate(494,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">3 PM</text></g><g transform="translate(576,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">4 PM</text></g><g transform="translate(658,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">5 PM</text></g></svg>
+</div>
+
+[[!toc ]]
+Format: 14-min talk; Q&A: IRC <https://chat.emacsconf.org/?join=emacsconf>
+Discuss on IRC: [#emacsconf](https://chat.emacsconf.org/?join=emacsconf)
+Status: Ready to stream
+<div>Times in different time zones:</div><div class="times" start="2024-12-07T18:30:00Z" end="2024-12-07T18:45:00Z"><div class="conf-time">Saturday, Dec 7 2024, ~1:30 PM - 1:45 PM EST (US/Eastern)</div><div class="others"><div>which is the same as:</div>Saturday, Dec 7 2024, ~12:30 PM - 12:45 PM CST (US/Central)<br />Saturday, Dec 7 2024, ~11:30 AM - 11:45 AM MST (US/Mountain)<br />Saturday, Dec 7 2024, ~10:30 AM - 10:45 AM PST (US/Pacific)<br />Saturday, Dec 7 2024, ~6:30 PM - 6:45 PM UTC <br />Saturday, Dec 7 2024, ~7:30 PM - 7:45 PM CET (Europe/Paris)<br />Saturday, Dec 7 2024, ~8:30 PM - 8:45 PM EET (Europe/Athens)<br />Sunday, Dec 8 2024, ~12:00 AM - 12:15 AM IST (Asia/Kolkata)<br />Sunday, Dec 8 2024, ~2:30 AM - 2:45 AM +08 (Asia/Singapore)<br />Sunday, Dec 8 2024, ~3:30 AM - 3:45 AM JST (Asia/Tokyo)</div></div><div><strong><a href="/2024/watch/gen/">Find out how to watch and participate</a></strong></div>
diff --git a/2024/info/water-nav.md b/2024/info/water-nav.md
index 688e5822..26735c54 100644
--- a/2024/info/water-nav.md
+++ b/2024/info/water-nav.md
@@ -1,7 +1,7 @@
<div class="talk-nav">
Back to the [[talks]]
-Previous by track: <a href="/2024/talks/color">Colour your Emacs with ease</a>
-Next by track: <a href="/2024/talks/shell">Emacs as a shell</a>
-Track: <span class="sched-track General">General</span>
+Previous by time: <a href="/2024/talks/guile">Beguiling Emacs: Guile-Emacs relaunched!</a>
+Next by time: <a href="/2024/talks/secrets">Committing secrets with git using sops-mode</a>
+Track: <span class="sched-track General">General</span> - <strong><a href="https://emacsconf.org/2024/watch/gen">Watch</a></strong>
</div>
diff --git a/2024/info/writing-after.md b/2024/info/writing-after.md
index e9e4236b..1bb28d1f 100644
--- a/2024/info/writing-after.md
+++ b/2024/info/writing-after.md
@@ -3,8 +3,5 @@
Questions or comments? Please e-mail [peter@prevos.net](mailto:peter@prevos.net?subject=Comment%20for%20EmacsConf%202023%20writing%3A%20Emacs%20Writing%20Studio)
-----
-Got an idea for an EmacsConf talk or session? We'd love to hear from you! Check out the [[Call for Participation|/2024/cfp]] for details.
-
<!-- End of emacsconf-publish-after-page -->
diff --git a/2024/info/writing-before.md b/2024/info/writing-before.md
index 4f4824ed..95da9161 100644
--- a/2024/info/writing-before.md
+++ b/2024/info/writing-before.md
@@ -1,8 +1,14 @@
<!-- Automatically generated by emacsconf-publish-before-page -->
-[[!toc ]]
-Format: 10-min talk; Q&A: ask questions via Etherpad/IRC; we'll e-mail the speaker and post answers on this wiki page after the conference
-Status: Waiting for video from speaker
+The following image shows where the talk is in the schedule for Sat 2024-12-07. Solid lines show talks with Q&A via BigBlueButton. Dashed lines show talks with Q&A via IRC or Etherpad.<div class="schedule-in-context schedule-svg-container" data-slug="writing">
+<svg width="700" height="150" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><title>Schedule for Saturday</title><rect width="700" height="150" x="0" y="0" fill="white"></rect><text font-size="10" fill="black" y="12" x="3">Saturday</text><a href="/2024/talks/sat-open" title="Saturday opening remarks" data-slug="sat-open"><title> 9:00- 9:10 Saturday opening remarks</title><rect x="0" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(11,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sat-open</text></g></a><a href="/2024/talks/papers" title="Writing academic papers in Org-Roam" data-slug="papers"><title> 9:10- 9:20 Writing academic papers in Org-Roam</title><rect x="13" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(24,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">papers</text></g></a><a href="/2024/talks/project" title="Managing writing project metadata with org-mode" data-slug="project"><title> 9:40-10:00 Managing writing project metadata with org-mode</title><rect x="54" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(79,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">project</text></g></a><a href="/2024/talks/org-update" title="The Future of Org" data-slug="org-update"><title>10:20-10:40 The Future of Org</title><rect x="109" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(134,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">org-update</text></g></a><a href="/2024/talks/color" title="Colour your Emacs with ease" data-slug="color"><title>11:00-11:10 Colour your Emacs with ease</title><rect x="164" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(175,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">color</text></g></a><a href="/2024/talks/theme" title="My journey of finding and creating the “perfect” Emacs theme" data-slug="theme"><title> 1:00- 1:10 My journey of finding and creating the “perfect” Emacs theme</title><rect x="329" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(340,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">theme</text></g></a><a href="/2024/talks/water" title="Watering my (digital) plant with Emacs timers" data-slug="water"><title> 1:30- 1:45 Watering my (digital) plant with Emacs timers</title><rect x="370" y="15" opacity="0.5" width="20" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(388,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">water</text></g></a><a href="/2024/talks/shell" title="Emacs as a shell" data-slug="shell"><title> 1:55- 2:35 Emacs as a shell</title><rect x="404" y="15" opacity="0.5" width="54" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(456,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">shell</text></g></a><a href="/2024/talks/casual" title="Re-imagining the Emacs user experience with Casual Suite" data-slug="casual"><title> 2:45- 3:05 Re-imagining the Emacs user experience with Casual Suite</title><rect x="473" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(498,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">casual</text></g></a><a href="/2024/talks/hyperdrive" title="New in hyperdrive.el: org-transclusion, easy installation, and more!" data-slug="hyperdrive"><title> 3:25- 3:45 New in hyperdrive.el: org-transclusion, easy installation, and more!</title><rect x="528" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(553,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">hyperdrive</text></g></a><a href="/2024/talks/writing" title="Emacs Writing Studio" data-slug="writing"><title> 4:05- 4:15 Emacs Writing Studio</title><rect stroke-width="3" x="583" y="15" opacity="0.8" width="13" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(594,73)"><text font-weight="bold" fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">writing</text></g></a><a href="/2024/talks/emacs30" title="Emacs 30 Highlights" data-slug="emacs30"><title> 4:25- 4:50 Emacs 30 Highlights</title><rect x="610" y="15" opacity="0.5" width="34" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(642,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">emacs30</text></g></a><a href="/2024/talks/sat-close" title="Saturday closing remarks" data-slug="sat-close"><title> 5:00- 5:10 Saturday closing remarks</title><rect x="658" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(669,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sat-close</text></g></a><a href="/2024/talks/gypsum" title="Gypsum: my clone of Emacs and ELisp written in Scheme" data-slug="gypsum"><title>10:00-10:20 Gypsum: my clone of Emacs and ELisp written in Scheme</title><rect x="82" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(107,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">gypsum</text></g></a><a href="/2024/talks/rust" title="An experimental Emacs core in Rust" data-slug="rust"><title>10:40-11:00 An experimental Emacs core in Rust</title><rect x="137" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(162,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">rust</text></g></a><a href="/2024/talks/p-search" title="p-search: a local search engine in Emacs" data-slug="p-search"><title>11:20-11:45 p-search: a local search engine in Emacs</title><rect x="192" y="75" opacity="0.5" width="34" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(224,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">p-search</text></g></a><a href="/2024/talks/julia" title="Exploring shared philosophies in Julia and Emacs" data-slug="julia"><title> 1:00- 1:10 Exploring shared philosophies in Julia and Emacs</title><rect x="329" y="75" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(340,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">julia</text></g></a><a href="/2024/talks/guile" title="Beguiling Emacs: Guile-Emacs relaunched!" data-slug="guile"><title> 1:25- 1:45 Beguiling Emacs: Guile-Emacs relaunched!</title><rect x="363" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="5,5,5" fill="skyblue"></rect><g transform="translate(388,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">guile</text></g></a><a href="/2024/talks/secrets" title="Committing secrets with git using sops-mode" data-slug="secrets"><title> 1:55- 2:05 Committing secrets with git using sops-mode</title><rect x="404" y="75" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(415,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">secrets</text></g></a><a href="/2024/talks/mcclim" title="Elisp and McCLIM" data-slug="mcclim"><title> 2:25- 3:25 Elisp and McCLIM</title><rect x="446" y="75" opacity="0.5" width="82" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(526,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">mcclim</text></g></a><a href="/2024/talks/repro" title="Reproducibly building Emacs: “Hey your checksum is the same as mine!”" data-slug="repro"><title> 3:45- 4:05 Reproducibly building Emacs: “Hey your checksum is the same as mine!”</title><rect x="555" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(580,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">repro</text></g></a><g transform="translate(0,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">9 AM</text></g><g transform="translate(82,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">10 AM</text></g><g transform="translate(164,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">11 AM</text></g><g transform="translate(247,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">12 PM</text></g><g transform="translate(329,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">1 PM</text></g><g transform="translate(411,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">2 PM</text></g><g transform="translate(494,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">3 PM</text></g><g transform="translate(576,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">4 PM</text></g><g transform="translate(658,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">5 PM</text></g></svg>
+</div>
+
+[[!toc ]]
+Format: 14-min talk; Q&A: ask questions via Etherpad/IRC; we'll e-mail the speaker and post answers on this wiki page after the conference
+Discuss on IRC: [#emacsconf](https://chat.emacsconf.org/?join=emacsconf)
+Status: Ready to stream
+<div>Times in different time zones:</div><div class="times" start="2024-12-07T21:05:00Z" end="2024-12-07T21:15:00Z"><div class="conf-time">Saturday, Dec 7 2024, ~4:05 PM - 4:15 PM EST (US/Eastern)</div><div class="others"><div>which is the same as:</div>Saturday, Dec 7 2024, ~3:05 PM - 3:15 PM CST (US/Central)<br />Saturday, Dec 7 2024, ~2:05 PM - 2:15 PM MST (US/Mountain)<br />Saturday, Dec 7 2024, ~1:05 PM - 1:15 PM PST (US/Pacific)<br />Saturday, Dec 7 2024, ~9:05 PM - 9:15 PM UTC <br />Saturday, Dec 7 2024, ~10:05 PM - 10:15 PM CET (Europe/Paris)<br />Saturday, Dec 7 2024, ~11:05 PM - 11:15 PM EET (Europe/Athens)<br />Sunday, Dec 8 2024, ~2:35 AM - 2:45 AM IST (Asia/Kolkata)<br />Sunday, Dec 8 2024, ~5:05 AM - 5:15 AM +08 (Asia/Singapore)<br />Sunday, Dec 8 2024, ~6:05 AM - 6:15 AM JST (Asia/Tokyo)</div></div><div><strong><a href="/2024/watch/gen/">Find out how to watch and participate</a></strong></div>
diff --git a/2024/info/writing-nav.md b/2024/info/writing-nav.md
index fd009ccb..e18ec45e 100644
--- a/2024/info/writing-nav.md
+++ b/2024/info/writing-nav.md
@@ -1,7 +1,7 @@
<div class="talk-nav">
Back to the [[talks]]
-Previous by track: <a href="/2024/talks/flp">The Free Life Planner: Empowering lives with Emacs-based AI</a>
-Next by track: <a href="/2024/talks/pgmacs">PGmacs: browsing and editing PostgreSQL databases from Emacs</a>
-Track: <span class="sched-track General">General</span>
+Previous by time: <a href="/2024/talks/repro">Reproducibly building Emacs: “Hey your checksum is the same as mine!”</a>
+Next by time: <a href="/2024/talks/emacs30">Emacs 30 Highlights</a>
+Track: <span class="sched-track General">General</span> - <strong><a href="https://emacsconf.org/2024/watch/gen">Watch</a></strong>
</div>
diff --git a/2024/organizers-notebook.md b/2024/organizers-notebook.md
index 269fee82..e501f8e6 100644
--- a/2024/organizers-notebook.md
+++ b/2024/organizers-notebook.md
@@ -15,7 +15,21 @@ You might also like the [general organizers' notebook](/organizers-notebook) and
- [Phases](#phases)
- [Draft CFP](#cfp)
- [Draft schedule](#draft-schedule)
-- [Support code](#org83601b3)
+- [Check EmacsConf infrastructure](#org5b05724):project:
+ - [bbb.emacsverse.org replacement](#orgf90c350)
+ - [IRC web client](#org47f1067)
+ - [IRC announcements](#org8966827)
+ - [Media](#org75bdf93)
+ - [Publishing resources to the wiki](#orgb420d40)
+ - [Publishing videos to the media server](#org4e0acb2)
+ - [Playing videos, switching to windows](#org40b9e70)
+ - [Etherpad](#org1040525)
+ - [Do a dry run](#org215b633)
+- [Processes and notes](#org73e9be9)
+ - [ERC](#orgedf8032)
+- [Decisions](#decisions)
+ - [BigBlueButton replacement](#bbb)
+- [Support code](#support-code)
<a id="timeline"></a>
@@ -178,6 +192,13 @@ interests you!
<td class="org-left">Reviewed by speakers</td>
<td class="org-left">More details/context</td>
</tr>
+
+<tr>
+<td class="org-left">Pad</td>
+<td class="org-left">v1.9.7</td>
+<td class="org-left">v2.x</td>
+<td class="org-left">&#xa0;</td>
+</tr>
</tbody>
</table>
@@ -210,31 +231,285 @@ emacsconf-discuss, reddit.com/r/emacs, Emacs News, emacs-tangents, Mastodon, X
<a id="draft-schedule"></a>
-## Draft schedule
+## DONE Draft schedule
+<svg width="800" height="300" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><title>Graphical view of the schedule</title><g transform="translate(0,0)"><title>Schedule for Saturday</title><rect width="800" height="150" x="0" y="0" fill="white"></rect><text font-size="10" fill="black" y="12" x="3">Saturday</text><a href="https://emacsconf.org/2024/talks/sat-open" title="Saturday opening remarks" data-slug="sat-open"><title> 9:00- 9:10 Saturday opening remarks</title><rect x="0" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="5,5,5" fill="gray"></rect><g transform="translate(13,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sat-open</text></g></a><a href="https://emacsconf.org/2024/talks/papers" title="Writing academic papers in Org-Roam" data-slug="papers"><title> 9:10- 9:20 Writing academic papers in Org-Roam</title><rect x="15" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="" fill="lightblue"></rect><g transform="translate(28,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">papers</text></g></a><a href="https://emacsconf.org/2024/talks/project" title="Managing writing project metadata with org-mode" data-slug="project"><title> 9:40-10:00 Managing writing project metadata with org-mode</title><rect x="62" y="15" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="gray"></rect><g transform="translate(91,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">project</text></g></a><a href="https://emacsconf.org/2024/talks/org-update" title="The Future of Org" data-slug="org-update"><title>10:20-10:40 The Future of Org</title><rect x="125" y="15" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="lightblue"></rect><g transform="translate(154,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">org-update</text></g></a><a href="https://emacsconf.org/2024/talks/color" title="Colour your Emacs with ease" data-slug="color"><title>11:00-11:10 Colour your Emacs with ease</title><rect x="188" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="" fill="lightblue"></rect><g transform="translate(201,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">color</text></g></a><a href="https://emacsconf.org/2024/talks/theme" title="My journey of finding and creating the “perfect” Emacs theme" data-slug="theme"><title> 1:00- 1:10 My journey of finding and creating the “perfect” Emacs theme</title><rect x="376" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(389,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">theme</text></g></a><a href="https://emacsconf.org/2024/talks/water" title="Watering my (digital) plant with Emacs timers" data-slug="water"><title> 1:30- 1:45 Watering my (digital) plant with Emacs timers</title><rect x="423" y="15" opacity="0.8" width="23" height="59" stroke="black" stroke-dasharray="5,5,5" fill="gray"></rect><g transform="translate(444,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">water</text></g></a><a href="https://emacsconf.org/2024/talks/shell" title="Emacs as a shell" data-slug="shell"><title> 1:55- 2:35 Emacs as a shell</title><rect x="462" y="15" opacity="0.8" width="62" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(522,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">shell</text></g></a><a href="https://emacsconf.org/2024/talks/casual" title="Re-imagining the Emacs user experience with Casual Suite" data-slug="casual"><title> 2:45- 3:05 Re-imagining the Emacs user experience with Casual Suite</title><rect x="541" y="15" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(570,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">casual</text></g></a><a href="https://emacsconf.org/2024/talks/hyperdrive" title="New in hyperdrive.el: org-transclusion, easy installation, and more!" data-slug="hyperdrive"><title> 3:25- 3:45 New in hyperdrive.el: org-transclusion, easy installation, and more!</title><rect x="603" y="15" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(632,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">hyperdrive</text></g></a><a href="https://emacsconf.org/2024/talks/writing" title="Emacs Writing Studio" data-slug="writing"><title> 4:05- 4:15 Emacs Writing Studio</title><rect x="666" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(679,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">writing</text></g></a><a href="https://emacsconf.org/2024/talks/emacs30" title="Emacs 30 Highlights" data-slug="emacs30"><title> 4:25- 4:50 Emacs 30 Highlights</title><rect x="698" y="15" opacity="0.8" width="39" height="59" stroke="black" stroke-dasharray="" fill="gray"></rect><g transform="translate(735,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">emacs30</text></g></a><a href="https://emacsconf.org/2024/talks/sat-close" title="Saturday closing remarks" data-slug="sat-close"><title> 5:00- 5:10 Saturday closing remarks</title><rect x="752" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="5,5,5" fill="gray"></rect><g transform="translate(765,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sat-close</text></g></a><a href="https://emacsconf.org/2024/talks/gypsum" title="Gypsum: my clone of Emacs and ELisp written in Scheme" data-slug="gypsum"><title>10:00-10:20 Gypsum: my clone of Emacs and ELisp written in Scheme</title><rect x="94" y="75" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="lightblue"></rect><g transform="translate(123,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">gypsum</text></g></a><a href="https://emacsconf.org/2024/talks/rust" title="An experimental Emacs core in Rust" data-slug="rust"><title>10:40-11:00 An experimental Emacs core in Rust</title><rect x="156" y="75" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="gray"></rect><g transform="translate(185,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">rust</text></g></a><a href="https://emacsconf.org/2024/talks/p-search" title="p-search: a local search engine in Emacs" data-slug="p-search"><title>11:20-11:45 p-search: a local search engine in Emacs</title><rect x="219" y="75" opacity="0.8" width="39" height="59" stroke="black" stroke-dasharray="" fill="gray"></rect><g transform="translate(256,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">p-search</text></g></a><a href="https://emacsconf.org/2024/talks/julia" title="Exploring shared philosophies in Julia and Emacs" data-slug="julia"><title> 1:00- 1:10 Exploring shared philosophies in Julia and Emacs</title><rect x="376" y="75" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(389,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">julia</text></g></a><a href="https://emacsconf.org/2024/talks/guile" title="Beguiling Emacs: Guile-Emacs relaunched!" data-slug="guile"><title> 1:25- 1:45 Beguiling Emacs: Guile-Emacs relaunched!</title><rect x="415" y="75" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(444,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">guile</text></g></a><a href="https://emacsconf.org/2024/talks/secrets" title="Committing secrets with git using sops-mode" data-slug="secrets"><title> 1:55- 2:05 Committing secrets with git using sops-mode</title><rect x="462" y="75" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(475,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">secrets</text></g></a><a href="https://emacsconf.org/2024/talks/mcclim" title="Elisp and McCLIM" data-slug="mcclim"><title> 2:25- 3:25 Elisp and McCLIM</title><rect x="509" y="75" opacity="0.8" width="94" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(601,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">mcclim</text></g></a><a href="https://emacsconf.org/2024/talks/repro" title="Reproducibly building Emacs: “Hey your checksum is the same as mine!”" data-slug="repro"><title> 3:45- 4:05 Reproducibly building Emacs: “Hey your checksum is the same as mine!”</title><rect x="635" y="75" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="gray"></rect><g transform="translate(664,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">repro</text></g></a><g transform="translate(0,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">9 AM</text></g><g transform="translate(94,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">10 AM</text></g><g transform="translate(188,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">11 AM</text></g><g transform="translate(282,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">12 PM</text></g><g transform="translate(376,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">1 PM</text></g><g transform="translate(470,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">2 PM</text></g><g transform="translate(564,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">3 PM</text></g><g transform="translate(658,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">4 PM</text></g><g transform="translate(752,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">5 PM</text></g></g><g transform="translate(0,150)"><title>Schedule for Sunday</title><rect width="800" height="150" x="0" y="0" fill="white"></rect><text font-size="10" fill="black" y="12" x="3">Sunday</text><a href="https://emacsconf.org/2024/talks/sun-open" title="Sunday opening remarks" data-slug="sun-open"><title> 9:00- 9:10 Sunday opening remarks</title><rect x="0" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="5,5,5" fill="gray"></rect><g transform="translate(13,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sun-open</text></g></a><a href="https://emacsconf.org/2024/talks/links" title="Unlocking linked data: replacing specialized apps with an Org-based semantic wiki" data-slug="links"><title> 9:10- 9:20 Unlocking linked data: replacing specialized apps with an Org-based semantic wiki</title><rect x="15" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="5,5,5" fill="lightblue"></rect><g transform="translate(28,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">links</text></g></a><a href="https://emacsconf.org/2024/talks/regex" title="Emacs regex compilation and future directions for expressive pattern matching" data-slug="regex"><title> 9:30- 9:50 Emacs regex compilation and future directions for expressive pattern matching</title><rect x="47" y="15" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="5,5,5" fill="lightblue"></rect><g transform="translate(76,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">regex</text></g></a><a href="https://emacsconf.org/2024/talks/learning" title="Survival of the skillest: Thriving in the learning jungle" data-slug="learning"><title>10:00-10:20 Survival of the skillest: Thriving in the learning jungle</title><rect x="94" y="15" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="5,5,5" fill="lightblue"></rect><g transform="translate(123,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">learning</text></g></a><a href="https://emacsconf.org/2024/talks/language" title="Immersive language learning with Emacs" data-slug="language"><title>10:30-10:40 Immersive language learning with Emacs</title><rect x="141" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="5,5,5" fill="lightblue"></rect><g transform="translate(154,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">language</text></g></a><a href="https://emacsconf.org/2024/talks/org-teach" title="org-teach: a minor mode for writing course materials in Emacs" data-slug="org-teach"><title>10:50-11:10 org-teach: a minor mode for writing course materials in Emacs</title><rect x="172" y="15" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="gray"></rect><g transform="translate(201,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">org-teach</text></g></a><a href="https://emacsconf.org/2024/talks/hyperbole" title="Fun things with GNU Hyperbole" data-slug="hyperbole"><title>11:25-11:40 Fun things with GNU Hyperbole</title><rect x="227" y="15" opacity="0.8" width="23" height="59" stroke="black" stroke-dasharray="" fill="lightblue"></rect><g transform="translate(248,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">hyperbole</text></g></a><a href="https://emacsconf.org/2024/talks/hywiki" title="HyWiki: Fast, hyperlinked note-taking with no markup required" data-slug="hywiki"><title> 1:00- 1:20 HyWiki: Fast, hyperlinked note-taking with no markup required</title><rect x="376" y="15" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(405,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">hywiki</text></g></a><a href="https://emacsconf.org/2024/talks/pgmacs" title="PGmacs: browsing and editing PostgreSQL databases from Emacs" data-slug="pgmacs"><title> 1:35- 1:50 PGmacs: browsing and editing PostgreSQL databases from Emacs</title><rect x="431" y="15" opacity="0.8" width="23" height="59" stroke="black" stroke-dasharray="" fill="lightblue"></rect><g transform="translate(452,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">pgmacs</text></g></a><a href="https://emacsconf.org/2024/talks/blee" title="About Blee: enveloping our own autonomy directed digital ecosystem with Emacs" data-slug="blee"><title> 2:05- 2:45 About Blee: enveloping our own autonomy directed digital ecosystem with Emacs</title><rect x="478" y="15" opacity="0.8" width="62" height="59" stroke="black" stroke-dasharray="" fill="gray"></rect><g transform="translate(538,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">blee</text></g></a><a href="https://emacsconf.org/2024/talks/literate" title="Literate programming for the 21st Century" data-slug="literate"><title> 2:55- 3:15 Literate programming for the 21st Century</title><rect x="556" y="15" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(585,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">literate</text></g></a><a href="https://emacsconf.org/2024/talks/students" title="An example of a cohesive student workflow in Emacs" data-slug="students"><title> 3:30- 3:40 An example of a cohesive student workflow in Emacs</title><rect x="611" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(624,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">students</text></g></a><a href="https://emacsconf.org/2024/talks/sharing" title="So you want to be an Emacs-fluencer?" data-slug="sharing"><title> 3:50- 4:10 So you want to be an Emacs-fluencer?</title><rect x="643" y="15" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(672,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sharing</text></g></a><a href="https://emacsconf.org/2024/talks/transducers" title="Transducers: finally, ergonomic data processing for Emacs!" data-slug="transducers"><title> 4:20- 4:50 Transducers: finally, ergonomic data processing for Emacs!</title><rect x="690" y="15" opacity="0.8" width="47" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(735,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">transducers</text></g></a><a href="https://emacsconf.org/2024/talks/sun-close" title="Sunday closing remarks" data-slug="sun-close"><title> 5:00- 5:10 Sunday closing remarks</title><rect x="752" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="5,5,5" fill="gray"></rect><g transform="translate(765,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sun-close</text></g></a><g transform="translate(0,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">9 AM</text></g><g transform="translate(94,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">10 AM</text></g><g transform="translate(188,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">11 AM</text></g><g transform="translate(282,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">12 PM</text></g><g transform="translate(376,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">1 PM</text></g><g transform="translate(470,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">2 PM</text></g><g transform="translate(564,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">3 PM</text></g><g transform="translate(658,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">4 PM</text></g><g transform="translate(752,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">5 PM</text></g></g></svg>
+Legend:
-### Option: 2 tracks
+- light blue: constraint is <= a time
+- peach: constraint is >= a time
+- solid line: Q&A will be through BigBlueButton web conference
+- dashed line: Q&A will be IRC/Etherpad during the event or e-mail after the event
-<svg width="800" height="300" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><title>Graphical view of the schedule</title><g transform="translate(0,0)"><title>Schedule for Saturday</title><rect width="800" height="150" x="0" y="0" fill="white"></rect><text font-size="10" fill="black" y="12" x="3">Saturday</text><a href="https://emacsconf.org/2024/talks/sat-open" title="Saturday opening remarks" data-slug="sat-open"><title> 9:00- 9:10 Saturday opening remarks</title><rect x="0" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="5,5,5" fill="gray"></rect><g transform="translate(13,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sat-open</text></g></a><a href="https://emacsconf.org/2024/talks/papers" title="Writing academic papers in Org-Roam" data-slug="papers"><title> 9:10- 9:20 Writing academic papers in Org-Roam</title><rect x="15" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="" fill="lightblue"></rect><g transform="translate(28,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">papers</text></g></a><a href="https://emacsconf.org/2024/talks/color" title="Colour your Emacs with ease" data-slug="color"><title> 9:50-10:00 Colour your Emacs with ease</title><rect x="78" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="" fill="lightblue"></rect><g transform="translate(91,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">color</text></g></a><a href="https://emacsconf.org/2024/talks/flp" title="The Free Life Planner: Empowering lives with Emacs-based AI" data-slug="flp"><title>10:30-10:50 The Free Life Planner: Empowering lives with Emacs-based AI</title><rect x="141" y="15" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="5,5,5" fill="gray"></rect><g transform="translate(170,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">flp</text></g></a><a href="https://emacsconf.org/2024/talks/hyperdrive" title="New in hyperdrive.el: org-transclusion, easy installation, and more!" data-slug="hyperdrive"><title>11:10-11:30 New in hyperdrive.el: org-transclusion, easy installation, and more!</title><rect x="203" y="15" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(232,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">hyperdrive</text></g></a><a href="https://emacsconf.org/2024/talks/emacs30" title="Emacs 30 Highlights" data-slug="emacs30"><title> 1:00- 1:20 Emacs 30 Highlights</title><rect x="376" y="15" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="gray"></rect><g transform="translate(405,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">emacs30</text></g></a><a href="https://emacsconf.org/2024/talks/theme" title="My journey of finding and creating the “perfect” Emacs theme" data-slug="theme"><title> 1:50- 2:00 My journey of finding and creating the “perfect” Emacs theme</title><rect x="454" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(467,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">theme</text></g></a><a href="https://emacsconf.org/2024/talks/water" title="Watering my (digital) plant with Emacs timers" data-slug="water"><title> 2:30- 2:40 Watering my (digital) plant with Emacs timers</title><rect x="517" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="5,5,5" fill="gray"></rect><g transform="translate(530,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">water</text></g></a><a href="https://emacsconf.org/2024/talks/shell" title="Emacs as a shell" data-slug="shell"><title> 3:00- 3:40 Emacs as a shell</title><rect x="564" y="15" opacity="0.8" width="62" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(624,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">shell</text></g></a><a href="https://emacsconf.org/2024/talks/students" title="An example of a cohesive student workflow in Emacs" data-slug="students"><title> 4:00- 4:10 An example of a cohesive student workflow in Emacs</title><rect x="658" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(671,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">students</text></g></a><a href="https://emacsconf.org/2024/talks/writing" title="Emacs Writing Studio" data-slug="writing"><title> 4:30- 4:40 Emacs Writing Studio</title><rect x="705" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(718,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">writing</text></g></a><a href="https://emacsconf.org/2024/talks/sat-close" title="Saturday closing remarks" data-slug="sat-close"><title> 5:00- 5:10 Saturday closing remarks</title><rect x="752" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="5,5,5" fill="gray"></rect><g transform="translate(765,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sat-close</text></g></a><a href="https://emacsconf.org/2024/talks/gypsum" title="Gypsum: my clone of Emacs and ELisp written in Scheme" data-slug="gypsum"><title>10:00-10:20 Gypsum: my clone of Emacs and ELisp written in Scheme</title><rect x="94" y="75" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="lightblue"></rect><g transform="translate(123,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">gypsum</text></g></a><a href="https://emacsconf.org/2024/talks/rust" title="An experimental Emacs core in Rust" data-slug="rust"><title>10:50-11:10 An experimental Emacs core in Rust</title><rect x="172" y="75" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="gray"></rect><g transform="translate(201,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">rust</text></g></a><a href="https://emacsconf.org/2024/talks/julia" title="Exploring shared philosophies in Julia and Emacs" data-slug="julia"><title> 1:00- 1:05 Exploring shared philosophies in Julia and Emacs</title><rect x="376" y="75" opacity="0.8" width="7" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(381,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">julia</text></g></a><a href="https://emacsconf.org/2024/talks/guile" title="Beguiling Emacs: Guile-Emacs relaunched!" data-slug="guile"><title> 1:35- 1:55 Beguiling Emacs: Guile-Emacs relaunched!</title><rect x="431" y="75" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(460,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">guile</text></g></a><a href="https://emacsconf.org/2024/talks/mcclim" title="Elisp and McCLIM" data-slug="mcclim"><title> 2:15- 3:15 Elisp and McCLIM</title><rect x="494" y="75" opacity="0.8" width="94" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(586,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">mcclim</text></g></a><a href="https://emacsconf.org/2024/talks/regex" title="Emacs regex compilation and future directions for expressive pattern matching" data-slug="regex"><title> 3:45- 4:05 Emacs regex compilation and future directions for expressive pattern matching</title><rect x="635" y="75" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="5,5,5" fill="lightblue"></rect><g transform="translate(664,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">regex</text></g></a><a href="https://emacsconf.org/2024/talks/repro" title="Reproducibly building Emacs: “Hey your checksum is the same as mine!”" data-slug="repro"><title> 4:25- 4:45 Reproducibly building Emacs: “Hey your checksum is the same as mine!”</title><rect x="698" y="75" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="gray"></rect><g transform="translate(727,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">repro</text></g></a><g transform="translate(0,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">9 AM</text></g><g transform="translate(94,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">10 AM</text></g><g transform="translate(188,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">11 AM</text></g><g transform="translate(282,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">12 PM</text></g><g transform="translate(376,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">1 PM</text></g><g transform="translate(470,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">2 PM</text></g><g transform="translate(564,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">3 PM</text></g><g transform="translate(658,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">4 PM</text></g><g transform="translate(752,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">5 PM</text></g></g><g transform="translate(0,150)"><title>Schedule for Sunday</title><rect width="800" height="150" x="0" y="0" fill="white"></rect><text font-size="10" fill="black" y="12" x="3">Sunday</text><a href="https://emacsconf.org/2024/talks/sun-open" title="Sunday opening remarks" data-slug="sun-open"><title> 9:00- 9:10 Sunday opening remarks</title><rect x="0" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="5,5,5" fill="gray"></rect><g transform="translate(13,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sun-open</text></g></a><a href="https://emacsconf.org/2024/talks/links" title="Unlocking linked data: replacing specialized apps with an Org-based semantic wiki" data-slug="links"><title> 9:10- 9:20 Unlocking linked data: replacing specialized apps with an Org-based semantic wiki</title><rect x="15" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="5,5,5" fill="lightblue"></rect><g transform="translate(28,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">links</text></g></a><a href="https://emacsconf.org/2024/talks/org-teach" title="org-teach: a minor mode for writing course materials in Emacs" data-slug="org-teach"><title> 9:40-10:00 org-teach: a minor mode for writing course materials in Emacs</title><rect x="62" y="15" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="gray"></rect><g transform="translate(91,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">org-teach</text></g></a><a href="https://emacsconf.org/2024/talks/hyperbole" title="Fun things with GNU Hyperbole" data-slug="hyperbole"><title>10:20-10:30 Fun things with GNU Hyperbole</title><rect x="125" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="" fill="lightblue"></rect><g transform="translate(138,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">hyperbole</text></g></a><a href="https://emacsconf.org/2024/talks/hywiki" title="HyWiki: Fast, hyperlinked note-taking with no markup required" data-slug="hywiki"><title>10:50-11:10 HyWiki: Fast, hyperlinked note-taking with no markup required</title><rect x="172" y="15" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(201,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">hywiki</text></g></a><a href="https://emacsconf.org/2024/talks/language" title="Immersive language learning with Emacs" data-slug="language"><title>11:30-11:40 Immersive language learning with Emacs</title><rect x="235" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="5,5,5" fill="lightblue"></rect><g transform="translate(248,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">language</text></g></a><a href="https://emacsconf.org/2024/talks/literate" title="Literate programming for the 21st Century" data-slug="literate"><title> 1:00- 1:20 Literate programming for the 21st Century</title><rect x="376" y="15" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(405,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">literate</text></g></a><a href="https://emacsconf.org/2024/talks/casual" title="Re-imagining the Emacs user experience with Casual Suite" data-slug="casual"><title> 1:50- 2:10 Re-imagining the Emacs user experience with Casual Suite</title><rect x="454" y="15" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(483,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">casual</text></g></a><a href="https://emacsconf.org/2024/talks/learning" title="Survival of the skillest: Thriving in the learning jungle" data-slug="learning"><title> 2:40- 3:00 Survival of the skillest: Thriving in the learning jungle</title><rect x="533" y="15" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(562,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">learning</text></g></a><a href="https://emacsconf.org/2024/talks/project" title="Managing writing project metadata with org-mode" data-slug="project"><title> 3:20- 3:40 Managing writing project metadata with org-mode</title><rect x="596" y="15" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="gray"></rect><g transform="translate(625,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">project</text></g></a><a href="https://emacsconf.org/2024/talks/sharing" title="So you want to be an Emacs-fluencer?" data-slug="sharing"><title> 4:10- 4:30 So you want to be an Emacs-fluencer?</title><rect x="674" y="15" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(703,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sharing</text></g></a><a href="https://emacsconf.org/2024/talks/sun-close" title="Sunday closing remarks" data-slug="sun-close"><title> 4:50- 5:00 Sunday closing remarks</title><rect x="737" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="5,5,5" fill="gray"></rect><g transform="translate(750,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sun-close</text></g></a><a href="https://emacsconf.org/2024/talks/pgmacs" title="PGmacs: browsing and editing PostgreSQL databases from Emacs" data-slug="pgmacs"><title>10:00-10:10 PGmacs: browsing and editing PostgreSQL databases from Emacs</title><rect x="94" y="75" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="" fill="lightblue"></rect><g transform="translate(107,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">pgmacs</text></g></a><a href="https://emacsconf.org/2024/talks/graph" title="Graph mode: a major mode to create, edit and display discrete element graphs" data-slug="graph"><title>10:40-11:00 Graph mode: a major mode to create, edit and display discrete element graphs</title><rect x="156" y="75" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="gray"></rect><g transform="translate(185,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">graph</text></g></a><a href="https://emacsconf.org/2024/talks/blee" title="About Blee: towards an integrated Emacs environment for enveloping our own autonomy directed digital ecosystem" data-slug="blee"><title> 1:00- 1:20 About Blee: towards an integrated Emacs environment for enveloping our own autonomy directed digital ecosystem</title><rect x="376" y="75" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="gray"></rect><g transform="translate(405,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">blee</text></g></a><a href="https://emacsconf.org/2024/talks/p-search" title="p-search: a local search engine in Emacs" data-slug="p-search"><title> 1:50- 2:10 p-search: a local search engine in Emacs</title><rect x="454" y="75" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="gray"></rect><g transform="translate(483,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">p-search</text></g></a><a href="https://emacsconf.org/2024/talks/secrets" title="Committing secrets with git using sops-mode" data-slug="secrets"><title> 2:40- 2:50 Committing secrets with git using sops-mode</title><rect x="533" y="75" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(546,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">secrets</text></g></a><a href="https://emacsconf.org/2024/talks/transducers" title="Transducers: finally, ergonomic data processing for Emacs!" data-slug="transducers"><title> 4:00- 4:30 Transducers: finally, ergonomic data processing for Emacs!</title><rect x="658" y="75" opacity="0.8" width="47" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(703,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">transducers</text></g></a><g transform="translate(0,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">9 AM</text></g><g transform="translate(94,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">10 AM</text></g><g transform="translate(188,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">11 AM</text></g><g transform="translate(282,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">12 PM</text></g><g transform="translate(376,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">1 PM</text></g><g transform="translate(470,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">2 PM</text></g><g transform="translate(564,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">3 PM</text></g><g transform="translate(658,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">4 PM</text></g><g transform="translate(752,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">5 PM</text></g></g></svg>
+Notes:
-Coloring by availability:
+- Updates:
+ - <span class="timestamp-wrapper"><span class="timestamp">[2024-10-27 Sun] </span></span> Removed [graph](https://emacsconf.org/2024/talks/graph "Graph mode: a major mode to create, edit and display discrete element graphs"), moved [p-search](https://emacsconf.org/2024/talks/p-search "p-search: a local search engine in Emacs") earlier; also [learning](https://emacsconf.org/2024/talks/learning "Survival of the skillest: Thriving in the learning jungle") needs to be in the morning, so I moved [pgmacs](https://emacsconf.org/2024/talks/pgmacs "PGmacs: browsing and editing PostgreSQL databases from Emacs") and [org-teach](https://emacsconf.org/2024/talks/org-teach "org-teach: a minor mode for writing course materials in Emacs") around.
+ - <span class="timestamp-wrapper"><span class="timestamp">[2024-10-22 Tue] </span></span> Swapped [org-teach](https://emacsconf.org/2024/talks/org-teach "org-teach: a minor mode for writing course materials in Emacs") and [blee](https://emacsconf.org/2024/talks/blee "About Blee: enveloping our own autonomy directed digital ecosystem with Emacs")
+ - <span class="timestamp-wrapper"><span class="timestamp">[2024-10-21 Mon] </span></span> Extended [blee](https://emacsconf.org/2024/talks/blee "About Blee: enveloping our own autonomy directed digital ecosystem with Emacs")
+ - <span class="timestamp-wrapper"><span class="timestamp">[2024-10-17 Thu] </span></span> Added [org-update](https://emacsconf.org/2024/talks/org-update "The Future of Org") to Saturday morning, moving [org-teach](https://emacsconf.org/2024/talks/org-teach "org-teach: a minor mode for writing course materials in Emacs") to Sunday afternoon
+ - <span class="timestamp-wrapper"><span class="timestamp">[2024-10-15 Tue] </span></span> Swapped [students](https://emacsconf.org/2024/talks/students "An example of a cohesive student workflow in Emacs") and [literate](https://emacsconf.org/2024/talks/literate "Literate programming for the 21st Century") for availability reasons
+ - <span class="timestamp-wrapper"><span class="timestamp">[2024-10-13 Sun] </span></span> Moved [hyperdrive](https://emacsconf.org/2024/talks/hyperdrive "New in hyperdrive.el: org-transclusion, easy installation, and more!") to the afternoon (swapping with [flp](https://emacsconf.org/2024/talks/flp "The Free Life Planner: Empowering lives with Emacs-based AI")) because of changed availability
+ - <span class="timestamp-wrapper"><span class="timestamp">[2024-10-12 Sat] </span></span> I fixed the time constraint for [students](https://emacsconf.org/2024/talks/students "An example of a cohesive student workflow in Emacs") (needs to be in the afternoon), so I moved [hyperbole](https://emacsconf.org/2024/talks/hyperbole "Fun things with GNU Hyperbole") to the morning.
+- General approach:
+ - I&rsquo;ve mostly tried to alternate IRC/pad Q&A with live Q&A.
+ - 1.5 tracks keeps things faster-paced than the 2-track option.
+- Sat:
+ - Gen track:
+ - [papers](https://emacsconf.org/2024/talks/papers "Writing academic papers in Org-Roam"), [project](https://emacsconf.org/2024/talks/project "Managing writing project metadata with org-mode"), [org-teach](https://emacsconf.org/2024/talks/org-teach "org-teach: a minor mode for writing course materials in Emacs"), [flp](https://emacsconf.org/2024/talks/flp "The Free Life Planner: Empowering lives with Emacs-based AI"), [color](https://emacsconf.org/2024/talks/color "Colour your Emacs with ease") should be pretty general
+ - [color](https://emacsconf.org/2024/talks/color "Colour your Emacs with ease") and [theme](https://emacsconf.org/2024/talks/theme "My journey of finding and creating the “perfect” Emacs theme") are both theme-related. [color](https://emacsconf.org/2024/talks/color "Colour your Emacs with ease") needs to be in the morning and [theme](https://emacsconf.org/2024/talks/theme "My journey of finding and creating the “perfect” Emacs theme") needs to be in the afternoon, so I put them on either side of the lunch break.
+ - Other afternoon talks: [water](https://emacsconf.org/2024/talks/water "Watering my (digital) plant with Emacs timers") and [shell](https://emacsconf.org/2024/talks/shell "Emacs as a shell") are by the same speaker. [casual](https://emacsconf.org/2024/talks/casual "Re-imagining the Emacs user experience with Casual Suite"), [hyperdrive](https://emacsconf.org/2024/talks/hyperdrive "New in hyperdrive.el: org-transclusion, easy installation, and more!"), and [writing](https://emacsconf.org/2024/talks/writing "Emacs Writing Studio") will probably be good for a general audience. These speakers are only available in the afternoon, so this part of the schedule is a bit tight.
+ - I put [emacs30](https://emacsconf.org/2024/talks/emacs30 "Emacs 30 Highlights") at the end of Saturday to act sort of as a keynote. Closing remarks on Saturday are usually very light, so we could skip them.
+ - Dev track:
+ - [gypsum](https://emacsconf.org/2024/talks/gypsum "Gypsum: my clone of Emacs and ELisp written in Scheme"), [rust](https://emacsconf.org/2024/talks/rust "An experimental Emacs core in Rust"), [julia](https://emacsconf.org/2024/talks/julia "Exploring shared philosophies in Julia and Emacs"), [guile](https://emacsconf.org/2024/talks/guile "Beguiling Emacs: Guile-Emacs relaunched!"), and [mcclim](https://emacsconf.org/2024/talks/mcclim "Elisp and McCLIM") are about other projects
+ - [graph](https://emacsconf.org/2024/talks/graph "Graph mode: a major mode to create, edit and display discrete element graphs"), [p-search](https://emacsconf.org/2024/talks/p-search "p-search: a local search engine in Emacs"), [secrets](https://emacsconf.org/2024/talks/secrets "Committing secrets with git using sops-mode"), and [repro](https://emacsconf.org/2024/talks/repro "Reproducibly building Emacs: “Hey your checksum is the same as mine!”") will probably be more dev-focused
+- Sun:
+ - Sunday morning last year had some packet loss issues at around 9:30, so we&rsquo;ll start with some talks that don&rsquo;t have BBB Q&A: [students](https://emacsconf.org/2024/talks/students "An example of a cohesive student workflow in Emacs"), [links](https://emacsconf.org/2024/talks/links "Unlocking linked data: replacing specialized apps with an Org-based semantic wiki"), [regex](https://emacsconf.org/2024/talks/regex "Emacs regex compilation and future directions for expressive pattern matching")
+ - [blee](https://emacsconf.org/2024/talks/blee "About Blee: enveloping our own autonomy directed digital ecosystem with Emacs") and [language](https://emacsconf.org/2024/talks/language "Immersive language learning with Emacs") are probably general-audience
+ - [pgmacs](https://emacsconf.org/2024/talks/pgmacs "PGmacs: browsing and editing PostgreSQL databases from Emacs"), [regex](https://emacsconf.org/2024/talks/regex "Emacs regex compilation and future directions for expressive pattern matching"), and [transducers](https://emacsconf.org/2024/talks/transducers "Transducers: finally, ergonomic data processing for Emacs!") are all development-oriented, but are on the general track for scheduling purposes. [transducers](https://emacsconf.org/2024/talks/transducers "Transducers: finally, ergonomic data processing for Emacs!") can only be on Sunday afternoon at 4pm because of availability.
+ - I&rsquo;ve separated [hyperbole](https://emacsconf.org/2024/talks/hyperbole "Fun things with GNU Hyperbole") and [hywiki](https://emacsconf.org/2024/talks/hywiki "HyWiki: Fast, hyperlinked note-taking with no markup required") by lunch so that people who are interested in that can attend the live Q&A for both without worrying about missing things.
+ - [learning](https://emacsconf.org/2024/talks/learning "Survival of the skillest: Thriving in the learning jungle"), [sharing](https://emacsconf.org/2024/talks/sharing "So you want to be an Emacs-fluencer?"), [literate](https://emacsconf.org/2024/talks/literate "Literate programming for the 21st Century") will probably be good for a general audience
-- light blue: constraint is <= a time
-- peach: constraint is >= a time
+<a id="org5b05724"></a>
-### Option: 1.5 tracks
+# TODO Check EmacsConf infrastructure :project:
-<svg width="800" height="300" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><title>Graphical view of the schedule</title><g transform="translate(0,0)"><title>Schedule for Saturday</title><rect width="800" height="150" x="0" y="0" fill="white"></rect><text font-size="10" fill="black" y="12" x="3">Saturday</text><a href="https://emacsconf.org/2024/talks/sat-open" title="Saturday opening remarks" data-slug="sat-open"><title> 9:00- 9:10 Saturday opening remarks</title><rect x="0" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="5,5,5" fill="gray"></rect><g transform="translate(13,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sat-open</text></g></a><a href="https://emacsconf.org/2024/talks/papers" title="Writing academic papers in Org-Roam" data-slug="papers"><title> 9:10- 9:20 Writing academic papers in Org-Roam</title><rect x="15" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="" fill="lightblue"></rect><g transform="translate(28,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">papers</text></g></a><a href="https://emacsconf.org/2024/talks/links" title="Unlocking linked data: replacing specialized apps with an Org-based semantic wiki" data-slug="links"><title> 9:40- 9:50 Unlocking linked data: replacing specialized apps with an Org-based semantic wiki</title><rect x="62" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="5,5,5" fill="lightblue"></rect><g transform="translate(75,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">links</text></g></a><a href="https://emacsconf.org/2024/talks/org-teach" title="org-teach: a minor mode for writing course materials in Emacs" data-slug="org-teach"><title>10:00-10:20 org-teach: a minor mode for writing course materials in Emacs</title><rect x="94" y="15" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="gray"></rect><g transform="translate(123,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">org-teach</text></g></a><a href="https://emacsconf.org/2024/talks/language" title="Immersive language learning with Emacs" data-slug="language"><title>10:40-10:50 Immersive language learning with Emacs</title><rect x="156" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="5,5,5" fill="lightblue"></rect><g transform="translate(169,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">language</text></g></a><a href="https://emacsconf.org/2024/talks/hyperdrive" title="New in hyperdrive.el: org-transclusion, easy installation, and more!" data-slug="hyperdrive"><title>11:00-11:20 New in hyperdrive.el: org-transclusion, easy installation, and more!</title><rect x="188" y="15" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(217,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">hyperdrive</text></g></a><a href="https://emacsconf.org/2024/talks/color" title="Colour your Emacs with ease" data-slug="color"><title>11:40-11:50 Colour your Emacs with ease</title><rect x="250" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="" fill="lightblue"></rect><g transform="translate(263,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">color</text></g></a><a href="https://emacsconf.org/2024/talks/emacs30" title="Emacs 30 Highlights" data-slug="emacs30"><title> 1:00- 1:20 Emacs 30 Highlights</title><rect x="376" y="15" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="gray"></rect><g transform="translate(405,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">emacs30</text></g></a><a href="https://emacsconf.org/2024/talks/water" title="Watering my (digital) plant with Emacs timers" data-slug="water"><title> 1:40- 1:50 Watering my (digital) plant with Emacs timers</title><rect x="439" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="5,5,5" fill="gray"></rect><g transform="translate(452,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">water</text></g></a><a href="https://emacsconf.org/2024/talks/shell" title="Emacs as a shell" data-slug="shell"><title> 2:00- 2:40 Emacs as a shell</title><rect x="470" y="15" opacity="0.8" width="62" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(530,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">shell</text></g></a><a href="https://emacsconf.org/2024/talks/theme" title="My journey of finding and creating the “perfect” Emacs theme" data-slug="theme"><title> 2:50- 3:00 My journey of finding and creating the “perfect” Emacs theme</title><rect x="549" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(562,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">theme</text></g></a><a href="https://emacsconf.org/2024/talks/flp" title="The Free Life Planner: Empowering lives with Emacs-based AI" data-slug="flp"><title> 3:20- 3:40 The Free Life Planner: Empowering lives with Emacs-based AI</title><rect x="596" y="15" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="5,5,5" fill="gray"></rect><g transform="translate(625,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">flp</text></g></a><a href="https://emacsconf.org/2024/talks/writing" title="Emacs Writing Studio" data-slug="writing"><title> 3:50- 4:00 Emacs Writing Studio</title><rect x="643" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(656,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">writing</text></g></a><a href="https://emacsconf.org/2024/talks/sat-close" title="Saturday closing remarks" data-slug="sat-close"><title> 4:50- 5:00 Saturday closing remarks</title><rect x="737" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="5,5,5" fill="gray"></rect><g transform="translate(750,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sat-close</text></g></a><a href="https://emacsconf.org/2024/talks/gypsum" title="Gypsum: my clone of Emacs and ELisp written in Scheme" data-slug="gypsum"><title>10:00-10:20 Gypsum: my clone of Emacs and ELisp written in Scheme</title><rect x="94" y="75" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="lightblue"></rect><g transform="translate(123,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">gypsum</text></g></a><a href="https://emacsconf.org/2024/talks/rust" title="An experimental Emacs core in Rust" data-slug="rust"><title>10:40-11:00 An experimental Emacs core in Rust</title><rect x="156" y="75" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="gray"></rect><g transform="translate(185,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">rust</text></g></a><a href="https://emacsconf.org/2024/talks/graph" title="Graph mode: a major mode to create, edit and display discrete element graphs" data-slug="graph"><title>11:20-11:40 Graph mode: a major mode to create, edit and display discrete element graphs</title><rect x="219" y="75" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="gray"></rect><g transform="translate(248,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">graph</text></g></a><a href="https://emacsconf.org/2024/talks/julia" title="Exploring shared philosophies in Julia and Emacs" data-slug="julia"><title> 1:00- 1:05 Exploring shared philosophies in Julia and Emacs</title><rect x="376" y="75" opacity="0.8" width="7" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(381,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">julia</text></g></a><a href="https://emacsconf.org/2024/talks/guile" title="Beguiling Emacs: Guile-Emacs relaunched!" data-slug="guile"><title> 1:25- 1:45 Beguiling Emacs: Guile-Emacs relaunched!</title><rect x="415" y="75" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(444,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">guile</text></g></a><a href="https://emacsconf.org/2024/talks/regex" title="Emacs regex compilation and future directions for expressive pattern matching" data-slug="regex"><title> 1:55- 2:15 Emacs regex compilation and future directions for expressive pattern matching</title><rect x="462" y="75" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="5,5,5" fill="lightblue"></rect><g transform="translate(491,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">regex</text></g></a><a href="https://emacsconf.org/2024/talks/mcclim" title="Elisp and McCLIM" data-slug="mcclim"><title> 2:25- 3:25 Elisp and McCLIM</title><rect x="509" y="75" opacity="0.8" width="94" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(601,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">mcclim</text></g></a><a href="https://emacsconf.org/2024/talks/secrets" title="Committing secrets with git using sops-mode" data-slug="secrets"><title> 3:45- 3:55 Committing secrets with git using sops-mode</title><rect x="635" y="75" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(648,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">secrets</text></g></a><a href="https://emacsconf.org/2024/talks/repro" title="Reproducibly building Emacs: “Hey your checksum is the same as mine!”" data-slug="repro"><title> 4:15- 4:35 Reproducibly building Emacs: “Hey your checksum is the same as mine!”</title><rect x="682" y="75" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="gray"></rect><g transform="translate(711,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">repro</text></g></a><g transform="translate(0,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">9 AM</text></g><g transform="translate(94,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">10 AM</text></g><g transform="translate(188,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">11 AM</text></g><g transform="translate(282,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">12 PM</text></g><g transform="translate(376,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">1 PM</text></g><g transform="translate(470,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">2 PM</text></g><g transform="translate(564,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">3 PM</text></g><g transform="translate(658,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">4 PM</text></g><g transform="translate(752,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">5 PM</text></g></g><g transform="translate(0,150)"><title>Schedule for Sunday</title><rect width="800" height="150" x="0" y="0" fill="white"></rect><text font-size="10" fill="black" y="12" x="3">Sunday</text><a href="https://emacsconf.org/2024/talks/sun-open" title="Sunday opening remarks" data-slug="sun-open"><title> 9:00- 9:10 Sunday opening remarks</title><rect x="0" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="5,5,5" fill="gray"></rect><g transform="translate(13,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sun-open</text></g></a><a href="https://emacsconf.org/2024/talks/pgmacs" title="PGmacs: browsing and editing PostgreSQL databases from Emacs" data-slug="pgmacs"><title> 9:10- 9:20 PGmacs: browsing and editing PostgreSQL databases from Emacs</title><rect x="15" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="" fill="lightblue"></rect><g transform="translate(28,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">pgmacs</text></g></a><a href="https://emacsconf.org/2024/talks/p-search" title="p-search: a local search engine in Emacs" data-slug="p-search"><title> 9:40-10:00 p-search: a local search engine in Emacs</title><rect x="62" y="15" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="gray"></rect><g transform="translate(91,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">p-search</text></g></a><a href="https://emacsconf.org/2024/talks/hyperbole" title="Fun things with GNU Hyperbole" data-slug="hyperbole"><title>10:20-10:30 Fun things with GNU Hyperbole</title><rect x="125" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="" fill="lightblue"></rect><g transform="translate(138,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">hyperbole</text></g></a><a href="https://emacsconf.org/2024/talks/hywiki" title="HyWiki: Fast, hyperlinked note-taking with no markup required" data-slug="hywiki"><title>10:50-11:10 HyWiki: Fast, hyperlinked note-taking with no markup required</title><rect x="172" y="15" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(201,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">hywiki</text></g></a><a href="https://emacsconf.org/2024/talks/project" title="Managing writing project metadata with org-mode" data-slug="project"><title>11:30-11:50 Managing writing project metadata with org-mode</title><rect x="235" y="15" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="gray"></rect><g transform="translate(264,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">project</text></g></a><a href="https://emacsconf.org/2024/talks/blee" title="About Blee: towards an integrated Emacs environment for enveloping our own autonomy directed digital ecosystem" data-slug="blee"><title>12:10-12:30 About Blee: towards an integrated Emacs environment for enveloping our own autonomy directed digital ecosystem</title><rect x="298" y="15" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="gray"></rect><g transform="translate(327,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">blee</text></g></a><a href="https://emacsconf.org/2024/talks/casual" title="Re-imagining the Emacs user experience with Casual Suite" data-slug="casual"><title> 1:00- 1:20 Re-imagining the Emacs user experience with Casual Suite</title><rect x="376" y="15" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(405,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">casual</text></g></a><a href="https://emacsconf.org/2024/talks/learning" title="Survival of the skillest: Thriving in the learning jungle" data-slug="learning"><title> 1:40- 2:00 Survival of the skillest: Thriving in the learning jungle</title><rect x="439" y="15" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(468,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">learning</text></g></a><a href="https://emacsconf.org/2024/talks/sharing" title="So you want to be an Emacs-fluencer?" data-slug="sharing"><title> 2:10- 2:30 So you want to be an Emacs-fluencer?</title><rect x="486" y="15" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(515,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sharing</text></g></a><a href="https://emacsconf.org/2024/talks/literate" title="Literate programming for the 21st Century" data-slug="literate"><title> 2:40- 3:00 Literate programming for the 21st Century</title><rect x="533" y="15" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(562,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">literate</text></g></a><a href="https://emacsconf.org/2024/talks/students" title="An example of a cohesive student workflow in Emacs" data-slug="students"><title> 3:20- 3:30 An example of a cohesive student workflow in Emacs</title><rect x="596" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(609,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">students</text></g></a><a href="https://emacsconf.org/2024/talks/transducers" title="Transducers: finally, ergonomic data processing for Emacs!" data-slug="transducers"><title> 4:00- 4:30 Transducers: finally, ergonomic data processing for Emacs!</title><rect x="658" y="15" opacity="0.8" width="47" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(703,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">transducers</text></g></a><a href="https://emacsconf.org/2024/talks/sun-close" title="Sunday closing remarks" data-slug="sun-close"><title> 4:50- 5:00 Sunday closing remarks</title><rect x="737" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="5,5,5" fill="gray"></rect><g transform="translate(750,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sun-close</text></g></a><g transform="translate(0,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">9 AM</text></g><g transform="translate(94,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">10 AM</text></g><g transform="translate(188,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">11 AM</text></g><g transform="translate(282,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">12 PM</text></g><g transform="translate(376,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">1 PM</text></g><g transform="translate(470,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">2 PM</text></g><g transform="translate(564,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">3 PM</text></g><g transform="translate(658,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">4 PM</text></g><g transform="translate(752,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">5 PM</text></g></g></svg>
+- [X] IRC
+- [ ] Streaming assets
+- [ ] Publishing to the wiki
+- [ ] Web conference
+- [ ] OBS
+- [ ] Publishing to the media server
+- [ ] Etherpad
+- [ ] Streaming
+- [ ] Toobnix
+- [ ] YouTube
-Coloring by availability:
-- light blue: constraint is <= a time
-- peach: constraint is >= a time
+<a id="orgf90c350"></a>
+
+## WAITING bbb.emacsverse.org replacement
+
+- Delegated to Corwin for now, will get back to stressing out about it in a couple of weeks
+- May need to spin up a Linode and either pay for it for a few weeks or figure out how to spin it down and up again
+ - [BigBlueButton replacement](#bbb)
+- Possibly relevant: dynamic DNS?
+ <https://www.linode.com/community/questions/7945/custom-dynamic-dns>
+ Can also update manually
+
+
+### TODO Create meeting rooms for each speaker
+
+
+<a id="org47f1067"></a>
+
+## IRC web client
+
+
+### WAITING Ask libera.chat to increase connections allowed from chat.emacsconf.org on Dec 7 and 8
+
+
+<a id="org8966827"></a>
+
+## IRC announcements
+
+
+### DONE Confirm manual IRC announcements
+
+
+### TODO Confirm automated IRC announcements from res
+
+
+<a id="org75bdf93"></a>
+
+## Media
+
+
+### TODO Switch public media to unprotected root before the conference
+
+1. Clear public media directory.
+2. Set `media_protect_root` to false in Ansible `group_vars/all.yml`.
+3. `ansible-playbook -i inventory.yml prod-playbook.yml --tags media`
+
+You can generate the index with `emacsconf-publish-update-media`.
+
+
+<a id="orgb420d40"></a>
+
+## TODO Publishing resources to the wiki
+
+ansible-playbook -i inventory.yml prod-playbook.yml &#x2013;tags publish
+
+
+<a id="org4e0acb2"></a>
+
+## TODO Publishing videos to the media server
+
+
+<a id="org40b9e70"></a>
+
+## Playing videos, switching to windows
+
+
+### TODO Generate test videos for everything
+
+
+### TODO Document how to get that set up again
+
+
+<a id="org1040525"></a>
+
+## Etherpad
+
+
+### TODO Generate pads for all the talks
+
+
+### TODO Generate the main index
+
+
+<a id="org215b633"></a>
+
+## TODO Do a dry run
+
+
+### DONE Generate all the test assets
+
+
+### TODO Test connecting to VNC and streaming via OBS
+
+
+<a id="org73e9be9"></a>
+
+# Processes and notes
+
+
+<a id="orgedf8032"></a>
+
+## ERC
+
+Some convenient commands are defined in <a href="https://git.emacsconf.org/emacsconf-el/tree/emacsconf-erc.el">emacsconf-erc.el</a>.
+
+<table>
+
+
+<colgroup>
+<col class="org-left">
+
+<col class="org-left">
+</colgroup>
+<tbody>
+<tr>
+<td class="org-left">/opall</td>
+<td class="org-left">Grant operator status in the Emacsconf channels</td>
+</tr>
+
+<tr>
+<td class="org-left">/deopall</td>
+<td class="org-left">Remove operator status in the Emacsconf channels</td>
+</tr>
+
+<tr>
+<td class="org-left">/conftopic</td>
+<td class="org-left">Set the first part of the topic</td>
+</tr>
+</tbody>
+</table>
-<a id="org83601b3"></a>
+<a id="decisions"></a>
+
+# Decisions
+
+
+<a id="bbb"></a>
+
+## BigBlueButton replacement
+
+The server running bbb.emacsverse.org has been decommissioned, since the nonprofit that shared it with us is defunct.
+
+- We&rsquo;d like to figure out what our live Q&A setup is going to be for EmacsConf 2024 (Dec 7-8).
+- Nice to have: Hosting for other Emacs meetups like Emacs APAC and OrgMeetup
+- [Stats from last year](https://sachachua.com/blog/2023/12/emacsconf-backstage-figuring-out-our-maximum-number-of-simultaneous-bigbluebutton-users/): 31 meetings, 84 unique users, 62 max simultaneous users, 6 max simultaneous meetings, 27 max users in one meeting, 36 unique talking
+ - also includes some notes on hosting
+- Nice thing about running our own server: we can make one room per speaker, pre-assign their URLs, and let people stay as long as they want in recorded Q&A sessions
+
+Recommendation:
+
+We spin up a shared CPU 4GB under bandali&rsquo;s Linode
+account (for bandwidth pooling and easier
+reimbursement), do the setup/testing over the next
+few weeks, scale up to dedicated CPU 16GB a day or
+two before the conference, and keep it at that
+level until the recordings are all done. I have
+access to that Linode account, so I can set it up.
+If bandali can configure emacsverse.org to be
+handled by Linode, I can manage the DNS changes,
+or he can change bbb.emacsverse.org to the IP
+address of the new node.
+
+Some options:
+
+- Linode with 16GB RAM and 8 cores
+ - Advantages: can experiment with both Galene and BBB, manage things ourselves, have filesystem access
+ - Disadvantages: needs someone to do it
+ - Base pricing
+ - Shared CPU 4GB 80GB storage: hourly USD 0.04, monthly USD 24
+ - Dedicated CPU 16GB: hourly USD 0.22, monthly USD 144 - meets minimum requirements and can probably support 200 simultaneous ([FAQ](https://docs.bigbluebutton.org/support/faq/))
+ - Shared CPU 8GB 160GB storage: hourly USD 0.07
+ - Shared CPU 16GB 320GB storage: hourly USD 0.14
+ - Last year
+ - Block storage: $1/10GB/month
+ - 125M/hour - [FAQ](https://docs.bigbluebutton.org/support/faq/#what-is-the-disk-space-usage-for-storing-one-hour-of-recordings)
+ - In 2023, we had 31 hours of trimmed recordings (main + answers),
+ - (\* 31 0.125) 3.875, oh, maybe we can get away with 10GB storage and add another chunk of 10GB midway if we need it, or extend the dedicated
+ - Actually, block storage probably not needed if we&rsquo;re going to keep the big instance up until the recordings are done
+ - Ideas
+ - **Option A: Run a small instance continuously, scale up for the conference, pull the recordings off, spin the instance down** - est total USD 60+tax
+ - There are three weeks between now and the conference (\* 0.04 24 7 3) USD 20
+ - Last year, recordings were available within three days after the conference
+ - Let&rsquo;s plan for a week at high capacity. (\* 0.22 24 7) USD 36.96
+ - and a month of 10GB, possibly up to 30GB. USD 3
+ - That&rsquo;s probably small enough that it doesn&rsquo;t make as much sense to try to fully spin down for a week in between now and the conference (\* 0.04 24 7) - which would save USD 6.72 but require figuring out backing up, etc.
+ - **Option B: Run a slightly larger shared CPU instance from now until shortly before the conference, then scale up** in case BBB does not work for installation/testing with less memory; block storage probably not needed
+ - (\* 0.07 24 7 3) USD 35.28 for 8GB, total (+ 35.28 36.96) USD 72.24
+ - (\* 0.14 24 7 3) USD 70.56 for 16GB, total (+ 70.56 36.96) USD 107.52
+
+- Ask FSF if we can borrow their BBB or Galene, maybe limit it to cycling among 6 or 7 rooms
+ - Waiting for feedback; Corwin has asked them
+- Pay for BigBlueButton hosting; can we find one that&rsquo;s compatible with our commitment to freedom?
+ - <https://bigbluebutton.host/plans/#economyplans> - Economy 120 (USD 130/month) or Economy 80 (USD 85/month), custom URL
+ - <https://www.bigbluemeeting.com/#pricing> - 100 concurrent users: USD 125/month, custom URL
+ - <https://www.mynaparrot.com/affordable-bigbluebutton-hosting>
+ - 100 concurrent users: USD 79/month
+ - 200 concurrent users and custom URL: USD 15 setup fee + USD 149/month
+ - <https://www.webhostingzone.org/solutions/bigbluebutton-hosting.html> - 150 concurrent, USD 75/month
+ - <https://bbbplugin.com/en/pricing/bigbluebutton-for-api/> - 250 concurrent, USD 49 setup + USD 108.80/month
+ - <https://biggerbluebutton.com/plans>
+ - 150 concurrent users, 10 concurrent meetings, USD 40/month
+ - custom domain, 600 concurrent users, USD 149/month
+ - Compare with Linode pricing
+- Try to squeeze it onto res.emacsconf.org
+ - Tricky to run on a shared server; it likes to use a lot of ports and strongly recommends running it on its own server
+- Go back to using meet.jit.si?
+ - Free:
+ - Need to check speed, reliability
+ - Can send RTMP from the meeting itself
+ - <span class="timestamp-wrapper"><span class="timestamp">[2024-11-13 Wed] </span></span> I attended Ihor&rsquo;s
+ OrgMeetup, which he hosted on meet.jit.si. I
+ think he had bandwidth issues at some point
+ and we lost his audio. I remember we ran
+ into that problem before, too, when we used
+ Jitsi for one of the Emacsconfs. Free Jitsi
+ hosting might not be the right fit for us.
+ - Paid: USD 99/month + $0.01/min for recordings + $0.01 min (optional) for RTMP streaming
+- Galene?
+ - <span class="timestamp-wrapper"><span class="timestamp">[2024-10-31 Thu] </span></span> I checked out Galene in the last Emacs Berlin meeting. It&rsquo;s promising, but I think the user interface might still need a bit of work. Simple deployment (run one Go binary, I think), but muting/unmuting doesn&rsquo;t trigger enabling the microphone, and the chat was buggy to get to on my mobile device. Supposed to have support for raising hands.
+
+
+<a id="support-code"></a>
# Support code
diff --git a/2024/organizers-notebook/index.org b/2024/organizers-notebook/index.org
index 1c70ff57..bbb1032a 100644
--- a/2024/organizers-notebook/index.org
+++ b/2024/organizers-notebook/index.org
@@ -1,4 +1,4 @@
-# [[elisp:(progn (memoize 'emacsconf-get-talk-info "5 seconds") (org-md-export-to-markdown) (memoize-restore 'emacsconf-get-talk-info))][Export this file to Markdown]]
+# [[elisp:(progn (memoize 'emacsconf-get-talk-info "5 seconds") (org-md-export-to-markdown) (memoize-restore 'emacsconf-get-talk-info))][EPpxport this file to Markdown]]
#+TAGS: emacsconf
# [[elisp:(memoize 'emacsconf-get-talk-info "5 seconds")][Memoize emacsconf-get-talk-info]] - [[elisp:(memoize-restore 'emacsconf-get-talk-info)][Unmemoize]]
#+todo: TODO(t) SOMEDAY STARTED INPROGRESS(i) WAITING(w) STANDBY(s) BLOCKED(b) | DONE(x) CANCELLED(c)
@@ -125,7 +125,7 @@ interests you!
| Audio normalization | Core org handling it | Other volunteer | Multiple volunteers |
| Video resolution | Usual reminders | Extra reminders | Everyone remembering to use a large font size |
| Intros | Standard, recorded | Reviewed by speakers | More details/context |
-
+ | Pad | v1.9.7 | v2.x | |
* Phases
:PROPERTIES:
:CUSTOM_ID: phases
@@ -150,18 +150,14 @@ CLOSED: [2024-06-11 Tue 19:21] DEADLINE: <2024-06-14 Fri>
**** DONE Post CFP in the usual places
CLOSED: [2024-09-17 Tue 16:45]
emacsconf-discuss, reddit.com/r/emacs, Emacs News, emacs-tangents, Mastodon, X
-** Draft schedule
+** DONE Draft schedule
+CLOSED: [2024-11-02 Sat 11:38]
:PROPERTIES:
:CUSTOM_ID: draft-schedule
:END:
#+NAME: schedule
-
-*** Option: 2 tracks
-:PROPERTIES:
-:CUSTOM_ID: sched-2-tracks
-:END:
-#+begin_src emacs-lisp :results value replace :exports none :eval never-export :var filename="schedule-2-tracks.svg"
+#+begin_src emacs-lisp :results value replace :exports none :eval never-export :var filename="schedule-1.5-tracks.svg"
(require 'emacsconf)
(require 'emacsconf-schedule)
(setq emacsconf-schedule-tracks
@@ -173,8 +169,8 @@ emacsconf-discuss, reddit.com/r/emacs, Emacs News, emacs-tangents, Mastodon, X
:start "2024-12-08 9:00"
:end "2024-12-08 18:00"
:tracks ("General" "Development"))))
-(let ((emacsconf-schedule-default-buffer-minutes 20)
- (emacsconf-schedule-default-buffer-minutes-for-live-q-and-a 30)
+(let ((emacsconf-schedule-default-buffer-minutes 10)
+ (emacsconf-schedule-default-buffer-minutes-for-live-q-and-a 20)
(emacsconf-schedule-break-time 10)
(emacsconf-schedule-lunch-time 60)
(emacsconf-use-absolute-url t)
@@ -183,54 +179,52 @@ emacsconf-discuss, reddit.com/r/emacs, Emacs News, emacs-tangents, Mastodon, X
(emacsconf-schedule-validation-functions
'(emacsconf-schedule-validate-time-constraints
;; emacsconf-schedule-validate-live-q-and-a-sessions-are-staggered
+ emacsconf-schedule-validate-no-cancelled-talks
emacsconf-schedule-validate-all-talks-present
emacsconf-schedule-validate-no-duplicates)))
(setq emacsconf-schedule-plan
'(("GEN Saturday, Dec 7" :start "2024-12-07 09:00" :set-track "General")
sat-open
papers ; <= 10:00
+ project ; any
+ org-update ; <= 13:00 EST Sat or >= 15:00 Sat or <= 14:00 Sun, Sat preferred
color ; <= 12:00 sat pref
- flp ; any, Sat pref
- hyperdrive ; >= 11:00 Sat
(lunch :start "12:00")
- emacs30 ; probably any
theme ; >= 12:30
- water ; >= 13:00 Sat, same speaker as shell >= 10:00 EST Sat and <= 16:00 EST Sat
- shell ; >= 13:00 Sat >= 10:00 EST Sat and <= 16:00 EST Sat
- students
+ (water :time 15) ; >= 13:00 Sat, same speaker as shell
+ shell ; >= 13:00 Sat
+ casual ; >= 13:00
+ hyperdrive ; >= 13:30 Sat
writing ; >= 15:30 Sat
- sat-close
+ emacs30 ; probably any
+ (sat-close :start "17:00")
("DEV Saturday, Dec 7" :start "2024-12-07 10:00" :set-track "Development")
gypsum ; <= 11:00
rust ; Dec 7
+ p-search ; any
(lunch :start "12:00")
- julia ; >= 13:00
+ (julia :buffer 15) ; >= 13:00
guile ; >= 12:00
+ secrets ; >= 13:00
(mcclim :time 60) ; >= 14:00
- regex ; <= 12:00 sun or >= 12:00 sat
repro ; any
("GEN Sunday, Dec 8" :start "2024-12-08 09:00" :set-track "General")
sun-open
links ; <= 10:30
- (org-teach :buffer 20) ; any
- (hyperbole :buffer 20)
- (hywiki :buffer 20) ; >= 10:00
+ regex ; <= 12:00 sun or >= 12:00 sat
+ learning ; <= 13:00
language ; <= 12:00
+ (org-teach :buffer 15) ; any
+ (hyperbole :buffer 15)
(lunch :start "12:00")
- literate ; >= 13:00
- casual ; >= 13:00
- learning ; any
- project ; any
- sharing ; any
- (sun-close :start "16:50")
- ("DEV Sunday, Dec 8" :start "2024-12-08 10:00" :set-track "Development")
- pgmacs ; <= 15:00
- graph ; <= 12:00
- (lunch :start "12:00")
- blee ; any
- p-search ; any
- secrets ; >= 13:00
- (transducers :start "16:00") ; >= 16:00 sun
+ (hywiki :buffer 15) ; >= 10:00
+ (pgmacs :buffer 15) ; <= 15:00
+ (blee :buffer 10) ; any
+ (literate :buffer 15) ; >= 13:00
+ students ; >= 14:00 Sun
+ sharing ; >= 13:00
+ (transducers) ; >= 16:00 sun
+ (sun-close :start "17:00")
))
(setq emacsconf-schedule-draft (emacsconf-schedule-prepare (emacsconf-schedule-inflate-sexp emacsconf-schedule-plan)))
(prog1 (string-join (emacsconf-schedule-validate emacsconf-schedule-draft) "\n")
@@ -245,22 +239,56 @@ emacsconf-discuss, reddit.com/r/emacs, Emacs News, emacs-tangents, Mastodon, X
(clear-image-cache)))
#+end_src
+#+RESULTS: schedule
+:results:
+:end:
+
#+RESULTS:
:results:
:end:
-[[file:schedule-2-tracks.svg]]
+[[file:schedule-1.5-tracks.svg]]
-Coloring by availability:
+Legend:
- light blue: constraint is <= a time
- peach: constraint is >= a time
-
-*** Option: 1.5 tracks
+- solid line: Q&A will be through BigBlueButton web conference
+- dashed line: Q&A will be IRC/Etherpad during the event or e-mail after the event
+
+Notes:
+
+- Updates:
+ - [2024-10-27 Sun] Removed emacsconf:graph, moved emacsconf:p-search earlier; also emacsconf:learning needs to be in the morning, so I moved emacsconf:pgmacs and emacsconf:org-teach around.
+ - [2024-10-22 Tue] Swapped emacsconf:org-teach and emacsconf:blee
+ - [2024-10-21 Mon] Extended emacsconf:blee
+ - [2024-10-17 Thu] Added emacsconf:org-update to Saturday morning, moving emacsconf:org-teach to Sunday afternoon
+ - [2024-10-15 Tue] Swapped emacsconf:students and emacsconf:literate for availability reasons
+ - [2024-10-13 Sun] Moved emacsconf:hyperdrive to the afternoon (swapping with emacsconf:flp) because of changed availability
+ - [2024-10-12 Sat] I fixed the time constraint for emacsconf:students (needs to be in the afternoon), so I moved emacsconf:hyperbole to the morning.
+- General approach:
+ - I've mostly tried to alternate IRC/pad Q&A with live Q&A.
+ - 1.5 tracks keeps things faster-paced than the 2-track option.
+- Sat:
+ - Gen track:
+ - emacsconf:papers, emacsconf:project, emacsconf:org-teach, emacsconf:flp, emacsconf:color should be pretty general
+ - emacsconf:color and emacsconf:theme are both theme-related. emacsconf:color needs to be in the morning and emacsconf:theme needs to be in the afternoon, so I put them on either side of the lunch break.
+ - Other afternoon talks: emacsconf:water and emacsconf:shell are by the same speaker. emacsconf:casual, emacsconf:hyperdrive, and emacsconf:writing will probably be good for a general audience. These speakers are only available in the afternoon, so this part of the schedule is a bit tight.
+ - I put emacsconf:emacs30 at the end of Saturday to act sort of as a keynote. Closing remarks on Saturday are usually very light, so we could skip them.
+ - Dev track:
+ - emacsconf:gypsum, emacsconf:rust, emacsconf:julia, emacsconf:guile, and emacsconf:mcclim are about other projects
+ - emacsconf:graph, emacsconf:p-search, emacsconf:secrets, and emacsconf:repro will probably be more dev-focused
+- Sun:
+ - Sunday morning last year had some packet loss issues at around 9:30, so we'll start with some talks that don't have BBB Q&A: emacsconf:students, emacsconf:links, emacsconf:regex
+ - emacsconf:blee and emacsconf:language are probably general-audience
+ - emacsconf:pgmacs, emacsconf:regex, and emacsconf:transducers are all development-oriented, but are on the general track for scheduling purposes. [[emacsconf:transducers]] can only be on Sunday afternoon at 4pm because of availability.
+ - I've separated emacsconf:hyperbole and emacsconf:hywiki by lunch so that people who are interested in that can attend the live Q&A for both without worrying about missing things.
+ - emacsconf:learning, emacsconf:sharing, emacsconf:literate will probably be good for a general audience
+
+*** Option: 2 tracks :noexport:
:PROPERTIES:
-:CUSTOM_ID: sched-1.5-tracks
+:CUSTOM_ID: sched-2-tracks
:END:
-
-#+begin_src emacs-lisp :results value replace :exports none :eval never-export :var filename="schedule-1.5-tracks.svg"
+#+begin_src emacs-lisp :results value replace :exports none :eval never-export :var filename="schedule-2-tracks.svg"
(require 'emacsconf)
(require 'emacsconf-schedule)
(setq emacsconf-schedule-tracks
@@ -272,8 +300,8 @@ Coloring by availability:
:start "2024-12-08 9:00"
:end "2024-12-08 18:00"
:tracks ("General" "Development"))))
-(let ((emacsconf-schedule-default-buffer-minutes 10)
- (emacsconf-schedule-default-buffer-minutes-for-live-q-and-a 20)
+(let ((emacsconf-schedule-default-buffer-minutes 20)
+ (emacsconf-schedule-default-buffer-minutes-for-live-q-and-a 30)
(emacsconf-schedule-break-time 10)
(emacsconf-schedule-lunch-time 60)
(emacsconf-use-absolute-url t)
@@ -288,46 +316,48 @@ Coloring by availability:
'(("GEN Saturday, Dec 7" :start "2024-12-07 09:00" :set-track "General")
sat-open
papers ; <= 10:00
- links ; <= 10:30
- org-teach ; any
- language ; <= 12:00
- hyperdrive ; >= 11:00 Sat
color ; <= 12:00 sat pref
+ flp ; any, Sat pref
+ hyperdrive ; >= 11:00 Sat
(lunch :start "12:00")
emacs30 ; probably any
- water ; >= 13:00 Sat, same speaker as shell
- shell ; >= 13:00 Sat
theme ; >= 12:30
- flp ; any, Sat pref
+ water ; >= 13:00 Sat, same speaker as shell >= 10:00 EST Sat and <= 16:00 EST Sat
+ shell ; >= 13:00 Sat >= 10:00 EST Sat and <= 16:00 EST Sat
+ students
writing ; >= 15:30 Sat
- (sat-close :start "16:50")
+ sat-close
("DEV Saturday, Dec 7" :start "2024-12-07 10:00" :set-track "Development")
gypsum ; <= 11:00
rust ; Dec 7
- graph ; <= 12:00
(lunch :start "12:00")
julia ; >= 13:00
guile ; >= 12:00
- regex ; <= 12:00 sun or >= 12:00 sat
(mcclim :time 60) ; >= 14:00
- secrets ; >= 13:00
+ regex ; <= 12:00 sun or >= 12:00 sat
repro ; any
("GEN Sunday, Dec 8" :start "2024-12-08 09:00" :set-track "General")
sun-open
- pgmacs ; <= 15:00
- p-search ; any
- hyperbole
- hywiki ; >= 10:00
- project ; any
- blee ; any
+ links ; <= 10:30
+ (org-teach :buffer 20) ; any
+ (hyperbole :buffer 20)
+ (hywiki :buffer 20) ; >= 10:00
+ language ; <= 12:00
(lunch :start "12:00")
+ literate ; >= 13:00
casual ; >= 13:00
- learning ; >= 13:00
+ learning ; any
+ project ; any
sharing ; any
- literate ; >= 13:00
- students
- (transducers :start "16:00") ; >= 16:00 sun
(sun-close :start "16:50")
+ ("DEV Sunday, Dec 8" :start "2024-12-08 10:00" :set-track "Development")
+ pgmacs ; <= 15:00
+ graph ; <= 12:00
+ (lunch :start "12:00")
+ blee ; any
+ p-search ; any
+ secrets ; >= 13:00
+ (transducers :start "16:00") ; >= 16:00 sun
))
(setq emacsconf-schedule-draft (emacsconf-schedule-prepare (emacsconf-schedule-inflate-sexp emacsconf-schedule-plan)))
(prog1 (string-join (emacsconf-schedule-validate emacsconf-schedule-draft) "\n")
@@ -346,12 +376,194 @@ Coloring by availability:
:results:
:end:
-[[file:schedule-1.5-tracks.svg]]
+[[file:schedule-2-tracks.svg]]
Coloring by availability:
- light blue: constraint is <= a time
- peach: constraint is >= a time
+* TODO [#A] Check EmacsConf infrastructure :project:
+
+- [X] IRC
+- [ ] Streaming assets
+- [ ] Publishing to the wiki
+- [ ] Web conference
+- [ ] OBS
+- [ ] Publishing to the media server
+- [ ] Etherpad
+- [ ] Streaming
+- [ ] Toobnix
+- [ ] YouTube
+
+** WAITING [#A] bbb.emacsverse.org replacement
+DEADLINE: <2024-11-15 Fri>
+:PROPERTIES:
+:CREATED: [2024-11-02 Sat 11:38]
+:END:
+
+- Delegated to Corwin for now, will get back to stressing out about it in a couple of weeks
+- May need to spin up a Linode and either pay for it for a few weeks or figure out how to spin it down and up again
+ - [[#bbb][BigBlueButton replacement]]
+- Possibly relevant: dynamic DNS?
+ https://www.linode.com/community/questions/7945/custom-dynamic-dns
+ Can also update manually
+*** TODO Create meeting rooms for each speaker
+SCHEDULED: <2024-11-15 Fri>
+:PROPERTIES:
+:CREATED: [2024-11-02 Sat 11:50]
+:END:
+** IRC web client
+*** WAITING Ask libera.chat to increase connections allowed from chat.emacsconf.org on Dec 7 and 8
+** IRC announcements
+*** DONE Confirm manual IRC announcements
+CLOSED: [2024-11-02 Sat 12:05]
+*** TODO Confirm automated IRC announcements from res
+** Media
+
+*** TODO Switch public media to unprotected root before the conference
+SCHEDULED: <2024-11-29 Fri>
+:PROPERTIES:
+:CREATED: [2024-11-12 Tue 14:18]
+:END:
+
+1. Clear public media directory.
+2. Set =media_protect_root= to false in Ansible =group_vars/all.yml=.
+3. =ansible-playbook -i inventory.yml prod-playbook.yml --tags media=
+
+You can generate the index with =emacsconf-publish-update-media=.
+** TODO Publishing resources to the wiki
+ansible-playbook -i inventory.yml prod-playbook.yml --tags publish
+
+
+
+** TODO Publishing videos to the media server
+** Playing videos, switching to windows
+
+*** TODO Generate test videos for everything
+*** TODO Document how to get that set up again
+** Etherpad
+*** TODO Generate pads for all the talks
+*** TODO Generate the main index
+** TODO Do a dry run
+SCHEDULED: <2024-11-22 Fri>
+:PROPERTIES:
+:CREATED: [2024-11-02 Sat 11:40]
+:END:
+*** DONE Generate all the test assets
+CLOSED: [2024-11-06 Wed 18:52]
+:PROPERTIES:
+:Effort: 0:15
+:END:
+:LOGBOOK:
+CLOCK: [2024-11-06 Wed 18:47]--[2024-11-06 Wed 18:52] => 0:05
+:END:
+*** TODO Test connecting to VNC and streaming via OBS
+SCHEDULED: <2024-11-07 Thu>
+:PROPERTIES:
+:CREATED: [2024-11-06 Wed 18:52]
+:END:
+* Processes and notes
+** ERC
+
+Some convenient commands are defined in emacsconf-el:emacsconf-erc.el.
+
+| /opall | Grant operator status in the Emacsconf channels |
+| /deopall | Remove operator status in the Emacsconf channels |
+| /conftopic | Set the first part of the topic |
+
+* Decisions
+:PROPERTIES:
+:CUSTOM_ID: decisions
+:END:
+** BigBlueButton replacement
+:PROPERTIES:
+:CUSTOM_ID: bbb
+:END:
+
+The server running bbb.emacsverse.org has been decommissioned, since the nonprofit that shared it with us is defunct.
+
+- We'd like to figure out what our live Q&A setup is going to be for EmacsConf 2024 (Dec 7-8).
+- Nice to have: Hosting for other Emacs meetups like Emacs APAC and OrgMeetup
+- [[https://sachachua.com/blog/2023/12/emacsconf-backstage-figuring-out-our-maximum-number-of-simultaneous-bigbluebutton-users/][Stats from last year]]: 31 meetings, 84 unique users, 62 max simultaneous users, 6 max simultaneous meetings, 27 max users in one meeting, 36 unique talking
+ - also includes some notes on hosting
+- Nice thing about running our own server: we can make one room per speaker, pre-assign their URLs, and let people stay as long as they want in recorded Q&A sessions
+
+Recommendation:
+
+We spin up a shared CPU 4GB under bandali's Linode
+account (for bandwidth pooling and easier
+reimbursement), do the setup/testing over the next
+few weeks, scale up to dedicated CPU 16GB a day or
+two before the conference, and keep it at that
+level until the recordings are all done. I have
+access to that Linode account, so I can set it up.
+If bandali can configure emacsverse.org to be
+handled by Linode, I can manage the DNS changes,
+or he can change bbb.emacsverse.org to the IP
+address of the new node.
+
+Some options:
+
+- Linode with 16GB RAM and 8 cores
+ - Advantages: can experiment with both Galene and BBB, manage things ourselves, have filesystem access
+ - Disadvantages: needs someone to do it
+ - Base pricing
+ - Shared CPU 4GB 80GB storage: hourly USD 0.04, monthly USD 24
+ - Dedicated CPU 16GB: hourly USD 0.22, monthly USD 144 - meets minimum requirements and can probably support 200 simultaneous ([[https://docs.bigbluebutton.org/support/faq/][FAQ]])
+ - Shared CPU 8GB 160GB storage: hourly USD 0.07
+ - Shared CPU 16GB 320GB storage: hourly USD 0.14
+ - Last year
+ - Block storage: $1/10GB/month
+ - 125M/hour - [[https://docs.bigbluebutton.org/support/faq/#what-is-the-disk-space-usage-for-storing-one-hour-of-recordings][FAQ]]
+ - In 2023, we had 31 hours of trimmed recordings (main + answers),
+ - (* 31 0.125) 3.875, oh, maybe we can get away with 10GB storage and add another chunk of 10GB midway if we need it, or extend the dedicated
+ - Actually, block storage probably not needed if we're going to keep the big instance up until the recordings are done
+ - Ideas
+ - *Option A: Run a small instance continuously, scale up for the conference, pull the recordings off, spin the instance down* - est total USD 60+tax
+ - There are three weeks between now and the conference (* 0.04 24 7 3) USD 20
+ - Last year, recordings were available within three days after the conference
+ - Let's plan for a week at high capacity. (* 0.22 24 7) USD 36.96
+ - and a month of 10GB, possibly up to 30GB. USD 3
+ - That's probably small enough that it doesn't make as much sense to try to fully spin down for a week in between now and the conference (* 0.04 24 7) - which would save USD 6.72 but require figuring out backing up, etc.
+ - *Option B: Run a slightly larger shared CPU instance from now until shortly before the conference, then scale up* in case BBB does not work for installation/testing with less memory; block storage probably not needed
+ - (* 0.07 24 7 3) USD 35.28 for 8GB, total (+ 35.28 36.96) USD 72.24
+ - (* 0.14 24 7 3) USD 70.56 for 16GB, total (+ 70.56 36.96) USD 107.52
+
+- Ask FSF if we can borrow their BBB or Galene, maybe limit it to cycling among 6 or 7 rooms
+ - Waiting for feedback; Corwin has asked them
+- Pay for BigBlueButton hosting; can we find one that's compatible with our commitment to freedom?
+ - https://bigbluebutton.host/plans/#economyplans - Economy 120 (USD 130/month) or Economy 80 (USD 85/month), custom URL
+ - https://www.bigbluemeeting.com/#pricing - 100 concurrent users: USD 125/month, custom URL
+ - https://www.mynaparrot.com/affordable-bigbluebutton-hosting
+ - 100 concurrent users: USD 79/month
+ - 200 concurrent users and custom URL: USD 15 setup fee + USD 149/month
+ - https://www.webhostingzone.org/solutions/bigbluebutton-hosting.html - 150 concurrent, USD 75/month
+ - https://bbbplugin.com/en/pricing/bigbluebutton-for-api/ - 250 concurrent, USD 49 setup + USD 108.80/month
+ - https://biggerbluebutton.com/plans
+ - 150 concurrent users, 10 concurrent meetings, USD 40/month
+ - custom domain, 600 concurrent users, USD 149/month
+ - Compare with Linode pricing
+- Try to squeeze it onto res.emacsconf.org
+ - Tricky to run on a shared server; it likes to use a lot of ports and strongly recommends running it on its own server
+- Go back to using meet.jit.si?
+ - Free:
+ - Need to check speed, reliability
+ - Can send RTMP from the meeting itself
+ - [2024-11-13 Wed] I attended Ihor's
+ OrgMeetup, which he hosted on meet.jit.si. I
+ think he had bandwidth issues at some point
+ and we lost his audio. I remember we ran
+ into that problem before, too, when we used
+ Jitsi for one of the Emacsconfs. Free Jitsi
+ hosting might not be the right fit for us.
+ - Paid: USD 99/month + $0.01/min for recordings + $0.01 min (optional) for RTMP streaming
+- Galene?
+ - [2024-10-31 Thu] I checked out Galene in the last Emacs Berlin meeting. It's promising, but I think the user interface might still need a bit of work. Simple deployment (run one Go binary, I think), but muting/unmuting doesn't trigger enabling the microphone, and the chat was buggy to get to on my mobile device. Supposed to have support for raising hands.
+
+
* Support code
+:PROPERTIES:
+:CUSTOM_ID: support-code
+:END:
#+begin_src emacs-lisp
(defun my-ox-link-path (link _ info)
diff --git a/2024/organizers-notebook/schedule-1.5-tracks.svg b/2024/organizers-notebook/schedule-1.5-tracks.svg
index 7a07d55e..419c916a 100644
--- a/2024/organizers-notebook/schedule-1.5-tracks.svg
+++ b/2024/organizers-notebook/schedule-1.5-tracks.svg
@@ -1 +1 @@
-<svg width="800" height="300" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><title>Graphical view of the schedule</title><g transform="translate(0,0)"><title>Schedule for Saturday</title><rect width="800" height="150" x="0" y="0" fill="white"></rect><text font-size="10" fill="black" y="12" x="3">Saturday</text><a href="https://emacsconf.org/2024/talks/sat-open" title="Saturday opening remarks" data-slug="sat-open"><title> 9:00- 9:10 Saturday opening remarks</title><rect x="0" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="5,5,5" fill="gray"></rect><g transform="translate(13,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sat-open</text></g></a><a href="https://emacsconf.org/2024/talks/papers" title="Writing academic papers in Org-Roam" data-slug="papers"><title> 9:10- 9:20 Writing academic papers in Org-Roam</title><rect x="15" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="" fill="lightblue"></rect><g transform="translate(28,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">papers</text></g></a><a href="https://emacsconf.org/2024/talks/links" title="Unlocking linked data: replacing specialized apps with an Org-based semantic wiki" data-slug="links"><title> 9:40- 9:50 Unlocking linked data: replacing specialized apps with an Org-based semantic wiki</title><rect x="62" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="5,5,5" fill="lightblue"></rect><g transform="translate(75,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">links</text></g></a><a href="https://emacsconf.org/2024/talks/org-teach" title="org-teach: a minor mode for writing course materials in Emacs" data-slug="org-teach"><title>10:00-10:20 org-teach: a minor mode for writing course materials in Emacs</title><rect x="94" y="15" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="gray"></rect><g transform="translate(123,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">org-teach</text></g></a><a href="https://emacsconf.org/2024/talks/language" title="Immersive language learning with Emacs" data-slug="language"><title>10:40-10:50 Immersive language learning with Emacs</title><rect x="156" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="5,5,5" fill="lightblue"></rect><g transform="translate(169,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">language</text></g></a><a href="https://emacsconf.org/2024/talks/hyperdrive" title="New in hyperdrive.el: org-transclusion, easy installation, and more!" data-slug="hyperdrive"><title>11:00-11:20 New in hyperdrive.el: org-transclusion, easy installation, and more!</title><rect x="188" y="15" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(217,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">hyperdrive</text></g></a><a href="https://emacsconf.org/2024/talks/color" title="Colour your Emacs with ease" data-slug="color"><title>11:40-11:50 Colour your Emacs with ease</title><rect x="250" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="" fill="lightblue"></rect><g transform="translate(263,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">color</text></g></a><a href="https://emacsconf.org/2024/talks/emacs30" title="Emacs 30 Highlights" data-slug="emacs30"><title> 1:00- 1:20 Emacs 30 Highlights</title><rect x="376" y="15" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="gray"></rect><g transform="translate(405,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">emacs30</text></g></a><a href="https://emacsconf.org/2024/talks/water" title="Watering my (digital) plant with Emacs timers" data-slug="water"><title> 1:40- 1:50 Watering my (digital) plant with Emacs timers</title><rect x="439" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="5,5,5" fill="gray"></rect><g transform="translate(452,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">water</text></g></a><a href="https://emacsconf.org/2024/talks/shell" title="Emacs as a shell" data-slug="shell"><title> 2:00- 2:40 Emacs as a shell</title><rect x="470" y="15" opacity="0.8" width="62" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(530,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">shell</text></g></a><a href="https://emacsconf.org/2024/talks/theme" title="My journey of finding and creating the “perfect” Emacs theme" data-slug="theme"><title> 2:50- 3:00 My journey of finding and creating the “perfect” Emacs theme</title><rect x="549" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(562,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">theme</text></g></a><a href="https://emacsconf.org/2024/talks/flp" title="The Free Life Planner: Empowering lives with Emacs-based AI" data-slug="flp"><title> 3:20- 3:40 The Free Life Planner: Empowering lives with Emacs-based AI</title><rect x="596" y="15" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="5,5,5" fill="gray"></rect><g transform="translate(625,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">flp</text></g></a><a href="https://emacsconf.org/2024/talks/writing" title="Emacs Writing Studio" data-slug="writing"><title> 3:50- 4:00 Emacs Writing Studio</title><rect x="643" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(656,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">writing</text></g></a><a href="https://emacsconf.org/2024/talks/sat-close" title="Saturday closing remarks" data-slug="sat-close"><title> 4:50- 5:00 Saturday closing remarks</title><rect x="737" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="5,5,5" fill="gray"></rect><g transform="translate(750,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sat-close</text></g></a><a href="https://emacsconf.org/2024/talks/gypsum" title="Gypsum: my clone of Emacs and ELisp written in Scheme" data-slug="gypsum"><title>10:00-10:20 Gypsum: my clone of Emacs and ELisp written in Scheme</title><rect x="94" y="75" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="lightblue"></rect><g transform="translate(123,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">gypsum</text></g></a><a href="https://emacsconf.org/2024/talks/rust" title="An experimental Emacs core in Rust" data-slug="rust"><title>10:40-11:00 An experimental Emacs core in Rust</title><rect x="156" y="75" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="gray"></rect><g transform="translate(185,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">rust</text></g></a><a href="https://emacsconf.org/2024/talks/graph" title="Graph mode: a major mode to create, edit and display discrete element graphs" data-slug="graph"><title>11:20-11:40 Graph mode: a major mode to create, edit and display discrete element graphs</title><rect x="219" y="75" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="gray"></rect><g transform="translate(248,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">graph</text></g></a><a href="https://emacsconf.org/2024/talks/julia" title="Exploring shared philosophies in Julia and Emacs" data-slug="julia"><title> 1:00- 1:05 Exploring shared philosophies in Julia and Emacs</title><rect x="376" y="75" opacity="0.8" width="7" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(381,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">julia</text></g></a><a href="https://emacsconf.org/2024/talks/guile" title="Beguiling Emacs: Guile-Emacs relaunched!" data-slug="guile"><title> 1:25- 1:45 Beguiling Emacs: Guile-Emacs relaunched!</title><rect x="415" y="75" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(444,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">guile</text></g></a><a href="https://emacsconf.org/2024/talks/regex" title="Emacs regex compilation and future directions for expressive pattern matching" data-slug="regex"><title> 1:55- 2:15 Emacs regex compilation and future directions for expressive pattern matching</title><rect x="462" y="75" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="5,5,5" fill="lightblue"></rect><g transform="translate(491,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">regex</text></g></a><a href="https://emacsconf.org/2024/talks/mcclim" title="Elisp and McCLIM" data-slug="mcclim"><title> 2:25- 3:25 Elisp and McCLIM</title><rect x="509" y="75" opacity="0.8" width="94" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(601,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">mcclim</text></g></a><a href="https://emacsconf.org/2024/talks/secrets" title="Committing secrets with git using sops-mode" data-slug="secrets"><title> 3:45- 3:55 Committing secrets with git using sops-mode</title><rect x="635" y="75" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(648,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">secrets</text></g></a><a href="https://emacsconf.org/2024/talks/repro" title="Reproducibly building Emacs: “Hey your checksum is the same as mine!”" data-slug="repro"><title> 4:15- 4:35 Reproducibly building Emacs: “Hey your checksum is the same as mine!”</title><rect x="682" y="75" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="gray"></rect><g transform="translate(711,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">repro</text></g></a><g transform="translate(0,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">9 AM</text></g><g transform="translate(94,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">10 AM</text></g><g transform="translate(188,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">11 AM</text></g><g transform="translate(282,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">12 PM</text></g><g transform="translate(376,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">1 PM</text></g><g transform="translate(470,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">2 PM</text></g><g transform="translate(564,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">3 PM</text></g><g transform="translate(658,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">4 PM</text></g><g transform="translate(752,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">5 PM</text></g></g><g transform="translate(0,150)"><title>Schedule for Sunday</title><rect width="800" height="150" x="0" y="0" fill="white"></rect><text font-size="10" fill="black" y="12" x="3">Sunday</text><a href="https://emacsconf.org/2024/talks/sun-open" title="Sunday opening remarks" data-slug="sun-open"><title> 9:00- 9:10 Sunday opening remarks</title><rect x="0" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="5,5,5" fill="gray"></rect><g transform="translate(13,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sun-open</text></g></a><a href="https://emacsconf.org/2024/talks/pgmacs" title="PGmacs: browsing and editing PostgreSQL databases from Emacs" data-slug="pgmacs"><title> 9:10- 9:20 PGmacs: browsing and editing PostgreSQL databases from Emacs</title><rect x="15" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="" fill="lightblue"></rect><g transform="translate(28,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">pgmacs</text></g></a><a href="https://emacsconf.org/2024/talks/p-search" title="p-search: a local search engine in Emacs" data-slug="p-search"><title> 9:40-10:00 p-search: a local search engine in Emacs</title><rect x="62" y="15" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="gray"></rect><g transform="translate(91,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">p-search</text></g></a><a href="https://emacsconf.org/2024/talks/hyperbole" title="Fun things with GNU Hyperbole" data-slug="hyperbole"><title>10:20-10:30 Fun things with GNU Hyperbole</title><rect x="125" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="" fill="lightblue"></rect><g transform="translate(138,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">hyperbole</text></g></a><a href="https://emacsconf.org/2024/talks/hywiki" title="HyWiki: Fast, hyperlinked note-taking with no markup required" data-slug="hywiki"><title>10:50-11:10 HyWiki: Fast, hyperlinked note-taking with no markup required</title><rect x="172" y="15" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(201,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">hywiki</text></g></a><a href="https://emacsconf.org/2024/talks/project" title="Managing writing project metadata with org-mode" data-slug="project"><title>11:30-11:50 Managing writing project metadata with org-mode</title><rect x="235" y="15" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="gray"></rect><g transform="translate(264,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">project</text></g></a><a href="https://emacsconf.org/2024/talks/blee" title="About Blee: towards an integrated Emacs environment for enveloping our own autonomy directed digital ecosystem" data-slug="blee"><title>12:10-12:30 About Blee: towards an integrated Emacs environment for enveloping our own autonomy directed digital ecosystem</title><rect x="298" y="15" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="gray"></rect><g transform="translate(327,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">blee</text></g></a><a href="https://emacsconf.org/2024/talks/casual" title="Re-imagining the Emacs user experience with Casual Suite" data-slug="casual"><title> 1:00- 1:20 Re-imagining the Emacs user experience with Casual Suite</title><rect x="376" y="15" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(405,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">casual</text></g></a><a href="https://emacsconf.org/2024/talks/learning" title="Survival of the skillest: Thriving in the learning jungle" data-slug="learning"><title> 1:40- 2:00 Survival of the skillest: Thriving in the learning jungle</title><rect x="439" y="15" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(468,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">learning</text></g></a><a href="https://emacsconf.org/2024/talks/sharing" title="So you want to be an Emacs-fluencer?" data-slug="sharing"><title> 2:10- 2:30 So you want to be an Emacs-fluencer?</title><rect x="486" y="15" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(515,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sharing</text></g></a><a href="https://emacsconf.org/2024/talks/literate" title="Literate programming for the 21st Century" data-slug="literate"><title> 2:40- 3:00 Literate programming for the 21st Century</title><rect x="533" y="15" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(562,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">literate</text></g></a><a href="https://emacsconf.org/2024/talks/students" title="An example of a cohesive student workflow in Emacs" data-slug="students"><title> 3:20- 3:30 An example of a cohesive student workflow in Emacs</title><rect x="596" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(609,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">students</text></g></a><a href="https://emacsconf.org/2024/talks/transducers" title="Transducers: finally, ergonomic data processing for Emacs!" data-slug="transducers"><title> 4:00- 4:30 Transducers: finally, ergonomic data processing for Emacs!</title><rect x="658" y="15" opacity="0.8" width="47" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(703,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">transducers</text></g></a><a href="https://emacsconf.org/2024/talks/sun-close" title="Sunday closing remarks" data-slug="sun-close"><title> 4:50- 5:00 Sunday closing remarks</title><rect x="737" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="5,5,5" fill="gray"></rect><g transform="translate(750,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sun-close</text></g></a><g transform="translate(0,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">9 AM</text></g><g transform="translate(94,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">10 AM</text></g><g transform="translate(188,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">11 AM</text></g><g transform="translate(282,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">12 PM</text></g><g transform="translate(376,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">1 PM</text></g><g transform="translate(470,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">2 PM</text></g><g transform="translate(564,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">3 PM</text></g><g transform="translate(658,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">4 PM</text></g><g transform="translate(752,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">5 PM</text></g></g></svg> \ No newline at end of file
+<svg width="800" height="300" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><title>Graphical view of the schedule</title><g transform="translate(0,0)"><title>Schedule for Saturday</title><rect width="800" height="150" x="0" y="0" fill="white"></rect><text font-size="10" fill="black" y="12" x="3">Saturday</text><a href="https://emacsconf.org/2024/talks/sat-open" title="Saturday opening remarks" data-slug="sat-open"><title> 9:00- 9:10 Saturday opening remarks</title><rect x="0" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="5,5,5" fill="gray"></rect><g transform="translate(13,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sat-open</text></g></a><a href="https://emacsconf.org/2024/talks/papers" title="Writing academic papers in Org-Roam" data-slug="papers"><title> 9:10- 9:20 Writing academic papers in Org-Roam</title><rect x="15" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="" fill="lightblue"></rect><g transform="translate(28,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">papers</text></g></a><a href="https://emacsconf.org/2024/talks/project" title="Managing writing project metadata with org-mode" data-slug="project"><title> 9:40-10:00 Managing writing project metadata with org-mode</title><rect x="62" y="15" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="gray"></rect><g transform="translate(91,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">project</text></g></a><a href="https://emacsconf.org/2024/talks/org-update" title="The Future of Org" data-slug="org-update"><title>10:20-10:40 The Future of Org</title><rect x="125" y="15" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="lightblue"></rect><g transform="translate(154,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">org-update</text></g></a><a href="https://emacsconf.org/2024/talks/color" title="Colour your Emacs with ease" data-slug="color"><title>11:00-11:10 Colour your Emacs with ease</title><rect x="188" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="" fill="lightblue"></rect><g transform="translate(201,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">color</text></g></a><a href="https://emacsconf.org/2024/talks/theme" title="My journey of finding and creating the “perfect” Emacs theme" data-slug="theme"><title> 1:00- 1:10 My journey of finding and creating the “perfect” Emacs theme</title><rect x="376" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(389,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">theme</text></g></a><a href="https://emacsconf.org/2024/talks/water" title="Watering my (digital) plant with Emacs timers" data-slug="water"><title> 1:30- 1:45 Watering my (digital) plant with Emacs timers</title><rect x="423" y="15" opacity="0.8" width="23" height="59" stroke="black" stroke-dasharray="5,5,5" fill="gray"></rect><g transform="translate(444,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">water</text></g></a><a href="https://emacsconf.org/2024/talks/shell" title="Emacs as a shell" data-slug="shell"><title> 1:55- 2:35 Emacs as a shell</title><rect x="462" y="15" opacity="0.8" width="62" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(522,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">shell</text></g></a><a href="https://emacsconf.org/2024/talks/casual" title="Re-imagining the Emacs user experience with Casual Suite" data-slug="casual"><title> 2:45- 3:05 Re-imagining the Emacs user experience with Casual Suite</title><rect x="541" y="15" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(570,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">casual</text></g></a><a href="https://emacsconf.org/2024/talks/hyperdrive" title="New in hyperdrive.el: org-transclusion, easy installation, and more!" data-slug="hyperdrive"><title> 3:25- 3:45 New in hyperdrive.el: org-transclusion, easy installation, and more!</title><rect x="603" y="15" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(632,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">hyperdrive</text></g></a><a href="https://emacsconf.org/2024/talks/writing" title="Emacs Writing Studio" data-slug="writing"><title> 4:05- 4:15 Emacs Writing Studio</title><rect x="666" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(679,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">writing</text></g></a><a href="https://emacsconf.org/2024/talks/emacs30" title="Emacs 30 Highlights" data-slug="emacs30"><title> 4:25- 4:50 Emacs 30 Highlights</title><rect x="698" y="15" opacity="0.8" width="39" height="59" stroke="black" stroke-dasharray="" fill="gray"></rect><g transform="translate(735,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">emacs30</text></g></a><a href="https://emacsconf.org/2024/talks/sat-close" title="Saturday closing remarks" data-slug="sat-close"><title> 5:00- 5:10 Saturday closing remarks</title><rect x="752" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="5,5,5" fill="gray"></rect><g transform="translate(765,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sat-close</text></g></a><a href="https://emacsconf.org/2024/talks/gypsum" title="Gypsum: my clone of Emacs and ELisp written in Scheme" data-slug="gypsum"><title>10:00-10:20 Gypsum: my clone of Emacs and ELisp written in Scheme</title><rect x="94" y="75" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="lightblue"></rect><g transform="translate(123,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">gypsum</text></g></a><a href="https://emacsconf.org/2024/talks/rust" title="An experimental Emacs core in Rust" data-slug="rust"><title>10:40-11:00 An experimental Emacs core in Rust</title><rect x="156" y="75" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="gray"></rect><g transform="translate(185,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">rust</text></g></a><a href="https://emacsconf.org/2024/talks/p-search" title="p-search: a local search engine in Emacs" data-slug="p-search"><title>11:20-11:45 p-search: a local search engine in Emacs</title><rect x="219" y="75" opacity="0.8" width="39" height="59" stroke="black" stroke-dasharray="" fill="gray"></rect><g transform="translate(256,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">p-search</text></g></a><a href="https://emacsconf.org/2024/talks/julia" title="Exploring shared philosophies in Julia and Emacs" data-slug="julia"><title> 1:00- 1:10 Exploring shared philosophies in Julia and Emacs</title><rect x="376" y="75" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(389,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">julia</text></g></a><a href="https://emacsconf.org/2024/talks/guile" title="Beguiling Emacs: Guile-Emacs relaunched!" data-slug="guile"><title> 1:25- 1:45 Beguiling Emacs: Guile-Emacs relaunched!</title><rect x="415" y="75" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(444,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">guile</text></g></a><a href="https://emacsconf.org/2024/talks/secrets" title="Committing secrets with git using sops-mode" data-slug="secrets"><title> 1:55- 2:05 Committing secrets with git using sops-mode</title><rect x="462" y="75" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(475,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">secrets</text></g></a><a href="https://emacsconf.org/2024/talks/mcclim" title="Elisp and McCLIM" data-slug="mcclim"><title> 2:25- 3:25 Elisp and McCLIM</title><rect x="509" y="75" opacity="0.8" width="94" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(601,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">mcclim</text></g></a><a href="https://emacsconf.org/2024/talks/repro" title="Reproducibly building Emacs: “Hey your checksum is the same as mine!”" data-slug="repro"><title> 3:45- 4:05 Reproducibly building Emacs: “Hey your checksum is the same as mine!”</title><rect x="635" y="75" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="gray"></rect><g transform="translate(664,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">repro</text></g></a><g transform="translate(0,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">9 AM</text></g><g transform="translate(94,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">10 AM</text></g><g transform="translate(188,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">11 AM</text></g><g transform="translate(282,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">12 PM</text></g><g transform="translate(376,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">1 PM</text></g><g transform="translate(470,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">2 PM</text></g><g transform="translate(564,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">3 PM</text></g><g transform="translate(658,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">4 PM</text></g><g transform="translate(752,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">5 PM</text></g></g><g transform="translate(0,150)"><title>Schedule for Sunday</title><rect width="800" height="150" x="0" y="0" fill="white"></rect><text font-size="10" fill="black" y="12" x="3">Sunday</text><a href="https://emacsconf.org/2024/talks/sun-open" title="Sunday opening remarks" data-slug="sun-open"><title> 9:00- 9:10 Sunday opening remarks</title><rect x="0" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="5,5,5" fill="gray"></rect><g transform="translate(13,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sun-open</text></g></a><a href="https://emacsconf.org/2024/talks/links" title="Unlocking linked data: replacing specialized apps with an Org-based semantic wiki" data-slug="links"><title> 9:10- 9:20 Unlocking linked data: replacing specialized apps with an Org-based semantic wiki</title><rect x="15" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="5,5,5" fill="lightblue"></rect><g transform="translate(28,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">links</text></g></a><a href="https://emacsconf.org/2024/talks/regex" title="Emacs regex compilation and future directions for expressive pattern matching" data-slug="regex"><title> 9:30- 9:50 Emacs regex compilation and future directions for expressive pattern matching</title><rect x="47" y="15" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="5,5,5" fill="lightblue"></rect><g transform="translate(76,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">regex</text></g></a><a href="https://emacsconf.org/2024/talks/learning" title="Survival of the skillest: Thriving in the learning jungle" data-slug="learning"><title>10:00-10:20 Survival of the skillest: Thriving in the learning jungle</title><rect x="94" y="15" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="5,5,5" fill="lightblue"></rect><g transform="translate(123,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">learning</text></g></a><a href="https://emacsconf.org/2024/talks/language" title="Immersive language learning with Emacs" data-slug="language"><title>10:30-10:40 Immersive language learning with Emacs</title><rect x="141" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="5,5,5" fill="lightblue"></rect><g transform="translate(154,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">language</text></g></a><a href="https://emacsconf.org/2024/talks/org-teach" title="org-teach: a minor mode for writing course materials in Emacs" data-slug="org-teach"><title>10:50-11:10 org-teach: a minor mode for writing course materials in Emacs</title><rect x="172" y="15" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="gray"></rect><g transform="translate(201,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">org-teach</text></g></a><a href="https://emacsconf.org/2024/talks/hyperbole" title="Fun things with GNU Hyperbole" data-slug="hyperbole"><title>11:25-11:40 Fun things with GNU Hyperbole</title><rect x="227" y="15" opacity="0.8" width="23" height="59" stroke="black" stroke-dasharray="" fill="lightblue"></rect><g transform="translate(248,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">hyperbole</text></g></a><a href="https://emacsconf.org/2024/talks/hywiki" title="HyWiki: Fast, hyperlinked note-taking with no markup required" data-slug="hywiki"><title> 1:00- 1:20 HyWiki: Fast, hyperlinked note-taking with no markup required</title><rect x="376" y="15" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(405,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">hywiki</text></g></a><a href="https://emacsconf.org/2024/talks/pgmacs" title="PGmacs: browsing and editing PostgreSQL databases from Emacs" data-slug="pgmacs"><title> 1:35- 1:50 PGmacs: browsing and editing PostgreSQL databases from Emacs</title><rect x="431" y="15" opacity="0.8" width="23" height="59" stroke="black" stroke-dasharray="" fill="lightblue"></rect><g transform="translate(452,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">pgmacs</text></g></a><a href="https://emacsconf.org/2024/talks/blee" title="About Blee: enveloping our own autonomy directed digital ecosystem with Emacs" data-slug="blee"><title> 2:05- 2:45 About Blee: enveloping our own autonomy directed digital ecosystem with Emacs</title><rect x="478" y="15" opacity="0.8" width="62" height="59" stroke="black" stroke-dasharray="" fill="gray"></rect><g transform="translate(538,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">blee</text></g></a><a href="https://emacsconf.org/2024/talks/literate" title="Literate programming for the 21st Century" data-slug="literate"><title> 2:55- 3:15 Literate programming for the 21st Century</title><rect x="556" y="15" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(585,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">literate</text></g></a><a href="https://emacsconf.org/2024/talks/students" title="An example of a cohesive student workflow in Emacs" data-slug="students"><title> 3:30- 3:40 An example of a cohesive student workflow in Emacs</title><rect x="611" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(624,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">students</text></g></a><a href="https://emacsconf.org/2024/talks/sharing" title="So you want to be an Emacs-fluencer?" data-slug="sharing"><title> 3:50- 4:10 So you want to be an Emacs-fluencer?</title><rect x="643" y="15" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(672,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sharing</text></g></a><a href="https://emacsconf.org/2024/talks/transducers" title="Transducers: finally, ergonomic data processing for Emacs!" data-slug="transducers"><title> 4:20- 4:50 Transducers: finally, ergonomic data processing for Emacs!</title><rect x="690" y="15" opacity="0.8" width="47" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(735,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">transducers</text></g></a><a href="https://emacsconf.org/2024/talks/sun-close" title="Sunday closing remarks" data-slug="sun-close"><title> 5:00- 5:10 Sunday closing remarks</title><rect x="752" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="5,5,5" fill="gray"></rect><g transform="translate(765,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sun-close</text></g></a><g transform="translate(0,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">9 AM</text></g><g transform="translate(94,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">10 AM</text></g><g transform="translate(188,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">11 AM</text></g><g transform="translate(282,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">12 PM</text></g><g transform="translate(376,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">1 PM</text></g><g transform="translate(470,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">2 PM</text></g><g transform="translate(564,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">3 PM</text></g><g transform="translate(658,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">4 PM</text></g><g transform="translate(752,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">5 PM</text></g></g></svg> \ No newline at end of file
diff --git a/2024/qa.md b/2024/qa.md
new file mode 100644
index 00000000..48e24898
--- /dev/null
+++ b/2024/qa.md
@@ -0,0 +1,43 @@
+[[!meta title="Q&A participation"]]
+[[!meta copyright="Copyright &copy; 2022-2023 Sacha Chua"]]
+
+# BigBlueButton
+
+## Notes for participants
+
+- You can ask questions via the text chat or by voice. Voice and webcam are totally optional.
+- Please stay muted until it's your turn.
+- To raise your hand:
+ 1. Open the participant list. If it's hidden, use the person icon in the top left.
+ 2. Click on your name.
+ 3. Click on **Set Status** - **Raise**.
+ You can lower your hand by clicking on your name and choosing **Clear Status**.
+- Headphone or earphones can help avoid audio feedback.
+- If performance is slow, please keep your webcam off.
+- The recording of this session will be posted on the talk page. We'll
+ also copy questions, answers, and notes from the text chat.
+ Everything will be shared under the Creative Commons
+ Attribution-ShareAlike 4.0 License.
+- If you can, please add questions, answers, and notes to the
+ Etherpad. The URL for the Etherpad is on the talk page.
+- Please follow <https://emacsconf.org/conduct> guidelines.
+- If something should be omitted from the recording, put a NOTE in the
+ chat and explain what the organizers should do.
+
+## Notes for the speaker
+
+- You can answer questions in whatever order you want.
+- You can skip questions or take your time to think about them.
+- Please read the questions out loud before answering. This makes it
+ easier to save the questions and answers afterwards.
+- We'll let you know when the stream is going to move on to the next
+ talk. Even after the streamer switches over to the next talk, you
+ can still stay and chat here for as long as you like. When you're
+ done, you can wrap up and leave.
+- If something should be omitted from the recording, put a NOTE in the
+ chat and explain what the organizers should do.
+
+# IRC
+
+- If you add "Q: " as a prefix when asking a question (ex: "Q: Could you please give more details on ..."), it will be easier for us to notice your question.
+- If you are discussing a previous talk after the next talk starts, you may want to add the talk ID to your message to make it clearer. (ex: "re:devel I think ...")
diff --git a/2024/schedule-details.md b/2024/schedule-details.md
index b078a553..59061b4f 100644
--- a/2024/schedule-details.md
+++ b/2024/schedule-details.md
@@ -1,39 +1,56 @@
-Jump to: <a href="#dev">Development</a>
+Times below are in US/Eastern (GMT-0500). If you have Javascript enabled, clicking on talk pages should include times in your computer's local time setting.
-<h1 id="gen" class="sched-track General">General (23 talks)</h1>
-[[!template id=sched title="""Writing academic papers in Org-Roam""" url="""/2024/talks/papers""" speakers="""Vincent Conus""" watch="""https://emacsconf.org/2024/watch/gen""" slug="""papers""" note=""""""]]
-[[!template id=sched title="""Unlocking linked data: replacing specialized apps with an Org-based semantic wiki""" url="""/2024/talks/links""" speakers="""Abhinav Tushar""" watch="""https://emacsconf.org/2024/watch/gen""" slug="""links""" note=""""""]]
-[[!template id=sched title="""org-teach: a minor mode for writing course materials in Emacs""" url="""/2024/talks/org-teach""" speakers="""James Endres Howell""" watch="""https://emacsconf.org/2024/watch/gen""" slug="""org-teach""" note=""""""]]
-[[!template id=sched title="""Immersive language learning with Emacs""" url="""/2024/talks/language""" speakers="""Sebastian Dümcke""" watch="""https://emacsconf.org/2024/watch/gen""" slug="""language""" note=""""""]]
-[[!template id=sched title="""New in hyperdrive.el: org-transclusion, easy installation, and more!""" url="""/2024/talks/hyperdrive""" speakers="""Joseph Turner""" watch="""https://emacsconf.org/2024/watch/gen""" slug="""hyperdrive""" note=""""""]]
-[[!template id=sched title="""Colour your Emacs with ease""" url="""/2024/talks/color""" speakers="""Ryota""" watch="""https://emacsconf.org/2024/watch/gen""" slug="""color""" note=""""""]]
-[[!template id=sched title="""Watering my (digital) plant with Emacs timers""" url="""/2024/talks/water""" speakers="""Christopher Howard""" watch="""https://emacsconf.org/2024/watch/gen""" slug="""water""" note=""""""]]
-[[!template id=sched title="""Emacs as a shell""" url="""/2024/talks/shell""" speakers="""Christopher Howard""" watch="""https://emacsconf.org/2024/watch/gen""" slug="""shell""" note=""""""]]
-[[!template id=sched title="""My journey of finding and creating the “perfect” Emacs theme""" url="""/2024/talks/theme""" speakers="""MetroWind""" watch="""https://emacsconf.org/2024/watch/gen""" slug="""theme""" note=""""""]]
-[[!template id=sched title="""The Free Life Planner: Empowering lives with Emacs-based AI""" url="""/2024/talks/flp""" speakers="""Andrew Dougherty""" watch="""https://emacsconf.org/2024/watch/gen""" slug="""flp""" note=""""""]]
-[[!template id=sched title="""Emacs Writing Studio""" url="""/2024/talks/writing""" speakers="""Peter Prevos""" watch="""https://emacsconf.org/2024/watch/gen""" slug="""writing""" note=""""""]]
-[[!template id=sched title="""PGmacs: browsing and editing PostgreSQL databases from Emacs""" url="""/2024/talks/pgmacs""" speakers="""Eric Marsden""" watch="""https://emacsconf.org/2024/watch/dev""" slug="""pgmacs""" note=""""""]]
-[[!template id=sched title="""p-search: a local search engine in Emacs""" url="""/2024/talks/p-search""" speakers="""Zac Romero""" watch="""https://emacsconf.org/2024/watch/gen""" slug="""p-search""" note=""""""]]
-[[!template id=sched title="""Fun things with GNU Hyperbole""" url="""/2024/talks/hyperbole""" speakers="""Mats Lidell""" watch="""https://emacsconf.org/2024/watch/gen""" slug="""hyperbole""" note=""""""]]
-[[!template id=sched title="""HyWiki: Fast, hyperlinked note-taking with no markup required""" url="""/2024/talks/hywiki""" speakers="""Bob Weiner""" watch="""https://emacsconf.org/2024/watch/gen""" slug="""hywiki""" note=""""""]]
-[[!template id=sched title="""Managing writing project metadata with org-mode""" url="""/2024/talks/project""" speakers="""Blaine Mooers""" watch="""https://emacsconf.org/2024/watch/gen""" slug="""project""" note=""""""]]
-[[!template id=sched title="""About Blee: towards an integrated Emacs environment for enveloping our own autonomy directed digital ecosystem""" url="""/2024/talks/blee""" speakers="""Mohsen BANAN""" watch="""https://emacsconf.org/2024/watch/gen""" slug="""blee""" note=""""""]]
-[[!template id=sched title="""Re-imagining the Emacs user experience with Casual Suite""" url="""/2024/talks/casual""" speakers="""Charles Choi""" watch="""https://emacsconf.org/2024/watch/gen""" slug="""casual""" note=""""""]]
-[[!template id=sched title="""Survival of the skillest: Thriving in the learning jungle""" url="""/2024/talks/learning""" speakers="""Bala Ramadurai""" watch="""https://emacsconf.org/2024/watch/gen""" slug="""learning""" note=""""""]]
-[[!template id=sched title="""So you want to be an Emacs-fluencer?""" url="""/2024/talks/sharing""" speakers="""Gopar""" watch="""https://emacsconf.org/2024/watch/gen""" slug="""sharing""" note=""""""]]
-[[!template id=sched title="""Literate programming for the 21st Century""" url="""/2024/talks/literate""" speakers="""Howard Abrams""" watch="""https://emacsconf.org/2024/watch/dev""" slug="""literate""" note=""""""]]
-[[!template id=sched title="""An example of a cohesive student workflow in Emacs""" url="""/2024/talks/students""" speakers="""Daniel Pinkston""" watch="""https://emacsconf.org/2024/watch/gen""" slug="""students""" note=""""""]]
-[[!template id=sched title="""Transducers: finally, ergonomic data processing for Emacs!""" url="""/2024/talks/transducers""" speakers="""Colin Woodbury""" watch="""https://emacsconf.org/2024/watch/dev""" slug="""transducers""" note=""""""]]
+[[!inline pages="internal(2024/schedule-image)" raw="yes"]]
-Jump to: <a href="#gen">General</a>
+The conference is from ~9:00 AM - 5:00 PM EST (US/Eastern) / ~8:00 AM - 4:00 PM CST (US/Central) / ~7:00 AM - 3:00 PM MST (US/Mountain) / ~6:00 AM - 2:00 PM PST (US/Pacific) / ~2:00 PM - 10:00 PM UTC / ~3:00 PM - 11:00 PM CET (Europe/Paris) / ~4:00 PM - 12:00 AM EET (Europe/Athens) / ~7:30 PM - 3:30 AM IST (Asia/Kolkata) / ~10:00 PM - 6:00 AM +08 (Asia/Singapore) / ~11:00 PM - 7:00 AM JST (Asia/Tokyo).
-<h1 id="dev" class="sched-track Development">Development (9 talks)</h1>
-[[!template id=sched title="""Gypsum: my clone of Emacs and ELisp written in Scheme""" url="""/2024/talks/gypsum""" speakers="""Ramin Honary""" watch="""https://emacsconf.org/2024/watch/dev""" slug="""gypsum""" note=""""""]]
-[[!template id=sched title="""An experimental Emacs core in Rust""" url="""/2024/talks/rust""" speakers="""Troy Hinckley""" watch="""https://emacsconf.org/2024/watch/dev""" slug="""rust""" note=""""""]]
-[[!template id=sched title="""Graph mode: a major mode to create, edit and display discrete element graphs""" url="""/2024/talks/graph""" speakers="""John Darrington""" watch="""https://emacsconf.org/2024/watch/dev""" slug="""graph""" note=""""""]]
-[[!template id=sched title="""Exploring shared philosophies in Julia and Emacs""" url="""/2024/talks/julia""" speakers="""Gabriele Bozzola""" watch="""https://emacsconf.org/2024/watch/gen""" slug="""julia""" note=""""""]]
-[[!template id=sched title="""Beguiling Emacs: Guile-Emacs relaunched!""" url="""/2024/talks/guile""" speakers="""Robin Templeton""" watch="""https://emacsconf.org/2024/watch/gen""" slug="""guile""" note=""""""]]
-[[!template id=sched title="""Emacs regex compilation and future directions for expressive pattern matching""" url="""/2024/talks/regex""" speakers="""Danny McClanahan""" watch="""https://emacsconf.org/2024/watch/dev""" slug="""regex""" note=""""""]]
-[[!template id=sched title="""Elisp and McCLIM""" url="""/2024/talks/mcclim""" speakers="""screwlisp""" watch="""https://emacsconf.org/2024/watch/gen""" slug="""mcclim""" note=""""""]]
-[[!template id=sched title="""Committing secrets with git using sops-mode""" url="""/2024/talks/secrets""" speakers="""Jonathan Otsuka""" watch="""https://emacsconf.org/2024/watch/gen""" slug="""secrets""" note=""""""]]
-[[!template id=sched title="""Reproducibly building Emacs: “Hey your checksum is the same as mine!”""" url="""/2024/talks/repro""" speakers="""Aaron Grothe""" watch="""https://emacsconf.org/2024/watch/dev""" slug="""repro""" note=""""""]] \ No newline at end of file
+You can also get this schedule as iCalendar files: <a href="https://media.emacsconf.org/2024/emacsconf.ics">emacsconf.ics</a> - <a href="https://media.emacsconf.org/2024/emacsconf-gen.ics">emacsconf-gen.ics</a> - <a href="https://media.emacsconf.org/2024/emacsconf-dev.ics">emacsconf-dev.ics</a>. Importing that into your calendar should translate things into your local time zone. Alternatively, you can use these time-zone-translated Org files: <https://media.emacsconf.org/2024/schedules/>
+
+Jump to: <a href="#date-2024-12-07">Sat Dec 7</a> - <a href="#date-2024-12-08">Sun Dec 8</a><a name="date-2024-12-07"></a>
+# Saturday Dec 7, 2024
+[[!inline pages="internal(2024/schedule-2024-12-07)" raw="yes"]]
+
+<div class="schedule" data-start="2024-12-07T14:00:00+0000" data-end="2024-12-07T22:30:00+0000" data-tracks="General,Development">
+[[!template id=sched time="""10""" q-and-a="""<a href="https://pad.emacsconf.org/2024-sat-open">Etherpad</a>""" startutc="""2024-12-07T14:00:00+0000""" endutc="""2024-12-07T14:10:00+0000""" start="""9:00""" end="""9:10""" title="""Saturday opening remarks""" url="""/2024/talks/sat-open""" track="""General""" watch="""https://emacsconf.org/2024/watch/gen""" slug="""sat-open""" note=""""""]]
+[[!template id=sched time="""10""" q-and-a="""<a href="https://media.emacsconf.org/2024/current/bbb-papers.html">BBB</a>""" startutc="""2024-12-07T14:10:00+0000""" endutc="""2024-12-07T14:20:00+0000""" start="""9:10""" end="""9:20""" title="""Writing academic papers in Org-Roam""" url="""/2024/talks/papers""" speakers="""Vincent Conus""" track="""General""" watch="""https://emacsconf.org/2024/watch/gen""" slug="""papers""" note="""captioned, video: 10:07"""]]
+[[!template id=sched time="""20""" q-and-a="""<a href="https://media.emacsconf.org/2024/current/bbb-project.html">BBB</a>""" startutc="""2024-12-07T14:40:00+0000""" endutc="""2024-12-07T15:00:00+0000""" start="""9:40""" end="""10:00""" title="""Managing writing project metadata with org-mode""" url="""/2024/talks/project""" speakers="""Blaine Mooers""" track="""General""" watch="""https://emacsconf.org/2024/watch/gen""" slug="""project""" note="""captioned, video: 21:38"""]]
+[[!template id=sched time="""20""" q-and-a="""<a href="https://media.emacsconf.org/2024/current/bbb-gypsum.html">BBB</a>""" startutc="""2024-12-07T15:00:00+0000""" endutc="""2024-12-07T15:20:00+0000""" start="""10:00""" end="""10:20""" title="""Gypsum: my clone of Emacs and ELisp written in Scheme""" url="""/2024/talks/gypsum""" speakers="""Ramin Honary""" track="""Development""" watch="""https://emacsconf.org/2024/watch/dev""" slug="""gypsum""" note="""video: 24:36"""]]
+[[!template id=sched time="""20""" q-and-a="""<a href="https://media.emacsconf.org/2024/current/bbb-org-update.html">BBB</a>""" startutc="""2024-12-07T15:20:00+0000""" endutc="""2024-12-07T15:40:00+0000""" start="""10:20""" end="""10:40""" title="""The Future of Org""" url="""/2024/talks/org-update""" speakers="""Ihor Radchenko and Bastien Guerry""" track="""General""" watch="""https://emacsconf.org/2024/watch/gen""" slug="""org-update""" note=""""""]]
+[[!template id=sched time="""20""" q-and-a="""<a href="https://media.emacsconf.org/2024/current/bbb-rust.html">BBB</a>""" startutc="""2024-12-07T15:40:00+0000""" endutc="""2024-12-07T16:00:00+0000""" start="""10:40""" end="""11:00""" title="""An experimental Emacs core in Rust""" url="""/2024/talks/rust""" speakers="""Troy Hinckley""" track="""Development""" watch="""https://emacsconf.org/2024/watch/dev""" slug="""rust""" note="""captioned, video: 20:06"""]]
+[[!template id=sched time="""10""" q-and-a="""<a href="https://media.emacsconf.org/2024/current/bbb-color.html">BBB</a>""" startutc="""2024-12-07T16:00:00+0000""" endutc="""2024-12-07T16:10:00+0000""" start="""11:00""" end="""11:10""" title="""Colour your Emacs with ease""" url="""/2024/talks/color""" speakers="""Ryota""" track="""General""" watch="""https://emacsconf.org/2024/watch/gen""" slug="""color""" note=""""""]]
+[[!template id=sched time="""25""" q-and-a="""<a href="https://media.emacsconf.org/2024/current/bbb-p-search.html">BBB</a>""" startutc="""2024-12-07T16:20:00+0000""" endutc="""2024-12-07T16:45:00+0000""" start="""11:20""" end="""11:45""" title="""p-search: a local search engine in Emacs""" url="""/2024/talks/p-search""" speakers="""Zac Romero""" track="""Development""" watch="""https://emacsconf.org/2024/watch/dev""" slug="""p-search""" note="""captioned, video: 22:42"""]]
+[[!template id=sched time="""10""" q-and-a="""<a href="https://media.emacsconf.org/2024/current/bbb-julia.html">BBB</a>""" startutc="""2024-12-07T18:00:00+0000""" endutc="""2024-12-07T18:10:00+0000""" start="""1:00""" end="""1:10""" title="""Exploring shared philosophies in Julia and Emacs""" url="""/2024/talks/julia""" speakers="""Gabriele Bozzola""" track="""Development""" watch="""https://emacsconf.org/2024/watch/dev""" slug="""julia""" note="""captioned, video: 09:17"""]]
+[[!template id=sched time="""10""" q-and-a="""<a href="https://media.emacsconf.org/2024/current/bbb-theme.html">BBB</a>""" startutc="""2024-12-07T18:00:00+0000""" endutc="""2024-12-07T18:10:00+0000""" start="""1:00""" end="""1:10""" title="""My journey of finding and creating the “perfect” Emacs theme""" url="""/2024/talks/theme""" speakers="""MetroWind""" track="""General""" watch="""https://emacsconf.org/2024/watch/gen""" slug="""theme""" note="""captioned, video: 11:28"""]]
+[[!template id=sched time="""20""" q-and-a="""<a href="https://chat.emacsconf.org/?join=emacsconf">#emacsconf, speaker nick: robin</a>""" startutc="""2024-12-07T18:25:00+0000""" endutc="""2024-12-07T18:45:00+0000""" start="""1:25""" end="""1:45""" title="""Beguiling Emacs: Guile-Emacs relaunched!""" url="""/2024/talks/guile""" speakers="""Robin Templeton""" track="""Development""" watch="""https://emacsconf.org/2024/watch/dev""" slug="""guile""" note=""""""]]
+[[!template id=sched time="""15""" q-and-a="""<a href="https://chat.emacsconf.org/?join=emacsconf">#emacsconf, speaker nick: lispmacs</a>""" startutc="""2024-12-07T18:30:00+0000""" endutc="""2024-12-07T18:45:00+0000""" start="""1:30""" end="""1:45""" title="""Watering my (digital) plant with Emacs timers""" url="""/2024/talks/water""" speakers="""Christopher Howard""" track="""General""" watch="""https://emacsconf.org/2024/watch/gen""" slug="""water""" note="""captioned, video: 13:50"""]]
+[[!template id=sched time="""10""" q-and-a="""<a href="https://media.emacsconf.org/2024/current/bbb-secrets.html">BBB</a>""" startutc="""2024-12-07T18:55:00+0000""" endutc="""2024-12-07T19:05:00+0000""" start="""1:55""" end="""2:05""" title="""Committing secrets with git using sops-mode""" url="""/2024/talks/secrets""" speakers="""Jonathan Otsuka""" track="""Development""" watch="""https://emacsconf.org/2024/watch/dev""" slug="""secrets""" note=""""""]]
+[[!template id=sched time="""40""" q-and-a="""<a href="https://chat.emacsconf.org/?join=emacsconf">#emacsconf, speaker nick: lispmacs</a>""" startutc="""2024-12-07T18:55:00+0000""" endutc="""2024-12-07T19:35:00+0000""" start="""1:55""" end="""2:35""" title="""Emacs as a shell""" url="""/2024/talks/shell""" speakers="""Christopher Howard""" track="""General""" watch="""https://emacsconf.org/2024/watch/gen""" slug="""shell""" note="""captioned, video: 37:13"""]]
+[[!template id=sched time="""60""" q-and-a="""<a href="https://media.emacsconf.org/2024/current/bbb-mcclim.html">BBB</a>""" startutc="""2024-12-07T19:25:00+0000""" endutc="""2024-12-07T20:25:00+0000""" start="""2:25""" end="""3:25""" title="""Elisp and McCLIM""" url="""/2024/talks/mcclim""" speakers="""screwlisp""" track="""Development""" watch="""https://emacsconf.org/2024/watch/dev""" slug="""mcclim""" note="""captioned, video: 34:29"""]]
+[[!template id=sched time="""20""" q-and-a="""<a href="https://media.emacsconf.org/2024/current/bbb-casual.html">BBB</a>""" startutc="""2024-12-07T19:45:00+0000""" endutc="""2024-12-07T20:05:00+0000""" start="""2:45""" end="""3:05""" title="""Re-imagining the Emacs user experience with Casual Suite""" url="""/2024/talks/casual""" speakers="""Charles Choi""" track="""General""" watch="""https://emacsconf.org/2024/watch/gen""" slug="""casual""" note="""captioned, video: 18:24"""]]
+[[!template id=sched time="""20""" q-and-a="""<a href="https://media.emacsconf.org/2024/current/bbb-hyperdrive.html">BBB</a>""" startutc="""2024-12-07T20:25:00+0000""" endutc="""2024-12-07T20:45:00+0000""" start="""3:25""" end="""3:45""" title="""New in hyperdrive.el: org-transclusion, easy installation, and more!""" url="""/2024/talks/hyperdrive""" speakers="""Joseph Turner""" track="""General""" watch="""https://emacsconf.org/2024/watch/gen""" slug="""hyperdrive""" note=""""""]]
+[[!template id=sched time="""20""" q-and-a="""<a href="https://media.emacsconf.org/2024/current/bbb-repro.html">BBB</a>""" startutc="""2024-12-07T20:45:00+0000""" endutc="""2024-12-07T21:05:00+0000""" start="""3:45""" end="""4:05""" title="""Reproducibly building Emacs: “Hey your checksum is the same as mine!”""" url="""/2024/talks/repro""" speakers="""Aaron Grothe""" track="""Development""" watch="""https://emacsconf.org/2024/watch/dev""" slug="""repro""" note=""""""]]
+[[!template id=sched time="""10""" q-and-a="""none""" startutc="""2024-12-07T21:05:00+0000""" endutc="""2024-12-07T21:15:00+0000""" start="""4:05""" end="""4:15""" title="""Emacs Writing Studio""" url="""/2024/talks/writing""" speakers="""Peter Prevos""" track="""General""" watch="""https://emacsconf.org/2024/watch/gen""" slug="""writing""" note="""video: 13:31"""]]
+[[!template id=sched time="""25""" q-and-a="""<a href="https://media.emacsconf.org/2024/current/bbb-emacs30.html">BBB</a>""" startutc="""2024-12-07T21:25:00+0000""" endutc="""2024-12-07T21:50:00+0000""" start="""4:25""" end="""4:50""" title="""Emacs 30 Highlights""" url="""/2024/talks/emacs30""" speakers="""Philip Kaludercic""" track="""General""" watch="""https://emacsconf.org/2024/watch/gen""" slug="""emacs30""" note="""captioned, video: 24:55"""]]
+[[!template id=sched time="""10""" q-and-a="""<a href="https://pad.emacsconf.org/2024-sat-close">Etherpad</a>""" startutc="""2024-12-07T22:00:00+0000""" endutc="""2024-12-07T22:10:00+0000""" start="""5:00""" end="""5:10""" title="""Saturday closing remarks""" url="""/2024/talks/sat-close""" track="""General""" watch="""https://emacsconf.org/2024/watch/gen""" slug="""sat-close""" note=""""""]]</div>
+
+Jump to: <a href="#date-2024-12-07">Sat Dec 7</a> - <a href="#date-2024-12-08">Sun Dec 8</a><a name="date-2024-12-08"></a>
+# Sunday Dec 8, 2024
+[[!inline pages="internal(2024/schedule-2024-12-08)" raw="yes"]]
+
+<div class="schedule" data-start="2024-12-08T14:00:00+0000" data-end="2024-12-08T22:30:00+0000" data-tracks="General,Development">
+[[!template id=sched time="""10""" q-and-a="""<a href="https://pad.emacsconf.org/2024-sun-open">Etherpad</a>""" startutc="""2024-12-08T14:00:00+0000""" endutc="""2024-12-08T14:10:00+0000""" start="""9:00""" end="""9:10""" title="""Sunday opening remarks""" url="""/2024/talks/sun-open""" track="""General""" watch="""https://emacsconf.org/2024/watch/gen""" slug="""sun-open""" note=""""""]]
+[[!template id=sched time="""10""" q-and-a="""<a href="https://pad.emacsconf.org/2024-links">Etherpad</a>""" startutc="""2024-12-08T14:10:00+0000""" endutc="""2024-12-08T14:20:00+0000""" start="""9:10""" end="""9:20""" title="""Unlocking linked data: replacing specialized apps with an Org-based semantic wiki""" url="""/2024/talks/links""" speakers="""Abhinav Tushar""" track="""General""" watch="""https://emacsconf.org/2024/watch/gen""" slug="""links""" note=""""""]]
+[[!template id=sched time="""20""" q-and-a="""<a href="https://chat.emacsconf.org/?join=emacsconf">#emacsconf, speaker nick: cosmicexplorer</a>""" note="""Development-focused; on the general track for scheduling reasons""" startutc="""2024-12-08T14:30:00+0000""" endutc="""2024-12-08T14:50:00+0000""" start="""9:30""" end="""9:50""" title="""Emacs regex compilation and future directions for expressive pattern matching""" url="""/2024/talks/regex""" speakers="""Danny McClanahan""" track="""General""" watch="""https://emacsconf.org/2024/watch/gen""" slug="""regex""" note=""""""]]
+[[!template id=sched time="""20""" q-and-a="""<a href="https://pad.emacsconf.org/2024-learning">Etherpad</a>""" startutc="""2024-12-08T15:00:00+0000""" endutc="""2024-12-08T15:20:00+0000""" start="""10:00""" end="""10:20""" title="""Survival of the skillest: Thriving in the learning jungle""" url="""/2024/talks/learning""" speakers="""Bala Ramadurai""" track="""General""" watch="""https://emacsconf.org/2024/watch/gen""" slug="""learning""" note="""video: 19:39"""]]
+[[!template id=sched time="""10""" q-and-a="""<a href="https://pad.emacsconf.org/2024-language">Etherpad</a>""" startutc="""2024-12-08T15:30:00+0000""" endutc="""2024-12-08T15:40:00+0000""" start="""10:30""" end="""10:40""" title="""Immersive language learning with Emacs""" url="""/2024/talks/language""" speakers="""Sebastian Dümcke""" track="""General""" watch="""https://emacsconf.org/2024/watch/gen""" slug="""language""" note=""""""]]
+[[!template id=sched time="""20""" q-and-a="""<a href="https://media.emacsconf.org/2024/current/bbb-org-teach.html">BBB</a>""" startutc="""2024-12-08T15:50:00+0000""" endutc="""2024-12-08T16:10:00+0000""" start="""10:50""" end="""11:10""" title="""org-teach: a minor mode for writing course materials in Emacs""" url="""/2024/talks/org-teach""" speakers="""James Endres Howell""" track="""General""" watch="""https://emacsconf.org/2024/watch/gen""" slug="""org-teach""" note=""""""]]
+[[!template id=sched time="""15""" q-and-a="""<a href="https://media.emacsconf.org/2024/current/bbb-hyperbole.html">BBB</a>""" startutc="""2024-12-08T16:25:00+0000""" endutc="""2024-12-08T16:40:00+0000""" start="""11:25""" end="""11:40""" title="""Fun things with GNU Hyperbole""" url="""/2024/talks/hyperbole""" speakers="""Mats Lidell""" track="""General""" watch="""https://emacsconf.org/2024/watch/gen""" slug="""hyperbole""" note="""captioned, video: 14:10"""]]
+[[!template id=sched time="""20""" q-and-a="""<a href="https://media.emacsconf.org/2024/current/bbb-hywiki.html">BBB</a>""" startutc="""2024-12-08T18:00:00+0000""" endutc="""2024-12-08T18:20:00+0000""" start="""1:00""" end="""1:20""" title="""HyWiki: Fast, hyperlinked note-taking with no markup required""" url="""/2024/talks/hywiki""" speakers="""Bob Weiner""" track="""General""" watch="""https://emacsconf.org/2024/watch/gen""" slug="""hywiki""" note=""""""]]
+[[!template id=sched time="""15""" q-and-a="""<a href="https://media.emacsconf.org/2024/current/bbb-pgmacs.html">BBB</a>""" note="""Development-focused; on the general track for scheduling reasons""" startutc="""2024-12-08T18:35:00+0000""" endutc="""2024-12-08T18:50:00+0000""" start="""1:35""" end="""1:50""" title="""PGmacs: browsing and editing PostgreSQL databases from Emacs""" url="""/2024/talks/pgmacs""" speakers="""Eric Marsden""" track="""General""" watch="""https://emacsconf.org/2024/watch/gen""" slug="""pgmacs""" note="""captioned, video: 13:17"""]]
+[[!template id=sched time="""40""" q-and-a="""<a href="https://media.emacsconf.org/2024/current/bbb-blee.html">BBB</a>""" startutc="""2024-12-08T19:05:00+0000""" endutc="""2024-12-08T19:45:00+0000""" start="""2:05""" end="""2:45""" title="""About Blee: enveloping our own autonomy directed digital ecosystem with Emacs""" url="""/2024/talks/blee""" speakers="""Mohsen BANAN""" track="""General""" watch="""https://emacsconf.org/2024/watch/gen""" slug="""blee""" note=""""""]]
+[[!template id=sched time="""20""" q-and-a="""<a href="https://media.emacsconf.org/2024/current/bbb-literate.html">BBB</a>""" startutc="""2024-12-08T19:55:00+0000""" endutc="""2024-12-08T20:15:00+0000""" start="""2:55""" end="""3:15""" title="""Literate programming for the 21st Century""" url="""/2024/talks/literate""" speakers="""Howard Abrams""" track="""General""" watch="""https://emacsconf.org/2024/watch/gen""" slug="""literate""" note="""captioned, video: 15:51"""]]
+[[!template id=sched time="""10""" q-and-a="""<a href="https://chat.emacsconf.org/?join=emacsconf">#emacsconf, speaker nick: bardman</a>""" startutc="""2024-12-08T20:30:00+0000""" endutc="""2024-12-08T20:40:00+0000""" start="""3:30""" end="""3:40""" title="""An example of a cohesive student workflow in Emacs""" url="""/2024/talks/students""" speakers="""Daniel Pinkston""" track="""General""" watch="""https://emacsconf.org/2024/watch/gen""" slug="""students""" note=""""""]]
+[[!template id=sched time="""20""" q-and-a="""<a href="https://pad.emacsconf.org/2024-sharing">Etherpad</a>""" startutc="""2024-12-08T20:50:00+0000""" endutc="""2024-12-08T21:10:00+0000""" start="""3:50""" end="""4:10""" title="""So you want to be an Emacs-fluencer?""" url="""/2024/talks/sharing""" speakers="""Gopar""" track="""General""" watch="""https://emacsconf.org/2024/watch/gen""" slug="""sharing""" note=""""""]]
+[[!template id=sched time="""30""" q-and-a="""<a href="https://media.emacsconf.org/2024/current/bbb-transducers.html">BBB</a>""" note="""Development-focused; on the general track for scheduling reasons""" startutc="""2024-12-08T21:20:00+0000""" endutc="""2024-12-08T21:50:00+0000""" start="""4:20""" end="""4:50""" title="""Transducers: finally, ergonomic data processing for Emacs!""" url="""/2024/talks/transducers""" speakers="""Colin Woodbury""" track="""General""" watch="""https://emacsconf.org/2024/watch/gen""" slug="""transducers""" note="""captioned, video: 26:51"""]]
+[[!template id=sched time="""10""" q-and-a="""<a href="https://pad.emacsconf.org/2024-sun-close">Etherpad</a>""" startutc="""2024-12-08T22:00:00+0000""" endutc="""2024-12-08T22:10:00+0000""" start="""5:00""" end="""5:10""" title="""Sunday closing remarks""" url="""/2024/talks/sun-close""" track="""General""" watch="""https://emacsconf.org/2024/watch/gen""" slug="""sun-close""" note=""""""]]</div><div class="cancelled">Cancelled:<ul><li>The Free Life Planner: Empowering lives with Emacs-based AI - Andrew Dougherty</li>
+<li>Graph mode: a major mode to create, edit and display discrete element graphs - John Darrington</li></ul></div> \ No newline at end of file
diff --git a/2024/schedule-image.md b/2024/schedule-image.md
new file mode 100644
index 00000000..4f728508
--- /dev/null
+++ b/2024/schedule-image.md
@@ -0,0 +1 @@
+<div class="schedule-svg-container"><svg width="800" height="300" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><title>Graphical view of the schedule</title><g transform="translate(0,0)"><title>Schedule for Saturday</title><rect width="800" height="150" x="0" y="0" fill="white"></rect><text font-size="10" fill="black" y="12" x="3">Saturday</text><a href="/2024/talks/sat-open" title="Saturday opening remarks" data-slug="sat-open"><title> 9:00- 9:10 Saturday opening remarks</title><rect x="0" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(13,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sat-open</text></g></a><a href="/2024/talks/papers" title="Writing academic papers in Org-Roam" data-slug="papers"><title> 9:10- 9:20 Writing academic papers in Org-Roam</title><rect x="15" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(28,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">papers</text></g></a><a href="/2024/talks/project" title="Managing writing project metadata with org-mode" data-slug="project"><title> 9:40-10:00 Managing writing project metadata with org-mode</title><rect x="62" y="15" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(91,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">project</text></g></a><a href="/2024/talks/org-update" title="The Future of Org" data-slug="org-update"><title>10:20-10:40 The Future of Org</title><rect x="125" y="15" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(154,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">org-update</text></g></a><a href="/2024/talks/color" title="Colour your Emacs with ease" data-slug="color"><title>11:00-11:10 Colour your Emacs with ease</title><rect x="188" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(201,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">color</text></g></a><a href="/2024/talks/theme" title="My journey of finding and creating the “perfect” Emacs theme" data-slug="theme"><title> 1:00- 1:10 My journey of finding and creating the “perfect” Emacs theme</title><rect x="376" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(389,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">theme</text></g></a><a href="/2024/talks/water" title="Watering my (digital) plant with Emacs timers" data-slug="water"><title> 1:30- 1:45 Watering my (digital) plant with Emacs timers</title><rect x="423" y="15" opacity="0.8" width="23" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(444,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">water</text></g></a><a href="/2024/talks/shell" title="Emacs as a shell" data-slug="shell"><title> 1:55- 2:35 Emacs as a shell</title><rect x="462" y="15" opacity="0.8" width="62" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(522,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">shell</text></g></a><a href="/2024/talks/casual" title="Re-imagining the Emacs user experience with Casual Suite" data-slug="casual"><title> 2:45- 3:05 Re-imagining the Emacs user experience with Casual Suite</title><rect x="541" y="15" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(570,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">casual</text></g></a><a href="/2024/talks/hyperdrive" title="New in hyperdrive.el: org-transclusion, easy installation, and more!" data-slug="hyperdrive"><title> 3:25- 3:45 New in hyperdrive.el: org-transclusion, easy installation, and more!</title><rect x="603" y="15" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(632,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">hyperdrive</text></g></a><a href="/2024/talks/writing" title="Emacs Writing Studio" data-slug="writing"><title> 4:05- 4:15 Emacs Writing Studio</title><rect x="666" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(679,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">writing</text></g></a><a href="/2024/talks/emacs30" title="Emacs 30 Highlights" data-slug="emacs30"><title> 4:25- 4:50 Emacs 30 Highlights</title><rect x="698" y="15" opacity="0.8" width="39" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(735,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">emacs30</text></g></a><a href="/2024/talks/sat-close" title="Saturday closing remarks" data-slug="sat-close"><title> 5:00- 5:10 Saturday closing remarks</title><rect x="752" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(765,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sat-close</text></g></a><a href="/2024/talks/gypsum" title="Gypsum: my clone of Emacs and ELisp written in Scheme" data-slug="gypsum"><title>10:00-10:20 Gypsum: my clone of Emacs and ELisp written in Scheme</title><rect x="94" y="75" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(123,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">gypsum</text></g></a><a href="/2024/talks/rust" title="An experimental Emacs core in Rust" data-slug="rust"><title>10:40-11:00 An experimental Emacs core in Rust</title><rect x="156" y="75" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(185,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">rust</text></g></a><a href="/2024/talks/p-search" title="p-search: a local search engine in Emacs" data-slug="p-search"><title>11:20-11:45 p-search: a local search engine in Emacs</title><rect x="219" y="75" opacity="0.8" width="39" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(256,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">p-search</text></g></a><a href="/2024/talks/julia" title="Exploring shared philosophies in Julia and Emacs" data-slug="julia"><title> 1:00- 1:10 Exploring shared philosophies in Julia and Emacs</title><rect x="376" y="75" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(389,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">julia</text></g></a><a href="/2024/talks/guile" title="Beguiling Emacs: Guile-Emacs relaunched!" data-slug="guile"><title> 1:25- 1:45 Beguiling Emacs: Guile-Emacs relaunched!</title><rect x="415" y="75" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="5,5,5" fill="skyblue"></rect><g transform="translate(444,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">guile</text></g></a><a href="/2024/talks/secrets" title="Committing secrets with git using sops-mode" data-slug="secrets"><title> 1:55- 2:05 Committing secrets with git using sops-mode</title><rect x="462" y="75" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(475,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">secrets</text></g></a><a href="/2024/talks/mcclim" title="Elisp and McCLIM" data-slug="mcclim"><title> 2:25- 3:25 Elisp and McCLIM</title><rect x="509" y="75" opacity="0.8" width="94" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(601,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">mcclim</text></g></a><a href="/2024/talks/repro" title="Reproducibly building Emacs: “Hey your checksum is the same as mine!”" data-slug="repro"><title> 3:45- 4:05 Reproducibly building Emacs: “Hey your checksum is the same as mine!”</title><rect x="635" y="75" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(664,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">repro</text></g></a><g transform="translate(0,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">9 AM</text></g><g transform="translate(94,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">10 AM</text></g><g transform="translate(188,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">11 AM</text></g><g transform="translate(282,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">12 PM</text></g><g transform="translate(376,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">1 PM</text></g><g transform="translate(470,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">2 PM</text></g><g transform="translate(564,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">3 PM</text></g><g transform="translate(658,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">4 PM</text></g><g transform="translate(752,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">5 PM</text></g></g><g transform="translate(0,150)"><title>Schedule for Sunday</title><rect width="800" height="150" x="0" y="0" fill="white"></rect><text font-size="10" fill="black" y="12" x="3">Sunday</text><a href="/2024/talks/sun-open" title="Sunday opening remarks" data-slug="sun-open"><title> 9:00- 9:10 Sunday opening remarks</title><rect x="0" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(13,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sun-open</text></g></a><a href="/2024/talks/links" title="Unlocking linked data: replacing specialized apps with an Org-based semantic wiki" data-slug="links"><title> 9:10- 9:20 Unlocking linked data: replacing specialized apps with an Org-based semantic wiki</title><rect x="15" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(28,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">links</text></g></a><a href="/2024/talks/regex" title="Emacs regex compilation and future directions for expressive pattern matching" data-slug="regex"><title> 9:30- 9:50 Emacs regex compilation and future directions for expressive pattern matching</title><rect x="47" y="15" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(76,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">regex</text></g></a><a href="/2024/talks/learning" title="Survival of the skillest: Thriving in the learning jungle" data-slug="learning"><title>10:00-10:20 Survival of the skillest: Thriving in the learning jungle</title><rect x="94" y="15" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(123,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">learning</text></g></a><a href="/2024/talks/language" title="Immersive language learning with Emacs" data-slug="language"><title>10:30-10:40 Immersive language learning with Emacs</title><rect x="141" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(154,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">language</text></g></a><a href="/2024/talks/org-teach" title="org-teach: a minor mode for writing course materials in Emacs" data-slug="org-teach"><title>10:50-11:10 org-teach: a minor mode for writing course materials in Emacs</title><rect x="172" y="15" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(201,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">org-teach</text></g></a><a href="/2024/talks/hyperbole" title="Fun things with GNU Hyperbole" data-slug="hyperbole"><title>11:25-11:40 Fun things with GNU Hyperbole</title><rect x="227" y="15" opacity="0.8" width="23" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(248,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">hyperbole</text></g></a><a href="/2024/talks/hywiki" title="HyWiki: Fast, hyperlinked note-taking with no markup required" data-slug="hywiki"><title> 1:00- 1:20 HyWiki: Fast, hyperlinked note-taking with no markup required</title><rect x="376" y="15" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(405,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">hywiki</text></g></a><a href="/2024/talks/pgmacs" title="PGmacs: browsing and editing PostgreSQL databases from Emacs" data-slug="pgmacs"><title> 1:35- 1:50 PGmacs: browsing and editing PostgreSQL databases from Emacs</title><rect x="431" y="15" opacity="0.8" width="23" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(452,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">pgmacs</text></g></a><a href="/2024/talks/blee" title="About Blee: enveloping our own autonomy directed digital ecosystem with Emacs" data-slug="blee"><title> 2:05- 2:45 About Blee: enveloping our own autonomy directed digital ecosystem with Emacs</title><rect x="478" y="15" opacity="0.8" width="62" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(538,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">blee</text></g></a><a href="/2024/talks/literate" title="Literate programming for the 21st Century" data-slug="literate"><title> 2:55- 3:15 Literate programming for the 21st Century</title><rect x="556" y="15" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(585,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">literate</text></g></a><a href="/2024/talks/students" title="An example of a cohesive student workflow in Emacs" data-slug="students"><title> 3:30- 3:40 An example of a cohesive student workflow in Emacs</title><rect x="611" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(624,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">students</text></g></a><a href="/2024/talks/sharing" title="So you want to be an Emacs-fluencer?" data-slug="sharing"><title> 3:50- 4:10 So you want to be an Emacs-fluencer?</title><rect x="643" y="15" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(672,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sharing</text></g></a><a href="/2024/talks/transducers" title="Transducers: finally, ergonomic data processing for Emacs!" data-slug="transducers"><title> 4:20- 4:50 Transducers: finally, ergonomic data processing for Emacs!</title><rect x="690" y="15" opacity="0.8" width="47" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(735,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">transducers</text></g></a><a href="/2024/talks/sun-close" title="Sunday closing remarks" data-slug="sun-close"><title> 5:00- 5:10 Sunday closing remarks</title><rect x="752" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(765,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sun-close</text></g></a><g transform="translate(0,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">9 AM</text></g><g transform="translate(94,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">10 AM</text></g><g transform="translate(188,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">11 AM</text></g><g transform="translate(282,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">12 PM</text></g><g transform="translate(376,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">1 PM</text></g><g transform="translate(470,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">2 PM</text></g><g transform="translate(564,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">3 PM</text></g><g transform="translate(658,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">4 PM</text></g><g transform="translate(752,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">5 PM</text></g></g></svg></div> \ No newline at end of file
diff --git a/2024/sidebar.md b/2024/sidebar.md
index ec441ca3..adb27050 100644
--- a/2024/sidebar.md
+++ b/2024/sidebar.md
@@ -4,10 +4,8 @@
<p class="center">Dec 7-8 (Sat-Sun)</p>
---
-* [[**Call for Participation**|cfp]]
-* [[Ideas]]
-* [[Submit]]
-* [[Talks]]
+* **[[Talks]]**
+* [[Watch/participate|watch]]
* [[Volunteer]]
* [[Prepare]]
* [[Planning]]
diff --git a/2024/talks.md b/2024/talks.md
index 102cca18..bfe6ac4c 100644
--- a/2024/talks.md
+++ b/2024/talks.md
@@ -4,7 +4,9 @@
We're getting ready for EmacsConf 2024. Missed the proposal deadline but got a great idea anyway? [[Let us know|/2024/cfp]] just in case we can still squeeze you in somehow!
-Here are some of the talks we've accepted so far:
+[[How to watch and participate|watch]]
+
+Here's the schedule:
[[!inline pages="internal(2024/schedule-details)" raw="yes"]]
diff --git a/2024/talks/blee.md b/2024/talks/blee.md
index 5bee1b49..971c2af0 100644
--- a/2024/talks/blee.md
+++ b/2024/talks/blee.md
@@ -1,4 +1,4 @@
-[[!meta title="About Blee: towards an integrated Emacs environment for enveloping our own autonomy directed digital ecosystem"]]
+[[!meta title="About Blee: enveloping our own autonomy directed digital ecosystem"]]
[[!meta copyright="Copyright &copy; 2024 Mohsen BANAN"]]
[[!inline pages="internal(2024/info/blee-nav)" raw="yes"]]
@@ -6,7 +6,7 @@
<!-- You can manually edit this file to update the abstract, add links, etc. --->
-# About Blee: towards an integrated Emacs environment for enveloping our own autonomy directed digital ecosystem
+# About Blee: enveloping our own autonomy directed digital ecosystem
Mohsen BANAN (he/him) - Pronunciation: MO-HH-SS-EN
[[!inline pages="internal(2024/info/blee-before)" raw="yes"]]
@@ -26,11 +26,7 @@ is Emacs-centric, Blee is digital ecosystem-centric.
To further elucidate Blee, let’s break down the subtitle of this presentation:
-"Towards an Integrated Emacs Environment for Enveloping Our Own
-Autonomy Directed Digital Ecosystem."
-
-- **"Towards":** Blee is an ever-evolving, organic, and ongoing project &#x2014; just
- like Emacs itself.
+"Enveloping Our Own Autonomy Directed Digital Ecosystem With Emacs."
- **"Enveloping":** Blee is designed to fully integrate and encapsulate usage of
an entire digital ecosystem.
@@ -48,15 +44,32 @@ redecentralization of internet application services.
Some might dismiss ByStar as an ambitious, utopian vision. In response, I’ve
authored a book titled:
-Nature of Polyexistentials:
-Basis for Abolishment of the Western Intellectual Property Rights Regime
-And Introduction of the Libre-Halaal ByStar Digital Ecosystem
+------------------------------------------------------------------------
+
+<!-- <img align="right" height="230" src="https://github.com/mohsenBanan/mohsenBanan/blob/main/images/frontCover-1.jpg"> -->
+
+<p align="center"><font size="+3"><b>Nature of Polyexistentials:</font></b></p>
+
+<p align="center"><b>Basis for Abolishment of the Western Intellectual Property Rights Regime</b></p>
+
+<p align="center"><b>And Introduction of the Libre-Halaal ByStar Digital Ecosystem</b></p>
+
+
+<p align="left">On Line: &emsp; <a href="https://github.com/bxplpc/120033">PLPC-120033 at Github</a> -- <a href="https://doi.org/10.5281/zenodo.8003846">DOI </a>
+ --- PDF: <a href="https://github.com/bxplpc/120033/blob/main/pdf/c-120033-1_05-book-8.5x11-col-emb-pub.pdf">8.5x11</a> --
+ <a href="https://github.com/bxplpc/120033/blob/main/pdf/c-120033-1_05-book-a4-col-emb-pub.pdf">A4</a>
+<br>
+US Edition Book Prints At Amazon: &emsp; <a href="https://www.amazon.com/dp/1960957015"> US </a> -- <a href="https://www.amazon.fr/dp/1960957015"> France </a> -- <a href="https://www.amazon.co.uk/dp/1960957015"> UK </a> -- <a href="https://www.amazon.co.jp/dp/1960957015"> Japan </a>
+&emsp; (424 pages --- 6 x 0.96 x 9 inches)
+<br>
+International Edition Book Prints: &emsp; <a href="https://jangal.com/fa/product/252689/nature-of-polyexistentials"> Iran (Jangal Publishers) </a>
+&emsp; (406 pages --- 23.5 x 16.5 cm)
+</p>
+<p align="left">Comments, Feedback: &emsp;
+<a href="mailto:plpc-120033@mohsen.1.banan.byname.net">plpc-120033@mohsen.1.banan.byname.net</a>
+</p>
-- On Line US Edition: <https://github.com/bxplpc/120033>
-- On Line International Edition: <https://github.com/bxplpc/120074>
-- DOI: <https://doi.org/10.5281/zenodo.8003846>
-- US Edition Book Prints At Amazon: >
-- International Edition Book Prints in Iran: <https://jangal.com/fa/product/252689/nature-of-polyexistentials>
+------------------------------------------------------------------------
Blee and Emacs are integral parts of ByStar.
@@ -117,7 +130,8 @@ OS) and Blee (ByStar Libre Emacs Environment).
Central to his presentation is the positioning of
Emacs, as the core of Blee.
-See also: <https://emacsconf.org/2021/talks/bidi>
+Previous Talks: <https://emacsconf.org/2021/talks/bidi> and
+ <https://emacsconf.org/2022/talks/mail>
[[!inline pages="internal(2024/info/blee-after)" raw="yes"]]
diff --git a/2024/talks/emacs30.md b/2024/talks/emacs30.md
new file mode 100644
index 00000000..20a163e1
--- /dev/null
+++ b/2024/talks/emacs30.md
@@ -0,0 +1,21 @@
+[[!meta title="Emacs 30 Highlights"]]
+[[!meta copyright="Copyright &copy; 2024 Philip Kaludercic"]]
+[[!inline pages="internal(2024/info/emacs30-nav)" raw="yes"]]
+
+<!-- Initially generated with emacsconf-publish-talk-page and then left alone for manual editing -->
+<!-- You can manually edit this file to update the abstract, add links, etc. --->
+
+
+# Emacs 30 Highlights
+Philip Kaludercic
+
+[[!inline pages="internal(2024/info/emacs30-before)" raw="yes"]]
+
+
+
+
+[[!inline pages="internal(2024/info/emacs30-after)" raw="yes"]]
+
+[[!inline pages="internal(2024/info/emacs30-nav)" raw="yes"]]
+
+
diff --git a/2024/talks/gypsum.md b/2024/talks/gypsum.md
index 02888492..3ee5a75a 100644
--- a/2024/talks/gypsum.md
+++ b/2024/talks/gypsum.md
@@ -7,10 +7,289 @@
# Gypsum: my clone of Emacs and ELisp written in Scheme
-Ramin Honary (he/him) - <mailto:ramin.honary@gmail.com>
+Ramin Honary (he/him)
+
+ - E-mail: <mailto:ramin.honary@gmail.com>
+ - ActivityPub: @ramin_hal9001@fe.disroot.org
+ - Website: <https://tilde.town/~ramin_hal9001>
[[!inline pages="internal(2024/info/gypsum-before)" raw="yes"]]
+## Slides
+
+### Introduction
+
+1. Ramin Honary
+
+ - Emacs enthusiast since 2017
+
+ - Software developer (full stack)
+
+ - I love Haskell, Scheme, functional programming
+
+ - Started learning Scheme about 2 years ago
+
+2. My project: an Emacs Clone
+
+ - Tentative name: "Gypsum"
+ - Its not a great name, open to suggestions.
+
+### Goal: to Clone **Emacs Lisp**
+
+- Many clones already:
+
+ - Edwin, Jed, jEdit, Jove, Lem, MG, Yi, Zile
+
+- These only clone the key bindings, not Elisp
+
+- Only XEmacs (a fork of GNU Emacs) provided an alternative Emacs Lisp
+
+### Most people don't use Emacs for the keybindings
+
+- Anecodtal, but yes really.
+
+- Use Emacs because of the power of Emacs Lisp
+
+- Emacs is as powerful as a system shell
+
+- A good language is what makes it powerful
+
+### Goal: use R7RS Standard Scheme
+
+- I want it to work on a many Scheme implementations
+
+- Guile is the reference implementation
+
+- (more about this later)
+
+### Goal: able to run any `init.el`
+
+- Should be able to use `init.el` without significant changes
+
+- Many invest significant time in their configs
+
+- Suddenly not having your config is disruptive
+
+- Such an Emacs clone would be more useful
+
+### Why do this?
+
+- I personally like Scheme's minimalism.
+
+- Use Scheme as more than just an academic language.
+
+- Seems to be a lot of interest in a project like this.
+
+- Talk of "Guile Emacs" for about 30 years
+
+### A long history of Guile Emacs (1/3)
+
+- **Early 90s**: Initial discussion between RMS, Tom Lord,
+ Aubrey Jaffer, begin work on replacing Emacs Lisp with Scheme.
+
+- **1999--2009**: Ken Raeburn's [Guile-Based Emacs](https://www.mit.edu/~raeburn/guilemacs/).
+ (My project is similar.)
+
+ > "*This project that I (Ken Raeburn) have started is for converting*
+ > *GNU Emacs to use Guile as its programming language. Support for*
+ > *Emacs Lisp will continue to exist, of course, but it may be*
+ > *through translation and/or interpretation; the Lisp engine itself*
+ > *may no longer be the core of the program.*"
+
+### A long history of Guile Emacs (2/3)
+
+- **2010**: Andy Wingo and Ludovic Courtes
+ take maintainership of Guile project.
+
+- **2009--2011**: Emacs Lisp interpreter implemented in Guile.
+ Still ships with Guile.
+
+- **2011**: Guile 2.0 is released
+
+- **2011--2015**: Robin Templeton's GSoC project.
+ (Is presenting later today!)
+
+### A long history of Guile Emacs (3/3)
+
+- **2020**: Vasilij Schneidermann published an overview called
+ "[The State of Emacs Lisp on Guile](https://emacsninja.com/posts/state-of-emacs-lisp-on-guile.html)".
+
+- **2020 to present**: Guile Emacs is dead? Andrea Corallo, GCC Emacs,
+ JIT-compiler for Emacs Lisp based on "libgccjit", brings into
+ question any need for combining Guile with Emacs.
+
+### Demo
+
+### GUI is barely working
+
+- I have almost no experience with Gtk or GObject Introspection
+
+- Hard to debug, crashes at C-level produce no stack traces
+
+- Using GDB requires rebuilding all of Gtk, GIO, GLib, etc.
+
+### Emacs Lisp parser based on Guile Emacs Lisp
+
+- Foked the Guile Emacs Lisp implementation for easier development
+
+- Have already submitted a patch to the parser upstream
+
+### Emacs Lisp interpter is barely working
+
+- Implementing my own interpreter in portable Scheme
+
+- Monadic pattern matcher
+
+### Can parse but not interpret "`subr.el`"
+
+- "`subr.el`" is the first ELisp file run by Emacs
+
+- A good way to determine what to work on first
+
+### A call for help
+
+### Latest Emacs has **1,393** built-in functions
+
+- I could never implement that many functions alone
+
+- Probably not all are required to create a useful editor
+
+### My job is to make contributing easy
+
+- Document the build and test process
+
+- Document the system architecture
+
+- Prioritize which built-in functions are most essential
+
+- Find low-hanging fruit, use as means to teach others
+
+### The work for which I will take responsibility
+
+- Clone enough Elisp to be able to run ERT tests
+
+- Then use GNU Emacs's own regression tests to test patches
+
+- Make sure there is a usable GUI
+
+- (Someday?) be able to contribute a patch from within
+
+### Quick architectural overview
+
+### The editor is based in Scheme, not Emacs Lisp
+
+- Config, scripting, packages all done in Scheme
+
+- Use of Emacs Lisp for scripting not encouraged
+
+- Should still be able to run your `init.el`
+
+- Ideally should be able to run ELPA packages
+
+### Difference with Robin Templeton's project
+
+- Guile-Emacs links Guile runtime into Emacs
+
+- Not a Scheme application
+
+- An IDE for Schemers
+
+### Emacs Lisp is an "environment"
+
+- "Environments" are a feature of Scheme
+
+- Scheme procedures can be called from Emacs Lisp
+
+- Scheme state can be mutated by Emacs Lisp
+
+- (See "`./gypsum/elisp-eval.scm`", "`new-env`")
+
+### "Functional Lenses"
+
+- Because R7RS does not standardize MOP (not even in "large")
+
+- Inspired by Haskell
+
+- Composes getters and setters
+
+- Single source file, easy to port
+
+- Ported to 3 other Schemes
+
+### A lot of work went into keymaps data structure
+
+- Keybindings are an important part of Emacs
+
+- Had to do this well from very beginning
+
+- Keybindings work correctly in demo
+
+### A lot of work went into separating GUI from Editor logic
+
+- "Parameters" are a feature of Scheme
+
+- Platform-specific APIs are always parameterized
+
+ - Windowing and widgets
+
+ - Translate key events to bindings
+
+ - Evaluating Scheme expressions
+
+ - Text buffering and rendering
+
+- (See "`./gypsum/editor-impl.scm`")
+
+### Monadic pattern matching
+
+- Simpler, more portable
+
+- (Not as feature-rich)
+
+- Easier than porting SRFI-241 ("Match") to Guile
+
+- No relation to SRFI-247 ("Syntatic Monads")
+
+- You can still use pattern matching
+
+### Monad pattern matching
+
+Example program
+
+
+ (define push-stack (put-with cons))
+ (define collatz
+ (many
+ push-stack
+ (either
+ (try (check (λ (n) (<= n 1)))
+ (success))
+ (try (check odd?)
+ (next (λ (n) (+ 1 (* 3 n)))))
+ (try (check even?)
+ (next (λ (n) (quotient n 2))))
+ (fail "not an integer")
+ )))
+
+### Conclusion
+
+- I am just getting the ball rolling
+
+- Helping others contribute is my top priority
+
+- ActivityPub :: `ramin_hal9001@fe.disroot.org`
+
+- E-mail :: <span class="spurious-link"
+ target="ramin.honary@gmail.com">*ramin.honary@gmail.com*</span>
+
+- Homepage :: <https://tilde.town/~ramin_hal9001>
+
+- Codeberg :: <https://codeberg.org/ramin_hal9001>
+
+- This presentation :: <https://emacsconf.org/2024/talks/gypsum/>
+
+
+## Original presentation proposal
I would like to demonstrate an Emacs clone I have been
writing in Guile Scheme for the past year, which I am
tentatively calling "Gypsum". Unlike other editors which
diff --git a/2024/talks/org-update.md b/2024/talks/org-update.md
new file mode 100644
index 00000000..6141f4f0
--- /dev/null
+++ b/2024/talks/org-update.md
@@ -0,0 +1,21 @@
+[[!meta title="Updates on Org Mode maintenance"]]
+[[!meta copyright="Copyright &copy; 2024 Ihor Radchenko and Bastien Guerry"]]
+[[!inline pages="internal(2024/info/org-update-nav)" raw="yes"]]
+
+<!-- Initially generated with emacsconf-publish-talk-page and then left alone for manual editing -->
+<!-- You can manually edit this file to update the abstract, add links, etc. --->
+
+
+# The Future of Org
+Ihor Radchenko and Bastien Guerry
+
+[[!inline pages="internal(2024/info/org-update-before)" raw="yes"]]
+
+
+
+
+[[!inline pages="internal(2024/info/org-update-after)" raw="yes"]]
+
+[[!inline pages="internal(2024/info/org-update-nav)" raw="yes"]]
+
+
diff --git a/2024/watch.md b/2024/watch.md
new file mode 100644
index 00000000..4f5c38dd
--- /dev/null
+++ b/2024/watch.md
@@ -0,0 +1,87 @@
+[[!inline pages="internal(2024/watch/announce)" raw="yes"]]
+[[!inline pages="internal(2024/watch/info)" raw="yes"]]
+[[!sidebar content=""]]
+
+EmacsConf 2024 will be on **Dec 7** (Sat) and **Dec 8** (Sun), 2024 from
+9am-5pm Toronto/EST time (US/Eastern); equivalently, 6am-3pm PST,
+2pm-10pm UTC, 3pm-11pm Zurich/CET, 7:30pm-4:30am(next-day) India/IST,
+10pm-6am GMT+8.
+
+You can view streams using the watch pages or in a streaming web
+player such as [MPV](https://mpv.io). If you need to reverse the video
+for easier viewing (ex: turning dark mode into light mode), try a
+command like `mpv --vf=negate URL`.
+
+If you experience any disruptions (including weird audio), try waiting
+a minute or two and then reloading the page you're using to watch the
+video. If that still doesn't work, please check our status page at
+<https://status.emacsconf.org> for updates on the status of various
+parts of our infrastructure, and instructions on how to get in touch
+with us about disruptions.
+
+We will also try to rebroadcast on [Toobnix](https://toobnix.org/c/emacsconf) (a
+Peertube instance) and [YouTube](https://www.youtube.com/@EmacsConf). Please check back
+here for details closer to the event.
+
+<!-- If you prefer, you can watch the livestream via Toobnix (a PeerTube
+instance): [General
+track](https://toobnix.org/w/7t9X8eXuSby8YpyEKTb4aj), [Development
+track](https://toobnix.org/w/w6K77y3bNMo8xsNuqQeCcD). Pre-recorded
+videos and replays will also be available on Toobnix in the [EmacsConf
+channel](https://toobnix.org/c/emacsconf). -->
+
+To participate in the Q&A, please check the [[talks]] index for a link
+to the talk page, and [[read these Q&A tips|qa]]. The talk page will
+have the Q&A details, including the Etherpad link, IRC channel, and
+optionally a BigBlueButton room (BBB) for Q&A. If you plan to
+participate in Q&A in the BigBlueButton room, please use headphones or
+earphones in order to minimize audio feedback. The link on the talk
+page will take you to a waiting room that will automatically refresh
+when the host has opened the Q&A.
+
+The Etherpad for general EmacsConf discussions is at
+<https://pad.emacsconf.org/2024>. The schedule and the talk pages link
+to the Etherpads for the specific talk. Please feel free to add notes
+and questions to the Etherpad.
+
+You can join IRC using <https://chat.emacsconf.org> or your favourite
+IRC client. Here are the irc.libera.chat IRC channels that we'll be
+using this year:
+
+- \#emacsconf-gen: discussion for the General track
+- \#emacsconf-dev: discussion for the development track
+- \#emacsconf: hallway conversations, other general conversations
+- \#emacsconf-org: if you need to get in touch with the organizers
+
+You can use the `/JOIN` command in an IRC client to join a different
+channel. Ex: `/join #emacsconf-org` if you want to talk to the
+organizers.
+
+If you prefer to avoid Javascript, you can still
+ask your questions via IRC in the relevant track
+channel (\#emacsconf-gen or \#emacsconf-dev).
+Volunteers will read your questions out loud
+during sessions with web-conference Q&As or copy
+them into the Etherpad for you. If we miss your
+question because the discussion is very busy,
+we'll catch it afterwards and send it to the
+speaker.
+
+Pre-recorded talk videos will be available on the talk pages after the
+talks go live, and other videos (including Q&A) will also be added to
+the talk pages once we process them. (Probably by January.) You can
+subscribe to `emacsconf-discuss` for updates:
+<https://lists.gnu.org/mailman/listinfo/emacsconf-discuss>
+
+**Accessibility:** Pre-recorded talks will be streamed with open
+captions, and the transcripts will be posted to the talk pages as
+well. If you have any accessibility requests, please join the
+[#emacsconf-org](https://chat.emacsconf.org/?join=emacsconf-org) and
+let us know, or e-mail <emacsconf-org-private@gnu.org> to reach the
+organizers.
+
+Physical events:
+
+- [Lucerne, Switzerland](https://200ok.ch/posts/2024-09-16_announcing_emacsconf__official_swiss_satellite.html)
+- Let us know at <emacsconf-org@gnu.org> if you're organizing one!
+
diff --git a/2024/watch/dev.md b/2024/watch/dev.md
new file mode 100644
index 00000000..2ee20db8
--- /dev/null
+++ b/2024/watch/dev.md
@@ -0,0 +1,93 @@
+<!-- Automatically generated by emacsconf-publish-watch-pages -->
+<!--
+[[!inline pages="internal(2024/watch/announce)" raw="yes"]]
+[[!meta title="Development stream"]]
+[[!sidebar content=""]] -->
+
+<hr size="1">
+<div><a name="watch"></a><strong>Watch</strong> - <a href="#links">Pad and Q&amp;A links</a> - <a href="#chat">Chat</a> - <a href="#sched">Schedule</a> | Tracks: <a href="/2024/watch/gen/">General</a> - <strong>Development</strong> | <a href="https://emacsconf.org/2024/watch/">Tips for watching/participating</a></div>
+
+For better performance, we recommend watching <a href="https://live0.emacsconf.org/dev.webm">https://live0.emacsconf.org/dev.webm</a> using a streaming media player. Examples:
+
+<ul>
+<li>mpv https://live0.emacsconf.org/dev.webm</li>
+<li>vlc https://live0.emacsconf.org/dev.webm</li>
+<li>ffplay https://live0.emacsconf.org/dev.webm</li>
+</ul>
+
+If you have limited bandwidth, you can watch the low-res stream <a href="https://live0.emacsconf.org/dev-480p.webm">https://live0.emacsconf.org/dev-480p.webm</a>.
+
+If you don't have a streaming media player, you might be able to watch using the player below. (Google Chrome seems to be having issues; Mozilla Firefox might work better. If watching from a phone, Google Chrome seems to work there, or download VLC from your phone's app store and use the URLs like https://live0.emacsconf.org/dev.webm .)
+
+<video controls class="reload"><source src="https://live0.emacsconf.org/dev.webm" type="video/webm" /></video>
+
+<hr size="1"><div><a name="links"></a><a href="#watch">Watch</a> - <strong>Pad and Q&amp;A links</strong> - <a href="#chat">Chat</a> - <a href="#sched">Schedule</a> | Tracks: <a href="/2024/watch/gen/">General</a> - <strong>Development</strong></div><div><span><a href="https://emacsconf.org/2024/talks/gypsum">gypsum</a> (<a class="pad-link" href="https://pad.emacsconf.org/2024-gypsum">pad</a>, <a href="https://media.emacsconf.org/2024/current/bbb-gypsum.html">BBB</a>)</span> - <span><a href="https://emacsconf.org/2024/talks/rust">rust</a> (<a class="pad-link" href="https://pad.emacsconf.org/2024-rust">pad</a>, <a href="https://media.emacsconf.org/2024/current/bbb-rust.html">BBB</a>)</span> - <span><a href="https://emacsconf.org/2024/talks/p-search">p-search</a> (<a class="pad-link" href="https://pad.emacsconf.org/2024-p-search">pad</a>, <a href="https://media.emacsconf.org/2024/current/bbb-p-search.html">BBB</a>)</span> - <span><a href="https://emacsconf.org/2024/talks/julia">julia</a> (<a class="pad-link" href="https://pad.emacsconf.org/2024-julia">pad</a>, <a href="https://media.emacsconf.org/2024/current/bbb-julia.html">BBB</a>)</span> - <span><a href="https://emacsconf.org/2024/talks/guile">guile</a> (<a class="pad-link" href="https://pad.emacsconf.org/2024-guile">pad</a>, <a href="https://chat.emacsconf.org/?join=emacsconf">#emacsconf, speaker nick: robin</a>)</span> - <span><a href="https://emacsconf.org/2024/talks/secrets">secrets</a> (<a class="pad-link" href="https://pad.emacsconf.org/2024-secrets">pad</a>, <a href="https://media.emacsconf.org/2024/current/bbb-secrets.html">BBB</a>)</span> - <span><a href="https://emacsconf.org/2024/talks/mcclim">mcclim</a> (<a class="pad-link" href="https://pad.emacsconf.org/2024-mcclim">pad</a>, <a href="https://media.emacsconf.org/2024/current/bbb-mcclim.html">BBB</a>)</span> - <span><a href="https://emacsconf.org/2024/talks/repro">repro</a> (<a class="pad-link" href="https://pad.emacsconf.org/2024-repro">pad</a>, <a href="https://media.emacsconf.org/2024/current/bbb-repro.html">BBB</a>)</span></div>
+<div class="pad-output"></div>
+<hr size="1"><div><a name="chat"></a><a href="#watch">Watch</a> - <a href="#links">Pad and Q&amp;A links</a> - <strong>Chat</strong> - <a href="#sched">Schedule</a> | Tracks: <a href="/2024/watch/gen/">General</a> - <strong>Development</strong></div><div>Chat: <a href="https://chat.emacsconf.org/?join=emacsconf,emacsconf-org,emacsconf-accessible,emacsconf-gen,emacsconf-dev">emacsconf-dev</a> on libera.chat</div>
+
+<div class="chat-iframe" data-track="dev"></div>
+<iframe src="https://chat.emacsconf.org/?join=emacsconf,emacsconf-org,emacsconf-accessible,emacsconf-gen,emacsconf-dev" height="600" width="100%"></iframe>
+<hr size="1"><div><a name="sched"></a><a href="#watch">Watch</a> - <a href="#links">Pad and Q&amp;A links</a> - <a href="#chat">Chat</a> - <strong>Schedule</strong> | Tracks: <a href="/2024/watch/gen/">General</a> - <strong>Development</strong></div>
+<ul>Legend:
+<li>Solid lines: Q&A will be through a BigBlueButton room (you can ask questions there or through IRC/Etherpad)</li>
+<li>Dashed lines: Q&A will be over IRC or the Etherpad, or the speaker will follow up afterwards</li></ul>
+<div>Times are in Eastern Standard Time (America/Toronto, GMT-5). If you have Javascript enabled, clicking on talk pages should include times in your computer's local time setting.</div>
+<div><svg width="800" height="300" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><title>Graphical view of the schedule</title><g transform="translate(0,0)"><title>Schedule for Saturday</title><rect width="800" height="150" x="0" y="0" fill="white"></rect><text font-size="10" fill="black" y="12" x="3">Saturday</text><a href="https://emacsconf.org/2024/talks/sat-open" title="Saturday opening remarks" data-slug="sat-open"><title> 9:00- 9:10 Saturday opening remarks</title><rect x="0" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(13,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sat-open</text></g></a><a href="https://emacsconf.org/2024/talks/papers" title="Writing academic papers in Org-Roam" data-slug="papers"><title> 9:10- 9:20 Writing academic papers in Org-Roam</title><rect x="15" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(28,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">papers</text></g></a><a href="https://emacsconf.org/2024/talks/project" title="Managing writing project metadata with org-mode" data-slug="project"><title> 9:40-10:00 Managing writing project metadata with org-mode</title><rect x="62" y="15" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(91,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">project</text></g></a><a href="https://emacsconf.org/2024/talks/org-update" title="The Future of Org" data-slug="org-update"><title>10:20-10:40 The Future of Org</title><rect x="125" y="15" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(154,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">org-update</text></g></a><a href="https://emacsconf.org/2024/talks/color" title="Colour your Emacs with ease" data-slug="color"><title>11:00-11:10 Colour your Emacs with ease</title><rect x="188" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(201,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">color</text></g></a><a href="https://emacsconf.org/2024/talks/theme" title="My journey of finding and creating the “perfect” Emacs theme" data-slug="theme"><title> 1:00- 1:10 My journey of finding and creating the “perfect” Emacs theme</title><rect x="376" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(389,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">theme</text></g></a><a href="https://emacsconf.org/2024/talks/water" title="Watering my (digital) plant with Emacs timers" data-slug="water"><title> 1:30- 1:45 Watering my (digital) plant with Emacs timers</title><rect x="423" y="15" opacity="0.8" width="23" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(444,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">water</text></g></a><a href="https://emacsconf.org/2024/talks/shell" title="Emacs as a shell" data-slug="shell"><title> 1:55- 2:35 Emacs as a shell</title><rect x="462" y="15" opacity="0.8" width="62" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(522,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">shell</text></g></a><a href="https://emacsconf.org/2024/talks/casual" title="Re-imagining the Emacs user experience with Casual Suite" data-slug="casual"><title> 2:45- 3:05 Re-imagining the Emacs user experience with Casual Suite</title><rect x="541" y="15" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(570,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">casual</text></g></a><a href="https://emacsconf.org/2024/talks/hyperdrive" title="New in hyperdrive.el: org-transclusion, easy installation, and more!" data-slug="hyperdrive"><title> 3:25- 3:45 New in hyperdrive.el: org-transclusion, easy installation, and more!</title><rect x="603" y="15" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(632,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">hyperdrive</text></g></a><a href="https://emacsconf.org/2024/talks/writing" title="Emacs Writing Studio" data-slug="writing"><title> 4:05- 4:15 Emacs Writing Studio</title><rect x="666" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(679,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">writing</text></g></a><a href="https://emacsconf.org/2024/talks/emacs30" title="Emacs 30 Highlights" data-slug="emacs30"><title> 4:25- 4:50 Emacs 30 Highlights</title><rect x="698" y="15" opacity="0.8" width="39" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(735,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">emacs30</text></g></a><a href="https://emacsconf.org/2024/talks/sat-close" title="Saturday closing remarks" data-slug="sat-close"><title> 5:00- 5:10 Saturday closing remarks</title><rect x="752" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(765,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sat-close</text></g></a><a href="https://emacsconf.org/2024/talks/gypsum" title="Gypsum: my clone of Emacs and ELisp written in Scheme" data-slug="gypsum"><title>10:00-10:20 Gypsum: my clone of Emacs and ELisp written in Scheme</title><rect x="94" y="75" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(123,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">gypsum</text></g></a><a href="https://emacsconf.org/2024/talks/rust" title="An experimental Emacs core in Rust" data-slug="rust"><title>10:40-11:00 An experimental Emacs core in Rust</title><rect x="156" y="75" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(185,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">rust</text></g></a><a href="https://emacsconf.org/2024/talks/p-search" title="p-search: a local search engine in Emacs" data-slug="p-search"><title>11:20-11:45 p-search: a local search engine in Emacs</title><rect x="219" y="75" opacity="0.8" width="39" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(256,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">p-search</text></g></a><a href="https://emacsconf.org/2024/talks/julia" title="Exploring shared philosophies in Julia and Emacs" data-slug="julia"><title> 1:00- 1:10 Exploring shared philosophies in Julia and Emacs</title><rect x="376" y="75" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(389,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">julia</text></g></a><a href="https://emacsconf.org/2024/talks/guile" title="Beguiling Emacs: Guile-Emacs relaunched!" data-slug="guile"><title> 1:25- 1:45 Beguiling Emacs: Guile-Emacs relaunched!</title><rect x="415" y="75" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="5,5,5" fill="skyblue"></rect><g transform="translate(444,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">guile</text></g></a><a href="https://emacsconf.org/2024/talks/secrets" title="Committing secrets with git using sops-mode" data-slug="secrets"><title> 1:55- 2:05 Committing secrets with git using sops-mode</title><rect x="462" y="75" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(475,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">secrets</text></g></a><a href="https://emacsconf.org/2024/talks/mcclim" title="Elisp and McCLIM" data-slug="mcclim"><title> 2:25- 3:25 Elisp and McCLIM</title><rect x="509" y="75" opacity="0.8" width="94" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(601,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">mcclim</text></g></a><a href="https://emacsconf.org/2024/talks/repro" title="Reproducibly building Emacs: “Hey your checksum is the same as mine!”" data-slug="repro"><title> 3:45- 4:05 Reproducibly building Emacs: “Hey your checksum is the same as mine!”</title><rect x="635" y="75" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(664,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">repro</text></g></a><g transform="translate(0,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">9 AM</text></g><g transform="translate(94,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">10 AM</text></g><g transform="translate(188,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">11 AM</text></g><g transform="translate(282,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">12 PM</text></g><g transform="translate(376,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">1 PM</text></g><g transform="translate(470,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">2 PM</text></g><g transform="translate(564,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">3 PM</text></g><g transform="translate(658,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">4 PM</text></g><g transform="translate(752,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">5 PM</text></g></g><g transform="translate(0,150)"><title>Schedule for Sunday</title><rect width="800" height="150" x="0" y="0" fill="white"></rect><text font-size="10" fill="black" y="12" x="3">Sunday</text><a href="https://emacsconf.org/2024/talks/sun-open" title="Sunday opening remarks" data-slug="sun-open"><title> 9:00- 9:10 Sunday opening remarks</title><rect x="0" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(13,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sun-open</text></g></a><a href="https://emacsconf.org/2024/talks/links" title="Unlocking linked data: replacing specialized apps with an Org-based semantic wiki" data-slug="links"><title> 9:10- 9:20 Unlocking linked data: replacing specialized apps with an Org-based semantic wiki</title><rect x="15" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(28,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">links</text></g></a><a href="https://emacsconf.org/2024/talks/regex" title="Emacs regex compilation and future directions for expressive pattern matching" data-slug="regex"><title> 9:30- 9:50 Emacs regex compilation and future directions for expressive pattern matching</title><rect x="47" y="15" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(76,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">regex</text></g></a><a href="https://emacsconf.org/2024/talks/learning" title="Survival of the skillest: Thriving in the learning jungle" data-slug="learning"><title>10:00-10:20 Survival of the skillest: Thriving in the learning jungle</title><rect x="94" y="15" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(123,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">learning</text></g></a><a href="https://emacsconf.org/2024/talks/language" title="Immersive language learning with Emacs" data-slug="language"><title>10:30-10:40 Immersive language learning with Emacs</title><rect x="141" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(154,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">language</text></g></a><a href="https://emacsconf.org/2024/talks/org-teach" title="org-teach: a minor mode for writing course materials in Emacs" data-slug="org-teach"><title>10:50-11:10 org-teach: a minor mode for writing course materials in Emacs</title><rect x="172" y="15" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(201,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">org-teach</text></g></a><a href="https://emacsconf.org/2024/talks/hyperbole" title="Fun things with GNU Hyperbole" data-slug="hyperbole"><title>11:25-11:40 Fun things with GNU Hyperbole</title><rect x="227" y="15" opacity="0.8" width="23" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(248,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">hyperbole</text></g></a><a href="https://emacsconf.org/2024/talks/hywiki" title="HyWiki: Fast, hyperlinked note-taking with no markup required" data-slug="hywiki"><title> 1:00- 1:20 HyWiki: Fast, hyperlinked note-taking with no markup required</title><rect x="376" y="15" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(405,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">hywiki</text></g></a><a href="https://emacsconf.org/2024/talks/pgmacs" title="PGmacs: browsing and editing PostgreSQL databases from Emacs" data-slug="pgmacs"><title> 1:35- 1:50 PGmacs: browsing and editing PostgreSQL databases from Emacs</title><rect x="431" y="15" opacity="0.8" width="23" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(452,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">pgmacs</text></g></a><a href="https://emacsconf.org/2024/talks/blee" title="About Blee: enveloping our own autonomy directed digital ecosystem with Emacs" data-slug="blee"><title> 2:05- 2:45 About Blee: enveloping our own autonomy directed digital ecosystem with Emacs</title><rect x="478" y="15" opacity="0.8" width="62" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(538,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">blee</text></g></a><a href="https://emacsconf.org/2024/talks/literate" title="Literate programming for the 21st Century" data-slug="literate"><title> 2:55- 3:15 Literate programming for the 21st Century</title><rect x="556" y="15" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(585,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">literate</text></g></a><a href="https://emacsconf.org/2024/talks/students" title="An example of a cohesive student workflow in Emacs" data-slug="students"><title> 3:30- 3:40 An example of a cohesive student workflow in Emacs</title><rect x="611" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(624,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">students</text></g></a><a href="https://emacsconf.org/2024/talks/sharing" title="So you want to be an Emacs-fluencer?" data-slug="sharing"><title> 3:50- 4:10 So you want to be an Emacs-fluencer?</title><rect x="643" y="15" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(672,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sharing</text></g></a><a href="https://emacsconf.org/2024/talks/transducers" title="Transducers: finally, ergonomic data processing for Emacs!" data-slug="transducers"><title> 4:20- 4:50 Transducers: finally, ergonomic data processing for Emacs!</title><rect x="690" y="15" opacity="0.8" width="47" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(735,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">transducers</text></g></a><a href="https://emacsconf.org/2024/talks/sun-close" title="Sunday closing remarks" data-slug="sun-close"><title> 5:00- 5:10 Sunday closing remarks</title><rect x="752" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(765,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sun-close</text></g></a><g transform="translate(0,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">9 AM</text></g><g transform="translate(94,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">10 AM</text></g><g transform="translate(188,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">11 AM</text></g><g transform="translate(282,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">12 PM</text></g><g transform="translate(376,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">1 PM</text></g><g transform="translate(470,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">2 PM</text></g><g transform="translate(564,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">3 PM</text></g><g transform="translate(658,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">4 PM</text></g><g transform="translate(752,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">5 PM</text></g></g></svg></div>
+<div><h1>Saturday, Dec 7, 2024</h1>
+<div data-start="2024-12-07T15:00:00+0000" data-end="2024-12-07T15:20:00+0000" class="sched-entry track-Development">
+<div class="sched-meta"><span class="sched-time"><span class="sched-start">10:00</span> - <span class="sched-end">10:20</span></span> <span class="sched-track Development">Development</span> <span class="sched-pad"> <a href="https://pad.emacsconf.org/2024-gypsum">Etherpad</a></span>; <span class="sched-q-and-a">Q&amp;A: <a href="https://media.emacsconf.org/2024/current/bbb-gypsum.html">BBB</a></span>; <span class="sched-slug">id:gypsum</span></div>
+<div class="sched-title"><a href="https://emacsconf.org/2024/talks/gypsum">Gypsum: my clone of Emacs and ELisp written in Scheme</a></div>
+ <div class="sched-speakers">Ramin Honary (he/him)</div>
+
+</div>
+
+<div data-start="2024-12-07T15:40:00+0000" data-end="2024-12-07T16:00:00+0000" class="sched-entry track-Development">
+<div class="sched-meta"><span class="sched-time"><span class="sched-start">10:40</span> - <span class="sched-end">11:00</span></span> <span class="sched-track Development">Development</span> <span class="sched-pad"> <a href="https://pad.emacsconf.org/2024-rust">Etherpad</a></span>; <span class="sched-q-and-a">Q&amp;A: <a href="https://media.emacsconf.org/2024/current/bbb-rust.html">BBB</a></span>; <span class="sched-slug">id:rust</span></div>
+<div class="sched-title"><a href="https://emacsconf.org/2024/talks/rust">An experimental Emacs core in Rust</a></div>
+ <div class="sched-speakers">Troy Hinckley</div>
+
+</div>
+
+<div data-start="2024-12-07T16:20:00+0000" data-end="2024-12-07T16:45:00+0000" class="sched-entry track-Development">
+<div class="sched-meta"><span class="sched-time"><span class="sched-start">11:20</span> - <span class="sched-end">11:45</span></span> <span class="sched-track Development">Development</span> <span class="sched-pad"> <a href="https://pad.emacsconf.org/2024-p-search">Etherpad</a></span>; <span class="sched-q-and-a">Q&amp;A: <a href="https://media.emacsconf.org/2024/current/bbb-p-search.html">BBB</a></span>; <span class="sched-slug">id:p-search</span></div>
+<div class="sched-title"><a href="https://emacsconf.org/2024/talks/p-search">p-search: a local search engine in Emacs</a></div>
+ <div class="sched-speakers">Zac Romero</div>
+
+</div>
+
+<div data-start="2024-12-07T18:00:00+0000" data-end="2024-12-07T18:10:00+0000" class="sched-entry track-Development">
+<div class="sched-meta"><span class="sched-time"><span class="sched-start">1:00</span> - <span class="sched-end">1:10</span></span> <span class="sched-track Development">Development</span> <span class="sched-pad"> <a href="https://pad.emacsconf.org/2024-julia">Etherpad</a></span>; <span class="sched-q-and-a">Q&amp;A: <a href="https://media.emacsconf.org/2024/current/bbb-julia.html">BBB</a></span>; <span class="sched-slug">id:julia</span></div>
+<div class="sched-title"><a href="https://emacsconf.org/2024/talks/julia">Exploring shared philosophies in Julia and Emacs</a></div>
+ <div class="sched-speakers">Gabriele Bozzola (he/him/his)</div>
+
+</div>
+
+<div data-start="2024-12-07T18:25:00+0000" data-end="2024-12-07T18:45:00+0000" class="sched-entry track-Development">
+<div class="sched-meta"><span class="sched-time"><span class="sched-start">1:25</span> - <span class="sched-end">1:45</span></span> <span class="sched-track Development">Development</span> <span class="sched-pad"> <a href="https://pad.emacsconf.org/2024-guile">Etherpad</a></span>; <span class="sched-q-and-a">Q&amp;A: <a href="https://chat.emacsconf.org/?join=emacsconf">#emacsconf, speaker nick: robin</a></span>; <span class="sched-slug">id:guile</span></div>
+<div class="sched-title"><a href="https://emacsconf.org/2024/talks/guile">Beguiling Emacs: Guile-Emacs relaunched!</a></div>
+ <div class="sched-speakers">Robin Templeton (they/them)</div>
+
+</div>
+
+<div data-start="2024-12-07T18:55:00+0000" data-end="2024-12-07T19:05:00+0000" class="sched-entry track-Development">
+<div class="sched-meta"><span class="sched-time"><span class="sched-start">1:55</span> - <span class="sched-end">2:05</span></span> <span class="sched-track Development">Development</span> <span class="sched-pad"> <a href="https://pad.emacsconf.org/2024-secrets">Etherpad</a></span>; <span class="sched-q-and-a">Q&amp;A: <a href="https://media.emacsconf.org/2024/current/bbb-secrets.html">BBB</a></span>; <span class="sched-slug">id:secrets</span></div>
+<div class="sched-title"><a href="https://emacsconf.org/2024/talks/secrets">Committing secrets with git using sops-mode</a></div>
+ <div class="sched-speakers">Jonathan Otsuka</div>
+
+</div>
+
+<div data-start="2024-12-07T19:25:00+0000" data-end="2024-12-07T20:25:00+0000" class="sched-entry track-Development">
+<div class="sched-meta"><span class="sched-time"><span class="sched-start">2:25</span> - <span class="sched-end">3:25</span></span> <span class="sched-track Development">Development</span> <span class="sched-pad"> <a href="https://pad.emacsconf.org/2024-mcclim">Etherpad</a></span>; <span class="sched-q-and-a">Q&amp;A: <a href="https://media.emacsconf.org/2024/current/bbb-mcclim.html">BBB</a></span>; <span class="sched-slug">id:mcclim</span></div>
+<div class="sched-title"><a href="https://emacsconf.org/2024/talks/mcclim">Elisp and McCLIM</a></div>
+ <div class="sched-speakers">he or e/em/eir (Spivak, male and neuter pronouns are fine)</div>
+
+</div>
+
+<div data-start="2024-12-07T20:45:00+0000" data-end="2024-12-07T21:05:00+0000" class="sched-entry track-Development">
+<div class="sched-meta"><span class="sched-time"><span class="sched-start">3:45</span> - <span class="sched-end">4:05</span></span> <span class="sched-track Development">Development</span> <span class="sched-pad"> <a href="https://pad.emacsconf.org/2024-repro">Etherpad</a></span>; <span class="sched-q-and-a">Q&amp;A: <a href="https://media.emacsconf.org/2024/current/bbb-repro.html">BBB</a></span>; <span class="sched-slug">id:repro</span></div>
+<div class="sched-title"><a href="https://emacsconf.org/2024/talks/repro">Reproducibly building Emacs: “Hey your checksum is the same as mine!”</a></div>
+ <div class="sched-speakers">Aaron Grothe (he/him)</div>
+
+</div>
+
+</div>
diff --git a/2024/watch/gen.md b/2024/watch/gen.md
new file mode 100644
index 00000000..188c5a2d
--- /dev/null
+++ b/2024/watch/gen.md
@@ -0,0 +1,234 @@
+<!-- Automatically generated by emacsconf-publish-watch-pages -->
+<!--
+[[!inline pages="internal(2024/watch/announce)" raw="yes"]]
+[[!meta title="General stream"]]
+[[!sidebar content=""]] -->
+
+<hr size="1">
+<div><a name="watch"></a><strong>Watch</strong> - <a href="#links">Pad and Q&amp;A links</a> - <a href="#chat">Chat</a> - <a href="#sched">Schedule</a> | Tracks: <strong>General</strong> - <a href="/2024/watch/dev/">Development</a> | <a href="https://emacsconf.org/2024/watch/">Tips for watching/participating</a></div>
+
+For better performance, we recommend watching <a href="https://live0.emacsconf.org/gen.webm">https://live0.emacsconf.org/gen.webm</a> using a streaming media player. Examples:
+
+<ul>
+<li>mpv https://live0.emacsconf.org/gen.webm</li>
+<li>vlc https://live0.emacsconf.org/gen.webm</li>
+<li>ffplay https://live0.emacsconf.org/gen.webm</li>
+</ul>
+
+If you have limited bandwidth, you can watch the low-res stream <a href="https://live0.emacsconf.org/gen-480p.webm">https://live0.emacsconf.org/gen-480p.webm</a>.
+
+If you don't have a streaming media player, you might be able to watch using the player below. (Google Chrome seems to be having issues; Mozilla Firefox might work better. If watching from a phone, Google Chrome seems to work there, or download VLC from your phone's app store and use the URLs like https://live0.emacsconf.org/gen.webm .)
+
+<video controls class="reload"><source src="https://live0.emacsconf.org/gen.webm" type="video/webm" /></video>
+
+<hr size="1"><div><a name="links"></a><a href="#watch">Watch</a> - <strong>Pad and Q&amp;A links</strong> - <a href="#chat">Chat</a> - <a href="#sched">Schedule</a> | Tracks: <strong>General</strong> - <a href="/2024/watch/dev/">Development</a></div><div><span><a href="https://emacsconf.org/2024/talks/sat-open">sat-open</a> (<a class="pad-link" href="https://pad.emacsconf.org/2024-sat-open">pad</a>, <a href="https://pad.emacsconf.org/2024-sat-open">Etherpad</a>)</span> - <span><a href="https://emacsconf.org/2024/talks/papers">papers</a> (<a class="pad-link" href="https://pad.emacsconf.org/2024-papers">pad</a>, <a href="https://media.emacsconf.org/2024/current/bbb-papers.html">BBB</a>)</span> - <span><a href="https://emacsconf.org/2024/talks/project">project</a> (<a class="pad-link" href="https://pad.emacsconf.org/2024-project">pad</a>, <a href="https://media.emacsconf.org/2024/current/bbb-project.html">BBB</a>)</span> - <span><a href="https://emacsconf.org/2024/talks/org-update">org-update</a> (<a class="pad-link" href="https://pad.emacsconf.org/2024-org-update">pad</a>, <a href="https://media.emacsconf.org/2024/current/bbb-org-update.html">BBB</a>)</span> - <span><a href="https://emacsconf.org/2024/talks/color">color</a> (<a class="pad-link" href="https://pad.emacsconf.org/2024-color">pad</a>, <a href="https://media.emacsconf.org/2024/current/bbb-color.html">BBB</a>)</span> - <span><a href="https://emacsconf.org/2024/talks/theme">theme</a> (<a class="pad-link" href="https://pad.emacsconf.org/2024-theme">pad</a>, <a href="https://media.emacsconf.org/2024/current/bbb-theme.html">BBB</a>)</span> - <span><a href="https://emacsconf.org/2024/talks/water">water</a> (<a class="pad-link" href="https://pad.emacsconf.org/2024-water">pad</a>, <a href="https://chat.emacsconf.org/?join=emacsconf">#emacsconf, speaker nick: lispmacs</a>)</span> - <span><a href="https://emacsconf.org/2024/talks/shell">shell</a> (<a class="pad-link" href="https://pad.emacsconf.org/2024-shell">pad</a>, <a href="https://chat.emacsconf.org/?join=emacsconf">#emacsconf, speaker nick: lispmacs</a>)</span> - <span><a href="https://emacsconf.org/2024/talks/casual">casual</a> (<a class="pad-link" href="https://pad.emacsconf.org/2024-casual">pad</a>, <a href="https://media.emacsconf.org/2024/current/bbb-casual.html">BBB</a>)</span> - <span><a href="https://emacsconf.org/2024/talks/hyperdrive">hyperdrive</a> (<a class="pad-link" href="https://pad.emacsconf.org/2024-hyperdrive">pad</a>, <a href="https://media.emacsconf.org/2024/current/bbb-hyperdrive.html">BBB</a>)</span> - <span><a href="https://emacsconf.org/2024/talks/writing">writing</a> (<a class="pad-link" href="https://pad.emacsconf.org/2024-writing">pad</a>, none)</span> - <span><a href="https://emacsconf.org/2024/talks/emacs30">emacs30</a> (<a class="pad-link" href="https://pad.emacsconf.org/2024-emacs30">pad</a>, <a href="https://media.emacsconf.org/2024/current/bbb-emacs30.html">BBB</a>)</span> - <span><a href="https://emacsconf.org/2024/talks/sat-close">sat-close</a> (<a class="pad-link" href="https://pad.emacsconf.org/2024-sat-close">pad</a>, <a href="https://pad.emacsconf.org/2024-sat-close">Etherpad</a>)</span> - <span><a href="https://emacsconf.org/2024/talks/sun-open">sun-open</a> (<a class="pad-link" href="https://pad.emacsconf.org/2024-sun-open">pad</a>, <a href="https://pad.emacsconf.org/2024-sun-open">Etherpad</a>)</span> - <span><a href="https://emacsconf.org/2024/talks/links">links</a> (<a class="pad-link" href="https://pad.emacsconf.org/2024-links">pad</a>, <a href="https://pad.emacsconf.org/2024-links">Etherpad</a>)</span> - <span><a href="https://emacsconf.org/2024/talks/regex">regex</a> (<a class="pad-link" href="https://pad.emacsconf.org/2024-regex">pad</a>, <a href="https://chat.emacsconf.org/?join=emacsconf">#emacsconf, speaker nick: cosmicexplorer</a>)</span> - <span><a href="https://emacsconf.org/2024/talks/learning">learning</a> (<a class="pad-link" href="https://pad.emacsconf.org/2024-learning">pad</a>, <a href="https://pad.emacsconf.org/2024-learning">Etherpad</a>)</span> - <span><a href="https://emacsconf.org/2024/talks/language">language</a> (<a class="pad-link" href="https://pad.emacsconf.org/2024-language">pad</a>, <a href="https://pad.emacsconf.org/2024-language">Etherpad</a>)</span> - <span><a href="https://emacsconf.org/2024/talks/org-teach">org-teach</a> (<a class="pad-link" href="https://pad.emacsconf.org/2024-org-teach">pad</a>, <a href="https://media.emacsconf.org/2024/current/bbb-org-teach.html">BBB</a>)</span> - <span><a href="https://emacsconf.org/2024/talks/hyperbole">hyperbole</a> (<a class="pad-link" href="https://pad.emacsconf.org/2024-hyperbole">pad</a>, <a href="https://media.emacsconf.org/2024/current/bbb-hyperbole.html">BBB</a>)</span> - <span><a href="https://emacsconf.org/2024/talks/hywiki">hywiki</a> (<a class="pad-link" href="https://pad.emacsconf.org/2024-hywiki">pad</a>, <a href="https://media.emacsconf.org/2024/current/bbb-hywiki.html">BBB</a>)</span> - <span><a href="https://emacsconf.org/2024/talks/pgmacs">pgmacs</a> (<a class="pad-link" href="https://pad.emacsconf.org/2024-pgmacs">pad</a>, <a href="https://media.emacsconf.org/2024/current/bbb-pgmacs.html">BBB</a>)</span> - <span><a href="https://emacsconf.org/2024/talks/blee">blee</a> (<a class="pad-link" href="https://pad.emacsconf.org/2024-blee">pad</a>, <a href="https://media.emacsconf.org/2024/current/bbb-blee.html">BBB</a>)</span> - <span><a href="https://emacsconf.org/2024/talks/literate">literate</a> (<a class="pad-link" href="https://pad.emacsconf.org/2024-literate">pad</a>, <a href="https://media.emacsconf.org/2024/current/bbb-literate.html">BBB</a>)</span> - <span><a href="https://emacsconf.org/2024/talks/students">students</a> (<a class="pad-link" href="https://pad.emacsconf.org/2024-students">pad</a>, <a href="https://chat.emacsconf.org/?join=emacsconf">#emacsconf, speaker nick: bardman</a>)</span> - <span><a href="https://emacsconf.org/2024/talks/sharing">sharing</a> (<a class="pad-link" href="https://pad.emacsconf.org/2024-sharing">pad</a>, <a href="https://pad.emacsconf.org/2024-sharing">Etherpad</a>)</span> - <span><a href="https://emacsconf.org/2024/talks/transducers">transducers</a> (<a class="pad-link" href="https://pad.emacsconf.org/2024-transducers">pad</a>, <a href="https://media.emacsconf.org/2024/current/bbb-transducers.html">BBB</a>)</span> - <span><a href="https://emacsconf.org/2024/talks/sun-close">sun-close</a> (<a class="pad-link" href="https://pad.emacsconf.org/2024-sun-close">pad</a>, <a href="https://pad.emacsconf.org/2024-sun-close">Etherpad</a>)</span></div>
+<div class="pad-output"></div>
+<hr size="1"><div><a name="chat"></a><a href="#watch">Watch</a> - <a href="#links">Pad and Q&amp;A links</a> - <strong>Chat</strong> - <a href="#sched">Schedule</a> | Tracks: <strong>General</strong> - <a href="/2024/watch/dev/">Development</a></div><div>Chat: <a href="https://chat.emacsconf.org/?join=emacsconf,emacsconf-org,emacsconf-accessible,emacsconf-dev,emacsconf-gen">emacsconf-gen</a> on libera.chat</div>
+
+<div class="chat-iframe" data-track="gen"></div>
+<iframe src="https://chat.emacsconf.org/?join=emacsconf,emacsconf-org,emacsconf-accessible,emacsconf-dev,emacsconf-gen" height="600" width="100%"></iframe>
+<hr size="1"><div><a name="sched"></a><a href="#watch">Watch</a> - <a href="#links">Pad and Q&amp;A links</a> - <a href="#chat">Chat</a> - <strong>Schedule</strong> | Tracks: <strong>General</strong> - <a href="/2024/watch/dev/">Development</a></div>
+<ul>Legend:
+<li>Solid lines: Q&A will be through a BigBlueButton room (you can ask questions there or through IRC/Etherpad)</li>
+<li>Dashed lines: Q&A will be over IRC or the Etherpad, or the speaker will follow up afterwards</li></ul>
+<div>Times are in Eastern Standard Time (America/Toronto, GMT-5). If you have Javascript enabled, clicking on talk pages should include times in your computer's local time setting.</div>
+<div><svg width="800" height="300" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><title>Graphical view of the schedule</title><g transform="translate(0,0)"><title>Schedule for Saturday</title><rect width="800" height="150" x="0" y="0" fill="white"></rect><text font-size="10" fill="black" y="12" x="3">Saturday</text><a href="https://emacsconf.org/2024/talks/sat-open" title="Saturday opening remarks" data-slug="sat-open"><title> 9:00- 9:10 Saturday opening remarks</title><rect x="0" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(13,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sat-open</text></g></a><a href="https://emacsconf.org/2024/talks/papers" title="Writing academic papers in Org-Roam" data-slug="papers"><title> 9:10- 9:20 Writing academic papers in Org-Roam</title><rect x="15" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(28,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">papers</text></g></a><a href="https://emacsconf.org/2024/talks/project" title="Managing writing project metadata with org-mode" data-slug="project"><title> 9:40-10:00 Managing writing project metadata with org-mode</title><rect x="62" y="15" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(91,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">project</text></g></a><a href="https://emacsconf.org/2024/talks/org-update" title="The Future of Org" data-slug="org-update"><title>10:20-10:40 The Future of Org</title><rect x="125" y="15" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(154,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">org-update</text></g></a><a href="https://emacsconf.org/2024/talks/color" title="Colour your Emacs with ease" data-slug="color"><title>11:00-11:10 Colour your Emacs with ease</title><rect x="188" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(201,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">color</text></g></a><a href="https://emacsconf.org/2024/talks/theme" title="My journey of finding and creating the “perfect” Emacs theme" data-slug="theme"><title> 1:00- 1:10 My journey of finding and creating the “perfect” Emacs theme</title><rect x="376" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(389,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">theme</text></g></a><a href="https://emacsconf.org/2024/talks/water" title="Watering my (digital) plant with Emacs timers" data-slug="water"><title> 1:30- 1:45 Watering my (digital) plant with Emacs timers</title><rect x="423" y="15" opacity="0.8" width="23" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(444,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">water</text></g></a><a href="https://emacsconf.org/2024/talks/shell" title="Emacs as a shell" data-slug="shell"><title> 1:55- 2:35 Emacs as a shell</title><rect x="462" y="15" opacity="0.8" width="62" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(522,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">shell</text></g></a><a href="https://emacsconf.org/2024/talks/casual" title="Re-imagining the Emacs user experience with Casual Suite" data-slug="casual"><title> 2:45- 3:05 Re-imagining the Emacs user experience with Casual Suite</title><rect x="541" y="15" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(570,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">casual</text></g></a><a href="https://emacsconf.org/2024/talks/hyperdrive" title="New in hyperdrive.el: org-transclusion, easy installation, and more!" data-slug="hyperdrive"><title> 3:25- 3:45 New in hyperdrive.el: org-transclusion, easy installation, and more!</title><rect x="603" y="15" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(632,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">hyperdrive</text></g></a><a href="https://emacsconf.org/2024/talks/writing" title="Emacs Writing Studio" data-slug="writing"><title> 4:05- 4:15 Emacs Writing Studio</title><rect x="666" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(679,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">writing</text></g></a><a href="https://emacsconf.org/2024/talks/emacs30" title="Emacs 30 Highlights" data-slug="emacs30"><title> 4:25- 4:50 Emacs 30 Highlights</title><rect x="698" y="15" opacity="0.8" width="39" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(735,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">emacs30</text></g></a><a href="https://emacsconf.org/2024/talks/sat-close" title="Saturday closing remarks" data-slug="sat-close"><title> 5:00- 5:10 Saturday closing remarks</title><rect x="752" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(765,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sat-close</text></g></a><a href="https://emacsconf.org/2024/talks/gypsum" title="Gypsum: my clone of Emacs and ELisp written in Scheme" data-slug="gypsum"><title>10:00-10:20 Gypsum: my clone of Emacs and ELisp written in Scheme</title><rect x="94" y="75" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(123,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">gypsum</text></g></a><a href="https://emacsconf.org/2024/talks/rust" title="An experimental Emacs core in Rust" data-slug="rust"><title>10:40-11:00 An experimental Emacs core in Rust</title><rect x="156" y="75" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(185,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">rust</text></g></a><a href="https://emacsconf.org/2024/talks/p-search" title="p-search: a local search engine in Emacs" data-slug="p-search"><title>11:20-11:45 p-search: a local search engine in Emacs</title><rect x="219" y="75" opacity="0.8" width="39" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(256,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">p-search</text></g></a><a href="https://emacsconf.org/2024/talks/julia" title="Exploring shared philosophies in Julia and Emacs" data-slug="julia"><title> 1:00- 1:10 Exploring shared philosophies in Julia and Emacs</title><rect x="376" y="75" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(389,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">julia</text></g></a><a href="https://emacsconf.org/2024/talks/guile" title="Beguiling Emacs: Guile-Emacs relaunched!" data-slug="guile"><title> 1:25- 1:45 Beguiling Emacs: Guile-Emacs relaunched!</title><rect x="415" y="75" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="5,5,5" fill="skyblue"></rect><g transform="translate(444,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">guile</text></g></a><a href="https://emacsconf.org/2024/talks/secrets" title="Committing secrets with git using sops-mode" data-slug="secrets"><title> 1:55- 2:05 Committing secrets with git using sops-mode</title><rect x="462" y="75" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(475,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">secrets</text></g></a><a href="https://emacsconf.org/2024/talks/mcclim" title="Elisp and McCLIM" data-slug="mcclim"><title> 2:25- 3:25 Elisp and McCLIM</title><rect x="509" y="75" opacity="0.8" width="94" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(601,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">mcclim</text></g></a><a href="https://emacsconf.org/2024/talks/repro" title="Reproducibly building Emacs: “Hey your checksum is the same as mine!”" data-slug="repro"><title> 3:45- 4:05 Reproducibly building Emacs: “Hey your checksum is the same as mine!”</title><rect x="635" y="75" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(664,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">repro</text></g></a><g transform="translate(0,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">9 AM</text></g><g transform="translate(94,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">10 AM</text></g><g transform="translate(188,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">11 AM</text></g><g transform="translate(282,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">12 PM</text></g><g transform="translate(376,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">1 PM</text></g><g transform="translate(470,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">2 PM</text></g><g transform="translate(564,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">3 PM</text></g><g transform="translate(658,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">4 PM</text></g><g transform="translate(752,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">5 PM</text></g></g><g transform="translate(0,150)"><title>Schedule for Sunday</title><rect width="800" height="150" x="0" y="0" fill="white"></rect><text font-size="10" fill="black" y="12" x="3">Sunday</text><a href="https://emacsconf.org/2024/talks/sun-open" title="Sunday opening remarks" data-slug="sun-open"><title> 9:00- 9:10 Sunday opening remarks</title><rect x="0" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(13,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sun-open</text></g></a><a href="https://emacsconf.org/2024/talks/links" title="Unlocking linked data: replacing specialized apps with an Org-based semantic wiki" data-slug="links"><title> 9:10- 9:20 Unlocking linked data: replacing specialized apps with an Org-based semantic wiki</title><rect x="15" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(28,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">links</text></g></a><a href="https://emacsconf.org/2024/talks/regex" title="Emacs regex compilation and future directions for expressive pattern matching" data-slug="regex"><title> 9:30- 9:50 Emacs regex compilation and future directions for expressive pattern matching</title><rect x="47" y="15" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(76,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">regex</text></g></a><a href="https://emacsconf.org/2024/talks/learning" title="Survival of the skillest: Thriving in the learning jungle" data-slug="learning"><title>10:00-10:20 Survival of the skillest: Thriving in the learning jungle</title><rect x="94" y="15" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(123,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">learning</text></g></a><a href="https://emacsconf.org/2024/talks/language" title="Immersive language learning with Emacs" data-slug="language"><title>10:30-10:40 Immersive language learning with Emacs</title><rect x="141" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(154,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">language</text></g></a><a href="https://emacsconf.org/2024/talks/org-teach" title="org-teach: a minor mode for writing course materials in Emacs" data-slug="org-teach"><title>10:50-11:10 org-teach: a minor mode for writing course materials in Emacs</title><rect x="172" y="15" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(201,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">org-teach</text></g></a><a href="https://emacsconf.org/2024/talks/hyperbole" title="Fun things with GNU Hyperbole" data-slug="hyperbole"><title>11:25-11:40 Fun things with GNU Hyperbole</title><rect x="227" y="15" opacity="0.8" width="23" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(248,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">hyperbole</text></g></a><a href="https://emacsconf.org/2024/talks/hywiki" title="HyWiki: Fast, hyperlinked note-taking with no markup required" data-slug="hywiki"><title> 1:00- 1:20 HyWiki: Fast, hyperlinked note-taking with no markup required</title><rect x="376" y="15" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(405,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">hywiki</text></g></a><a href="https://emacsconf.org/2024/talks/pgmacs" title="PGmacs: browsing and editing PostgreSQL databases from Emacs" data-slug="pgmacs"><title> 1:35- 1:50 PGmacs: browsing and editing PostgreSQL databases from Emacs</title><rect x="431" y="15" opacity="0.8" width="23" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(452,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">pgmacs</text></g></a><a href="https://emacsconf.org/2024/talks/blee" title="About Blee: enveloping our own autonomy directed digital ecosystem with Emacs" data-slug="blee"><title> 2:05- 2:45 About Blee: enveloping our own autonomy directed digital ecosystem with Emacs</title><rect x="478" y="15" opacity="0.8" width="62" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(538,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">blee</text></g></a><a href="https://emacsconf.org/2024/talks/literate" title="Literate programming for the 21st Century" data-slug="literate"><title> 2:55- 3:15 Literate programming for the 21st Century</title><rect x="556" y="15" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(585,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">literate</text></g></a><a href="https://emacsconf.org/2024/talks/students" title="An example of a cohesive student workflow in Emacs" data-slug="students"><title> 3:30- 3:40 An example of a cohesive student workflow in Emacs</title><rect x="611" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(624,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">students</text></g></a><a href="https://emacsconf.org/2024/talks/sharing" title="So you want to be an Emacs-fluencer?" data-slug="sharing"><title> 3:50- 4:10 So you want to be an Emacs-fluencer?</title><rect x="643" y="15" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(672,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sharing</text></g></a><a href="https://emacsconf.org/2024/talks/transducers" title="Transducers: finally, ergonomic data processing for Emacs!" data-slug="transducers"><title> 4:20- 4:50 Transducers: finally, ergonomic data processing for Emacs!</title><rect x="690" y="15" opacity="0.8" width="47" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(735,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">transducers</text></g></a><a href="https://emacsconf.org/2024/talks/sun-close" title="Sunday closing remarks" data-slug="sun-close"><title> 5:00- 5:10 Sunday closing remarks</title><rect x="752" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(765,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sun-close</text></g></a><g transform="translate(0,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">9 AM</text></g><g transform="translate(94,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">10 AM</text></g><g transform="translate(188,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">11 AM</text></g><g transform="translate(282,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">12 PM</text></g><g transform="translate(376,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">1 PM</text></g><g transform="translate(470,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">2 PM</text></g><g transform="translate(564,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">3 PM</text></g><g transform="translate(658,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">4 PM</text></g><g transform="translate(752,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">5 PM</text></g></g></svg></div>
+<div><h1>Saturday, Dec 7, 2024</h1>
+<div data-start="2024-12-07T14:00:00+0000" data-end="2024-12-07T14:10:00+0000" class="sched-entry track-General">
+<div class="sched-meta"><span class="sched-time"><span class="sched-start">9:00</span> - <span class="sched-end">9:10</span></span> <span class="sched-track General">General</span> <span class="sched-pad"> <a href="https://pad.emacsconf.org/2024-sat-open">Etherpad</a></span>; <span class="sched-q-and-a">Q&amp;A: <a href="https://pad.emacsconf.org/2024-sat-open">Etherpad</a></span>; <span class="sched-slug">id:sat-open</span></div>
+<div class="sched-title"><a href="https://emacsconf.org/2024/talks/sat-open">Saturday opening remarks</a></div>
+
+
+</div>
+
+<div data-start="2024-12-07T14:10:00+0000" data-end="2024-12-07T14:20:00+0000" class="sched-entry track-General">
+<div class="sched-meta"><span class="sched-time"><span class="sched-start">9:10</span> - <span class="sched-end">9:20</span></span> <span class="sched-track General">General</span> <span class="sched-pad"> <a href="https://pad.emacsconf.org/2024-papers">Etherpad</a></span>; <span class="sched-q-and-a">Q&amp;A: <a href="https://media.emacsconf.org/2024/current/bbb-papers.html">BBB</a></span>; <span class="sched-slug">id:papers</span></div>
+<div class="sched-title"><a href="https://emacsconf.org/2024/talks/papers">Writing academic papers in Org-Roam</a></div>
+ <div class="sched-speakers">Vincent Conus (he/him)</div>
+
+</div>
+
+<div data-start="2024-12-07T14:40:00+0000" data-end="2024-12-07T15:00:00+0000" class="sched-entry track-General">
+<div class="sched-meta"><span class="sched-time"><span class="sched-start">9:40</span> - <span class="sched-end">10:00</span></span> <span class="sched-track General">General</span> <span class="sched-pad"> <a href="https://pad.emacsconf.org/2024-project">Etherpad</a></span>; <span class="sched-q-and-a">Q&amp;A: <a href="https://media.emacsconf.org/2024/current/bbb-project.html">BBB</a></span>; <span class="sched-slug">id:project</span></div>
+<div class="sched-title"><a href="https://emacsconf.org/2024/talks/project">Managing writing project metadata with org-mode</a></div>
+ <div class="sched-speakers">Blaine Mooers (he/him)</div>
+
+</div>
+
+<div data-start="2024-12-07T15:20:00+0000" data-end="2024-12-07T15:40:00+0000" class="sched-entry track-General">
+<div class="sched-meta"><span class="sched-time"><span class="sched-start">10:20</span> - <span class="sched-end">10:40</span></span> <span class="sched-track General">General</span> <span class="sched-pad"> <a href="https://pad.emacsconf.org/2024-org-update">Etherpad</a></span>; <span class="sched-q-and-a">Q&amp;A: <a href="https://media.emacsconf.org/2024/current/bbb-org-update.html">BBB</a></span>; <span class="sched-slug">id:org-update</span></div>
+<div class="sched-title"><a href="https://emacsconf.org/2024/talks/org-update">The Future of Org</a></div>
+ <div class="sched-speakers">Ihor Radchenko and Bastien Guerry</div>
+
+</div>
+
+<div data-start="2024-12-07T16:00:00+0000" data-end="2024-12-07T16:10:00+0000" class="sched-entry track-General">
+<div class="sched-meta"><span class="sched-time"><span class="sched-start">11:00</span> - <span class="sched-end">11:10</span></span> <span class="sched-track General">General</span> <span class="sched-pad"> <a href="https://pad.emacsconf.org/2024-color">Etherpad</a></span>; <span class="sched-q-and-a">Q&amp;A: <a href="https://media.emacsconf.org/2024/current/bbb-color.html">BBB</a></span>; <span class="sched-slug">id:color</span></div>
+<div class="sched-title"><a href="https://emacsconf.org/2024/talks/color">Colour your Emacs with ease</a></div>
+ <div class="sched-speakers">Ryota (he/him)</div>
+
+</div>
+
+<div data-start="2024-12-07T18:00:00+0000" data-end="2024-12-07T18:10:00+0000" class="sched-entry track-General">
+<div class="sched-meta"><span class="sched-time"><span class="sched-start">1:00</span> - <span class="sched-end">1:10</span></span> <span class="sched-track General">General</span> <span class="sched-pad"> <a href="https://pad.emacsconf.org/2024-theme">Etherpad</a></span>; <span class="sched-q-and-a">Q&amp;A: <a href="https://media.emacsconf.org/2024/current/bbb-theme.html">BBB</a></span>; <span class="sched-slug">id:theme</span></div>
+<div class="sched-title"><a href="https://emacsconf.org/2024/talks/theme">My journey of finding and creating the “perfect” Emacs theme</a></div>
+ <div class="sched-speakers">MetroWind (he/him)</div>
+
+</div>
+
+<div data-start="2024-12-07T18:30:00+0000" data-end="2024-12-07T18:45:00+0000" class="sched-entry track-General">
+<div class="sched-meta"><span class="sched-time"><span class="sched-start">1:30</span> - <span class="sched-end">1:45</span></span> <span class="sched-track General">General</span> <span class="sched-pad"> <a href="https://pad.emacsconf.org/2024-water">Etherpad</a></span>; <span class="sched-q-and-a">Q&amp;A: <a href="https://chat.emacsconf.org/?join=emacsconf">#emacsconf, speaker nick: lispmacs</a></span>; <span class="sched-slug">id:water</span></div>
+<div class="sched-title"><a href="https://emacsconf.org/2024/talks/water">Watering my (digital) plant with Emacs timers</a></div>
+ <div class="sched-speakers">Christopher Howard (he/him)</div>
+
+</div>
+
+<div data-start="2024-12-07T18:55:00+0000" data-end="2024-12-07T19:35:00+0000" class="sched-entry track-General">
+<div class="sched-meta"><span class="sched-time"><span class="sched-start">1:55</span> - <span class="sched-end">2:35</span></span> <span class="sched-track General">General</span> <span class="sched-pad"> <a href="https://pad.emacsconf.org/2024-shell">Etherpad</a></span>; <span class="sched-q-and-a">Q&amp;A: <a href="https://chat.emacsconf.org/?join=emacsconf">#emacsconf, speaker nick: lispmacs</a></span>; <span class="sched-slug">id:shell</span></div>
+<div class="sched-title"><a href="https://emacsconf.org/2024/talks/shell">Emacs as a shell</a></div>
+ <div class="sched-speakers">Christopher Howard (he/him)</div>
+
+</div>
+
+<div data-start="2024-12-07T19:45:00+0000" data-end="2024-12-07T20:05:00+0000" class="sched-entry track-General">
+<div class="sched-meta"><span class="sched-time"><span class="sched-start">2:45</span> - <span class="sched-end">3:05</span></span> <span class="sched-track General">General</span> <span class="sched-pad"> <a href="https://pad.emacsconf.org/2024-casual">Etherpad</a></span>; <span class="sched-q-and-a">Q&amp;A: <a href="https://media.emacsconf.org/2024/current/bbb-casual.html">BBB</a></span>; <span class="sched-slug">id:casual</span></div>
+<div class="sched-title"><a href="https://emacsconf.org/2024/talks/casual">Re-imagining the Emacs user experience with Casual Suite</a></div>
+ <div class="sched-speakers">Charles Choi (he/him)</div>
+
+</div>
+
+<div data-start="2024-12-07T20:25:00+0000" data-end="2024-12-07T20:45:00+0000" class="sched-entry track-General">
+<div class="sched-meta"><span class="sched-time"><span class="sched-start">3:25</span> - <span class="sched-end">3:45</span></span> <span class="sched-track General">General</span> <span class="sched-pad"> <a href="https://pad.emacsconf.org/2024-hyperdrive">Etherpad</a></span>; <span class="sched-q-and-a">Q&amp;A: <a href="https://media.emacsconf.org/2024/current/bbb-hyperdrive.html">BBB</a></span>; <span class="sched-slug">id:hyperdrive</span></div>
+<div class="sched-title"><a href="https://emacsconf.org/2024/talks/hyperdrive">New in hyperdrive.el: org-transclusion, easy installation, and more!</a></div>
+ <div class="sched-speakers">Joseph Turner</div>
+
+</div>
+
+<div data-start="2024-12-07T21:05:00+0000" data-end="2024-12-07T21:15:00+0000" class="sched-entry track-General">
+<div class="sched-meta"><span class="sched-time"><span class="sched-start">4:05</span> - <span class="sched-end">4:15</span></span> <span class="sched-track General">General</span> <span class="sched-pad"> <a href="https://pad.emacsconf.org/2024-writing">Etherpad</a></span>; <span class="sched-q-and-a">Q&amp;A: none</span>; <span class="sched-slug">id:writing</span></div>
+<div class="sched-title"><a href="https://emacsconf.org/2024/talks/writing">Emacs Writing Studio</a></div>
+ <div class="sched-speakers">Peter Prevos (he)</div>
+
+</div>
+
+<div data-start="2024-12-07T21:25:00+0000" data-end="2024-12-07T21:50:00+0000" class="sched-entry track-General">
+<div class="sched-meta"><span class="sched-time"><span class="sched-start">4:25</span> - <span class="sched-end">4:50</span></span> <span class="sched-track General">General</span> <span class="sched-pad"> <a href="https://pad.emacsconf.org/2024-emacs30">Etherpad</a></span>; <span class="sched-q-and-a">Q&amp;A: <a href="https://media.emacsconf.org/2024/current/bbb-emacs30.html">BBB</a></span>; <span class="sched-slug">id:emacs30</span></div>
+<div class="sched-title"><a href="https://emacsconf.org/2024/talks/emacs30">Emacs 30 Highlights</a></div>
+ <div class="sched-speakers">Philip Kaludercic</div>
+
+</div>
+
+<div data-start="2024-12-07T22:00:00+0000" data-end="2024-12-07T22:10:00+0000" class="sched-entry track-General">
+<div class="sched-meta"><span class="sched-time"><span class="sched-start">5:00</span> - <span class="sched-end">5:10</span></span> <span class="sched-track General">General</span> <span class="sched-pad"> <a href="https://pad.emacsconf.org/2024-sat-close">Etherpad</a></span>; <span class="sched-q-and-a">Q&amp;A: <a href="https://pad.emacsconf.org/2024-sat-close">Etherpad</a></span>; <span class="sched-slug">id:sat-close</span></div>
+<div class="sched-title"><a href="https://emacsconf.org/2024/talks/sat-close">Saturday closing remarks</a></div>
+
+
+</div>
+
+<h1>Sunday, Dec 8, 2024</h1>
+<div data-start="2024-12-08T14:00:00+0000" data-end="2024-12-08T14:10:00+0000" class="sched-entry track-General">
+<div class="sched-meta"><span class="sched-time"><span class="sched-start">9:00</span> - <span class="sched-end">9:10</span></span> <span class="sched-track General">General</span> <span class="sched-pad"> <a href="https://pad.emacsconf.org/2024-sun-open">Etherpad</a></span>; <span class="sched-q-and-a">Q&amp;A: <a href="https://pad.emacsconf.org/2024-sun-open">Etherpad</a></span>; <span class="sched-slug">id:sun-open</span></div>
+<div class="sched-title"><a href="https://emacsconf.org/2024/talks/sun-open">Sunday opening remarks</a></div>
+
+
+</div>
+
+<div data-start="2024-12-08T14:10:00+0000" data-end="2024-12-08T14:20:00+0000" class="sched-entry track-General">
+<div class="sched-meta"><span class="sched-time"><span class="sched-start">9:10</span> - <span class="sched-end">9:20</span></span> <span class="sched-track General">General</span> <span class="sched-pad"> <a href="https://pad.emacsconf.org/2024-links">Etherpad</a></span>; <span class="sched-q-and-a">Q&amp;A: <a href="https://pad.emacsconf.org/2024-links">Etherpad</a></span>; <span class="sched-slug">id:links</span></div>
+<div class="sched-title"><a href="https://emacsconf.org/2024/talks/links">Unlocking linked data: replacing specialized apps with an Org-based semantic wiki</a></div>
+ <div class="sched-speakers">Abhinav Tushar (he/him)</div>
+
+</div>
+
+<div data-start="2024-12-08T14:30:00+0000" data-end="2024-12-08T14:50:00+0000" class="sched-entry track-General">
+<div class="sched-meta"><span class="sched-time"><span class="sched-start">9:30</span> - <span class="sched-end">9:50</span></span> <span class="sched-track General">General</span> <span class="sched-pad"> <a href="https://pad.emacsconf.org/2024-regex">Etherpad</a></span>; <span class="sched-q-and-a">Q&amp;A: <a href="https://chat.emacsconf.org/?join=emacsconf">#emacsconf, speaker nick: cosmicexplorer</a></span>; <span class="sched-slug">id:regex</span></div>
+<div class="sched-title"><a href="https://emacsconf.org/2024/talks/regex">Emacs regex compilation and future directions for expressive pattern matching</a></div>
+ <div class="sched-speakers">Danny McClanahan (they/them)</div>
+
+</div>
+
+<div data-start="2024-12-08T15:00:00+0000" data-end="2024-12-08T15:20:00+0000" class="sched-entry track-General">
+<div class="sched-meta"><span class="sched-time"><span class="sched-start">10:00</span> - <span class="sched-end">10:20</span></span> <span class="sched-track General">General</span> <span class="sched-pad"> <a href="https://pad.emacsconf.org/2024-learning">Etherpad</a></span>; <span class="sched-q-and-a">Q&amp;A: <a href="https://pad.emacsconf.org/2024-learning">Etherpad</a></span>; <span class="sched-slug">id:learning</span></div>
+<div class="sched-title"><a href="https://emacsconf.org/2024/talks/learning">Survival of the skillest: Thriving in the learning jungle</a></div>
+ <div class="sched-speakers">Bala Ramadurai (his/him)</div>
+
+</div>
+
+<div data-start="2024-12-08T15:30:00+0000" data-end="2024-12-08T15:40:00+0000" class="sched-entry track-General">
+<div class="sched-meta"><span class="sched-time"><span class="sched-start">10:30</span> - <span class="sched-end">10:40</span></span> <span class="sched-track General">General</span> <span class="sched-pad"> <a href="https://pad.emacsconf.org/2024-language">Etherpad</a></span>; <span class="sched-q-and-a">Q&amp;A: <a href="https://pad.emacsconf.org/2024-language">Etherpad</a></span>; <span class="sched-slug">id:language</span></div>
+<div class="sched-title"><a href="https://emacsconf.org/2024/talks/language">Immersive language learning with Emacs</a></div>
+ <div class="sched-speakers">Sebastian Dümcke (he/him)</div>
+
+</div>
+
+<div data-start="2024-12-08T15:50:00+0000" data-end="2024-12-08T16:10:00+0000" class="sched-entry track-General">
+<div class="sched-meta"><span class="sched-time"><span class="sched-start">10:50</span> - <span class="sched-end">11:10</span></span> <span class="sched-track General">General</span> <span class="sched-pad"> <a href="https://pad.emacsconf.org/2024-org-teach">Etherpad</a></span>; <span class="sched-q-and-a">Q&amp;A: <a href="https://media.emacsconf.org/2024/current/bbb-org-teach.html">BBB</a></span>; <span class="sched-slug">id:org-teach</span></div>
+<div class="sched-title"><a href="https://emacsconf.org/2024/talks/org-teach">org-teach: a minor mode for writing course materials in Emacs</a></div>
+ <div class="sched-speakers">James Endres Howell (he/him)</div>
+
+</div>
+
+<div data-start="2024-12-08T16:25:00+0000" data-end="2024-12-08T16:40:00+0000" class="sched-entry track-General">
+<div class="sched-meta"><span class="sched-time"><span class="sched-start">11:25</span> - <span class="sched-end">11:40</span></span> <span class="sched-track General">General</span> <span class="sched-pad"> <a href="https://pad.emacsconf.org/2024-hyperbole">Etherpad</a></span>; <span class="sched-q-and-a">Q&amp;A: <a href="https://media.emacsconf.org/2024/current/bbb-hyperbole.html">BBB</a></span>; <span class="sched-slug">id:hyperbole</span></div>
+<div class="sched-title"><a href="https://emacsconf.org/2024/talks/hyperbole">Fun things with GNU Hyperbole</a></div>
+ <div class="sched-speakers">Mats Lidell (he/him)</div>
+
+</div>
+
+<div data-start="2024-12-08T18:00:00+0000" data-end="2024-12-08T18:20:00+0000" class="sched-entry track-General">
+<div class="sched-meta"><span class="sched-time"><span class="sched-start">1:00</span> - <span class="sched-end">1:20</span></span> <span class="sched-track General">General</span> <span class="sched-pad"> <a href="https://pad.emacsconf.org/2024-hywiki">Etherpad</a></span>; <span class="sched-q-and-a">Q&amp;A: <a href="https://media.emacsconf.org/2024/current/bbb-hywiki.html">BBB</a></span>; <span class="sched-slug">id:hywiki</span></div>
+<div class="sched-title"><a href="https://emacsconf.org/2024/talks/hywiki">HyWiki: Fast, hyperlinked note-taking with no markup required</a></div>
+ <div class="sched-speakers">Bob Weiner</div>
+
+</div>
+
+<div data-start="2024-12-08T18:35:00+0000" data-end="2024-12-08T18:50:00+0000" class="sched-entry track-General">
+<div class="sched-meta"><span class="sched-time"><span class="sched-start">1:35</span> - <span class="sched-end">1:50</span></span> <span class="sched-track General">General</span> <span class="sched-pad"> <a href="https://pad.emacsconf.org/2024-pgmacs">Etherpad</a></span>; <span class="sched-q-and-a">Q&amp;A: <a href="https://media.emacsconf.org/2024/current/bbb-pgmacs.html">BBB</a></span>; <span class="sched-slug">id:pgmacs</span></div>
+<div class="sched-title"><a href="https://emacsconf.org/2024/talks/pgmacs">PGmacs: browsing and editing PostgreSQL databases from Emacs</a></div>
+ <div class="sched-speakers">Eric Marsden (he/him)</div>
+
+</div>
+
+<div data-start="2024-12-08T19:05:00+0000" data-end="2024-12-08T19:45:00+0000" class="sched-entry track-General">
+<div class="sched-meta"><span class="sched-time"><span class="sched-start">2:05</span> - <span class="sched-end">2:45</span></span> <span class="sched-track General">General</span> <span class="sched-pad"> <a href="https://pad.emacsconf.org/2024-blee">Etherpad</a></span>; <span class="sched-q-and-a">Q&amp;A: <a href="https://media.emacsconf.org/2024/current/bbb-blee.html">BBB</a></span>; <span class="sched-slug">id:blee</span></div>
+<div class="sched-title"><a href="https://emacsconf.org/2024/talks/blee">About Blee: enveloping our own autonomy directed digital ecosystem with Emacs</a></div>
+ <div class="sched-speakers">Mohsen BANAN (he/him)</div>
+
+</div>
+
+<div data-start="2024-12-08T19:55:00+0000" data-end="2024-12-08T20:15:00+0000" class="sched-entry track-General">
+<div class="sched-meta"><span class="sched-time"><span class="sched-start">2:55</span> - <span class="sched-end">3:15</span></span> <span class="sched-track General">General</span> <span class="sched-pad"> <a href="https://pad.emacsconf.org/2024-literate">Etherpad</a></span>; <span class="sched-q-and-a">Q&amp;A: <a href="https://media.emacsconf.org/2024/current/bbb-literate.html">BBB</a></span>; <span class="sched-slug">id:literate</span></div>
+<div class="sched-title"><a href="https://emacsconf.org/2024/talks/literate">Literate programming for the 21st Century</a></div>
+ <div class="sched-speakers">Howard Abrams (he/him)</div>
+
+</div>
+
+<div data-start="2024-12-08T20:30:00+0000" data-end="2024-12-08T20:40:00+0000" class="sched-entry track-General">
+<div class="sched-meta"><span class="sched-time"><span class="sched-start">3:30</span> - <span class="sched-end">3:40</span></span> <span class="sched-track General">General</span> <span class="sched-pad"> <a href="https://pad.emacsconf.org/2024-students">Etherpad</a></span>; <span class="sched-q-and-a">Q&amp;A: <a href="https://chat.emacsconf.org/?join=emacsconf">#emacsconf, speaker nick: bardman</a></span>; <span class="sched-slug">id:students</span></div>
+<div class="sched-title"><a href="https://emacsconf.org/2024/talks/students">An example of a cohesive student workflow in Emacs</a></div>
+ <div class="sched-speakers">Daniel Pinkston (he/him)</div>
+
+</div>
+
+<div data-start="2024-12-08T20:50:00+0000" data-end="2024-12-08T21:10:00+0000" class="sched-entry track-General">
+<div class="sched-meta"><span class="sched-time"><span class="sched-start">3:50</span> - <span class="sched-end">4:10</span></span> <span class="sched-track General">General</span> <span class="sched-pad"> <a href="https://pad.emacsconf.org/2024-sharing">Etherpad</a></span>; <span class="sched-q-and-a">Q&amp;A: <a href="https://pad.emacsconf.org/2024-sharing">Etherpad</a></span>; <span class="sched-slug">id:sharing</span></div>
+<div class="sched-title"><a href="https://emacsconf.org/2024/talks/sharing">So you want to be an Emacs-fluencer?</a></div>
+ <div class="sched-speakers">Gopar</div>
+
+</div>
+
+<div data-start="2024-12-08T21:20:00+0000" data-end="2024-12-08T21:50:00+0000" class="sched-entry track-General">
+<div class="sched-meta"><span class="sched-time"><span class="sched-start">4:20</span> - <span class="sched-end">4:50</span></span> <span class="sched-track General">General</span> <span class="sched-pad"> <a href="https://pad.emacsconf.org/2024-transducers">Etherpad</a></span>; <span class="sched-q-and-a">Q&amp;A: <a href="https://media.emacsconf.org/2024/current/bbb-transducers.html">BBB</a></span>; <span class="sched-slug">id:transducers</span></div>
+<div class="sched-title"><a href="https://emacsconf.org/2024/talks/transducers">Transducers: finally, ergonomic data processing for Emacs!</a></div>
+ <div class="sched-speakers">Colin Woodbury (he)</div>
+
+</div>
+
+<div data-start="2024-12-08T22:00:00+0000" data-end="2024-12-08T22:10:00+0000" class="sched-entry track-General">
+<div class="sched-meta"><span class="sched-time"><span class="sched-start">5:00</span> - <span class="sched-end">5:10</span></span> <span class="sched-track General">General</span> <span class="sched-pad"> <a href="https://pad.emacsconf.org/2024-sun-close">Etherpad</a></span>; <span class="sched-q-and-a">Q&amp;A: <a href="https://pad.emacsconf.org/2024-sun-close">Etherpad</a></span>; <span class="sched-slug">id:sun-close</span></div>
+<div class="sched-title"><a href="https://emacsconf.org/2024/talks/sun-close">Sunday closing remarks</a></div>
+
+
+</div>
+
+</div>
diff --git a/2024/watch/info.md b/2024/watch/info.md
new file mode 100644
index 00000000..eb0cacac
--- /dev/null
+++ b/2024/watch/info.md
@@ -0,0 +1,11 @@
+[[!sidebar content=""]]<!-- Automatically generated by emacsconf-publish-watch-pages -->
+
+<h2>Tracks</h2>
+We recommend using a streaming player like mpv to watch the livestreams. Example: <pre>
+mpv https://live0.emacsconf.org/gen.webm
+mpv https://live0.emacsconf.org/dev.webm
+</pre><table width="100%"><tr><th>Watch page</th><th>IRC channel (libera.chat)</th><th>URL for streaming player (ex: mpv, vlc, ffplay)</th><th>Low res</th></tr>
+<tr><td><div class="sched-track General"><a href="/2024/watch/gen/">General</a></div></td><td><a href="https://chat.emacsconf.org/?join=emacsconf,emacsconf-org,emacsconf-accessible,emacsconf-dev,emacsconf-gen">emacsconf-gen</a></td><td><a href="https://live0.emacsconf.org/gen.webm">https://live0.emacsconf.org/gen.webm</a></td><td><a href="https://live0.emacsconf.org/gen-480p.webm">gen-480p.webm</a></tr>
+<tr><td><div class="sched-track Development"><a href="/2024/watch/dev/">Development</a></div></td><td><a href="https://chat.emacsconf.org/?join=emacsconf,emacsconf-org,emacsconf-accessible,emacsconf-gen,emacsconf-dev">emacsconf-dev</a></td><td><a href="https://live0.emacsconf.org/dev.webm">https://live0.emacsconf.org/dev.webm</a></td><td><a href="https://live0.emacsconf.org/dev-480p.webm">dev-480p.webm</a></tr></table>
+
+<svg width="800" height="300" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><title>Graphical view of the schedule</title><g transform="translate(0,0)"><title>Schedule for Saturday</title><rect width="800" height="150" x="0" y="0" fill="white"></rect><text font-size="10" fill="black" y="12" x="3">Saturday</text><a href="https://emacsconf.org/2024/talks/sat-open" title="Saturday opening remarks" data-slug="sat-open"><title> 9:00- 9:10 Saturday opening remarks</title><rect x="0" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(13,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sat-open</text></g></a><a href="https://emacsconf.org/2024/talks/papers" title="Writing academic papers in Org-Roam" data-slug="papers"><title> 9:10- 9:20 Writing academic papers in Org-Roam</title><rect x="15" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(28,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">papers</text></g></a><a href="https://emacsconf.org/2024/talks/project" title="Managing writing project metadata with org-mode" data-slug="project"><title> 9:40-10:00 Managing writing project metadata with org-mode</title><rect x="62" y="15" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(91,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">project</text></g></a><a href="https://emacsconf.org/2024/talks/org-update" title="The Future of Org" data-slug="org-update"><title>10:20-10:40 The Future of Org</title><rect x="125" y="15" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(154,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">org-update</text></g></a><a href="https://emacsconf.org/2024/talks/color" title="Colour your Emacs with ease" data-slug="color"><title>11:00-11:10 Colour your Emacs with ease</title><rect x="188" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(201,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">color</text></g></a><a href="https://emacsconf.org/2024/talks/theme" title="My journey of finding and creating the “perfect” Emacs theme" data-slug="theme"><title> 1:00- 1:10 My journey of finding and creating the “perfect” Emacs theme</title><rect x="376" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(389,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">theme</text></g></a><a href="https://emacsconf.org/2024/talks/water" title="Watering my (digital) plant with Emacs timers" data-slug="water"><title> 1:30- 1:45 Watering my (digital) plant with Emacs timers</title><rect x="423" y="15" opacity="0.8" width="23" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(444,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">water</text></g></a><a href="https://emacsconf.org/2024/talks/shell" title="Emacs as a shell" data-slug="shell"><title> 1:55- 2:35 Emacs as a shell</title><rect x="462" y="15" opacity="0.8" width="62" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(522,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">shell</text></g></a><a href="https://emacsconf.org/2024/talks/casual" title="Re-imagining the Emacs user experience with Casual Suite" data-slug="casual"><title> 2:45- 3:05 Re-imagining the Emacs user experience with Casual Suite</title><rect x="541" y="15" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(570,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">casual</text></g></a><a href="https://emacsconf.org/2024/talks/hyperdrive" title="New in hyperdrive.el: org-transclusion, easy installation, and more!" data-slug="hyperdrive"><title> 3:25- 3:45 New in hyperdrive.el: org-transclusion, easy installation, and more!</title><rect x="603" y="15" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(632,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">hyperdrive</text></g></a><a href="https://emacsconf.org/2024/talks/writing" title="Emacs Writing Studio" data-slug="writing"><title> 4:05- 4:15 Emacs Writing Studio</title><rect x="666" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(679,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">writing</text></g></a><a href="https://emacsconf.org/2024/talks/emacs30" title="Emacs 30 Highlights" data-slug="emacs30"><title> 4:25- 4:50 Emacs 30 Highlights</title><rect x="698" y="15" opacity="0.8" width="39" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(735,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">emacs30</text></g></a><a href="https://emacsconf.org/2024/talks/sat-close" title="Saturday closing remarks" data-slug="sat-close"><title> 5:00- 5:10 Saturday closing remarks</title><rect x="752" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(765,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sat-close</text></g></a><a href="https://emacsconf.org/2024/talks/gypsum" title="Gypsum: my clone of Emacs and ELisp written in Scheme" data-slug="gypsum"><title>10:00-10:20 Gypsum: my clone of Emacs and ELisp written in Scheme</title><rect x="94" y="75" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(123,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">gypsum</text></g></a><a href="https://emacsconf.org/2024/talks/rust" title="An experimental Emacs core in Rust" data-slug="rust"><title>10:40-11:00 An experimental Emacs core in Rust</title><rect x="156" y="75" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(185,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">rust</text></g></a><a href="https://emacsconf.org/2024/talks/p-search" title="p-search: a local search engine in Emacs" data-slug="p-search"><title>11:20-11:45 p-search: a local search engine in Emacs</title><rect x="219" y="75" opacity="0.8" width="39" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(256,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">p-search</text></g></a><a href="https://emacsconf.org/2024/talks/julia" title="Exploring shared philosophies in Julia and Emacs" data-slug="julia"><title> 1:00- 1:10 Exploring shared philosophies in Julia and Emacs</title><rect x="376" y="75" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(389,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">julia</text></g></a><a href="https://emacsconf.org/2024/talks/guile" title="Beguiling Emacs: Guile-Emacs relaunched!" data-slug="guile"><title> 1:25- 1:45 Beguiling Emacs: Guile-Emacs relaunched!</title><rect x="415" y="75" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="5,5,5" fill="skyblue"></rect><g transform="translate(444,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">guile</text></g></a><a href="https://emacsconf.org/2024/talks/secrets" title="Committing secrets with git using sops-mode" data-slug="secrets"><title> 1:55- 2:05 Committing secrets with git using sops-mode</title><rect x="462" y="75" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(475,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">secrets</text></g></a><a href="https://emacsconf.org/2024/talks/mcclim" title="Elisp and McCLIM" data-slug="mcclim"><title> 2:25- 3:25 Elisp and McCLIM</title><rect x="509" y="75" opacity="0.8" width="94" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(601,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">mcclim</text></g></a><a href="https://emacsconf.org/2024/talks/repro" title="Reproducibly building Emacs: “Hey your checksum is the same as mine!”" data-slug="repro"><title> 3:45- 4:05 Reproducibly building Emacs: “Hey your checksum is the same as mine!”</title><rect x="635" y="75" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(664,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">repro</text></g></a><g transform="translate(0,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">9 AM</text></g><g transform="translate(94,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">10 AM</text></g><g transform="translate(188,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">11 AM</text></g><g transform="translate(282,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">12 PM</text></g><g transform="translate(376,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">1 PM</text></g><g transform="translate(470,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">2 PM</text></g><g transform="translate(564,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">3 PM</text></g><g transform="translate(658,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">4 PM</text></g><g transform="translate(752,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">5 PM</text></g></g><g transform="translate(0,150)"><title>Schedule for Sunday</title><rect width="800" height="150" x="0" y="0" fill="white"></rect><text font-size="10" fill="black" y="12" x="3">Sunday</text><a href="https://emacsconf.org/2024/talks/sun-open" title="Sunday opening remarks" data-slug="sun-open"><title> 9:00- 9:10 Sunday opening remarks</title><rect x="0" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(13,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sun-open</text></g></a><a href="https://emacsconf.org/2024/talks/links" title="Unlocking linked data: replacing specialized apps with an Org-based semantic wiki" data-slug="links"><title> 9:10- 9:20 Unlocking linked data: replacing specialized apps with an Org-based semantic wiki</title><rect x="15" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(28,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">links</text></g></a><a href="https://emacsconf.org/2024/talks/regex" title="Emacs regex compilation and future directions for expressive pattern matching" data-slug="regex"><title> 9:30- 9:50 Emacs regex compilation and future directions for expressive pattern matching</title><rect x="47" y="15" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(76,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">regex</text></g></a><a href="https://emacsconf.org/2024/talks/learning" title="Survival of the skillest: Thriving in the learning jungle" data-slug="learning"><title>10:00-10:20 Survival of the skillest: Thriving in the learning jungle</title><rect x="94" y="15" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(123,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">learning</text></g></a><a href="https://emacsconf.org/2024/talks/language" title="Immersive language learning with Emacs" data-slug="language"><title>10:30-10:40 Immersive language learning with Emacs</title><rect x="141" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(154,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">language</text></g></a><a href="https://emacsconf.org/2024/talks/org-teach" title="org-teach: a minor mode for writing course materials in Emacs" data-slug="org-teach"><title>10:50-11:10 org-teach: a minor mode for writing course materials in Emacs</title><rect x="172" y="15" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(201,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">org-teach</text></g></a><a href="https://emacsconf.org/2024/talks/hyperbole" title="Fun things with GNU Hyperbole" data-slug="hyperbole"><title>11:25-11:40 Fun things with GNU Hyperbole</title><rect x="227" y="15" opacity="0.8" width="23" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(248,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">hyperbole</text></g></a><a href="https://emacsconf.org/2024/talks/hywiki" title="HyWiki: Fast, hyperlinked note-taking with no markup required" data-slug="hywiki"><title> 1:00- 1:20 HyWiki: Fast, hyperlinked note-taking with no markup required</title><rect x="376" y="15" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(405,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">hywiki</text></g></a><a href="https://emacsconf.org/2024/talks/pgmacs" title="PGmacs: browsing and editing PostgreSQL databases from Emacs" data-slug="pgmacs"><title> 1:35- 1:50 PGmacs: browsing and editing PostgreSQL databases from Emacs</title><rect x="431" y="15" opacity="0.8" width="23" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(452,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">pgmacs</text></g></a><a href="https://emacsconf.org/2024/talks/blee" title="About Blee: enveloping our own autonomy directed digital ecosystem with Emacs" data-slug="blee"><title> 2:05- 2:45 About Blee: enveloping our own autonomy directed digital ecosystem with Emacs</title><rect x="478" y="15" opacity="0.8" width="62" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(538,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">blee</text></g></a><a href="https://emacsconf.org/2024/talks/literate" title="Literate programming for the 21st Century" data-slug="literate"><title> 2:55- 3:15 Literate programming for the 21st Century</title><rect x="556" y="15" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(585,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">literate</text></g></a><a href="https://emacsconf.org/2024/talks/students" title="An example of a cohesive student workflow in Emacs" data-slug="students"><title> 3:30- 3:40 An example of a cohesive student workflow in Emacs</title><rect x="611" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(624,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">students</text></g></a><a href="https://emacsconf.org/2024/talks/sharing" title="So you want to be an Emacs-fluencer?" data-slug="sharing"><title> 3:50- 4:10 So you want to be an Emacs-fluencer?</title><rect x="643" y="15" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(672,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sharing</text></g></a><a href="https://emacsconf.org/2024/talks/transducers" title="Transducers: finally, ergonomic data processing for Emacs!" data-slug="transducers"><title> 4:20- 4:50 Transducers: finally, ergonomic data processing for Emacs!</title><rect x="690" y="15" opacity="0.8" width="47" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(735,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">transducers</text></g></a><a href="https://emacsconf.org/2024/talks/sun-close" title="Sunday closing remarks" data-slug="sun-close"><title> 5:00- 5:10 Sunday closing remarks</title><rect x="752" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(765,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sun-close</text></g></a><g transform="translate(0,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">9 AM</text></g><g transform="translate(94,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">10 AM</text></g><g transform="translate(188,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">11 AM</text></g><g transform="translate(282,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">12 PM</text></g><g transform="translate(376,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">1 PM</text></g><g transform="translate(470,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">2 PM</text></g><g transform="translate(564,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">3 PM</text></g><g transform="translate(658,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">4 PM</text></g><g transform="translate(752,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">5 PM</text></g></g></svg> \ No newline at end of file
diff --git a/local.css b/local.css
index 10013896..f1ad93d0 100644
--- a/local.css
+++ b/local.css
@@ -123,7 +123,7 @@ ol.chapters { list-style-type: none; padding: 0; }
h1 { margin-top: 2em }
.schedule-in-context, .schedule-svg-container {
- width: 100%;
+ max-width: 100%;
overflow-x: auto;
}
video { border: 1px solid gray; }
diff --git a/organizers-notebook.md b/organizers-notebook.md
index f5d6206b..2cff5989 100644
--- a/organizers-notebook.md
+++ b/organizers-notebook.md
@@ -20,11 +20,35 @@ This document is the general organizers' notebook that can be used as a starting
- [Create the public organizers&rsquo; notebook in the wiki](#starting-up-the-conference-planning-process-create-the-public-organizers-notebook-in-the-wiki)
- [Phases and lessons learned](#phases-and-lessons-learned)
- [Draft CFP](#phases-and-lessons-learned-draft-cfp)
- - [Process proposals](#orge2fe34a)
- - [Accept proposals](#orgac059dd)
+ - [Announce](#orgc65a882)
+ - [Process proposals](#org05d8ef4)
+ - [Accept proposals](#orge98e249)
- [Draft schedule](#draft-schedule)
+ - [Set up backstage and upload](#orge9a3c89)
+ - [Post the schedule](#org1e7771f)
+ - [Process uploaded files](#orgfd23289)
+ - [Generate assets](#org80c461d)
+ - [Prepare the infrastructure](#org033e054)
+ - [Getting ready for captions](#org217ecc8)
+- [General infrastructure](#org59478a5)
+ - [Icecast](#icecast)
+ - [Watching pages](#watch)
+ - [VNC](#vnc)
+ - [Streaming with OBS](#obs)
+ - [Shell scripts](#org511ba94)
+ - [IRC web client](#org6abc1fd)
+ - [Etherpad](#orgd320fcc)
+ - [Publishing media to the server and to the wiki](#media)
+ - [Automated IRC announcements](#org005b5de)
+ - [Manual IRC announcements](#org33f6301)
+ - [Low-res stream](#orgd5b1661)
+ - [Restream to YouTube](#org3875a88)
+ - [Restream to Toobnix](#org678b044)
- [Other process notes](#other)
- [Adding another user to BBB](#bbb-user)
+ - [When a talk is cancelled](#cancel-talk)
+ - [When a talk Q&A changes method](#change-talk-qa)
+ - [Ansible](#orgf87ae48)
<a id="starting-up-the-conference-planning-process"></a>
@@ -125,7 +149,15 @@ Put inside double square brackets: `!template id=pagedraft`
- Put the speaker introduction right after the talk description for easier web page copying.
-<a id="orge2fe34a"></a>
+<a id="orgc65a882"></a>
+
+## Announce
+
+- Post CFP to emacsconf-discuss, reddit.com/r/emacs, and in Emacs News
+- Submit to <https://foss.events/>
+
+
+<a id="org05d8ef4"></a>
## Process proposals
@@ -154,7 +186,7 @@ When proposals come in:
PUBLIC\_EMAIL
-<a id="orgac059dd"></a>
+<a id="orge98e249"></a>
## Accept proposals
@@ -187,6 +219,386 @@ For each talk:
- Add missing items to plan
+<a id="orge9a3c89"></a>
+
+## Set up backstage and upload
+
+See <a href="https://git.emacsconf.org/emacsconf-ansible/tree/README.org">README.org</a>.
+
+Lessons learned:
+
+- Next year, let&rsquo;s get upload.emacsconf.org in place as the domain name so that people don&rsquo;t try to FTP files to it.
+
+
+<a id="org1e7771f"></a>
+
+## Post the schedule
+
+- <elisp:(setq emacsconf-publishing-phase 'schedule)>
+- <elisp:emacsconf-publish-info-pages>
+- <elisp:emacsconf-publish-schedule-org-files>
+- <elisp:emacsconf-ical-generate-all>
+- Update talks.md to refer to watch.md as well
+
+
+<a id="orgfd23289"></a>
+
+## Process uploaded files
+
+Basic setup:
+
+1. Set up the media server and symlinks: <a href="https://git.emacsconf.org/emacsconf-ansible/tree/README.org">README.org</a> (Media).
+2. Set up the prerec processing areas on res: <a href="https://git.emacsconf.org/emacsconf-ansible/tree/README.org">README.org</a> (Processing prerecs).
+3. Set up the caption processor on res: <a href="https://git.emacsconf.org/emacsconf-ansible/tree/README.org">README.org</a> (Captioning).
+
+Process:
+
+1. Review uploaded files with <elisp:emacsconf-upload-dired>
+2. Open the JSON for the file you want to process and use <elisp:emacsconf-upload-copy-from-json> .
+ If more than one file uses the same extension, provide a suffix to disambiguate them.
+3. On res:
+ 1. Create a directory ~/current/files/$slug.
+ 2. Copy the uploaded file from ~/cache as `$video_slug--original.$extension`, or use `rename-original.sh $slug $file`.
+ 3. Call `process-prerec.sh $file`.
+4. When the screens are finished, do locally:
+ 1. update-cache on my computer.
+ 2. <elisp:emacsconf-publish-cache-video-data> or <elisp:emacsconf-cache-all-video-data>
+ 3. <elisp:emacsconf-publish-backstage-index>
+
+
+<a id="org80c461d"></a>
+
+## Generate assets
+
+
+### In-between pages
+
+- Make the $year/assets/in-between directory and copy the template.svg from the previous year.
+- <elisp:emacsconf-stream-generate-in-between-pages>
+
+
+### Intros
+
+- In an empty VTT file, <elisp:emacsconf-subed-intro-subtitles>
+- Record the audio and get captions
+- Splice together into a file that will be processed with subed-record-compile-video.
+
+
+<a id="org033e054"></a>
+
+## Prepare the infrastructure
+
+Checklist:
+
+- [ ] IRC
+ - [ ] Manual announcements
+ - [ ] Automated announcements
+- [ ] Web conference
+- [ ] Streaming assets
+ - [ ] Overlays
+ - [ ] Intros
+- [ ] OBS
+- [ ] VNC
+- [ ] Publishing to the wiki
+- [ ] Publishing to the media server
+- [ ] Etherpad
+- [ ] Mumble
+- [ ] Icecast
+
+
+<a id="org217ecc8"></a>
+
+## Getting ready for captions
+
+Onboarding:
+
+- Add captioner to conf.org with the `:caption:` tag, under a Volunteers heading with the `volunteer` tag. Make sure the `EMAIL` property is set.
+- Add captioner to emacsconf-org mailing list.
+- Send backstage information <elisp:emacsconf-mail-backstage-info-to-volunteer> . (Can be sent to all captioning volunteers with <elisp:emacsconf-mail-backstage-info-to-captioning-volunteers>)
+
+
+<a id="org59478a5"></a>
+
+# General infrastructure
+
+
+<a id="icecast"></a>
+
+## Icecast
+
+Success: You can use [OBS+VNC to record](#obs-instructions), and the results can be viewed by mpv.
+
+- [X] Gen
+- [X] Dev
+
+Also, recordings are available in /data.
+
+New year:
+
+1. Reprovision with
+
+ ansible-playbook -i inventory.yml prod-playbook.yml --tags stream
+
+ so that the year is updated in the configuration.
+2. SSH to live0.emacsconf.org and run `/etc/init.d/emacsconf stop`. Confirm that icecast has stopped with `ps | grep emacsconf`; if not, kill the process.
+ Start it again with `/etc/init.d/emacsconf start`
+3. To test, you can use FFmpeg like this for the gen stream:
+
+ ffmpeg -y -f lavfi -i testsrc=size=1280x720:rate=10 -i background-music.opus \
+ -c:v libvpx -b:v 500K -crf 25 -b:a 128k \
+ -content_type video/webm "icecast://emacsconf:$EMACSCONF_ICECAST_SOURCE_PASSWORD@live0.emacsconf.org:8001/gen.webm"
+
+ For dev:
+
+ ffmpeg -y -f lavfi -i testsrc=size=1280x720:rate=10 -i background-music.opus \
+ -c:v libvpx -b:v 500K -crf 25 -b:a 128k \
+ -content_type video/webm "icecast://emacsconf:$EMACSCONF_ICECAST_SOURCE_PASSWORD@live0.emacsconf.org:8001/dev.webm"
+
+ and then view it with
+
+ mpv https://live0.emacsconf.org/gen.webm
+
+
+<a id="watch"></a>
+
+## Watching pages
+
+Success: You can watch at <https://live.emacsconf.org>.
+
+- [X] <https://live.emacsconf.org> goes to the current year&rsquo;s page.
+- [X] gen stream works in the browser
+- [X] dev stream works in the browser
+- [X] Schedule is correct
+
+New year:
+
+1. ansible-playbook -i inventory.yml prod-playbook.yml &#x2013;tags live
+2. Republish with <elisp:emacsconf-publish-watch-pages>.
+3. Update front:/var/www/live.emacsconf.org.
+
+Set up test streams (see ffmpeg instructions from [Icecast](#icecast)) and then:
+
+
+<a id="vnc"></a>
+
+## VNC
+
+We use VNC to connect to the X servers on res.emacsconf.org so that we can stream from it.
+
+Success:
+
+- [X] Confirm that you can connect to emacsconf-gen via VNC
+- [X] Confirm that you can connect to emacsconf-dev via VNC
+
+Setting up
+
+- <elisp:emacsconf-publish-res-index>
+
+
+<a id="vnc-instructions"></a>
+
+### Instructions
+
+NOTE: VNC+OBS doesn&rsquo;t work well if you have a window manager that
+automatically resizes windows, like i3. Please configure your window
+manager so that the VNC window is not resized.
+
+1. Install a VNC viewer on your system (ex: tigervnc-viewer).
+
+2. Set up your local environment:
+ - gen: `export TRACK=gen; export TRACK_PORT=5905; export SSH_PORT=46668`
+ - dev: `export TRACK=dev; export TRACK_PORT=5906; export SSH_PORT=46668`
+
+3. Copy the password:
+
+ scp emacsconf-$TRACK@res.emacsconf.org:~/.vnc/passwd vnc-passwd-$TRACK -p $SSH\_PORT
+
+4. Forward your local ports and connect via VNC viewer to the
+ appropriate forwarded port from your laptop:
+
+ ssh emacsconf-$TRACK@res.emacsconf.org -N -L $TRACK_PORT:127.0.0.1:$TRACK_PORT -p $SSH_PORT &
+ sleep 5 # Give it time to establish the tunnels
+ xvncviewer 127.0.0.1:$TRACK_PORT -shared -geometry 1280x720 -passwd vnc-passwd-$TRACK &
+
+If you get the following error:
+
+ channel 2: open failed: connect failed: Connection refused
+ CConn: End of stream
+ CConn: The connection was dropped by the server before the session could
+ be established.
+
+then the VNC server hasn&rsquo;t started yet. You can start it with
+
+ ssh emacsconf-$TRACK@res.emacsconf.org -p $SSH_PORT /home/emacsconf-$TRACK/bin/track-vnc
+
+and then connect with:
+
+ xvncviewer 127.0.0.1:$TRACK_PORT -shared -geometry 1280x720 -passwd vnc-passwd-$TRACK &
+
+
+<a id="obs"></a>
+
+## Streaming with OBS
+
+Success: Confirm that you can stream
+
+- [X] gen
+- [X] dev
+
+New year: reprovision with
+
+ ansible-playbook -i inventory.yml prod-playbook.yml --tags obs
+
+so that the year is updated in the shell scripts.
+
+
+<a id="obs-instructions"></a>
+
+### Instructions
+
+1. [Connect to the VNC session for the track.](#vnc-instructions)
+
+2. Start **recording** (not streaming). If you don&rsquo;t see OBS when you connect, it&rsquo;s probably on workspace 2, so you can switch with Alt-2. If you still don&rsquo;t see it there, you can open a terminal with Alt-Enter and then run `track-obs`. After you start recording, confirm that it is now broadcasting to the stream.
+
+3. Verify with MPV on your local system:
+
+ mpv https://live0.emacsconf.org/$TRACK.webm &
+
+
+### Icecast
+
+Success: You can use [OBS+VNC to record](#obs-instructions), and the results can be viewed by mpv.
+
+- [ ] gen
+- [ ] dev
+
+New year: reprovision with
+
+ ansible-playbook -i inventory.yml prod-playbook.yml --tags stream
+
+so that the year is updated in the configuration.
+
+This is on live.emacsconf.org and can be restarted with `/etc/init.d/emacsconf restart`.
+
+
+<a id="org511ba94"></a>
+
+## Shell scripts
+
+Success: From the commandline, hosts can:
+
+- [X] play just the intro: intro $SLUG
+- [X] play a file without an intro: play $SLUG
+- [X] play a file with an intro: play-with-intro $SLUG (hmm, this didn&rsquo;t show the subtitles)
+ ah, it&rsquo;s because the intros need to be in the cache dir?
+- [X] open the Q&A for a talk: handle-qa $SLUG
+ - [X] open the pad: pad $SLUG
+ - [X] open BBB: bbb $SLUG
+- [ ] do the whole thing: handle-session $SLUG
+- [ ] rebroadcast the other stream:
+ - rebroadcast gen
+ - rebroadcast dev
+- [ ] control background music: music, stop-music
+
+Setup:
+
+- OBS must be streaming from the stream you&rsquo;re testing. [Streaming with OBS](#obs)
+- You may want to generate test assets and copy them over to the assets/stream directory.
+- Generate all the overlays and copy them to assets/overlays
+- Set up the assets/music directory
+
+
+<a id="org6abc1fd"></a>
+
+## IRC web client
+
+Success:
+
+- [X] You can join from <https://chat.emacsconf.org>
+- [X] You can join from <https://live.emacsconf.org> and the channels end up as the latest ones
+
+Remember to schedule a task to ask libera.chat to increase the number of users it will accept from chat.emacsconf.org to avoid connection exhaustion errors.
+
+Message I&rsquo;ve posted to support@libera.chat:
+
+Thank you for running libera.chat. We&rsquo;re looking forward to using IRC
+(#emacsconf-gen, #emacsconf-dev) for the discussions for the upcoming
+EmacsConf (Dec 7-8, <https://emacsconf.org>). In the past, we&rsquo;ve needed to
+coordinate with Libera staff to increase the number of connections
+allowed from chat.emacsconf.org during conference days in order to avoid
+connection exhaustion errors. Is that something we can plan now or would
+you like me to bring it up a few days before the conference?
+
+
+<a id="orgd320fcc"></a>
+
+## Etherpad
+
+Success:
+
+- [X] pad.emacsconf.org redirects to this year&rsquo;s entry
+- [X] Each talk has its own Etherpad
+
+
+<a id="media"></a>
+
+## Publishing media to the server and to the wiki
+
+Start of year:
+
+1. Set `media_protect_root` to true in Ansible `group_vars/all.yml`.
+2. `ansible-playbook -i inventory.yml prod-playbook.yml --tags media`
+3. Generate the index with `emacsconf-publish-update-media`
+
+Confirm by setting a submitted talk to `PLAYING` and testing with
+<elisp:emacsconf-publish-media-files-on-change> . The public media
+directory should have the files and the entry should be in the index.
+Switching it back to `TO_STREAM` and calling
+<elisp:emacsconf-publish-media-files-on-change> should remove it.
+
+
+### TODO Switch public media to unprotected root before the conference
+
+1. Clear public media directory.
+2. Set `media_protect_root` to false in Ansible `group_vars/all.yml`.
+3. `ansible-playbook -i inventory.yml prod-playbook.yml --tags media`
+
+You can generate the index with `emacsconf-publish-update-media`.
+
+
+<a id="org005b5de"></a>
+
+## Automated IRC announcements
+
+Success:
+
+- [ ] When a talk starts playing, it is announced in the relevant channel
+
+
+<a id="org33f6301"></a>
+
+## Manual IRC announcements
+
+Success:
+
+- [X] You can /opall, /conftopic, and /broadcast
+
+
+<a id="orgd5b1661"></a>
+
+## Low-res stream
+
+
+<a id="org3875a88"></a>
+
+## Restream to YouTube
+
+
+<a id="org678b044"></a>
+
+## Restream to Toobnix
+
+
<a id="other"></a>
# Other process notes
@@ -199,3 +611,33 @@ For each talk:
ssh bbb.emacsverse.org
docker exec -it greenlight-v2 bundle exec rake user:create["USERNAME","EMAIL","PASSWORD","user"]
+
+<a id="cancel-talk"></a>
+
+## When a talk is cancelled
+
+1. Update the status to CANCELLED.
+2. Update the schedule with <elisp:emacsconf-update-schedule>
+3. Regenerate the intros (before, after). <elisp:emacsconf-stream-generate-in-between-pages>, then use <elisp:subed-record-compile-video> in the intros file.
+4. Sync the new intros to the /data/emacsconf/shared/$YEAR/assets/intros directory.
+5. Regenerate the pads: <elisp:emacsconf-pad-prepopulate-all-talks>
+
+
+<a id="change-talk-qa"></a>
+
+## When a talk Q&A changes method
+
+1. Update the talk property.
+2. Update the schedule with <elisp:emacsconf-update-schedule>
+3. Regenerate the intros (before, after). <elisp:emacsconf-stream-generate-in-between-pages>, then use <elisp:subed-record-compile-video> in the intros file.
+4. Sync the new intros to the /data/emacsconf/shared/$YEAR/assets/intros directory.
+5. Regenerate the pads: <elisp:emacsconf-pad-prepopulate-all-talks>
+6. Regenerate talks.json: <elisp:emacsconf-publish-talks-json-to-files>
+
+
+<a id="orgf87ae48"></a>
+
+## Ansible
+
+ git clone git@git.emacsconf.org:pub/emacsconf-ansible
+
diff --git a/organizers-notebook/index.org b/organizers-notebook/index.org
index 47c45691..22194a3d 100644
--- a/organizers-notebook/index.org
+++ b/organizers-notebook/index.org
@@ -120,6 +120,11 @@ Put inside double square brackets: =!template id=pagedraft=
(especially for Pacific time). Extending beyond 5pm puts strain on
European organizers and volunteers, though.
- Put the speaker introduction right after the talk description for easier web page copying.
+** Announce
+
+- Post CFP to emacsconf-discuss, reddit.com/r/emacs, and in Emacs News
+- Submit to https://foss.events/
+
** Process proposals
1. In the private repository, create a conf.org.
@@ -174,6 +179,330 @@ For each talk:
- Q_AND_A: pad
- Create draft-schedule section in the public organizers notebook for the year
- Add missing items to plan
+** Set up backstage and upload
+
+See [[emacsconf-ansible:README.org]].
+
+Lessons learned:
+
+- Next year, let's get upload.emacsconf.org in place as the domain name so that people don't try to FTP files to it.
+
+** Post the schedule
+
+- [[elisp:(setq emacsconf-publishing-phase 'schedule)]]
+- elisp:emacsconf-publish-info-pages
+- elisp:emacsconf-publish-schedule-org-files
+- elisp:emacsconf-ical-generate-all
+- Update talks.md to refer to watch.md as well
+
+
+** Process uploaded files
+
+Basic setup:
+
+1. Set up the media server and symlinks: [[emacsconf-ansible:README.org]] (Media).
+2. Set up the prerec processing areas on res: [[emacsconf-ansible:README.org]] (Processing prerecs).
+2. Set up the caption processor on res: [[emacsconf-ansible:README.org]] (Captioning).
+
+Process:
+
+1. Review uploaded files with elisp:emacsconf-upload-dired
+2. Open the JSON for the file you want to process and use elisp:emacsconf-upload-copy-from-json .
+ If more than one file uses the same extension, provide a suffix to disambiguate them.
+3. On res:
+ 1. Create a directory ~/current/files/$slug.
+ 2. Copy the uploaded file from ~/cache as =$video_slug--original.$extension=, or use =rename-original.sh $slug $file=.
+ 3. Call =process-prerec.sh $file=.
+4. When the screens are finished, do locally:
+ 1. update-cache on my computer.
+ 2. elisp:emacsconf-publish-cache-video-data or elisp:emacsconf-cache-all-video-data
+ 3. elisp:emacsconf-publish-backstage-index
+** Generate assets
+*** In-between pages
+- Make the $year/assets/in-between directory and copy the template.svg from the previous year.
+- elisp:emacsconf-stream-generate-in-between-pages
+*** Intros
+- In an empty VTT file, elisp:emacsconf-subed-intro-subtitles
+- Record the audio and get captions
+- Splice together into a file that will be processed with subed-record-compile-video.
+** Prepare the infrastructure
+
+Checklist:
+
+- [ ] IRC
+ - [ ] Manual announcements
+ - [ ] Automated announcements
+- [ ] Web conference
+- [ ] Streaming assets
+ - [ ] Overlays
+ - [ ] Intros
+- [ ] OBS
+- [ ] VNC
+- [ ] Publishing to the wiki
+- [ ] Publishing to the media server
+- [ ] Etherpad
+- [ ] Mumble
+- [ ] Icecast
+
+** Getting ready for captions
+
+Onboarding:
+
+- Add captioner to conf.org with the ~:caption:~ tag, under a Volunteers heading with the ~volunteer~ tag. Make sure the ~EMAIL~ property is set.
+- Add captioner to emacsconf-org mailing list.
+- Send backstage information elisp:emacsconf-mail-backstage-info-to-volunteer . (Can be sent to all captioning volunteers with elisp:emacsconf-mail-backstage-info-to-captioning-volunteers)
+* General infrastructure
+** Icecast
+:PROPERTIES:
+:CUSTOM_ID: icecast
+:END:
+
+Success: You can use [[#obs-instructions][OBS+VNC to record]], and the results can be viewed by mpv.
+- [X] Gen
+- [X] Dev
+Also, recordings are available in /data.
+
+New year:
+
+1. Reprovision with
+ #+begin_src sh :eval no
+ ansible-playbook -i inventory.yml prod-playbook.yml --tags stream
+ #+end_src
+ so that the year is updated in the configuration.
+2. SSH to live0.emacsconf.org and run ~/etc/init.d/emacsconf stop~. Confirm that icecast has stopped with ~ps | grep emacsconf~; if not, kill the process.
+ Start it again with ~/etc/init.d/emacsconf start~
+3. To test, you can use FFmpeg like this for the gen stream:
+ #+begin_src sh
+ ffmpeg -y -f lavfi -i testsrc=size=1280x720:rate=10 -i background-music.opus \
+ -c:v libvpx -b:v 500K -crf 25 -b:a 128k \
+ -content_type video/webm "icecast://emacsconf:$EMACSCONF_ICECAST_SOURCE_PASSWORD@live0.emacsconf.org:8001/gen.webm"
+ #+end_src
+ For dev:
+ #+begin_src sh
+ ffmpeg -y -f lavfi -i testsrc=size=1280x720:rate=10 -i background-music.opus \
+ -c:v libvpx -b:v 500K -crf 25 -b:a 128k \
+ -content_type video/webm "icecast://emacsconf:$EMACSCONF_ICECAST_SOURCE_PASSWORD@live0.emacsconf.org:8001/dev.webm"
+ #+end_src
+ and then view it with
+ #+begin_src sh
+ mpv https://live0.emacsconf.org/gen.webm
+ #+end_src
+** Watching pages
+:PROPERTIES:
+:CUSTOM_ID: watch
+:END:
+
+Success: You can watch at https://live.emacsconf.org.
+- [X] https://live.emacsconf.org goes to the current year's page.
+- [X] gen stream works in the browser
+- [X] dev stream works in the browser
+- [X] Schedule is correct
+
+New year:
+1. ansible-playbook -i inventory.yml prod-playbook.yml --tags live
+2. Republish with elisp:emacsconf-publish-watch-pages.
+3. Update front:/var/www/live.emacsconf.org.
+
+Set up test streams (see ffmpeg instructions from [[#icecast][Icecast]]) and then:
+
+** VNC
+:PROPERTIES:
+:CUSTOM_ID: vnc
+:END:
+
+We use VNC to connect to the X servers on res.emacsconf.org so that we can stream from it.
+
+Success:
+- [X] Confirm that you can connect to emacsconf-gen via VNC
+- [X] Confirm that you can connect to emacsconf-dev via VNC
+
+Setting up
+- elisp:emacsconf-publish-res-index
+
+*** Instructions
+:PROPERTIES:
+:CUSTOM_ID: vnc-instructions
+:END:
+
+NOTE: VNC+OBS doesn't work well if you have a window manager that
+automatically resizes windows, like i3. Please configure your window
+manager so that the VNC window is not resized.
+
+ 1. Install a VNC viewer on your system (ex: tigervnc-viewer).
+
+ 2. Set up your local environment:
+
+ - gen: ~export TRACK=gen; export TRACK_PORT=5905; export SSH_PORT=46668~
+ - dev: ~export TRACK=dev; export TRACK_PORT=5906; export SSH_PORT=46668~
+
+ 3. Copy the password:
+
+ scp emacsconf-$TRACK@res.emacsconf.org:~/.vnc/passwd vnc-passwd-$TRACK -p $SSH_PORT
+
+ 4. Forward your local ports and connect via VNC viewer to the
+ appropriate forwarded port from your laptop:
+
+ #+begin_example
+ ssh emacsconf-$TRACK@res.emacsconf.org -N -L $TRACK_PORT:127.0.0.1:$TRACK_PORT -p $SSH_PORT &
+ sleep 5 # Give it time to establish the tunnels
+ xvncviewer 127.0.0.1:$TRACK_PORT -shared -geometry 1280x720 -passwd vnc-passwd-$TRACK &
+ #+end_example
+
+If you get the following error:
+
+#+begin_example
+channel 2: open failed: connect failed: Connection refused
+CConn: End of stream
+CConn: The connection was dropped by the server before the session could
+ be established.
+#+end_example
+
+then the VNC server hasn't started yet. You can start it with
+
+#+begin_src sh :eval no
+ssh emacsconf-$TRACK@res.emacsconf.org -p $SSH_PORT /home/emacsconf-$TRACK/bin/track-vnc
+#+end_src
+
+and then connect with:
+
+#+begin_src sh :eval no
+xvncviewer 127.0.0.1:$TRACK_PORT -shared -geometry 1280x720 -passwd vnc-passwd-$TRACK &
+#+end_src
+
+** Streaming with OBS
+:PROPERTIES:
+:CUSTOM_ID: obs
+:END:
+
+Success: Confirm that you can stream
+- [X] gen
+- [X] dev
+
+New year: reprovision with
+
+#+begin_src sh :eval no
+ansible-playbook -i inventory.yml prod-playbook.yml --tags obs
+#+end_src
+
+so that the year is updated in the shell scripts.
+
+*** Instructions
+:PROPERTIES:
+:CUSTOM_ID: obs-instructions
+:END:
+
+1. [[#vnc-instructions][Connect to the VNC session for the track.]]
+
+2. Start *recording* (not streaming). If you don't see OBS when you connect, it's probably on workspace 2, so you can switch with Alt-2. If you still don't see it there, you can open a terminal with Alt-Enter and then run ~track-obs~. After you start recording, confirm that it is now broadcasting to the stream.
+
+3. Verify with MPV on your local system:
+
+ #+begin_example
+ mpv https://live0.emacsconf.org/$TRACK.webm &
+ #+end_example
+
+*** Icecast
+:PROPERTIES:
+:CUSTOM_ID: icecast
+:END:
+
+Success: You can use [[#obs-instructions][OBS+VNC to record]], and the results can be viewed by mpv.
+- [ ] gen
+- [ ] dev
+
+New year: reprovision with
+
+#+begin_src sh :eval no
+ansible-playbook -i inventory.yml prod-playbook.yml --tags stream
+#+end_src
+
+so that the year is updated in the configuration.
+
+This is on live.emacsconf.org and can be restarted with =/etc/init.d/emacsconf restart=.
+** Shell scripts
+
+Success: From the commandline, hosts can:
+- [X] play just the intro: intro $SLUG
+- [X] play a file without an intro: play $SLUG
+- [X] play a file with an intro: play-with-intro $SLUG (hmm, this didn't show the subtitles)
+ ah, it's because the intros need to be in the cache dir?
+- [X] open the Q&A for a talk: handle-qa $SLUG
+ - [X] open the pad: pad $SLUG
+ - [X] open BBB: bbb $SLUG
+- [ ] do the whole thing: handle-session $SLUG
+- [ ] rebroadcast the other stream:
+ - rebroadcast gen
+ - rebroadcast dev
+- [ ] control background music: music, stop-music
+
+Setup:
+- OBS must be streaming from the stream you're testing. [[#obs][Streaming with OBS]]
+- You may want to generate test assets and copy them over to the assets/stream directory.
+- Generate all the overlays and copy them to assets/overlays
+- Set up the assets/music directory
+
+** IRC web client
+
+Success:
+- [X] You can join from https://chat.emacsconf.org
+- [X] You can join from https://live.emacsconf.org and the channels end up as the latest ones
+
+Remember to schedule a task to ask libera.chat to increase the number of users it will accept from chat.emacsconf.org to avoid connection exhaustion errors.
+
+Message I've posted to support@libera.chat:
+
+Thank you for running libera.chat. We're looking forward to using IRC
+(#emacsconf-gen, #emacsconf-dev) for the discussions for the upcoming
+EmacsConf (Dec 7-8, https://emacsconf.org). In the past, we've needed to
+coordinate with Libera staff to increase the number of connections
+allowed from chat.emacsconf.org during conference days in order to avoid
+connection exhaustion errors. Is that something we can plan now or would
+you like me to bring it up a few days before the conference?
+** Etherpad
+
+Success:
+
+- [X] pad.emacsconf.org redirects to this year's entry
+- [X] Each talk has its own Etherpad
+** Publishing media to the server and to the wiki
+:PROPERTIES:
+:CUSTOM_ID: media
+:END:
+
+Start of year:
+
+1. Set =media_protect_root= to true in Ansible =group_vars/all.yml=.
+2. =ansible-playbook -i inventory.yml prod-playbook.yml --tags media=
+3. Generate the index with =emacsconf-publish-update-media=
+
+Confirm by setting a submitted talk to =PLAYING= and testing with
+elisp:emacsconf-publish-media-files-on-change . The public media
+directory should have the files and the entry should be in the index.
+Switching it back to =TO_STREAM= and calling
+elisp:emacsconf-publish-media-files-on-change should remove it.
+
+*** TODO Switch public media to unprotected root before the conference
+
+1. Clear public media directory.
+2. Set =media_protect_root= to false in Ansible =group_vars/all.yml=.
+3. =ansible-playbook -i inventory.yml prod-playbook.yml --tags media=
+
+You can generate the index with =emacsconf-publish-update-media=.
+** Automated IRC announcements
+
+Success:
+
+- [ ] When a talk starts playing, it is announced in the relevant channel
+
+** Manual IRC announcements
+
+Success:
+
+- [X] You can /opall, /conftopic, and /broadcast
+
+** Low-res stream
+** Restream to YouTube
+** Restream to Toobnix
* Other process notes
:PROPERTIES:
:CUSTOM_ID: other
@@ -187,3 +516,30 @@ For each talk:
ssh bbb.emacsverse.org
docker exec -it greenlight-v2 bundle exec rake user:create["USERNAME","EMAIL","PASSWORD","user"]
#+end_src
+** When a talk is cancelled
+:PROPERTIES:
+:CUSTOM_ID: cancel-talk
+:END:
+
+1. Update the status to CANCELLED.
+2. Update the schedule with [[elisp:emacsconf-update-schedule]]
+3. Regenerate the intros (before, after). elisp:emacsconf-stream-generate-in-between-pages, then use elisp:subed-record-compile-video in the intros file.
+4. Sync the new intros to the /data/emacsconf/shared/$YEAR/assets/intros directory.
+5. Regenerate the pads: elisp:emacsconf-pad-prepopulate-all-talks
+** When a talk Q&A changes method
+:PROPERTIES:
+:CUSTOM_ID: change-talk-qa
+:END:
+
+1. Update the talk property.
+2. Update the schedule with [[elisp:emacsconf-update-schedule]]
+3. Regenerate the intros (before, after). elisp:emacsconf-stream-generate-in-between-pages, then use elisp:subed-record-compile-video in the intros file.
+4. Sync the new intros to the /data/emacsconf/shared/$YEAR/assets/intros directory.
+5. Regenerate the pads: elisp:emacsconf-pad-prepopulate-all-talks
+6. Regenerate talks.json: elisp:emacsconf-publish-talks-json-to-files
+
+** Ansible
+
+#+begin_src sh :eval no
+git clone git@git.emacsconf.org:pub/emacsconf-ansible
+#+end_src