summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--2025/info/sat-open-after.md136
-rw-r--r--2025/info/sat-open-before.md19
-rw-r--r--2025/schedule-2025-12-06.md2
-rw-r--r--2025/schedule-2025-12-07.md2
-rw-r--r--2025/schedule-image.md2
5 files changed, 5 insertions, 156 deletions
diff --git a/2025/info/sat-open-after.md b/2025/info/sat-open-after.md
index 2b428ad8..ab84db89 100644
--- a/2025/info/sat-open-after.md
+++ b/2025/info/sat-open-after.md
@@ -1,142 +1,6 @@
<!-- Automatically generated by emacsconf-publish-after-page -->
-<div class="transcript transcript-mainVideo"><a name="sat-open-mainVideo-transcript"></a><h1>Transcript (unedited)</h1>
-
-
-<div class="transcript-heading">[[!template new="1" text="""Tracks""" start="00:00:00.000" video="mainVideo-sat-open" id="subtitle"]]</div>[[!template text="""Welcome to EmacsConf, where we have fun""" start="00:00:00.000" video="mainVideo-sat-open" id="subtitle"]]
-[[!template text="""exploring just how much we can do with a text editor.""" start="00:00:02.247" video="mainVideo-sat-open" id="subtitle"]]
-[[!template text="""There's a General track and a Development track,""" start="00:00:05.485" video="mainVideo-sat-open" id="subtitle"]]
-[[!template text="""but really, you'll probably find""" start="00:00:07.925" video="mainVideo-sat-open" id="subtitle"]]
-[[!template text="""interesting things on both tracks""" start="00:00:09.484" video="mainVideo-sat-open" id="subtitle"]]
-[[!template text="""no matter what your level of experience is,""" start="00:00:11.079" video="mainVideo-sat-open" id="subtitle"]]
-[[!template text="""so don't feel limited to one or the other.""" start="00:00:13.216" video="mainVideo-sat-open" id="subtitle"]]
-
-<div class="transcript-heading">[[!template new="1" text="""Watching and participating""" start="00:00:16.000" video="mainVideo-sat-open" id="subtitle"]]</div>[[!template text="""The best parts of EmacsConf are the conversations.""" start="00:00:16.000" video="mainVideo-sat-open" id="subtitle"]]
-[[!template text="""The wiki has a page on how to watch and participate,""" start="00:00:19.393" video="mainVideo-sat-open" id="subtitle"]]
-[[!template text="""and I'll give you a quick overview as well.""" start="00:00:22.486" video="mainVideo-sat-open" id="subtitle"]]
-[[!template text="""You can watch both streams at live.emacsconf.org""" start="00:00:24.910" video="mainVideo-sat-open" id="subtitle"]]
-[[!template text="""using free and open source software.""" start="00:00:28.885" video="mainVideo-sat-open" id="subtitle"]]
-[[!template text="""Using a streaming media player like mpv""" start="00:00:31.186" video="mainVideo-sat-open" id="subtitle"]]
-[[!template text="""seems to be the best way to watch in terms of performance""" start="00:00:34.388" video="mainVideo-sat-open" id="subtitle"]]
-[[!template text="""but there are also web-based players""" start="00:00:37.275" video="mainVideo-sat-open" id="subtitle"]]
-[[!template text="""just in case that's all you've got.""" start="00:00:39.241" video="mainVideo-sat-open" id="subtitle"]]
-[[!template text="""The schedule shows the General track on top""" start="00:00:41.378" video="mainVideo-sat-open" id="subtitle"]]
-[[!template text="""and the Development track on the bottom,""" start="00:00:44.064" video="mainVideo-sat-open" id="subtitle"]]
-[[!template text="""so you can see what else is going on.""" start="00:00:45.603" video="mainVideo-sat-open" id="subtitle"]]
-[[!template text="""As you're watching the talks,""" start="00:00:47.820" video="mainVideo-sat-open" id="subtitle"]]
-[[!template text="""you can refer to the schedule in another window.""" start="00:00:49.819" video="mainVideo-sat-open" id="subtitle"]]
-[[!template text="""Hover over the boxes to see the times and titles,""" start="00:00:52.355" video="mainVideo-sat-open" id="subtitle"]]
-[[!template text="""and click on the boxes in the schedule""" start="00:00:55.601" video="mainVideo-sat-open" id="subtitle"]]
-[[!template text="""to jump to the talk's page for more details.""" start="00:00:57.614" video="mainVideo-sat-open" id="subtitle"]]
-
-<div class="transcript-heading">[[!template new="1" text="""Other schedule formats""" start="00:01:00.607" video="mainVideo-sat-open" id="subtitle"]]</div>[[!template text="""You can also get the schedule as an iCalendar file""" start="00:01:00.607" video="mainVideo-sat-open" id="subtitle"]]
-[[!template text="""or as an Org file in different time zones.""" start="00:01:03.587" video="mainVideo-sat-open" id="subtitle"]]
-[[!template text="""The Org file has some links to talk resources""" start="00:01:05.621" video="mainVideo-sat-open" id="subtitle"]]
-[[!template text="""and might be handy as a starting point for your notes.""" start="00:01:08.255" video="mainVideo-sat-open" id="subtitle"]]
-
-<div class="transcript-heading">[[!template new="1" text="""BigBlueButton""" start="00:01:10.601" video="mainVideo-sat-open" id="subtitle"]]</div>[[!template text="""Many talks will be followed by""" start="00:01:10.601" video="mainVideo-sat-open" id="subtitle"]]
-[[!template text="""live Q&A web conferences with the speaker,""" start="00:01:12.145" video="mainVideo-sat-open" id="subtitle"]]
-[[!template text="""which will be done in BigBlueButton or BBB.""" start="00:01:14.572" video="mainVideo-sat-open" id="subtitle"]]
-[[!template text="""These are indicated with a solid border on the schedule""" start="00:01:17.734" video="mainVideo-sat-open" id="subtitle"]]
-[[!template text="""and by Q&A: BBB on the schedule page.""" start="00:01:20.819" video="mainVideo-sat-open" id="subtitle"]]
-[[!template text="""You can join the web conference room""" start="00:01:24.001" video="mainVideo-sat-open" id="subtitle"]]
-[[!template text="""by clicking on the BBB link""" start="00:01:25.901" video="mainVideo-sat-open" id="subtitle"]]
-[[!template text="""on the schedule page or the talk's webpage.""" start="00:01:27.467" video="mainVideo-sat-open" id="subtitle"]]
-[[!template text="""Then you can ask your questions yourself when the Q&A starts.""" start="00:01:30.176" video="mainVideo-sat-open" id="subtitle"]]
-[[!template text="""To improve performance, please keep your webcam off""" start="00:01:34.215" video="mainVideo-sat-open" id="subtitle"]]
-[[!template text="""and stay muted until it's your turn to talk.""" start="00:01:37.211" video="mainVideo-sat-open" id="subtitle"]]
-[[!template text="""If you don't like Javascript,""" start="00:01:39.890" video="mainVideo-sat-open" id="subtitle"]]
-[[!template text="""you can still ask questions via IRC""" start="00:01:41.692" video="mainVideo-sat-open" id="subtitle"]]
-[[!template text="""and the hosts can read them out for you.""" start="00:01:43.643" video="mainVideo-sat-open" id="subtitle"]]
-
-<div class="transcript-heading">[[!template new="1" text="""On and off the stream""" start="00:01:46.036" video="mainVideo-sat-open" id="subtitle"]]</div>[[!template text="""We're probably going to automatically switch""" start="00:01:46.036" video="mainVideo-sat-open" id="subtitle"]]
-[[!template text="""between talks and Q&A sessions,""" start="00:01:47.895" video="mainVideo-sat-open" id="subtitle"]]
-[[!template text="""so the transitions on the stream might be a little sudden.""" start="00:01:49.483" video="mainVideo-sat-open" id="subtitle"]]
-[[!template text="""People in the BigBlueButton room""" start="00:01:52.897" video="mainVideo-sat-open" id="subtitle"]]
-[[!template text="""can continue the conversation""" start="00:01:54.439" video="mainVideo-sat-open" id="subtitle"]]
-[[!template text="""even after the talk moves off-stream,""" start="00:01:55.862" video="mainVideo-sat-open" id="subtitle"]]
-[[!template text="""and you can also reach out to the speakers""" start="00:01:58.220" video="mainVideo-sat-open" id="subtitle"]]
-[[!template text="""using the contact information on the talk page.""" start="00:02:00.271" video="mainVideo-sat-open" id="subtitle"]]
-
-<div class="transcript-heading">[[!template new="1" text="""Etherpad and IRC""" start="00:02:03.217" video="mainVideo-sat-open" id="subtitle"]]</div>[[!template text="""Other talks will have Q&A via Etherpad or IRC,""" start="00:02:03.217" video="mainVideo-sat-open" id="subtitle"]]
-[[!template text="""depending on what the speakers prefer.""" start="00:02:06.302" video="mainVideo-sat-open" id="subtitle"]]
-[[!template text="""This is indicated in the schedule with a dashed border""" start="00:02:08.542" video="mainVideo-sat-open" id="subtitle"]]
-[[!template text="""and on the schedule page as well.""" start="00:02:11.380" video="mainVideo-sat-open" id="subtitle"]]
-[[!template text="""The schedule pages have quick shortcuts so that you can""" start="00:02:13.510" video="mainVideo-sat-open" id="subtitle"]]
-[[!template text="""find out more about talks, open the Etherpads,""" start="00:02:16.543" video="mainVideo-sat-open" id="subtitle"]]
-[[!template text="""and join the Q&A sessions.""" start="00:02:19.053" video="mainVideo-sat-open" id="subtitle"]]
-[[!template text="""The watch page has more tips""" start="00:02:21.204" video="mainVideo-sat-open" id="subtitle"]]
-[[!template text="""on how to make the most of Q&A.""" start="00:02:23.366" video="mainVideo-sat-open" id="subtitle"]]
-
-<div class="transcript-heading">[[!template new="1" text="""Etherpad""" start="00:02:25.456" video="mainVideo-sat-open" id="subtitle"]]</div>[[!template text="""If you can, please add notes and ask questions""" start="00:02:25.456" video="mainVideo-sat-open" id="subtitle"]]
-[[!template text="""in the Etherpad for the talk.""" start="00:02:28.330" video="mainVideo-sat-open" id="subtitle"]]
-[[!template text="""That makes it easier""" start="00:02:30.133" video="mainVideo-sat-open" id="subtitle"]]
-[[!template text="""for everyone to share their notes,""" start="00:02:31.598" video="mainVideo-sat-open" id="subtitle"]]
-[[!template text="""and speakers and hosts can read the questions from there.""" start="00:02:33.130" video="mainVideo-sat-open" id="subtitle"]]
-[[!template text="""We'll copy the notes to the talk pages afterwards.""" start="00:02:36.355" video="mainVideo-sat-open" id="subtitle"]]
-[[!template text="""We have one pad for each talk,""" start="00:02:39.622" video="mainVideo-sat-open" id="subtitle"]]
-[[!template text="""so you can follow the links to get to the next one""" start="00:02:41.497" video="mainVideo-sat-open" id="subtitle"]]
-[[!template text="""or go back to the schedule and get the link from there.""" start="00:02:43.773" video="mainVideo-sat-open" id="subtitle"]]
-[[!template text="""If you have general feedback about""" start="00:02:46.828" video="mainVideo-sat-open" id="subtitle"]]
-[[!template text="""the conference itself, please put it in""" start="00:02:48.423" video="mainVideo-sat-open" id="subtitle"]]
-[[!template text="""pad.emacsconf.org/emacsconf.""" start="00:02:50.668" video="mainVideo-sat-open" id="subtitle"]]
-[[!template text="""You can also use this as a community message board""" start="00:02:54.593" video="mainVideo-sat-open" id="subtitle"]]
-[[!template text="""for things like Help Wanted.""" start="00:02:57.550" video="mainVideo-sat-open" id="subtitle"]]
-
-<div class="transcript-heading">[[!template new="1" text="""IRC""" start="00:02:59.440" video="mainVideo-sat-open" id="subtitle"]]</div>[[!template text="""Internet Relay Chat or IRC can be another great way""" start="00:02:59.440" video="mainVideo-sat-open" id="subtitle"]]
-[[!template text="""to be part of lots of conversations.""" start="00:03:02.800" video="mainVideo-sat-open" id="subtitle"]]
-[[!template text="""You can use chat.emacsconf.org to join the IRC channels""" start="00:03:05.176" video="mainVideo-sat-open" id="subtitle"]]
-[[!template text="""through your web browser.""" start="00:03:09.451" video="mainVideo-sat-open" id="subtitle"]]
-[[!template text="""The tabs on the left can help you""" start="00:03:11.046" video="mainVideo-sat-open" id="subtitle"]]
-[[!template text="""switch between the different channels.""" start="00:03:12.857" video="mainVideo-sat-open" id="subtitle"]]
-[[!template text="""There's #emacsconf-gen for the General track""" start="00:03:14.892" video="mainVideo-sat-open" id="subtitle"]]
-[[!template text="""and #emacsconf-dev for the Development track.""" start="00:03:17.611" video="mainVideo-sat-open" id="subtitle"]]
-[[!template text="""If you need to reach us, you can join #emacsconf-org""" start="00:03:20.490" video="mainVideo-sat-open" id="subtitle"]]
-[[!template text="""or e-mail emacsconf-org-private@gnu.org.""" start="00:03:23.957" video="mainVideo-sat-open" id="subtitle"]]
-[[!template text="""You can use #emacsconf for hallway conversations.""" start="00:03:29.475" video="mainVideo-sat-open" id="subtitle"]]
-
-<div class="transcript-heading">[[!template new="1" text="""Captions""" start="00:03:32.778" video="mainVideo-sat-open" id="subtitle"]]</div>[[!template text="""Once again, we're going to be streaming with open captions""" start="00:03:32.778" video="mainVideo-sat-open" id="subtitle"]]
-[[!template text="""for most of the talks this year, thanks to our speakers and""" start="00:03:35.588" video="mainVideo-sat-open" id="subtitle"]]
-[[!template text="""captioning volunteers.""" start="00:03:38.480" video="mainVideo-sat-open" id="subtitle"]]
-[[!template text="""The captioned talks are indicated on the schedule,""" start="00:03:39.896" video="mainVideo-sat-open" id="subtitle"]]
-[[!template text="""and with any luck, we'll be posting""" start="00:03:42.523" video="mainVideo-sat-open" id="subtitle"]]
-[[!template text="""videos and transcripts on talk pages""" start="00:03:44.313" video="mainVideo-sat-open" id="subtitle"]]
-[[!template text="""shortly after the talks start.""" start="00:03:46.124" video="mainVideo-sat-open" id="subtitle"]]
-[[!template text="""If you need additional accommodations, please let us know""" start="00:03:47.884" video="mainVideo-sat-open" id="subtitle"]]
-[[!template text="""in #emacsconf-org and we'll see""" start="00:03:51.070" video="mainVideo-sat-open" id="subtitle"]]
-[[!template text="""if we can make things happen.""" start="00:03:54.017" video="mainVideo-sat-open" id="subtitle"]]
-
-<div class="transcript-heading">[[!template new="1" text="""status.emacsconf.org""" start="00:03:55.238" video="mainVideo-sat-open" id="subtitle"]]</div>[[!template text="""If something goes down, we'll update status.emacsconf.org.""" start="00:03:55.238" video="mainVideo-sat-open" id="subtitle"]]
-[[!template text="""If it doesn't look like we've noticed yet,""" start="00:03:59.918" video="mainVideo-sat-open" id="subtitle"]]
-[[!template text="""please let us know in the #emacsconf-org IRC channel,""" start="00:04:01.744" video="mainVideo-sat-open" id="subtitle"]]
-[[!template text="""where we will be quietly panicking.""" start="00:04:05.263" video="mainVideo-sat-open" id="subtitle"]]
-
-<div class="transcript-heading">[[!template new="1" text="""Guidelines for conduct""" start="00:04:07.282" video="mainVideo-sat-open" id="subtitle"]]</div>[[!template text="""In all of these conversations, please keep in mind""" start="00:04:07.282" video="mainVideo-sat-open" id="subtitle"]]
-[[!template text="""our guidelines for conduct.""" start="00:04:09.705" video="mainVideo-sat-open" id="subtitle"]]
-[[!template text="""You can find them on the wiki,""" start="00:04:11.239" video="mainVideo-sat-open" id="subtitle"]]
-[[!template text="""and they basically boil down to: please be nice. Thank you!""" start="00:04:12.620" video="mainVideo-sat-open" id="subtitle"]]
-
-<div class="transcript-heading">[[!template new="1" text="""Videos""" start="00:04:16.020" video="mainVideo-sat-open" id="subtitle"]]</div>[[!template text="""If all goes well, the prerecorded talks and transcripts""" start="00:04:16.020" video="mainVideo-sat-open" id="subtitle"]]
-[[!template text="""should be available from the talk pages""" start="00:04:18.892" video="mainVideo-sat-open" id="subtitle"]]
-[[!template text="""shortly after they start playing,""" start="00:04:20.538" video="mainVideo-sat-open" id="subtitle"]]
-[[!template text="""and we'll post the recordings of live talks""" start="00:04:22.039" video="mainVideo-sat-open" id="subtitle"]]
-[[!template text="""and Q&A sessions within the next few weeks.""" start="00:04:24.144" video="mainVideo-sat-open" id="subtitle"]]
-
-<div class="transcript-heading">[[!template new="1" text="""Let's get started!""" start="00:04:26.776" video="mainVideo-sat-open" id="subtitle"]]</div>[[!template text="""All right, let's get going.""" start="00:04:26.776" video="mainVideo-sat-open" id="subtitle"]]
-[[!template text="""You might see Leo Vivier, Corwin Brust,""" start="00:04:28.248" video="mainVideo-sat-open" id="subtitle"]]
-[[!template text="""and Amin Bandali hosting the various tracks.""" start="00:04:31.215" video="mainVideo-sat-open" id="subtitle"]]
-[[!template text="""I will run around mostly backstage,""" start="00:04:33.954" video="mainVideo-sat-open" id="subtitle"]]
-[[!template text="""and you'll probably meet us in the closing remarks.""" start="00:04:35.768" video="mainVideo-sat-open" id="subtitle"]]
-[[!template text="""That's also where we get to thank""" start="00:04:37.794" video="mainVideo-sat-open" id="subtitle"]]
-[[!template text="""all the people and organizations""" start="00:04:39.244" video="mainVideo-sat-open" id="subtitle"]]
-[[!template text="""who make EmacsConf possible.""" start="00:04:40.660" video="mainVideo-sat-open" id="subtitle"]]
-[[!template text="""Let's have fun at EmacsConf!""" start="00:04:42.550" video="mainVideo-sat-open" id="subtitle"]]
-
-</div>
-
-Captioner: sachac
-
Questions or comments? Please e-mail [emacsconf-org-private@gnu.org](mailto:emacsconf-org-private@gnu.org?subject=Comment%20for%20EmacsConf%202023%20sat-open%3A%20Saturday%20opening%20remarks)
diff --git a/2025/info/sat-open-before.md b/2025/info/sat-open-before.md
index 17e50c82..5b27da51 100644
--- a/2025/info/sat-open-before.md
+++ b/2025/info/sat-open-before.md
@@ -1,34 +1,19 @@
<!-- Automatically generated by emacsconf-publish-before-page -->
The following image shows where the talk is in the schedule for Sat 2025-12-06. Solid lines show talks with Q&A via BigBlueButton. Dashed lines show talks with Q&A via IRC or Etherpad.<div class="schedule-in-context schedule-svg-container" data-slug="sat-open">
-<svg width="700" height="150" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><title>Schedule for Saturday</title><rect width="700" height="150" x="0" y="0" fill="white"></rect><text font-size="10" fill="black" y="12" x="3">Saturday</text><a href="/2025/talks/sat-open" title="Saturday opening remarks" data-slug="sat-open"><title> 9:00- 9:10 Saturday opening remarks</title><rect stroke-width="3" x="0" y="15" opacity="0.8" width="13" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(11,73)"><text font-weight="bold" fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sat-open</text></g></a><a href="/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="13" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(24,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">org-babel</text></g></a><a href="/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="41" y="15" opacity="0.5" width="34" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(73,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">reference</text></g></a><a href="/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="102" y="15" opacity="0.5" width="34" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(134,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">gmail</text></g></a><a href="/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="150" y="15" opacity="0.5" width="34" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(182,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">gnus</text></g></a><a href="/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="199" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(224,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">latex</text></g></a><a href="/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="329" y="15" opacity="0.5" width="34" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(361,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">calc</text></g></a><a href="/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="377" y="15" opacity="0.5" width="54" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(429,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">blee-lcnt</text></g></a><a href="/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="459" y="15" opacity="0.5" width="6" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(463,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">greader</text></g></a><a href="/2025/talks/open-mic" title="Open session" data-slug="open-mic"><title> 2:50- 3:40 Open session</title><rect x="480" y="15" opacity="0.5" width="68" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(546,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">open-mic</text></g></a><a href="/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="576" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(587,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sat-close</text></g></a><a href="/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="41" y="75" opacity="0.5" width="34" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(73,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">schemacs</text></g></a><a href="/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="102" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="5,5,5" fill="skyblue"></rect><g transform="translate(127,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">juicemacs</text></g></a><a href="/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="144" y="75" opacity="0.5" width="34" height="59" stroke="black" stroke-dasharray="5,5,5" fill="skyblue"></rect><g transform="translate(176,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">swanky</text></g></a><a href="/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="192" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(217,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">python</text></g></a><a href="/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="329" y="75" opacity="0.5" width="34" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(361,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">llm</text></g></a><a href="/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="391" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(416,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">private-ai</text></g></a><a href="/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="446" y="75" opacity="0.5" width="41" height="59" stroke="black" stroke-dasharray="5,5,5" fill="skyblue"></rect><g transform="translate(485,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">commonlisp</text></g></a><a href="/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="500" y="75" opacity="0.5" width="34" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(532,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">graphics</text></g></a><g transform="translate(0,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="140" font-size="10" text-anchor="left">9 AM</text></g><g transform="translate(82,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="140" font-size="10" text-anchor="left">10 AM</text></g><g transform="translate(164,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="140" font-size="10" text-anchor="left">11 AM</text></g><g transform="translate(247,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="140" font-size="10" text-anchor="left">12 PM</text></g><g transform="translate(329,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="140" font-size="10" text-anchor="left">1 PM</text></g><g transform="translate(411,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="140" font-size="10" text-anchor="left">2 PM</text></g><g transform="translate(494,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="140" font-size="10" text-anchor="left">3 PM</text></g><g transform="translate(576,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="140" font-size="10" text-anchor="left">4 PM</text></g><g transform="translate(658,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="140" font-size="10" text-anchor="left">5 PM</text></g></svg>
+<svg width="700" height="150" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> <title> Schedule for Saturday</title> <rect width="700" height="150" x="0" y="0" fill="white"></rect> <text font-size="10" fill="black" y="12" x="3"> Saturday</text> <a href="/2025/talks/sat-open" title="Saturday opening remarks" data-slug="sat-open"> <title> 9:00- 9:10 Saturday opening remarks</title> <rect stroke-width="3" x="0" y="15" opacity="0.8" width="13" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect> <g transform="translate(11,73)"> <text font-weight="bold" fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> sat-open</text></g></a> <a href="/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="13" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect> <g transform="translate(24,73)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> org-babel</text></g></a> <a href="/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="41" y="15" opacity="0.5" width="34" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect> <g transform="translate(73,73)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> reference</text></g></a> <a href="/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="102" y="15" opacity="0.5" width="34" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect> <g transform="translate(134,73)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> gmail</text></g></a> <a href="/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="150" y="15" opacity="0.5" width="34" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect> <g transform="translate(182,73)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> gnus</text></g></a> <a href="/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="199" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect> <g transform="translate(224,73)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> latex</text></g></a> <a href="/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="329" y="15" opacity="0.5" width="34" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect> <g transform="translate(361,73)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> calc</text></g></a> <a href="/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="377" y="15" opacity="0.5" width="54" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect> <g transform="translate(429,73)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> blee-lcnt</text></g></a> <a href="/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="459" y="15" opacity="0.5" width="6" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect> <g transform="translate(463,73)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> greader</text></g></a> <a href="/2025/talks/open-mic" title="Open session" data-slug="open-mic"> <title> 2:50- 3:40 Open session</title> <rect x="480" y="15" opacity="0.5" width="68" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect> <g transform="translate(546,73)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> open-mic</text></g></a> <a href="/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="576" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect> <g transform="translate(587,73)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> sat-close</text></g></a> <a href="/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="41" y="75" opacity="0.5" width="34" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect> <g transform="translate(73,133)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> schemacs</text></g></a> <a href="/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="102" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="5,5,5" fill="skyblue"></rect> <g transform="translate(127,133)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> juicemacs</text></g></a> <a href="/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="144" y="75" opacity="0.5" width="34" height="59" stroke="black" stroke-dasharray="5,5,5" fill="skyblue"></rect> <g transform="translate(176,133)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> swanky</text></g></a> <a href="/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="192" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect> <g transform="translate(217,133)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> python</text></g></a> <a href="/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="329" y="75" opacity="0.5" width="34" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect> <g transform="translate(361,133)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> llm</text></g></a> <a href="/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="391" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect> <g transform="translate(416,133)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> private-ai</text></g></a> <a href="/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="446" y="75" opacity="0.5" width="41" height="59" stroke="black" stroke-dasharray="5,5,5" fill="skyblue"></rect> <g transform="translate(485,133)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> commonlisp</text></g></a> <a href="/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="500" y="75" opacity="0.5" width="34" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect> <g transform="translate(532,133)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> graphics</text></g></a> <g transform="translate(0,3)"> <line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line> <text fill="black" x="0" y="140" font-size="10" text-anchor="left"> 9 AM</text></g> <g transform="translate(82,3)"> <line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line> <text fill="black" x="0" y="140" font-size="10" text-anchor="left"> 10 AM</text></g> <g transform="translate(164,3)"> <line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line> <text fill="black" x="0" y="140" font-size="10" text-anchor="left"> 11 AM</text></g> <g transform="translate(247,3)"> <line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line> <text fill="black" x="0" y="140" font-size="10" text-anchor="left"> 12 PM</text></g> <g transform="translate(329,3)"> <line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line> <text fill="black" x="0" y="140" font-size="10" text-anchor="left"> 1 PM</text></g> <g transform="translate(411,3)"> <line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line> <text fill="black" x="0" y="140" font-size="10" text-anchor="left"> 2 PM</text></g> <g transform="translate(494,3)"> <line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line> <text fill="black" x="0" y="140" font-size="10" text-anchor="left"> 3 PM</text></g> <g transform="translate(576,3)"> <line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line> <text fill="black" x="0" y="140" font-size="10" text-anchor="left"> 4 PM</text></g> <g transform="translate(658,3)"> <line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line> <text fill="black" x="0" y="140" font-size="10" text-anchor="left"> 5 PM</text></g></svg>
</div>
[[!toc ]]
Format: 5-min talk ; Q&A: Etherpad <https://pad.emacsconf.org/2025-sat-open>
Etherpad: <https://pad.emacsconf.org/2025-sat-open>
Discuss on IRC: [#emacsconf-gen](https://chat.emacsconf.org/?join=emacsconf,emacsconf-gen)
-Status: Now playing on the conference livestream
+Status: Ready to stream
<div>Times in different time zones:</div><div class="times" start="2025-12-06T14:00:00Z" end="2025-12-06T14:10:00Z"><div class="conf-time">Saturday, Dec 6 2025, ~9:00 AM - 9:10 AM EST (US/Eastern)</div><div class="others"><div>which is the same as:</div>Saturday, Dec 6 2025, ~8:00 AM - 8:10 AM CST (US/Central)<br />Saturday, Dec 6 2025, ~7:00 AM - 7:10 AM MST (US/Mountain)<br />Saturday, Dec 6 2025, ~6:00 AM - 6:10 AM PST (US/Pacific)<br />Saturday, Dec 6 2025, ~2:00 PM - 2:10 PM UTC <br />Saturday, Dec 6 2025, ~3:00 PM - 3:10 PM CET (Europe/Paris)<br />Saturday, Dec 6 2025, ~4:00 PM - 4:10 PM EET (Europe/Athens)<br />Saturday, Dec 6 2025, ~7:30 PM - 7:40 PM IST (Asia/Kolkata)<br />Saturday, Dec 6 2025, ~10:00 PM - 10:10 PM +08 (Asia/Singapore)<br />Saturday, Dec 6 2025, ~11:00 PM - 11:10 PM JST (Asia/Tokyo)</div></div><div><strong><a href="/2025/watch/gen/">Find out how to watch and participate</a></strong></div>
-<div class="vid mainVideo"><video controls preload="none" id="mainVideo-sat-open"><source src="https://media.emacsconf.org/2025/emacsconf-2025-sat-open--saturday-opening-remarks--main.webm" />captions="""<track label="English" kind="captions" srclang="en" src="/2025/captions/emacsconf-2025-sat-open--saturday-opening-remarks--main.vtt" default />"""<track kind="chapters" label="Chapters" src="/2025/captions/emacsconf-2025-sat-open--saturday-opening-remarks--main--chapters.vtt" /><p><em>Your browser does not support the video tag. Please download the video instead.</em></p></video>[[!template id="chapters" vidid="mainVideo-sat-open" data="""
-00:00.000 Tracks
-00:16.000 Watching and participating
-01:00.607 Other schedule formats
-01:10.601 BigBlueButton
-01:46.036 On and off the stream
-02:03.217 Etherpad and IRC
-02:25.456 Etherpad
-02:59.440 IRC
-03:32.778 Captions
-03:55.238 status.emacsconf.org
-04:07.282 Guidelines for conduct
-04:16.020 Videos
-04:26.776 Let's get started!
-"""]]<div></div>Duration: 04:51 minutes<div class="files resources"><ul><li><a href="https://pad.emacsconf.org/2025-sat-open">Open Etherpad</a></li><li><a href="https://pad.emacsconf.org/2025-sat-open">Open public Q&A</a></li><li><a href="https://media.emacsconf.org/2025/emacsconf-2025-sat-open--saturday-opening-remarks--intro.vtt">Download --intro.vtt</a></li><li><a href="https://media.emacsconf.org/2025/emacsconf-2025-sat-open--saturday-opening-remarks--intro.webm">Download --intro.webm</a></li><li><a href="https://media.emacsconf.org/2025/emacsconf-2025-sat-open--saturday-opening-remarks--main--chapters.vtt">Download --main--chapters.vtt</a></li><li><a href="https://media.emacsconf.org/2025/emacsconf-2025-sat-open--saturday-opening-remarks--main.opus">Download --main.opus (2.5MB)</a></li><li><a href="https://media.emacsconf.org/2025/emacsconf-2025-sat-open--saturday-opening-remarks--main.vtt">Download --main.vtt</a> (unedited)</li><li><a href="https://media.emacsconf.org/2025/emacsconf-2025-sat-open--saturday-opening-remarks--main.webm">Download --main.webm (15MB)</a></li></ul></div></div>
# Description
<!-- End of emacsconf-publish-before-page --> \ No newline at end of file
diff --git a/2025/schedule-2025-12-06.md b/2025/schedule-2025-12-06.md
index 5ab5aae0..43ee2723 100644
--- a/2025/schedule-2025-12-06.md
+++ b/2025/schedule-2025-12-06.md
@@ -1 +1 @@
-<div class="schedule-svg-container"><svg width="800" height="150" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><title>Schedule for Saturday</title><rect width="800" height="150" x="0" y="0" fill="white"></rect><text font-size="10" fill="black" y="12" x="3">Saturday</text><a href="/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="peachpuff"></rect><g transform="translate(13,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sat-open</text></g></a><a href="/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="15" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(28,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">org-babel</text></g></a><a href="/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="47" y="15" opacity="0.8" width="39" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(84,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">reference</text></g></a><a href="/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="117" y="15" opacity="0.8" width="39" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(154,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">gmail</text></g></a><a href="/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="172" y="15" opacity="0.8" width="39" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(209,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">gnus</text></g></a><a href="/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="227" y="15" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(256,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">latex</text></g></a><a href="/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="376" y="15" opacity="0.8" width="39" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(413,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">calc</text></g></a><a href="/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="431" y="15" opacity="0.8" width="62" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(491,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">blee-lcnt</text></g></a><a href="/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="525" y="15" opacity="0.8" width="7" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(530,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">greader</text></g></a><a href="/2025/talks/open-mic" title="Open session" data-slug="open-mic"><title> 2:50- 3:40 Open session</title><rect x="549" y="15" opacity="0.8" width="78" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(625,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">open-mic</text></g></a><a href="/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="658" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(671,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sat-close</text></g></a><a href="/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="47" y="75" opacity="0.8" width="39" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(84,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">schemacs</text></g></a><a href="/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="117" y="75" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="5,5,5" fill="skyblue"></rect><g transform="translate(146,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">juicemacs</text></g></a><a href="/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="164" y="75" opacity="0.8" width="39" height="59" stroke="black" stroke-dasharray="5,5,5" fill="skyblue"></rect><g transform="translate(201,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">swanky</text></g></a><a href="/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="219" y="75" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(248,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">python</text></g></a><a href="/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="376" y="75" opacity="0.8" width="39" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(413,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">llm</text></g></a><a href="/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="447" y="75" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(476,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">private-ai</text></g></a><a href="/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="509" y="75" opacity="0.8" width="47" height="59" stroke="black" stroke-dasharray="5,5,5" fill="skyblue"></rect><g transform="translate(554,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">commonlisp</text></g></a><a href="/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="572" y="75" opacity="0.8" width="39" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(609,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">graphics</text></g></a><g transform="translate(0,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="140" font-size="10" text-anchor="left">9 AM</text></g><g transform="translate(94,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="140" font-size="10" text-anchor="left">10 AM</text></g><g transform="translate(188,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="140" font-size="10" text-anchor="left">11 AM</text></g><g transform="translate(282,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="140" font-size="10" text-anchor="left">12 PM</text></g><g transform="translate(376,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="140" font-size="10" text-anchor="left">1 PM</text></g><g transform="translate(470,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="140" font-size="10" text-anchor="left">2 PM</text></g><g transform="translate(564,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="140" font-size="10" text-anchor="left">3 PM</text></g><g transform="translate(658,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="140" font-size="10" text-anchor="left">4 PM</text></g><g transform="translate(752,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="140" font-size="10" text-anchor="left">5 PM</text></g></svg></div> \ No newline at end of file
+<div class="schedule-svg-container"><svg width="800" height="150" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> <title> Schedule for Saturday</title> <rect width="800" height="150" x="0" y="0" fill="white"></rect> <text font-size="10" fill="black" y="12" x="3"> Saturday</text> <a href="/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="peachpuff"></rect> <g transform="translate(13,73)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> sat-open</text></g></a> <a href="/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="15" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect> <g transform="translate(28,73)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> org-babel</text></g></a> <a href="/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="47" y="15" opacity="0.8" width="39" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect> <g transform="translate(84,73)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> reference</text></g></a> <a href="/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="117" y="15" opacity="0.8" width="39" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect> <g transform="translate(154,73)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> gmail</text></g></a> <a href="/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="172" y="15" opacity="0.8" width="39" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect> <g transform="translate(209,73)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> gnus</text></g></a> <a href="/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="227" y="15" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect> <g transform="translate(256,73)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> latex</text></g></a> <a href="/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="376" y="15" opacity="0.8" width="39" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect> <g transform="translate(413,73)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> calc</text></g></a> <a href="/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="431" y="15" opacity="0.8" width="62" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect> <g transform="translate(491,73)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> blee-lcnt</text></g></a> <a href="/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="525" y="15" opacity="0.8" width="7" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect> <g transform="translate(530,73)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> greader</text></g></a> <a href="/2025/talks/open-mic" title="Open session" data-slug="open-mic"> <title> 2:50- 3:40 Open session</title> <rect x="549" y="15" opacity="0.8" width="78" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect> <g transform="translate(625,73)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> open-mic</text></g></a> <a href="/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="658" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect> <g transform="translate(671,73)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> sat-close</text></g></a> <a href="/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="47" y="75" opacity="0.8" width="39" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect> <g transform="translate(84,133)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> schemacs</text></g></a> <a href="/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="117" y="75" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="5,5,5" fill="skyblue"></rect> <g transform="translate(146,133)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> juicemacs</text></g></a> <a href="/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="164" y="75" opacity="0.8" width="39" height="59" stroke="black" stroke-dasharray="5,5,5" fill="skyblue"></rect> <g transform="translate(201,133)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> swanky</text></g></a> <a href="/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="219" y="75" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect> <g transform="translate(248,133)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> python</text></g></a> <a href="/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="376" y="75" opacity="0.8" width="39" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect> <g transform="translate(413,133)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> llm</text></g></a> <a href="/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="447" y="75" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect> <g transform="translate(476,133)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> private-ai</text></g></a> <a href="/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="509" y="75" opacity="0.8" width="47" height="59" stroke="black" stroke-dasharray="5,5,5" fill="skyblue"></rect> <g transform="translate(554,133)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> commonlisp</text></g></a> <a href="/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="572" y="75" opacity="0.8" width="39" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect> <g transform="translate(609,133)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> graphics</text></g></a> <g transform="translate(0,3)"> <line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line> <text fill="black" x="0" y="140" font-size="10" text-anchor="left"> 9 AM</text></g> <g transform="translate(94,3)"> <line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line> <text fill="black" x="0" y="140" font-size="10" text-anchor="left"> 10 AM</text></g> <g transform="translate(188,3)"> <line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line> <text fill="black" x="0" y="140" font-size="10" text-anchor="left"> 11 AM</text></g> <g transform="translate(282,3)"> <line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line> <text fill="black" x="0" y="140" font-size="10" text-anchor="left"> 12 PM</text></g> <g transform="translate(376,3)"> <line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line> <text fill="black" x="0" y="140" font-size="10" text-anchor="left"> 1 PM</text></g> <g transform="translate(470,3)"> <line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line> <text fill="black" x="0" y="140" font-size="10" text-anchor="left"> 2 PM</text></g> <g transform="translate(564,3)"> <line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line> <text fill="black" x="0" y="140" font-size="10" text-anchor="left"> 3 PM</text></g> <g transform="translate(658,3)"> <line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line> <text fill="black" x="0" y="140" font-size="10" text-anchor="left"> 4 PM</text></g> <g transform="translate(752,3)"> <line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line> <text fill="black" x="0" y="140" font-size="10" text-anchor="left"> 5 PM</text></g></svg></div> \ No newline at end of file
diff --git a/2025/schedule-2025-12-07.md b/2025/schedule-2025-12-07.md
index 59f5ab8e..eaa1b11a 100644
--- a/2025/schedule-2025-12-07.md
+++ b/2025/schedule-2025-12-07.md
@@ -1 +1 @@
-<div class="schedule-svg-container"><svg width="800" height="150" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><title>Schedule for Sunday</title><rect width="800" height="150" x="0" y="0" fill="white"></rect><text font-size="10" fill="black" y="12" x="3">Sunday</text><a href="/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="peachpuff"></rect><g transform="translate(13,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sun-open</text></g></a><a href="/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="15" y="15" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(44,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">modern</text></g></a><a href="/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="62" y="15" opacity="0.8" width="54" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(114,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">reader</text></g></a><a href="/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="149" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(162,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">weights</text></g></a><a href="/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="196" y="15" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(225,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">completion</text></g></a><a href="/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="376" y="15" opacity="0.8" width="39" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(413,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">zettelkasten</text></g></a><a href="/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="447" y="15" opacity="0.8" width="47" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(492,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">hyperboleqa</text></g></a><a href="/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="494" y="15" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(523,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">gardening</text></g></a><a href="/2025/talks/bookclub-tapas" title="Bookclub tapas" data-slug="bookclub-tapas"><title> 2:45- 3:20 Bookclub tapas</title><rect x="541" y="15" opacity="0.8" width="54" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(593,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">bookclub-tapas</text></g></a><a href="/2025/talks/sun-close" title="Sunday closing remarks" data-slug="sun-close"><title> 3:40- 3:50 Sunday closing remarks</title><rect x="627" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(640,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sun-close</text></g></a><g transform="translate(0,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="140" font-size="10" text-anchor="left">9 AM</text></g><g transform="translate(94,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="140" font-size="10" text-anchor="left">10 AM</text></g><g transform="translate(188,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="140" font-size="10" text-anchor="left">11 AM</text></g><g transform="translate(282,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="140" font-size="10" text-anchor="left">12 PM</text></g><g transform="translate(376,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="140" font-size="10" text-anchor="left">1 PM</text></g><g transform="translate(470,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="140" font-size="10" text-anchor="left">2 PM</text></g><g transform="translate(564,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="140" font-size="10" text-anchor="left">3 PM</text></g><g transform="translate(658,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="140" font-size="10" text-anchor="left">4 PM</text></g><g transform="translate(752,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="140" font-size="10" text-anchor="left">5 PM</text></g></svg></div> \ No newline at end of file
+<div class="schedule-svg-container"><svg width="800" height="150" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> <title> Schedule for Sunday</title> <rect width="800" height="150" x="0" y="0" fill="white"></rect> <text font-size="10" fill="black" y="12" x="3"> Sunday</text> <a href="/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="peachpuff"></rect> <g transform="translate(13,73)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> sun-open</text></g></a> <a href="/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="15" y="15" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect> <g transform="translate(44,73)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> modern</text></g></a> <a href="/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="62" y="15" opacity="0.8" width="54" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect> <g transform="translate(114,73)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> reader</text></g></a> <a href="/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="149" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect> <g transform="translate(162,73)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> weights</text></g></a> <a href="/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="196" y="15" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect> <g transform="translate(225,73)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> completion</text></g></a> <a href="/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="376" y="15" opacity="0.8" width="39" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect> <g transform="translate(413,73)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> zettelkasten</text></g></a> <a href="/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="447" y="15" opacity="0.8" width="47" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect> <g transform="translate(492,73)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> hyperboleqa</text></g></a> <a href="/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="494" y="15" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect> <g transform="translate(523,73)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> gardening</text></g></a> <a href="/2025/talks/bookclub-tapas" title="Bookclub tapas" data-slug="bookclub-tapas"> <title> 2:45- 3:20 Bookclub tapas</title> <rect x="541" y="15" opacity="0.8" width="54" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect> <g transform="translate(593,73)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> bookclub-tapas</text></g></a> <a href="/2025/talks/sun-close" title="Sunday closing remarks" data-slug="sun-close"> <title> 3:40- 3:50 Sunday closing remarks</title> <rect x="627" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect> <g transform="translate(640,73)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> sun-close</text></g></a> <g transform="translate(0,3)"> <line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line> <text fill="black" x="0" y="140" font-size="10" text-anchor="left"> 9 AM</text></g> <g transform="translate(94,3)"> <line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line> <text fill="black" x="0" y="140" font-size="10" text-anchor="left"> 10 AM</text></g> <g transform="translate(188,3)"> <line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line> <text fill="black" x="0" y="140" font-size="10" text-anchor="left"> 11 AM</text></g> <g transform="translate(282,3)"> <line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line> <text fill="black" x="0" y="140" font-size="10" text-anchor="left"> 12 PM</text></g> <g transform="translate(376,3)"> <line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line> <text fill="black" x="0" y="140" font-size="10" text-anchor="left"> 1 PM</text></g> <g transform="translate(470,3)"> <line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line> <text fill="black" x="0" y="140" font-size="10" text-anchor="left"> 2 PM</text></g> <g transform="translate(564,3)"> <line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line> <text fill="black" x="0" y="140" font-size="10" text-anchor="left"> 3 PM</text></g> <g transform="translate(658,3)"> <line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line> <text fill="black" x="0" y="140" font-size="10" text-anchor="left"> 4 PM</text></g> <g transform="translate(752,3)"> <line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line> <text fill="black" x="0" y="140" font-size="10" text-anchor="left"> 5 PM</text></g></svg></div> \ No newline at end of file
diff --git a/2025/schedule-image.md b/2025/schedule-image.md
index e0679b21..5b18b54d 100644
--- a/2025/schedule-image.md
+++ b/2025/schedule-image.md
@@ -1 +1 @@
-<div class="schedule-svg-container"><svg width="800" height="300" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><title>Graphical view of the schedule</title><g transform="translate(0,0)"><title>Schedule for Saturday</title><rect width="800" height="150" x="0" y="0" fill="white"></rect><text font-size="10" fill="black" y="12" x="3">Saturday</text><a href="/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="peachpuff"></rect><g transform="translate(13,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sat-open</text></g></a><a href="/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="15" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(28,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">org-babel</text></g></a><a href="/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="47" y="15" opacity="0.8" width="39" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(84,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">reference</text></g></a><a href="/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="117" y="15" opacity="0.8" width="39" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(154,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">gmail</text></g></a><a href="/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="172" y="15" opacity="0.8" width="39" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(209,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">gnus</text></g></a><a href="/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="227" y="15" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(256,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">latex</text></g></a><a href="/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="376" y="15" opacity="0.8" width="39" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(413,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">calc</text></g></a><a href="/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="431" y="15" opacity="0.8" width="62" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(491,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">blee-lcnt</text></g></a><a href="/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="525" y="15" opacity="0.8" width="7" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(530,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">greader</text></g></a><a href="/2025/talks/open-mic" title="Open session" data-slug="open-mic"><title> 2:50- 3:40 Open session</title><rect x="549" y="15" opacity="0.8" width="78" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(625,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">open-mic</text></g></a><a href="/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="658" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(671,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sat-close</text></g></a><a href="/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="47" y="75" opacity="0.8" width="39" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(84,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">schemacs</text></g></a><a href="/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="117" y="75" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="5,5,5" fill="skyblue"></rect><g transform="translate(146,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">juicemacs</text></g></a><a href="/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="164" y="75" opacity="0.8" width="39" height="59" stroke="black" stroke-dasharray="5,5,5" fill="skyblue"></rect><g transform="translate(201,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">swanky</text></g></a><a href="/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="219" y="75" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(248,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">python</text></g></a><a href="/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="376" y="75" opacity="0.8" width="39" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(413,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">llm</text></g></a><a href="/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="447" y="75" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(476,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">private-ai</text></g></a><a href="/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="509" y="75" opacity="0.8" width="47" height="59" stroke="black" stroke-dasharray="5,5,5" fill="skyblue"></rect><g transform="translate(554,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">commonlisp</text></g></a><a href="/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="572" y="75" opacity="0.8" width="39" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(609,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">graphics</text></g></a><g transform="translate(0,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="140" font-size="10" text-anchor="left">9 AM</text></g><g transform="translate(94,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="140" font-size="10" text-anchor="left">10 AM</text></g><g transform="translate(188,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="140" font-size="10" text-anchor="left">11 AM</text></g><g transform="translate(282,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="140" font-size="10" text-anchor="left">12 PM</text></g><g transform="translate(376,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="140" font-size="10" text-anchor="left">1 PM</text></g><g transform="translate(470,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="140" font-size="10" text-anchor="left">2 PM</text></g><g transform="translate(564,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="140" font-size="10" text-anchor="left">3 PM</text></g><g transform="translate(658,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="140" font-size="10" text-anchor="left">4 PM</text></g><g transform="translate(752,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="140" 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="/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="peachpuff"></rect><g transform="translate(13,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sun-open</text></g></a><a href="/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="15" y="15" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(44,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">modern</text></g></a><a href="/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="62" y="15" opacity="0.8" width="54" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(114,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">reader</text></g></a><a href="/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="149" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(162,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">weights</text></g></a><a href="/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="196" y="15" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(225,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">completion</text></g></a><a href="/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="376" y="15" opacity="0.8" width="39" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(413,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">zettelkasten</text></g></a><a href="/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="447" y="15" opacity="0.8" width="47" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(492,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">hyperboleqa</text></g></a><a href="/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="494" y="15" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(523,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">gardening</text></g></a><a href="/2025/talks/bookclub-tapas" title="Bookclub tapas" data-slug="bookclub-tapas"><title> 2:45- 3:20 Bookclub tapas</title><rect x="541" y="15" opacity="0.8" width="54" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(593,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">bookclub-tapas</text></g></a><a href="/2025/talks/sun-close" title="Sunday closing remarks" data-slug="sun-close"><title> 3:40- 3:50 Sunday closing remarks</title><rect x="627" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(640,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sun-close</text></g></a><g transform="translate(0,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="140" font-size="10" text-anchor="left">9 AM</text></g><g transform="translate(94,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="140" font-size="10" text-anchor="left">10 AM</text></g><g transform="translate(188,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="140" font-size="10" text-anchor="left">11 AM</text></g><g transform="translate(282,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="140" font-size="10" text-anchor="left">12 PM</text></g><g transform="translate(376,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="140" font-size="10" text-anchor="left">1 PM</text></g><g transform="translate(470,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="140" font-size="10" text-anchor="left">2 PM</text></g><g transform="translate(564,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="140" font-size="10" text-anchor="left">3 PM</text></g><g transform="translate(658,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="140" font-size="10" text-anchor="left">4 PM</text></g><g transform="translate(752,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="140" font-size="10" text-anchor="left">5 PM</text></g></g></svg></div> \ No newline at end of file
+<div class="schedule-svg-container"><svg width="800" height="300" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> <title> Graphical view of the schedule</title> <g transform="translate(0,0)"> <title> Schedule for Saturday</title> <rect width="800" height="150" x="0" y="0" fill="white"></rect> <text font-size="10" fill="black" y="12" x="3"> Saturday</text> <a href="/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="peachpuff"></rect> <g transform="translate(13,73)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> sat-open</text></g></a> <a href="/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="15" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect> <g transform="translate(28,73)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> org-babel</text></g></a> <a href="/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="47" y="15" opacity="0.8" width="39" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect> <g transform="translate(84,73)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> reference</text></g></a> <a href="/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="117" y="15" opacity="0.8" width="39" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect> <g transform="translate(154,73)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> gmail</text></g></a> <a href="/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="172" y="15" opacity="0.8" width="39" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect> <g transform="translate(209,73)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> gnus</text></g></a> <a href="/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="227" y="15" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect> <g transform="translate(256,73)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> latex</text></g></a> <a href="/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="376" y="15" opacity="0.8" width="39" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect> <g transform="translate(413,73)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> calc</text></g></a> <a href="/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="431" y="15" opacity="0.8" width="62" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect> <g transform="translate(491,73)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> blee-lcnt</text></g></a> <a href="/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="525" y="15" opacity="0.8" width="7" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect> <g transform="translate(530,73)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> greader</text></g></a> <a href="/2025/talks/open-mic" title="Open session" data-slug="open-mic"> <title> 2:50- 3:40 Open session</title> <rect x="549" y="15" opacity="0.8" width="78" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect> <g transform="translate(625,73)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> open-mic</text></g></a> <a href="/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="658" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect> <g transform="translate(671,73)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> sat-close</text></g></a> <a href="/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="47" y="75" opacity="0.8" width="39" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect> <g transform="translate(84,133)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> schemacs</text></g></a> <a href="/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="117" y="75" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="5,5,5" fill="skyblue"></rect> <g transform="translate(146,133)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> juicemacs</text></g></a> <a href="/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="164" y="75" opacity="0.8" width="39" height="59" stroke="black" stroke-dasharray="5,5,5" fill="skyblue"></rect> <g transform="translate(201,133)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> swanky</text></g></a> <a href="/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="219" y="75" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect> <g transform="translate(248,133)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> python</text></g></a> <a href="/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="376" y="75" opacity="0.8" width="39" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect> <g transform="translate(413,133)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> llm</text></g></a> <a href="/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="447" y="75" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect> <g transform="translate(476,133)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> private-ai</text></g></a> <a href="/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="509" y="75" opacity="0.8" width="47" height="59" stroke="black" stroke-dasharray="5,5,5" fill="skyblue"></rect> <g transform="translate(554,133)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> commonlisp</text></g></a> <a href="/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="572" y="75" opacity="0.8" width="39" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect> <g transform="translate(609,133)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> graphics</text></g></a> <g transform="translate(0,3)"> <line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line> <text fill="black" x="0" y="140" font-size="10" text-anchor="left"> 9 AM</text></g> <g transform="translate(94,3)"> <line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line> <text fill="black" x="0" y="140" font-size="10" text-anchor="left"> 10 AM</text></g> <g transform="translate(188,3)"> <line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line> <text fill="black" x="0" y="140" font-size="10" text-anchor="left"> 11 AM</text></g> <g transform="translate(282,3)"> <line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line> <text fill="black" x="0" y="140" font-size="10" text-anchor="left"> 12 PM</text></g> <g transform="translate(376,3)"> <line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line> <text fill="black" x="0" y="140" font-size="10" text-anchor="left"> 1 PM</text></g> <g transform="translate(470,3)"> <line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line> <text fill="black" x="0" y="140" font-size="10" text-anchor="left"> 2 PM</text></g> <g transform="translate(564,3)"> <line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line> <text fill="black" x="0" y="140" font-size="10" text-anchor="left"> 3 PM</text></g> <g transform="translate(658,3)"> <line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line> <text fill="black" x="0" y="140" font-size="10" text-anchor="left"> 4 PM</text></g> <g transform="translate(752,3)"> <line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line> <text fill="black" x="0" y="140" 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="/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="peachpuff"></rect> <g transform="translate(13,73)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> sun-open</text></g></a> <a href="/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="15" y="15" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect> <g transform="translate(44,73)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> modern</text></g></a> <a href="/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="62" y="15" opacity="0.8" width="54" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect> <g transform="translate(114,73)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> reader</text></g></a> <a href="/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="149" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect> <g transform="translate(162,73)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> weights</text></g></a> <a href="/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="196" y="15" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect> <g transform="translate(225,73)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> completion</text></g></a> <a href="/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="376" y="15" opacity="0.8" width="39" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect> <g transform="translate(413,73)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> zettelkasten</text></g></a> <a href="/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="447" y="15" opacity="0.8" width="47" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect> <g transform="translate(492,73)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> hyperboleqa</text></g></a> <a href="/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="494" y="15" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect> <g transform="translate(523,73)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> gardening</text></g></a> <a href="/2025/talks/bookclub-tapas" title="Bookclub tapas" data-slug="bookclub-tapas"> <title> 2:45- 3:20 Bookclub tapas</title> <rect x="541" y="15" opacity="0.8" width="54" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect> <g transform="translate(593,73)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> bookclub-tapas</text></g></a> <a href="/2025/talks/sun-close" title="Sunday closing remarks" data-slug="sun-close"> <title> 3:40- 3:50 Sunday closing remarks</title> <rect x="627" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect> <g transform="translate(640,73)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> sun-close</text></g></a> <g transform="translate(0,3)"> <line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line> <text fill="black" x="0" y="140" font-size="10" text-anchor="left"> 9 AM</text></g> <g transform="translate(94,3)"> <line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line> <text fill="black" x="0" y="140" font-size="10" text-anchor="left"> 10 AM</text></g> <g transform="translate(188,3)"> <line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line> <text fill="black" x="0" y="140" font-size="10" text-anchor="left"> 11 AM</text></g> <g transform="translate(282,3)"> <line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line> <text fill="black" x="0" y="140" font-size="10" text-anchor="left"> 12 PM</text></g> <g transform="translate(376,3)"> <line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line> <text fill="black" x="0" y="140" font-size="10" text-anchor="left"> 1 PM</text></g> <g transform="translate(470,3)"> <line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line> <text fill="black" x="0" y="140" font-size="10" text-anchor="left"> 2 PM</text></g> <g transform="translate(564,3)"> <line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line> <text fill="black" x="0" y="140" font-size="10" text-anchor="left"> 3 PM</text></g> <g transform="translate(658,3)"> <line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line> <text fill="black" x="0" y="140" font-size="10" text-anchor="left"> 4 PM</text></g> <g transform="translate(752,3)"> <line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line> <text fill="black" x="0" y="140" font-size="10" text-anchor="left"> 5 PM</text></g></g></svg></div> \ No newline at end of file