summaryrefslogtreecommitdiffstats
path: root/2025/organizers-notebook.md
diff options
context:
space:
mode:
Diffstat (limited to '2025/organizers-notebook.md')
-rw-r--r--2025/organizers-notebook.md670
1 files changed, 473 insertions, 197 deletions
diff --git a/2025/organizers-notebook.md b/2025/organizers-notebook.md
index 69239ef7..2b5f9b48 100644
--- a/2025/organizers-notebook.md
+++ b/2025/organizers-notebook.md
@@ -13,11 +13,14 @@ You might also like the [general organizers' notebook](/organizers-notebook) and
- [Communications plan](#comms)
- [Good/better/best](#good-better-best)
- [Phases](#phases)
- - [Set up organizers notebook](#org965ed4e)
+ - [Set up organizers notebook](#orgde0d29b)
- [Draft CFP](#cfp)
- [Draft schedule](#draft-schedule)
- - [Prepare shift calendar, ask people to sign up](#shifts)
- - [Record intros and opening remarks](#intros)
+ - [Review rescheduled talks](#orgff99913)
+ - [While speakers are working on their videos](#org26a8620)
+ - [While volunteers are working on captions](#orgb754ae6)
+ - [After the conference](#orga46a5dd)
+ - [Confirm shifts](#shifts)
- [Check EmacsConf infrastructure](#check-emacsconf-infrastructure):project:
- [BigBlueButton](#check-emacsconf-infrastructure-bigbluebutton)
- [IRC web client](#check-emacsconf-infrastructure-irc-web-client)
@@ -32,6 +35,7 @@ You might also like the [general organizers' notebook](/organizers-notebook) and
- [Processes and notes](#processes-and-notes)
- [Hosting](#processes-and-notes-hosting)
- [ERC](#processes-and-notes-erc)
+ - [Uploading videos](#org9f7b814)
- [Decisions](#decisions)
- [Support code](#support-code)
@@ -52,44 +56,44 @@ You might also like the [general organizers' notebook](/organizers-notebook) and
</colgroup>
<tbody>
<tr>
-<td class="org-left">&#xa0;</td>
-<td class="org-left">&#xa0;</td>
+<td class="org-left">&nbsp;</td>
+<td class="org-left">&nbsp;</td>
<td class="org-right">Days since previous milestone</td>
</tr>
<tr>
<td class="org-left">CFP</td>
-<td class="org-left"><span class="timestamp-wrapper"><span class="timestamp">[2025-06-27 Fri]</span></span></td>
-<td class="org-right">&#xa0;</td>
+<td class="org-left"><span class="timestamp-wrapper"><time class="timestamp" datetime="2025-06-27">[2025-06-27 Fri]</time></span></td>
+<td class="org-right">&nbsp;</td>
</tr>
<tr>
<td class="org-left">CFP deadline</td>
-<td class="org-left"><span class="timestamp-wrapper"><span class="timestamp">[2025-09-19 Fri]</span></span></td>
+<td class="org-left"><span class="timestamp-wrapper"><time class="timestamp" datetime="2025-09-19">[2025-09-19 Fri]</time></span></td>
<td class="org-right">84</td>
</tr>
<tr>
<td class="org-left">Speaker notifications</td>
-<td class="org-left"><span class="timestamp-wrapper"><span class="timestamp">[2025-09-26 Fri]</span></span></td>
-<td class="org-right">&#xa0;</td>
+<td class="org-left"><span class="timestamp-wrapper"><time class="timestamp" datetime="2025-09-26">[2025-09-26 Fri]</time></span></td>
+<td class="org-right">&nbsp;</td>
</tr>
<tr>
-<td class="org-left"><b>Publish schedule</b></td>
-<td class="org-left"><span class="timestamp-wrapper"><span class="timestamp">[2025-10-24 Fri]</span></span></td>
-<td class="org-right">&#xa0;</td>
+<td class="org-left">Publish schedule</td>
+<td class="org-left"><span class="timestamp-wrapper"><time class="timestamp" datetime="2025-10-24">[2025-10-24 Fri]</time></span></td>
+<td class="org-right">&nbsp;</td>
</tr>
<tr>
<td class="org-left">Video submission deadline</td>
-<td class="org-left"><span class="timestamp-wrapper"><span class="timestamp">[2025-10-31 Fri]</span></span></td>
+<td class="org-left"><span class="timestamp-wrapper"><time class="timestamp" datetime="2025-10-31">[2025-10-31 Fri]</time></span></td>
<td class="org-right">42</td>
</tr>
<tr>
<td class="org-left">EmacsConf</td>
-<td class="org-left"><span class="timestamp-wrapper"><span class="timestamp">[2025-12-06 Sat]</span></span></td>
+<td class="org-left"><span class="timestamp-wrapper"><time class="timestamp" datetime="2025-12-06">[2025-12-06 Sat]</time></span></td>
<td class="org-right">36</td>
</tr>
</tbody>
@@ -162,7 +166,7 @@ interests you!
</colgroup>
<tbody>
<tr>
-<td class="org-left">&#xa0;</td>
+<td class="org-left">&nbsp;</td>
<td class="org-left">Good</td>
<td class="org-left">Better</td>
<td class="org-left">Best</td>
@@ -207,7 +211,7 @@ interests you!
<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>
+<td class="org-left">&nbsp;</td>
</tr>
</tbody>
</table>
@@ -218,14 +222,14 @@ interests you!
# Phases
-<a id="org965ed4e"></a>
+<a id="orgde0d29b"></a>
## DONE Set up organizers notebook
<a id="cfp"></a>
-## TODO Draft CFP
+## DONE Draft CFP
#### Draft linked pages
@@ -235,244 +239,248 @@ interests you!
- [X] year index
-#### TODO Check with other organizers
+#### DONE Check with other organizers
-#### TODO Post CFP in the usual places
+#### DONE Update dates in emacsconf.el
-emacsconf-discuss, reddit.com/r/emacs, Emacs News, emacs-tangents, Mastodon, X
+<file:///home/sacha/proj/emacsconf/lisp/emacsconf.el>
+<file:///home/sacha/proj/emacsconf/lisp/emacsconf-erc.el>
-<a id="draft-schedule"></a>
-
-## TODO 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/2025/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/2025/talks/sat-close" title="Saturday closing remarks" data-slug="sat-close"><title> 4:30- 4:40 Saturday closing remarks</title><rect x="705" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="5,5,5" fill="gray"></rect><g transform="translate(718,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sat-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><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/2025/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/2025/talks/sun-close" title="Sunday closing remarks" data-slug="sun-close"><title> 1:00- 1:10 Sunday closing remarks</title><rect x="376" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="" fill="gray"></rect><g transform="translate(389,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>
+#### DONE Update conf topic
-Legend:
+[Update the IRC topic](file:///home/sacha/proj/emacsconf/wiki/organizers-notebook/index.md)
-- 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
-Notes:
+#### DONE Remove draft marker
-- Sun:
- - Sunday morning in 2023 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/2025/talks/students "nil"), [links](https://emacsconf.org/2025/talks/links "nil"), [regex](https://emacsconf.org/2025/talks/regex "nil")
+- [ ] cfp
+- [ ] submit
-<a id="shifts"></a>
+#### DONE Post CFP in the usual places
-## TODO Prepare shift calendar, ask people to sign up
+- [ ] emacsconf-discuss
+- [ ] reddit.com/r/emacs
+- [ ] Emacs News
+- [ ] emacs-tangents or info-gnu-emacs
+- [ ] Mastodon
+- [ ] Bluesky
+- [ ] X
-<a name="shifts"></a>
-AM: 9-12 PM EST, PM: 1-5 PM EST (plus a little extra for setup/transition)
+<a id="draft-schedule"></a>
-Saturday Dec 6 2025
+## DONE Draft schedule
-<table id="org4b1f399">
+<svg width="500" height="700" 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="250" height="700" x="0" y="0" fill="white"></rect><text font-size="10" fill="black" y="30" x="3">Saturday</text><a href="https://emacsconf.org/2025/talks/sat-open" title="Saturday opening remarks" data-slug="sat-open"><title> 9:00- 9:10 Saturday opening remarks</title><rect x="40" y="40" opacity="0.8" width="84" height="13" stroke="black" stroke-dasharray="5,5,5" fill="gray"></rect><g transform="translate(40,51)"><text fill="black" x="0" y="0" font-size="10" transform="nil">sat-open</text></g></a><a href="https://emacsconf.org/2025/talks/org-babel" title="Making Org-Babel reactive" data-slug="org-babel"><title> 9:10- 9:20 Making Org-Babel reactive</title><rect x="40" y="53" opacity="0.8" width="84" height="13" stroke="black" stroke-dasharray="5,5,5" fill="lightblue"></rect><g transform="translate(40,64)"><text fill="black" x="0" y="0" font-size="10" transform="nil">org-babel</text></g></a><a href="https://emacsconf.org/2025/talks/reference" title="Emacs as a fully-fledged reference manager" data-slug="reference"><title> 9:30- 9:55 Emacs as a fully-fledged reference manager</title><rect x="40" y="81" opacity="0.8" width="84" height="34" stroke="black" stroke-dasharray="" fill="gray"></rect><g transform="translate(40,113)"><text fill="black" x="0" y="0" font-size="10" transform="nil">reference</text></g></a><a href="https://emacsconf.org/2025/talks/gmail" title="org-gmail: A deep integration of Gmail into your Org Mode" data-slug="gmail"><title>10:15-10:40 org-gmail: A deep integration of Gmail into your Org Mode</title><rect x="40" y="142" opacity="0.8" width="84" height="34" stroke="black" stroke-dasharray="5,5,5" fill="lightblue"></rect><g transform="translate(40,174)"><text fill="black" x="0" y="0" font-size="10" transform="nil">gmail</text></g></a><a href="https://emacsconf.org/2025/talks/gnus" title="Reading and writing emails in GNU Emacs with Gnus" data-slug="gnus"><title>10:50-11:15 Reading and writing emails in GNU Emacs with Gnus</title><rect x="40" y="190" opacity="0.8" width="84" height="34" stroke="black" stroke-dasharray="5,5,5" fill="gray"></rect><g transform="translate(40,222)"><text fill="black" x="0" y="0" font-size="10" transform="nil">gnus</text></g></a><a href="https://emacsconf.org/2025/talks/latex" title="LaTeX export in org-mode: the overhaul" data-slug="latex"><title>11:25-11:45 LaTeX export in org-mode: the overhaul</title><rect x="40" y="239" opacity="0.8" width="84" height="27" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(40,264)"><text fill="black" x="0" y="0" font-size="10" transform="nil">latex</text></g></a><a href="https://emacsconf.org/2025/talks/calc" title="Basic Calc functionality for engineering or electronics" data-slug="calc"><title> 1:00- 1:25 Basic Calc functionality for engineering or electronics</title><rect x="40" y="369" opacity="0.8" width="84" height="34" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(40,401)"><text fill="black" x="0" y="0" font-size="10" transform="nil">calc</text></g></a><a href="https://emacsconf.org/2025/talks/blee-lcnt" title="Blee-LCNT: An Emacs-centered content production and self-publication framework" data-slug="blee-lcnt"><title> 1:35- 2:15 Blee-LCNT: An Emacs-centered content production and self-publication framework</title><rect x="40" y="417" opacity="0.8" width="84" height="54" stroke="black" stroke-dasharray="" fill="gray"></rect><g transform="translate(40,469)"><text fill="black" x="0" y="0" font-size="10" transform="nil">blee-lcnt</text></g></a><a href="https://emacsconf.org/2025/talks/greader" title="GNU Emacs Greader (Gnamù Reader) mode is the best Emacs mode in existence" data-slug="greader"><title> 2:35- 2:40 GNU Emacs Greader (Gnamù Reader) mode is the best Emacs mode in existence</title><rect x="40" y="499" opacity="0.8" width="84" height="6" stroke="black" stroke-dasharray="5,5,5" fill="gray"></rect><g transform="translate(40,503)"><text fill="black" x="0" y="0" font-size="10" transform="nil">greader</text></g></a><a href="https://emacsconf.org/2025/talks/open-mic" title="Open session" data-slug="open-mic"><title> 2:50- 3:40 Open session</title><rect x="40" y="520" opacity="0.8" width="84" height="68" stroke="black" stroke-dasharray="" fill="gray"></rect><g transform="translate(40,586)"><text fill="black" x="0" y="0" font-size="10" transform="nil">open-mic</text></g></a><a href="https://emacsconf.org/2025/talks/sat-close" title="Saturday closing remarks / open session" data-slug="sat-close"><title> 4:00- 4:10 Saturday closing remarks / open session</title><rect x="40" y="616" opacity="0.8" width="84" height="13" stroke="black" stroke-dasharray="" fill="gray"></rect><g transform="translate(40,627)"><text fill="black" x="0" y="0" font-size="10" transform="nil">sat-close</text></g></a><a href="https://emacsconf.org/2025/talks/schemacs" title="One year progress update Schemacs (formerly Gypsum)" data-slug="schemacs"><title> 9:30- 9:55 One year progress update Schemacs (formerly Gypsum)</title><rect x="125" y="81" opacity="0.8" width="84" height="34" stroke="black" stroke-dasharray="" fill="lightblue"></rect><g transform="translate(125,113)"><text fill="black" x="0" y="0" font-size="10" transform="nil">schemacs</text></g></a><a href="https://emacsconf.org/2025/talks/juicemacs" title="Juicemacs: exploring speculative JIT compilation for ELisp in Java" data-slug="juicemacs"><title>10:15-10:35 Juicemacs: exploring speculative JIT compilation for ELisp in Java</title><rect x="125" y="142" opacity="0.8" width="84" height="27" stroke="black" stroke-dasharray="5,5,5" fill="lightblue"></rect><g transform="translate(125,167)"><text fill="black" x="0" y="0" font-size="10" transform="nil">juicemacs</text></g></a><a href="https://emacsconf.org/2025/talks/swanky" title="Swanky Python: Interactive development for Python" data-slug="swanky"><title>10:45-11:10 Swanky Python: Interactive development for Python</title><rect x="125" y="184" opacity="0.8" width="84" height="34" stroke="black" stroke-dasharray="5,5,5" fill="gray"></rect><g transform="translate(125,216)"><text fill="black" x="0" y="0" font-size="10" transform="nil">swanky</text></g></a><a href="https://emacsconf.org/2025/talks/python" title="Interactive Python programming in Emacs" data-slug="python"><title>11:20-11:40 Interactive Python programming in Emacs</title><rect x="125" y="232" opacity="0.8" width="84" height="27" stroke="black" stroke-dasharray="" fill="lightblue"></rect><g transform="translate(125,257)"><text fill="black" x="0" y="0" font-size="10" transform="nil">python</text></g></a><a href="https://emacsconf.org/2025/talks/llm" title="Emacs, editors, and LLM driven workflows" data-slug="llm"><title> 1:00- 1:25 Emacs, editors, and LLM driven workflows</title><rect x="125" y="369" opacity="0.8" width="84" height="34" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(125,401)"><text fill="black" x="0" y="0" font-size="10" transform="nil">llm</text></g></a><a href="https://emacsconf.org/2025/talks/private-ai" title="Emacs and private AI: a great match" data-slug="private-ai"><title> 1:45- 2:05 Emacs and private AI: a great match</title><rect x="125" y="431" opacity="0.8" width="84" height="27" stroke="black" stroke-dasharray="" fill="gray"></rect><g transform="translate(125,456)"><text fill="black" x="0" y="0" font-size="10" transform="nil">private-ai</text></g></a><a href="https://emacsconf.org/2025/talks/commonlisp" title="Common Lisp images communicating like-a-human through shared Emacs slime and eev" data-slug="commonlisp"><title> 2:25- 2:55 Common Lisp images communicating like-a-human through shared Emacs slime and eev</title><rect x="125" y="486" opacity="0.8" width="84" height="41" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(125,525)"><text fill="black" x="0" y="0" font-size="10" transform="nil">commonlisp</text></g></a><a href="https://emacsconf.org/2025/talks/graphics" title="Modern Emacs/Elisp hardware/software accelerated graphics" data-slug="graphics"><title> 3:05- 3:30 Modern Emacs/Elisp hardware/software accelerated graphics</title><rect x="125" y="540" opacity="0.8" width="84" height="34" stroke="black" stroke-dasharray="" fill="gray"></rect><g transform="translate(125,572)"><text fill="black" x="0" y="0" font-size="10" transform="nil">graphics</text></g></a><g transform="translate(3,40)"><line stroke="darkgray" x1="40" y1="0" x2="210" y2="0"></line><text fill="black" x="0" y="0" font-size="10" dy=".4em">9 AM</text></g><g transform="translate(3,122)"><line stroke="darkgray" x1="40" y1="0" x2="210" y2="0"></line><text fill="black" x="0" y="0" font-size="10" dy=".4em">10 AM</text></g><g transform="translate(3,204)"><line stroke="darkgray" x1="40" y1="0" x2="210" y2="0"></line><text fill="black" x="0" y="0" font-size="10" dy=".4em">11 AM</text></g><g transform="translate(3,287)"><line stroke="darkgray" x1="40" y1="0" x2="210" y2="0"></line><text fill="black" x="0" y="0" font-size="10" dy=".4em">12 PM</text></g><g transform="translate(3,369)"><line stroke="darkgray" x1="40" y1="0" x2="210" y2="0"></line><text fill="black" x="0" y="0" font-size="10" dy=".4em">1 PM</text></g><g transform="translate(3,451)"><line stroke="darkgray" x1="40" y1="0" x2="210" y2="0"></line><text fill="black" x="0" y="0" font-size="10" dy=".4em">2 PM</text></g><g transform="translate(3,534)"><line stroke="darkgray" x1="40" y1="0" x2="210" y2="0"></line><text fill="black" x="0" y="0" font-size="10" dy=".4em">3 PM</text></g><g transform="translate(3,616)"><line stroke="darkgray" x1="40" y1="0" x2="210" y2="0"></line><text fill="black" x="0" y="0" font-size="10" dy=".4em">4 PM</text></g><g transform="translate(3,698)"><line stroke="darkgray" x1="40" y1="0" x2="210" y2="0"></line><text fill="black" x="0" y="0" font-size="10" dy=".4em">5 PM</text></g></g><g transform="translate(250,0)"><title>Schedule for Sunday</title><rect width="250" height="700" x="0" y="0" fill="white"></rect><text font-size="10" fill="black" y="30" x="3">Sunday</text><a href="https://emacsconf.org/2025/talks/sun-open" title="Sunday opening remarks" data-slug="sun-open"><title> 9:00- 9:10 Sunday opening remarks</title><rect x="40" y="40" opacity="0.8" width="84" height="13" stroke="black" stroke-dasharray="5,5,5" fill="gray"></rect><g transform="translate(40,51)"><text fill="black" x="0" y="0" font-size="10" transform="nil">sun-open</text></g></a><a href="https://emacsconf.org/2025/talks/modern" title="Some problems of modernizing Emacs" data-slug="modern"><title> 9:10- 9:30 Some problems of modernizing Emacs</title><rect x="40" y="53" opacity="0.8" width="84" height="27" stroke="black" stroke-dasharray="5,5,5" fill="gray"></rect><g transform="translate(40,78)"><text fill="black" x="0" y="0" font-size="10" transform="nil">modern</text></g></a><a href="https://emacsconf.org/2025/talks/reader" title="An introduction to the Emacs Reader" data-slug="reader"><title> 9:40-10:15 An introduction to the Emacs Reader</title><rect x="40" y="94" opacity="0.8" width="84" height="48" stroke="black" stroke-dasharray="" fill="gray"></rect><g transform="translate(40,140)"><text fill="black" x="0" y="0" font-size="10" transform="nil">reader</text></g></a><a href="https://emacsconf.org/2025/talks/weights" title="Weightlifting tracking with Emacs on Android" data-slug="weights"><title>10:35-10:45 Weightlifting tracking with Emacs on Android</title><rect x="40" y="170" opacity="0.8" width="84" height="13" stroke="black" stroke-dasharray="" fill="lightblue"></rect><g transform="translate(40,181)"><text fill="black" x="0" y="0" font-size="10" transform="nil">weights</text></g></a><a href="https://emacsconf.org/2025/talks/completion" title="corfu+yasnippet: Easier than I thought" data-slug="completion"><title>11:05-11:25 corfu+yasnippet: Easier than I thought</title><rect x="40" y="211" opacity="0.8" width="84" height="27" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(40,236)"><text fill="black" x="0" y="0" font-size="10" transform="nil">completion</text></g></a><a href="https://emacsconf.org/2025/talks/zettelkasten" title="Zettelkasten for regular Emacs hackers" data-slug="zettelkasten"><title> 1:00- 1:25 Zettelkasten for regular Emacs hackers</title><rect x="40" y="369" opacity="0.8" width="84" height="34" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(40,401)"><text fill="black" x="0" y="0" font-size="10" transform="nil">zettelkasten</text></g></a><a href="https://emacsconf.org/2025/talks/hyperboleqa" title="Questions and answers to help you fly with Hyperbole" data-slug="hyperboleqa"><title> 1:45- 2:15 Questions and answers to help you fly with Hyperbole</title><rect x="40" y="431" opacity="0.8" width="84" height="41" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(40,470)"><text fill="black" x="0" y="0" font-size="10" transform="nil">hyperboleqa</text></g></a><a href="https://emacsconf.org/2025/talks/gardening" title="Gardening in Emacs: A Windows user's tale of tending, tweaking, and triumph" data-slug="gardening"><title> 2:15- 2:35 Gardening in Emacs: A Windows user's tale of tending, tweaking, and triumph</title><rect x="40" y="472" opacity="0.8" width="84" height="27" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(40,497)"><text fill="black" x="0" y="0" font-size="10" transform="nil">gardening</text></g></a><a href="https://emacsconf.org/2025/talks/bookclub-tapas" title="Bookclub tapas" data-slug="bookclub-tapas"><title> 2:45- 3:20 Bookclub tapas</title><rect x="40" y="513" opacity="0.8" width="84" height="48" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(40,559)"><text fill="black" x="0" y="0" font-size="10" transform="nil">bookclub-tapas</text></g></a><a href="https://emacsconf.org/2025/talks/sun-close" title="Sunday closing remarks" data-slug="sun-close"><title> 3:40- 3:50 Sunday closing remarks</title><rect x="40" y="589" opacity="0.8" width="84" height="13" stroke="black" stroke-dasharray="" fill="gray"></rect><g transform="translate(40,600)"><text fill="black" x="0" y="0" font-size="10" transform="nil">sun-close</text></g></a><g transform="translate(3,40)"><line stroke="darkgray" x1="40" y1="0" x2="210" y2="0"></line><text fill="black" x="0" y="0" font-size="10" dy=".4em">9 AM</text></g><g transform="translate(3,122)"><line stroke="darkgray" x1="40" y1="0" x2="210" y2="0"></line><text fill="black" x="0" y="0" font-size="10" dy=".4em">10 AM</text></g><g transform="translate(3,204)"><line stroke="darkgray" x1="40" y1="0" x2="210" y2="0"></line><text fill="black" x="0" y="0" font-size="10" dy=".4em">11 AM</text></g><g transform="translate(3,287)"><line stroke="darkgray" x1="40" y1="0" x2="210" y2="0"></line><text fill="black" x="0" y="0" font-size="10" dy=".4em">12 PM</text></g><g transform="translate(3,369)"><line stroke="darkgray" x1="40" y1="0" x2="210" y2="0"></line><text fill="black" x="0" y="0" font-size="10" dy=".4em">1 PM</text></g><g transform="translate(3,451)"><line stroke="darkgray" x1="40" y1="0" x2="210" y2="0"></line><text fill="black" x="0" y="0" font-size="10" dy=".4em">2 PM</text></g><g transform="translate(3,534)"><line stroke="darkgray" x1="40" y1="0" x2="210" y2="0"></line><text fill="black" x="0" y="0" font-size="10" dy=".4em">3 PM</text></g><g transform="translate(3,616)"><line stroke="darkgray" x1="40" y1="0" x2="210" y2="0"></line><text fill="black" x="0" y="0" font-size="10" dy=".4em">4 PM</text></g><g transform="translate(3,698)"><line stroke="darkgray" x1="40" y1="0" x2="210" y2="0"></line><text fill="black" x="0" y="0" font-size="10" dy=".4em">5 PM</text></g></g></svg>
+Legend:
-<colgroup>
-<col class="org-left">
+- 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
-<col class="org-right">
+Notes:
-<col class="org-right">
+- <span class="timestamp-wrapper"><time class="timestamp" datetime="2025-12-05">[2025-12-05 Fri]</time></span> cancelled [bibliography](https://emacsconf.org/2025/talks/bibliography "An enhanced bibliography in org-mode for scientific research and self-directed learning"), moved [zettelkasten](https://emacsconf.org/2025/talks/zettelkasten "Zettelkasten for regular Emacs hackers") to Saturday
+- <span class="timestamp-wrapper"><time class="timestamp" datetime="2025-12-03">[2025-12-03 Wed]</time></span> moved [gnus](https://emacsconf.org/2025/talks/gnus "Reading and writing emails in GNU Emacs with Gnus") to Sat morning; added time to talks to accommodate actual video length
+- <span class="timestamp-wrapper"><time class="timestamp" datetime="2025-12-01">[2025-12-01 Mon]</time></span> cancelled [languages](https://emacsconf.org/2025/talks/languages "Studying foreign languages with Emacs, Org Mode and gptel")
+- <span class="timestamp-wrapper"><time class="timestamp" datetime="2025-11-27">[2025-11-27 Thu]</time></span> cancelled [authoring](https://emacsconf.org/2025/talks/authoring "How Emacs became my authoring playground—no Lisp required")
+- <span class="timestamp-wrapper"><time class="timestamp" datetime="2025-11-24">[2025-11-24 Mon]</time></span> uncancelled [weights](https://emacsconf.org/2025/talks/weights "Weightlifting tracking with Emacs on Android")
+- <span class="timestamp-wrapper"><time class="timestamp" datetime="2025-11-22">[2025-11-22 Sat]</time></span> [weights](https://emacsconf.org/2025/talks/weights "Weightlifting tracking with Emacs on Android") and [claude-code](https://emacsconf.org/2025/talks/claude-code "emacs-claude-code: Intelligent Claude Integration for Emacs") cancelled, moved [gnus](https://emacsconf.org/2025/talks/gnus "Reading and writing emails in GNU Emacs with Gnus") and [gardening](https://emacsconf.org/2025/talks/gardening "Gardening in Emacs: A Windows user's tale of tending, tweaking, and triumph") earlier for a lighter, earlier close. They&rsquo;re both async. Added [graphics](https://emacsconf.org/2025/talks/graphics "Modern Emacs/Elisp hardware/software accelerated graphics")
+- <span class="timestamp-wrapper"><time class="timestamp" datetime="2025-11-11">[2025-11-11 Tue]</time></span> [n-angulator](https://emacsconf.org/2025/talks/n-angulator "Org-mode GTD vs N-angulator GTD") cancelled
+- <span class="timestamp-wrapper"><time class="timestamp" datetime="2025-11-01">[2025-11-01 Sat]</time></span> [life](https://emacsconf.org/2025/talks/life "From FRDCSA to FLP2: Building AI-Powered Life Planning Systems in Emacs - A Journey from Research to Real-World Impact") cancelled
+- <span class="timestamp-wrapper"><time class="timestamp" datetime="2025-10-31">[2025-10-31 Fri]</time></span> [writing](https://emacsconf.org/2025/talks/writing "A writing day in the life with Org-Mode") cancelled
+- AI dev afternoon: [llm](https://emacsconf.org/2025/talks/llm "Emacs, editors, and LLM driven workflows"), [claude-code](https://emacsconf.org/2025/talks/claude-code "emacs-claude-code: Intelligent Claude Integration for Emacs"), [private-ai](https://emacsconf.org/2025/talks/private-ai "Emacs and private AI: a great match") feels like a good progression
+- I kinda like this spread-out combo of [zettelkasten](https://emacsconf.org/2025/talks/zettelkasten "Zettelkasten for regular Emacs hackers"), [gardening](https://emacsconf.org/2025/talks/gardening "Gardening in Emacs: A Windows user's tale of tending, tweaking, and triumph"), [writing](https://emacsconf.org/2025/talks/writing "A writing day in the life with Org-Mode"), and [bookclub-tapas](https://emacsconf.org/2025/talks/bookclub-tapas "Bookclub tapas") on Sunday afternoon
+- I spread [reference](https://emacsconf.org/2025/talks/reference "Emacs as a fully-fledged reference manager"), [latex](https://emacsconf.org/2025/talks/latex "LaTeX export in org-mode: the overhaul"), [bibliography](https://emacsconf.org/2025/talks/bibliography "An enhanced bibliography in org-mode for scientific research and self-directed learning"), [authoring](https://emacsconf.org/2025/talks/authoring "How Emacs became my authoring playground—no Lisp required"), and [blee-lcnt](https://emacsconf.org/2025/talks/blee-lcnt "Blee-LCNT: An Emacs-centered content production and self-publication framework") in case people want to hang out in each other&rsquo;s Q&A sessions
+- I wanted to generally have live Q&A in between talks that don&rsquo;t have live Q&A.
+- It&rsquo;s okay to have a shorter day, since this is easier for people who are in Europe.
+- [hyperboleqa](https://emacsconf.org/2025/talks/hyperboleqa "Questions and answers to help you fly with Hyperbole") is all Q&A.
+- We could have an open mic session or a panel before [sat-close](https://emacsconf.org/2025/talks/sat-close "Saturday closing remarks / open session")
+- Sunday morning in 2023 had some packet loss issues at around 9:30
+
+
+<a id="orgff99913"></a>
+
+## Review rescheduled talks
+
+ (mapcar (lambda (o)
+ (list (plist-get o :slug)
+ (plist-get o :scheduled)
+ (plist-get o :emailed-schedule)
+ (emacsconf-schedule-difference-from-emailed o)))
+ (emacsconf-mail-rescheduled-talks))
+
+For big changes, use emacsconf-mail-schedule-updates
-<col class="org-left">
+<table>
-<col class="org-left">
+<colgroup>
<col class="org-left">
<col class="org-left">
<col class="org-left">
-<col class="org-left">
+<col class="org-right">
</colgroup>
-<thead>
-<tr>
-<th scope="col" class="org-left">&#xa0;</th>
-<th scope="col" class="org-right">Start</th>
-<th scope="col" class="org-right">End</th>
-<th scope="col" class="org-left"><a href="https://emacsconf.org/2023/volunteer/host/">Host</a></th>
-<th scope="col" class="org-left">Streamer</th>
-<th scope="col" class="org-left"><a href="https://emacsconf.org/2023/volunteer/checkin/">Checkin</a></th>
-<th scope="col" class="org-left"><a href="https://emacsconf.org/2023/volunteer/irc/">IRC</a></th>
-<th scope="col" class="org-left"><a href="https://emacsconf.org/2023/volunteer/pad/">Pad</a></th>
-<th scope="col" class="org-left">Coord</th>
-</tr>
-</thead>
<tbody>
<tr>
-<td class="org-left">Gen AM</td>
-<td class="org-right">09:00</td>
-<td class="org-right">12:00</td>
-<td class="org-left">&#xa0;</td>
-<td class="org-left">&#xa0;</td>
-<td class="org-left">&#xa0;</td>
-<td class="org-left">&#xa0;</td>
-<td class="org-left">&#xa0;</td>
-<td class="org-left">&#xa0;</td>
+<td class="org-left">schemacs</td>
+<td class="org-left"><span class="timestamp-wrapper"><time class="timestamp" datetime="2025-12-06T09:30:00">&lt;2025-12-06 Sat 09:30-09:55&gt;</time></span></td>
+<td class="org-left">2025-12-06 Sat 09:30-09:45</td>
+<td class="org-right">0</td>
</tr>
<tr>
-<td class="org-left">Gen PM</td>
-<td class="org-right">13:00</td>
-<td class="org-right">17:00</td>
-<td class="org-left">&#xa0;</td>
-<td class="org-left">&#xa0;</td>
-<td class="org-left">&#xa0;</td>
-<td class="org-left">&#xa0;</td>
-<td class="org-left">&#xa0;</td>
-<td class="org-left">&#xa0;</td>
+<td class="org-left">reference</td>
+<td class="org-left"><span class="timestamp-wrapper"><time class="timestamp" datetime="2025-12-06T09:30:00">&lt;2025-12-06 Sat 09:30-09:55&gt;</time></span></td>
+<td class="org-left">2025-12-06 Sat 09:30-09:50</td>
+<td class="org-right">0</td>
</tr>
<tr>
-<td class="org-left">Dev AM</td>
-<td class="org-right">10:00</td>
-<td class="org-right">12:00</td>
-<td class="org-left">&#xa0;</td>
-<td class="org-left">&#xa0;</td>
-<td class="org-left">&#xa0;</td>
-<td class="org-left">&#xa0;</td>
-<td class="org-left">&#xa0;</td>
-<td class="org-left">&#xa0;</td>
+<td class="org-left">gmail</td>
+<td class="org-left"><span class="timestamp-wrapper"><time class="timestamp" datetime="2025-12-06T10:15:00">&lt;2025-12-06 Sat 10:15-10:40&gt;</time></span></td>
+<td class="org-left">2025-12-06 Sat 10:10-10:30</td>
+<td class="org-right">-5</td>
</tr>
<tr>
-<td class="org-left">Dev PM</td>
-<td class="org-right">13:00</td>
-<td class="org-right">17:00</td>
-<td class="org-left">&#xa0;</td>
-<td class="org-left">&#xa0;</td>
-<td class="org-left">&#xa0;</td>
-<td class="org-left">&#xa0;</td>
-<td class="org-left">&#xa0;</td>
-<td class="org-left">&#xa0;</td>
+<td class="org-left">juicemacs</td>
+<td class="org-left"><span class="timestamp-wrapper"><time class="timestamp" datetime="2025-12-06T10:15:00">&lt;2025-12-06 Sat 10:15-10:35&gt;</time></span></td>
+<td class="org-left">2025-12-06 Sat 10:05-10:25</td>
+<td class="org-right">-10</td>
</tr>
-</tbody>
-</table>
-Sunday Dec 7 2025
-
-<table id="orgbaba352">
+<tr>
+<td class="org-left">python</td>
+<td class="org-left"><span class="timestamp-wrapper"><time class="timestamp" datetime="2025-12-06T11:20:00">&lt;2025-12-06 Sat 11:20-11:40&gt;</time></span></td>
+<td class="org-left">2025-12-06 Sat 11:05-11:25</td>
+<td class="org-right">-15</td>
+</tr>
+<tr>
+<td class="org-left">latex</td>
+<td class="org-left"><span class="timestamp-wrapper"><time class="timestamp" datetime="2025-12-06T11:25:00">&lt;2025-12-06 Sat 11:25-11:45&gt;</time></span></td>
+<td class="org-left">2025-12-06 Sat 11:10-11:30</td>
+<td class="org-right">-15</td>
+</tr>
-<colgroup>
-<col class="org-left">
+<tr>
+<td class="org-left">llm</td>
+<td class="org-left"><span class="timestamp-wrapper"><time class="timestamp" datetime="2025-12-06T13:00:00">&lt;2025-12-06 Sat 13:00-13:25&gt;</time></span></td>
+<td class="org-left">2025-12-06 Sat 13:00-13:20</td>
+<td class="org-right">0</td>
+</tr>
-<col class="org-right">
+<tr>
+<td class="org-left">calc</td>
+<td class="org-left"><span class="timestamp-wrapper"><time class="timestamp" datetime="2025-12-06T13:40:00">&lt;2025-12-06 Sat 13:40-14:05&gt;</time></span></td>
+<td class="org-left">2025-12-06 Sat 13:40-13:50</td>
+<td class="org-right">0</td>
+</tr>
-<col class="org-right">
+<tr>
+<td class="org-left">private-ai</td>
+<td class="org-left"><span class="timestamp-wrapper"><time class="timestamp" datetime="2025-12-06T13:45:00">&lt;2025-12-06 Sat 13:45-14:05&gt;</time></span></td>
+<td class="org-left">2025-12-06 Sat 13:40-14:00</td>
+<td class="org-right">-5</td>
+</tr>
-<col class="org-left">
+<tr>
+<td class="org-left">blee-lcnt</td>
+<td class="org-left"><span class="timestamp-wrapper"><time class="timestamp" datetime="2025-12-06T14:15:00">&lt;2025-12-06 Sat 14:15-14:55&gt;</time></span></td>
+<td class="org-left">2025-12-06 Sat 14:00-14:20</td>
+<td class="org-right">-15</td>
+</tr>
-<col class="org-left">
+<tr>
+<td class="org-left">commonlisp</td>
+<td class="org-left"><span class="timestamp-wrapper"><time class="timestamp" datetime="2025-12-06T14:25:00">&lt;2025-12-06 Sat 14:25-14:45&gt;</time></span></td>
+<td class="org-left">2025-12-06 Sat 14:20-14:40</td>
+<td class="org-right">-5</td>
+</tr>
-<col class="org-left">
+<tr>
+<td class="org-left">graphics</td>
+<td class="org-left"><span class="timestamp-wrapper"><time class="timestamp" datetime="2025-12-06T14:55:00">&lt;2025-12-06 Sat 14:55-15:20&gt;</time></span></td>
+<td class="org-left">2025-12-06 Sat 14:50-15:10</td>
+<td class="org-right">-5</td>
+</tr>
-<col class="org-left">
+<tr>
+<td class="org-left">greader</td>
+<td class="org-left"><span class="timestamp-wrapper"><time class="timestamp" datetime="2025-12-06T15:15:00">&lt;2025-12-06 Sat 15:15-15:25&gt;</time></span></td>
+<td class="org-left">2025-12-06 Sat 14:40-14:50</td>
+<td class="org-right">-35</td>
+</tr>
-<col class="org-left">
+<tr>
+<td class="org-left">completion</td>
+<td class="org-left"><span class="timestamp-wrapper"><time class="timestamp" datetime="2025-12-07T11:00:00">&lt;2025-12-07 Sun 11:00-11:20&gt;</time></span></td>
+<td class="org-left">2025-12-07 Sun 11:20-11:40</td>
+<td class="org-right">20</td>
+</tr>
-<col class="org-left">
-</colgroup>
-<thead>
<tr>
-<th scope="col" class="org-left">&#xa0;</th>
-<th scope="col" class="org-right">Start</th>
-<th scope="col" class="org-right">End</th>
-<th scope="col" class="org-left"><a href="https://emacsconf.org/2023/volunteer/host/">Host</a></th>
-<th scope="col" class="org-left">Streamer</th>
-<th scope="col" class="org-left"><a href="https://emacsconf.org/2023/volunteer/checkin/">Checkin</a></th>
-<th scope="col" class="org-left"><a href="https://emacsconf.org/2023/volunteer/irc/">IRC</a></th>
-<th scope="col" class="org-left"><a href="https://emacsconf.org/2023/volunteer/pad/">Pad</a></th>
-<th scope="col" class="org-left">Coord</th>
+<td class="org-left">zettelkasten</td>
+<td class="org-left"><span class="timestamp-wrapper"><time class="timestamp" datetime="2025-12-07T13:00:00">&lt;2025-12-07 Sun 13:00-13:25&gt;</time></span></td>
+<td class="org-left">2025-12-07 Sun 13:00-13:20</td>
+<td class="org-right">0</td>
</tr>
-</thead>
-<tbody>
+
<tr>
-<td class="org-left">Gen AM</td>
-<td class="org-right">09:00</td>
-<td class="org-right">12:00</td>
+<td class="org-left">hyperboleqa</td>
+<td class="org-left"><span class="timestamp-wrapper"><time class="timestamp" datetime="2025-12-07T13:45:00">&lt;2025-12-07 Sun 13:45-14:15&gt;</time></span></td>
+<td class="org-left">2025-12-07 Sun 13:40-14:10</td>
+<td class="org-right">-5</td>
</tr>
<tr>
-<td class="org-left">Gen PM</td>
-<td class="org-right">13:00</td>
-<td class="org-right">17:00</td>
+<td class="org-left">bookclub-tapas</td>
+<td class="org-left"><span class="timestamp-wrapper"><time class="timestamp" datetime="2025-12-07T14:45:00">&lt;2025-12-07 Sun 14:45-15:20&gt;</time></span></td>
+<td class="org-left">2025-12-07 Sun 14:30-14:50</td>
+<td class="org-right">-15</td>
</tr>
</tbody>
</table>
-Backups:
-- dev host/streamer:
-- gen host/streamer:
-- checkin, IRC, pad:
+<a id="org26a8620"></a>
-Interested in a shift? Please e-mail <mailto:emacsconf-org-private@gnu.org> and we&rsquo;ll help you figure out what you need to learn.
+## While speakers are working on their videos
- `(setq emacsconf-shifts
- (list
- ,@(apply #'append
- (mapcar
- (lambda (day)
- (let ((headers
- (mapcar
- (lambda (field)
- (intern
- (concat
- ":"
- (downcase
- (if (string-match org-link-bracket-re field)
- (match-string 2 field)
- field)))))
- (seq-drop (car (cadr day)) 3))))
- (mapcar
- (lambda (row)
- (apply #'append
- (list 'list :id
- (when (string-match "^\\([^ ]+\\) \\(AM\\|PM\\)" (car row))
- (format "%s-%s-%s"
- (car day)
- (downcase (match-string 2 (car row)))
- (downcase (match-string 1 (car row)))))
- :track
- (if (string-match "^Gen" (car row)) "General" "Development")
- :start
- (format "%sT%s:00%s"
- (elt day 2)
- (elt row 1)
- emacsconf-timezone-offset)
- :end
- (format "%sT%s:00%s"
- (elt day 2)
- (elt row 2)
- emacsconf-timezone-offset))
- (seq-map-indexed
- (lambda (value index)
- (unless (string= value "")
- (list (elt headers index) value)))
- (seq-drop row 3))))
- (cdr (cadr day)))
- ))
- (list
- (list "sat" sat "2025-12-07")
- (list "sun" sun "2025-12-08"))))))
+
+### DONE Send draft schedule :email:
+
+
+### DONE Send backstage and upload instructions :email:
+
+
+### TODO Record pronunciations
-<a id="intros"></a>
+### DONE Post the schedule publicly
-## Record intros and opening remarks
+<a id="orgb754ae6"></a>
-### TODO Record sat-open remarks :emacsconf:record:
+## While volunteers are working on captions
+
+
+### DONE E-mail speakers asking them to confirm the pronunciations :email:
+
+
+### Record intros and opening remarks
+
+
+#### TODO Record sat-open remarks :emacsconf:record:
Welcome to EmacsConf 2025, where we have fun
exploring how much we can do with a text editor.
@@ -597,7 +605,7 @@ who make EmacsConf possible.
Thanks for coming to EmacsConf 2025.
-### TODO Record sun-open remarks
+#### TODO Record sun-open remarks
Welcome to the second day of EmacsConf 2025.
The best parts of EmacsConf are the conversations.
@@ -722,6 +730,240 @@ who make EmacsConf even possible.
Thanks for coming to EmacsConf 2025.
+### TODO Generate assets
+
+
+### TODO Send check-in details :email:
+
+
+### DONE Ask libera.chat to increase IRC limit
+
+
+<a id="orga46a5dd"></a>
+
+## After the conference
+
+
+### TODO Send thanks and follow-up questions :email:
+
+
+<a id="shifts"></a>
+
+## DONE Confirm shifts
+
+<a name="shifts"></a>
+
+AM: 9-12 PM EST, PM: 1-5 PM EST (plus a little extra for setup/transition)
+
+Saturday Dec 6 2025
+
+<table id="org41c47dd">
+
+
+<colgroup>
+<col class="org-left">
+
+<col class="org-right">
+
+<col class="org-right">
+
+<col class="org-left">
+
+<col class="org-left">
+
+<col class="org-left">
+
+<col class="org-left">
+
+<col class="org-left">
+
+<col class="org-left">
+</colgroup>
+<thead>
+<tr>
+<th scope="col" class="org-left">&nbsp;</th>
+<th scope="col" class="org-right">Start</th>
+<th scope="col" class="org-right">End</th>
+<th scope="col" class="org-left"><a href="https://emacsconf.org/2023/volunteer/host/">Host</a></th>
+<th scope="col" class="org-left">Streamer</th>
+<th scope="col" class="org-left"><a href="https://emacsconf.org/2023/volunteer/checkin/">Checkin</a></th>
+<th scope="col" class="org-left"><a href="https://emacsconf.org/2023/volunteer/irc/">IRC</a></th>
+<th scope="col" class="org-left"><a href="https://emacsconf.org/2023/volunteer/pad/">Pad</a></th>
+<th scope="col" class="org-left">Coord</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td class="org-left">Gen AM</td>
+<td class="org-right">09:00</td>
+<td class="org-right">12:00</td>
+<td class="org-left">zaeph</td>
+<td class="org-left">sachac</td>
+<td class="org-left">sachac</td>
+<td class="org-left">&nbsp;</td>
+<td class="org-left">&nbsp;</td>
+<td class="org-left">sachac</td>
+</tr>
+
+<tr>
+<td class="org-left">Gen PM</td>
+<td class="org-right">13:00</td>
+<td class="org-right">17:00</td>
+<td class="org-left">zaeph</td>
+<td class="org-left">sachac</td>
+<td class="org-left">sachac</td>
+<td class="org-left">&nbsp;</td>
+<td class="org-left">&nbsp;</td>
+<td class="org-left">sachac</td>
+</tr>
+
+<tr>
+<td class="org-left">Dev AM</td>
+<td class="org-right">10:00</td>
+<td class="org-right">12:00</td>
+<td class="org-left">corwin</td>
+<td class="org-left">sachac</td>
+<td class="org-left">sachac</td>
+<td class="org-left">&nbsp;</td>
+<td class="org-left">&nbsp;</td>
+<td class="org-left">sachac</td>
+</tr>
+
+<tr>
+<td class="org-left">Dev PM</td>
+<td class="org-right">13:00</td>
+<td class="org-right">17:00</td>
+<td class="org-left">corwin</td>
+<td class="org-left">sachac</td>
+<td class="org-left">sachac</td>
+<td class="org-left">&nbsp;</td>
+<td class="org-left">&nbsp;</td>
+<td class="org-left">sachac</td>
+</tr>
+</tbody>
+</table>
+
+Sunday Dec 7 2025
+
+<table id="org22aafa8">
+
+
+<colgroup>
+<col class="org-left">
+
+<col class="org-right">
+
+<col class="org-right">
+
+<col class="org-left">
+
+<col class="org-left">
+
+<col class="org-left">
+
+<col class="org-left">
+
+<col class="org-left">
+
+<col class="org-left">
+</colgroup>
+<thead>
+<tr>
+<th scope="col" class="org-left">&nbsp;</th>
+<th scope="col" class="org-right">Start</th>
+<th scope="col" class="org-right">End</th>
+<th scope="col" class="org-left"><a href="https://emacsconf.org/2023/volunteer/host/">Host</a></th>
+<th scope="col" class="org-left">Streamer</th>
+<th scope="col" class="org-left"><a href="https://emacsconf.org/2023/volunteer/checkin/">Checkin</a></th>
+<th scope="col" class="org-left"><a href="https://emacsconf.org/2023/volunteer/irc/">IRC</a></th>
+<th scope="col" class="org-left"><a href="https://emacsconf.org/2023/volunteer/pad/">Pad</a></th>
+<th scope="col" class="org-left">Coord</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td class="org-left">Gen AM</td>
+<td class="org-right">09:00</td>
+<td class="org-right">12:00</td>
+<td class="org-left">zaeph/corwin</td>
+<td class="org-left">sachac</td>
+<td class="org-left">sachac</td>
+<td class="org-left">&nbsp;</td>
+<td class="org-left">&nbsp;</td>
+<td class="org-left">sachac</td>
+</tr>
+
+<tr>
+<td class="org-left">Gen PM</td>
+<td class="org-right">13:00</td>
+<td class="org-right">17:00</td>
+<td class="org-left">zaeph/corwin</td>
+<td class="org-left">sachac</td>
+<td class="org-left">sachac</td>
+<td class="org-left">&nbsp;</td>
+<td class="org-left">&nbsp;</td>
+<td class="org-left">sachac</td>
+</tr>
+</tbody>
+</table>
+
+Backups:
+
+- dev host/streamer:
+- gen host/streamer:
+- checkin, IRC, pad:
+
+Interested in a shift? Please e-mail <mailto:emacsconf-org-private@gnu.org> and we&rsquo;ll help you figure out what you need to learn.
+
+ `(setq emacsconf-shifts
+ (list
+ ,@(apply #'append
+ (mapcar
+ (lambda (day)
+ (let ((headers
+ (mapcar
+ (lambda (field)
+ (intern
+ (concat
+ ":"
+ (downcase
+ (if (string-match org-link-bracket-re field)
+ (match-string 2 field)
+ field)))))
+ (seq-drop (car (cadr day)) 3))))
+ (mapcar
+ (lambda (row)
+ (apply #'append
+ (list 'list :id
+ (when (string-match "^\\([^ ]+\\) \\(AM\\|PM\\)" (car row))
+ (format "%s-%s-%s"
+ (car day)
+ (downcase (match-string 2 (car row)))
+ (downcase (match-string 1 (car row)))))
+ :track
+ (if (string-match "^Gen" (car row)) "General" "Development")
+ :start
+ (format "%sT%s:00%s"
+ (elt day 2)
+ (elt row 1)
+ emacsconf-timezone-offset)
+ :end
+ (format "%sT%s:00%s"
+ (elt day 2)
+ (elt row 2)
+ emacsconf-timezone-offset))
+ (seq-map-indexed
+ (lambda (value index)
+ (unless (string= value "")
+ (list (elt headers index) value)))
+ (seq-drop row 3))))
+ (cdr (cadr day)))
+ ))
+ (list
+ (list "sat" sat "2025-12-06")
+ (list "sun" sun "2025-12-07"))))))
+
+
<a id="check-emacsconf-infrastructure"></a>
# TODO Check EmacsConf infrastructure :project:
@@ -747,7 +989,7 @@ Thanks for coming to EmacsConf 2025.
- [Installation notes from last year](https://emacsconf.org/2024/organizers-notebook/#check-emacsconf-infrastructure-bigbluebutton)
-### TODO Create meeting rooms for each speaker
+### DONE Create meeting rooms for each speaker
[Creating talk BBB rooms](file:///home/sacha/proj/emacsconf/wiki/organizers-notebook/index.md)
@@ -757,12 +999,12 @@ Thanks for coming to EmacsConf 2025.
[Backing up BBB](file:///home/sacha/proj/emacsconf/wiki/organizers-notebook/index.md)
-### TODO Set up moderator access codes for all the meeting rooms, and make it so people can start the meeting
+### DONE Set up moderator access codes for all the meeting rooms, and make it so people can start the meeting
[Setting up moderator access codes](file:///home/sacha/proj/emacsconf/wiki/organizers-notebook/index.md)
-### TODO Check BBB audio from my phone
+### DONE Check BBB audio from my phone
### Customize BigBlueButton branding
@@ -804,8 +1046,11 @@ yq e -i &ldquo;.public.app.clientTitle = \\&rdquo;EmacsConf\\&ldquo;&rdquo; $TAR
## IRC web client
+On front0:
+cd ~thelounge; sudo -u thelounge nohup node /usr/bin/thelounge start
-### TODO Ask libera.chat to increase connections allowed from chat.emacsconf.org on Dec 6 and 7
+
+### DONE Ask libera.chat to increase connections allowed from chat.emacsconf.org on Dec 6 and 7
[IRC web client](file:///home/sacha/proj/emacsconf/wiki/organizers-notebook/index.md)
@@ -826,7 +1071,7 @@ yq e -i &ldquo;.public.app.clientTitle = \\&rdquo;EmacsConf\\&ldquo;&rdquo; $TAR
## Media
-### TODO Switch public media to unprotected root before the conference
+### DONE 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`.
@@ -837,9 +1082,9 @@ You can generate the index with `emacsconf-publish-update-media`.
<a id="check-emacsconf-infrastructure-publishing-resources-to-the-wiki"></a>
-## TODO Publishing resources to the wiki
+## DONE Publishing resources to the wiki
-ansible-playbook -i inventory.yml prod-playbook.yml &#x2013;tags publish
+ansible-playbook -i inventory.yml prod-playbook.yml &ndash;tags publish
<a id="check-emacsconf-infrastructure-publishing-videos-to-the-media-server"></a>
@@ -852,7 +1097,9 @@ ansible-playbook -i inventory.yml prod-playbook.yml &#x2013;tags publish
## Playing videos, switching to windows
-### TODO Generate test videos for everything
+### DONE Generate test videos for everything
+
+emacsconf-stream-generate-test-videos
### TODO Document how to get that set up again
@@ -863,7 +1110,23 @@ ansible-playbook -i inventory.yml prod-playbook.yml &#x2013;tags publish
## Etherpad
-### TODO Generate pads for all the talks
+### STARTED Try upgrading to 2.x
+
+<https://galaxy.ansible.com/ui/repo/published/s3lph/pads/content/role/etherpad/>
+<a href="https://git.emacsconf.org/emacsconf-ansible/tree/roles/pad/tasks/main.yml">roles/pad/tasks/main.yml</a>
+
+nodemon -e yml -w ../../roles/pad/tasks/main.yml -x &ldquo;vagrant up &ndash;provision&rdquo;
+
+<http://pad.emacsconf.org.vagrant/>
+
+Progress:
+<http://pad.emacsconf.org.vagrant:9001/p/2025-hyperboleqa> works
+<http://pad.emacsconf.org.vagrant/p/2025-hyperboleqa> works now that I passthrough .js
+
+<http://pad.emacsconf.org.vagrant/padbootstrap-rLLvrD2UOFI.min.js>
+
+
+### Generate pads for all the talks
### TODO Generate the main index
@@ -877,7 +1140,7 @@ ansible-playbook -i inventory.yml prod-playbook.yml &#x2013;tags publish
### TODO Generate all the test assets
-### TODO Test connecting to VNC and streaming via OBS
+### DONE Test connecting to VNC and streaming via OBS :emacsconf:
<a id="check-emacsconf-infrastructure-resizing"></a>
@@ -953,6 +1216,19 @@ Some convenient commands are defined in <a href="https://git.emacsconf.org/emacs
</table>
+<a id="org9f7b814"></a>
+
+## Uploading videos
+
+
+### YouTube
+
+emacsconf-publish-youtube-step-through-publishing
+
+
+### Toobnix
+
+
<a id="decisions"></a>
# Decisions