summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSacha Chua <sacha@sachachua.com>2026-10-17 19:48:59 -0400
committerSacha Chua <sacha@sachachua.com>2026-10-17 19:49:05 -0400
commitbce44a1ff46f6ef57457fcb514ee68cf3f34f7db (patch)
treeb638b1e0704e6fed3cc39a05505aabf22fdc948c
parenteb63f9d719b738618803b9e2675ebc6d703030e1 (diff)
downloademacsconf-wiki-bce44a1ff46f6ef57457fcb514ee68cf3f34f7db.tar.xz
emacsconf-wiki-bce44a1ff46f6ef57457fcb514ee68cf3f34f7db.zip
add guile
-rw-r--r--2026/draft-schedule.md20
-rw-r--r--2026/info/babel-nav.md2
-rw-r--r--2026/info/cadet-nav.md2
-rw-r--r--2026/info/community-nav.md2
-rw-r--r--2026/info/guile-after.md7
-rw-r--r--2026/info/guile-before.md13
-rw-r--r--2026/info/guile-nav.md7
-rw-r--r--2026/info/llms-nav.md2
-rw-r--r--2026/info/local-before.md2
-rw-r--r--2026/info/os-nav.md2
-rw-r--r--2026/info/planning-before.md2
-rw-r--r--2026/info/portable-nav.md2
-rw-r--r--2026/info/prefix-nav.md4
-rw-r--r--2026/info/rau-nav.md2
-rw-r--r--2026/info/remoto-nav.md4
-rw-r--r--2026/organizers-notebook/index.org11
-rw-r--r--2026/organizers-notebook/schedule.svg2
-rw-r--r--2026/schedule-details.md25
-rw-r--r--2026/talks/guile.md71
-rw-r--r--2026/talks/nil.md21
-rw-r--r--organizers-notebook/index.org2
-rw-r--r--volunteer.md11
22 files changed, 173 insertions, 43 deletions
diff --git a/2026/draft-schedule.md b/2026/draft-schedule.md
index 20d85222..dd739974 100644
--- a/2026/draft-schedule.md
+++ b/2026/draft-schedule.md
@@ -7,18 +7,18 @@ Jump to: <a href="#date-2026-12-12">Sat Dec 12</a> - <a href="#date-2026-12-13">
<div class="schedule" data-start="2026-12-12T14:00:00+0000" data-end="2026-12-12T22:30:00+0000" data-tracks="General,Development">
[[!template id=sched time="""10""" q-and-a="""<a href="https://pad.emacsconf.org/2026-sat-open">Etherpad</a>""" startutc="""2026-12-12T14:00:00+0000""" endutc="""2026-12-12T14:10:00+0000""" start="""9:00""" end="""9:10""" title="""Saturday opening remarks""" url="""/2026/talks/sat-open""" speakers="""Sacha Chua""" track="""General""" watch="""https://emacsconf.org/2026/watch/gen""" slug="""sat-open""" note=""""""]]
-[[!template id=sched time="""20""" q-and-a="""<a href="https://media.emacsconf.org/2026/current/bbb-planning.html">BBB</a>""" pad="""https://pad.emacsconf.org/2026-planning""" startutc="""2026-12-12T14:10:00+0000""" endutc="""2026-12-12T14:30:00+0000""" start="""9:10""" end="""9:30""" title="""The Emacs Planning Habits of a Questionably Effective Person: My 40-year journey of planning with Emacs, Org Mode, paper journals, etc.""" url="""/2026/talks/planning""" speakers="""George Jones""" track="""General""" watch="""https://emacsconf.org/2026/watch/gen""" slug="""planning""" note=""""""]]
+[[!template id=sched time="""20""" q-and-a="""<a href="https://media.emacsconf.org/2026/current/bbb-planning.html">BBB</a>""" pad="""https://pad.emacsconf.org/2026-planning""" startutc="""2026-12-12T14:10:00+0000""" endutc="""2026-12-12T14:30:00+0000""" start="""9:10""" end="""9:30""" title="""The Emacs Planning Habits of a Questionably Effective Person: My 40-year journey of planning with Emacs, Org Mode, paper journals, etc.""" url="""/2026/talks/planning""" speakers="""George Jones""" track="""General""" watch="""https://emacsconf.org/2026/watch/gen""" slug="""planning""" note="""video: 19:20"""]]
[[!template id=sched time="""20""" q-and-a="""<a href="https://media.emacsconf.org/2026/current/bbb-listen.html">BBB</a>""" pad="""https://pad.emacsconf.org/2026-listen""" startutc="""2026-12-12T14:50:00+0000""" endutc="""2026-12-12T15:10:00+0000""" start="""9:50""" end="""10:10""" title="""Controlling Emacs by voice using Emacslisten""" url="""/2026/talks/listen""" speakers="""Erik Präntare""" track="""General""" watch="""https://emacsconf.org/2026/watch/gen""" slug="""listen""" note=""""""]]
[[!template id=sched time="""30""" q-and-a="""<a href="https://chat.emacsconf.org/?join=emacsconf">#emacsconf</a>""" pad="""https://pad.emacsconf.org/2026-emacspeak""" startutc="""2026-12-12T15:30:00+0000""" endutc="""2026-12-12T16:00:00+0000""" start="""10:30""" end="""11:00""" title="""Multi-dimensional information processing with Emacs and Emacspeak: a blind man's perspective""" url="""/2026/talks/emacspeak""" speakers="""Arkadiusz""" track="""General""" watch="""https://emacsconf.org/2026/watch/gen""" slug="""emacspeak""" note=""""""]]
-[[!template id=sched time="""60""" q-and-a="""<a href="https://media.emacsconf.org/2026/current/bbb-community.html">BBB</a>""" pad="""https://pad.emacsconf.org/2026-community""" startutc="""2026-12-12T15:30:00+0000""" endutc="""2026-12-12T16:30:00+0000""" start="""10:30""" end="""11:30""" title="""Community brainstorming""" url="""/2026/talks/community""" speakers="""Participants""" track="""B""" watch="""https://emacsconf.org/2026/watch/b""" slug="""community""" note=""""""]]
+[[!template id=sched time="""60""" q-and-a="""<a href="https://media.emacsconf.org/2026/current/bbb-community.html">BBB</a>""" pad="""https://pad.emacsconf.org/2026-community""" startutc="""2026-12-12T15:30:00+0000""" endutc="""2026-12-12T16:30:00+0000""" start="""10:30""" end="""11:30""" title="""Community brainstorming""" url="""/2026/talks/community""" speakers="""Participants""" track="""Development""" watch="""https://emacsconf.org/2026/watch/dev""" slug="""community""" note=""""""]]
[[!template id=sched time="""20""" q-and-a="""<a href="https://media.emacsconf.org/2026/current/bbb-ltx-talk.html">BBB</a>""" pad="""https://pad.emacsconf.org/2026-ltx-talk""" startutc="""2026-12-12T16:10:00+0000""" endutc="""2026-12-12T16:30:00+0000""" start="""11:10""" end="""11:30""" title="""ltx-talk: Accessible presentations with ox-beamer""" url="""/2026/talks/ltx-talk""" speakers="""Pedro A. Aranda and Roger Schürch""" track="""General""" watch="""https://emacsconf.org/2026/watch/gen""" slug="""ltx-talk""" note=""""""]]
[[!template id=sched time="""20""" q-and-a="""<a href="https://media.emacsconf.org/2026/current/bbb-plots.html">BBB</a>""" pad="""https://pad.emacsconf.org/2026-plots""" startutc="""2026-12-12T18:00:00+0000""" endutc="""2026-12-12T18:20:00+0000""" start="""1:00""" end="""1:20""" title="""Plots with ROOTs: Resilient data visualization with Emacs, Org and gnuplot""" url="""/2026/talks/plots""" speakers="""Lukas C. Bossert""" track="""General""" watch="""https://emacsconf.org/2026/watch/gen""" slug="""plots""" note=""""""]]
-[[!template id=sched time="""15""" q-and-a="""""" pad="""https://pad.emacsconf.org/2026-portable""" startutc="""2026-12-12T18:00:00+0000""" endutc="""2026-12-12T18:15:00+0000""" start="""1:00""" end="""1:15""" title="""Emacs as my portable user space across operating platforms""" url="""/2026/talks/portable""" speakers="""Mohammed Ismail Ansari (myTerminal)""" track="""B""" watch="""https://emacsconf.org/2026/watch/b""" slug="""portable""" note="""video: 11:32"""]]
-[[!template id=sched time="""20""" q-and-a="""<a href="https://media.emacsconf.org/2026/current/bbb-os.html">BBB</a>""" pad="""https://pad.emacsconf.org/2026-os""" startutc="""2026-12-12T18:35:00+0000""" endutc="""2026-12-12T18:55:00+0000""" start="""1:35""" end="""1:55""" title="""Emacs everywhere: A fun romp through esoteric operating systems""" url="""/2026/talks/os""" speakers="""Aaron Grothe""" track="""B""" watch="""https://emacsconf.org/2026/watch/b""" slug="""os""" note=""""""]]
+[[!template id=sched time="""15""" q-and-a="""""" pad="""https://pad.emacsconf.org/2026-portable""" startutc="""2026-12-12T18:00:00+0000""" endutc="""2026-12-12T18:15:00+0000""" start="""1:00""" end="""1:15""" title="""Emacs as my portable user space across operating platforms""" url="""/2026/talks/portable""" speakers="""Mohammed Ismail Ansari (myTerminal)""" track="""Development""" watch="""https://emacsconf.org/2026/watch/dev""" slug="""portable""" note="""video: 11:32"""]]
+[[!template id=sched time="""20""" q-and-a="""<a href="https://media.emacsconf.org/2026/current/bbb-os.html">BBB</a>""" pad="""https://pad.emacsconf.org/2026-os""" startutc="""2026-12-12T18:35:00+0000""" endutc="""2026-12-12T18:55:00+0000""" start="""1:35""" end="""1:55""" title="""Emacs everywhere: A fun romp through esoteric operating systems""" url="""/2026/talks/os""" speakers="""Aaron Grothe""" track="""Development""" watch="""https://emacsconf.org/2026/watch/dev""" slug="""os""" note=""""""]]
[[!template id=sched time="""20""" q-and-a="""<a href="https://media.emacsconf.org/2026/current/bbb-ffs.html">BBB</a>""" pad="""https://pad.emacsconf.org/2026-ffs""" startutc="""2026-12-12T18:40:00+0000""" endutc="""2026-12-12T19:00:00+0000""" start="""1:40""" end="""2:00""" title="""Plain text presentations in GNU Emacs with ffs""" url="""/2026/talks/ffs""" speakers="""Amin Bandali""" track="""General""" watch="""https://emacsconf.org/2026/watch/gen""" slug="""ffs""" note=""""""]]
-[[!template id=sched time="""10""" q-and-a="""<a href="https://media.emacsconf.org/2026/current/bbb-cadet.html">BBB</a>""" pad="""https://pad.emacsconf.org/2026-cadet""" startutc="""2026-12-12T19:15:00+0000""" endutc="""2026-12-12T19:25:00+0000""" start="""2:15""" end="""2:25""" title="""My Space Cadet Deck - an Android Stream Deck replacement with deep Emacs integration""" url="""/2026/talks/cadet""" speakers="""Andy Drop""" track="""B""" watch="""https://emacsconf.org/2026/watch/b""" slug="""cadet""" note=""""""]]
+[[!template id=sched time="""10""" q-and-a="""<a href="https://media.emacsconf.org/2026/current/bbb-cadet.html">BBB</a>""" pad="""https://pad.emacsconf.org/2026-cadet""" startutc="""2026-12-12T19:15:00+0000""" endutc="""2026-12-12T19:25:00+0000""" start="""2:15""" end="""2:25""" title="""My Space Cadet Deck - an Android Stream Deck replacement with deep Emacs integration""" url="""/2026/talks/cadet""" speakers="""Andy Drop""" track="""Development""" watch="""https://emacsconf.org/2026/watch/dev""" slug="""cadet""" note=""""""]]
[[!template id=sched time="""10""" q-and-a="""<a href="https://media.emacsconf.org/2026/current/bbb-mobile.html">BBB</a>""" pad="""https://pad.emacsconf.org/2026-mobile""" startutc="""2026-12-12T19:20:00+0000""" endutc="""2026-12-12T19:30:00+0000""" start="""2:20""" end="""2:30""" title="""How I solved Org Mode's biggest mobile and collaboration problems""" url="""/2026/talks/mobile""" speakers="""bashbunni""" track="""General""" watch="""https://emacsconf.org/2026/watch/gen""" slug="""mobile""" note=""""""]]
-[[!template id=sched time="""20""" q-and-a="""<a href="https://media.emacsconf.org/2026/current/bbb-remoto.html">BBB</a>""" pad="""https://pad.emacsconf.org/2026-remoto""" startutc="""2026-12-12T19:45:00+0000""" endutc="""2026-12-12T20:05:00+0000""" start="""2:45""" end="""3:05""" title="""El Remoto: browse any GitHub repos without cloning them""" url="""/2026/talks/remoto""" speakers="""Ag""" track="""B""" watch="""https://emacsconf.org/2026/watch/b""" slug="""remoto""" note=""""""]]
+[[!template id=sched time="""20""" q-and-a="""<a href="https://media.emacsconf.org/2026/current/bbb-remoto.html">BBB</a>""" pad="""https://pad.emacsconf.org/2026-remoto""" startutc="""2026-12-12T19:45:00+0000""" endutc="""2026-12-12T20:05:00+0000""" start="""2:45""" end="""3:05""" title="""El Remoto: browse any GitHub repos without cloning them""" url="""/2026/talks/remoto""" speakers="""Ag""" track="""Development""" watch="""https://emacsconf.org/2026/watch/dev""" slug="""remoto""" note=""""""]]
[[!template id=sched time="""20""" q-and-a="""<a href="https://media.emacsconf.org/2026/current/bbb-hyperbole.html">BBB</a>""" pad="""https://pad.emacsconf.org/2026-hyperbole""" startutc="""2026-12-12T19:50:00+0000""" endutc="""2026-12-12T20:10:00+0000""" start="""2:50""" end="""3:10""" title="""Hyperbole, My Dear Watson""" url="""/2026/talks/hyperbole""" speakers="""Charlie Holland""" track="""General""" watch="""https://emacsconf.org/2026/watch/gen""" slug="""hyperbole""" note=""""""]]
[[!template id=sched time="""20""" q-and-a="""<a href="https://media.emacsconf.org/2026/current/bbb-koutliner.html">BBB</a>""" pad="""https://pad.emacsconf.org/2026-koutliner""" startutc="""2026-12-12T20:30:00+0000""" endutc="""2026-12-12T20:50:00+0000""" start="""3:30""" end="""3:50""" title="""Hyperbole Koutliner: The Best Autonumbered, Hyperlinking Outliner for Emacs""" url="""/2026/talks/koutliner""" speakers="""Bob Weiner""" track="""General""" watch="""https://emacsconf.org/2026/watch/gen""" slug="""koutliner""" note=""""""]]
[[!template id=sched time="""20""" q-and-a="""<a href="https://media.emacsconf.org/2026/current/bbb-writing.html">BBB</a>""" pad="""https://pad.emacsconf.org/2026-writing""" startutc="""2026-12-12T21:10:00+0000""" endutc="""2026-12-12T21:30:00+0000""" start="""4:10""" end="""4:30""" title="""Close the writing accountability gap with Emacs""" url="""/2026/talks/writing""" speakers="""Blaine Mooers""" track="""General""" watch="""https://emacsconf.org/2026/watch/gen""" slug="""writing""" note=""""""]]
@@ -33,14 +33,14 @@ Jump to: <a href="#date-2026-12-12">Sat Dec 12</a> - <a href="#date-2026-12-13">
[[!template id=sched time="""10""" q-and-a="""<a href="https://pad.emacsconf.org/2026-sun-open">Etherpad</a>""" startutc="""2026-12-13T14:00:00+0000""" endutc="""2026-12-13T14:10:00+0000""" start="""9:00""" end="""9:10""" title="""Sunday opening remarks""" url="""/2026/talks/sun-open""" speakers="""Sacha Chua""" track="""General""" watch="""https://emacsconf.org/2026/watch/gen""" slug="""sun-open""" note=""""""]]
[[!template id=sched time="""10""" q-and-a="""<a href="https://media.emacsconf.org/2026/current/bbb-bone.html">BBB</a>""" pad="""https://pad.emacsconf.org/2026-bone""" startutc="""2026-12-13T14:10:00+0000""" endutc="""2026-12-13T14:20:00+0000""" start="""9:10""" end="""9:20""" title="""BONE and gnaw.el: tracking what matters""" url="""/2026/talks/bone""" speakers="""Bastien Guerry""" track="""General""" watch="""https://emacsconf.org/2026/watch/gen""" slug="""bone""" note=""""""]]
[[!template id=sched time="""15""" q-and-a="""<a href="https://media.emacsconf.org/2026/current/bbb-local.html">BBB</a>""" pad="""https://pad.emacsconf.org/2026-local""" startutc="""2026-12-13T14:40:00+0000""" endutc="""2026-12-13T14:55:00+0000""" start="""9:40""" end="""9:55""" title="""Local file history possibilities in Emacs""" url="""/2026/talks/local""" speakers="""Wouter Groeneveld""" track="""General""" watch="""https://emacsconf.org/2026/watch/gen""" slug="""local""" note="""captioned, video: 11:10"""]]
-[[!template id=sched time="""10""" q-and-a="""<a href="https://chat.emacsconf.org/?join=emacsconf">#emacsconf</a>""" pad="""https://pad.emacsconf.org/2026-prefix""" startutc="""2026-12-13T15:00:00+0000""" endutc="""2026-12-13T15:10:00+0000""" start="""10:00""" end="""10:10""" title="""prefix-tab-groups""" url="""/2026/talks/prefix""" speakers="""marco wahl""" track="""B""" watch="""https://emacsconf.org/2026/watch/b""" slug="""prefix""" note=""""""]]
+[[!template id=sched time="""10""" q-and-a="""<a href="https://chat.emacsconf.org/?join=emacsconf">#emacsconf</a>""" pad="""https://pad.emacsconf.org/2026-prefix""" startutc="""2026-12-13T15:00:00+0000""" endutc="""2026-12-13T15:10:00+0000""" start="""10:00""" end="""10:10""" title="""prefix-tab-groups""" url="""/2026/talks/prefix""" speakers="""marco wahl""" track="""Development""" watch="""https://emacsconf.org/2026/watch/dev""" slug="""prefix""" note=""""""]]
[[!template id=sched time="""10""" q-and-a="""<a href="https://pad.emacsconf.org/2026-hutch">Etherpad</a>""" startutc="""2026-12-13T15:15:00+0000""" endutc="""2026-12-13T15:25:00+0000""" start="""10:15""" end="""10:25""" title="""hutch: code reviews for the mildly disenfranchised""" url="""/2026/talks/hutch""" speakers="""Akshay Gupta""" track="""General""" watch="""https://emacsconf.org/2026/watch/gen""" slug="""hutch""" note=""""""]]
-[[!template id=sched time="""20""" q-and-a="""<a href="https://media.emacsconf.org/2026/current/bbb-rau.html">BBB</a>""" pad="""https://pad.emacsconf.org/2026-rau""" startutc="""2026-12-13T15:20:00+0000""" endutc="""2026-12-13T15:40:00+0000""" start="""10:20""" end="""10:40""" title="""Emacs as a Window Manager and concurrency""" url="""/2026/talks/rau""" speakers="""Thomas Koch""" track="""B""" watch="""https://emacsconf.org/2026/watch/b""" slug="""rau""" note=""""""]]
+[[!template id=sched time="""20""" q-and-a="""<a href="https://media.emacsconf.org/2026/current/bbb-rau.html">BBB</a>""" pad="""https://pad.emacsconf.org/2026-rau""" startutc="""2026-12-13T15:20:00+0000""" endutc="""2026-12-13T15:40:00+0000""" start="""10:20""" end="""10:40""" title="""Emacs as a Window Manager and concurrency""" url="""/2026/talks/rau""" speakers="""Thomas Koch""" track="""Development""" watch="""https://emacsconf.org/2026/watch/dev""" slug="""rau""" note=""""""]]
[[!template id=sched time="""20""" q-and-a="""<a href="https://media.emacsconf.org/2026/current/bbb-team.html">BBB</a>""" pad="""https://pad.emacsconf.org/2026-team""" startutc="""2026-12-13T15:35:00+0000""" endutc="""2026-12-13T15:55:00+0000""" start="""10:35""" end="""10:55""" title="""Beyond the Chatbot: Team-Oriented AI in Emacs""" url="""/2026/talks/team""" speakers="""Mohsen BANAN""" track="""General""" watch="""https://emacsconf.org/2026/watch/gen""" slug="""team""" note=""""""]]
-[[!template id=sched time="""10""" q-and-a="""<a href="https://media.emacsconf.org/2026/current/bbb-babel.html">BBB</a>""" pad="""https://pad.emacsconf.org/2026-babel""" startutc="""2026-12-13T16:00:00+0000""" endutc="""2026-12-13T16:10:00+0000""" start="""11:00""" end="""11:10""" title="""Org Babel everywhere""" url="""/2026/talks/babel""" speakers="""George Huebner""" track="""B""" watch="""https://emacsconf.org/2026/watch/b""" slug="""babel""" note=""""""]]
+[[!template id=sched time="""10""" q-and-a="""<a href="https://media.emacsconf.org/2026/current/bbb-babel.html">BBB</a>""" pad="""https://pad.emacsconf.org/2026-babel""" startutc="""2026-12-13T16:00:00+0000""" endutc="""2026-12-13T16:10:00+0000""" start="""11:00""" end="""11:10""" title="""Org Babel everywhere""" url="""/2026/talks/babel""" speakers="""George Huebner""" track="""Development""" watch="""https://emacsconf.org/2026/watch/dev""" slug="""babel""" note=""""""]]
[[!template id=sched time="""20""" q-and-a="""<a href="https://media.emacsconf.org/2026/current/bbb-compile.html">BBB</a>""" pad="""https://pad.emacsconf.org/2026-compile""" startutc="""2026-12-13T16:15:00+0000""" endutc="""2026-12-13T16:35:00+0000""" start="""11:15""" end="""11:35""" title="""Beyond shell history: Saving compilation output in Emacs""" url="""/2026/talks/compile""" speakers="""Jonathan Otsuka""" track="""General""" watch="""https://emacsconf.org/2026/watch/gen""" slug="""compile""" note=""""""]]
[[!template id=sched time="""20""" q-and-a="""none""" pad="""https://pad.emacsconf.org/2026-dnd""" startutc="""2026-12-13T18:00:00+0000""" endutc="""2026-12-13T18:20:00+0000""" start="""1:00""" end="""1:20""" title="""DnD and Org Roam: Becoming a Better DM with Emacs""" url="""/2026/talks/dnd""" speakers="""James R. Stoup""" track="""General""" watch="""https://emacsconf.org/2026/watch/gen""" slug="""dnd""" note="""captioned, video: 19:17"""]]
-[[!template id=sched time="""60""" q-and-a="""<a href="https://media.emacsconf.org/2026/current/bbb-llms.html">BBB</a>""" pad="""https://pad.emacsconf.org/2026-llms""" startutc="""2026-12-13T18:00:00+0000""" endutc="""2026-12-13T19:00:00+0000""" start="""1:00""" end="""2:00""" title="""Meetup/panel about LLMs?""" url="""/2026/talks/llms""" speakers="""Participants""" track="""B""" watch="""https://emacsconf.org/2026/watch/b""" slug="""llms""" note=""""""]]
+[[!template id=sched time="""60""" q-and-a="""<a href="https://media.emacsconf.org/2026/current/bbb-llms.html">BBB</a>""" pad="""https://pad.emacsconf.org/2026-llms""" startutc="""2026-12-13T18:00:00+0000""" endutc="""2026-12-13T19:00:00+0000""" start="""1:00""" end="""2:00""" title="""Meetup/panel about LLMs?""" url="""/2026/talks/llms""" speakers="""Participants""" track="""Development""" watch="""https://emacsconf.org/2026/watch/dev""" slug="""llms""" note=""""""]]
[[!template id=sched time="""20""" q-and-a="""<a href="https://media.emacsconf.org/2026/current/bbb-bible.html">BBB</a>""" pad="""https://pad.emacsconf.org/2026-bible""" startutc="""2026-12-13T18:30:00+0000""" endutc="""2026-12-13T18:50:00+0000""" start="""1:30""" end="""1:50""" title="""bible-gateway: A Two-Edged Sword in Emacs""" url="""/2026/talks/bible""" speakers="""Kristjon Ciko""" track="""General""" watch="""https://emacsconf.org/2026/watch/gen""" slug="""bible""" note=""""""]]
[[!template id=sched time="""20""" q-and-a="""""" pad="""https://pad.emacsconf.org/2026-svg""" startutc="""2026-12-13T19:10:00+0000""" endutc="""2026-12-13T19:30:00+0000""" start="""2:10""" end="""2:30""" title="""A (sort of) REPL for learning SVG""" url="""/2026/talks/svg""" speakers="""Eduardo Ochs""" track="""General""" watch="""https://emacsconf.org/2026/watch/gen""" slug="""svg""" note=""""""]]
[[!template id=sched time="""20""" q-and-a="""<a href="https://media.emacsconf.org/2026/current/bbb-align.html">BBB</a>""" pad="""https://pad.emacsconf.org/2026-align""" startutc="""2026-12-13T19:50:00+0000""" endutc="""2026-12-13T20:10:00+0000""" start="""2:50""" end="""3:10""" title="""Column-aligning text in Emacs""" url="""/2026/talks/align""" speakers="""Jeff Trull""" track="""General""" watch="""https://emacsconf.org/2026/watch/gen""" slug="""align""" note=""""""]]
diff --git a/2026/info/babel-nav.md b/2026/info/babel-nav.md
index 7a1722f5..331de458 100644
--- a/2026/info/babel-nav.md
+++ b/2026/info/babel-nav.md
@@ -3,5 +3,5 @@
Back to the [[talks]]
Previous by track: <a href="/2026/talks/rau">Emacs as a Window Manager and concurrency</a>
Next by track: <a href="/2026/talks/llms">Meetup/panel about LLMs?</a>
-Track: <span class="sched-track B">B</span>
+Track: <span class="sched-track Development">Development</span>
</div>
diff --git a/2026/info/cadet-nav.md b/2026/info/cadet-nav.md
index 3eccba58..d4da4ab1 100644
--- a/2026/info/cadet-nav.md
+++ b/2026/info/cadet-nav.md
@@ -3,5 +3,5 @@
Back to the [[talks]]
Previous by track: <a href="/2026/talks/os">Emacs everywhere: A fun romp through esoteric operating systems</a>
Next by track: <a href="/2026/talks/remoto">El Remoto: browse any GitHub repos without cloning them</a>
-Track: <span class="sched-track B">B</span>
+Track: <span class="sched-track Development">Development</span>
</div>
diff --git a/2026/info/community-nav.md b/2026/info/community-nav.md
index 8a9b1893..a989d7e4 100644
--- a/2026/info/community-nav.md
+++ b/2026/info/community-nav.md
@@ -3,5 +3,5 @@
Back to the [[talks]]
Previous by track: <a href="/2026/talks/ghostel">Ghost in the Shell: a libghostty powered terminal for Emacs</a>
Next by track: <a href="/2026/talks/portable">Emacs as my portable user space across operating platforms</a>
-Track: <span class="sched-track B">B</span>
+Track: <span class="sched-track Development">Development</span>
</div>
diff --git a/2026/info/guile-after.md b/2026/info/guile-after.md
new file mode 100644
index 00000000..0f5732fc
--- /dev/null
+++ b/2026/info/guile-after.md
@@ -0,0 +1,7 @@
+<!-- Automatically generated by emacsconf-publish-after-page -->
+
+
+Questions or comments? Please e-mail [akira@akirakyle.com](mailto:akira@akirakyle.com?subject=Comment%20for%20EmacsConf%202023%20guile%3A%20%C3%A6macs%3A%20having%20a%20hoot%20with%20a%20guile%20emacs)
+
+
+<!-- End of emacsconf-publish-after-page -->
diff --git a/2026/info/guile-before.md b/2026/info/guile-before.md
new file mode 100644
index 00000000..1ea6f5b5
--- /dev/null
+++ b/2026/info/guile-before.md
@@ -0,0 +1,13 @@
+<!-- Automatically generated by emacsconf-publish-before-page -->
+[[!toc ]]
+Format: 20-min talk ; Q&A: BigBlueButton conference room Etherpad: <https://pad.emacsconf.org/2026-guile>
+Etherpad: <https://pad.emacsconf.org/2026-guile>
+Status: Waiting for video from speaker
+
+
+
+
+
+
+# Description
+<!-- End of emacsconf-publish-before-page --> \ No newline at end of file
diff --git a/2026/info/guile-nav.md b/2026/info/guile-nav.md
new file mode 100644
index 00000000..d906c7a8
--- /dev/null
+++ b/2026/info/guile-nav.md
@@ -0,0 +1,7 @@
+
+<div class="talk-nav">
+Back to the [[talks]]
+Previous by track: <a href="/2026/talks/remoto">El Remoto: browse any GitHub repos without cloning them</a>
+Next by track: <a href="/2026/talks/prefix">prefix-tab-groups</a>
+Track: <span class="sched-track Development">Development</span>
+</div>
diff --git a/2026/info/llms-nav.md b/2026/info/llms-nav.md
index 7efcb7d1..68da10ce 100644
--- a/2026/info/llms-nav.md
+++ b/2026/info/llms-nav.md
@@ -3,5 +3,5 @@
Back to the [[talks]]
Previous by track: <a href="/2026/talks/babel">Org Babel everywhere</a>
Next by track: <a href="/2026/talks/sat-close">Saturday closing remarks / open session</a>
-Track: <span class="sched-track B">B</span>
+Track: <span class="sched-track Development">Development</span>
</div>
diff --git a/2026/info/local-before.md b/2026/info/local-before.md
index cafe06c2..ab3edbb2 100644
--- a/2026/info/local-before.md
+++ b/2026/info/local-before.md
@@ -2,7 +2,7 @@
[[!toc ]]
Format: 12-min talk ; Q&A: BigBlueButton conference room Etherpad: <https://pad.emacsconf.org/2026-local>
Etherpad: <https://pad.emacsconf.org/2026-local>
-Status: Quality check
+Status: Ready to stream
diff --git a/2026/info/os-nav.md b/2026/info/os-nav.md
index 68edbc11..2a1e41fe 100644
--- a/2026/info/os-nav.md
+++ b/2026/info/os-nav.md
@@ -3,5 +3,5 @@
Back to the [[talks]]
Previous by track: <a href="/2026/talks/portable">Emacs as my portable user space across operating platforms</a>
Next by track: <a href="/2026/talks/cadet">My Space Cadet Deck - an Android Stream Deck replacement with deep Emacs integration</a>
-Track: <span class="sched-track B">B</span>
+Track: <span class="sched-track Development">Development</span>
</div>
diff --git a/2026/info/planning-before.md b/2026/info/planning-before.md
index 94af3eaf..4c1ca407 100644
--- a/2026/info/planning-before.md
+++ b/2026/info/planning-before.md
@@ -2,7 +2,7 @@
[[!toc ]]
Format: 20-min talk ; Q&A: BigBlueButton conference room Etherpad: <https://pad.emacsconf.org/2026-planning>
Etherpad: <https://pad.emacsconf.org/2026-planning>
-Status: Waiting for video from speaker
+Status: Processing uploaded video
diff --git a/2026/info/portable-nav.md b/2026/info/portable-nav.md
index 12a91058..09e95c7c 100644
--- a/2026/info/portable-nav.md
+++ b/2026/info/portable-nav.md
@@ -3,5 +3,5 @@
Back to the [[talks]]
Previous by track: <a href="/2026/talks/community">Community brainstorming</a>
Next by track: <a href="/2026/talks/os">Emacs everywhere: A fun romp through esoteric operating systems</a>
-Track: <span class="sched-track B">B</span>
+Track: <span class="sched-track Development">Development</span>
</div>
diff --git a/2026/info/prefix-nav.md b/2026/info/prefix-nav.md
index 92a11709..e6c3a210 100644
--- a/2026/info/prefix-nav.md
+++ b/2026/info/prefix-nav.md
@@ -1,7 +1,7 @@
<div class="talk-nav">
Back to the [[talks]]
-Previous by track: <a href="/2026/talks/remoto">El Remoto: browse any GitHub repos without cloning them</a>
+Previous by track: <a href="/2026/talks/guile">æmacs: having a hoot with a guile emacs</a>
Next by track: <a href="/2026/talks/rau">Emacs as a Window Manager and concurrency</a>
-Track: <span class="sched-track B">B</span>
+Track: <span class="sched-track Development">Development</span>
</div>
diff --git a/2026/info/rau-nav.md b/2026/info/rau-nav.md
index 7534baf0..bd04663b 100644
--- a/2026/info/rau-nav.md
+++ b/2026/info/rau-nav.md
@@ -3,5 +3,5 @@
Back to the [[talks]]
Previous by track: <a href="/2026/talks/prefix">prefix-tab-groups</a>
Next by track: <a href="/2026/talks/babel">Org Babel everywhere</a>
-Track: <span class="sched-track B">B</span>
+Track: <span class="sched-track Development">Development</span>
</div>
diff --git a/2026/info/remoto-nav.md b/2026/info/remoto-nav.md
index c2801d7e..1e7193cb 100644
--- a/2026/info/remoto-nav.md
+++ b/2026/info/remoto-nav.md
@@ -2,6 +2,6 @@
<div class="talk-nav">
Back to the [[talks]]
Previous by track: <a href="/2026/talks/cadet">My Space Cadet Deck - an Android Stream Deck replacement with deep Emacs integration</a>
-Next by track: <a href="/2026/talks/prefix">prefix-tab-groups</a>
-Track: <span class="sched-track B">B</span>
+Next by track: <a href="/2026/talks/guile">æmacs: having a hoot with a guile emacs</a>
+Track: <span class="sched-track Development">Development</span>
</div>
diff --git a/2026/organizers-notebook/index.org b/2026/organizers-notebook/index.org
index ba478f31..0c8a8e7d 100644
--- a/2026/organizers-notebook/index.org
+++ b/2026/organizers-notebook/index.org
@@ -216,11 +216,11 @@ If you have Javascript enabled, times will be translated into your local time.
'((:label "Saturday"
:start "2026-12-12 9:00"
:end "2026-12-12 18:00"
- :tracks ("General" "B"))
+ :tracks ("General" "Development"))
(:label "Sunday"
:start "2026-12-13 9:00"
:end "2026-12-13 18:00"
- :tracks ("General" "B"))))
+ :tracks ("General" "Development"))))
(let ((emacsconf-schedule-default-buffer-minutes 10)
(emacsconf-schedule-default-buffer-minutes-for-live-q-and-a 20)
(emacsconf-schedule-break-time 10)
@@ -252,13 +252,14 @@ If you have Javascript enabled, times will be translated into your local time.
writing ; Close the writing accountability gap with Emacs
android
sat-close
- ("B Saturday, Dec 6" :start "2026-12-12 9:30" :set-track "B")
+ ("DEV Saturday, Dec 6" :start "2026-12-12 9:30" :set-track "Development")
(community :start "10:30")
(lunch :start "12:00")
(portable :time 15) ; Emacs as my portable user space across operating platforms
os
cadet ; My Space Cadet Deck
remoto ; >= 10:00 EST -- (not indicated, but in America/Chicago timezone)
+ guile
("GEN Sunday, Dec 7" :start "2026-12-13 09:00" :set-track "General")
sun-open
bone ; <= 13:00 bug reports
@@ -275,7 +276,7 @@ If you have Javascript enabled, times will be translated into your local time.
anju ; >= 12:00
ghostel ; >= 14:00 Ghost in the Shell: a libghostty powered terminal for Emacs
(sun-close)
- ("B Saturday, Dec 6" :start "2026-12-13 10:00" :set-track "B")
+ ("DEV Saturday, Dec 6" :start "2026-12-13 10:00" :set-track "Development")
prefix ; >= 10:00 EST prefix-tab-groups
rau ; <= 13:00
babel
@@ -763,7 +764,7 @@ Interested in a shift? Please e-mail [[mailto:emacsconf-org-private@gnu.org]] an
* TODO [#A] Check EmacsConf infrastructure
-SCHEDULED: <2026-10-15 Thu>
+SCHEDULED: <2026-10-18 Sun>
:PROPERTIES:
:CUSTOM_ID: check-emacsconf-infrastructure
:CREATED: [2026-05-13 Wed 11:08]
diff --git a/2026/organizers-notebook/schedule.svg b/2026/organizers-notebook/schedule.svg
index d73c9bc3..0247f2f3 100644
--- a/2026/organizers-notebook/schedule.svg
+++ b/2026/organizers-notebook/schedule.svg
@@ -1 +1 @@
-<svg width="500" height="700" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" class="vertical"><title>Graphical view of the schedule</title><g transform="translate(0,0)"><title>Schedule for Saturday Dec 12 (-0500)</title><rect width="250" height="700" x="0" y="0" fill="white"></rect><text data-start="2026-12-12T14:00:00+0000" class="day-label" font-size="10" fill="black" y="20" x="3">Saturday Dec 12 (-0500)</text><a href="https://emacsconf.org/2026/talks/sat-open" data-start="2026-12-12T14:00:00+0000" data-end="2026-12-12T14:10:00+0000" title="Saturday opening remarks" data-slug="sat-open"><title>Sat 9:00- 9:10 Saturday opening remarks</title><rect x="70" y="30" opacity="0.8" width="54" height="12" stroke="black" stroke-dasharray="5,5,5" fill="gray"></rect><g transform="translate(70,40)"><text fill="black" x="0" y="0" font-size="10">sat-open</text></g></a><a href="https://emacsconf.org/2026/talks/planning" data-start="2026-12-12T14:10:00+0000" data-end="2026-12-12T14:30:00+0000" title="The Emacs Planning Habits of a Questionably Effective Person: My 40-year journey of planning with Emacs, Org Mode, paper journals, etc." data-slug="planning"><title>Sat 9:10- 9:30 The Emacs Planning Habits of a Questionably Effective Person: My 40-year journey of planning with Emacs, Org Mode, paper journals, etc.</title><rect x="70" y="42" opacity="0.8" width="54" height="25" stroke="black" stroke-dasharray="" fill="lightblue"></rect><g transform="translate(70,65)"><text fill="black" x="0" y="0" font-size="10">planning</text></g></a><a href="https://emacsconf.org/2026/talks/listen" data-start="2026-12-12T14:50:00+0000" data-end="2026-12-12T15:10:00+0000" title="Controlling Emacs by voice using Emacslisten" data-slug="listen"><title>Sat 9:50-10:10 Controlling Emacs by voice using Emacslisten</title><rect x="70" y="92" opacity="0.8" width="54" height="25" stroke="black" stroke-dasharray="" fill="lightblue"></rect><g transform="translate(70,115)"><text fill="black" x="0" y="0" font-size="10">listen</text></g></a><a href="https://emacsconf.org/2026/talks/emacspeak" data-start="2026-12-12T15:30:00+0000" data-end="2026-12-12T16:00:00+0000" title="Multi-dimensional information processing with Emacs and Emacspeak: a blind man's perspective" data-slug="emacspeak"><title>Sat 10:30-11:00 Multi-dimensional information processing with Emacs and Emacspeak: a blind man's perspective</title><rect x="70" y="142" opacity="0.8" width="54" height="37" stroke="black" stroke-dasharray="5,5,5" fill="gray"></rect><g transform="translate(70,177)"><text fill="black" x="0" y="0" font-size="10">emacspeak</text></g></a><a href="https://emacsconf.org/2026/talks/ltx-talk" data-start="2026-12-12T16:10:00+0000" data-end="2026-12-12T16:30:00+0000" title="ltx-talk: Accessible presentations with ox-beamer" data-slug="ltx-talk"><title>Sat 11:10-11:30 ltx-talk: Accessible presentations with ox-beamer</title><rect x="70" y="193" opacity="0.8" width="54" height="25" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(70,216)"><text fill="black" x="0" y="0" font-size="10">ltx-talk</text></g></a><a href="https://emacsconf.org/2026/talks/plots" data-start="2026-12-12T18:00:00+0000" data-end="2026-12-12T18:20:00+0000" title="Plots with ROOTs: Resilient data visualization with Emacs, Org and gnuplot" data-slug="plots"><title>Sat 1:00- 1:20 Plots with ROOTs: Resilient data visualization with Emacs, Org and gnuplot</title><rect x="70" y="331" opacity="0.8" width="54" height="25" stroke="black" stroke-dasharray="" fill="lightblue"></rect><g transform="translate(70,354)"><text fill="black" x="0" y="0" font-size="10">plots</text></g></a><a href="https://emacsconf.org/2026/talks/ffs" data-start="2026-12-12T18:40:00+0000" data-end="2026-12-12T19:00:00+0000" title="Plain text presentations in GNU Emacs with ffs" data-slug="ffs"><title>Sat 1:40- 2:00 Plain text presentations in GNU Emacs with ffs</title><rect x="70" y="381" opacity="0.8" width="54" height="25" stroke="black" stroke-dasharray="" fill="gray"></rect><g transform="translate(70,404)"><text fill="black" x="0" y="0" font-size="10">ffs</text></g></a><a href="https://emacsconf.org/2026/talks/mobile" data-start="2026-12-12T19:20:00+0000" data-end="2026-12-12T19:30:00+0000" title="How I solved Org Mode's biggest mobile and collaboration problems" data-slug="mobile"><title>Sat 2:20- 2:30 How I solved Org Mode's biggest mobile and collaboration problems</title><rect x="70" y="431" opacity="0.8" width="54" height="12" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(70,441)"><text fill="black" x="0" y="0" font-size="10">mobile</text></g></a><a href="https://emacsconf.org/2026/talks/hyperbole" data-start="2026-12-12T19:50:00+0000" data-end="2026-12-12T20:10:00+0000" title="Hyperbole, My Dear Watson" data-slug="hyperbole"><title>Sat 2:50- 3:10 Hyperbole, My Dear Watson</title><rect x="70" y="469" opacity="0.8" width="54" height="25" stroke="black" stroke-dasharray="" fill="gray"></rect><g transform="translate(70,492)"><text fill="black" x="0" y="0" font-size="10">hyperbole</text></g></a><a href="https://emacsconf.org/2026/talks/koutliner" data-start="2026-12-12T20:30:00+0000" data-end="2026-12-12T20:50:00+0000" title="Hyperbole Koutliner: The Best Autonumbered, Hyperlinking Outliner for Emacs" data-slug="koutliner"><title>Sat 3:30- 3:50 Hyperbole Koutliner: The Best Autonumbered, Hyperlinking Outliner for Emacs</title><rect x="70" y="519" opacity="0.8" width="54" height="25" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(70,542)"><text fill="black" x="0" y="0" font-size="10">koutliner</text></g></a><a href="https://emacsconf.org/2026/talks/writing" data-start="2026-12-12T21:10:00+0000" data-end="2026-12-12T21:30:00+0000" title="Close the writing accountability gap with Emacs" data-slug="writing"><title>Sat 4:10- 4:30 Close the writing accountability gap with Emacs</title><rect x="70" y="569" opacity="0.8" width="54" height="25" stroke="black" stroke-dasharray="" fill="gray"></rect><g transform="translate(70,592)"><text fill="black" x="0" y="0" font-size="10">writing</text></g></a><a href="https://emacsconf.org/2026/talks/android" data-start="2026-12-12T21:50:00+0000" data-end="2026-12-12T22:00:00+0000" title="Emacs on Android - Emacs for the next 40 years" data-slug="android"><title>Sat 4:50- 5:00 Emacs on Android - Emacs for the next 40 years</title><rect x="70" y="619" opacity="0.8" width="54" height="12" stroke="black" stroke-dasharray="" fill="gray"></rect><g transform="translate(70,629)"><text fill="black" x="0" y="0" font-size="10">android</text></g></a><a href="https://emacsconf.org/2026/talks/sat-close" data-start="2026-12-12T22:20:00+0000" data-end="2026-12-12T22:30:00+0000" title="Saturday closing remarks / open session" data-slug="sat-close"><title>Sat 5:20- 5:30 Saturday closing remarks / open session</title><rect x="70" y="657" opacity="0.8" width="54" height="12" stroke="black" stroke-dasharray="" fill="gray"></rect><g transform="translate(70,667)"><text fill="black" x="0" y="0" font-size="10">sat-close</text></g></a><a href="https://emacsconf.org/2026/talks/community" data-start="2026-12-12T15:30:00+0000" data-end="2026-12-12T16:30:00+0000" title="Community brainstorming" data-slug="community"><title>Sat 10:30-11:30 Community brainstorming</title><rect x="125" y="142" opacity="0.8" width="54" height="75" stroke="black" stroke-dasharray="" fill="gray"></rect><g transform="translate(125,215)"><text fill="black" x="0" y="0" font-size="10">community</text></g></a><a href="https://emacsconf.org/2026/talks/portable" data-start="2026-12-12T18:00:00+0000" data-end="2026-12-12T18:15:00+0000" title="Emacs as my portable user space across operating platforms" data-slug="portable"><title>Sat 1:00- 1:15 Emacs as my portable user space across operating platforms</title><rect x="125" y="331" opacity="0.8" width="54" height="18" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(125,347)"><text fill="black" x="0" y="0" font-size="10">portable</text></g></a><a href="https://emacsconf.org/2026/talks/os" data-start="2026-12-12T18:35:00+0000" data-end="2026-12-12T18:55:00+0000" title="Emacs everywhere: A fun romp through esoteric operating systems" data-slug="os"><title>Sat 1:35- 1:55 Emacs everywhere: A fun romp through esoteric operating systems</title><rect x="125" y="375" opacity="0.8" width="54" height="25" stroke="black" stroke-dasharray="" fill="gray"></rect><g transform="translate(125,398)"><text fill="black" x="0" y="0" font-size="10">os</text></g></a><a href="https://emacsconf.org/2026/talks/cadet" data-start="2026-12-12T19:15:00+0000" data-end="2026-12-12T19:25:00+0000" title="My Space Cadet Deck - an Android Stream Deck replacement with deep Emacs integration" data-slug="cadet"><title>Sat 2:15- 2:25 My Space Cadet Deck - an Android Stream Deck replacement with deep Emacs integration</title><rect x="125" y="425" opacity="0.8" width="54" height="12" stroke="black" stroke-dasharray="" fill="gray"></rect><g transform="translate(125,435)"><text fill="black" x="0" y="0" font-size="10">cadet</text></g></a><a href="https://emacsconf.org/2026/talks/remoto" data-start="2026-12-12T19:45:00+0000" data-end="2026-12-12T20:05:00+0000" title="El Remoto: browse any GitHub repos without cloning them" data-slug="remoto"><title>Sat 2:45- 3:05 El Remoto: browse any GitHub repos without cloning them</title><rect x="125" y="462" opacity="0.8" width="54" height="25" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(125,485)"><text fill="black" x="0" y="0" font-size="10">remoto</text></g></a><g transform="translate(0,30)"><line stroke="darkgray" x1="70" y1="0" x2="180" y2="0"></line><text data-start="2026-12-12T14:00:00+0000" fill="black" x="3" class="hour-label" font-size="10" y="5" dy=".4em">9 AM EST</text></g><g transform="translate(0,105)"><line stroke="darkgray" x1="70" y1="0" x2="180" y2="0"></line><text data-start="2026-12-12T15:00:00+0000" fill="black" x="3" class="hour-label" font-size="10" y="5" dy=".4em">10 AM EST</text></g><g transform="translate(0,180)"><line stroke="darkgray" x1="70" y1="0" x2="180" y2="0"></line><text data-start="2026-12-12T16:00:00+0000" fill="black" x="3" class="hour-label" font-size="10" y="5" dy=".4em">11 AM EST</text></g><g transform="translate(0,255)"><line stroke="darkgray" x1="70" y1="0" x2="180" y2="0"></line><text data-start="2026-12-12T17:00:00+0000" fill="black" x="3" class="hour-label" font-size="10" y="5" dy=".4em">12 PM EST</text></g><g transform="translate(0,331)"><line stroke="darkgray" x1="70" y1="0" x2="180" y2="0"></line><text data-start="2026-12-12T18:00:00+0000" fill="black" x="3" class="hour-label" font-size="10" y="5" dy=".4em">1 PM EST</text></g><g transform="translate(0,406)"><line stroke="darkgray" x1="70" y1="0" x2="180" y2="0"></line><text data-start="2026-12-12T19:00:00+0000" fill="black" x="3" class="hour-label" font-size="10" y="5" dy=".4em">2 PM EST</text></g><g transform="translate(0,481)"><line stroke="darkgray" x1="70" y1="0" x2="180" y2="0"></line><text data-start="2026-12-12T20:00:00+0000" fill="black" x="3" class="hour-label" font-size="10" y="5" dy=".4em">3 PM EST</text></g><g transform="translate(0,557)"><line stroke="darkgray" x1="70" y1="0" x2="180" y2="0"></line><text data-start="2026-12-12T21:00:00+0000" fill="black" x="3" class="hour-label" font-size="10" y="5" dy=".4em">4 PM EST</text></g><g transform="translate(0,632)"><line stroke="darkgray" x1="70" y1="0" x2="180" y2="0"></line><text data-start="2026-12-12T22:00:00+0000" fill="black" x="3" class="hour-label" font-size="10" y="5" dy=".4em">5 PM EST</text></g></g><g transform="translate(250,0)"><title>Schedule for Sunday Dec 13 (-0500)</title><rect width="250" height="700" x="0" y="0" fill="white"></rect><text data-start="2026-12-13T14:00:00+0000" class="day-label" font-size="10" fill="black" y="20" x="3">Sunday Dec 13 (-0500)</text><a href="https://emacsconf.org/2026/talks/sun-open" data-start="2026-12-13T14:00:00+0000" data-end="2026-12-13T14:10:00+0000" title="Sunday opening remarks" data-slug="sun-open"><title>Sun 9:00- 9:10 Sunday opening remarks</title><rect x="70" y="30" opacity="0.8" width="54" height="12" stroke="black" stroke-dasharray="5,5,5" fill="gray"></rect><g transform="translate(70,40)"><text fill="black" x="0" y="0" font-size="10">sun-open</text></g></a><a href="https://emacsconf.org/2026/talks/bone" data-start="2026-12-13T14:10:00+0000" data-end="2026-12-13T14:20:00+0000" title="BONE and gnaw.el: tracking what matters" data-slug="bone"><title>Sun 9:10- 9:20 BONE and gnaw.el: tracking what matters</title><rect x="70" y="42" opacity="0.8" width="54" height="12" stroke="black" stroke-dasharray="" fill="lightblue"></rect><g transform="translate(70,52)"><text fill="black" x="0" y="0" font-size="10">bone</text></g></a><a href="https://emacsconf.org/2026/talks/local" data-start="2026-12-13T14:40:00+0000" data-end="2026-12-13T14:55:00+0000" title="Local file history possibilities in Emacs" data-slug="local"><title>Sun 9:40- 9:55 Local file history possibilities in Emacs</title><rect x="70" y="80" opacity="0.8" width="54" height="18" stroke="black" stroke-dasharray="" fill="lightblue"></rect><g transform="translate(70,96)"><text fill="black" x="0" y="0" font-size="10">local</text></g></a><a href="https://emacsconf.org/2026/talks/hutch" data-start="2026-12-13T15:15:00+0000" data-end="2026-12-13T15:25:00+0000" title="hutch: code reviews for the mildly disenfranchised" data-slug="hutch"><title>Sun 10:15-10:25 hutch: code reviews for the mildly disenfranchised</title><rect x="70" y="124" opacity="0.8" width="54" height="12" stroke="black" stroke-dasharray="5,5,5" fill="lightblue"></rect><g transform="translate(70,134)"><text fill="black" x="0" y="0" font-size="10">hutch</text></g></a><a href="https://emacsconf.org/2026/talks/team" data-start="2026-12-13T15:35:00+0000" data-end="2026-12-13T15:55:00+0000" title="Beyond the Chatbot: Team-Oriented AI in Emacs" data-slug="team"><title>Sun 10:35-10:55 Beyond the Chatbot: Team-Oriented AI in Emacs</title><rect x="70" y="149" opacity="0.8" width="54" height="25" stroke="black" stroke-dasharray="" fill="gray"></rect><g transform="translate(70,172)"><text fill="black" x="0" y="0" font-size="10">team</text></g></a><a href="https://emacsconf.org/2026/talks/compile" data-start="2026-12-13T16:15:00+0000" data-end="2026-12-13T16:35:00+0000" title="Beyond shell history: Saving compilation output in Emacs" data-slug="compile"><title>Sun 11:15-11:35 Beyond shell history: Saving compilation output in Emacs</title><rect x="70" y="199" opacity="0.8" width="54" height="25" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(70,222)"><text fill="black" x="0" y="0" font-size="10">compile</text></g></a><a href="https://emacsconf.org/2026/talks/dnd" data-start="2026-12-13T18:00:00+0000" data-end="2026-12-13T18:20:00+0000" title="DnD and Org Roam: Becoming a Better DM with Emacs" data-slug="dnd"><title>Sun 1:00- 1:20 DnD and Org Roam: Becoming a Better DM with Emacs</title><rect x="70" y="331" opacity="0.8" width="54" height="25" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(70,354)"><text fill="black" x="0" y="0" font-size="10">dnd</text></g></a><a href="https://emacsconf.org/2026/talks/bible" data-start="2026-12-13T18:30:00+0000" data-end="2026-12-13T18:50:00+0000" title="bible-gateway: A Two-Edged Sword in Emacs" data-slug="bible"><title>Sun 1:30- 1:50 bible-gateway: A Two-Edged Sword in Emacs</title><rect x="70" y="368" opacity="0.8" width="54" height="25" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(70,391)"><text fill="black" x="0" y="0" font-size="10">bible</text></g></a><a href="https://emacsconf.org/2026/talks/svg" data-start="2026-12-13T19:10:00+0000" data-end="2026-12-13T19:30:00+0000" title="A (sort of) REPL for learning SVG" data-slug="svg"><title>Sun 2:10- 2:30 A (sort of) REPL for learning SVG</title><rect x="70" y="419" opacity="0.8" width="54" height="25" stroke="black" stroke-dasharray="" fill="gray"></rect><g transform="translate(70,442)"><text fill="black" x="0" y="0" font-size="10">svg</text></g></a><a href="https://emacsconf.org/2026/talks/align" data-start="2026-12-13T19:50:00+0000" data-end="2026-12-13T20:10:00+0000" title="Column-aligning text in Emacs" data-slug="align"><title>Sun 2:50- 3:10 Column-aligning text in Emacs</title><rect x="70" y="469" opacity="0.8" width="54" height="25" stroke="black" stroke-dasharray="" fill="gray"></rect><g transform="translate(70,492)"><text fill="black" x="0" y="0" font-size="10">align</text></g></a><a href="https://emacsconf.org/2026/talks/anju" data-start="2026-12-13T20:30:00+0000" data-end="2026-12-13T20:50:00+0000" title="Revisiting Emacs Mouse Interactions with Anju" data-slug="anju"><title>Sun 3:30- 3:50 Revisiting Emacs Mouse Interactions with Anju</title><rect x="70" y="519" opacity="0.8" width="54" height="25" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(70,542)"><text fill="black" x="0" y="0" font-size="10">anju</text></g></a><a href="https://emacsconf.org/2026/talks/ghostel" data-start="2026-12-13T21:00:00+0000" data-end="2026-12-13T21:20:00+0000" title="Ghost in the Shell: a libghostty powered terminal for Emacs" data-slug="ghostel"><title>Sun 4:00- 4:20 Ghost in the Shell: a libghostty powered terminal for Emacs</title><rect x="70" y="557" opacity="0.8" width="54" height="25" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(70,580)"><text fill="black" x="0" y="0" font-size="10">ghostel</text></g></a><a href="https://emacsconf.org/2026/talks/sun-close" data-start="2026-12-13T21:40:00+0000" data-end="2026-12-13T21:50:00+0000" title="Sunday closing remarks" data-slug="sun-close"><title>Sun 4:40- 4:50 Sunday closing remarks</title><rect x="70" y="607" opacity="0.8" width="54" height="12" stroke="black" stroke-dasharray="" fill="gray"></rect><g transform="translate(70,617)"><text fill="black" x="0" y="0" font-size="10">sun-close</text></g></a><a href="https://emacsconf.org/2026/talks/prefix" data-start="2026-12-13T15:00:00+0000" data-end="2026-12-13T15:10:00+0000" title="prefix-tab-groups" data-slug="prefix"><title>Sun 10:00-10:10 prefix-tab-groups</title><rect x="125" y="105" opacity="0.8" width="54" height="12" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(125,115)"><text fill="black" x="0" y="0" font-size="10">prefix</text></g></a><a href="https://emacsconf.org/2026/talks/rau" data-start="2026-12-13T15:20:00+0000" data-end="2026-12-13T15:40:00+0000" title="Emacs as a Window Manager and concurrency" data-slug="rau"><title>Sun 10:20-10:40 Emacs as a Window Manager and concurrency</title><rect x="125" y="130" opacity="0.8" width="54" height="25" stroke="black" stroke-dasharray="" fill="lightblue"></rect><g transform="translate(125,153)"><text fill="black" x="0" y="0" font-size="10">rau</text></g></a><a href="https://emacsconf.org/2026/talks/babel" data-start="2026-12-13T16:00:00+0000" data-end="2026-12-13T16:10:00+0000" title="Org Babel everywhere" data-slug="babel"><title>Sun 11:00-11:10 Org Babel everywhere</title><rect x="125" y="180" opacity="0.8" width="54" height="12" stroke="black" stroke-dasharray="" fill="gray"></rect><g transform="translate(125,190)"><text fill="black" x="0" y="0" font-size="10">babel</text></g></a><a href="https://emacsconf.org/2026/talks/llms" data-start="2026-12-13T18:00:00+0000" data-end="2026-12-13T19:00:00+0000" title="Meetup/panel about LLMs?" data-slug="llms"><title>Sun 1:00- 2:00 Meetup/panel about LLMs?</title><rect x="125" y="331" opacity="0.8" width="54" height="75" stroke="black" stroke-dasharray="" fill="gray"></rect><g transform="translate(125,404)"><text fill="black" x="0" y="0" font-size="10">llms</text></g></a><g transform="translate(0,30)"><line stroke="darkgray" x1="70" y1="0" x2="180" y2="0"></line><text data-start="2026-12-13T14:00:00+0000" fill="black" x="3" class="hour-label" font-size="10" y="5" dy=".4em">9 AM EST</text></g><g transform="translate(0,105)"><line stroke="darkgray" x1="70" y1="0" x2="180" y2="0"></line><text data-start="2026-12-13T15:00:00+0000" fill="black" x="3" class="hour-label" font-size="10" y="5" dy=".4em">10 AM EST</text></g><g transform="translate(0,180)"><line stroke="darkgray" x1="70" y1="0" x2="180" y2="0"></line><text data-start="2026-12-13T16:00:00+0000" fill="black" x="3" class="hour-label" font-size="10" y="5" dy=".4em">11 AM EST</text></g><g transform="translate(0,255)"><line stroke="darkgray" x1="70" y1="0" x2="180" y2="0"></line><text data-start="2026-12-13T17:00:00+0000" fill="black" x="3" class="hour-label" font-size="10" y="5" dy=".4em">12 PM EST</text></g><g transform="translate(0,331)"><line stroke="darkgray" x1="70" y1="0" x2="180" y2="0"></line><text data-start="2026-12-13T18:00:00+0000" fill="black" x="3" class="hour-label" font-size="10" y="5" dy=".4em">1 PM EST</text></g><g transform="translate(0,406)"><line stroke="darkgray" x1="70" y1="0" x2="180" y2="0"></line><text data-start="2026-12-13T19:00:00+0000" fill="black" x="3" class="hour-label" font-size="10" y="5" dy=".4em">2 PM EST</text></g><g transform="translate(0,481)"><line stroke="darkgray" x1="70" y1="0" x2="180" y2="0"></line><text data-start="2026-12-13T20:00:00+0000" fill="black" x="3" class="hour-label" font-size="10" y="5" dy=".4em">3 PM EST</text></g><g transform="translate(0,557)"><line stroke="darkgray" x1="70" y1="0" x2="180" y2="0"></line><text data-start="2026-12-13T21:00:00+0000" fill="black" x="3" class="hour-label" font-size="10" y="5" dy=".4em">4 PM EST</text></g><g transform="translate(0,632)"><line stroke="darkgray" x1="70" y1="0" x2="180" y2="0"></line><text data-start="2026-12-13T22:00:00+0000" fill="black" x="3" class="hour-label" font-size="10" y="5" dy=".4em">5 PM EST</text></g></g></svg> \ No newline at end of file
+<svg width="500" height="700" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" class="vertical"><title>Graphical view of the schedule</title><g transform="translate(0,0)"><title>Schedule for Saturday Dec 12 (-0500)</title><rect width="250" height="700" x="0" y="0" fill="white"></rect><text data-start="2026-12-12T14:00:00+0000" class="day-label" font-size="10" fill="black" y="20" x="3">Saturday Dec 12 (-0500)</text><a href="https://emacsconf.org/2026/talks/sat-open" data-start="2026-12-12T14:00:00+0000" data-end="2026-12-12T14:10:00+0000" title="Saturday opening remarks" data-slug="sat-open"><title>Sat 9:00- 9:10 Saturday opening remarks</title><rect x="70" y="30" opacity="0.8" width="54" height="12" stroke="black" stroke-dasharray="5,5,5" fill="gray"></rect><g transform="translate(70,40)"><text fill="black" x="0" y="0" font-size="10">sat-open</text></g></a><a href="https://emacsconf.org/2026/talks/planning" data-start="2026-12-12T14:10:00+0000" data-end="2026-12-12T14:30:00+0000" title="The Emacs Planning Habits of a Questionably Effective Person: My 40-year journey of planning with Emacs, Org Mode, paper journals, etc." data-slug="planning"><title>Sat 9:10- 9:30 The Emacs Planning Habits of a Questionably Effective Person: My 40-year journey of planning with Emacs, Org Mode, paper journals, etc.</title><rect x="70" y="42" opacity="0.8" width="54" height="25" stroke="black" stroke-dasharray="" fill="lightblue"></rect><g transform="translate(70,65)"><text fill="black" x="0" y="0" font-size="10">planning</text></g></a><a href="https://emacsconf.org/2026/talks/listen" data-start="2026-12-12T14:50:00+0000" data-end="2026-12-12T15:10:00+0000" title="Controlling Emacs by voice using Emacslisten" data-slug="listen"><title>Sat 9:50-10:10 Controlling Emacs by voice using Emacslisten</title><rect x="70" y="92" opacity="0.8" width="54" height="25" stroke="black" stroke-dasharray="" fill="lightblue"></rect><g transform="translate(70,115)"><text fill="black" x="0" y="0" font-size="10">listen</text></g></a><a href="https://emacsconf.org/2026/talks/emacspeak" data-start="2026-12-12T15:30:00+0000" data-end="2026-12-12T16:00:00+0000" title="Multi-dimensional information processing with Emacs and Emacspeak: a blind man's perspective" data-slug="emacspeak"><title>Sat 10:30-11:00 Multi-dimensional information processing with Emacs and Emacspeak: a blind man's perspective</title><rect x="70" y="142" opacity="0.8" width="54" height="37" stroke="black" stroke-dasharray="5,5,5" fill="gray"></rect><g transform="translate(70,177)"><text fill="black" x="0" y="0" font-size="10">emacspeak</text></g></a><a href="https://emacsconf.org/2026/talks/ltx-talk" data-start="2026-12-12T16:10:00+0000" data-end="2026-12-12T16:30:00+0000" title="ltx-talk: Accessible presentations with ox-beamer" data-slug="ltx-talk"><title>Sat 11:10-11:30 ltx-talk: Accessible presentations with ox-beamer</title><rect x="70" y="193" opacity="0.8" width="54" height="25" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(70,216)"><text fill="black" x="0" y="0" font-size="10">ltx-talk</text></g></a><a href="https://emacsconf.org/2026/talks/plots" data-start="2026-12-12T18:00:00+0000" data-end="2026-12-12T18:20:00+0000" title="Plots with ROOTs: Resilient data visualization with Emacs, Org and gnuplot" data-slug="plots"><title>Sat 1:00- 1:20 Plots with ROOTs: Resilient data visualization with Emacs, Org and gnuplot</title><rect x="70" y="331" opacity="0.8" width="54" height="25" stroke="black" stroke-dasharray="" fill="lightblue"></rect><g transform="translate(70,354)"><text fill="black" x="0" y="0" font-size="10">plots</text></g></a><a href="https://emacsconf.org/2026/talks/ffs" data-start="2026-12-12T18:40:00+0000" data-end="2026-12-12T19:00:00+0000" title="Plain text presentations in GNU Emacs with ffs" data-slug="ffs"><title>Sat 1:40- 2:00 Plain text presentations in GNU Emacs with ffs</title><rect x="70" y="381" opacity="0.8" width="54" height="25" stroke="black" stroke-dasharray="" fill="gray"></rect><g transform="translate(70,404)"><text fill="black" x="0" y="0" font-size="10">ffs</text></g></a><a href="https://emacsconf.org/2026/talks/mobile" data-start="2026-12-12T19:20:00+0000" data-end="2026-12-12T19:30:00+0000" title="How I solved Org Mode's biggest mobile and collaboration problems" data-slug="mobile"><title>Sat 2:20- 2:30 How I solved Org Mode's biggest mobile and collaboration problems</title><rect x="70" y="431" opacity="0.8" width="54" height="12" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(70,441)"><text fill="black" x="0" y="0" font-size="10">mobile</text></g></a><a href="https://emacsconf.org/2026/talks/hyperbole" data-start="2026-12-12T19:50:00+0000" data-end="2026-12-12T20:10:00+0000" title="Hyperbole, My Dear Watson" data-slug="hyperbole"><title>Sat 2:50- 3:10 Hyperbole, My Dear Watson</title><rect x="70" y="469" opacity="0.8" width="54" height="25" stroke="black" stroke-dasharray="" fill="gray"></rect><g transform="translate(70,492)"><text fill="black" x="0" y="0" font-size="10">hyperbole</text></g></a><a href="https://emacsconf.org/2026/talks/koutliner" data-start="2026-12-12T20:30:00+0000" data-end="2026-12-12T20:50:00+0000" title="Hyperbole Koutliner: The Best Autonumbered, Hyperlinking Outliner for Emacs" data-slug="koutliner"><title>Sat 3:30- 3:50 Hyperbole Koutliner: The Best Autonumbered, Hyperlinking Outliner for Emacs</title><rect x="70" y="519" opacity="0.8" width="54" height="25" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(70,542)"><text fill="black" x="0" y="0" font-size="10">koutliner</text></g></a><a href="https://emacsconf.org/2026/talks/writing" data-start="2026-12-12T21:10:00+0000" data-end="2026-12-12T21:30:00+0000" title="Close the writing accountability gap with Emacs" data-slug="writing"><title>Sat 4:10- 4:30 Close the writing accountability gap with Emacs</title><rect x="70" y="569" opacity="0.8" width="54" height="25" stroke="black" stroke-dasharray="" fill="gray"></rect><g transform="translate(70,592)"><text fill="black" x="0" y="0" font-size="10">writing</text></g></a><a href="https://emacsconf.org/2026/talks/android" data-start="2026-12-12T21:50:00+0000" data-end="2026-12-12T22:00:00+0000" title="Emacs on Android - Emacs for the next 40 years" data-slug="android"><title>Sat 4:50- 5:00 Emacs on Android - Emacs for the next 40 years</title><rect x="70" y="619" opacity="0.8" width="54" height="12" stroke="black" stroke-dasharray="" fill="gray"></rect><g transform="translate(70,629)"><text fill="black" x="0" y="0" font-size="10">android</text></g></a><a href="https://emacsconf.org/2026/talks/sat-close" data-start="2026-12-12T22:20:00+0000" data-end="2026-12-12T22:30:00+0000" title="Saturday closing remarks / open session" data-slug="sat-close"><title>Sat 5:20- 5:30 Saturday closing remarks / open session</title><rect x="70" y="657" opacity="0.8" width="54" height="12" stroke="black" stroke-dasharray="" fill="gray"></rect><g transform="translate(70,667)"><text fill="black" x="0" y="0" font-size="10">sat-close</text></g></a><a href="https://emacsconf.org/2026/talks/community" data-start="2026-12-12T15:30:00+0000" data-end="2026-12-12T16:30:00+0000" title="Community brainstorming" data-slug="community"><title>Sat 10:30-11:30 Community brainstorming</title><rect x="125" y="142" opacity="0.8" width="54" height="75" stroke="black" stroke-dasharray="" fill="gray"></rect><g transform="translate(125,215)"><text fill="black" x="0" y="0" font-size="10">community</text></g></a><a href="https://emacsconf.org/2026/talks/portable" data-start="2026-12-12T18:00:00+0000" data-end="2026-12-12T18:15:00+0000" title="Emacs as my portable user space across operating platforms" data-slug="portable"><title>Sat 1:00- 1:15 Emacs as my portable user space across operating platforms</title><rect x="125" y="331" opacity="0.8" width="54" height="18" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(125,347)"><text fill="black" x="0" y="0" font-size="10">portable</text></g></a><a href="https://emacsconf.org/2026/talks/os" data-start="2026-12-12T18:35:00+0000" data-end="2026-12-12T18:55:00+0000" title="Emacs everywhere: A fun romp through esoteric operating systems" data-slug="os"><title>Sat 1:35- 1:55 Emacs everywhere: A fun romp through esoteric operating systems</title><rect x="125" y="375" opacity="0.8" width="54" height="25" stroke="black" stroke-dasharray="" fill="gray"></rect><g transform="translate(125,398)"><text fill="black" x="0" y="0" font-size="10">os</text></g></a><a href="https://emacsconf.org/2026/talks/cadet" data-start="2026-12-12T19:15:00+0000" data-end="2026-12-12T19:25:00+0000" title="My Space Cadet Deck - an Android Stream Deck replacement with deep Emacs integration" data-slug="cadet"><title>Sat 2:15- 2:25 My Space Cadet Deck - an Android Stream Deck replacement with deep Emacs integration</title><rect x="125" y="425" opacity="0.8" width="54" height="12" stroke="black" stroke-dasharray="" fill="gray"></rect><g transform="translate(125,435)"><text fill="black" x="0" y="0" font-size="10">cadet</text></g></a><a href="https://emacsconf.org/2026/talks/remoto" data-start="2026-12-12T19:45:00+0000" data-end="2026-12-12T20:05:00+0000" title="El Remoto: browse any GitHub repos without cloning them" data-slug="remoto"><title>Sat 2:45- 3:05 El Remoto: browse any GitHub repos without cloning them</title><rect x="125" y="462" opacity="0.8" width="54" height="25" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(125,485)"><text fill="black" x="0" y="0" font-size="10">remoto</text></g></a><a href="https://emacsconf.org/2026/talks/guile" data-start="2026-12-12T20:25:00+0000" data-end="2026-12-12T20:45:00+0000" title="æmacs: having a hoot with a guile emacs" data-slug="guile"><title>Sat 3:25- 3:45 æmacs: having a hoot with a guile emacs</title><rect x="125" y="513" opacity="0.8" width="54" height="25" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(125,536)"><text fill="black" x="0" y="0" font-size="10">guile</text></g></a><g transform="translate(0,30)"><line stroke="darkgray" x1="70" y1="0" x2="180" y2="0"></line><text data-start="2026-12-12T14:00:00+0000" fill="black" x="3" class="hour-label" font-size="10" y="5" dy=".4em">9 AM EST</text></g><g transform="translate(0,105)"><line stroke="darkgray" x1="70" y1="0" x2="180" y2="0"></line><text data-start="2026-12-12T15:00:00+0000" fill="black" x="3" class="hour-label" font-size="10" y="5" dy=".4em">10 AM EST</text></g><g transform="translate(0,180)"><line stroke="darkgray" x1="70" y1="0" x2="180" y2="0"></line><text data-start="2026-12-12T16:00:00+0000" fill="black" x="3" class="hour-label" font-size="10" y="5" dy=".4em">11 AM EST</text></g><g transform="translate(0,255)"><line stroke="darkgray" x1="70" y1="0" x2="180" y2="0"></line><text data-start="2026-12-12T17:00:00+0000" fill="black" x="3" class="hour-label" font-size="10" y="5" dy=".4em">12 PM EST</text></g><g transform="translate(0,331)"><line stroke="darkgray" x1="70" y1="0" x2="180" y2="0"></line><text data-start="2026-12-12T18:00:00+0000" fill="black" x="3" class="hour-label" font-size="10" y="5" dy=".4em">1 PM EST</text></g><g transform="translate(0,406)"><line stroke="darkgray" x1="70" y1="0" x2="180" y2="0"></line><text data-start="2026-12-12T19:00:00+0000" fill="black" x="3" class="hour-label" font-size="10" y="5" dy=".4em">2 PM EST</text></g><g transform="translate(0,481)"><line stroke="darkgray" x1="70" y1="0" x2="180" y2="0"></line><text data-start="2026-12-12T20:00:00+0000" fill="black" x="3" class="hour-label" font-size="10" y="5" dy=".4em">3 PM EST</text></g><g transform="translate(0,557)"><line stroke="darkgray" x1="70" y1="0" x2="180" y2="0"></line><text data-start="2026-12-12T21:00:00+0000" fill="black" x="3" class="hour-label" font-size="10" y="5" dy=".4em">4 PM EST</text></g><g transform="translate(0,632)"><line stroke="darkgray" x1="70" y1="0" x2="180" y2="0"></line><text data-start="2026-12-12T22:00:00+0000" fill="black" x="3" class="hour-label" font-size="10" y="5" dy=".4em">5 PM EST</text></g></g><g transform="translate(250,0)"><title>Schedule for Sunday Dec 13 (-0500)</title><rect width="250" height="700" x="0" y="0" fill="white"></rect><text data-start="2026-12-13T14:00:00+0000" class="day-label" font-size="10" fill="black" y="20" x="3">Sunday Dec 13 (-0500)</text><a href="https://emacsconf.org/2026/talks/sun-open" data-start="2026-12-13T14:00:00+0000" data-end="2026-12-13T14:10:00+0000" title="Sunday opening remarks" data-slug="sun-open"><title>Sun 9:00- 9:10 Sunday opening remarks</title><rect x="70" y="30" opacity="0.8" width="54" height="12" stroke="black" stroke-dasharray="5,5,5" fill="gray"></rect><g transform="translate(70,40)"><text fill="black" x="0" y="0" font-size="10">sun-open</text></g></a><a href="https://emacsconf.org/2026/talks/bone" data-start="2026-12-13T14:10:00+0000" data-end="2026-12-13T14:20:00+0000" title="BONE and gnaw.el: tracking what matters" data-slug="bone"><title>Sun 9:10- 9:20 BONE and gnaw.el: tracking what matters</title><rect x="70" y="42" opacity="0.8" width="54" height="12" stroke="black" stroke-dasharray="" fill="lightblue"></rect><g transform="translate(70,52)"><text fill="black" x="0" y="0" font-size="10">bone</text></g></a><a href="https://emacsconf.org/2026/talks/local" data-start="2026-12-13T14:40:00+0000" data-end="2026-12-13T14:55:00+0000" title="Local file history possibilities in Emacs" data-slug="local"><title>Sun 9:40- 9:55 Local file history possibilities in Emacs</title><rect x="70" y="80" opacity="0.8" width="54" height="18" stroke="black" stroke-dasharray="" fill="lightblue"></rect><g transform="translate(70,96)"><text fill="black" x="0" y="0" font-size="10">local</text></g></a><a href="https://emacsconf.org/2026/talks/hutch" data-start="2026-12-13T15:15:00+0000" data-end="2026-12-13T15:25:00+0000" title="hutch: code reviews for the mildly disenfranchised" data-slug="hutch"><title>Sun 10:15-10:25 hutch: code reviews for the mildly disenfranchised</title><rect x="70" y="124" opacity="0.8" width="54" height="12" stroke="black" stroke-dasharray="5,5,5" fill="lightblue"></rect><g transform="translate(70,134)"><text fill="black" x="0" y="0" font-size="10">hutch</text></g></a><a href="https://emacsconf.org/2026/talks/team" data-start="2026-12-13T15:35:00+0000" data-end="2026-12-13T15:55:00+0000" title="Beyond the Chatbot: Team-Oriented AI in Emacs" data-slug="team"><title>Sun 10:35-10:55 Beyond the Chatbot: Team-Oriented AI in Emacs</title><rect x="70" y="149" opacity="0.8" width="54" height="25" stroke="black" stroke-dasharray="" fill="gray"></rect><g transform="translate(70,172)"><text fill="black" x="0" y="0" font-size="10">team</text></g></a><a href="https://emacsconf.org/2026/talks/compile" data-start="2026-12-13T16:15:00+0000" data-end="2026-12-13T16:35:00+0000" title="Beyond shell history: Saving compilation output in Emacs" data-slug="compile"><title>Sun 11:15-11:35 Beyond shell history: Saving compilation output in Emacs</title><rect x="70" y="199" opacity="0.8" width="54" height="25" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(70,222)"><text fill="black" x="0" y="0" font-size="10">compile</text></g></a><a href="https://emacsconf.org/2026/talks/dnd" data-start="2026-12-13T18:00:00+0000" data-end="2026-12-13T18:20:00+0000" title="DnD and Org Roam: Becoming a Better DM with Emacs" data-slug="dnd"><title>Sun 1:00- 1:20 DnD and Org Roam: Becoming a Better DM with Emacs</title><rect x="70" y="331" opacity="0.8" width="54" height="25" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(70,354)"><text fill="black" x="0" y="0" font-size="10">dnd</text></g></a><a href="https://emacsconf.org/2026/talks/bible" data-start="2026-12-13T18:30:00+0000" data-end="2026-12-13T18:50:00+0000" title="bible-gateway: A Two-Edged Sword in Emacs" data-slug="bible"><title>Sun 1:30- 1:50 bible-gateway: A Two-Edged Sword in Emacs</title><rect x="70" y="368" opacity="0.8" width="54" height="25" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(70,391)"><text fill="black" x="0" y="0" font-size="10">bible</text></g></a><a href="https://emacsconf.org/2026/talks/svg" data-start="2026-12-13T19:10:00+0000" data-end="2026-12-13T19:30:00+0000" title="A (sort of) REPL for learning SVG" data-slug="svg"><title>Sun 2:10- 2:30 A (sort of) REPL for learning SVG</title><rect x="70" y="419" opacity="0.8" width="54" height="25" stroke="black" stroke-dasharray="" fill="gray"></rect><g transform="translate(70,442)"><text fill="black" x="0" y="0" font-size="10">svg</text></g></a><a href="https://emacsconf.org/2026/talks/align" data-start="2026-12-13T19:50:00+0000" data-end="2026-12-13T20:10:00+0000" title="Column-aligning text in Emacs" data-slug="align"><title>Sun 2:50- 3:10 Column-aligning text in Emacs</title><rect x="70" y="469" opacity="0.8" width="54" height="25" stroke="black" stroke-dasharray="" fill="gray"></rect><g transform="translate(70,492)"><text fill="black" x="0" y="0" font-size="10">align</text></g></a><a href="https://emacsconf.org/2026/talks/anju" data-start="2026-12-13T20:30:00+0000" data-end="2026-12-13T20:50:00+0000" title="Revisiting Emacs Mouse Interactions with Anju" data-slug="anju"><title>Sun 3:30- 3:50 Revisiting Emacs Mouse Interactions with Anju</title><rect x="70" y="519" opacity="0.8" width="54" height="25" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(70,542)"><text fill="black" x="0" y="0" font-size="10">anju</text></g></a><a href="https://emacsconf.org/2026/talks/ghostel" data-start="2026-12-13T21:00:00+0000" data-end="2026-12-13T21:20:00+0000" title="Ghost in the Shell: a libghostty powered terminal for Emacs" data-slug="ghostel"><title>Sun 4:00- 4:20 Ghost in the Shell: a libghostty powered terminal for Emacs</title><rect x="70" y="557" opacity="0.8" width="54" height="25" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(70,580)"><text fill="black" x="0" y="0" font-size="10">ghostel</text></g></a><a href="https://emacsconf.org/2026/talks/sun-close" data-start="2026-12-13T21:40:00+0000" data-end="2026-12-13T21:50:00+0000" title="Sunday closing remarks" data-slug="sun-close"><title>Sun 4:40- 4:50 Sunday closing remarks</title><rect x="70" y="607" opacity="0.8" width="54" height="12" stroke="black" stroke-dasharray="" fill="gray"></rect><g transform="translate(70,617)"><text fill="black" x="0" y="0" font-size="10">sun-close</text></g></a><a href="https://emacsconf.org/2026/talks/prefix" data-start="2026-12-13T15:00:00+0000" data-end="2026-12-13T15:10:00+0000" title="prefix-tab-groups" data-slug="prefix"><title>Sun 10:00-10:10 prefix-tab-groups</title><rect x="125" y="105" opacity="0.8" width="54" height="12" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(125,115)"><text fill="black" x="0" y="0" font-size="10">prefix</text></g></a><a href="https://emacsconf.org/2026/talks/rau" data-start="2026-12-13T15:20:00+0000" data-end="2026-12-13T15:40:00+0000" title="Emacs as a Window Manager and concurrency" data-slug="rau"><title>Sun 10:20-10:40 Emacs as a Window Manager and concurrency</title><rect x="125" y="130" opacity="0.8" width="54" height="25" stroke="black" stroke-dasharray="" fill="lightblue"></rect><g transform="translate(125,153)"><text fill="black" x="0" y="0" font-size="10">rau</text></g></a><a href="https://emacsconf.org/2026/talks/babel" data-start="2026-12-13T16:00:00+0000" data-end="2026-12-13T16:10:00+0000" title="Org Babel everywhere" data-slug="babel"><title>Sun 11:00-11:10 Org Babel everywhere</title><rect x="125" y="180" opacity="0.8" width="54" height="12" stroke="black" stroke-dasharray="" fill="gray"></rect><g transform="translate(125,190)"><text fill="black" x="0" y="0" font-size="10">babel</text></g></a><a href="https://emacsconf.org/2026/talks/llms" data-start="2026-12-13T18:00:00+0000" data-end="2026-12-13T19:00:00+0000" title="Meetup/panel about LLMs?" data-slug="llms"><title>Sun 1:00- 2:00 Meetup/panel about LLMs?</title><rect x="125" y="331" opacity="0.8" width="54" height="75" stroke="black" stroke-dasharray="" fill="gray"></rect><g transform="translate(125,404)"><text fill="black" x="0" y="0" font-size="10">llms</text></g></a><g transform="translate(0,30)"><line stroke="darkgray" x1="70" y1="0" x2="180" y2="0"></line><text data-start="2026-12-13T14:00:00+0000" fill="black" x="3" class="hour-label" font-size="10" y="5" dy=".4em">9 AM EST</text></g><g transform="translate(0,105)"><line stroke="darkgray" x1="70" y1="0" x2="180" y2="0"></line><text data-start="2026-12-13T15:00:00+0000" fill="black" x="3" class="hour-label" font-size="10" y="5" dy=".4em">10 AM EST</text></g><g transform="translate(0,180)"><line stroke="darkgray" x1="70" y1="0" x2="180" y2="0"></line><text data-start="2026-12-13T16:00:00+0000" fill="black" x="3" class="hour-label" font-size="10" y="5" dy=".4em">11 AM EST</text></g><g transform="translate(0,255)"><line stroke="darkgray" x1="70" y1="0" x2="180" y2="0"></line><text data-start="2026-12-13T17:00:00+0000" fill="black" x="3" class="hour-label" font-size="10" y="5" dy=".4em">12 PM EST</text></g><g transform="translate(0,331)"><line stroke="darkgray" x1="70" y1="0" x2="180" y2="0"></line><text data-start="2026-12-13T18:00:00+0000" fill="black" x="3" class="hour-label" font-size="10" y="5" dy=".4em">1 PM EST</text></g><g transform="translate(0,406)"><line stroke="darkgray" x1="70" y1="0" x2="180" y2="0"></line><text data-start="2026-12-13T19:00:00+0000" fill="black" x="3" class="hour-label" font-size="10" y="5" dy=".4em">2 PM EST</text></g><g transform="translate(0,481)"><line stroke="darkgray" x1="70" y1="0" x2="180" y2="0"></line><text data-start="2026-12-13T20:00:00+0000" fill="black" x="3" class="hour-label" font-size="10" y="5" dy=".4em">3 PM EST</text></g><g transform="translate(0,557)"><line stroke="darkgray" x1="70" y1="0" x2="180" y2="0"></line><text data-start="2026-12-13T21:00:00+0000" fill="black" x="3" class="hour-label" font-size="10" y="5" dy=".4em">4 PM EST</text></g><g transform="translate(0,632)"><line stroke="darkgray" x1="70" y1="0" x2="180" y2="0"></line><text data-start="2026-12-13T22:00:00+0000" fill="black" x="3" class="hour-label" font-size="10" y="5" dy=".4em">5 PM EST</text></g></g></svg> \ No newline at end of file
diff --git a/2026/schedule-details.md b/2026/schedule-details.md
index c87ed2f4..0d3df4a3 100644
--- a/2026/schedule-details.md
+++ b/2026/schedule-details.md
@@ -1,8 +1,8 @@
-Jump to: <a href="#b">B</a>
+Jump to: <a href="#dev">Development</a>
<h1 id="gen" class="sched-track General">General (26 talks)</h1>
[[!template id=sched time="""10""" title="""Saturday opening remarks""" url="""/2026/talks/sat-open""" speakers="""Sacha Chua""" watch="""https://emacsconf.org/2026/watch/gen""" slug="""sat-open""" note=""""""]]
-[[!template id=sched time="""20""" title="""The Emacs Planning Habits of a Questionably Effective Person: My 40-year journey of planning with Emacs, Org Mode, paper journals, etc.""" url="""/2026/talks/planning""" speakers="""George Jones""" watch="""https://emacsconf.org/2026/watch/gen""" slug="""planning""" note=""""""]]
+[[!template id=sched time="""20""" title="""The Emacs Planning Habits of a Questionably Effective Person: My 40-year journey of planning with Emacs, Org Mode, paper journals, etc.""" url="""/2026/talks/planning""" speakers="""George Jones""" watch="""https://emacsconf.org/2026/watch/gen""" slug="""planning""" note="""video: 19:20"""]]
[[!template id=sched time="""20""" title="""Controlling Emacs by voice using Emacslisten""" url="""/2026/talks/listen""" speakers="""Erik Präntare""" watch="""https://emacsconf.org/2026/watch/gen""" slug="""listen""" note=""""""]]
[[!template id=sched time="""30""" title="""Multi-dimensional information processing with Emacs and Emacspeak: a blind man's perspective""" url="""/2026/talks/emacspeak""" speakers="""Arkadiusz""" watch="""https://emacsconf.org/2026/watch/gen""" slug="""emacspeak""" note=""""""]]
[[!template id=sched time="""20""" title="""ltx-talk: Accessible presentations with ox-beamer""" url="""/2026/talks/ltx-talk""" speakers="""Pedro A. Aranda and Roger Schürch""" watch="""https://emacsconf.org/2026/watch/gen""" slug="""ltx-talk""" note=""""""]]
@@ -30,13 +30,14 @@ Jump to: <a href="#b">B</a>
Jump to: <a href="#gen">General</a>
-<h1 id="b" class="sched-track B">B (9 talks)</h1>
-[[!template id=sched time="""60""" title="""Community brainstorming""" url="""/2026/talks/community""" speakers="""Participants""" watch="""https://emacsconf.org/2026/watch/b""" slug="""community""" note=""""""]]
-[[!template id=sched time="""15""" title="""Emacs as my portable user space across operating platforms""" url="""/2026/talks/portable""" speakers="""Mohammed Ismail Ansari (myTerminal)""" watch="""https://emacsconf.org/2026/watch/b""" slug="""portable""" note="""video: 11:32"""]]
-[[!template id=sched time="""20""" title="""Emacs everywhere: A fun romp through esoteric operating systems""" url="""/2026/talks/os""" speakers="""Aaron Grothe""" watch="""https://emacsconf.org/2026/watch/b""" slug="""os""" note=""""""]]
-[[!template id=sched time="""10""" title="""My Space Cadet Deck - an Android Stream Deck replacement with deep Emacs integration""" url="""/2026/talks/cadet""" speakers="""Andy Drop""" watch="""https://emacsconf.org/2026/watch/b""" slug="""cadet""" note=""""""]]
-[[!template id=sched time="""20""" title="""El Remoto: browse any GitHub repos without cloning them""" url="""/2026/talks/remoto""" speakers="""Ag""" watch="""https://emacsconf.org/2026/watch/b""" slug="""remoto""" note=""""""]]
-[[!template id=sched time="""10""" title="""prefix-tab-groups""" url="""/2026/talks/prefix""" speakers="""marco wahl""" watch="""https://emacsconf.org/2026/watch/b""" slug="""prefix""" note=""""""]]
-[[!template id=sched time="""20""" title="""Emacs as a Window Manager and concurrency""" url="""/2026/talks/rau""" speakers="""Thomas Koch""" watch="""https://emacsconf.org/2026/watch/b""" slug="""rau""" note=""""""]]
-[[!template id=sched time="""10""" title="""Org Babel everywhere""" url="""/2026/talks/babel""" speakers="""George Huebner""" watch="""https://emacsconf.org/2026/watch/b""" slug="""babel""" note=""""""]]
-[[!template id=sched time="""60""" title="""Meetup/panel about LLMs?""" url="""/2026/talks/llms""" speakers="""Participants""" watch="""https://emacsconf.org/2026/watch/b""" slug="""llms""" note=""""""]] \ No newline at end of file
+<h1 id="dev" class="sched-track Development">Development (10 talks)</h1>
+[[!template id=sched time="""60""" title="""Community brainstorming""" url="""/2026/talks/community""" speakers="""Participants""" watch="""https://emacsconf.org/2026/watch/dev""" slug="""community""" note=""""""]]
+[[!template id=sched time="""15""" title="""Emacs as my portable user space across operating platforms""" url="""/2026/talks/portable""" speakers="""Mohammed Ismail Ansari (myTerminal)""" watch="""https://emacsconf.org/2026/watch/dev""" slug="""portable""" note="""video: 11:32"""]]
+[[!template id=sched time="""20""" title="""Emacs everywhere: A fun romp through esoteric operating systems""" url="""/2026/talks/os""" speakers="""Aaron Grothe""" watch="""https://emacsconf.org/2026/watch/dev""" slug="""os""" note=""""""]]
+[[!template id=sched time="""10""" title="""My Space Cadet Deck - an Android Stream Deck replacement with deep Emacs integration""" url="""/2026/talks/cadet""" speakers="""Andy Drop""" watch="""https://emacsconf.org/2026/watch/dev""" slug="""cadet""" note=""""""]]
+[[!template id=sched time="""20""" title="""El Remoto: browse any GitHub repos without cloning them""" url="""/2026/talks/remoto""" speakers="""Ag""" watch="""https://emacsconf.org/2026/watch/dev""" slug="""remoto""" note=""""""]]
+[[!template id=sched time="""20""" title="""æmacs: having a hoot with a guile emacs""" url="""/2026/talks/guile""" speakers="""Akira Kyle""" watch="""https://emacsconf.org/2026/watch/dev""" slug="""guile""" note=""""""]]
+[[!template id=sched time="""10""" title="""prefix-tab-groups""" url="""/2026/talks/prefix""" speakers="""marco wahl""" watch="""https://emacsconf.org/2026/watch/dev""" slug="""prefix""" note=""""""]]
+[[!template id=sched time="""20""" title="""Emacs as a Window Manager and concurrency""" url="""/2026/talks/rau""" speakers="""Thomas Koch""" watch="""https://emacsconf.org/2026/watch/dev""" slug="""rau""" note=""""""]]
+[[!template id=sched time="""10""" title="""Org Babel everywhere""" url="""/2026/talks/babel""" speakers="""George Huebner""" watch="""https://emacsconf.org/2026/watch/dev""" slug="""babel""" note=""""""]]
+[[!template id=sched time="""60""" title="""Meetup/panel about LLMs?""" url="""/2026/talks/llms""" speakers="""Participants""" watch="""https://emacsconf.org/2026/watch/dev""" slug="""llms""" note=""""""]] \ No newline at end of file
diff --git a/2026/talks/guile.md b/2026/talks/guile.md
new file mode 100644
index 00000000..6e84f52c
--- /dev/null
+++ b/2026/talks/guile.md
@@ -0,0 +1,71 @@
+[[!meta title="æmacs: having a hoot with a guile emacs"]]
+[[!meta copyright="Copyright &copy; 2026 Akira Kyle"]]
+[[!inline pages="internal(2026/info/guile-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. --->
+
+
+# æmacs: having a hoot with a guile emacs
+Akira Kyle (he/him) - <https://akirakyle.com/> , @akira.social on bsky, @akyle@mathstodon.xyz on fediverse, <mailto:akira@akirakyle.com>
+
+[[!inline pages="internal(2026/info/guile-before)" raw="yes"]]
+
+I spend most of my computing time split between two programs: Emacs and a
+web browser, and only one of them sparks joy. That's what drove my
+pandemic project, emacs-webkit, which put a browser inside pgtk Emacs. I
+came away thinking the more emacs-y design would be the other way around:
+an emacs that lives within the web platform. I've since tried starting on
+it more times than I'd like to admit, from attempting to rebase the
+original guile-emacs, to deleting as much C as I could get away with, to
+compiling Emacs with emscripten. Each attempt left me better
+understanding how GNU Emacs became *the* emacs, but the human-hours
+needed to disentangle, let alone port, the [horrors](https://emacshorrors.com/) from the depths of `src/` haunted
+my dreams.
+
+Meanwhile, pieces of this puzzle of bringing emacs 2 da web
+started falling into place. In 2023 the Spritely Institute announced
+Hoot: compiling Guile Scheme to WebAssembly with Wasm GC. Then at
+EmacsConf 2024, Robin Templeton announced the revival of the OG Guile
+Emacs, building on work by Larry Valkama (lyrra), who successfully
+rebased the decade-old branch onto GNU Emacs 31. Finally, LLM agents
+started seemingly autonomously coding compilers from scratch. With
+human-hours apparently no longer a barrier, why not try? After all, if
+the web is evolving toward a polyglot wasm environment, it ought to have
+an emacs! I'd either find out the limits of agentic coding, or end up
+with my "perfect emacs" (a win-win, or so I thought).
+
+æmacs is the
+result: my apologetically vibe-coded step towards that idea. The æmacs
+frontend is implemented in Guile, compiled to wasm with Hoot, and renders
+the UI in a webview. The backend is my fork of lyrra's exploratory
+"guilemacs" branch, which, after a year of slogging through slop, is now
+a pure Guile Scheme implementation of Emacs Lisp: no C `src/` horrors
+remain! All state lives in this backend, which talks to a frontend over a
+sexp websocket protocol, letting the UI render on a different machine.
+Perhaps someday, Hoot may compile guilemacs itself for the browser.
+
+æmacs/guilemacs breaks with full GNU Emacs compatibility (e.g. unicode
+only), but loads most of Emacs' lisp/ unmodified, plus packages like
+org-mode and magit. Focusing on bootstrapping myself into æmacs as my
+main editor has kept the scope somewhat sane. But bootstrapping an editor
+with LLMs inevitably led to bootstrapping a coding harness into it too.
+gptel-agent allowed me to retreat from Claude Code's we-know-best,
+one-size-fits-all TUI back into the zen of an emacs' diy kitchen sink,
+and vibe code æmacs inside æmacs.
+
+That's how I got what I've wanted since
+I started using Emacs: smooth, continuous, inertial scrolling, not just
+through org-mode buffers full of images, but through PDFs with aemacs-pdf
+and web pages with aemacs-webkit. Doing this takes hacks in GNU Emacs,
+but no disrespect, emacs is built for hacking. Unfortunately, while LLMs
+never tire of hacking, I do. The limits I found were my own, but at least
+æmacs is now my imperfect emacs.
+
+
+
+[[!inline pages="internal(2026/info/guile-after)" raw="yes"]]
+
+[[!inline pages="internal(2026/info/guile-nav)" raw="yes"]]
+
+
diff --git a/2026/talks/nil.md b/2026/talks/nil.md
new file mode 100644
index 00000000..e6215ad7
--- /dev/null
+++ b/2026/talks/nil.md
@@ -0,0 +1,21 @@
+[[!meta title="Draft schedule"]]
+[[!meta copyright="Copyright &copy; 2026 ${speakers}"]]
+[[!inline pages="internal(2026/info/${slug}-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. --->
+
+
+# Draft schedule
+
+
+[[!inline pages="internal(2026/info/${slug}-before)" raw="yes"]]
+
+
+
+
+[[!inline pages="internal(2026/info/${slug}-after)" raw="yes"]]
+
+[[!inline pages="internal(2026/info/${slug}-nav)" raw="yes"]]
+
+
diff --git a/organizers-notebook/index.org b/organizers-notebook/index.org
index 777c029e..7e7a4ddb 100644
--- a/organizers-notebook/index.org
+++ b/organizers-notebook/index.org
@@ -1928,7 +1928,7 @@ In general:
- [X] Send the upload instructions
- [X] Generate the intro text
- [ ] Record the intro
-
+- [ ] elisp:emacsconf-mail-draft-schedule
*** When a talk is cancelled
:PROPERTIES:
:CUSTOM_ID: cancel-talk
diff --git a/volunteer.md b/volunteer.md
index 7b953d36..4a6b89f1 100644
--- a/volunteer.md
+++ b/volunteer.md
@@ -108,7 +108,16 @@ as a pad scribe)) and we'll schedule you in.
Do you appreciate denoised and normalized audio? Please help us process videos so that they are consistently nice to listen to. Your help in the month before the conference will be much appreciated!
-How to do it: Once you get access to the backstage area, you can look for talks that have =--reencoded.opus= files but not =--normalized.opus= files. Feel free to use your preferred workflow to normalize the file to about -14 LUFS. You can upload normalized audio files to the <https://upload.emacsconf.org> server (see the backstage e-mail for the password) or share them with me at [sacha@sachachua.com](mailto:sacha@sachachua.com). After you upload your file(s), please e-mail me so that I can grab it and mix it into our video files.
+How to do it: Once you get access to the backstage area, you can
+look for talks that have UNNORMALIZED in their description. They will
+have --reencoded.opus files but not --normalized.opus files. Feel
+free to use your preferred workflow to normalize the reencoded.opus file
+to about -14 LUFS. You can upload normalized audio files to the
+<https://upload.emacsconf.org> server (see the backstage e-mail for the
+password) or share them with me at
+[sacha@sachachua.com](mailto:sacha@sachachua.com). After you upload your
+file(s), please e-mail me so that I can grab it and mix it into our
+video files.
To volunteer to help with audio,
[let us know your availability at emacsconf-org@gnu.org](mailto:emacsconf-org@gnu.org?subject=Volunteering