summaryrefslogtreecommitdiffstats
path: root/2025
diff options
context:
space:
mode:
authorSacha Chua <sacha@sachachua.com>2025-11-11 13:16:52 -0500
committerSacha Chua <sacha@sachachua.com>2025-11-11 13:16:52 -0500
commit68c00c70f460dae7935f0e7491b9ef5399280ed7 (patch)
tree338472a4b7bde497c27f82ddcd2f85d4660a8311 /2025
parent98363e19f1054ac16081558a9968c0080e40e3b4 (diff)
downloademacsconf-wiki-68c00c70f460dae7935f0e7491b9ef5399280ed7.tar.xz
emacsconf-wiki-68c00c70f460dae7935f0e7491b9ef5399280ed7.zip
cancel n-angulator
Diffstat (limited to '')
-rw-r--r--2025/info/authoring-before.md2
-rw-r--r--2025/info/bibliography-before.md2
-rw-r--r--2025/info/blee-lcnt-before.md2
-rw-r--r--2025/info/calc-before.md2
-rw-r--r--2025/info/claude-code-before.md2
-rw-r--r--2025/info/commonlisp-before.md2
-rw-r--r--2025/info/gmail-before.md2
-rw-r--r--2025/info/greader-before.md2
-rw-r--r--2025/info/greader-nav.md2
-rw-r--r--2025/info/juicemacs-before.md2
-rw-r--r--2025/info/languages-before.md2
-rw-r--r--2025/info/latex-before.md2
-rw-r--r--2025/info/llm-before.md2
-rw-r--r--2025/info/n-angulator-before.md11
-rw-r--r--2025/info/n-angulator-nav.md5
-rw-r--r--2025/info/org-babel-before.md4
-rw-r--r--2025/info/private-ai-before.md2
-rw-r--r--2025/info/python-before.md4
-rw-r--r--2025/info/reference-before.md2
-rw-r--r--2025/info/sat-close-before.md4
-rw-r--r--2025/info/sat-close-nav.md2
-rw-r--r--2025/info/sat-open-before.md2
-rw-r--r--2025/info/schemacs-before.md2
-rw-r--r--2025/info/swanky-before.md2
-rw-r--r--2025/organizers-notebook.md33
-rw-r--r--2025/organizers-notebook/index.org9
-rw-r--r--2025/organizers-notebook/schedule.svg2
-rw-r--r--2025/schedule-2025-12-06.md2
-rw-r--r--2025/schedule-details.md8
-rw-r--r--2025/schedule-image.md2
-rw-r--r--2025/talks/greader.md2
31 files changed, 61 insertions, 63 deletions
diff --git a/2025/info/authoring-before.md b/2025/info/authoring-before.md
index e31199f8..a56db4cb 100644
--- a/2025/info/authoring-before.md
+++ b/2025/info/authoring-before.md
@@ -1,7 +1,7 @@
<!-- 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="authoring">
-<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 x="0" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(11,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sat-open</text></g></a><a href="/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:50 Emacs as a fully-fledged reference manager</title><rect x="41" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(66,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:10-10:30 org-gmail: A deep integration of Gmail into your Org Mode</title><rect x="96" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(121,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">gmail</text></g></a><a href="/2025/talks/languages" title="Studying foreign languages with Emacs, Org Mode and gptel" data-slug="languages"><title>10:40-10:50 Studying foreign languages with Emacs, Org Mode and gptel</title><rect x="137" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(148,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">languages</text></g></a><a href="/2025/talks/latex" title="LaTeX export in org-mode: the overhaul" data-slug="latex"><title>11:10-11:30 LaTeX export in org-mode: the overhaul</title><rect x="178" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(203,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">latex</text></g></a><a href="/2025/talks/bibliography" title="An enhanced bibliography in org-mode for scientific research and self-directed learning" data-slug="bibliography"><title> 1:00- 1:20 An enhanced bibliography in org-mode for scientific research and self-directed learning</title><rect x="329" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(354,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">bibliography</text></g></a><a href="/2025/talks/calc" title="Basic Calc functionality for engineering or electronics" data-slug="calc"><title> 1:40- 1:50 Basic Calc functionality for engineering or electronics</title><rect x="384" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(395,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">calc</text></g></a><a href="/2025/talks/authoring" title="How Emacs became my authoring playground—no Lisp required" data-slug="authoring"><title> 2:00- 2:10 How Emacs became my authoring playground—no Lisp required</title><rect stroke-width="3" x="411" y="15" opacity="0.8" width="13" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(422,73)"><text font-weight="bold" fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">authoring</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> 2:30- 2:50 Blee-LCNT: An Emacs-centered content production and self-publication framework</title><rect x="452" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(477,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> 3:10- 3:20 GNU Emacs Greader (Gnamù Reader) mode is the best Emacs mode in existence</title><rect x="507" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(518,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">greader</text></g></a><a href="/2025/talks/n-angulator" title="Org-mode GTD vs N-angulator GTD" data-slug="n-angulator"><title> 3:30- 3:40 Org-mode GTD vs N-angulator GTD</title><rect x="535" y="15" opacity="0.5" width="13" 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)">n-angulator</text></g></a><a href="/2025/talks/sat-close" title="Saturday closing remarks" data-slug="sat-close"><title> 4:00- 4:10 Saturday closing remarks</title><rect x="576" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(587,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">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:45 One year progress update Schemacs (formerly Gypsum)</title><rect x="41" y="75" opacity="0.5" width="20" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(59,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:05-10:25 Juicemacs: Exploring Speculative JIT Compilation for ELisp in Java</title><rect x="89" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="5,5,5" fill="skyblue"></rect><g transform="translate(114,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:35-10:55 Swanky Python: Interactive development for Python</title><rect x="130" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="5,5,5" fill="skyblue"></rect><g transform="translate(155,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:05-11:25 Interactive Python programming in Emacs</title><rect x="171" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(196,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:20 Emacs, editors, and LLM driven workflows</title><rect x="329" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(354,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">llm</text></g></a><a href="/2025/talks/claude-code" title="emacs-claude-code: Intelligent Claude Integration for Emacs" data-slug="claude-code"><title> 1:40- 2:00 emacs-claude-code: Intelligent Claude Integration for Emacs</title><rect x="384" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="5,5,5" fill="skyblue"></rect><g transform="translate(409,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">claude-code</text></g></a><a href="/2025/talks/private-ai" title="Emacs and private AI: a great match" data-slug="private-ai"><title> 2:10- 2:30 Emacs and private AI: a great match</title><rect x="425" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(450,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:50- 3:10 Common Lisp images communicating like-a-human through shared Emacs slime and eev</title><rect x="480" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="5,5,5" fill="skyblue"></rect><g transform="translate(505,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">commonlisp</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 x="0" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(11,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sat-open</text></g></a><a href="/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:50 Emacs as a fully-fledged reference manager</title><rect x="41" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(66,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:10-10:30 org-gmail: A deep integration of Gmail into your Org Mode</title><rect x="96" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(121,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">gmail</text></g></a><a href="/2025/talks/languages" title="Studying foreign languages with Emacs, Org Mode and gptel" data-slug="languages"><title>10:40-10:50 Studying foreign languages with Emacs, Org Mode and gptel</title><rect x="137" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(148,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">languages</text></g></a><a href="/2025/talks/latex" title="LaTeX export in org-mode: the overhaul" data-slug="latex"><title>11:10-11:30 LaTeX export in org-mode: the overhaul</title><rect x="178" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(203,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">latex</text></g></a><a href="/2025/talks/bibliography" title="An enhanced bibliography in org-mode for scientific research and self-directed learning" data-slug="bibliography"><title> 1:00- 1:20 An enhanced bibliography in org-mode for scientific research and self-directed learning</title><rect x="329" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(354,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">bibliography</text></g></a><a href="/2025/talks/calc" title="Basic Calc functionality for engineering or electronics" data-slug="calc"><title> 1:40- 1:50 Basic Calc functionality for engineering or electronics</title><rect x="384" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(395,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">calc</text></g></a><a href="/2025/talks/authoring" title="How Emacs became my authoring playground—no Lisp required" data-slug="authoring"><title> 2:00- 2:10 How Emacs became my authoring playground—no Lisp required</title><rect stroke-width="3" x="411" y="15" opacity="0.8" width="13" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(422,73)"><text font-weight="bold" fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">authoring</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> 2:30- 2:50 Blee-LCNT: An Emacs-centered content production and self-publication framework</title><rect x="452" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(477,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> 3:10- 3:20 GNU Emacs Greader (Gnamù Reader) mode is the best Emacs mode in existence</title><rect x="507" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(518,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">greader</text></g></a><a href="/2025/talks/sat-close" title="Saturday closing remarks" data-slug="sat-close"><title> 3:30- 3:40 Saturday closing remarks</title><rect x="535" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(546,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">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:45 One year progress update Schemacs (formerly Gypsum)</title><rect x="41" y="75" opacity="0.5" width="20" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(59,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:05-10:25 Juicemacs: Exploring Speculative JIT Compilation for ELisp in Java</title><rect x="89" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="5,5,5" fill="skyblue"></rect><g transform="translate(114,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:35-10:55 Swanky Python: Interactive development for Python</title><rect x="130" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="5,5,5" fill="skyblue"></rect><g transform="translate(155,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:05-11:25 Interactive Python programming in Emacs</title><rect x="171" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(196,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:20 Emacs, editors, and LLM driven workflows</title><rect x="329" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(354,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">llm</text></g></a><a href="/2025/talks/claude-code" title="emacs-claude-code: Intelligent Claude Integration for Emacs" data-slug="claude-code"><title> 1:40- 2:00 emacs-claude-code: Intelligent Claude Integration for Emacs</title><rect x="384" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="5,5,5" fill="skyblue"></rect><g transform="translate(409,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">claude-code</text></g></a><a href="/2025/talks/private-ai" title="Emacs and private AI: a great match" data-slug="private-ai"><title> 2:10- 2:30 Emacs and private AI: a great match</title><rect x="425" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(450,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:50- 3:10 Common Lisp images communicating like-a-human through shared Emacs slime and eev</title><rect x="480" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="5,5,5" fill="skyblue"></rect><g transform="translate(505,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">commonlisp</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 ]]
diff --git a/2025/info/bibliography-before.md b/2025/info/bibliography-before.md
index 172f5359..c126f9a7 100644
--- a/2025/info/bibliography-before.md
+++ b/2025/info/bibliography-before.md
@@ -1,7 +1,7 @@
<!-- 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="bibliography">
-<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 x="0" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(11,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sat-open</text></g></a><a href="/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:50 Emacs as a fully-fledged reference manager</title><rect x="41" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(66,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:10-10:30 org-gmail: A deep integration of Gmail into your Org Mode</title><rect x="96" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(121,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">gmail</text></g></a><a href="/2025/talks/languages" title="Studying foreign languages with Emacs, Org Mode and gptel" data-slug="languages"><title>10:40-10:50 Studying foreign languages with Emacs, Org Mode and gptel</title><rect x="137" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(148,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">languages</text></g></a><a href="/2025/talks/latex" title="LaTeX export in org-mode: the overhaul" data-slug="latex"><title>11:10-11:30 LaTeX export in org-mode: the overhaul</title><rect x="178" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(203,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">latex</text></g></a><a href="/2025/talks/bibliography" title="An enhanced bibliography in org-mode for scientific research and self-directed learning" data-slug="bibliography"><title> 1:00- 1:20 An enhanced bibliography in org-mode for scientific research and self-directed learning</title><rect stroke-width="3" x="329" y="15" opacity="0.8" width="27" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(354,73)"><text font-weight="bold" fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">bibliography</text></g></a><a href="/2025/talks/calc" title="Basic Calc functionality for engineering or electronics" data-slug="calc"><title> 1:40- 1:50 Basic Calc functionality for engineering or electronics</title><rect x="384" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(395,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">calc</text></g></a><a href="/2025/talks/authoring" title="How Emacs became my authoring playground—no Lisp required" data-slug="authoring"><title> 2:00- 2:10 How Emacs became my authoring playground—no Lisp required</title><rect x="411" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(422,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">authoring</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> 2:30- 2:50 Blee-LCNT: An Emacs-centered content production and self-publication framework</title><rect x="452" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(477,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> 3:10- 3:20 GNU Emacs Greader (Gnamù Reader) mode is the best Emacs mode in existence</title><rect x="507" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(518,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">greader</text></g></a><a href="/2025/talks/n-angulator" title="Org-mode GTD vs N-angulator GTD" data-slug="n-angulator"><title> 3:30- 3:40 Org-mode GTD vs N-angulator GTD</title><rect x="535" y="15" opacity="0.5" width="13" 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)">n-angulator</text></g></a><a href="/2025/talks/sat-close" title="Saturday closing remarks" data-slug="sat-close"><title> 4:00- 4:10 Saturday closing remarks</title><rect x="576" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(587,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">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:45 One year progress update Schemacs (formerly Gypsum)</title><rect x="41" y="75" opacity="0.5" width="20" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(59,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:05-10:25 Juicemacs: Exploring Speculative JIT Compilation for ELisp in Java</title><rect x="89" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="5,5,5" fill="skyblue"></rect><g transform="translate(114,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:35-10:55 Swanky Python: Interactive development for Python</title><rect x="130" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="5,5,5" fill="skyblue"></rect><g transform="translate(155,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:05-11:25 Interactive Python programming in Emacs</title><rect x="171" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(196,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:20 Emacs, editors, and LLM driven workflows</title><rect x="329" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(354,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">llm</text></g></a><a href="/2025/talks/claude-code" title="emacs-claude-code: Intelligent Claude Integration for Emacs" data-slug="claude-code"><title> 1:40- 2:00 emacs-claude-code: Intelligent Claude Integration for Emacs</title><rect x="384" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="5,5,5" fill="skyblue"></rect><g transform="translate(409,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">claude-code</text></g></a><a href="/2025/talks/private-ai" title="Emacs and private AI: a great match" data-slug="private-ai"><title> 2:10- 2:30 Emacs and private AI: a great match</title><rect x="425" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(450,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:50- 3:10 Common Lisp images communicating like-a-human through shared Emacs slime and eev</title><rect x="480" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="5,5,5" fill="skyblue"></rect><g transform="translate(505,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">commonlisp</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 x="0" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(11,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sat-open</text></g></a><a href="/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:50 Emacs as a fully-fledged reference manager</title><rect x="41" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(66,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:10-10:30 org-gmail: A deep integration of Gmail into your Org Mode</title><rect x="96" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(121,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">gmail</text></g></a><a href="/2025/talks/languages" title="Studying foreign languages with Emacs, Org Mode and gptel" data-slug="languages"><title>10:40-10:50 Studying foreign languages with Emacs, Org Mode and gptel</title><rect x="137" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(148,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">languages</text></g></a><a href="/2025/talks/latex" title="LaTeX export in org-mode: the overhaul" data-slug="latex"><title>11:10-11:30 LaTeX export in org-mode: the overhaul</title><rect x="178" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(203,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">latex</text></g></a><a href="/2025/talks/bibliography" title="An enhanced bibliography in org-mode for scientific research and self-directed learning" data-slug="bibliography"><title> 1:00- 1:20 An enhanced bibliography in org-mode for scientific research and self-directed learning</title><rect stroke-width="3" x="329" y="15" opacity="0.8" width="27" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(354,73)"><text font-weight="bold" fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">bibliography</text></g></a><a href="/2025/talks/calc" title="Basic Calc functionality for engineering or electronics" data-slug="calc"><title> 1:40- 1:50 Basic Calc functionality for engineering or electronics</title><rect x="384" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(395,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">calc</text></g></a><a href="/2025/talks/authoring" title="How Emacs became my authoring playground—no Lisp required" data-slug="authoring"><title> 2:00- 2:10 How Emacs became my authoring playground—no Lisp required</title><rect x="411" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(422,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">authoring</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> 2:30- 2:50 Blee-LCNT: An Emacs-centered content production and self-publication framework</title><rect x="452" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(477,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> 3:10- 3:20 GNU Emacs Greader (Gnamù Reader) mode is the best Emacs mode in existence</title><rect x="507" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(518,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">greader</text></g></a><a href="/2025/talks/sat-close" title="Saturday closing remarks" data-slug="sat-close"><title> 3:30- 3:40 Saturday closing remarks</title><rect x="535" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(546,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">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:45 One year progress update Schemacs (formerly Gypsum)</title><rect x="41" y="75" opacity="0.5" width="20" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(59,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:05-10:25 Juicemacs: Exploring Speculative JIT Compilation for ELisp in Java</title><rect x="89" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="5,5,5" fill="skyblue"></rect><g transform="translate(114,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:35-10:55 Swanky Python: Interactive development for Python</title><rect x="130" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="5,5,5" fill="skyblue"></rect><g transform="translate(155,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:05-11:25 Interactive Python programming in Emacs</title><rect x="171" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(196,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:20 Emacs, editors, and LLM driven workflows</title><rect x="329" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(354,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">llm</text></g></a><a href="/2025/talks/claude-code" title="emacs-claude-code: Intelligent Claude Integration for Emacs" data-slug="claude-code"><title> 1:40- 2:00 emacs-claude-code: Intelligent Claude Integration for Emacs</title><rect x="384" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="5,5,5" fill="skyblue"></rect><g transform="translate(409,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">claude-code</text></g></a><a href="/2025/talks/private-ai" title="Emacs and private AI: a great match" data-slug="private-ai"><title> 2:10- 2:30 Emacs and private AI: a great match</title><rect x="425" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(450,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:50- 3:10 Common Lisp images communicating like-a-human through shared Emacs slime and eev</title><rect x="480" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="5,5,5" fill="skyblue"></rect><g transform="translate(505,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">commonlisp</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 ]]
diff --git a/2025/info/blee-lcnt-before.md b/2025/info/blee-lcnt-before.md
index cc691037..6825bfbe 100644
--- a/2025/info/blee-lcnt-before.md
+++ b/2025/info/blee-lcnt-before.md
@@ -1,7 +1,7 @@
<!-- 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="blee-lcnt">
-<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 x="0" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(11,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sat-open</text></g></a><a href="/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:50 Emacs as a fully-fledged reference manager</title><rect x="41" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(66,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:10-10:30 org-gmail: A deep integration of Gmail into your Org Mode</title><rect x="96" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(121,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">gmail</text></g></a><a href="/2025/talks/languages" title="Studying foreign languages with Emacs, Org Mode and gptel" data-slug="languages"><title>10:40-10:50 Studying foreign languages with Emacs, Org Mode and gptel</title><rect x="137" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(148,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">languages</text></g></a><a href="/2025/talks/latex" title="LaTeX export in org-mode: the overhaul" data-slug="latex"><title>11:10-11:30 LaTeX export in org-mode: the overhaul</title><rect x="178" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(203,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">latex</text></g></a><a href="/2025/talks/bibliography" title="An enhanced bibliography in org-mode for scientific research and self-directed learning" data-slug="bibliography"><title> 1:00- 1:20 An enhanced bibliography in org-mode for scientific research and self-directed learning</title><rect x="329" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(354,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">bibliography</text></g></a><a href="/2025/talks/calc" title="Basic Calc functionality for engineering or electronics" data-slug="calc"><title> 1:40- 1:50 Basic Calc functionality for engineering or electronics</title><rect x="384" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(395,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">calc</text></g></a><a href="/2025/talks/authoring" title="How Emacs became my authoring playground—no Lisp required" data-slug="authoring"><title> 2:00- 2:10 How Emacs became my authoring playground—no Lisp required</title><rect x="411" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(422,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">authoring</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> 2:30- 2:50 Blee-LCNT: An Emacs-centered content production and self-publication framework</title><rect stroke-width="3" x="452" y="15" opacity="0.8" width="27" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(477,73)"><text font-weight="bold" 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> 3:10- 3:20 GNU Emacs Greader (Gnamù Reader) mode is the best Emacs mode in existence</title><rect x="507" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(518,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">greader</text></g></a><a href="/2025/talks/n-angulator" title="Org-mode GTD vs N-angulator GTD" data-slug="n-angulator"><title> 3:30- 3:40 Org-mode GTD vs N-angulator GTD</title><rect x="535" y="15" opacity="0.5" width="13" 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)">n-angulator</text></g></a><a href="/2025/talks/sat-close" title="Saturday closing remarks" data-slug="sat-close"><title> 4:00- 4:10 Saturday closing remarks</title><rect x="576" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(587,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">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:45 One year progress update Schemacs (formerly Gypsum)</title><rect x="41" y="75" opacity="0.5" width="20" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(59,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:05-10:25 Juicemacs: Exploring Speculative JIT Compilation for ELisp in Java</title><rect x="89" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="5,5,5" fill="skyblue"></rect><g transform="translate(114,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:35-10:55 Swanky Python: Interactive development for Python</title><rect x="130" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="5,5,5" fill="skyblue"></rect><g transform="translate(155,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:05-11:25 Interactive Python programming in Emacs</title><rect x="171" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(196,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:20 Emacs, editors, and LLM driven workflows</title><rect x="329" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(354,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">llm</text></g></a><a href="/2025/talks/claude-code" title="emacs-claude-code: Intelligent Claude Integration for Emacs" data-slug="claude-code"><title> 1:40- 2:00 emacs-claude-code: Intelligent Claude Integration for Emacs</title><rect x="384" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="5,5,5" fill="skyblue"></rect><g transform="translate(409,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">claude-code</text></g></a><a href="/2025/talks/private-ai" title="Emacs and private AI: a great match" data-slug="private-ai"><title> 2:10- 2:30 Emacs and private AI: a great match</title><rect x="425" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(450,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:50- 3:10 Common Lisp images communicating like-a-human through shared Emacs slime and eev</title><rect x="480" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="5,5,5" fill="skyblue"></rect><g transform="translate(505,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">commonlisp</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 x="0" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(11,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sat-open</text></g></a><a href="/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:50 Emacs as a fully-fledged reference manager</title><rect x="41" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(66,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:10-10:30 org-gmail: A deep integration of Gmail into your Org Mode</title><rect x="96" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(121,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">gmail</text></g></a><a href="/2025/talks/languages" title="Studying foreign languages with Emacs, Org Mode and gptel" data-slug="languages"><title>10:40-10:50 Studying foreign languages with Emacs, Org Mode and gptel</title><rect x="137" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(148,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">languages</text></g></a><a href="/2025/talks/latex" title="LaTeX export in org-mode: the overhaul" data-slug="latex"><title>11:10-11:30 LaTeX export in org-mode: the overhaul</title><rect x="178" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(203,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">latex</text></g></a><a href="/2025/talks/bibliography" title="An enhanced bibliography in org-mode for scientific research and self-directed learning" data-slug="bibliography"><title> 1:00- 1:20 An enhanced bibliography in org-mode for scientific research and self-directed learning</title><rect x="329" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(354,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">bibliography</text></g></a><a href="/2025/talks/calc" title="Basic Calc functionality for engineering or electronics" data-slug="calc"><title> 1:40- 1:50 Basic Calc functionality for engineering or electronics</title><rect x="384" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(395,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">calc</text></g></a><a href="/2025/talks/authoring" title="How Emacs became my authoring playground—no Lisp required" data-slug="authoring"><title> 2:00- 2:10 How Emacs became my authoring playground—no Lisp required</title><rect x="411" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(422,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">authoring</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> 2:30- 2:50 Blee-LCNT: An Emacs-centered content production and self-publication framework</title><rect stroke-width="3" x="452" y="15" opacity="0.8" width="27" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(477,73)"><text font-weight="bold" 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> 3:10- 3:20 GNU Emacs Greader (Gnamù Reader) mode is the best Emacs mode in existence</title><rect x="507" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(518,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">greader</text></g></a><a href="/2025/talks/sat-close" title="Saturday closing remarks" data-slug="sat-close"><title> 3:30- 3:40 Saturday closing remarks</title><rect x="535" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(546,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">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:45 One year progress update Schemacs (formerly Gypsum)</title><rect x="41" y="75" opacity="0.5" width="20" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(59,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:05-10:25 Juicemacs: Exploring Speculative JIT Compilation for ELisp in Java</title><rect x="89" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="5,5,5" fill="skyblue"></rect><g transform="translate(114,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:35-10:55 Swanky Python: Interactive development for Python</title><rect x="130" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="5,5,5" fill="skyblue"></rect><g transform="translate(155,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:05-11:25 Interactive Python programming in Emacs</title><rect x="171" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(196,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:20 Emacs, editors, and LLM driven workflows</title><rect x="329" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(354,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">llm</text></g></a><a href="/2025/talks/claude-code" title="emacs-claude-code: Intelligent Claude Integration for Emacs" data-slug="claude-code"><title> 1:40- 2:00 emacs-claude-code: Intelligent Claude Integration for Emacs</title><rect x="384" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="5,5,5" fill="skyblue"></rect><g transform="translate(409,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">claude-code</text></g></a><a href="/2025/talks/private-ai" title="Emacs and private AI: a great match" data-slug="private-ai"><title> 2:10- 2:30 Emacs and private AI: a great match</title><rect x="425" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(450,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:50- 3:10 Common Lisp images communicating like-a-human through shared Emacs slime and eev</title><rect x="480" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="5,5,5" fill="skyblue"></rect><g transform="translate(505,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">commonlisp</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 ]]
diff --git a/2025/info/calc-before.md b/2025/info/calc-before.md
index 210c24e6..a9a17413 100644
--- a/2025/info/calc-before.md
+++ b/2025/info/calc-before.md
@@ -1,7 +1,7 @@
<!-- 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="calc">
-<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 x="0" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(11,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sat-open</text></g></a><a href="/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:50 Emacs as a fully-fledged reference manager</title><rect x="41" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(66,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:10-10:30 org-gmail: A deep integration of Gmail into your Org Mode</title><rect x="96" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(121,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">gmail</text></g></a><a href="/2025/talks/languages" title="Studying foreign languages with Emacs, Org Mode and gptel" data-slug="languages"><title>10:40-10:50 Studying foreign languages with Emacs, Org Mode and gptel</title><rect x="137" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(148,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">languages</text></g></a><a href="/2025/talks/latex" title="LaTeX export in org-mode: the overhaul" data-slug="latex"><title>11:10-11:30 LaTeX export in org-mode: the overhaul</title><rect x="178" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(203,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">latex</text></g></a><a href="/2025/talks/bibliography" title="An enhanced bibliography in org-mode for scientific research and self-directed learning" data-slug="bibliography"><title> 1:00- 1:20 An enhanced bibliography in org-mode for scientific research and self-directed learning</title><rect x="329" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(354,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">bibliography</text></g></a><a href="/2025/talks/calc" title="Basic Calc functionality for engineering or electronics" data-slug="calc"><title> 1:40- 1:50 Basic Calc functionality for engineering or electronics</title><rect stroke-width="3" x="384" y="15" opacity="0.8" width="13" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(395,73)"><text font-weight="bold" fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">calc</text></g></a><a href="/2025/talks/authoring" title="How Emacs became my authoring playground—no Lisp required" data-slug="authoring"><title> 2:00- 2:10 How Emacs became my authoring playground—no Lisp required</title><rect x="411" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(422,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">authoring</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> 2:30- 2:50 Blee-LCNT: An Emacs-centered content production and self-publication framework</title><rect x="452" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(477,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> 3:10- 3:20 GNU Emacs Greader (Gnamù Reader) mode is the best Emacs mode in existence</title><rect x="507" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(518,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">greader</text></g></a><a href="/2025/talks/n-angulator" title="Org-mode GTD vs N-angulator GTD" data-slug="n-angulator"><title> 3:30- 3:40 Org-mode GTD vs N-angulator GTD</title><rect x="535" y="15" opacity="0.5" width="13" 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)">n-angulator</text></g></a><a href="/2025/talks/sat-close" title="Saturday closing remarks" data-slug="sat-close"><title> 4:00- 4:10 Saturday closing remarks</title><rect x="576" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(587,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">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:45 One year progress update Schemacs (formerly Gypsum)</title><rect x="41" y="75" opacity="0.5" width="20" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(59,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:05-10:25 Juicemacs: Exploring Speculative JIT Compilation for ELisp in Java</title><rect x="89" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="5,5,5" fill="skyblue"></rect><g transform="translate(114,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:35-10:55 Swanky Python: Interactive development for Python</title><rect x="130" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="5,5,5" fill="skyblue"></rect><g transform="translate(155,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:05-11:25 Interactive Python programming in Emacs</title><rect x="171" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(196,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:20 Emacs, editors, and LLM driven workflows</title><rect x="329" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(354,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">llm</text></g></a><a href="/2025/talks/claude-code" title="emacs-claude-code: Intelligent Claude Integration for Emacs" data-slug="claude-code"><title> 1:40- 2:00 emacs-claude-code: Intelligent Claude Integration for Emacs</title><rect x="384" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="5,5,5" fill="skyblue"></rect><g transform="translate(409,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">claude-code</text></g></a><a href="/2025/talks/private-ai" title="Emacs and private AI: a great match" data-slug="private-ai"><title> 2:10- 2:30 Emacs and private AI: a great match</title><rect x="425" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(450,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:50- 3:10 Common Lisp images communicating like-a-human through shared Emacs slime and eev</title><rect x="480" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="5,5,5" fill="skyblue"></rect><g transform="translate(505,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">commonlisp</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 x="0" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(11,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sat-open</text></g></a><a href="/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:50 Emacs as a fully-fledged reference manager</title><rect x="41" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(66,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:10-10:30 org-gmail: A deep integration of Gmail into your Org Mode</title><rect x="96" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(121,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">gmail</text></g></a><a href="/2025/talks/languages" title="Studying foreign languages with Emacs, Org Mode and gptel" data-slug="languages"><title>10:40-10:50 Studying foreign languages with Emacs, Org Mode and gptel</title><rect x="137" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(148,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">languages</text></g></a><a href="/2025/talks/latex" title="LaTeX export in org-mode: the overhaul" data-slug="latex"><title>11:10-11:30 LaTeX export in org-mode: the overhaul</title><rect x="178" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(203,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">latex</text></g></a><a href="/2025/talks/bibliography" title="An enhanced bibliography in org-mode for scientific research and self-directed learning" data-slug="bibliography"><title> 1:00- 1:20 An enhanced bibliography in org-mode for scientific research and self-directed learning</title><rect x="329" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(354,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">bibliography</text></g></a><a href="/2025/talks/calc" title="Basic Calc functionality for engineering or electronics" data-slug="calc"><title> 1:40- 1:50 Basic Calc functionality for engineering or electronics</title><rect stroke-width="3" x="384" y="15" opacity="0.8" width="13" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(395,73)"><text font-weight="bold" fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">calc</text></g></a><a href="/2025/talks/authoring" title="How Emacs became my authoring playground—no Lisp required" data-slug="authoring"><title> 2:00- 2:10 How Emacs became my authoring playground—no Lisp required</title><rect x="411" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(422,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">authoring</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> 2:30- 2:50 Blee-LCNT: An Emacs-centered content production and self-publication framework</title><rect x="452" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(477,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> 3:10- 3:20 GNU Emacs Greader (Gnamù Reader) mode is the best Emacs mode in existence</title><rect x="507" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(518,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">greader</text></g></a><a href="/2025/talks/sat-close" title="Saturday closing remarks" data-slug="sat-close"><title> 3:30- 3:40 Saturday closing remarks</title><rect x="535" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(546,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">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:45 One year progress update Schemacs (formerly Gypsum)</title><rect x="41" y="75" opacity="0.5" width="20" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(59,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:05-10:25 Juicemacs: Exploring Speculative JIT Compilation for ELisp in Java</title><rect x="89" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="5,5,5" fill="skyblue"></rect><g transform="translate(114,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:35-10:55 Swanky Python: Interactive development for Python</title><rect x="130" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="5,5,5" fill="skyblue"></rect><g transform="translate(155,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:05-11:25 Interactive Python programming in Emacs</title><rect x="171" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(196,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:20 Emacs, editors, and LLM driven workflows</title><rect x="329" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(354,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">llm</text></g></a><a href="/2025/talks/claude-code" title="emacs-claude-code: Intelligent Claude Integration for Emacs" data-slug="claude-code"><title> 1:40- 2:00 emacs-claude-code: Intelligent Claude Integration for Emacs</title><rect x="384" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="5,5,5" fill="skyblue"></rect><g transform="translate(409,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">claude-code</text></g></a><a href="/2025/talks/private-ai" title="Emacs and private AI: a great match" data-slug="private-ai"><title> 2:10- 2:30 Emacs and private AI: a great match</title><rect x="425" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(450,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:50- 3:10 Common Lisp images communicating like-a-human through shared Emacs slime and eev</title><rect x="480" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="5,5,5" fill="skyblue"></rect><g transform="translate(505,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">commonlisp</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 ]]
diff --git a/2025/info/claude-code-before.md b/2025/info/claude-code-before.md
index 814fb678..c65de8f0 100644
--- a/2025/info/claude-code-before.md
+++ b/2025/info/claude-code-before.md
@@ -1,7 +1,7 @@
<!-- 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="claude-code">
-<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 x="0" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(11,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sat-open</text></g></a><a href="/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:50 Emacs as a fully-fledged reference manager</title><rect x="41" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(66,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:10-10:30 org-gmail: A deep integration of Gmail into your Org Mode</title><rect x="96" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(121,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">gmail</text></g></a><a href="/2025/talks/languages" title="Studying foreign languages with Emacs, Org Mode and gptel" data-slug="languages"><title>10:40-10:50 Studying foreign languages with Emacs, Org Mode and gptel</title><rect x="137" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(148,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">languages</text></g></a><a href="/2025/talks/latex" title="LaTeX export in org-mode: the overhaul" data-slug="latex"><title>11:10-11:30 LaTeX export in org-mode: the overhaul</title><rect x="178" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(203,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">latex</text></g></a><a href="/2025/talks/bibliography" title="An enhanced bibliography in org-mode for scientific research and self-directed learning" data-slug="bibliography"><title> 1:00- 1:20 An enhanced bibliography in org-mode for scientific research and self-directed learning</title><rect x="329" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(354,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">bibliography</text></g></a><a href="/2025/talks/calc" title="Basic Calc functionality for engineering or electronics" data-slug="calc"><title> 1:40- 1:50 Basic Calc functionality for engineering or electronics</title><rect x="384" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(395,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">calc</text></g></a><a href="/2025/talks/authoring" title="How Emacs became my authoring playground—no Lisp required" data-slug="authoring"><title> 2:00- 2:10 How Emacs became my authoring playground—no Lisp required</title><rect x="411" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(422,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">authoring</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> 2:30- 2:50 Blee-LCNT: An Emacs-centered content production and self-publication framework</title><rect x="452" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(477,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> 3:10- 3:20 GNU Emacs Greader (Gnamù Reader) mode is the best Emacs mode in existence</title><rect x="507" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(518,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">greader</text></g></a><a href="/2025/talks/n-angulator" title="Org-mode GTD vs N-angulator GTD" data-slug="n-angulator"><title> 3:30- 3:40 Org-mode GTD vs N-angulator GTD</title><rect x="535" y="15" opacity="0.5" width="13" 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)">n-angulator</text></g></a><a href="/2025/talks/sat-close" title="Saturday closing remarks" data-slug="sat-close"><title> 4:00- 4:10 Saturday closing remarks</title><rect x="576" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(587,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">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:45 One year progress update Schemacs (formerly Gypsum)</title><rect x="41" y="75" opacity="0.5" width="20" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(59,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:05-10:25 Juicemacs: Exploring Speculative JIT Compilation for ELisp in Java</title><rect x="89" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="5,5,5" fill="skyblue"></rect><g transform="translate(114,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:35-10:55 Swanky Python: Interactive development for Python</title><rect x="130" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="5,5,5" fill="skyblue"></rect><g transform="translate(155,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:05-11:25 Interactive Python programming in Emacs</title><rect x="171" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(196,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:20 Emacs, editors, and LLM driven workflows</title><rect x="329" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(354,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">llm</text></g></a><a href="/2025/talks/claude-code" title="emacs-claude-code: Intelligent Claude Integration for Emacs" data-slug="claude-code"><title> 1:40- 2:00 emacs-claude-code: Intelligent Claude Integration for Emacs</title><rect stroke-width="3" x="384" y="75" opacity="0.8" width="27" height="59" stroke="black" stroke-dasharray="5,5,5" fill="skyblue"></rect><g transform="translate(409,133)"><text font-weight="bold" fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">claude-code</text></g></a><a href="/2025/talks/private-ai" title="Emacs and private AI: a great match" data-slug="private-ai"><title> 2:10- 2:30 Emacs and private AI: a great match</title><rect x="425" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(450,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:50- 3:10 Common Lisp images communicating like-a-human through shared Emacs slime and eev</title><rect x="480" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="5,5,5" fill="skyblue"></rect><g transform="translate(505,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">commonlisp</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 x="0" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(11,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sat-open</text></g></a><a href="/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:50 Emacs as a fully-fledged reference manager</title><rect x="41" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(66,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:10-10:30 org-gmail: A deep integration of Gmail into your Org Mode</title><rect x="96" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(121,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">gmail</text></g></a><a href="/2025/talks/languages" title="Studying foreign languages with Emacs, Org Mode and gptel" data-slug="languages"><title>10:40-10:50 Studying foreign languages with Emacs, Org Mode and gptel</title><rect x="137" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(148,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">languages</text></g></a><a href="/2025/talks/latex" title="LaTeX export in org-mode: the overhaul" data-slug="latex"><title>11:10-11:30 LaTeX export in org-mode: the overhaul</title><rect x="178" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(203,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">latex</text></g></a><a href="/2025/talks/bibliography" title="An enhanced bibliography in org-mode for scientific research and self-directed learning" data-slug="bibliography"><title> 1:00- 1:20 An enhanced bibliography in org-mode for scientific research and self-directed learning</title><rect x="329" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(354,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">bibliography</text></g></a><a href="/2025/talks/calc" title="Basic Calc functionality for engineering or electronics" data-slug="calc"><title> 1:40- 1:50 Basic Calc functionality for engineering or electronics</title><rect x="384" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(395,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">calc</text></g></a><a href="/2025/talks/authoring" title="How Emacs became my authoring playground—no Lisp required" data-slug="authoring"><title> 2:00- 2:10 How Emacs became my authoring playground—no Lisp required</title><rect x="411" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(422,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">authoring</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> 2:30- 2:50 Blee-LCNT: An Emacs-centered content production and self-publication framework</title><rect x="452" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(477,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> 3:10- 3:20 GNU Emacs Greader (Gnamù Reader) mode is the best Emacs mode in existence</title><rect x="507" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(518,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">greader</text></g></a><a href="/2025/talks/sat-close" title="Saturday closing remarks" data-slug="sat-close"><title> 3:30- 3:40 Saturday closing remarks</title><rect x="535" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(546,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">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:45 One year progress update Schemacs (formerly Gypsum)</title><rect x="41" y="75" opacity="0.5" width="20" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(59,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:05-10:25 Juicemacs: Exploring Speculative JIT Compilation for ELisp in Java</title><rect x="89" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="5,5,5" fill="skyblue"></rect><g transform="translate(114,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:35-10:55 Swanky Python: Interactive development for Python</title><rect x="130" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="5,5,5" fill="skyblue"></rect><g transform="translate(155,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:05-11:25 Interactive Python programming in Emacs</title><rect x="171" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(196,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:20 Emacs, editors, and LLM driven workflows</title><rect x="329" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(354,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">llm</text></g></a><a href="/2025/talks/claude-code" title="emacs-claude-code: Intelligent Claude Integration for Emacs" data-slug="claude-code"><title> 1:40- 2:00 emacs-claude-code: Intelligent Claude Integration for Emacs</title><rect stroke-width="3" x="384" y="75" opacity="0.8" width="27" height="59" stroke="black" stroke-dasharray="5,5,5" fill="skyblue"></rect><g transform="translate(409,133)"><text font-weight="bold" fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">claude-code</text></g></a><a href="/2025/talks/private-ai" title="Emacs and private AI: a great match" data-slug="private-ai"><title> 2:10- 2:30 Emacs and private AI: a great match</title><rect x="425" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(450,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:50- 3:10 Common Lisp images communicating like-a-human through shared Emacs slime and eev</title><rect x="480" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="5,5,5" fill="skyblue"></rect><g transform="translate(505,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">commonlisp</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 ]]
diff --git a/2025/info/commonlisp-before.md b/2025/info/commonlisp-before.md
index f6cab3af..cfabcafd 100644
--- a/2025/info/commonlisp-before.md
+++ b/2025/info/commonlisp-before.md
@@ -1,7 +1,7 @@
<!-- 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="commonlisp">
-<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 x="0" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(11,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sat-open</text></g></a><a href="/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:50 Emacs as a fully-fledged reference manager</title><rect x="41" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(66,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:10-10:30 org-gmail: A deep integration of Gmail into your Org Mode</title><rect x="96" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(121,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">gmail</text></g></a><a href="/2025/talks/languages" title="Studying foreign languages with Emacs, Org Mode and gptel" data-slug="languages"><title>10:40-10:50 Studying foreign languages with Emacs, Org Mode and gptel</title><rect x="137" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(148,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">languages</text></g></a><a href="/2025/talks/latex" title="LaTeX export in org-mode: the overhaul" data-slug="latex"><title>11:10-11:30 LaTeX export in org-mode: the overhaul</title><rect x="178" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(203,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">latex</text></g></a><a href="/2025/talks/bibliography" title="An enhanced bibliography in org-mode for scientific research and self-directed learning" data-slug="bibliography"><title> 1:00- 1:20 An enhanced bibliography in org-mode for scientific research and self-directed learning</title><rect x="329" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(354,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">bibliography</text></g></a><a href="/2025/talks/calc" title="Basic Calc functionality for engineering or electronics" data-slug="calc"><title> 1:40- 1:50 Basic Calc functionality for engineering or electronics</title><rect x="384" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(395,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">calc</text></g></a><a href="/2025/talks/authoring" title="How Emacs became my authoring playground—no Lisp required" data-slug="authoring"><title> 2:00- 2:10 How Emacs became my authoring playground—no Lisp required</title><rect x="411" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(422,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">authoring</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> 2:30- 2:50 Blee-LCNT: An Emacs-centered content production and self-publication framework</title><rect x="452" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(477,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> 3:10- 3:20 GNU Emacs Greader (Gnamù Reader) mode is the best Emacs mode in existence</title><rect x="507" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(518,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">greader</text></g></a><a href="/2025/talks/n-angulator" title="Org-mode GTD vs N-angulator GTD" data-slug="n-angulator"><title> 3:30- 3:40 Org-mode GTD vs N-angulator GTD</title><rect x="535" y="15" opacity="0.5" width="13" 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)">n-angulator</text></g></a><a href="/2025/talks/sat-close" title="Saturday closing remarks" data-slug="sat-close"><title> 4:00- 4:10 Saturday closing remarks</title><rect x="576" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(587,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">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:45 One year progress update Schemacs (formerly Gypsum)</title><rect x="41" y="75" opacity="0.5" width="20" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(59,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:05-10:25 Juicemacs: Exploring Speculative JIT Compilation for ELisp in Java</title><rect x="89" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="5,5,5" fill="skyblue"></rect><g transform="translate(114,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:35-10:55 Swanky Python: Interactive development for Python</title><rect x="130" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="5,5,5" fill="skyblue"></rect><g transform="translate(155,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:05-11:25 Interactive Python programming in Emacs</title><rect x="171" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(196,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:20 Emacs, editors, and LLM driven workflows</title><rect x="329" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(354,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">llm</text></g></a><a href="/2025/talks/claude-code" title="emacs-claude-code: Intelligent Claude Integration for Emacs" data-slug="claude-code"><title> 1:40- 2:00 emacs-claude-code: Intelligent Claude Integration for Emacs</title><rect x="384" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="5,5,5" fill="skyblue"></rect><g transform="translate(409,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">claude-code</text></g></a><a href="/2025/talks/private-ai" title="Emacs and private AI: a great match" data-slug="private-ai"><title> 2:10- 2:30 Emacs and private AI: a great match</title><rect x="425" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(450,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:50- 3:10 Common Lisp images communicating like-a-human through shared Emacs slime and eev</title><rect stroke-width="3" x="480" y="75" opacity="0.8" width="27" height="59" stroke="black" stroke-dasharray="5,5,5" fill="skyblue"></rect><g transform="translate(505,133)"><text font-weight="bold" fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">commonlisp</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 x="0" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(11,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sat-open</text></g></a><a href="/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:50 Emacs as a fully-fledged reference manager</title><rect x="41" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(66,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:10-10:30 org-gmail: A deep integration of Gmail into your Org Mode</title><rect x="96" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(121,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">gmail</text></g></a><a href="/2025/talks/languages" title="Studying foreign languages with Emacs, Org Mode and gptel" data-slug="languages"><title>10:40-10:50 Studying foreign languages with Emacs, Org Mode and gptel</title><rect x="137" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(148,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">languages</text></g></a><a href="/2025/talks/latex" title="LaTeX export in org-mode: the overhaul" data-slug="latex"><title>11:10-11:30 LaTeX export in org-mode: the overhaul</title><rect x="178" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(203,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">latex</text></g></a><a href="/2025/talks/bibliography" title="An enhanced bibliography in org-mode for scientific research and self-directed learning" data-slug="bibliography"><title> 1:00- 1:20 An enhanced bibliography in org-mode for scientific research and self-directed learning</title><rect x="329" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(354,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">bibliography</text></g></a><a href="/2025/talks/calc" title="Basic Calc functionality for engineering or electronics" data-slug="calc"><title> 1:40- 1:50 Basic Calc functionality for engineering or electronics</title><rect x="384" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(395,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">calc</text></g></a><a href="/2025/talks/authoring" title="How Emacs became my authoring playground—no Lisp required" data-slug="authoring"><title> 2:00- 2:10 How Emacs became my authoring playground—no Lisp required</title><rect x="411" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(422,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">authoring</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> 2:30- 2:50 Blee-LCNT: An Emacs-centered content production and self-publication framework</title><rect x="452" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(477,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> 3:10- 3:20 GNU Emacs Greader (Gnamù Reader) mode is the best Emacs mode in existence</title><rect x="507" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(518,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">greader</text></g></a><a href="/2025/talks/sat-close" title="Saturday closing remarks" data-slug="sat-close"><title> 3:30- 3:40 Saturday closing remarks</title><rect x="535" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(546,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">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:45 One year progress update Schemacs (formerly Gypsum)</title><rect x="41" y="75" opacity="0.5" width="20" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(59,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:05-10:25 Juicemacs: Exploring Speculative JIT Compilation for ELisp in Java</title><rect x="89" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="5,5,5" fill="skyblue"></rect><g transform="translate(114,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:35-10:55 Swanky Python: Interactive development for Python</title><rect x="130" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="5,5,5" fill="skyblue"></rect><g transform="translate(155,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:05-11:25 Interactive Python programming in Emacs</title><rect x="171" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(196,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:20 Emacs, editors, and LLM driven workflows</title><rect x="329" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(354,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">llm</text></g></a><a href="/2025/talks/claude-code" title="emacs-claude-code: Intelligent Claude Integration for Emacs" data-slug="claude-code"><title> 1:40- 2:00 emacs-claude-code: Intelligent Claude Integration for Emacs</title><rect x="384" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="5,5,5" fill="skyblue"></rect><g transform="translate(409,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">claude-code</text></g></a><a href="/2025/talks/private-ai" title="Emacs and private AI: a great match" data-slug="private-ai"><title> 2:10- 2:30 Emacs and private AI: a great match</title><rect x="425" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(450,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:50- 3:10 Common Lisp images communicating like-a-human through shared Emacs slime and eev</title><rect stroke-width="3" x="480" y="75" opacity="0.8" width="27" height="59" stroke="black" stroke-dasharray="5,5,5" fill="skyblue"></rect><g transform="translate(505,133)"><text font-weight="bold" fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">commonlisp</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 ]]
diff --git a/2025/info/gmail-before.md b/2025/info/gmail-before.md
index b101c43b..5035ace6 100644
--- a/2025/info/gmail-before.md
+++ b/2025/info/gmail-before.md
@@ -1,7 +1,7 @@
<!-- 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="gmail">
-<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 x="0" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(11,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sat-open</text></g></a><a href="/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:50 Emacs as a fully-fledged reference manager</title><rect x="41" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(66,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:10-10:30 org-gmail: A deep integration of Gmail into your Org Mode</title><rect stroke-width="3" x="96" y="15" opacity="0.8" width="27" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(121,73)"><text font-weight="bold" fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">gmail</text></g></a><a href="/2025/talks/languages" title="Studying foreign languages with Emacs, Org Mode and gptel" data-slug="languages"><title>10:40-10:50 Studying foreign languages with Emacs, Org Mode and gptel</title><rect x="137" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(148,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">languages</text></g></a><a href="/2025/talks/latex" title="LaTeX export in org-mode: the overhaul" data-slug="latex"><title>11:10-11:30 LaTeX export in org-mode: the overhaul</title><rect x="178" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(203,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">latex</text></g></a><a href="/2025/talks/bibliography" title="An enhanced bibliography in org-mode for scientific research and self-directed learning" data-slug="bibliography"><title> 1:00- 1:20 An enhanced bibliography in org-mode for scientific research and self-directed learning</title><rect x="329" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(354,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">bibliography</text></g></a><a href="/2025/talks/calc" title="Basic Calc functionality for engineering or electronics" data-slug="calc"><title> 1:40- 1:50 Basic Calc functionality for engineering or electronics</title><rect x="384" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(395,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">calc</text></g></a><a href="/2025/talks/authoring" title="How Emacs became my authoring playground—no Lisp required" data-slug="authoring"><title> 2:00- 2:10 How Emacs became my authoring playground—no Lisp required</title><rect x="411" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(422,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">authoring</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> 2:30- 2:50 Blee-LCNT: An Emacs-centered content production and self-publication framework</title><rect x="452" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(477,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> 3:10- 3:20 GNU Emacs Greader (Gnamù Reader) mode is the best Emacs mode in existence</title><rect x="507" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(518,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">greader</text></g></a><a href="/2025/talks/n-angulator" title="Org-mode GTD vs N-angulator GTD" data-slug="n-angulator"><title> 3:30- 3:40 Org-mode GTD vs N-angulator GTD</title><rect x="535" y="15" opacity="0.5" width="13" 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)">n-angulator</text></g></a><a href="/2025/talks/sat-close" title="Saturday closing remarks" data-slug="sat-close"><title> 4:00- 4:10 Saturday closing remarks</title><rect x="576" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(587,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">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:45 One year progress update Schemacs (formerly Gypsum)</title><rect x="41" y="75" opacity="0.5" width="20" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(59,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:05-10:25 Juicemacs: Exploring Speculative JIT Compilation for ELisp in Java</title><rect x="89" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="5,5,5" fill="skyblue"></rect><g transform="translate(114,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:35-10:55 Swanky Python: Interactive development for Python</title><rect x="130" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="5,5,5" fill="skyblue"></rect><g transform="translate(155,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:05-11:25 Interactive Python programming in Emacs</title><rect x="171" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(196,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:20 Emacs, editors, and LLM driven workflows</title><rect x="329" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(354,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">llm</text></g></a><a href="/2025/talks/claude-code" title="emacs-claude-code: Intelligent Claude Integration for Emacs" data-slug="claude-code"><title> 1:40- 2:00 emacs-claude-code: Intelligent Claude Integration for Emacs</title><rect x="384" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="5,5,5" fill="skyblue"></rect><g transform="translate(409,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">claude-code</text></g></a><a href="/2025/talks/private-ai" title="Emacs and private AI: a great match" data-slug="private-ai"><title> 2:10- 2:30 Emacs and private AI: a great match</title><rect x="425" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(450,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:50- 3:10 Common Lisp images communicating like-a-human through shared Emacs slime and eev</title><rect x="480" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="5,5,5" fill="skyblue"></rect><g transform="translate(505,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">commonlisp</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 x="0" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(11,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sat-open</text></g></a><a href="/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:50 Emacs as a fully-fledged reference manager</title><rect x="41" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(66,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:10-10:30 org-gmail: A deep integration of Gmail into your Org Mode</title><rect stroke-width="3" x="96" y="15" opacity="0.8" width="27" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(121,73)"><text font-weight="bold" fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">gmail</text></g></a><a href="/2025/talks/languages" title="Studying foreign languages with Emacs, Org Mode and gptel" data-slug="languages"><title>10:40-10:50 Studying foreign languages with Emacs, Org Mode and gptel</title><rect x="137" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(148,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">languages</text></g></a><a href="/2025/talks/latex" title="LaTeX export in org-mode: the overhaul" data-slug="latex"><title>11:10-11:30 LaTeX export in org-mode: the overhaul</title><rect x="178" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(203,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">latex</text></g></a><a href="/2025/talks/bibliography" title="An enhanced bibliography in org-mode for scientific research and self-directed learning" data-slug="bibliography"><title> 1:00- 1:20 An enhanced bibliography in org-mode for scientific research and self-directed learning</title><rect x="329" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(354,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">bibliography</text></g></a><a href="/2025/talks/calc" title="Basic Calc functionality for engineering or electronics" data-slug="calc"><title> 1:40- 1:50 Basic Calc functionality for engineering or electronics</title><rect x="384" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(395,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">calc</text></g></a><a href="/2025/talks/authoring" title="How Emacs became my authoring playground—no Lisp required" data-slug="authoring"><title> 2:00- 2:10 How Emacs became my authoring playground—no Lisp required</title><rect x="411" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(422,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">authoring</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> 2:30- 2:50 Blee-LCNT: An Emacs-centered content production and self-publication framework</title><rect x="452" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(477,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> 3:10- 3:20 GNU Emacs Greader (Gnamù Reader) mode is the best Emacs mode in existence</title><rect x="507" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(518,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">greader</text></g></a><a href="/2025/talks/sat-close" title="Saturday closing remarks" data-slug="sat-close"><title> 3:30- 3:40 Saturday closing remarks</title><rect x="535" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(546,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">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:45 One year progress update Schemacs (formerly Gypsum)</title><rect x="41" y="75" opacity="0.5" width="20" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(59,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:05-10:25 Juicemacs: Exploring Speculative JIT Compilation for ELisp in Java</title><rect x="89" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="5,5,5" fill="skyblue"></rect><g transform="translate(114,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:35-10:55 Swanky Python: Interactive development for Python</title><rect x="130" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="5,5,5" fill="skyblue"></rect><g transform="translate(155,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:05-11:25 Interactive Python programming in Emacs</title><rect x="171" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(196,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:20 Emacs, editors, and LLM driven workflows</title><rect x="329" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(354,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">llm</text></g></a><a href="/2025/talks/claude-code" title="emacs-claude-code: Intelligent Claude Integration for Emacs" data-slug="claude-code"><title> 1:40- 2:00 emacs-claude-code: Intelligent Claude Integration for Emacs</title><rect x="384" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="5,5,5" fill="skyblue"></rect><g transform="translate(409,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">claude-code</text></g></a><a href="/2025/talks/private-ai" title="Emacs and private AI: a great match" data-slug="private-ai"><title> 2:10- 2:30 Emacs and private AI: a great match</title><rect x="425" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(450,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:50- 3:10 Common Lisp images communicating like-a-human through shared Emacs slime and eev</title><rect x="480" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="5,5,5" fill="skyblue"></rect><g transform="translate(505,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">commonlisp</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 ]]
diff --git a/2025/info/greader-before.md b/2025/info/greader-before.md
index ca90b63c..305eea1d 100644
--- a/2025/info/greader-before.md
+++ b/2025/info/greader-before.md
@@ -1,7 +1,7 @@
<!-- 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="greader">
-<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 x="0" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(11,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sat-open</text></g></a><a href="/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:50 Emacs as a fully-fledged reference manager</title><rect x="41" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(66,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:10-10:30 org-gmail: A deep integration of Gmail into your Org Mode</title><rect x="96" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(121,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">gmail</text></g></a><a href="/2025/talks/languages" title="Studying foreign languages with Emacs, Org Mode and gptel" data-slug="languages"><title>10:40-10:50 Studying foreign languages with Emacs, Org Mode and gptel</title><rect x="137" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(148,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">languages</text></g></a><a href="/2025/talks/latex" title="LaTeX export in org-mode: the overhaul" data-slug="latex"><title>11:10-11:30 LaTeX export in org-mode: the overhaul</title><rect x="178" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(203,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">latex</text></g></a><a href="/2025/talks/bibliography" title="An enhanced bibliography in org-mode for scientific research and self-directed learning" data-slug="bibliography"><title> 1:00- 1:20 An enhanced bibliography in org-mode for scientific research and self-directed learning</title><rect x="329" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(354,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">bibliography</text></g></a><a href="/2025/talks/calc" title="Basic Calc functionality for engineering or electronics" data-slug="calc"><title> 1:40- 1:50 Basic Calc functionality for engineering or electronics</title><rect x="384" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(395,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">calc</text></g></a><a href="/2025/talks/authoring" title="How Emacs became my authoring playground—no Lisp required" data-slug="authoring"><title> 2:00- 2:10 How Emacs became my authoring playground—no Lisp required</title><rect x="411" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(422,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">authoring</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> 2:30- 2:50 Blee-LCNT: An Emacs-centered content production and self-publication framework</title><rect x="452" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(477,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> 3:10- 3:20 GNU Emacs Greader (Gnamù Reader) mode is the best Emacs mode in existence</title><rect stroke-width="3" x="507" y="15" opacity="0.8" width="13" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(518,73)"><text font-weight="bold" fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">greader</text></g></a><a href="/2025/talks/n-angulator" title="Org-mode GTD vs N-angulator GTD" data-slug="n-angulator"><title> 3:30- 3:40 Org-mode GTD vs N-angulator GTD</title><rect x="535" y="15" opacity="0.5" width="13" 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)">n-angulator</text></g></a><a href="/2025/talks/sat-close" title="Saturday closing remarks" data-slug="sat-close"><title> 4:00- 4:10 Saturday closing remarks</title><rect x="576" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(587,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">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:45 One year progress update Schemacs (formerly Gypsum)</title><rect x="41" y="75" opacity="0.5" width="20" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(59,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:05-10:25 Juicemacs: Exploring Speculative JIT Compilation for ELisp in Java</title><rect x="89" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="5,5,5" fill="skyblue"></rect><g transform="translate(114,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:35-10:55 Swanky Python: Interactive development for Python</title><rect x="130" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="5,5,5" fill="skyblue"></rect><g transform="translate(155,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:05-11:25 Interactive Python programming in Emacs</title><rect x="171" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(196,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:20 Emacs, editors, and LLM driven workflows</title><rect x="329" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(354,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">llm</text></g></a><a href="/2025/talks/claude-code" title="emacs-claude-code: Intelligent Claude Integration for Emacs" data-slug="claude-code"><title> 1:40- 2:00 emacs-claude-code: Intelligent Claude Integration for Emacs</title><rect x="384" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="5,5,5" fill="skyblue"></rect><g transform="translate(409,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">claude-code</text></g></a><a href="/2025/talks/private-ai" title="Emacs and private AI: a great match" data-slug="private-ai"><title> 2:10- 2:30 Emacs and private AI: a great match</title><rect x="425" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(450,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:50- 3:10 Common Lisp images communicating like-a-human through shared Emacs slime and eev</title><rect x="480" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="5,5,5" fill="skyblue"></rect><g transform="translate(505,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">commonlisp</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 x="0" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(11,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sat-open</text></g></a><a href="/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:50 Emacs as a fully-fledged reference manager</title><rect x="41" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(66,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:10-10:30 org-gmail: A deep integration of Gmail into your Org Mode</title><rect x="96" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(121,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">gmail</text></g></a><a href="/2025/talks/languages" title="Studying foreign languages with Emacs, Org Mode and gptel" data-slug="languages"><title>10:40-10:50 Studying foreign languages with Emacs, Org Mode and gptel</title><rect x="137" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(148,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">languages</text></g></a><a href="/2025/talks/latex" title="LaTeX export in org-mode: the overhaul" data-slug="latex"><title>11:10-11:30 LaTeX export in org-mode: the overhaul</title><rect x="178" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(203,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">latex</text></g></a><a href="/2025/talks/bibliography" title="An enhanced bibliography in org-mode for scientific research and self-directed learning" data-slug="bibliography"><title> 1:00- 1:20 An enhanced bibliography in org-mode for scientific research and self-directed learning</title><rect x="329" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(354,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">bibliography</text></g></a><a href="/2025/talks/calc" title="Basic Calc functionality for engineering or electronics" data-slug="calc"><title> 1:40- 1:50 Basic Calc functionality for engineering or electronics</title><rect x="384" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(395,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">calc</text></g></a><a href="/2025/talks/authoring" title="How Emacs became my authoring playground—no Lisp required" data-slug="authoring"><title> 2:00- 2:10 How Emacs became my authoring playground—no Lisp required</title><rect x="411" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(422,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">authoring</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> 2:30- 2:50 Blee-LCNT: An Emacs-centered content production and self-publication framework</title><rect x="452" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(477,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> 3:10- 3:20 GNU Emacs Greader (Gnamù Reader) mode is the best Emacs mode in existence</title><rect stroke-width="3" x="507" y="15" opacity="0.8" width="13" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(518,73)"><text font-weight="bold" fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">greader</text></g></a><a href="/2025/talks/sat-close" title="Saturday closing remarks" data-slug="sat-close"><title> 3:30- 3:40 Saturday closing remarks</title><rect x="535" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(546,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">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:45 One year progress update Schemacs (formerly Gypsum)</title><rect x="41" y="75" opacity="0.5" width="20" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(59,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:05-10:25 Juicemacs: Exploring Speculative JIT Compilation for ELisp in Java</title><rect x="89" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="5,5,5" fill="skyblue"></rect><g transform="translate(114,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:35-10:55 Swanky Python: Interactive development for Python</title><rect x="130" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="5,5,5" fill="skyblue"></rect><g transform="translate(155,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:05-11:25 Interactive Python programming in Emacs</title><rect x="171" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(196,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:20 Emacs, editors, and LLM driven workflows</title><rect x="329" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(354,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">llm</text></g></a><a href="/2025/talks/claude-code" title="emacs-claude-code: Intelligent Claude Integration for Emacs" data-slug="claude-code"><title> 1:40- 2:00 emacs-claude-code: Intelligent Claude Integration for Emacs</title><rect x="384" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="5,5,5" fill="skyblue"></rect><g transform="translate(409,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">claude-code</text></g></a><a href="/2025/talks/private-ai" title="Emacs and private AI: a great match" data-slug="private-ai"><title> 2:10- 2:30 Emacs and private AI: a great match</title><rect x="425" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(450,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:50- 3:10 Common Lisp images communicating like-a-human through shared Emacs slime and eev</title><rect x="480" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="5,5,5" fill="skyblue"></rect><g transform="translate(505,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">commonlisp</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 ]]
diff --git a/2025/info/greader-nav.md b/2025/info/greader-nav.md
index 3b2ef2c4..6a84b39a 100644
--- a/2025/info/greader-nav.md
+++ b/2025/info/greader-nav.md
@@ -2,6 +2,6 @@
<div class="talk-nav">
Back to the [[talks]]
Previous by time: <a href="/2025/talks/commonlisp">Common Lisp images communicating like-a-human through shared Emacs slime and eev</a>
-Next by time: <a href="/2025/talks/n-angulator">Org-mode GTD vs N-angulator GTD</a>
+Next by time: <a href="/2025/talks/sat-close">Saturday closing remarks</a>
Track: <span class="sched-track General">General</span> - <strong><a href="https://emacsconf.org/2025/watch/gen">Watch</a></strong>
</div>
diff --git a/2025/info/juicemacs-before.md b/2025/info/juicemacs-before.md
index 32d03678..9bd947da 100644
--- a/2025/info/juicemacs-before.md
+++ b/2025/info/juicemacs-before.md
@@ -1,7 +1,7 @@
<!-- 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="juicemacs">
-<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 x="0" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(11,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sat-open</text></g></a><a href="/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:50 Emacs as a fully-fledged reference manager</title><rect x="41" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(66,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:10-10:30 org-gmail: A deep integration of Gmail into your Org Mode</title><rect x="96" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(121,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">gmail</text></g></a><a href="/2025/talks/languages" title="Studying foreign languages with Emacs, Org Mode and gptel" data-slug="languages"><title>10:40-10:50 Studying foreign languages with Emacs, Org Mode and gptel</title><rect x="137" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(148,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">languages</text></g></a><a href="/2025/talks/latex" title="LaTeX export in org-mode: the overhaul" data-slug="latex"><title>11:10-11:30 LaTeX export in org-mode: the overhaul</title><rect x="178" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(203,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">latex</text></g></a><a href="/2025/talks/bibliography" title="An enhanced bibliography in org-mode for scientific research and self-directed learning" data-slug="bibliography"><title> 1:00- 1:20 An enhanced bibliography in org-mode for scientific research and self-directed learning</title><rect x="329" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(354,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">bibliography</text></g></a><a href="/2025/talks/calc" title="Basic Calc functionality for engineering or electronics" data-slug="calc"><title> 1:40- 1:50 Basic Calc functionality for engineering or electronics</title><rect x="384" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(395,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">calc</text></g></a><a href="/2025/talks/authoring" title="How Emacs became my authoring playground—no Lisp required" data-slug="authoring"><title> 2:00- 2:10 How Emacs became my authoring playground—no Lisp required</title><rect x="411" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(422,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">authoring</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> 2:30- 2:50 Blee-LCNT: An Emacs-centered content production and self-publication framework</title><rect x="452" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(477,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> 3:10- 3:20 GNU Emacs Greader (Gnamù Reader) mode is the best Emacs mode in existence</title><rect x="507" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(518,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">greader</text></g></a><a href="/2025/talks/n-angulator" title="Org-mode GTD vs N-angulator GTD" data-slug="n-angulator"><title> 3:30- 3:40 Org-mode GTD vs N-angulator GTD</title><rect x="535" y="15" opacity="0.5" width="13" 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)">n-angulator</text></g></a><a href="/2025/talks/sat-close" title="Saturday closing remarks" data-slug="sat-close"><title> 4:00- 4:10 Saturday closing remarks</title><rect x="576" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(587,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">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:45 One year progress update Schemacs (formerly Gypsum)</title><rect x="41" y="75" opacity="0.5" width="20" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(59,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:05-10:25 Juicemacs: Exploring Speculative JIT Compilation for ELisp in Java</title><rect stroke-width="3" x="89" y="75" opacity="0.8" width="27" height="59" stroke="black" stroke-dasharray="5,5,5" fill="skyblue"></rect><g transform="translate(114,133)"><text font-weight="bold" 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:35-10:55 Swanky Python: Interactive development for Python</title><rect x="130" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="5,5,5" fill="skyblue"></rect><g transform="translate(155,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:05-11:25 Interactive Python programming in Emacs</title><rect x="171" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(196,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:20 Emacs, editors, and LLM driven workflows</title><rect x="329" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(354,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">llm</text></g></a><a href="/2025/talks/claude-code" title="emacs-claude-code: Intelligent Claude Integration for Emacs" data-slug="claude-code"><title> 1:40- 2:00 emacs-claude-code: Intelligent Claude Integration for Emacs</title><rect x="384" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="5,5,5" fill="skyblue"></rect><g transform="translate(409,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">claude-code</text></g></a><a href="/2025/talks/private-ai" title="Emacs and private AI: a great match" data-slug="private-ai"><title> 2:10- 2:30 Emacs and private AI: a great match</title><rect x="425" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(450,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:50- 3:10 Common Lisp images communicating like-a-human through shared Emacs slime and eev</title><rect x="480" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="5,5,5" fill="skyblue"></rect><g transform="translate(505,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">commonlisp</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 x="0" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(11,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sat-open</text></g></a><a href="/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:50 Emacs as a fully-fledged reference manager</title><rect x="41" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(66,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:10-10:30 org-gmail: A deep integration of Gmail into your Org Mode</title><rect x="96" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(121,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">gmail</text></g></a><a href="/2025/talks/languages" title="Studying foreign languages with Emacs, Org Mode and gptel" data-slug="languages"><title>10:40-10:50 Studying foreign languages with Emacs, Org Mode and gptel</title><rect x="137" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(148,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">languages</text></g></a><a href="/2025/talks/latex" title="LaTeX export in org-mode: the overhaul" data-slug="latex"><title>11:10-11:30 LaTeX export in org-mode: the overhaul</title><rect x="178" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(203,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">latex</text></g></a><a href="/2025/talks/bibliography" title="An enhanced bibliography in org-mode for scientific research and self-directed learning" data-slug="bibliography"><title> 1:00- 1:20 An enhanced bibliography in org-mode for scientific research and self-directed learning</title><rect x="329" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(354,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">bibliography</text></g></a><a href="/2025/talks/calc" title="Basic Calc functionality for engineering or electronics" data-slug="calc"><title> 1:40- 1:50 Basic Calc functionality for engineering or electronics</title><rect x="384" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(395,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">calc</text></g></a><a href="/2025/talks/authoring" title="How Emacs became my authoring playground—no Lisp required" data-slug="authoring"><title> 2:00- 2:10 How Emacs became my authoring playground—no Lisp required</title><rect x="411" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(422,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">authoring</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> 2:30- 2:50 Blee-LCNT: An Emacs-centered content production and self-publication framework</title><rect x="452" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(477,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> 3:10- 3:20 GNU Emacs Greader (Gnamù Reader) mode is the best Emacs mode in existence</title><rect x="507" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(518,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">greader</text></g></a><a href="/2025/talks/sat-close" title="Saturday closing remarks" data-slug="sat-close"><title> 3:30- 3:40 Saturday closing remarks</title><rect x="535" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(546,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">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:45 One year progress update Schemacs (formerly Gypsum)</title><rect x="41" y="75" opacity="0.5" width="20" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(59,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:05-10:25 Juicemacs: Exploring Speculative JIT Compilation for ELisp in Java</title><rect stroke-width="3" x="89" y="75" opacity="0.8" width="27" height="59" stroke="black" stroke-dasharray="5,5,5" fill="skyblue"></rect><g transform="translate(114,133)"><text font-weight="bold" 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:35-10:55 Swanky Python: Interactive development for Python</title><rect x="130" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="5,5,5" fill="skyblue"></rect><g transform="translate(155,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:05-11:25 Interactive Python programming in Emacs</title><rect x="171" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(196,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:20 Emacs, editors, and LLM driven workflows</title><rect x="329" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(354,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">llm</text></g></a><a href="/2025/talks/claude-code" title="emacs-claude-code: Intelligent Claude Integration for Emacs" data-slug="claude-code"><title> 1:40- 2:00 emacs-claude-code: Intelligent Claude Integration for Emacs</title><rect x="384" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="5,5,5" fill="skyblue"></rect><g transform="translate(409,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">claude-code</text></g></a><a href="/2025/talks/private-ai" title="Emacs and private AI: a great match" data-slug="private-ai"><title> 2:10- 2:30 Emacs and private AI: a great match</title><rect x="425" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(450,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:50- 3:10 Common Lisp images communicating like-a-human through shared Emacs slime and eev</title><rect x="480" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="5,5,5" fill="skyblue"></rect><g transform="translate(505,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">commonlisp</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 ]]
diff --git a/2025/info/languages-before.md b/2025/info/languages-before.md
index 429ea1f2..8cc2caf2 100644
--- a/2025/info/languages-before.md
+++ b/2025/info/languages-before.md
@@ -1,7 +1,7 @@
<!-- 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="languages">
-<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 x="0" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(11,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sat-open</text></g></a><a href="/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:50 Emacs as a fully-fledged reference manager</title><rect x="41" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(66,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:10-10:30 org-gmail: A deep integration of Gmail into your Org Mode</title><rect x="96" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(121,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">gmail</text></g></a><a href="/2025/talks/languages" title="Studying foreign languages with Emacs, Org Mode and gptel" data-slug="languages"><title>10:40-10:50 Studying foreign languages with Emacs, Org Mode and gptel</title><rect stroke-width="3" x="137" y="15" opacity="0.8" width="13" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(148,73)"><text font-weight="bold" fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">languages</text></g></a><a href="/2025/talks/latex" title="LaTeX export in org-mode: the overhaul" data-slug="latex"><title>11:10-11:30 LaTeX export in org-mode: the overhaul</title><rect x="178" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(203,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">latex</text></g></a><a href="/2025/talks/bibliography" title="An enhanced bibliography in org-mode for scientific research and self-directed learning" data-slug="bibliography"><title> 1:00- 1:20 An enhanced bibliography in org-mode for scientific research and self-directed learning</title><rect x="329" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(354,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">bibliography</text></g></a><a href="/2025/talks/calc" title="Basic Calc functionality for engineering or electronics" data-slug="calc"><title> 1:40- 1:50 Basic Calc functionality for engineering or electronics</title><rect x="384" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(395,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">calc</text></g></a><a href="/2025/talks/authoring" title="How Emacs became my authoring playground—no Lisp required" data-slug="authoring"><title> 2:00- 2:10 How Emacs became my authoring playground—no Lisp required</title><rect x="411" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(422,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">authoring</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> 2:30- 2:50 Blee-LCNT: An Emacs-centered content production and self-publication framework</title><rect x="452" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(477,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> 3:10- 3:20 GNU Emacs Greader (Gnamù Reader) mode is the best Emacs mode in existence</title><rect x="507" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(518,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">greader</text></g></a><a href="/2025/talks/n-angulator" title="Org-mode GTD vs N-angulator GTD" data-slug="n-angulator"><title> 3:30- 3:40 Org-mode GTD vs N-angulator GTD</title><rect x="535" y="15" opacity="0.5" width="13" 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)">n-angulator</text></g></a><a href="/2025/talks/sat-close" title="Saturday closing remarks" data-slug="sat-close"><title> 4:00- 4:10 Saturday closing remarks</title><rect x="576" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(587,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">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:45 One year progress update Schemacs (formerly Gypsum)</title><rect x="41" y="75" opacity="0.5" width="20" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(59,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:05-10:25 Juicemacs: Exploring Speculative JIT Compilation for ELisp in Java</title><rect x="89" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="5,5,5" fill="skyblue"></rect><g transform="translate(114,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:35-10:55 Swanky Python: Interactive development for Python</title><rect x="130" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="5,5,5" fill="skyblue"></rect><g transform="translate(155,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:05-11:25 Interactive Python programming in Emacs</title><rect x="171" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(196,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:20 Emacs, editors, and LLM driven workflows</title><rect x="329" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(354,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">llm</text></g></a><a href="/2025/talks/claude-code" title="emacs-claude-code: Intelligent Claude Integration for Emacs" data-slug="claude-code"><title> 1:40- 2:00 emacs-claude-code: Intelligent Claude Integration for Emacs</title><rect x="384" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="5,5,5" fill="skyblue"></rect><g transform="translate(409,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">claude-code</text></g></a><a href="/2025/talks/private-ai" title="Emacs and private AI: a great match" data-slug="private-ai"><title> 2:10- 2:30 Emacs and private AI: a great match</title><rect x="425" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(450,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:50- 3:10 Common Lisp images communicating like-a-human through shared Emacs slime and eev</title><rect x="480" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="5,5,5" fill="skyblue"></rect><g transform="translate(505,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">commonlisp</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 x="0" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(11,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sat-open</text></g></a><a href="/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:50 Emacs as a fully-fledged reference manager</title><rect x="41" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(66,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:10-10:30 org-gmail: A deep integration of Gmail into your Org Mode</title><rect x="96" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(121,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">gmail</text></g></a><a href="/2025/talks/languages" title="Studying foreign languages with Emacs, Org Mode and gptel" data-slug="languages"><title>10:40-10:50 Studying foreign languages with Emacs, Org Mode and gptel</title><rect stroke-width="3" x="137" y="15" opacity="0.8" width="13" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(148,73)"><text font-weight="bold" fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">languages</text></g></a><a href="/2025/talks/latex" title="LaTeX export in org-mode: the overhaul" data-slug="latex"><title>11:10-11:30 LaTeX export in org-mode: the overhaul</title><rect x="178" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(203,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">latex</text></g></a><a href="/2025/talks/bibliography" title="An enhanced bibliography in org-mode for scientific research and self-directed learning" data-slug="bibliography"><title> 1:00- 1:20 An enhanced bibliography in org-mode for scientific research and self-directed learning</title><rect x="329" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(354,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">bibliography</text></g></a><a href="/2025/talks/calc" title="Basic Calc functionality for engineering or electronics" data-slug="calc"><title> 1:40- 1:50 Basic Calc functionality for engineering or electronics</title><rect x="384" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(395,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">calc</text></g></a><a href="/2025/talks/authoring" title="How Emacs became my authoring playground—no Lisp required" data-slug="authoring"><title> 2:00- 2:10 How Emacs became my authoring playground—no Lisp required</title><rect x="411" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(422,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">authoring</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> 2:30- 2:50 Blee-LCNT: An Emacs-centered content production and self-publication framework</title><rect x="452" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(477,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> 3:10- 3:20 GNU Emacs Greader (Gnamù Reader) mode is the best Emacs mode in existence</title><rect x="507" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(518,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">greader</text></g></a><a href="/2025/talks/sat-close" title="Saturday closing remarks" data-slug="sat-close"><title> 3:30- 3:40 Saturday closing remarks</title><rect x="535" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(546,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">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:45 One year progress update Schemacs (formerly Gypsum)</title><rect x="41" y="75" opacity="0.5" width="20" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(59,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:05-10:25 Juicemacs: Exploring Speculative JIT Compilation for ELisp in Java</title><rect x="89" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="5,5,5" fill="skyblue"></rect><g transform="translate(114,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:35-10:55 Swanky Python: Interactive development for Python</title><rect x="130" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="5,5,5" fill="skyblue"></rect><g transform="translate(155,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:05-11:25 Interactive Python programming in Emacs</title><rect x="171" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(196,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:20 Emacs, editors, and LLM driven workflows</title><rect x="329" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(354,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">llm</text></g></a><a href="/2025/talks/claude-code" title="emacs-claude-code: Intelligent Claude Integration for Emacs" data-slug="claude-code"><title> 1:40- 2:00 emacs-claude-code: Intelligent Claude Integration for Emacs</title><rect x="384" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="5,5,5" fill="skyblue"></rect><g transform="translate(409,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">claude-code</text></g></a><a href="/2025/talks/private-ai" title="Emacs and private AI: a great match" data-slug="private-ai"><title> 2:10- 2:30 Emacs and private AI: a great match</title><rect x="425" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(450,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:50- 3:10 Common Lisp images communicating like-a-human through shared Emacs slime and eev</title><rect x="480" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="5,5,5" fill="skyblue"></rect><g transform="translate(505,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">commonlisp</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 ]]
diff --git a/2025/info/latex-before.md b/2025/info/latex-before.md
index 6c2d60a9..427ff472 100644
--- a/2025/info/latex-before.md
+++ b/2025/info/latex-before.md
@@ -1,7 +1,7 @@
<!-- 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="latex">
-<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 x="0" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(11,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sat-open</text></g></a><a href="/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:50 Emacs as a fully-fledged reference manager</title><rect x="41" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(66,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:10-10:30 org-gmail: A deep integration of Gmail into your Org Mode</title><rect x="96" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(121,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">gmail</text></g></a><a href="/2025/talks/languages" title="Studying foreign languages with Emacs, Org Mode and gptel" data-slug="languages"><title>10:40-10:50 Studying foreign languages with Emacs, Org Mode and gptel</title><rect x="137" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(148,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">languages</text></g></a><a href="/2025/talks/latex" title="LaTeX export in org-mode: the overhaul" data-slug="latex"><title>11:10-11:30 LaTeX export in org-mode: the overhaul</title><rect stroke-width="3" x="178" y="15" opacity="0.8" width="27" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(203,73)"><text font-weight="bold" fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">latex</text></g></a><a href="/2025/talks/bibliography" title="An enhanced bibliography in org-mode for scientific research and self-directed learning" data-slug="bibliography"><title> 1:00- 1:20 An enhanced bibliography in org-mode for scientific research and self-directed learning</title><rect x="329" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(354,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">bibliography</text></g></a><a href="/2025/talks/calc" title="Basic Calc functionality for engineering or electronics" data-slug="calc"><title> 1:40- 1:50 Basic Calc functionality for engineering or electronics</title><rect x="384" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(395,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">calc</text></g></a><a href="/2025/talks/authoring" title="How Emacs became my authoring playground—no Lisp required" data-slug="authoring"><title> 2:00- 2:10 How Emacs became my authoring playground—no Lisp required</title><rect x="411" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(422,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">authoring</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> 2:30- 2:50 Blee-LCNT: An Emacs-centered content production and self-publication framework</title><rect x="452" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(477,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> 3:10- 3:20 GNU Emacs Greader (Gnamù Reader) mode is the best Emacs mode in existence</title><rect x="507" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(518,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">greader</text></g></a><a href="/2025/talks/n-angulator" title="Org-mode GTD vs N-angulator GTD" data-slug="n-angulator"><title> 3:30- 3:40 Org-mode GTD vs N-angulator GTD</title><rect x="535" y="15" opacity="0.5" width="13" 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)">n-angulator</text></g></a><a href="/2025/talks/sat-close" title="Saturday closing remarks" data-slug="sat-close"><title> 4:00- 4:10 Saturday closing remarks</title><rect x="576" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(587,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">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:45 One year progress update Schemacs (formerly Gypsum)</title><rect x="41" y="75" opacity="0.5" width="20" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(59,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:05-10:25 Juicemacs: Exploring Speculative JIT Compilation for ELisp in Java</title><rect x="89" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="5,5,5" fill="skyblue"></rect><g transform="translate(114,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:35-10:55 Swanky Python: Interactive development for Python</title><rect x="130" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="5,5,5" fill="skyblue"></rect><g transform="translate(155,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:05-11:25 Interactive Python programming in Emacs</title><rect x="171" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(196,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:20 Emacs, editors, and LLM driven workflows</title><rect x="329" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(354,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">llm</text></g></a><a href="/2025/talks/claude-code" title="emacs-claude-code: Intelligent Claude Integration for Emacs" data-slug="claude-code"><title> 1:40- 2:00 emacs-claude-code: Intelligent Claude Integration for Emacs</title><rect x="384" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="5,5,5" fill="skyblue"></rect><g transform="translate(409,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">claude-code</text></g></a><a href="/2025/talks/private-ai" title="Emacs and private AI: a great match" data-slug="private-ai"><title> 2:10- 2:30 Emacs and private AI: a great match</title><rect x="425" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(450,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:50- 3:10 Common Lisp images communicating like-a-human through shared Emacs slime and eev</title><rect x="480" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="5,5,5" fill="skyblue"></rect><g transform="translate(505,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">commonlisp</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 x="0" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(11,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sat-open</text></g></a><a href="/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:50 Emacs as a fully-fledged reference manager</title><rect x="41" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(66,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:10-10:30 org-gmail: A deep integration of Gmail into your Org Mode</title><rect x="96" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(121,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">gmail</text></g></a><a href="/2025/talks/languages" title="Studying foreign languages with Emacs, Org Mode and gptel" data-slug="languages"><title>10:40-10:50 Studying foreign languages with Emacs, Org Mode and gptel</title><rect x="137" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(148,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">languages</text></g></a><a href="/2025/talks/latex" title="LaTeX export in org-mode: the overhaul" data-slug="latex"><title>11:10-11:30 LaTeX export in org-mode: the overhaul</title><rect stroke-width="3" x="178" y="15" opacity="0.8" width="27" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(203,73)"><text font-weight="bold" fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">latex</text></g></a><a href="/2025/talks/bibliography" title="An enhanced bibliography in org-mode for scientific research and self-directed learning" data-slug="bibliography"><title> 1:00- 1:20 An enhanced bibliography in org-mode for scientific research and self-directed learning</title><rect x="329" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(354,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">bibliography</text></g></a><a href="/2025/talks/calc" title="Basic Calc functionality for engineering or electronics" data-slug="calc"><title> 1:40- 1:50 Basic Calc functionality for engineering or electronics</title><rect x="384" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(395,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">calc</text></g></a><a href="/2025/talks/authoring" title="How Emacs became my authoring playground—no Lisp required" data-slug="authoring"><title> 2:00- 2:10 How Emacs became my authoring playground—no Lisp required</title><rect x="411" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(422,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">authoring</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> 2:30- 2:50 Blee-LCNT: An Emacs-centered content production and self-publication framework</title><rect x="452" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(477,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> 3:10- 3:20 GNU Emacs Greader (Gnamù Reader) mode is the best Emacs mode in existence</title><rect x="507" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(518,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">greader</text></g></a><a href="/2025/talks/sat-close" title="Saturday closing remarks" data-slug="sat-close"><title> 3:30- 3:40 Saturday closing remarks</title><rect x="535" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(546,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">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:45 One year progress update Schemacs (formerly Gypsum)</title><rect x="41" y="75" opacity="0.5" width="20" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(59,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:05-10:25 Juicemacs: Exploring Speculative JIT Compilation for ELisp in Java</title><rect x="89" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="5,5,5" fill="skyblue"></rect><g transform="translate(114,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:35-10:55 Swanky Python: Interactive development for Python</title><rect x="130" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="5,5,5" fill="skyblue"></rect><g transform="translate(155,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:05-11:25 Interactive Python programming in Emacs</title><rect x="171" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(196,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:20 Emacs, editors, and LLM driven workflows</title><rect x="329" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(354,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">llm</text></g></a><a href="/2025/talks/claude-code" title="emacs-claude-code: Intelligent Claude Integration for Emacs" data-slug="claude-code"><title> 1:40- 2:00 emacs-claude-code: Intelligent Claude Integration for Emacs</title><rect x="384" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="5,5,5" fill="skyblue"></rect><g transform="translate(409,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">claude-code</text></g></a><a href="/2025/talks/private-ai" title="Emacs and private AI: a great match" data-slug="private-ai"><title> 2:10- 2:30 Emacs and private AI: a great match</title><rect x="425" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(450,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:50- 3:10 Common Lisp images communicating like-a-human through shared Emacs slime and eev</title><rect x="480" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="5,5,5" fill="skyblue"></rect><g transform="translate(505,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">commonlisp</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 ]]
diff --git a/2025/info/llm-before.md b/2025/info/llm-before.md
index 3f99acac..17d28fae 100644
--- a/2025/info/llm-before.md
+++ b/2025/info/llm-before.md
@@ -1,7 +1,7 @@
<!-- 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="llm">
-<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 x="0" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(11,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sat-open</text></g></a><a href="/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:50 Emacs as a fully-fledged reference manager</title><rect x="41" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(66,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:10-10:30 org-gmail: A deep integration of Gmail into your Org Mode</title><rect x="96" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(121,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">gmail</text></g></a><a href="/2025/talks/languages" title="Studying foreign languages with Emacs, Org Mode and gptel" data-slug="languages"><title>10:40-10:50 Studying foreign languages with Emacs, Org Mode and gptel</title><rect x="137" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(148,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">languages</text></g></a><a href="/2025/talks/latex" title="LaTeX export in org-mode: the overhaul" data-slug="latex"><title>11:10-11:30 LaTeX export in org-mode: the overhaul</title><rect x="178" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(203,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">latex</text></g></a><a href="/2025/talks/bibliography" title="An enhanced bibliography in org-mode for scientific research and self-directed learning" data-slug="bibliography"><title> 1:00- 1:20 An enhanced bibliography in org-mode for scientific research and self-directed learning</title><rect x="329" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(354,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">bibliography</text></g></a><a href="/2025/talks/calc" title="Basic Calc functionality for engineering or electronics" data-slug="calc"><title> 1:40- 1:50 Basic Calc functionality for engineering or electronics</title><rect x="384" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(395,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">calc</text></g></a><a href="/2025/talks/authoring" title="How Emacs became my authoring playground—no Lisp required" data-slug="authoring"><title> 2:00- 2:10 How Emacs became my authoring playground—no Lisp required</title><rect x="411" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(422,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">authoring</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> 2:30- 2:50 Blee-LCNT: An Emacs-centered content production and self-publication framework</title><rect x="452" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(477,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> 3:10- 3:20 GNU Emacs Greader (Gnamù Reader) mode is the best Emacs mode in existence</title><rect x="507" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(518,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">greader</text></g></a><a href="/2025/talks/n-angulator" title="Org-mode GTD vs N-angulator GTD" data-slug="n-angulator"><title> 3:30- 3:40 Org-mode GTD vs N-angulator GTD</title><rect x="535" y="15" opacity="0.5" width="13" 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)">n-angulator</text></g></a><a href="/2025/talks/sat-close" title="Saturday closing remarks" data-slug="sat-close"><title> 4:00- 4:10 Saturday closing remarks</title><rect x="576" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(587,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">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:45 One year progress update Schemacs (formerly Gypsum)</title><rect x="41" y="75" opacity="0.5" width="20" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(59,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:05-10:25 Juicemacs: Exploring Speculative JIT Compilation for ELisp in Java</title><rect x="89" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="5,5,5" fill="skyblue"></rect><g transform="translate(114,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:35-10:55 Swanky Python: Interactive development for Python</title><rect x="130" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="5,5,5" fill="skyblue"></rect><g transform="translate(155,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:05-11:25 Interactive Python programming in Emacs</title><rect x="171" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(196,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:20 Emacs, editors, and LLM driven workflows</title><rect stroke-width="3" x="329" y="75" opacity="0.8" width="27" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(354,133)"><text font-weight="bold" fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">llm</text></g></a><a href="/2025/talks/claude-code" title="emacs-claude-code: Intelligent Claude Integration for Emacs" data-slug="claude-code"><title> 1:40- 2:00 emacs-claude-code: Intelligent Claude Integration for Emacs</title><rect x="384" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="5,5,5" fill="skyblue"></rect><g transform="translate(409,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">claude-code</text></g></a><a href="/2025/talks/private-ai" title="Emacs and private AI: a great match" data-slug="private-ai"><title> 2:10- 2:30 Emacs and private AI: a great match</title><rect x="425" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(450,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:50- 3:10 Common Lisp images communicating like-a-human through shared Emacs slime and eev</title><rect x="480" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="5,5,5" fill="skyblue"></rect><g transform="translate(505,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">commonlisp</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 x="0" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(11,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sat-open</text></g></a><a href="/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:50 Emacs as a fully-fledged reference manager</title><rect x="41" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(66,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:10-10:30 org-gmail: A deep integration of Gmail into your Org Mode</title><rect x="96" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(121,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">gmail</text></g></a><a href="/2025/talks/languages" title="Studying foreign languages with Emacs, Org Mode and gptel" data-slug="languages"><title>10:40-10:50 Studying foreign languages with Emacs, Org Mode and gptel</title><rect x="137" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(148,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">languages</text></g></a><a href="/2025/talks/latex" title="LaTeX export in org-mode: the overhaul" data-slug="latex"><title>11:10-11:30 LaTeX export in org-mode: the overhaul</title><rect x="178" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(203,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">latex</text></g></a><a href="/2025/talks/bibliography" title="An enhanced bibliography in org-mode for scientific research and self-directed learning" data-slug="bibliography"><title> 1:00- 1:20 An enhanced bibliography in org-mode for scientific research and self-directed learning</title><rect x="329" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(354,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">bibliography</text></g></a><a href="/2025/talks/calc" title="Basic Calc functionality for engineering or electronics" data-slug="calc"><title> 1:40- 1:50 Basic Calc functionality for engineering or electronics</title><rect x="384" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(395,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">calc</text></g></a><a href="/2025/talks/authoring" title="How Emacs became my authoring playground—no Lisp required" data-slug="authoring"><title> 2:00- 2:10 How Emacs became my authoring playground—no Lisp required</title><rect x="411" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(422,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">authoring</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> 2:30- 2:50 Blee-LCNT: An Emacs-centered content production and self-publication framework</title><rect x="452" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(477,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> 3:10- 3:20 GNU Emacs Greader (Gnamù Reader) mode is the best Emacs mode in existence</title><rect x="507" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(518,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">greader</text></g></a><a href="/2025/talks/sat-close" title="Saturday closing remarks" data-slug="sat-close"><title> 3:30- 3:40 Saturday closing remarks</title><rect x="535" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(546,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">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:45 One year progress update Schemacs (formerly Gypsum)</title><rect x="41" y="75" opacity="0.5" width="20" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(59,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:05-10:25 Juicemacs: Exploring Speculative JIT Compilation for ELisp in Java</title><rect x="89" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="5,5,5" fill="skyblue"></rect><g transform="translate(114,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:35-10:55 Swanky Python: Interactive development for Python</title><rect x="130" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="5,5,5" fill="skyblue"></rect><g transform="translate(155,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:05-11:25 Interactive Python programming in Emacs</title><rect x="171" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(196,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:20 Emacs, editors, and LLM driven workflows</title><rect stroke-width="3" x="329" y="75" opacity="0.8" width="27" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(354,133)"><text font-weight="bold" fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">llm</text></g></a><a href="/2025/talks/claude-code" title="emacs-claude-code: Intelligent Claude Integration for Emacs" data-slug="claude-code"><title> 1:40- 2:00 emacs-claude-code: Intelligent Claude Integration for Emacs</title><rect x="384" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="5,5,5" fill="skyblue"></rect><g transform="translate(409,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">claude-code</text></g></a><a href="/2025/talks/private-ai" title="Emacs and private AI: a great match" data-slug="private-ai"><title> 2:10- 2:30 Emacs and private AI: a great match</title><rect x="425" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(450,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:50- 3:10 Common Lisp images communicating like-a-human through shared Emacs slime and eev</title><rect x="480" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="5,5,5" fill="skyblue"></rect><g transform="translate(505,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">commonlisp</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 ]]
diff --git a/2025/info/n-angulator-before.md b/2025/info/n-angulator-before.md
index caf9c938..a24ee5fd 100644
--- a/2025/info/n-angulator-before.md
+++ b/2025/info/n-angulator-before.md
@@ -1,14 +1,9 @@
<!-- 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="n-angulator">
-<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 x="0" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(11,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sat-open</text></g></a><a href="/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:50 Emacs as a fully-fledged reference manager</title><rect x="41" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(66,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:10-10:30 org-gmail: A deep integration of Gmail into your Org Mode</title><rect x="96" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(121,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">gmail</text></g></a><a href="/2025/talks/languages" title="Studying foreign languages with Emacs, Org Mode and gptel" data-slug="languages"><title>10:40-10:50 Studying foreign languages with Emacs, Org Mode and gptel</title><rect x="137" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(148,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">languages</text></g></a><a href="/2025/talks/latex" title="LaTeX export in org-mode: the overhaul" data-slug="latex"><title>11:10-11:30 LaTeX export in org-mode: the overhaul</title><rect x="178" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(203,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">latex</text></g></a><a href="/2025/talks/bibliography" title="An enhanced bibliography in org-mode for scientific research and self-directed learning" data-slug="bibliography"><title> 1:00- 1:20 An enhanced bibliography in org-mode for scientific research and self-directed learning</title><rect x="329" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(354,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">bibliography</text></g></a><a href="/2025/talks/calc" title="Basic Calc functionality for engineering or electronics" data-slug="calc"><title> 1:40- 1:50 Basic Calc functionality for engineering or electronics</title><rect x="384" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(395,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">calc</text></g></a><a href="/2025/talks/authoring" title="How Emacs became my authoring playground—no Lisp required" data-slug="authoring"><title> 2:00- 2:10 How Emacs became my authoring playground—no Lisp required</title><rect x="411" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(422,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">authoring</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> 2:30- 2:50 Blee-LCNT: An Emacs-centered content production and self-publication framework</title><rect x="452" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(477,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> 3:10- 3:20 GNU Emacs Greader (Gnamù Reader) mode is the best Emacs mode in existence</title><rect x="507" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(518,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">greader</text></g></a><a href="/2025/talks/n-angulator" title="Org-mode GTD vs N-angulator GTD" data-slug="n-angulator"><title> 3:30- 3:40 Org-mode GTD vs N-angulator GTD</title><rect stroke-width="3" x="535" y="15" opacity="0.8" width="13" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(546,73)"><text font-weight="bold" fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">n-angulator</text></g></a><a href="/2025/talks/sat-close" title="Saturday closing remarks" data-slug="sat-close"><title> 4:00- 4:10 Saturday closing remarks</title><rect x="576" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(587,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">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:45 One year progress update Schemacs (formerly Gypsum)</title><rect x="41" y="75" opacity="0.5" width="20" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(59,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:05-10:25 Juicemacs: Exploring Speculative JIT Compilation for ELisp in Java</title><rect x="89" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="5,5,5" fill="skyblue"></rect><g transform="translate(114,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:35-10:55 Swanky Python: Interactive development for Python</title><rect x="130" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="5,5,5" fill="skyblue"></rect><g transform="translate(155,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:05-11:25 Interactive Python programming in Emacs</title><rect x="171" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(196,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:20 Emacs, editors, and LLM driven workflows</title><rect x="329" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(354,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">llm</text></g></a><a href="/2025/talks/claude-code" title="emacs-claude-code: Intelligent Claude Integration for Emacs" data-slug="claude-code"><title> 1:40- 2:00 emacs-claude-code: Intelligent Claude Integration for Emacs</title><rect x="384" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="5,5,5" fill="skyblue"></rect><g transform="translate(409,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">claude-code</text></g></a><a href="/2025/talks/private-ai" title="Emacs and private AI: a great match" data-slug="private-ai"><title> 2:10- 2:30 Emacs and private AI: a great match</title><rect x="425" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(450,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:50- 3:10 Common Lisp images communicating like-a-human through shared Emacs slime and eev</title><rect x="480" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="5,5,5" fill="skyblue"></rect><g transform="translate(505,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">commonlisp</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: 10-min talk ; Q&A: BigBlueButton conference room <https://media.emacsconf.org/2025/current/bbb-n-angulator.html>
+Format: 10-min talk cancelled
Discuss on IRC: [#emacsconf](https://chat.emacsconf.org/?join=emacsconf)
-Status: Waiting for video from speaker
-<div>Times in different time zones:</div><div class="times" start="2025-12-06T20:30:00Z" end="2025-12-06T20:40:00Z"><div class="conf-time">Saturday, Dec 6 2025, ~3:30 PM - 3:40 PM EST (US/Eastern)</div><div class="others"><div>which is the same as:</div>Saturday, Dec 6 2025, ~2:30 PM - 2:40 PM CST (US/Central)<br />Saturday, Dec 6 2025, ~1:30 PM - 1:40 PM MST (US/Mountain)<br />Saturday, Dec 6 2025, ~12:30 PM - 12:40 PM PST (US/Pacific)<br />Saturday, Dec 6 2025, ~8:30 PM - 8:40 PM UTC <br />Saturday, Dec 6 2025, ~9:30 PM - 9:40 PM CET (Europe/Paris)<br />Saturday, Dec 6 2025, ~10:30 PM - 10:40 PM EET (Europe/Athens)<br />Sunday, Dec 7 2025, ~2:00 AM - 2:10 AM IST (Asia/Kolkata)<br />Sunday, Dec 7 2025, ~4:30 AM - 4:40 AM +08 (Asia/Singapore)<br />Sunday, Dec 7 2025, ~5:30 AM - 5:40 AM JST (Asia/Tokyo)</div></div><div><strong><a href="/2025/watch/gen/">Find out how to watch and participate</a></strong></div>
+Status: Sorry, this talk has been cancelled
+
diff --git a/2025/info/n-angulator-nav.md b/2025/info/n-angulator-nav.md
index b6075f20..35ed938a 100644
--- a/2025/info/n-angulator-nav.md
+++ b/2025/info/n-angulator-nav.md
@@ -1,7 +1,4 @@
<div class="talk-nav">
Back to the [[talks]]
-Previous by time: <a href="/2025/talks/greader">GNU Emacs Greader (Gnamù Reader) mode is the best Emacs mode in existence</a>
-Next by time: <a href="/2025/talks/sat-close">Saturday closing remarks</a>
-Track: <span class="sched-track General">General</span> - <strong><a href="https://emacsconf.org/2025/watch/gen">Watch</a></strong>
-</div>
+</div> \ No newline at end of file
diff --git a/2025/info/org-babel-before.md b/2025/info/org-babel-before.md
index 35f06435..5b32a3ba 100644
--- a/2025/info/org-babel-before.md
+++ b/2025/info/org-babel-before.md
@@ -1,11 +1,11 @@
<!-- 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="org-babel">
-<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 x="0" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(11,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sat-open</text></g></a><a href="/2025/talks/org-babel" title="Making Org-Babel reactive" data-slug="org-babel"><title> 9:10- 9:20 Making Org-Babel reactive</title><rect stroke-width="3" x="13" y="15" opacity="0.8" width="13" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(24,73)"><text font-weight="bold" fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">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:50 Emacs as a fully-fledged reference manager</title><rect x="41" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(66,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:10-10:30 org-gmail: A deep integration of Gmail into your Org Mode</title><rect x="96" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(121,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">gmail</text></g></a><a href="/2025/talks/languages" title="Studying foreign languages with Emacs, Org Mode and gptel" data-slug="languages"><title>10:40-10:50 Studying foreign languages with Emacs, Org Mode and gptel</title><rect x="137" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(148,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">languages</text></g></a><a href="/2025/talks/latex" title="LaTeX export in org-mode: the overhaul" data-slug="latex"><title>11:10-11:30 LaTeX export in org-mode: the overhaul</title><rect x="178" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(203,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">latex</text></g></a><a href="/2025/talks/bibliography" title="An enhanced bibliography in org-mode for scientific research and self-directed learning" data-slug="bibliography"><title> 1:00- 1:20 An enhanced bibliography in org-mode for scientific research and self-directed learning</title><rect x="329" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(354,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">bibliography</text></g></a><a href="/2025/talks/calc" title="Basic Calc functionality for engineering or electronics" data-slug="calc"><title> 1:40- 1:50 Basic Calc functionality for engineering or electronics</title><rect x="384" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(395,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">calc</text></g></a><a href="/2025/talks/authoring" title="How Emacs became my authoring playground—no Lisp required" data-slug="authoring"><title> 2:00- 2:10 How Emacs became my authoring playground—no Lisp required</title><rect x="411" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(422,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">authoring</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> 2:30- 2:50 Blee-LCNT: An Emacs-centered content production and self-publication framework</title><rect x="452" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(477,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> 3:10- 3:20 GNU Emacs Greader (Gnamù Reader) mode is the best Emacs mode in existence</title><rect x="507" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(518,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">greader</text></g></a><a href="/2025/talks/n-angulator" title="Org-mode GTD vs N-angulator GTD" data-slug="n-angulator"><title> 3:30- 3:40 Org-mode GTD vs N-angulator GTD</title><rect x="535" y="15" opacity="0.5" width="13" 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)">n-angulator</text></g></a><a href="/2025/talks/sat-close" title="Saturday closing remarks" data-slug="sat-close"><title> 4:00- 4:10 Saturday closing remarks</title><rect x="576" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(587,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">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:45 One year progress update Schemacs (formerly Gypsum)</title><rect x="41" y="75" opacity="0.5" width="20" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(59,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:05-10:25 Juicemacs: Exploring Speculative JIT Compilation for ELisp in Java</title><rect x="89" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="5,5,5" fill="skyblue"></rect><g transform="translate(114,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:35-10:55 Swanky Python: Interactive development for Python</title><rect x="130" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="5,5,5" fill="skyblue"></rect><g transform="translate(155,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:05-11:25 Interactive Python programming in Emacs</title><rect x="171" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(196,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:20 Emacs, editors, and LLM driven workflows</title><rect x="329" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(354,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">llm</text></g></a><a href="/2025/talks/claude-code" title="emacs-claude-code: Intelligent Claude Integration for Emacs" data-slug="claude-code"><title> 1:40- 2:00 emacs-claude-code: Intelligent Claude Integration for Emacs</title><rect x="384" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="5,5,5" fill="skyblue"></rect><g transform="translate(409,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">claude-code</text></g></a><a href="/2025/talks/private-ai" title="Emacs and private AI: a great match" data-slug="private-ai"><title> 2:10- 2:30 Emacs and private AI: a great match</title><rect x="425" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(450,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:50- 3:10 Common Lisp images communicating like-a-human through shared Emacs slime and eev</title><rect x="480" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="5,5,5" fill="skyblue"></rect><g transform="translate(505,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">commonlisp</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 x="0" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(11,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sat-open</text></g></a><a href="/2025/talks/org-babel" title="Making Org-Babel reactive" data-slug="org-babel"><title> 9:10- 9:20 Making Org-Babel reactive</title><rect stroke-width="3" x="13" y="15" opacity="0.8" width="13" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(24,73)"><text font-weight="bold" fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">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:50 Emacs as a fully-fledged reference manager</title><rect x="41" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(66,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:10-10:30 org-gmail: A deep integration of Gmail into your Org Mode</title><rect x="96" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(121,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">gmail</text></g></a><a href="/2025/talks/languages" title="Studying foreign languages with Emacs, Org Mode and gptel" data-slug="languages"><title>10:40-10:50 Studying foreign languages with Emacs, Org Mode and gptel</title><rect x="137" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(148,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">languages</text></g></a><a href="/2025/talks/latex" title="LaTeX export in org-mode: the overhaul" data-slug="latex"><title>11:10-11:30 LaTeX export in org-mode: the overhaul</title><rect x="178" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(203,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">latex</text></g></a><a href="/2025/talks/bibliography" title="An enhanced bibliography in org-mode for scientific research and self-directed learning" data-slug="bibliography"><title> 1:00- 1:20 An enhanced bibliography in org-mode for scientific research and self-directed learning</title><rect x="329" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(354,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">bibliography</text></g></a><a href="/2025/talks/calc" title="Basic Calc functionality for engineering or electronics" data-slug="calc"><title> 1:40- 1:50 Basic Calc functionality for engineering or electronics</title><rect x="384" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(395,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">calc</text></g></a><a href="/2025/talks/authoring" title="How Emacs became my authoring playground—no Lisp required" data-slug="authoring"><title> 2:00- 2:10 How Emacs became my authoring playground—no Lisp required</title><rect x="411" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(422,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">authoring</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> 2:30- 2:50 Blee-LCNT: An Emacs-centered content production and self-publication framework</title><rect x="452" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(477,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> 3:10- 3:20 GNU Emacs Greader (Gnamù Reader) mode is the best Emacs mode in existence</title><rect x="507" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(518,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">greader</text></g></a><a href="/2025/talks/sat-close" title="Saturday closing remarks" data-slug="sat-close"><title> 3:30- 3:40 Saturday closing remarks</title><rect x="535" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(546,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">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:45 One year progress update Schemacs (formerly Gypsum)</title><rect x="41" y="75" opacity="0.5" width="20" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(59,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:05-10:25 Juicemacs: Exploring Speculative JIT Compilation for ELisp in Java</title><rect x="89" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="5,5,5" fill="skyblue"></rect><g transform="translate(114,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:35-10:55 Swanky Python: Interactive development for Python</title><rect x="130" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="5,5,5" fill="skyblue"></rect><g transform="translate(155,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:05-11:25 Interactive Python programming in Emacs</title><rect x="171" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(196,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:20 Emacs, editors, and LLM driven workflows</title><rect x="329" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(354,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">llm</text></g></a><a href="/2025/talks/claude-code" title="emacs-claude-code: Intelligent Claude Integration for Emacs" data-slug="claude-code"><title> 1:40- 2:00 emacs-claude-code: Intelligent Claude Integration for Emacs</title><rect x="384" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="5,5,5" fill="skyblue"></rect><g transform="translate(409,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">claude-code</text></g></a><a href="/2025/talks/private-ai" title="Emacs and private AI: a great match" data-slug="private-ai"><title> 2:10- 2:30 Emacs and private AI: a great match</title><rect x="425" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(450,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:50- 3:10 Common Lisp images communicating like-a-human through shared Emacs slime and eev</title><rect x="480" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="5,5,5" fill="skyblue"></rect><g transform="translate(505,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">commonlisp</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: 10-min talk ; Q&A: Etherpad <https://pad.emacsconf.org/2025-org-babel>
+Format: 9-min talk ; Q&A: Etherpad <https://pad.emacsconf.org/2025-org-babel>
Discuss on IRC: [#emacsconf](https://chat.emacsconf.org/?join=emacsconf)
Status: Ready to stream
<div>Times in different time zones:</div><div class="times" start="2025-12-06T14:10:00Z" end="2025-12-06T14:20:00Z"><div class="conf-time">Saturday, Dec 6 2025, ~9:10 AM - 9:20 AM EST (US/Eastern)</div><div class="others"><div>which is the same as:</div>Saturday, Dec 6 2025, ~8:10 AM - 8:20 AM CST (US/Central)<br />Saturday, Dec 6 2025, ~7:10 AM - 7:20 AM MST (US/Mountain)<br />Saturday, Dec 6 2025, ~6:10 AM - 6:20 AM PST (US/Pacific)<br />Saturday, Dec 6 2025, ~2:10 PM - 2:20 PM UTC <br />Saturday, Dec 6 2025, ~3:10 PM - 3:20 PM CET (Europe/Paris)<br />Saturday, Dec 6 2025, ~4:10 PM - 4:20 PM EET (Europe/Athens)<br />Saturday, Dec 6 2025, ~7:40 PM - 7:50 PM IST (Asia/Kolkata)<br />Saturday, Dec 6 2025, ~10:10 PM - 10:20 PM +08 (Asia/Singapore)<br />Saturday, Dec 6 2025, ~11:10 PM - 11:20 PM JST (Asia/Tokyo)</div></div><div><strong><a href="/2025/watch/gen/">Find out how to watch and participate</a></strong></div>
diff --git a/2025/info/private-ai-before.md b/2025/info/private-ai-before.md
index 29b8b791..ea5e837f 100644
--- a/2025/info/private-ai-before.md
+++ b/2025/info/private-ai-before.md
@@ -1,7 +1,7 @@
<!-- 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="private-ai">
-<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 x="0" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(11,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sat-open</text></g></a><a href="/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:50 Emacs as a fully-fledged reference manager</title><rect x="41" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(66,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:10-10:30 org-gmail: A deep integration of Gmail into your Org Mode</title><rect x="96" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(121,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">gmail</text></g></a><a href="/2025/talks/languages" title="Studying foreign languages with Emacs, Org Mode and gptel" data-slug="languages"><title>10:40-10:50 Studying foreign languages with Emacs, Org Mode and gptel</title><rect x="137" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(148,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">languages</text></g></a><a href="/2025/talks/latex" title="LaTeX export in org-mode: the overhaul" data-slug="latex"><title>11:10-11:30 LaTeX export in org-mode: the overhaul</title><rect x="178" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(203,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">latex</text></g></a><a href="/2025/talks/bibliography" title="An enhanced bibliography in org-mode for scientific research and self-directed learning" data-slug="bibliography"><title> 1:00- 1:20 An enhanced bibliography in org-mode for scientific research and self-directed learning</title><rect x="329" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(354,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">bibliography</text></g></a><a href="/2025/talks/calc" title="Basic Calc functionality for engineering or electronics" data-slug="calc"><title> 1:40- 1:50 Basic Calc functionality for engineering or electronics</title><rect x="384" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(395,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">calc</text></g></a><a href="/2025/talks/authoring" title="How Emacs became my authoring playground—no Lisp required" data-slug="authoring"><title> 2:00- 2:10 How Emacs became my authoring playground—no Lisp required</title><rect x="411" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(422,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">authoring</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> 2:30- 2:50 Blee-LCNT: An Emacs-centered content production and self-publication framework</title><rect x="452" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(477,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> 3:10- 3:20 GNU Emacs Greader (Gnamù Reader) mode is the best Emacs mode in existence</title><rect x="507" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(518,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">greader</text></g></a><a href="/2025/talks/n-angulator" title="Org-mode GTD vs N-angulator GTD" data-slug="n-angulator"><title> 3:30- 3:40 Org-mode GTD vs N-angulator GTD</title><rect x="535" y="15" opacity="0.5" width="13" 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)">n-angulator</text></g></a><a href="/2025/talks/sat-close" title="Saturday closing remarks" data-slug="sat-close"><title> 4:00- 4:10 Saturday closing remarks</title><rect x="576" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(587,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">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:45 One year progress update Schemacs (formerly Gypsum)</title><rect x="41" y="75" opacity="0.5" width="20" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(59,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:05-10:25 Juicemacs: Exploring Speculative JIT Compilation for ELisp in Java</title><rect x="89" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="5,5,5" fill="skyblue"></rect><g transform="translate(114,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:35-10:55 Swanky Python: Interactive development for Python</title><rect x="130" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="5,5,5" fill="skyblue"></rect><g transform="translate(155,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:05-11:25 Interactive Python programming in Emacs</title><rect x="171" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(196,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:20 Emacs, editors, and LLM driven workflows</title><rect x="329" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(354,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">llm</text></g></a><a href="/2025/talks/claude-code" title="emacs-claude-code: Intelligent Claude Integration for Emacs" data-slug="claude-code"><title> 1:40- 2:00 emacs-claude-code: Intelligent Claude Integration for Emacs</title><rect x="384" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="5,5,5" fill="skyblue"></rect><g transform="translate(409,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">claude-code</text></g></a><a href="/2025/talks/private-ai" title="Emacs and private AI: a great match" data-slug="private-ai"><title> 2:10- 2:30 Emacs and private AI: a great match</title><rect stroke-width="3" x="425" y="75" opacity="0.8" width="27" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(450,133)"><text font-weight="bold" 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:50- 3:10 Common Lisp images communicating like-a-human through shared Emacs slime and eev</title><rect x="480" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="5,5,5" fill="skyblue"></rect><g transform="translate(505,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">commonlisp</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 x="0" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(11,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sat-open</text></g></a><a href="/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:50 Emacs as a fully-fledged reference manager</title><rect x="41" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(66,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:10-10:30 org-gmail: A deep integration of Gmail into your Org Mode</title><rect x="96" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(121,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">gmail</text></g></a><a href="/2025/talks/languages" title="Studying foreign languages with Emacs, Org Mode and gptel" data-slug="languages"><title>10:40-10:50 Studying foreign languages with Emacs, Org Mode and gptel</title><rect x="137" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(148,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">languages</text></g></a><a href="/2025/talks/latex" title="LaTeX export in org-mode: the overhaul" data-slug="latex"><title>11:10-11:30 LaTeX export in org-mode: the overhaul</title><rect x="178" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(203,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">latex</text></g></a><a href="/2025/talks/bibliography" title="An enhanced bibliography in org-mode for scientific research and self-directed learning" data-slug="bibliography"><title> 1:00- 1:20 An enhanced bibliography in org-mode for scientific research and self-directed learning</title><rect x="329" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(354,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">bibliography</text></g></a><a href="/2025/talks/calc" title="Basic Calc functionality for engineering or electronics" data-slug="calc"><title> 1:40- 1:50 Basic Calc functionality for engineering or electronics</title><rect x="384" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(395,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">calc</text></g></a><a href="/2025/talks/authoring" title="How Emacs became my authoring playground—no Lisp required" data-slug="authoring"><title> 2:00- 2:10 How Emacs became my authoring playground—no Lisp required</title><rect x="411" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(422,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">authoring</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> 2:30- 2:50 Blee-LCNT: An Emacs-centered content production and self-publication framework</title><rect x="452" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(477,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> 3:10- 3:20 GNU Emacs Greader (Gnamù Reader) mode is the best Emacs mode in existence</title><rect x="507" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(518,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">greader</text></g></a><a href="/2025/talks/sat-close" title="Saturday closing remarks" data-slug="sat-close"><title> 3:30- 3:40 Saturday closing remarks</title><rect x="535" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(546,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">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:45 One year progress update Schemacs (formerly Gypsum)</title><rect x="41" y="75" opacity="0.5" width="20" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(59,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:05-10:25 Juicemacs: Exploring Speculative JIT Compilation for ELisp in Java</title><rect x="89" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="5,5,5" fill="skyblue"></rect><g transform="translate(114,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:35-10:55 Swanky Python: Interactive development for Python</title><rect x="130" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="5,5,5" fill="skyblue"></rect><g transform="translate(155,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:05-11:25 Interactive Python programming in Emacs</title><rect x="171" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(196,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:20 Emacs, editors, and LLM driven workflows</title><rect x="329" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(354,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">llm</text></g></a><a href="/2025/talks/claude-code" title="emacs-claude-code: Intelligent Claude Integration for Emacs" data-slug="claude-code"><title> 1:40- 2:00 emacs-claude-code: Intelligent Claude Integration for Emacs</title><rect x="384" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="5,5,5" fill="skyblue"></rect><g transform="translate(409,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">claude-code</text></g></a><a href="/2025/talks/private-ai" title="Emacs and private AI: a great match" data-slug="private-ai"><title> 2:10- 2:30 Emacs and private AI: a great match</title><rect stroke-width="3" x="425" y="75" opacity="0.8" width="27" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(450,133)"><text font-weight="bold" 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:50- 3:10 Common Lisp images communicating like-a-human through shared Emacs slime and eev</title><rect x="480" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="5,5,5" fill="skyblue"></rect><g transform="translate(505,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">commonlisp</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 ]]
diff --git a/2025/info/python-before.md b/2025/info/python-before.md
index 4b022c1c..d6aab9a0 100644
--- a/2025/info/python-before.md
+++ b/2025/info/python-before.md
@@ -1,13 +1,13 @@
<!-- 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="python">
-<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 x="0" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(11,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sat-open</text></g></a><a href="/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:50 Emacs as a fully-fledged reference manager</title><rect x="41" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(66,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:10-10:30 org-gmail: A deep integration of Gmail into your Org Mode</title><rect x="96" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(121,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">gmail</text></g></a><a href="/2025/talks/languages" title="Studying foreign languages with Emacs, Org Mode and gptel" data-slug="languages"><title>10:40-10:50 Studying foreign languages with Emacs, Org Mode and gptel</title><rect x="137" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(148,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">languages</text></g></a><a href="/2025/talks/latex" title="LaTeX export in org-mode: the overhaul" data-slug="latex"><title>11:10-11:30 LaTeX export in org-mode: the overhaul</title><rect x="178" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(203,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">latex</text></g></a><a href="/2025/talks/bibliography" title="An enhanced bibliography in org-mode for scientific research and self-directed learning" data-slug="bibliography"><title> 1:00- 1:20 An enhanced bibliography in org-mode for scientific research and self-directed learning</title><rect x="329" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(354,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">bibliography</text></g></a><a href="/2025/talks/calc" title="Basic Calc functionality for engineering or electronics" data-slug="calc"><title> 1:40- 1:50 Basic Calc functionality for engineering or electronics</title><rect x="384" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(395,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">calc</text></g></a><a href="/2025/talks/authoring" title="How Emacs became my authoring playground—no Lisp required" data-slug="authoring"><title> 2:00- 2:10 How Emacs became my authoring playground—no Lisp required</title><rect x="411" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(422,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">authoring</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> 2:30- 2:50 Blee-LCNT: An Emacs-centered content production and self-publication framework</title><rect x="452" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(477,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> 3:10- 3:20 GNU Emacs Greader (Gnamù Reader) mode is the best Emacs mode in existence</title><rect x="507" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(518,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">greader</text></g></a><a href="/2025/talks/n-angulator" title="Org-mode GTD vs N-angulator GTD" data-slug="n-angulator"><title> 3:30- 3:40 Org-mode GTD vs N-angulator GTD</title><rect x="535" y="15" opacity="0.5" width="13" 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)">n-angulator</text></g></a><a href="/2025/talks/sat-close" title="Saturday closing remarks" data-slug="sat-close"><title> 4:00- 4:10 Saturday closing remarks</title><rect x="576" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(587,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">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:45 One year progress update Schemacs (formerly Gypsum)</title><rect x="41" y="75" opacity="0.5" width="20" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(59,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:05-10:25 Juicemacs: Exploring Speculative JIT Compilation for ELisp in Java</title><rect x="89" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="5,5,5" fill="skyblue"></rect><g transform="translate(114,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:35-10:55 Swanky Python: Interactive development for Python</title><rect x="130" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="5,5,5" fill="skyblue"></rect><g transform="translate(155,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:05-11:25 Interactive Python programming in Emacs</title><rect stroke-width="3" x="171" y="75" opacity="0.8" width="27" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(196,133)"><text font-weight="bold" 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:20 Emacs, editors, and LLM driven workflows</title><rect x="329" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(354,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">llm</text></g></a><a href="/2025/talks/claude-code" title="emacs-claude-code: Intelligent Claude Integration for Emacs" data-slug="claude-code"><title> 1:40- 2:00 emacs-claude-code: Intelligent Claude Integration for Emacs</title><rect x="384" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="5,5,5" fill="skyblue"></rect><g transform="translate(409,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">claude-code</text></g></a><a href="/2025/talks/private-ai" title="Emacs and private AI: a great match" data-slug="private-ai"><title> 2:10- 2:30 Emacs and private AI: a great match</title><rect x="425" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(450,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:50- 3:10 Common Lisp images communicating like-a-human through shared Emacs slime and eev</title><rect x="480" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="5,5,5" fill="skyblue"></rect><g transform="translate(505,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">commonlisp</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 x="0" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(11,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sat-open</text></g></a><a href="/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:50 Emacs as a fully-fledged reference manager</title><rect x="41" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(66,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:10-10:30 org-gmail: A deep integration of Gmail into your Org Mode</title><rect x="96" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(121,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">gmail</text></g></a><a href="/2025/talks/languages" title="Studying foreign languages with Emacs, Org Mode and gptel" data-slug="languages"><title>10:40-10:50 Studying foreign languages with Emacs, Org Mode and gptel</title><rect x="137" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(148,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">languages</text></g></a><a href="/2025/talks/latex" title="LaTeX export in org-mode: the overhaul" data-slug="latex"><title>11:10-11:30 LaTeX export in org-mode: the overhaul</title><rect x="178" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(203,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">latex</text></g></a><a href="/2025/talks/bibliography" title="An enhanced bibliography in org-mode for scientific research and self-directed learning" data-slug="bibliography"><title> 1:00- 1:20 An enhanced bibliography in org-mode for scientific research and self-directed learning</title><rect x="329" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(354,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">bibliography</text></g></a><a href="/2025/talks/calc" title="Basic Calc functionality for engineering or electronics" data-slug="calc"><title> 1:40- 1:50 Basic Calc functionality for engineering or electronics</title><rect x="384" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(395,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">calc</text></g></a><a href="/2025/talks/authoring" title="How Emacs became my authoring playground—no Lisp required" data-slug="authoring"><title> 2:00- 2:10 How Emacs became my authoring playground—no Lisp required</title><rect x="411" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(422,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">authoring</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> 2:30- 2:50 Blee-LCNT: An Emacs-centered content production and self-publication framework</title><rect x="452" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(477,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> 3:10- 3:20 GNU Emacs Greader (Gnamù Reader) mode is the best Emacs mode in existence</title><rect x="507" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(518,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">greader</text></g></a><a href="/2025/talks/sat-close" title="Saturday closing remarks" data-slug="sat-close"><title> 3:30- 3:40 Saturday closing remarks</title><rect x="535" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(546,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">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:45 One year progress update Schemacs (formerly Gypsum)</title><rect x="41" y="75" opacity="0.5" width="20" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(59,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:05-10:25 Juicemacs: Exploring Speculative JIT Compilation for ELisp in Java</title><rect x="89" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="5,5,5" fill="skyblue"></rect><g transform="translate(114,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:35-10:55 Swanky Python: Interactive development for Python</title><rect x="130" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="5,5,5" fill="skyblue"></rect><g transform="translate(155,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:05-11:25 Interactive Python programming in Emacs</title><rect stroke-width="3" x="171" y="75" opacity="0.8" width="27" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(196,133)"><text font-weight="bold" 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:20 Emacs, editors, and LLM driven workflows</title><rect x="329" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(354,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">llm</text></g></a><a href="/2025/talks/claude-code" title="emacs-claude-code: Intelligent Claude Integration for Emacs" data-slug="claude-code"><title> 1:40- 2:00 emacs-claude-code: Intelligent Claude Integration for Emacs</title><rect x="384" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="5,5,5" fill="skyblue"></rect><g transform="translate(409,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">claude-code</text></g></a><a href="/2025/talks/private-ai" title="Emacs and private AI: a great match" data-slug="private-ai"><title> 2:10- 2:30 Emacs and private AI: a great match</title><rect x="425" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(450,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:50- 3:10 Common Lisp images communicating like-a-human through shared Emacs slime and eev</title><rect x="480" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="5,5,5" fill="skyblue"></rect><g transform="translate(505,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">commonlisp</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: 20-min talk ; Q&A: BigBlueButton conference room <https://media.emacsconf.org/2025/current/bbb-python.html>
Discuss on IRC: [#emacsconf](https://chat.emacsconf.org/?join=emacsconf)
-Status: Waiting for video from speaker
+Status: Waiting for a caption volunteer
<div>Times in different time zones:</div><div class="times" start="2025-12-06T16:05:00Z" end="2025-12-06T16:25:00Z"><div class="conf-time">Saturday, Dec 6 2025, ~11:05 AM - 11:25 AM EST (US/Eastern)</div><div class="others"><div>which is the same as:</div>Saturday, Dec 6 2025, ~10:05 AM - 10:25 AM CST (US/Central)<br />Saturday, Dec 6 2025, ~9:05 AM - 9:25 AM MST (US/Mountain)<br />Saturday, Dec 6 2025, ~8:05 AM - 8:25 AM PST (US/Pacific)<br />Saturday, Dec 6 2025, ~4:05 PM - 4:25 PM UTC <br />Saturday, Dec 6 2025, ~5:05 PM - 5:25 PM CET (Europe/Paris)<br />Saturday, Dec 6 2025, ~6:05 PM - 6:25 PM EET (Europe/Athens)<br />Saturday, Dec 6 2025, ~9:35 PM - 9:55 PM IST (Asia/Kolkata)<br />Sunday, Dec 7 2025, ~12:05 AM - 12:25 AM +08 (Asia/Singapore)<br />Sunday, Dec 7 2025, ~1:05 AM - 1:25 AM JST (Asia/Tokyo)</div></div><div><strong><a href="/2025/watch/dev/">Find out how to watch and participate</a></strong></div>
diff --git a/2025/info/reference-before.md b/2025/info/reference-before.md
index 0dc24849..5fb2004c 100644
--- a/2025/info/reference-before.md
+++ b/2025/info/reference-before.md
@@ -1,7 +1,7 @@
<!-- 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="reference">
-<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 x="0" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(11,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sat-open</text></g></a><a href="/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:50 Emacs as a fully-fledged reference manager</title><rect stroke-width="3" x="41" y="15" opacity="0.8" width="27" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(66,73)"><text font-weight="bold" 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:10-10:30 org-gmail: A deep integration of Gmail into your Org Mode</title><rect x="96" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(121,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">gmail</text></g></a><a href="/2025/talks/languages" title="Studying foreign languages with Emacs, Org Mode and gptel" data-slug="languages"><title>10:40-10:50 Studying foreign languages with Emacs, Org Mode and gptel</title><rect x="137" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(148,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">languages</text></g></a><a href="/2025/talks/latex" title="LaTeX export in org-mode: the overhaul" data-slug="latex"><title>11:10-11:30 LaTeX export in org-mode: the overhaul</title><rect x="178" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(203,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">latex</text></g></a><a href="/2025/talks/bibliography" title="An enhanced bibliography in org-mode for scientific research and self-directed learning" data-slug="bibliography"><title> 1:00- 1:20 An enhanced bibliography in org-mode for scientific research and self-directed learning</title><rect x="329" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(354,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">bibliography</text></g></a><a href="/2025/talks/calc" title="Basic Calc functionality for engineering or electronics" data-slug="calc"><title> 1:40- 1:50 Basic Calc functionality for engineering or electronics</title><rect x="384" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(395,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">calc</text></g></a><a href="/2025/talks/authoring" title="How Emacs became my authoring playground—no Lisp required" data-slug="authoring"><title> 2:00- 2:10 How Emacs became my authoring playground—no Lisp required</title><rect x="411" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(422,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">authoring</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> 2:30- 2:50 Blee-LCNT: An Emacs-centered content production and self-publication framework</title><rect x="452" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(477,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> 3:10- 3:20 GNU Emacs Greader (Gnamù Reader) mode is the best Emacs mode in existence</title><rect x="507" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(518,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">greader</text></g></a><a href="/2025/talks/n-angulator" title="Org-mode GTD vs N-angulator GTD" data-slug="n-angulator"><title> 3:30- 3:40 Org-mode GTD vs N-angulator GTD</title><rect x="535" y="15" opacity="0.5" width="13" 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)">n-angulator</text></g></a><a href="/2025/talks/sat-close" title="Saturday closing remarks" data-slug="sat-close"><title> 4:00- 4:10 Saturday closing remarks</title><rect x="576" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(587,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">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:45 One year progress update Schemacs (formerly Gypsum)</title><rect x="41" y="75" opacity="0.5" width="20" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(59,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:05-10:25 Juicemacs: Exploring Speculative JIT Compilation for ELisp in Java</title><rect x="89" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="5,5,5" fill="skyblue"></rect><g transform="translate(114,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:35-10:55 Swanky Python: Interactive development for Python</title><rect x="130" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="5,5,5" fill="skyblue"></rect><g transform="translate(155,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:05-11:25 Interactive Python programming in Emacs</title><rect x="171" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(196,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:20 Emacs, editors, and LLM driven workflows</title><rect x="329" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(354,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">llm</text></g></a><a href="/2025/talks/claude-code" title="emacs-claude-code: Intelligent Claude Integration for Emacs" data-slug="claude-code"><title> 1:40- 2:00 emacs-claude-code: Intelligent Claude Integration for Emacs</title><rect x="384" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="5,5,5" fill="skyblue"></rect><g transform="translate(409,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">claude-code</text></g></a><a href="/2025/talks/private-ai" title="Emacs and private AI: a great match" data-slug="private-ai"><title> 2:10- 2:30 Emacs and private AI: a great match</title><rect x="425" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(450,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:50- 3:10 Common Lisp images communicating like-a-human through shared Emacs slime and eev</title><rect x="480" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="5,5,5" fill="skyblue"></rect><g transform="translate(505,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">commonlisp</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 x="0" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(11,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sat-open</text></g></a><a href="/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:50 Emacs as a fully-fledged reference manager</title><rect stroke-width="3" x="41" y="15" opacity="0.8" width="27" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(66,73)"><text font-weight="bold" 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:10-10:30 org-gmail: A deep integration of Gmail into your Org Mode</title><rect x="96" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(121,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">gmail</text></g></a><a href="/2025/talks/languages" title="Studying foreign languages with Emacs, Org Mode and gptel" data-slug="languages"><title>10:40-10:50 Studying foreign languages with Emacs, Org Mode and gptel</title><rect x="137" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(148,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">languages</text></g></a><a href="/2025/talks/latex" title="LaTeX export in org-mode: the overhaul" data-slug="latex"><title>11:10-11:30 LaTeX export in org-mode: the overhaul</title><rect x="178" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(203,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">latex</text></g></a><a href="/2025/talks/bibliography" title="An enhanced bibliography in org-mode for scientific research and self-directed learning" data-slug="bibliography"><title> 1:00- 1:20 An enhanced bibliography in org-mode for scientific research and self-directed learning</title><rect x="329" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(354,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">bibliography</text></g></a><a href="/2025/talks/calc" title="Basic Calc functionality for engineering or electronics" data-slug="calc"><title> 1:40- 1:50 Basic Calc functionality for engineering or electronics</title><rect x="384" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(395,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">calc</text></g></a><a href="/2025/talks/authoring" title="How Emacs became my authoring playground—no Lisp required" data-slug="authoring"><title> 2:00- 2:10 How Emacs became my authoring playground—no Lisp required</title><rect x="411" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(422,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">authoring</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> 2:30- 2:50 Blee-LCNT: An Emacs-centered content production and self-publication framework</title><rect x="452" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(477,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> 3:10- 3:20 GNU Emacs Greader (Gnamù Reader) mode is the best Emacs mode in existence</title><rect x="507" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(518,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">greader</text></g></a><a href="/2025/talks/sat-close" title="Saturday closing remarks" data-slug="sat-close"><title> 3:30- 3:40 Saturday closing remarks</title><rect x="535" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(546,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">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:45 One year progress update Schemacs (formerly Gypsum)</title><rect x="41" y="75" opacity="0.5" width="20" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(59,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:05-10:25 Juicemacs: Exploring Speculative JIT Compilation for ELisp in Java</title><rect x="89" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="5,5,5" fill="skyblue"></rect><g transform="translate(114,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:35-10:55 Swanky Python: Interactive development for Python</title><rect x="130" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="5,5,5" fill="skyblue"></rect><g transform="translate(155,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:05-11:25 Interactive Python programming in Emacs</title><rect x="171" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(196,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:20 Emacs, editors, and LLM driven workflows</title><rect x="329" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(354,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">llm</text></g></a><a href="/2025/talks/claude-code" title="emacs-claude-code: Intelligent Claude Integration for Emacs" data-slug="claude-code"><title> 1:40- 2:00 emacs-claude-code: Intelligent Claude Integration for Emacs</title><rect x="384" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="5,5,5" fill="skyblue"></rect><g transform="translate(409,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">claude-code</text></g></a><a href="/2025/talks/private-ai" title="Emacs and private AI: a great match" data-slug="private-ai"><title> 2:10- 2:30 Emacs and private AI: a great match</title><rect x="425" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(450,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:50- 3:10 Common Lisp images communicating like-a-human through shared Emacs slime and eev</title><rect x="480" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="5,5,5" fill="skyblue"></rect><g transform="translate(505,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">commonlisp</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 ]]
diff --git a/2025/info/sat-close-before.md b/2025/info/sat-close-before.md
index 4f1a6111..546267dd 100644
--- a/2025/info/sat-close-before.md
+++ b/2025/info/sat-close-before.md
@@ -1,14 +1,14 @@
<!-- 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-close">
-<svg width="700" height="150" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><title>Schedule for Saturday</title><rect width="700" height="150" x="0" y="0" fill="white"></rect><text font-size="10" fill="black" y="12" x="3">Saturday</text><a href="/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.5" width="13" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(11,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sat-open</text></g></a><a href="/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:50 Emacs as a fully-fledged reference manager</title><rect x="41" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(66,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:10-10:30 org-gmail: A deep integration of Gmail into your Org Mode</title><rect x="96" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(121,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">gmail</text></g></a><a href="/2025/talks/languages" title="Studying foreign languages with Emacs, Org Mode and gptel" data-slug="languages"><title>10:40-10:50 Studying foreign languages with Emacs, Org Mode and gptel</title><rect x="137" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(148,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">languages</text></g></a><a href="/2025/talks/latex" title="LaTeX export in org-mode: the overhaul" data-slug="latex"><title>11:10-11:30 LaTeX export in org-mode: the overhaul</title><rect x="178" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(203,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">latex</text></g></a><a href="/2025/talks/bibliography" title="An enhanced bibliography in org-mode for scientific research and self-directed learning" data-slug="bibliography"><title> 1:00- 1:20 An enhanced bibliography in org-mode for scientific research and self-directed learning</title><rect x="329" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(354,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">bibliography</text></g></a><a href="/2025/talks/calc" title="Basic Calc functionality for engineering or electronics" data-slug="calc"><title> 1:40- 1:50 Basic Calc functionality for engineering or electronics</title><rect x="384" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(395,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">calc</text></g></a><a href="/2025/talks/authoring" title="How Emacs became my authoring playground—no Lisp required" data-slug="authoring"><title> 2:00- 2:10 How Emacs became my authoring playground—no Lisp required</title><rect x="411" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(422,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">authoring</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> 2:30- 2:50 Blee-LCNT: An Emacs-centered content production and self-publication framework</title><rect x="452" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(477,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> 3:10- 3:20 GNU Emacs Greader (Gnamù Reader) mode is the best Emacs mode in existence</title><rect x="507" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(518,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">greader</text></g></a><a href="/2025/talks/n-angulator" title="Org-mode GTD vs N-angulator GTD" data-slug="n-angulator"><title> 3:30- 3:40 Org-mode GTD vs N-angulator GTD</title><rect x="535" y="15" opacity="0.5" width="13" 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)">n-angulator</text></g></a><a href="/2025/talks/sat-close" title="Saturday closing remarks" data-slug="sat-close"><title> 4:00- 4:10 Saturday closing remarks</title><rect stroke-width="3" x="576" y="15" opacity="0.8" width="13" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(587,73)"><text font-weight="bold" fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">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:45 One year progress update Schemacs (formerly Gypsum)</title><rect x="41" y="75" opacity="0.5" width="20" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(59,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:05-10:25 Juicemacs: Exploring Speculative JIT Compilation for ELisp in Java</title><rect x="89" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="5,5,5" fill="skyblue"></rect><g transform="translate(114,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:35-10:55 Swanky Python: Interactive development for Python</title><rect x="130" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="5,5,5" fill="skyblue"></rect><g transform="translate(155,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:05-11:25 Interactive Python programming in Emacs</title><rect x="171" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(196,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:20 Emacs, editors, and LLM driven workflows</title><rect x="329" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(354,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">llm</text></g></a><a href="/2025/talks/claude-code" title="emacs-claude-code: Intelligent Claude Integration for Emacs" data-slug="claude-code"><title> 1:40- 2:00 emacs-claude-code: Intelligent Claude Integration for Emacs</title><rect x="384" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="5,5,5" fill="skyblue"></rect><g transform="translate(409,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">claude-code</text></g></a><a href="/2025/talks/private-ai" title="Emacs and private AI: a great match" data-slug="private-ai"><title> 2:10- 2:30 Emacs and private AI: a great match</title><rect x="425" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(450,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:50- 3:10 Common Lisp images communicating like-a-human through shared Emacs slime and eev</title><rect x="480" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="5,5,5" fill="skyblue"></rect><g transform="translate(505,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">commonlisp</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 x="0" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(11,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sat-open</text></g></a><a href="/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:50 Emacs as a fully-fledged reference manager</title><rect x="41" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(66,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:10-10:30 org-gmail: A deep integration of Gmail into your Org Mode</title><rect x="96" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(121,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">gmail</text></g></a><a href="/2025/talks/languages" title="Studying foreign languages with Emacs, Org Mode and gptel" data-slug="languages"><title>10:40-10:50 Studying foreign languages with Emacs, Org Mode and gptel</title><rect x="137" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(148,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">languages</text></g></a><a href="/2025/talks/latex" title="LaTeX export in org-mode: the overhaul" data-slug="latex"><title>11:10-11:30 LaTeX export in org-mode: the overhaul</title><rect x="178" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(203,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">latex</text></g></a><a href="/2025/talks/bibliography" title="An enhanced bibliography in org-mode for scientific research and self-directed learning" data-slug="bibliography"><title> 1:00- 1:20 An enhanced bibliography in org-mode for scientific research and self-directed learning</title><rect x="329" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(354,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">bibliography</text></g></a><a href="/2025/talks/calc" title="Basic Calc functionality for engineering or electronics" data-slug="calc"><title> 1:40- 1:50 Basic Calc functionality for engineering or electronics</title><rect x="384" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(395,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">calc</text></g></a><a href="/2025/talks/authoring" title="How Emacs became my authoring playground—no Lisp required" data-slug="authoring"><title> 2:00- 2:10 How Emacs became my authoring playground—no Lisp required</title><rect x="411" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(422,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">authoring</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> 2:30- 2:50 Blee-LCNT: An Emacs-centered content production and self-publication framework</title><rect x="452" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(477,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> 3:10- 3:20 GNU Emacs Greader (Gnamù Reader) mode is the best Emacs mode in existence</title><rect x="507" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(518,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">greader</text></g></a><a href="/2025/talks/sat-close" title="Saturday closing remarks" data-slug="sat-close"><title> 3:30- 3:40 Saturday closing remarks</title><rect stroke-width="3" x="535" y="15" opacity="0.8" width="13" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(546,73)"><text font-weight="bold" fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">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:45 One year progress update Schemacs (formerly Gypsum)</title><rect x="41" y="75" opacity="0.5" width="20" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(59,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:05-10:25 Juicemacs: Exploring Speculative JIT Compilation for ELisp in Java</title><rect x="89" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="5,5,5" fill="skyblue"></rect><g transform="translate(114,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:35-10:55 Swanky Python: Interactive development for Python</title><rect x="130" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="5,5,5" fill="skyblue"></rect><g transform="translate(155,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:05-11:25 Interactive Python programming in Emacs</title><rect x="171" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(196,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:20 Emacs, editors, and LLM driven workflows</title><rect x="329" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(354,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">llm</text></g></a><a href="/2025/talks/claude-code" title="emacs-claude-code: Intelligent Claude Integration for Emacs" data-slug="claude-code"><title> 1:40- 2:00 emacs-claude-code: Intelligent Claude Integration for Emacs</title><rect x="384" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="5,5,5" fill="skyblue"></rect><g transform="translate(409,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">claude-code</text></g></a><a href="/2025/talks/private-ai" title="Emacs and private AI: a great match" data-slug="private-ai"><title> 2:10- 2:30 Emacs and private AI: a great match</title><rect x="425" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(450,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:50- 3:10 Common Lisp images communicating like-a-human through shared Emacs slime and eev</title><rect x="480" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="5,5,5" fill="skyblue"></rect><g transform="translate(505,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">commonlisp</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: 10-min talk ; Q&A: Etherpad <https://pad.emacsconf.org/2025-sat-close>
Discuss on IRC: [#emacsconf](https://chat.emacsconf.org/?join=emacsconf)
Status: Ready to stream
-<div>Times in different time zones:</div><div class="times" start="2025-12-06T21:00:00Z" end="2025-12-06T21:10:00Z"><div class="conf-time">Saturday, Dec 6 2025, ~4:00 PM - 4:10 PM EST (US/Eastern)</div><div class="others"><div>which is the same as:</div>Saturday, Dec 6 2025, ~3:00 PM - 3:10 PM CST (US/Central)<br />Saturday, Dec 6 2025, ~2:00 PM - 2:10 PM MST (US/Mountain)<br />Saturday, Dec 6 2025, ~1:00 PM - 1:10 PM PST (US/Pacific)<br />Saturday, Dec 6 2025, ~9:00 PM - 9:10 PM UTC <br />Saturday, Dec 6 2025, ~10:00 PM - 10:10 PM CET (Europe/Paris)<br />Saturday, Dec 6 2025, ~11:00 PM - 11:10 PM EET (Europe/Athens)<br />Sunday, Dec 7 2025, ~2:30 AM - 2:40 AM IST (Asia/Kolkata)<br />Sunday, Dec 7 2025, ~5:00 AM - 5:10 AM +08 (Asia/Singapore)<br />Sunday, Dec 7 2025, ~6:00 AM - 6:10 AM JST (Asia/Tokyo)</div></div><div><strong><a href="/2025/watch/gen/">Find out how to watch and participate</a></strong></div>
+<div>Times in different time zones:</div><div class="times" start="2025-12-06T20:30:00Z" end="2025-12-06T20:40:00Z"><div class="conf-time">Saturday, Dec 6 2025, ~3:30 PM - 3:40 PM EST (US/Eastern)</div><div class="others"><div>which is the same as:</div>Saturday, Dec 6 2025, ~2:30 PM - 2:40 PM CST (US/Central)<br />Saturday, Dec 6 2025, ~1:30 PM - 1:40 PM MST (US/Mountain)<br />Saturday, Dec 6 2025, ~12:30 PM - 12:40 PM PST (US/Pacific)<br />Saturday, Dec 6 2025, ~8:30 PM - 8:40 PM UTC <br />Saturday, Dec 6 2025, ~9:30 PM - 9:40 PM CET (Europe/Paris)<br />Saturday, Dec 6 2025, ~10:30 PM - 10:40 PM EET (Europe/Athens)<br />Sunday, Dec 7 2025, ~2:00 AM - 2:10 AM IST (Asia/Kolkata)<br />Sunday, Dec 7 2025, ~4:30 AM - 4:40 AM +08 (Asia/Singapore)<br />Sunday, Dec 7 2025, ~5:30 AM - 5:40 AM JST (Asia/Tokyo)</div></div><div><strong><a href="/2025/watch/gen/">Find out how to watch and participate</a></strong></div>
diff --git a/2025/info/sat-close-nav.md b/2025/info/sat-close-nav.md
index 6e5a5261..59360993 100644
--- a/2025/info/sat-close-nav.md
+++ b/2025/info/sat-close-nav.md
@@ -1,7 +1,7 @@
<div class="talk-nav">
Back to the [[talks]]
-Previous by time: <a href="/2025/talks/n-angulator">Org-mode GTD vs N-angulator GTD</a>
+Previous by time: <a href="/2025/talks/greader">GNU Emacs Greader (Gnamù Reader) mode is the best Emacs mode in existence</a>
Next by time: <a href="/2025/talks/sun-open">Sunday opening remarks</a>
Track: <span class="sched-track General">General</span> - <strong><a href="https://emacsconf.org/2025/watch/gen">Watch</a></strong>
</div>
diff --git a/2025/info/sat-open-before.md b/2025/info/sat-open-before.md
index c7b228b2..6821e669 100644
--- a/2025/info/sat-open-before.md
+++ b/2025/info/sat-open-before.md
@@ -1,7 +1,7 @@
<!-- 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:50 Emacs as a fully-fledged reference manager</title><rect x="41" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(66,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:10-10:30 org-gmail: A deep integration of Gmail into your Org Mode</title><rect x="96" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(121,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">gmail</text></g></a><a href="/2025/talks/languages" title="Studying foreign languages with Emacs, Org Mode and gptel" data-slug="languages"><title>10:40-10:50 Studying foreign languages with Emacs, Org Mode and gptel</title><rect x="137" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(148,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">languages</text></g></a><a href="/2025/talks/latex" title="LaTeX export in org-mode: the overhaul" data-slug="latex"><title>11:10-11:30 LaTeX export in org-mode: the overhaul</title><rect x="178" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(203,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">latex</text></g></a><a href="/2025/talks/bibliography" title="An enhanced bibliography in org-mode for scientific research and self-directed learning" data-slug="bibliography"><title> 1:00- 1:20 An enhanced bibliography in org-mode for scientific research and self-directed learning</title><rect x="329" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(354,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">bibliography</text></g></a><a href="/2025/talks/calc" title="Basic Calc functionality for engineering or electronics" data-slug="calc"><title> 1:40- 1:50 Basic Calc functionality for engineering or electronics</title><rect x="384" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(395,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">calc</text></g></a><a href="/2025/talks/authoring" title="How Emacs became my authoring playground—no Lisp required" data-slug="authoring"><title> 2:00- 2:10 How Emacs became my authoring playground—no Lisp required</title><rect x="411" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(422,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">authoring</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> 2:30- 2:50 Blee-LCNT: An Emacs-centered content production and self-publication framework</title><rect x="452" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(477,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> 3:10- 3:20 GNU Emacs Greader (Gnamù Reader) mode is the best Emacs mode in existence</title><rect x="507" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(518,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">greader</text></g></a><a href="/2025/talks/n-angulator" title="Org-mode GTD vs N-angulator GTD" data-slug="n-angulator"><title> 3:30- 3:40 Org-mode GTD vs N-angulator GTD</title><rect x="535" y="15" opacity="0.5" width="13" 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)">n-angulator</text></g></a><a href="/2025/talks/sat-close" title="Saturday closing remarks" data-slug="sat-close"><title> 4:00- 4:10 Saturday closing remarks</title><rect x="576" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(587,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">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:45 One year progress update Schemacs (formerly Gypsum)</title><rect x="41" y="75" opacity="0.5" width="20" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(59,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:05-10:25 Juicemacs: Exploring Speculative JIT Compilation for ELisp in Java</title><rect x="89" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="5,5,5" fill="skyblue"></rect><g transform="translate(114,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:35-10:55 Swanky Python: Interactive development for Python</title><rect x="130" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="5,5,5" fill="skyblue"></rect><g transform="translate(155,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:05-11:25 Interactive Python programming in Emacs</title><rect x="171" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(196,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:20 Emacs, editors, and LLM driven workflows</title><rect x="329" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(354,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">llm</text></g></a><a href="/2025/talks/claude-code" title="emacs-claude-code: Intelligent Claude Integration for Emacs" data-slug="claude-code"><title> 1:40- 2:00 emacs-claude-code: Intelligent Claude Integration for Emacs</title><rect x="384" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="5,5,5" fill="skyblue"></rect><g transform="translate(409,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">claude-code</text></g></a><a href="/2025/talks/private-ai" title="Emacs and private AI: a great match" data-slug="private-ai"><title> 2:10- 2:30 Emacs and private AI: a great match</title><rect x="425" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(450,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:50- 3:10 Common Lisp images communicating like-a-human through shared Emacs slime and eev</title><rect x="480" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="5,5,5" fill="skyblue"></rect><g transform="translate(505,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">commonlisp</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:50 Emacs as a fully-fledged reference manager</title><rect x="41" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(66,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:10-10:30 org-gmail: A deep integration of Gmail into your Org Mode</title><rect x="96" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(121,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">gmail</text></g></a><a href="/2025/talks/languages" title="Studying foreign languages with Emacs, Org Mode and gptel" data-slug="languages"><title>10:40-10:50 Studying foreign languages with Emacs, Org Mode and gptel</title><rect x="137" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(148,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">languages</text></g></a><a href="/2025/talks/latex" title="LaTeX export in org-mode: the overhaul" data-slug="latex"><title>11:10-11:30 LaTeX export in org-mode: the overhaul</title><rect x="178" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(203,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">latex</text></g></a><a href="/2025/talks/bibliography" title="An enhanced bibliography in org-mode for scientific research and self-directed learning" data-slug="bibliography"><title> 1:00- 1:20 An enhanced bibliography in org-mode for scientific research and self-directed learning</title><rect x="329" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(354,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">bibliography</text></g></a><a href="/2025/talks/calc" title="Basic Calc functionality for engineering or electronics" data-slug="calc"><title> 1:40- 1:50 Basic Calc functionality for engineering or electronics</title><rect x="384" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(395,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">calc</text></g></a><a href="/2025/talks/authoring" title="How Emacs became my authoring playground—no Lisp required" data-slug="authoring"><title> 2:00- 2:10 How Emacs became my authoring playground—no Lisp required</title><rect x="411" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(422,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">authoring</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> 2:30- 2:50 Blee-LCNT: An Emacs-centered content production and self-publication framework</title><rect x="452" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(477,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> 3:10- 3:20 GNU Emacs Greader (Gnamù Reader) mode is the best Emacs mode in existence</title><rect x="507" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(518,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">greader</text></g></a><a href="/2025/talks/sat-close" title="Saturday closing remarks" data-slug="sat-close"><title> 3:30- 3:40 Saturday closing remarks</title><rect x="535" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(546,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">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:45 One year progress update Schemacs (formerly Gypsum)</title><rect x="41" y="75" opacity="0.5" width="20" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(59,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:05-10:25 Juicemacs: Exploring Speculative JIT Compilation for ELisp in Java</title><rect x="89" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="5,5,5" fill="skyblue"></rect><g transform="translate(114,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:35-10:55 Swanky Python: Interactive development for Python</title><rect x="130" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="5,5,5" fill="skyblue"></rect><g transform="translate(155,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:05-11:25 Interactive Python programming in Emacs</title><rect x="171" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(196,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:20 Emacs, editors, and LLM driven workflows</title><rect x="329" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(354,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">llm</text></g></a><a href="/2025/talks/claude-code" title="emacs-claude-code: Intelligent Claude Integration for Emacs" data-slug="claude-code"><title> 1:40- 2:00 emacs-claude-code: Intelligent Claude Integration for Emacs</title><rect x="384" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="5,5,5" fill="skyblue"></rect><g transform="translate(409,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">claude-code</text></g></a><a href="/2025/talks/private-ai" title="Emacs and private AI: a great match" data-slug="private-ai"><title> 2:10- 2:30 Emacs and private AI: a great match</title><rect x="425" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(450,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:50- 3:10 Common Lisp images communicating like-a-human through shared Emacs slime and eev</title><rect x="480" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="5,5,5" fill="skyblue"></rect><g transform="translate(505,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">commonlisp</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 ]]
diff --git a/2025/info/schemacs-before.md b/2025/info/schemacs-before.md
index 4bf30d6d..75831fed 100644
--- a/2025/info/schemacs-before.md
+++ b/2025/info/schemacs-before.md
@@ -1,7 +1,7 @@
<!-- 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="schemacs">
-<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 x="0" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(11,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sat-open</text></g></a><a href="/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:50 Emacs as a fully-fledged reference manager</title><rect x="41" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(66,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:10-10:30 org-gmail: A deep integration of Gmail into your Org Mode</title><rect x="96" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(121,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">gmail</text></g></a><a href="/2025/talks/languages" title="Studying foreign languages with Emacs, Org Mode and gptel" data-slug="languages"><title>10:40-10:50 Studying foreign languages with Emacs, Org Mode and gptel</title><rect x="137" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(148,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">languages</text></g></a><a href="/2025/talks/latex" title="LaTeX export in org-mode: the overhaul" data-slug="latex"><title>11:10-11:30 LaTeX export in org-mode: the overhaul</title><rect x="178" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(203,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">latex</text></g></a><a href="/2025/talks/bibliography" title="An enhanced bibliography in org-mode for scientific research and self-directed learning" data-slug="bibliography"><title> 1:00- 1:20 An enhanced bibliography in org-mode for scientific research and self-directed learning</title><rect x="329" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(354,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">bibliography</text></g></a><a href="/2025/talks/calc" title="Basic Calc functionality for engineering or electronics" data-slug="calc"><title> 1:40- 1:50 Basic Calc functionality for engineering or electronics</title><rect x="384" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(395,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">calc</text></g></a><a href="/2025/talks/authoring" title="How Emacs became my authoring playground—no Lisp required" data-slug="authoring"><title> 2:00- 2:10 How Emacs became my authoring playground—no Lisp required</title><rect x="411" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(422,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">authoring</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> 2:30- 2:50 Blee-LCNT: An Emacs-centered content production and self-publication framework</title><rect x="452" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(477,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> 3:10- 3:20 GNU Emacs Greader (Gnamù Reader) mode is the best Emacs mode in existence</title><rect x="507" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(518,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">greader</text></g></a><a href="/2025/talks/n-angulator" title="Org-mode GTD vs N-angulator GTD" data-slug="n-angulator"><title> 3:30- 3:40 Org-mode GTD vs N-angulator GTD</title><rect x="535" y="15" opacity="0.5" width="13" 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)">n-angulator</text></g></a><a href="/2025/talks/sat-close" title="Saturday closing remarks" data-slug="sat-close"><title> 4:00- 4:10 Saturday closing remarks</title><rect x="576" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(587,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">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:45 One year progress update Schemacs (formerly Gypsum)</title><rect stroke-width="3" x="41" y="75" opacity="0.8" width="20" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(59,133)"><text font-weight="bold" 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:05-10:25 Juicemacs: Exploring Speculative JIT Compilation for ELisp in Java</title><rect x="89" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="5,5,5" fill="skyblue"></rect><g transform="translate(114,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:35-10:55 Swanky Python: Interactive development for Python</title><rect x="130" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="5,5,5" fill="skyblue"></rect><g transform="translate(155,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:05-11:25 Interactive Python programming in Emacs</title><rect x="171" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(196,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:20 Emacs, editors, and LLM driven workflows</title><rect x="329" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(354,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">llm</text></g></a><a href="/2025/talks/claude-code" title="emacs-claude-code: Intelligent Claude Integration for Emacs" data-slug="claude-code"><title> 1:40- 2:00 emacs-claude-code: Intelligent Claude Integration for Emacs</title><rect x="384" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="5,5,5" fill="skyblue"></rect><g transform="translate(409,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">claude-code</text></g></a><a href="/2025/talks/private-ai" title="Emacs and private AI: a great match" data-slug="private-ai"><title> 2:10- 2:30 Emacs and private AI: a great match</title><rect x="425" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(450,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:50- 3:10 Common Lisp images communicating like-a-human through shared Emacs slime and eev</title><rect x="480" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="5,5,5" fill="skyblue"></rect><g transform="translate(505,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">commonlisp</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 x="0" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(11,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sat-open</text></g></a><a href="/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:50 Emacs as a fully-fledged reference manager</title><rect x="41" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(66,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:10-10:30 org-gmail: A deep integration of Gmail into your Org Mode</title><rect x="96" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(121,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">gmail</text></g></a><a href="/2025/talks/languages" title="Studying foreign languages with Emacs, Org Mode and gptel" data-slug="languages"><title>10:40-10:50 Studying foreign languages with Emacs, Org Mode and gptel</title><rect x="137" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(148,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">languages</text></g></a><a href="/2025/talks/latex" title="LaTeX export in org-mode: the overhaul" data-slug="latex"><title>11:10-11:30 LaTeX export in org-mode: the overhaul</title><rect x="178" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(203,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">latex</text></g></a><a href="/2025/talks/bibliography" title="An enhanced bibliography in org-mode for scientific research and self-directed learning" data-slug="bibliography"><title> 1:00- 1:20 An enhanced bibliography in org-mode for scientific research and self-directed learning</title><rect x="329" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(354,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">bibliography</text></g></a><a href="/2025/talks/calc" title="Basic Calc functionality for engineering or electronics" data-slug="calc"><title> 1:40- 1:50 Basic Calc functionality for engineering or electronics</title><rect x="384" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(395,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">calc</text></g></a><a href="/2025/talks/authoring" title="How Emacs became my authoring playground—no Lisp required" data-slug="authoring"><title> 2:00- 2:10 How Emacs became my authoring playground—no Lisp required</title><rect x="411" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(422,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">authoring</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> 2:30- 2:50 Blee-LCNT: An Emacs-centered content production and self-publication framework</title><rect x="452" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(477,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> 3:10- 3:20 GNU Emacs Greader (Gnamù Reader) mode is the best Emacs mode in existence</title><rect x="507" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(518,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">greader</text></g></a><a href="/2025/talks/sat-close" title="Saturday closing remarks" data-slug="sat-close"><title> 3:30- 3:40 Saturday closing remarks</title><rect x="535" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(546,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">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:45 One year progress update Schemacs (formerly Gypsum)</title><rect stroke-width="3" x="41" y="75" opacity="0.8" width="20" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(59,133)"><text font-weight="bold" 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:05-10:25 Juicemacs: Exploring Speculative JIT Compilation for ELisp in Java</title><rect x="89" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="5,5,5" fill="skyblue"></rect><g transform="translate(114,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:35-10:55 Swanky Python: Interactive development for Python</title><rect x="130" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="5,5,5" fill="skyblue"></rect><g transform="translate(155,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:05-11:25 Interactive Python programming in Emacs</title><rect x="171" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(196,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:20 Emacs, editors, and LLM driven workflows</title><rect x="329" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(354,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">llm</text></g></a><a href="/2025/talks/claude-code" title="emacs-claude-code: Intelligent Claude Integration for Emacs" data-slug="claude-code"><title> 1:40- 2:00 emacs-claude-code: Intelligent Claude Integration for Emacs</title><rect x="384" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="5,5,5" fill="skyblue"></rect><g transform="translate(409,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">claude-code</text></g></a><a href="/2025/talks/private-ai" title="Emacs and private AI: a great match" data-slug="private-ai"><title> 2:10- 2:30 Emacs and private AI: a great match</title><rect x="425" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(450,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:50- 3:10 Common Lisp images communicating like-a-human through shared Emacs slime and eev</title><rect x="480" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="5,5,5" fill="skyblue"></rect><g transform="translate(505,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">commonlisp</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 ]]
diff --git a/2025/info/swanky-before.md b/2025/info/swanky-before.md
index 09673d90..a32fcb98 100644
--- a/2025/info/swanky-before.md
+++ b/2025/info/swanky-before.md
@@ -1,7 +1,7 @@
<!-- 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="swanky">
-<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 x="0" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(11,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sat-open</text></g></a><a href="/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:50 Emacs as a fully-fledged reference manager</title><rect x="41" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(66,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:10-10:30 org-gmail: A deep integration of Gmail into your Org Mode</title><rect x="96" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(121,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">gmail</text></g></a><a href="/2025/talks/languages" title="Studying foreign languages with Emacs, Org Mode and gptel" data-slug="languages"><title>10:40-10:50 Studying foreign languages with Emacs, Org Mode and gptel</title><rect x="137" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(148,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">languages</text></g></a><a href="/2025/talks/latex" title="LaTeX export in org-mode: the overhaul" data-slug="latex"><title>11:10-11:30 LaTeX export in org-mode: the overhaul</title><rect x="178" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(203,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">latex</text></g></a><a href="/2025/talks/bibliography" title="An enhanced bibliography in org-mode for scientific research and self-directed learning" data-slug="bibliography"><title> 1:00- 1:20 An enhanced bibliography in org-mode for scientific research and self-directed learning</title><rect x="329" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(354,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">bibliography</text></g></a><a href="/2025/talks/calc" title="Basic Calc functionality for engineering or electronics" data-slug="calc"><title> 1:40- 1:50 Basic Calc functionality for engineering or electronics</title><rect x="384" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(395,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">calc</text></g></a><a href="/2025/talks/authoring" title="How Emacs became my authoring playground—no Lisp required" data-slug="authoring"><title> 2:00- 2:10 How Emacs became my authoring playground—no Lisp required</title><rect x="411" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(422,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">authoring</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> 2:30- 2:50 Blee-LCNT: An Emacs-centered content production and self-publication framework</title><rect x="452" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(477,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> 3:10- 3:20 GNU Emacs Greader (Gnamù Reader) mode is the best Emacs mode in existence</title><rect x="507" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(518,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">greader</text></g></a><a href="/2025/talks/n-angulator" title="Org-mode GTD vs N-angulator GTD" data-slug="n-angulator"><title> 3:30- 3:40 Org-mode GTD vs N-angulator GTD</title><rect x="535" y="15" opacity="0.5" width="13" 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)">n-angulator</text></g></a><a href="/2025/talks/sat-close" title="Saturday closing remarks" data-slug="sat-close"><title> 4:00- 4:10 Saturday closing remarks</title><rect x="576" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(587,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">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:45 One year progress update Schemacs (formerly Gypsum)</title><rect x="41" y="75" opacity="0.5" width="20" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(59,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:05-10:25 Juicemacs: Exploring Speculative JIT Compilation for ELisp in Java</title><rect x="89" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="5,5,5" fill="skyblue"></rect><g transform="translate(114,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:35-10:55 Swanky Python: Interactive development for Python</title><rect stroke-width="3" x="130" y="75" opacity="0.8" width="27" height="59" stroke="black" stroke-dasharray="5,5,5" fill="skyblue"></rect><g transform="translate(155,133)"><text font-weight="bold" 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:05-11:25 Interactive Python programming in Emacs</title><rect x="171" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(196,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:20 Emacs, editors, and LLM driven workflows</title><rect x="329" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(354,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">llm</text></g></a><a href="/2025/talks/claude-code" title="emacs-claude-code: Intelligent Claude Integration for Emacs" data-slug="claude-code"><title> 1:40- 2:00 emacs-claude-code: Intelligent Claude Integration for Emacs</title><rect x="384" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="5,5,5" fill="skyblue"></rect><g transform="translate(409,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">claude-code</text></g></a><a href="/2025/talks/private-ai" title="Emacs and private AI: a great match" data-slug="private-ai"><title> 2:10- 2:30 Emacs and private AI: a great match</title><rect x="425" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(450,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:50- 3:10 Common Lisp images communicating like-a-human through shared Emacs slime and eev</title><rect x="480" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="5,5,5" fill="skyblue"></rect><g transform="translate(505,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">commonlisp</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 x="0" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(11,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sat-open</text></g></a><a href="/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:50 Emacs as a fully-fledged reference manager</title><rect x="41" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(66,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:10-10:30 org-gmail: A deep integration of Gmail into your Org Mode</title><rect x="96" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(121,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">gmail</text></g></a><a href="/2025/talks/languages" title="Studying foreign languages with Emacs, Org Mode and gptel" data-slug="languages"><title>10:40-10:50 Studying foreign languages with Emacs, Org Mode and gptel</title><rect x="137" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(148,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">languages</text></g></a><a href="/2025/talks/latex" title="LaTeX export in org-mode: the overhaul" data-slug="latex"><title>11:10-11:30 LaTeX export in org-mode: the overhaul</title><rect x="178" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(203,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">latex</text></g></a><a href="/2025/talks/bibliography" title="An enhanced bibliography in org-mode for scientific research and self-directed learning" data-slug="bibliography"><title> 1:00- 1:20 An enhanced bibliography in org-mode for scientific research and self-directed learning</title><rect x="329" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(354,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">bibliography</text></g></a><a href="/2025/talks/calc" title="Basic Calc functionality for engineering or electronics" data-slug="calc"><title> 1:40- 1:50 Basic Calc functionality for engineering or electronics</title><rect x="384" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(395,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">calc</text></g></a><a href="/2025/talks/authoring" title="How Emacs became my authoring playground—no Lisp required" data-slug="authoring"><title> 2:00- 2:10 How Emacs became my authoring playground—no Lisp required</title><rect x="411" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(422,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">authoring</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> 2:30- 2:50 Blee-LCNT: An Emacs-centered content production and self-publication framework</title><rect x="452" y="15" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(477,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> 3:10- 3:20 GNU Emacs Greader (Gnamù Reader) mode is the best Emacs mode in existence</title><rect x="507" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(518,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">greader</text></g></a><a href="/2025/talks/sat-close" title="Saturday closing remarks" data-slug="sat-close"><title> 3:30- 3:40 Saturday closing remarks</title><rect x="535" y="15" opacity="0.5" width="13" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(546,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">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:45 One year progress update Schemacs (formerly Gypsum)</title><rect x="41" y="75" opacity="0.5" width="20" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(59,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:05-10:25 Juicemacs: Exploring Speculative JIT Compilation for ELisp in Java</title><rect x="89" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="5,5,5" fill="skyblue"></rect><g transform="translate(114,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:35-10:55 Swanky Python: Interactive development for Python</title><rect stroke-width="3" x="130" y="75" opacity="0.8" width="27" height="59" stroke="black" stroke-dasharray="5,5,5" fill="skyblue"></rect><g transform="translate(155,133)"><text font-weight="bold" 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:05-11:25 Interactive Python programming in Emacs</title><rect x="171" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(196,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:20 Emacs, editors, and LLM driven workflows</title><rect x="329" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(354,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">llm</text></g></a><a href="/2025/talks/claude-code" title="emacs-claude-code: Intelligent Claude Integration for Emacs" data-slug="claude-code"><title> 1:40- 2:00 emacs-claude-code: Intelligent Claude Integration for Emacs</title><rect x="384" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="5,5,5" fill="skyblue"></rect><g transform="translate(409,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">claude-code</text></g></a><a href="/2025/talks/private-ai" title="Emacs and private AI: a great match" data-slug="private-ai"><title> 2:10- 2:30 Emacs and private AI: a great match</title><rect x="425" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(450,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:50- 3:10 Common Lisp images communicating like-a-human through shared Emacs slime and eev</title><rect x="480" y="75" opacity="0.5" width="27" height="59" stroke="black" stroke-dasharray="5,5,5" fill="skyblue"></rect><g transform="translate(505,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">commonlisp</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 ]]
diff --git a/2025/organizers-notebook.md b/2025/organizers-notebook.md
index 269f8e7f..c22ac6dd 100644
--- a/2025/organizers-notebook.md
+++ b/2025/organizers-notebook.md
@@ -13,12 +13,12 @@ You might also like the [general organizers' notebook](/organizers-notebook) and
- [Communications plan](#comms)
- [Good/better/best](#good-better-best)
- [Phases](#phases)
- - [Set up organizers notebook](#org2dbd96a)
+ - [Set up organizers notebook](#org2f0a0a1)
- [Draft CFP](#cfp)
- [Draft schedule](#draft-schedule)
- - [While speakers are working on their videos](#org6e24b48)
- - [While volunteers are working on captions](#org8756a4d)
- - [After the conference](#org4b698c4)
+ - [While speakers are working on their videos](#org56e9130)
+ - [While volunteers are working on captions](#org7c34925)
+ - [After the conference](#org9b98b9f)
- [Prepare shift calendar, ask people to sign up](#shifts)
- [Check EmacsConf infrastructure](#check-emacsconf-infrastructure):project:
- [BigBlueButton](#check-emacsconf-infrastructure-bigbluebutton)
@@ -220,7 +220,7 @@ interests you!
# Phases
-<a id="org2dbd96a"></a>
+<a id="org2f0a0a1"></a>
## DONE Set up organizers notebook
@@ -270,9 +270,9 @@ interests you!
<a id="draft-schedule"></a>
-## TODO Draft schedule
+## DONE Draft schedule
-<svg width="500" height="700" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><title>Graphical view of the schedule</title><g transform="translate(0,0)"><title>Schedule for Saturday</title><rect width="250" height="700" x="0" y="0" fill="white"></rect><text font-size="10" fill="black" y="30" x="3">Saturday</text><a href="https://emacsconf.org/2025/talks/sat-open" title="Saturday opening remarks" data-slug="sat-open"><title> 9:00- 9:10 Saturday opening remarks</title><rect x="40" y="40" opacity="0.8" width="84" height="13" stroke="black" stroke-dasharray="5,5,5" fill="gray"></rect><g transform="translate(40,51)"><text fill="black" x="0" y="0" font-size="10" transform="nil">sat-open</text></g></a><a href="https://emacsconf.org/2025/talks/org-babel" title="Making Org-Babel reactive" data-slug="org-babel"><title> 9:10- 9:20 Making Org-Babel reactive</title><rect x="40" y="53" opacity="0.8" width="84" height="13" stroke="black" stroke-dasharray="5,5,5" fill="lightblue"></rect><g transform="translate(40,64)"><text fill="black" x="0" y="0" font-size="10" transform="nil">org-babel</text></g></a><a href="https://emacsconf.org/2025/talks/reference" title="Emacs as a fully-fledged reference manager" data-slug="reference"><title> 9:30- 9:50 Emacs as a fully-fledged reference manager</title><rect x="40" y="81" opacity="0.8" width="84" height="27" stroke="black" stroke-dasharray="" fill="gray"></rect><g transform="translate(40,106)"><text fill="black" x="0" y="0" font-size="10" transform="nil">reference</text></g></a><a href="https://emacsconf.org/2025/talks/gmail" title="org-gmail: A deep integration of Gmail into your Org Mode" data-slug="gmail"><title>10:10-10:30 org-gmail: A deep integration of Gmail into your Org Mode</title><rect x="40" y="136" opacity="0.8" width="84" height="27" stroke="black" stroke-dasharray="5,5,5" fill="lightblue"></rect><g transform="translate(40,161)"><text fill="black" x="0" y="0" font-size="10" transform="nil">gmail</text></g></a><a href="https://emacsconf.org/2025/talks/languages" title="Studying foreign languages with Emacs, Org Mode and gptel" data-slug="languages"><title>10:40-10:50 Studying foreign languages with Emacs, Org Mode and gptel</title><rect x="40" y="177" opacity="0.8" width="84" height="13" stroke="black" stroke-dasharray="" fill="lightblue"></rect><g transform="translate(40,188)"><text fill="black" x="0" y="0" font-size="10" transform="nil">languages</text></g></a><a href="https://emacsconf.org/2025/talks/latex" title="LaTeX export in org-mode: the overhaul" data-slug="latex"><title>11:10-11:30 LaTeX export in org-mode: the overhaul</title><rect x="40" y="218" opacity="0.8" width="84" height="27" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(40,243)"><text fill="black" x="0" y="0" font-size="10" transform="nil">latex</text></g></a><a href="https://emacsconf.org/2025/talks/bibliography" title="An enhanced bibliography in org-mode for scientific research and self-directed learning" data-slug="bibliography"><title> 1:00- 1:20 An enhanced bibliography in org-mode for scientific research and self-directed learning</title><rect x="40" y="369" opacity="0.8" width="84" height="27" stroke="black" stroke-dasharray="" fill="gray"></rect><g transform="translate(40,394)"><text fill="black" x="0" y="0" font-size="10" transform="nil">bibliography</text></g></a><a href="https://emacsconf.org/2025/talks/calc" title="Basic Calc functionality for engineering or electronics" data-slug="calc"><title> 1:40- 1:50 Basic Calc functionality for engineering or electronics</title><rect x="40" y="424" opacity="0.8" width="84" height="13" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(40,435)"><text fill="black" x="0" y="0" font-size="10" transform="nil">calc</text></g></a><a href="https://emacsconf.org/2025/talks/authoring" title="How Emacs became my authoring playground—no Lisp required" data-slug="authoring"><title> 2:00- 2:10 How Emacs became my authoring playground—no Lisp required</title><rect x="40" y="451" opacity="0.8" width="84" height="13" stroke="black" stroke-dasharray="" fill="lightblue"></rect><g transform="translate(40,462)"><text fill="black" x="0" y="0" font-size="10" transform="nil">authoring</text></g></a><a href="https://emacsconf.org/2025/talks/blee-lcnt" title="Blee-LCNT: An Emacs-centered content production and self-publication framework" data-slug="blee-lcnt"><title> 2:30- 2:50 Blee-LCNT: An Emacs-centered content production and self-publication framework</title><rect x="40" y="492" opacity="0.8" width="84" height="27" stroke="black" stroke-dasharray="" fill="gray"></rect><g transform="translate(40,517)"><text fill="black" x="0" y="0" font-size="10" transform="nil">blee-lcnt</text></g></a><a href="https://emacsconf.org/2025/talks/greader" title="GNU Emacs Greader (Gnamù Reader) mode is the best Emacs mode in existence" data-slug="greader"><title> 3:10- 3:20 GNU Emacs Greader (Gnamù Reader) mode is the best Emacs mode in existence</title><rect x="40" y="547" opacity="0.8" width="84" height="13" stroke="black" stroke-dasharray="5,5,5" fill="gray"></rect><g transform="translate(40,558)"><text fill="black" x="0" y="0" font-size="10" transform="nil">greader</text></g></a><a href="https://emacsconf.org/2025/talks/n-angulator" title="Org-mode GTD vs N-angulator GTD" data-slug="n-angulator"><title> 3:30- 3:40 Org-mode GTD vs N-angulator GTD</title><rect x="40" y="575" opacity="0.8" width="84" height="13" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(40,586)"><text fill="black" x="0" y="0" font-size="10" transform="nil">n-angulator</text></g></a><a href="https://emacsconf.org/2025/talks/sat-close" title="Saturday closing remarks" data-slug="sat-close"><title> 4:00- 4:10 Saturday closing remarks</title><rect x="40" y="616" opacity="0.8" width="84" height="13" stroke="black" stroke-dasharray="5,5,5" fill="gray"></rect><g transform="translate(40,627)"><text fill="black" x="0" y="0" font-size="10" transform="nil">sat-close</text></g></a><a href="https://emacsconf.org/2025/talks/schemacs" title="One year progress update Schemacs (formerly Gypsum)" data-slug="schemacs"><title> 9:30- 9:45 One year progress update Schemacs (formerly Gypsum)</title><rect x="125" y="81" opacity="0.8" width="84" height="20" stroke="black" stroke-dasharray="" fill="lightblue"></rect><g transform="translate(125,99)"><text fill="black" x="0" y="0" font-size="10" transform="nil">schemacs</text></g></a><a href="https://emacsconf.org/2025/talks/juicemacs" title="Juicemacs: Exploring Speculative JIT Compilation for ELisp in Java" data-slug="juicemacs"><title>10:05-10:25 Juicemacs: Exploring Speculative JIT Compilation for ELisp in Java</title><rect x="125" y="129" opacity="0.8" width="84" height="27" stroke="black" stroke-dasharray="5,5,5" fill="lightblue"></rect><g transform="translate(125,154)"><text fill="black" x="0" y="0" font-size="10" transform="nil">juicemacs</text></g></a><a href="https://emacsconf.org/2025/talks/swanky" title="Swanky Python: Interactive development for Python" data-slug="swanky"><title>10:35-10:55 Swanky Python: Interactive development for Python</title><rect x="125" y="170" opacity="0.8" width="84" height="27" stroke="black" stroke-dasharray="5,5,5" fill="gray"></rect><g transform="translate(125,195)"><text fill="black" x="0" y="0" font-size="10" transform="nil">swanky</text></g></a><a href="https://emacsconf.org/2025/talks/python" title="Interactive Python development in Emacs" data-slug="python"><title>11:05-11:25 Interactive Python development in Emacs</title><rect x="125" y="211" opacity="0.8" width="84" height="27" stroke="black" stroke-dasharray="" fill="lightblue"></rect><g transform="translate(125,236)"><text fill="black" x="0" y="0" font-size="10" transform="nil">python</text></g></a><a href="https://emacsconf.org/2025/talks/llm" title="Emacs, editors, and LLM driven workflows" data-slug="llm"><title> 1:00- 1:20 Emacs, editors, and LLM driven workflows</title><rect x="125" y="369" opacity="0.8" width="84" height="27" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(125,394)"><text fill="black" x="0" y="0" font-size="10" transform="nil">llm</text></g></a><a href="https://emacsconf.org/2025/talks/claude-code" title="emacs-claude-code: Intelligent Claude Integration for Emacs" data-slug="claude-code"><title> 1:40- 2:00 emacs-claude-code: Intelligent Claude Integration for Emacs</title><rect x="125" y="424" opacity="0.8" width="84" height="27" stroke="black" stroke-dasharray="5,5,5" fill="gray"></rect><g transform="translate(125,449)"><text fill="black" x="0" y="0" font-size="10" transform="nil">claude-code</text></g></a><a href="https://emacsconf.org/2025/talks/private-ai" title="Emacs and private AI: a great match" data-slug="private-ai"><title> 2:10- 2:30 Emacs and private AI: a great match</title><rect x="125" y="465" opacity="0.8" width="84" height="27" stroke="black" stroke-dasharray="" fill="gray"></rect><g transform="translate(125,490)"><text fill="black" x="0" y="0" font-size="10" transform="nil">private-ai</text></g></a><a href="https://emacsconf.org/2025/talks/commonlisp" title="Common Lisp images communicating like-a-human through shared Emacs slime and eev" data-slug="commonlisp"><title> 2:50- 3:10 Common Lisp images communicating like-a-human through shared Emacs slime and eev</title><rect x="125" y="520" opacity="0.8" width="84" height="27" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(125,545)"><text fill="black" x="0" y="0" font-size="10" transform="nil">commonlisp</text></g></a><g transform="translate(3,40)"><line stroke="darkgray" x1="40" y1="0" x2="210" y2="0"></line><text fill="black" x="0" y="0" font-size="10" dy=".4em">9 AM</text></g><g transform="translate(3,122)"><line stroke="darkgray" x1="40" y1="0" x2="210" y2="0"></line><text fill="black" x="0" y="0" font-size="10" dy=".4em">10 AM</text></g><g transform="translate(3,204)"><line stroke="darkgray" x1="40" y1="0" x2="210" y2="0"></line><text fill="black" x="0" y="0" font-size="10" dy=".4em">11 AM</text></g><g transform="translate(3,287)"><line stroke="darkgray" x1="40" y1="0" x2="210" y2="0"></line><text fill="black" x="0" y="0" font-size="10" dy=".4em">12 PM</text></g><g transform="translate(3,369)"><line stroke="darkgray" x1="40" y1="0" x2="210" y2="0"></line><text fill="black" x="0" y="0" font-size="10" dy=".4em">1 PM</text></g><g transform="translate(3,451)"><line stroke="darkgray" x1="40" y1="0" x2="210" y2="0"></line><text fill="black" x="0" y="0" font-size="10" dy=".4em">2 PM</text></g><g transform="translate(3,534)"><line stroke="darkgray" x1="40" y1="0" x2="210" y2="0"></line><text fill="black" x="0" y="0" font-size="10" dy=".4em">3 PM</text></g><g transform="translate(3,616)"><line stroke="darkgray" x1="40" y1="0" x2="210" y2="0"></line><text fill="black" x="0" y="0" font-size="10" dy=".4em">4 PM</text></g><g transform="translate(3,698)"><line stroke="darkgray" x1="40" y1="0" x2="210" y2="0"></line><text fill="black" x="0" y="0" font-size="10" dy=".4em">5 PM</text></g></g><g transform="translate(250,0)"><title>Schedule for Sunday</title><rect width="250" height="700" x="0" y="0" fill="white"></rect><text font-size="10" fill="black" y="30" x="3">Sunday</text><a href="https://emacsconf.org/2025/talks/sun-open" title="Sunday opening remarks" data-slug="sun-open"><title> 9:00- 9:10 Sunday opening remarks</title><rect x="40" y="40" opacity="0.8" width="84" height="13" stroke="black" stroke-dasharray="5,5,5" fill="gray"></rect><g transform="translate(40,51)"><text fill="black" x="0" y="0" font-size="10" transform="nil">sun-open</text></g></a><a href="https://emacsconf.org/2025/talks/weights" title="Weightlifting tracking with Emacs on Android" data-slug="weights"><title> 9:10- 9:20 Weightlifting tracking with Emacs on Android</title><rect x="40" y="53" opacity="0.8" width="84" height="13" stroke="black" stroke-dasharray="" fill="lightblue"></rect><g transform="translate(40,64)"><text fill="black" x="0" y="0" font-size="10" transform="nil">weights</text></g></a><a href="https://emacsconf.org/2025/talks/modern" title="Some problems of modernizing Emacs" data-slug="modern"><title> 9:40-10:00 Some problems of modernizing Emacs</title><rect x="40" y="94" opacity="0.8" width="84" height="27" stroke="black" stroke-dasharray="5,5,5" fill="gray"></rect><g transform="translate(40,119)"><text fill="black" x="0" y="0" font-size="10" transform="nil">modern</text></g></a><a href="https://emacsconf.org/2025/talks/reader" title="An introduction to the Emacs Reader" data-slug="reader"><title>10:10-10:30 An introduction to the Emacs Reader</title><rect x="40" y="136" opacity="0.8" width="84" height="27" stroke="black" stroke-dasharray="" fill="gray"></rect><g transform="translate(40,161)"><text fill="black" x="0" y="0" font-size="10" transform="nil">reader</text></g></a><a href="https://emacsconf.org/2025/talks/life" title="From FRDCSA to FLP2: Building AI-Powered Life Planning Systems in Emacs - A Journey from Research to Real-World Impact" data-slug="life"><title>10:50-11:10 From FRDCSA to FLP2: Building AI-Powered Life Planning Systems in Emacs - A Journey from Research to Real-World Impact</title><rect x="40" y="190" opacity="0.8" width="84" height="27" stroke="black" stroke-dasharray="" fill="gray"></rect><g transform="translate(40,215)"><text fill="black" x="0" y="0" font-size="10" transform="nil">life</text></g></a><a href="https://emacsconf.org/2025/talks/completion" title="corfu+yasnippet: Easier than I thought" data-slug="completion"><title>11:30-11:50 corfu+yasnippet: Easier than I thought</title><rect x="40" y="245" opacity="0.8" width="84" height="27" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(40,270)"><text fill="black" x="0" y="0" font-size="10" transform="nil">completion</text></g></a><a href="https://emacsconf.org/2025/talks/zettelkasten" title="Zettelkasten for regular Emacs hackers" data-slug="zettelkasten"><title> 1:00- 1:20 Zettelkasten for regular Emacs hackers</title><rect x="40" y="369" opacity="0.8" width="84" height="27" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(40,394)"><text fill="black" x="0" y="0" font-size="10" transform="nil">zettelkasten</text></g></a><a href="https://emacsconf.org/2025/talks/hyperboleqa" title="Questions and answers to help you fly with Hyperbole" data-slug="hyperboleqa"><title> 1:40- 2:10 Questions and answers to help you fly with Hyperbole</title><rect x="40" y="424" opacity="0.8" width="84" height="41" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(40,463)"><text fill="black" x="0" y="0" font-size="10" transform="nil">hyperboleqa</text></g></a><a href="https://emacsconf.org/2025/talks/gardening" title="Gardening in Emacs: A Windows user's tale of tending, tweaking, and triumph" data-slug="gardening"><title> 2:10- 2:20 Gardening in Emacs: A Windows user's tale of tending, tweaking, and triumph</title><rect x="40" y="465" opacity="0.8" width="84" height="13" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(40,476)"><text fill="black" x="0" y="0" font-size="10" transform="nil">gardening</text></g></a><a href="https://emacsconf.org/2025/talks/gnus" title="Reading and writing emails in GNU Emacs with Gnus" data-slug="gnus"><title> 2:30- 2:50 Reading and writing emails in GNU Emacs with Gnus</title><rect x="40" y="492" opacity="0.8" width="84" height="27" stroke="black" stroke-dasharray="5,5,5" fill="gray"></rect><g transform="translate(40,517)"><text fill="black" x="0" y="0" font-size="10" transform="nil">gnus</text></g></a><a href="https://emacsconf.org/2025/talks/bookclub-tapas" title="Bookclub tapas" data-slug="bookclub-tapas"><title> 3:00- 3:20 Bookclub tapas</title><rect x="40" y="534" opacity="0.8" width="84" height="27" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(40,559)"><text fill="black" x="0" y="0" font-size="10" transform="nil">bookclub-tapas</text></g></a><a href="https://emacsconf.org/2025/talks/sun-close" title="Sunday closing remarks" data-slug="sun-close"><title> 3:40- 3:50 Sunday closing remarks</title><rect x="40" y="589" opacity="0.8" width="84" height="13" stroke="black" stroke-dasharray="" fill="gray"></rect><g transform="translate(40,600)"><text fill="black" x="0" y="0" font-size="10" transform="nil">sun-close</text></g></a><g transform="translate(3,40)"><line stroke="darkgray" x1="40" y1="0" x2="210" y2="0"></line><text fill="black" x="0" y="0" font-size="10" dy=".4em">9 AM</text></g><g transform="translate(3,122)"><line stroke="darkgray" x1="40" y1="0" x2="210" y2="0"></line><text fill="black" x="0" y="0" font-size="10" dy=".4em">10 AM</text></g><g transform="translate(3,204)"><line stroke="darkgray" x1="40" y1="0" x2="210" y2="0"></line><text fill="black" x="0" y="0" font-size="10" dy=".4em">11 AM</text></g><g transform="translate(3,287)"><line stroke="darkgray" x1="40" y1="0" x2="210" y2="0"></line><text fill="black" x="0" y="0" font-size="10" dy=".4em">12 PM</text></g><g transform="translate(3,369)"><line stroke="darkgray" x1="40" y1="0" x2="210" y2="0"></line><text fill="black" x="0" y="0" font-size="10" dy=".4em">1 PM</text></g><g transform="translate(3,451)"><line stroke="darkgray" x1="40" y1="0" x2="210" y2="0"></line><text fill="black" x="0" y="0" font-size="10" dy=".4em">2 PM</text></g><g transform="translate(3,534)"><line stroke="darkgray" x1="40" y1="0" x2="210" y2="0"></line><text fill="black" x="0" y="0" font-size="10" dy=".4em">3 PM</text></g><g transform="translate(3,616)"><line stroke="darkgray" x1="40" y1="0" x2="210" y2="0"></line><text fill="black" x="0" y="0" font-size="10" dy=".4em">4 PM</text></g><g transform="translate(3,698)"><line stroke="darkgray" x1="40" y1="0" x2="210" y2="0"></line><text fill="black" x="0" y="0" font-size="10" dy=".4em">5 PM</text></g></g></svg>
+<svg width="500" height="700" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><title>Graphical view of the schedule</title><g transform="translate(0,0)"><title>Schedule for Saturday</title><rect width="250" height="700" x="0" y="0" fill="white"></rect><text font-size="10" fill="black" y="30" x="3">Saturday</text><a href="https://emacsconf.org/2025/talks/sat-open" title="Saturday opening remarks" data-slug="sat-open"><title> 9:00- 9:10 Saturday opening remarks</title><rect x="40" y="40" opacity="0.8" width="84" height="13" stroke="black" stroke-dasharray="5,5,5" fill="gray"></rect><g transform="translate(40,51)"><text fill="black" x="0" y="0" font-size="10" transform="nil">sat-open</text></g></a><a href="https://emacsconf.org/2025/talks/org-babel" title="Making Org-Babel reactive" data-slug="org-babel"><title> 9:10- 9:20 Making Org-Babel reactive</title><rect x="40" y="53" opacity="0.8" width="84" height="13" stroke="black" stroke-dasharray="5,5,5" fill="lightblue"></rect><g transform="translate(40,64)"><text fill="black" x="0" y="0" font-size="10" transform="nil">org-babel</text></g></a><a href="https://emacsconf.org/2025/talks/reference" title="Emacs as a fully-fledged reference manager" data-slug="reference"><title> 9:30- 9:50 Emacs as a fully-fledged reference manager</title><rect x="40" y="81" opacity="0.8" width="84" height="27" stroke="black" stroke-dasharray="" fill="gray"></rect><g transform="translate(40,106)"><text fill="black" x="0" y="0" font-size="10" transform="nil">reference</text></g></a><a href="https://emacsconf.org/2025/talks/gmail" title="org-gmail: A deep integration of Gmail into your Org Mode" data-slug="gmail"><title>10:10-10:30 org-gmail: A deep integration of Gmail into your Org Mode</title><rect x="40" y="136" opacity="0.8" width="84" height="27" stroke="black" stroke-dasharray="5,5,5" fill="lightblue"></rect><g transform="translate(40,161)"><text fill="black" x="0" y="0" font-size="10" transform="nil">gmail</text></g></a><a href="https://emacsconf.org/2025/talks/languages" title="Studying foreign languages with Emacs, Org Mode and gptel" data-slug="languages"><title>10:40-10:50 Studying foreign languages with Emacs, Org Mode and gptel</title><rect x="40" y="177" opacity="0.8" width="84" height="13" stroke="black" stroke-dasharray="" fill="lightblue"></rect><g transform="translate(40,188)"><text fill="black" x="0" y="0" font-size="10" transform="nil">languages</text></g></a><a href="https://emacsconf.org/2025/talks/latex" title="LaTeX export in org-mode: the overhaul" data-slug="latex"><title>11:10-11:30 LaTeX export in org-mode: the overhaul</title><rect x="40" y="218" opacity="0.8" width="84" height="27" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(40,243)"><text fill="black" x="0" y="0" font-size="10" transform="nil">latex</text></g></a><a href="https://emacsconf.org/2025/talks/bibliography" title="An enhanced bibliography in org-mode for scientific research and self-directed learning" data-slug="bibliography"><title> 1:00- 1:20 An enhanced bibliography in org-mode for scientific research and self-directed learning</title><rect x="40" y="369" opacity="0.8" width="84" height="27" stroke="black" stroke-dasharray="" fill="gray"></rect><g transform="translate(40,394)"><text fill="black" x="0" y="0" font-size="10" transform="nil">bibliography</text></g></a><a href="https://emacsconf.org/2025/talks/calc" title="Basic Calc functionality for engineering or electronics" data-slug="calc"><title> 1:40- 1:50 Basic Calc functionality for engineering or electronics</title><rect x="40" y="424" opacity="0.8" width="84" height="13" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(40,435)"><text fill="black" x="0" y="0" font-size="10" transform="nil">calc</text></g></a><a href="https://emacsconf.org/2025/talks/authoring" title="How Emacs became my authoring playground—no Lisp required" data-slug="authoring"><title> 2:00- 2:10 How Emacs became my authoring playground—no Lisp required</title><rect x="40" y="451" opacity="0.8" width="84" height="13" stroke="black" stroke-dasharray="" fill="lightblue"></rect><g transform="translate(40,462)"><text fill="black" x="0" y="0" font-size="10" transform="nil">authoring</text></g></a><a href="https://emacsconf.org/2025/talks/blee-lcnt" title="Blee-LCNT: An Emacs-centered content production and self-publication framework" data-slug="blee-lcnt"><title> 2:30- 2:50 Blee-LCNT: An Emacs-centered content production and self-publication framework</title><rect x="40" y="492" opacity="0.8" width="84" height="27" stroke="black" stroke-dasharray="" fill="gray"></rect><g transform="translate(40,517)"><text fill="black" x="0" y="0" font-size="10" transform="nil">blee-lcnt</text></g></a><a href="https://emacsconf.org/2025/talks/greader" title="GNU Emacs Greader (Gnamù Reader) mode is the best Emacs mode in existence" data-slug="greader"><title> 3:10- 3:20 GNU Emacs Greader (Gnamù Reader) mode is the best Emacs mode in existence</title><rect x="40" y="547" opacity="0.8" width="84" height="13" stroke="black" stroke-dasharray="5,5,5" fill="gray"></rect><g transform="translate(40,558)"><text fill="black" x="0" y="0" font-size="10" transform="nil">greader</text></g></a><a href="https://emacsconf.org/2025/talks/sat-close" title="Saturday closing remarks" data-slug="sat-close"><title> 3:30- 3:40 Saturday closing remarks</title><rect x="40" y="575" opacity="0.8" width="84" height="13" stroke="black" stroke-dasharray="5,5,5" fill="gray"></rect><g transform="translate(40,586)"><text fill="black" x="0" y="0" font-size="10" transform="nil">sat-close</text></g></a><a href="https://emacsconf.org/2025/talks/schemacs" title="One year progress update Schemacs (formerly Gypsum)" data-slug="schemacs"><title> 9:30- 9:45 One year progress update Schemacs (formerly Gypsum)</title><rect x="125" y="81" opacity="0.8" width="84" height="20" stroke="black" stroke-dasharray="" fill="lightblue"></rect><g transform="translate(125,99)"><text fill="black" x="0" y="0" font-size="10" transform="nil">schemacs</text></g></a><a href="https://emacsconf.org/2025/talks/juicemacs" title="Juicemacs: Exploring Speculative JIT Compilation for ELisp in Java" data-slug="juicemacs"><title>10:05-10:25 Juicemacs: Exploring Speculative JIT Compilation for ELisp in Java</title><rect x="125" y="129" opacity="0.8" width="84" height="27" stroke="black" stroke-dasharray="5,5,5" fill="lightblue"></rect><g transform="translate(125,154)"><text fill="black" x="0" y="0" font-size="10" transform="nil">juicemacs</text></g></a><a href="https://emacsconf.org/2025/talks/swanky" title="Swanky Python: Interactive development for Python" data-slug="swanky"><title>10:35-10:55 Swanky Python: Interactive development for Python</title><rect x="125" y="170" opacity="0.8" width="84" height="27" stroke="black" stroke-dasharray="5,5,5" fill="gray"></rect><g transform="translate(125,195)"><text fill="black" x="0" y="0" font-size="10" transform="nil">swanky</text></g></a><a href="https://emacsconf.org/2025/talks/python" title="Interactive Python programming in Emacs" data-slug="python"><title>11:05-11:25 Interactive Python programming in Emacs</title><rect x="125" y="211" opacity="0.8" width="84" height="27" stroke="black" stroke-dasharray="" fill="lightblue"></rect><g transform="translate(125,236)"><text fill="black" x="0" y="0" font-size="10" transform="nil">python</text></g></a><a href="https://emacsconf.org/2025/talks/llm" title="Emacs, editors, and LLM driven workflows" data-slug="llm"><title> 1:00- 1:20 Emacs, editors, and LLM driven workflows</title><rect x="125" y="369" opacity="0.8" width="84" height="27" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(125,394)"><text fill="black" x="0" y="0" font-size="10" transform="nil">llm</text></g></a><a href="https://emacsconf.org/2025/talks/claude-code" title="emacs-claude-code: Intelligent Claude Integration for Emacs" data-slug="claude-code"><title> 1:40- 2:00 emacs-claude-code: Intelligent Claude Integration for Emacs</title><rect x="125" y="424" opacity="0.8" width="84" height="27" stroke="black" stroke-dasharray="5,5,5" fill="gray"></rect><g transform="translate(125,449)"><text fill="black" x="0" y="0" font-size="10" transform="nil">claude-code</text></g></a><a href="https://emacsconf.org/2025/talks/private-ai" title="Emacs and private AI: a great match" data-slug="private-ai"><title> 2:10- 2:30 Emacs and private AI: a great match</title><rect x="125" y="465" opacity="0.8" width="84" height="27" stroke="black" stroke-dasharray="" fill="gray"></rect><g transform="translate(125,490)"><text fill="black" x="0" y="0" font-size="10" transform="nil">private-ai</text></g></a><a href="https://emacsconf.org/2025/talks/commonlisp" title="Common Lisp images communicating like-a-human through shared Emacs slime and eev" data-slug="commonlisp"><title> 2:50- 3:10 Common Lisp images communicating like-a-human through shared Emacs slime and eev</title><rect x="125" y="520" opacity="0.8" width="84" height="27" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(125,545)"><text fill="black" x="0" y="0" font-size="10" transform="nil">commonlisp</text></g></a><g transform="translate(3,40)"><line stroke="darkgray" x1="40" y1="0" x2="210" y2="0"></line><text fill="black" x="0" y="0" font-size="10" dy=".4em">9 AM</text></g><g transform="translate(3,122)"><line stroke="darkgray" x1="40" y1="0" x2="210" y2="0"></line><text fill="black" x="0" y="0" font-size="10" dy=".4em">10 AM</text></g><g transform="translate(3,204)"><line stroke="darkgray" x1="40" y1="0" x2="210" y2="0"></line><text fill="black" x="0" y="0" font-size="10" dy=".4em">11 AM</text></g><g transform="translate(3,287)"><line stroke="darkgray" x1="40" y1="0" x2="210" y2="0"></line><text fill="black" x="0" y="0" font-size="10" dy=".4em">12 PM</text></g><g transform="translate(3,369)"><line stroke="darkgray" x1="40" y1="0" x2="210" y2="0"></line><text fill="black" x="0" y="0" font-size="10" dy=".4em">1 PM</text></g><g transform="translate(3,451)"><line stroke="darkgray" x1="40" y1="0" x2="210" y2="0"></line><text fill="black" x="0" y="0" font-size="10" dy=".4em">2 PM</text></g><g transform="translate(3,534)"><line stroke="darkgray" x1="40" y1="0" x2="210" y2="0"></line><text fill="black" x="0" y="0" font-size="10" dy=".4em">3 PM</text></g><g transform="translate(3,616)"><line stroke="darkgray" x1="40" y1="0" x2="210" y2="0"></line><text fill="black" x="0" y="0" font-size="10" dy=".4em">4 PM</text></g><g transform="translate(3,698)"><line stroke="darkgray" x1="40" y1="0" x2="210" y2="0"></line><text fill="black" x="0" y="0" font-size="10" dy=".4em">5 PM</text></g></g><g transform="translate(250,0)"><title>Schedule for Sunday</title><rect width="250" height="700" x="0" y="0" fill="white"></rect><text font-size="10" fill="black" y="30" x="3">Sunday</text><a href="https://emacsconf.org/2025/talks/sun-open" title="Sunday opening remarks" data-slug="sun-open"><title> 9:00- 9:10 Sunday opening remarks</title><rect x="40" y="40" opacity="0.8" width="84" height="13" stroke="black" stroke-dasharray="5,5,5" fill="gray"></rect><g transform="translate(40,51)"><text fill="black" x="0" y="0" font-size="10" transform="nil">sun-open</text></g></a><a href="https://emacsconf.org/2025/talks/weights" title="Weightlifting tracking with Emacs on Android" data-slug="weights"><title> 9:10- 9:20 Weightlifting tracking with Emacs on Android</title><rect x="40" y="53" opacity="0.8" width="84" height="13" stroke="black" stroke-dasharray="" fill="lightblue"></rect><g transform="translate(40,64)"><text fill="black" x="0" y="0" font-size="10" transform="nil">weights</text></g></a><a href="https://emacsconf.org/2025/talks/modern" title="Some problems of modernizing Emacs" data-slug="modern"><title> 9:40-10:00 Some problems of modernizing Emacs</title><rect x="40" y="94" opacity="0.8" width="84" height="27" stroke="black" stroke-dasharray="5,5,5" fill="gray"></rect><g transform="translate(40,119)"><text fill="black" x="0" y="0" font-size="10" transform="nil">modern</text></g></a><a href="https://emacsconf.org/2025/talks/reader" title="An introduction to the Emacs Reader" data-slug="reader"><title>10:10-10:30 An introduction to the Emacs Reader</title><rect x="40" y="136" opacity="0.8" width="84" height="27" stroke="black" stroke-dasharray="" fill="gray"></rect><g transform="translate(40,161)"><text fill="black" x="0" y="0" font-size="10" transform="nil">reader</text></g></a><a href="https://emacsconf.org/2025/talks/completion" title="corfu+yasnippet: Easier than I thought" data-slug="completion"><title>11:00-11:20 corfu+yasnippet: Easier than I thought</title><rect x="40" y="204" opacity="0.8" width="84" height="27" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(40,229)"><text fill="black" x="0" y="0" font-size="10" transform="nil">completion</text></g></a><a href="https://emacsconf.org/2025/talks/zettelkasten" title="Zettelkasten for regular Emacs hackers" data-slug="zettelkasten"><title> 1:00- 1:20 Zettelkasten for regular Emacs hackers</title><rect x="40" y="369" opacity="0.8" width="84" height="27" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(40,394)"><text fill="black" x="0" y="0" font-size="10" transform="nil">zettelkasten</text></g></a><a href="https://emacsconf.org/2025/talks/hyperboleqa" title="Questions and answers to help you fly with Hyperbole" data-slug="hyperboleqa"><title> 1:40- 2:10 Questions and answers to help you fly with Hyperbole</title><rect x="40" y="424" opacity="0.8" width="84" height="41" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(40,463)"><text fill="black" x="0" y="0" font-size="10" transform="nil">hyperboleqa</text></g></a><a href="https://emacsconf.org/2025/talks/gardening" title="Gardening in Emacs: A Windows user's tale of tending, tweaking, and triumph" data-slug="gardening"><title> 2:10- 2:20 Gardening in Emacs: A Windows user's tale of tending, tweaking, and triumph</title><rect x="40" y="465" opacity="0.8" width="84" height="13" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(40,476)"><text fill="black" x="0" y="0" font-size="10" transform="nil">gardening</text></g></a><a href="https://emacsconf.org/2025/talks/gnus" title="Reading and writing emails in GNU Emacs with Gnus" data-slug="gnus"><title> 2:30- 2:50 Reading and writing emails in GNU Emacs with Gnus</title><rect x="40" y="492" opacity="0.8" width="84" height="27" stroke="black" stroke-dasharray="5,5,5" fill="gray"></rect><g transform="translate(40,517)"><text fill="black" x="0" y="0" font-size="10" transform="nil">gnus</text></g></a><a href="https://emacsconf.org/2025/talks/bookclub-tapas" title="Bookclub tapas" data-slug="bookclub-tapas"><title> 3:00- 3:20 Bookclub tapas</title><rect x="40" y="534" opacity="0.8" width="84" height="27" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(40,559)"><text fill="black" x="0" y="0" font-size="10" transform="nil">bookclub-tapas</text></g></a><a href="https://emacsconf.org/2025/talks/sun-close" title="Sunday closing remarks" data-slug="sun-close"><title> 3:40- 3:50 Sunday closing remarks</title><rect x="40" y="589" opacity="0.8" width="84" height="13" stroke="black" stroke-dasharray="" fill="gray"></rect><g transform="translate(40,600)"><text fill="black" x="0" y="0" font-size="10" transform="nil">sun-close</text></g></a><g transform="translate(3,40)"><line stroke="darkgray" x1="40" y1="0" x2="210" y2="0"></line><text fill="black" x="0" y="0" font-size="10" dy=".4em">9 AM</text></g><g transform="translate(3,122)"><line stroke="darkgray" x1="40" y1="0" x2="210" y2="0"></line><text fill="black" x="0" y="0" font-size="10" dy=".4em">10 AM</text></g><g transform="translate(3,204)"><line stroke="darkgray" x1="40" y1="0" x2="210" y2="0"></line><text fill="black" x="0" y="0" font-size="10" dy=".4em">11 AM</text></g><g transform="translate(3,287)"><line stroke="darkgray" x1="40" y1="0" x2="210" y2="0"></line><text fill="black" x="0" y="0" font-size="10" dy=".4em">12 PM</text></g><g transform="translate(3,369)"><line stroke="darkgray" x1="40" y1="0" x2="210" y2="0"></line><text fill="black" x="0" y="0" font-size="10" dy=".4em">1 PM</text></g><g transform="translate(3,451)"><line stroke="darkgray" x1="40" y1="0" x2="210" y2="0"></line><text fill="black" x="0" y="0" font-size="10" dy=".4em">2 PM</text></g><g transform="translate(3,534)"><line stroke="darkgray" x1="40" y1="0" x2="210" y2="0"></line><text fill="black" x="0" y="0" font-size="10" dy=".4em">3 PM</text></g><g transform="translate(3,616)"><line stroke="darkgray" x1="40" y1="0" x2="210" y2="0"></line><text fill="black" x="0" y="0" font-size="10" dy=".4em">4 PM</text></g><g transform="translate(3,698)"><line stroke="darkgray" x1="40" y1="0" x2="210" y2="0"></line><text fill="black" x="0" y="0" font-size="10" dy=".4em">5 PM</text></g></g></svg>
Legend:
@@ -283,6 +283,8 @@ Legend:
Notes:
+- <span class="timestamp-wrapper"><time class="timestamp" datetime="2025-11-11">[2025-11-11 Tue]</time></span> [n-angulator](https://emacsconf.org/2025/talks/n-angulator "Org-mode GTD vs N-angulator GTD") cancelled
+- <span class="timestamp-wrapper"><time class="timestamp" datetime="2025-11-01">[2025-11-01 Sat]</time></span> [life](https://emacsconf.org/2025/talks/life "From FRDCSA to FLP2: Building AI-Powered Life Planning Systems in Emacs - A Journey from Research to Real-World Impact") cancelled
- <span class="timestamp-wrapper"><time class="timestamp" datetime="2025-10-31">[2025-10-31 Fri]</time></span> [writing](https://emacsconf.org/2025/talks/writing "A writing day in the life with Org-Mode") cancelled
- AI dev afternoon: [llm](https://emacsconf.org/2025/talks/llm "Emacs, editors, and LLM driven workflows"), [claude-code](https://emacsconf.org/2025/talks/claude-code "emacs-claude-code: Intelligent Claude Integration for Emacs"), [private-ai](https://emacsconf.org/2025/talks/private-ai "Emacs and private AI: a great match") feels like a good progression
- I kinda like this spread-out combo of [zettelkasten](https://emacsconf.org/2025/talks/zettelkasten "Zettelkasten for regular Emacs hackers"), [gardening](https://emacsconf.org/2025/talks/gardening "Gardening in Emacs: A Windows user's tale of tending, tweaking, and triumph"), [writing](https://emacsconf.org/2025/talks/writing "A writing day in the life with Org-Mode"), and [bookclub-tapas](https://emacsconf.org/2025/talks/bookclub-tapas "Bookclub tapas") on Sunday afternoon
@@ -294,7 +296,7 @@ Notes:
- Sunday morning in 2023 had some packet loss issues at around 9:30
-<a id="org6e24b48"></a>
+<a id="org56e9130"></a>
## While speakers are working on their videos
@@ -308,10 +310,10 @@ Notes:
### TODO Record pronunciations
-### TODO Post the schedule publicly
+### DONE Post the schedule publicly
-<a id="org8756a4d"></a>
+<a id="org7c34925"></a>
## While volunteers are working on captions
@@ -578,7 +580,10 @@ Thanks for coming to EmacsConf 2025.
### TODO Send check-in details :email:
-<a id="org4b698c4"></a>
+### TODO Ask libera.chat to increase IRC limit
+
+
+<a id="org9b98b9f"></a>
## After the conference
@@ -596,7 +601,7 @@ AM: 9-12 PM EST, PM: 1-5 PM EST (plus a little extra for setup/transition)
Saturday Dec 6 2025
-<table id="org3892845">
+<table id="orgce20d5b">
<colgroup>
@@ -684,7 +689,7 @@ Saturday Dec 6 2025
Sunday Dec 7 2025
-<table id="orgbfefd7d">
+<table id="org0eae29f">
<colgroup>
@@ -1021,7 +1026,7 @@ meet: nanode
## ERC
-Some convenient commands are defined in [emacsconf-erc.el](https://git.emacsconf.org/emacsconf-el/tree/emacsconf-erc.el).
+Some convenient commands are defined in <a href="https://git.emacsconf.org/emacsconf-el/tree/emacsconf-erc.el">emacsconf-erc.el</a>.
<table>
diff --git a/2025/organizers-notebook/index.org b/2025/organizers-notebook/index.org
index 7f631506..5a7bf9f7 100644
--- a/2025/organizers-notebook/index.org
+++ b/2025/organizers-notebook/index.org
@@ -233,7 +233,6 @@ CLOSED: [2025-11-04 Tue 12:05]
authoring ; <= 15:00 EST
blee-lcnt ; any
greader ; any time
- n-angulator ; >= 12:00 EST
(sat-close)
("DEV Saturday, Dec 6" :start "2025-12-06 9:30" :set-track "Development")
schemacs ; <= 11:00 EST
@@ -278,7 +277,7 @@ CLOSED: [2025-11-04 Tue 12:05]
#+RESULTS: schedule
:results:
-saturday closing remarks: Starts at 16:00 before 16:30
+saturday closing remarks: Starts at 15:30 before 16:30
sunday closing remarks: Starts at 15:40 before 16:30
:end:
@@ -293,6 +292,7 @@ Legend:
Notes:
+- [2025-11-11 Tue] emacsconf:n-angulator cancelled
- [2025-11-01 Sat] emacsconf:life cancelled
- [2025-10-31 Fri] emacsconf:writing cancelled
- AI dev afternoon: emacsconf:llm, emacsconf:claude-code, emacsconf:private-ai feels like a good progression
@@ -324,7 +324,7 @@ CLOSED: [2025-10-14 Tue 18:31] SCHEDULED: <2025-10-10 Fri>
CLOSED: [2025-11-04 Tue 12:05]
** While volunteers are working on captions
*** TODO E-mail speakers asking them to confirm the pronunciations :email:
-SCHEDULED: <2025-11-08 Sat>
+SCHEDULED: <2025-11-14 Fri>
:PROPERTIES:
:CREATED: [2025-09-30 Tue 09:39]
:END:
@@ -889,9 +889,10 @@ SCHEDULED: <2025-11-22 Sat>
:CUSTOM_ID: check-emacsconf-infrastructure-do-a-dry-run-generate-all-the-test-assets
:END:
*** TODO Test connecting to VNC and streaming via OBS
-SCHEDULED: <2025-11-07 Fri>
+SCHEDULED: <2025-11-11 Tue>
:PROPERTIES:
:CUSTOM_ID: check-emacsconf-infrastructure-do-a-dry-run-test-connecting-to-vnc-and-streaming-via-obs
+:CREATED: [2025-11-07 Fri 13:52]
:END:
** Resizing
:PROPERTIES:
diff --git a/2025/organizers-notebook/schedule.svg b/2025/organizers-notebook/schedule.svg
index 585580e3..5e5afd48 100644
--- a/2025/organizers-notebook/schedule.svg
+++ b/2025/organizers-notebook/schedule.svg
@@ -1 +1 @@
-<svg width="500" height="700" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><title>Graphical view of the schedule</title><g transform="translate(0,0)"><title>Schedule for Saturday</title><rect width="250" height="700" x="0" y="0" fill="white"></rect><text font-size="10" fill="black" y="30" x="3">Saturday</text><a href="https://emacsconf.org/2025/talks/sat-open" title="Saturday opening remarks" data-slug="sat-open"><title> 9:00- 9:10 Saturday opening remarks</title><rect x="40" y="40" opacity="0.8" width="84" height="13" stroke="black" stroke-dasharray="5,5,5" fill="gray"></rect><g transform="translate(40,51)"><text fill="black" x="0" y="0" font-size="10" transform="nil">sat-open</text></g></a><a href="https://emacsconf.org/2025/talks/org-babel" title="Making Org-Babel reactive" data-slug="org-babel"><title> 9:10- 9:20 Making Org-Babel reactive</title><rect x="40" y="53" opacity="0.8" width="84" height="13" stroke="black" stroke-dasharray="5,5,5" fill="lightblue"></rect><g transform="translate(40,64)"><text fill="black" x="0" y="0" font-size="10" transform="nil">org-babel</text></g></a><a href="https://emacsconf.org/2025/talks/reference" title="Emacs as a fully-fledged reference manager" data-slug="reference"><title> 9:30- 9:50 Emacs as a fully-fledged reference manager</title><rect x="40" y="81" opacity="0.8" width="84" height="27" stroke="black" stroke-dasharray="" fill="gray"></rect><g transform="translate(40,106)"><text fill="black" x="0" y="0" font-size="10" transform="nil">reference</text></g></a><a href="https://emacsconf.org/2025/talks/gmail" title="org-gmail: A deep integration of Gmail into your Org Mode" data-slug="gmail"><title>10:10-10:30 org-gmail: A deep integration of Gmail into your Org Mode</title><rect x="40" y="136" opacity="0.8" width="84" height="27" stroke="black" stroke-dasharray="5,5,5" fill="lightblue"></rect><g transform="translate(40,161)"><text fill="black" x="0" y="0" font-size="10" transform="nil">gmail</text></g></a><a href="https://emacsconf.org/2025/talks/languages" title="Studying foreign languages with Emacs, Org Mode and gptel" data-slug="languages"><title>10:40-10:50 Studying foreign languages with Emacs, Org Mode and gptel</title><rect x="40" y="177" opacity="0.8" width="84" height="13" stroke="black" stroke-dasharray="" fill="lightblue"></rect><g transform="translate(40,188)"><text fill="black" x="0" y="0" font-size="10" transform="nil">languages</text></g></a><a href="https://emacsconf.org/2025/talks/latex" title="LaTeX export in org-mode: the overhaul" data-slug="latex"><title>11:10-11:30 LaTeX export in org-mode: the overhaul</title><rect x="40" y="218" opacity="0.8" width="84" height="27" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(40,243)"><text fill="black" x="0" y="0" font-size="10" transform="nil">latex</text></g></a><a href="https://emacsconf.org/2025/talks/bibliography" title="An enhanced bibliography in org-mode for scientific research and self-directed learning" data-slug="bibliography"><title> 1:00- 1:20 An enhanced bibliography in org-mode for scientific research and self-directed learning</title><rect x="40" y="369" opacity="0.8" width="84" height="27" stroke="black" stroke-dasharray="" fill="gray"></rect><g transform="translate(40,394)"><text fill="black" x="0" y="0" font-size="10" transform="nil">bibliography</text></g></a><a href="https://emacsconf.org/2025/talks/calc" title="Basic Calc functionality for engineering or electronics" data-slug="calc"><title> 1:40- 1:50 Basic Calc functionality for engineering or electronics</title><rect x="40" y="424" opacity="0.8" width="84" height="13" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(40,435)"><text fill="black" x="0" y="0" font-size="10" transform="nil">calc</text></g></a><a href="https://emacsconf.org/2025/talks/authoring" title="How Emacs became my authoring playground—no Lisp required" data-slug="authoring"><title> 2:00- 2:10 How Emacs became my authoring playground—no Lisp required</title><rect x="40" y="451" opacity="0.8" width="84" height="13" stroke="black" stroke-dasharray="" fill="lightblue"></rect><g transform="translate(40,462)"><text fill="black" x="0" y="0" font-size="10" transform="nil">authoring</text></g></a><a href="https://emacsconf.org/2025/talks/blee-lcnt" title="Blee-LCNT: An Emacs-centered content production and self-publication framework" data-slug="blee-lcnt"><title> 2:30- 2:50 Blee-LCNT: An Emacs-centered content production and self-publication framework</title><rect x="40" y="492" opacity="0.8" width="84" height="27" stroke="black" stroke-dasharray="" fill="gray"></rect><g transform="translate(40,517)"><text fill="black" x="0" y="0" font-size="10" transform="nil">blee-lcnt</text></g></a><a href="https://emacsconf.org/2025/talks/greader" title="GNU Emacs Greader (Gnamù Reader) mode is the best Emacs mode in existence" data-slug="greader"><title> 3:10- 3:20 GNU Emacs Greader (Gnamù Reader) mode is the best Emacs mode in existence</title><rect x="40" y="547" opacity="0.8" width="84" height="13" stroke="black" stroke-dasharray="5,5,5" fill="gray"></rect><g transform="translate(40,558)"><text fill="black" x="0" y="0" font-size="10" transform="nil">greader</text></g></a><a href="https://emacsconf.org/2025/talks/n-angulator" title="Org-mode GTD vs N-angulator GTD" data-slug="n-angulator"><title> 3:30- 3:40 Org-mode GTD vs N-angulator GTD</title><rect x="40" y="575" opacity="0.8" width="84" height="13" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(40,586)"><text fill="black" x="0" y="0" font-size="10" transform="nil">n-angulator</text></g></a><a href="https://emacsconf.org/2025/talks/sat-close" title="Saturday closing remarks" data-slug="sat-close"><title> 4:00- 4:10 Saturday closing remarks</title><rect x="40" y="616" opacity="0.8" width="84" height="13" stroke="black" stroke-dasharray="5,5,5" fill="gray"></rect><g transform="translate(40,627)"><text fill="black" x="0" y="0" font-size="10" transform="nil">sat-close</text></g></a><a href="https://emacsconf.org/2025/talks/schemacs" title="One year progress update Schemacs (formerly Gypsum)" data-slug="schemacs"><title> 9:30- 9:45 One year progress update Schemacs (formerly Gypsum)</title><rect x="125" y="81" opacity="0.8" width="84" height="20" stroke="black" stroke-dasharray="" fill="lightblue"></rect><g transform="translate(125,99)"><text fill="black" x="0" y="0" font-size="10" transform="nil">schemacs</text></g></a><a href="https://emacsconf.org/2025/talks/juicemacs" title="Juicemacs: Exploring Speculative JIT Compilation for ELisp in Java" data-slug="juicemacs"><title>10:05-10:25 Juicemacs: Exploring Speculative JIT Compilation for ELisp in Java</title><rect x="125" y="129" opacity="0.8" width="84" height="27" stroke="black" stroke-dasharray="5,5,5" fill="lightblue"></rect><g transform="translate(125,154)"><text fill="black" x="0" y="0" font-size="10" transform="nil">juicemacs</text></g></a><a href="https://emacsconf.org/2025/talks/swanky" title="Swanky Python: Interactive development for Python" data-slug="swanky"><title>10:35-10:55 Swanky Python: Interactive development for Python</title><rect x="125" y="170" opacity="0.8" width="84" height="27" stroke="black" stroke-dasharray="5,5,5" fill="gray"></rect><g transform="translate(125,195)"><text fill="black" x="0" y="0" font-size="10" transform="nil">swanky</text></g></a><a href="https://emacsconf.org/2025/talks/python" title="Interactive Python programming in Emacs" data-slug="python"><title>11:05-11:25 Interactive Python programming in Emacs</title><rect x="125" y="211" opacity="0.8" width="84" height="27" stroke="black" stroke-dasharray="" fill="lightblue"></rect><g transform="translate(125,236)"><text fill="black" x="0" y="0" font-size="10" transform="nil">python</text></g></a><a href="https://emacsconf.org/2025/talks/llm" title="Emacs, editors, and LLM driven workflows" data-slug="llm"><title> 1:00- 1:20 Emacs, editors, and LLM driven workflows</title><rect x="125" y="369" opacity="0.8" width="84" height="27" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(125,394)"><text fill="black" x="0" y="0" font-size="10" transform="nil">llm</text></g></a><a href="https://emacsconf.org/2025/talks/claude-code" title="emacs-claude-code: Intelligent Claude Integration for Emacs" data-slug="claude-code"><title> 1:40- 2:00 emacs-claude-code: Intelligent Claude Integration for Emacs</title><rect x="125" y="424" opacity="0.8" width="84" height="27" stroke="black" stroke-dasharray="5,5,5" fill="gray"></rect><g transform="translate(125,449)"><text fill="black" x="0" y="0" font-size="10" transform="nil">claude-code</text></g></a><a href="https://emacsconf.org/2025/talks/private-ai" title="Emacs and private AI: a great match" data-slug="private-ai"><title> 2:10- 2:30 Emacs and private AI: a great match</title><rect x="125" y="465" opacity="0.8" width="84" height="27" stroke="black" stroke-dasharray="" fill="gray"></rect><g transform="translate(125,490)"><text fill="black" x="0" y="0" font-size="10" transform="nil">private-ai</text></g></a><a href="https://emacsconf.org/2025/talks/commonlisp" title="Common Lisp images communicating like-a-human through shared Emacs slime and eev" data-slug="commonlisp"><title> 2:50- 3:10 Common Lisp images communicating like-a-human through shared Emacs slime and eev</title><rect x="125" y="520" opacity="0.8" width="84" height="27" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(125,545)"><text fill="black" x="0" y="0" font-size="10" transform="nil">commonlisp</text></g></a><g transform="translate(3,40)"><line stroke="darkgray" x1="40" y1="0" x2="210" y2="0"></line><text fill="black" x="0" y="0" font-size="10" dy=".4em">9 AM</text></g><g transform="translate(3,122)"><line stroke="darkgray" x1="40" y1="0" x2="210" y2="0"></line><text fill="black" x="0" y="0" font-size="10" dy=".4em">10 AM</text></g><g transform="translate(3,204)"><line stroke="darkgray" x1="40" y1="0" x2="210" y2="0"></line><text fill="black" x="0" y="0" font-size="10" dy=".4em">11 AM</text></g><g transform="translate(3,287)"><line stroke="darkgray" x1="40" y1="0" x2="210" y2="0"></line><text fill="black" x="0" y="0" font-size="10" dy=".4em">12 PM</text></g><g transform="translate(3,369)"><line stroke="darkgray" x1="40" y1="0" x2="210" y2="0"></line><text fill="black" x="0" y="0" font-size="10" dy=".4em">1 PM</text></g><g transform="translate(3,451)"><line stroke="darkgray" x1="40" y1="0" x2="210" y2="0"></line><text fill="black" x="0" y="0" font-size="10" dy=".4em">2 PM</text></g><g transform="translate(3,534)"><line stroke="darkgray" x1="40" y1="0" x2="210" y2="0"></line><text fill="black" x="0" y="0" font-size="10" dy=".4em">3 PM</text></g><g transform="translate(3,616)"><line stroke="darkgray" x1="40" y1="0" x2="210" y2="0"></line><text fill="black" x="0" y="0" font-size="10" dy=".4em">4 PM</text></g><g transform="translate(3,698)"><line stroke="darkgray" x1="40" y1="0" x2="210" y2="0"></line><text fill="black" x="0" y="0" font-size="10" dy=".4em">5 PM</text></g></g><g transform="translate(250,0)"><title>Schedule for Sunday</title><rect width="250" height="700" x="0" y="0" fill="white"></rect><text font-size="10" fill="black" y="30" x="3">Sunday</text><a href="https://emacsconf.org/2025/talks/sun-open" title="Sunday opening remarks" data-slug="sun-open"><title> 9:00- 9:10 Sunday opening remarks</title><rect x="40" y="40" opacity="0.8" width="84" height="13" stroke="black" stroke-dasharray="5,5,5" fill="gray"></rect><g transform="translate(40,51)"><text fill="black" x="0" y="0" font-size="10" transform="nil">sun-open</text></g></a><a href="https://emacsconf.org/2025/talks/weights" title="Weightlifting tracking with Emacs on Android" data-slug="weights"><title> 9:10- 9:20 Weightlifting tracking with Emacs on Android</title><rect x="40" y="53" opacity="0.8" width="84" height="13" stroke="black" stroke-dasharray="" fill="lightblue"></rect><g transform="translate(40,64)"><text fill="black" x="0" y="0" font-size="10" transform="nil">weights</text></g></a><a href="https://emacsconf.org/2025/talks/modern" title="Some problems of modernizing Emacs" data-slug="modern"><title> 9:40-10:00 Some problems of modernizing Emacs</title><rect x="40" y="94" opacity="0.8" width="84" height="27" stroke="black" stroke-dasharray="5,5,5" fill="gray"></rect><g transform="translate(40,119)"><text fill="black" x="0" y="0" font-size="10" transform="nil">modern</text></g></a><a href="https://emacsconf.org/2025/talks/reader" title="An introduction to the Emacs Reader" data-slug="reader"><title>10:10-10:30 An introduction to the Emacs Reader</title><rect x="40" y="136" opacity="0.8" width="84" height="27" stroke="black" stroke-dasharray="" fill="gray"></rect><g transform="translate(40,161)"><text fill="black" x="0" y="0" font-size="10" transform="nil">reader</text></g></a><a href="https://emacsconf.org/2025/talks/completion" title="corfu+yasnippet: Easier than I thought" data-slug="completion"><title>11:00-11:20 corfu+yasnippet: Easier than I thought</title><rect x="40" y="204" opacity="0.8" width="84" height="27" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(40,229)"><text fill="black" x="0" y="0" font-size="10" transform="nil">completion</text></g></a><a href="https://emacsconf.org/2025/talks/zettelkasten" title="Zettelkasten for regular Emacs hackers" data-slug="zettelkasten"><title> 1:00- 1:20 Zettelkasten for regular Emacs hackers</title><rect x="40" y="369" opacity="0.8" width="84" height="27" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(40,394)"><text fill="black" x="0" y="0" font-size="10" transform="nil">zettelkasten</text></g></a><a href="https://emacsconf.org/2025/talks/hyperboleqa" title="Questions and answers to help you fly with Hyperbole" data-slug="hyperboleqa"><title> 1:40- 2:10 Questions and answers to help you fly with Hyperbole</title><rect x="40" y="424" opacity="0.8" width="84" height="41" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(40,463)"><text fill="black" x="0" y="0" font-size="10" transform="nil">hyperboleqa</text></g></a><a href="https://emacsconf.org/2025/talks/gardening" title="Gardening in Emacs: A Windows user's tale of tending, tweaking, and triumph" data-slug="gardening"><title> 2:10- 2:20 Gardening in Emacs: A Windows user's tale of tending, tweaking, and triumph</title><rect x="40" y="465" opacity="0.8" width="84" height="13" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(40,476)"><text fill="black" x="0" y="0" font-size="10" transform="nil">gardening</text></g></a><a href="https://emacsconf.org/2025/talks/gnus" title="Reading and writing emails in GNU Emacs with Gnus" data-slug="gnus"><title> 2:30- 2:50 Reading and writing emails in GNU Emacs with Gnus</title><rect x="40" y="492" opacity="0.8" width="84" height="27" stroke="black" stroke-dasharray="5,5,5" fill="gray"></rect><g transform="translate(40,517)"><text fill="black" x="0" y="0" font-size="10" transform="nil">gnus</text></g></a><a href="https://emacsconf.org/2025/talks/bookclub-tapas" title="Bookclub tapas" data-slug="bookclub-tapas"><title> 3:00- 3:20 Bookclub tapas</title><rect x="40" y="534" opacity="0.8" width="84" height="27" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(40,559)"><text fill="black" x="0" y="0" font-size="10" transform="nil">bookclub-tapas</text></g></a><a href="https://emacsconf.org/2025/talks/sun-close" title="Sunday closing remarks" data-slug="sun-close"><title> 3:40- 3:50 Sunday closing remarks</title><rect x="40" y="589" opacity="0.8" width="84" height="13" stroke="black" stroke-dasharray="" fill="gray"></rect><g transform="translate(40,600)"><text fill="black" x="0" y="0" font-size="10" transform="nil">sun-close</text></g></a><g transform="translate(3,40)"><line stroke="darkgray" x1="40" y1="0" x2="210" y2="0"></line><text fill="black" x="0" y="0" font-size="10" dy=".4em">9 AM</text></g><g transform="translate(3,122)"><line stroke="darkgray" x1="40" y1="0" x2="210" y2="0"></line><text fill="black" x="0" y="0" font-size="10" dy=".4em">10 AM</text></g><g transform="translate(3,204)"><line stroke="darkgray" x1="40" y1="0" x2="210" y2="0"></line><text fill="black" x="0" y="0" font-size="10" dy=".4em">11 AM</text></g><g transform="translate(3,287)"><line stroke="darkgray" x1="40" y1="0" x2="210" y2="0"></line><text fill="black" x="0" y="0" font-size="10" dy=".4em">12 PM</text></g><g transform="translate(3,369)"><line stroke="darkgray" x1="40" y1="0" x2="210" y2="0"></line><text fill="black" x="0" y="0" font-size="10" dy=".4em">1 PM</text></g><g transform="translate(3,451)"><line stroke="darkgray" x1="40" y1="0" x2="210" y2="0"></line><text fill="black" x="0" y="0" font-size="10" dy=".4em">2 PM</text></g><g transform="translate(3,534)"><line stroke="darkgray" x1="40" y1="0" x2="210" y2="0"></line><text fill="black" x="0" y="0" font-size="10" dy=".4em">3 PM</text></g><g transform="translate(3,616)"><line stroke="darkgray" x1="40" y1="0" x2="210" y2="0"></line><text fill="black" x="0" y="0" font-size="10" dy=".4em">4 PM</text></g><g transform="translate(3,698)"><line stroke="darkgray" x1="40" y1="0" x2="210" y2="0"></line><text fill="black" x="0" y="0" font-size="10" dy=".4em">5 PM</text></g></g></svg> \ No newline at end of file
+<svg width="500" height="700" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><title>Graphical view of the schedule</title><g transform="translate(0,0)"><title>Schedule for Saturday</title><rect width="250" height="700" x="0" y="0" fill="white"></rect><text font-size="10" fill="black" y="30" x="3">Saturday</text><a href="https://emacsconf.org/2025/talks/sat-open" title="Saturday opening remarks" data-slug="sat-open"><title> 9:00- 9:10 Saturday opening remarks</title><rect x="40" y="40" opacity="0.8" width="84" height="13" stroke="black" stroke-dasharray="5,5,5" fill="gray"></rect><g transform="translate(40,51)"><text fill="black" x="0" y="0" font-size="10" transform="nil">sat-open</text></g></a><a href="https://emacsconf.org/2025/talks/org-babel" title="Making Org-Babel reactive" data-slug="org-babel"><title> 9:10- 9:20 Making Org-Babel reactive</title><rect x="40" y="53" opacity="0.8" width="84" height="13" stroke="black" stroke-dasharray="5,5,5" fill="lightblue"></rect><g transform="translate(40,64)"><text fill="black" x="0" y="0" font-size="10" transform="nil">org-babel</text></g></a><a href="https://emacsconf.org/2025/talks/reference" title="Emacs as a fully-fledged reference manager" data-slug="reference"><title> 9:30- 9:50 Emacs as a fully-fledged reference manager</title><rect x="40" y="81" opacity="0.8" width="84" height="27" stroke="black" stroke-dasharray="" fill="gray"></rect><g transform="translate(40,106)"><text fill="black" x="0" y="0" font-size="10" transform="nil">reference</text></g></a><a href="https://emacsconf.org/2025/talks/gmail" title="org-gmail: A deep integration of Gmail into your Org Mode" data-slug="gmail"><title>10:10-10:30 org-gmail: A deep integration of Gmail into your Org Mode</title><rect x="40" y="136" opacity="0.8" width="84" height="27" stroke="black" stroke-dasharray="5,5,5" fill="lightblue"></rect><g transform="translate(40,161)"><text fill="black" x="0" y="0" font-size="10" transform="nil">gmail</text></g></a><a href="https://emacsconf.org/2025/talks/languages" title="Studying foreign languages with Emacs, Org Mode and gptel" data-slug="languages"><title>10:40-10:50 Studying foreign languages with Emacs, Org Mode and gptel</title><rect x="40" y="177" opacity="0.8" width="84" height="13" stroke="black" stroke-dasharray="" fill="lightblue"></rect><g transform="translate(40,188)"><text fill="black" x="0" y="0" font-size="10" transform="nil">languages</text></g></a><a href="https://emacsconf.org/2025/talks/latex" title="LaTeX export in org-mode: the overhaul" data-slug="latex"><title>11:10-11:30 LaTeX export in org-mode: the overhaul</title><rect x="40" y="218" opacity="0.8" width="84" height="27" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(40,243)"><text fill="black" x="0" y="0" font-size="10" transform="nil">latex</text></g></a><a href="https://emacsconf.org/2025/talks/bibliography" title="An enhanced bibliography in org-mode for scientific research and self-directed learning" data-slug="bibliography"><title> 1:00- 1:20 An enhanced bibliography in org-mode for scientific research and self-directed learning</title><rect x="40" y="369" opacity="0.8" width="84" height="27" stroke="black" stroke-dasharray="" fill="gray"></rect><g transform="translate(40,394)"><text fill="black" x="0" y="0" font-size="10" transform="nil">bibliography</text></g></a><a href="https://emacsconf.org/2025/talks/calc" title="Basic Calc functionality for engineering or electronics" data-slug="calc"><title> 1:40- 1:50 Basic Calc functionality for engineering or electronics</title><rect x="40" y="424" opacity="0.8" width="84" height="13" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(40,435)"><text fill="black" x="0" y="0" font-size="10" transform="nil">calc</text></g></a><a href="https://emacsconf.org/2025/talks/authoring" title="How Emacs became my authoring playground—no Lisp required" data-slug="authoring"><title> 2:00- 2:10 How Emacs became my authoring playground—no Lisp required</title><rect x="40" y="451" opacity="0.8" width="84" height="13" stroke="black" stroke-dasharray="" fill="lightblue"></rect><g transform="translate(40,462)"><text fill="black" x="0" y="0" font-size="10" transform="nil">authoring</text></g></a><a href="https://emacsconf.org/2025/talks/blee-lcnt" title="Blee-LCNT: An Emacs-centered content production and self-publication framework" data-slug="blee-lcnt"><title> 2:30- 2:50 Blee-LCNT: An Emacs-centered content production and self-publication framework</title><rect x="40" y="492" opacity="0.8" width="84" height="27" stroke="black" stroke-dasharray="" fill="gray"></rect><g transform="translate(40,517)"><text fill="black" x="0" y="0" font-size="10" transform="nil">blee-lcnt</text></g></a><a href="https://emacsconf.org/2025/talks/greader" title="GNU Emacs Greader (Gnamù Reader) mode is the best Emacs mode in existence" data-slug="greader"><title> 3:10- 3:20 GNU Emacs Greader (Gnamù Reader) mode is the best Emacs mode in existence</title><rect x="40" y="547" opacity="0.8" width="84" height="13" stroke="black" stroke-dasharray="5,5,5" fill="gray"></rect><g transform="translate(40,558)"><text fill="black" x="0" y="0" font-size="10" transform="nil">greader</text></g></a><a href="https://emacsconf.org/2025/talks/sat-close" title="Saturday closing remarks" data-slug="sat-close"><title> 3:30- 3:40 Saturday closing remarks</title><rect x="40" y="575" opacity="0.8" width="84" height="13" stroke="black" stroke-dasharray="5,5,5" fill="gray"></rect><g transform="translate(40,586)"><text fill="black" x="0" y="0" font-size="10" transform="nil">sat-close</text></g></a><a href="https://emacsconf.org/2025/talks/schemacs" title="One year progress update Schemacs (formerly Gypsum)" data-slug="schemacs"><title> 9:30- 9:45 One year progress update Schemacs (formerly Gypsum)</title><rect x="125" y="81" opacity="0.8" width="84" height="20" stroke="black" stroke-dasharray="" fill="lightblue"></rect><g transform="translate(125,99)"><text fill="black" x="0" y="0" font-size="10" transform="nil">schemacs</text></g></a><a href="https://emacsconf.org/2025/talks/juicemacs" title="Juicemacs: Exploring Speculative JIT Compilation for ELisp in Java" data-slug="juicemacs"><title>10:05-10:25 Juicemacs: Exploring Speculative JIT Compilation for ELisp in Java</title><rect x="125" y="129" opacity="0.8" width="84" height="27" stroke="black" stroke-dasharray="5,5,5" fill="lightblue"></rect><g transform="translate(125,154)"><text fill="black" x="0" y="0" font-size="10" transform="nil">juicemacs</text></g></a><a href="https://emacsconf.org/2025/talks/swanky" title="Swanky Python: Interactive development for Python" data-slug="swanky"><title>10:35-10:55 Swanky Python: Interactive development for Python</title><rect x="125" y="170" opacity="0.8" width="84" height="27" stroke="black" stroke-dasharray="5,5,5" fill="gray"></rect><g transform="translate(125,195)"><text fill="black" x="0" y="0" font-size="10" transform="nil">swanky</text></g></a><a href="https://emacsconf.org/2025/talks/python" title="Interactive Python programming in Emacs" data-slug="python"><title>11:05-11:25 Interactive Python programming in Emacs</title><rect x="125" y="211" opacity="0.8" width="84" height="27" stroke="black" stroke-dasharray="" fill="lightblue"></rect><g transform="translate(125,236)"><text fill="black" x="0" y="0" font-size="10" transform="nil">python</text></g></a><a href="https://emacsconf.org/2025/talks/llm" title="Emacs, editors, and LLM driven workflows" data-slug="llm"><title> 1:00- 1:20 Emacs, editors, and LLM driven workflows</title><rect x="125" y="369" opacity="0.8" width="84" height="27" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(125,394)"><text fill="black" x="0" y="0" font-size="10" transform="nil">llm</text></g></a><a href="https://emacsconf.org/2025/talks/claude-code" title="emacs-claude-code: Intelligent Claude Integration for Emacs" data-slug="claude-code"><title> 1:40- 2:00 emacs-claude-code: Intelligent Claude Integration for Emacs</title><rect x="125" y="424" opacity="0.8" width="84" height="27" stroke="black" stroke-dasharray="5,5,5" fill="gray"></rect><g transform="translate(125,449)"><text fill="black" x="0" y="0" font-size="10" transform="nil">claude-code</text></g></a><a href="https://emacsconf.org/2025/talks/private-ai" title="Emacs and private AI: a great match" data-slug="private-ai"><title> 2:10- 2:30 Emacs and private AI: a great match</title><rect x="125" y="465" opacity="0.8" width="84" height="27" stroke="black" stroke-dasharray="" fill="gray"></rect><g transform="translate(125,490)"><text fill="black" x="0" y="0" font-size="10" transform="nil">private-ai</text></g></a><a href="https://emacsconf.org/2025/talks/commonlisp" title="Common Lisp images communicating like-a-human through shared Emacs slime and eev" data-slug="commonlisp"><title> 2:50- 3:10 Common Lisp images communicating like-a-human through shared Emacs slime and eev</title><rect x="125" y="520" opacity="0.8" width="84" height="27" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(125,545)"><text fill="black" x="0" y="0" font-size="10" transform="nil">commonlisp</text></g></a><g transform="translate(3,40)"><line stroke="darkgray" x1="40" y1="0" x2="210" y2="0"></line><text fill="black" x="0" y="0" font-size="10" dy=".4em">9 AM</text></g><g transform="translate(3,122)"><line stroke="darkgray" x1="40" y1="0" x2="210" y2="0"></line><text fill="black" x="0" y="0" font-size="10" dy=".4em">10 AM</text></g><g transform="translate(3,204)"><line stroke="darkgray" x1="40" y1="0" x2="210" y2="0"></line><text fill="black" x="0" y="0" font-size="10" dy=".4em">11 AM</text></g><g transform="translate(3,287)"><line stroke="darkgray" x1="40" y1="0" x2="210" y2="0"></line><text fill="black" x="0" y="0" font-size="10" dy=".4em">12 PM</text></g><g transform="translate(3,369)"><line stroke="darkgray" x1="40" y1="0" x2="210" y2="0"></line><text fill="black" x="0" y="0" font-size="10" dy=".4em">1 PM</text></g><g transform="translate(3,451)"><line stroke="darkgray" x1="40" y1="0" x2="210" y2="0"></line><text fill="black" x="0" y="0" font-size="10" dy=".4em">2 PM</text></g><g transform="translate(3,534)"><line stroke="darkgray" x1="40" y1="0" x2="210" y2="0"></line><text fill="black" x="0" y="0" font-size="10" dy=".4em">3 PM</text></g><g transform="translate(3,616)"><line stroke="darkgray" x1="40" y1="0" x2="210" y2="0"></line><text fill="black" x="0" y="0" font-size="10" dy=".4em">4 PM</text></g><g transform="translate(3,698)"><line stroke="darkgray" x1="40" y1="0" x2="210" y2="0"></line><text fill="black" x="0" y="0" font-size="10" dy=".4em">5 PM</text></g></g><g transform="translate(250,0)"><title>Schedule for Sunday</title><rect width="250" height="700" x="0" y="0" fill="white"></rect><text font-size="10" fill="black" y="30" x="3">Sunday</text><a href="https://emacsconf.org/2025/talks/sun-open" title="Sunday opening remarks" data-slug="sun-open"><title> 9:00- 9:10 Sunday opening remarks</title><rect x="40" y="40" opacity="0.8" width="84" height="13" stroke="black" stroke-dasharray="5,5,5" fill="gray"></rect><g transform="translate(40,51)"><text fill="black" x="0" y="0" font-size="10" transform="nil">sun-open</text></g></a><a href="https://emacsconf.org/2025/talks/weights" title="Weightlifting tracking with Emacs on Android" data-slug="weights"><title> 9:10- 9:20 Weightlifting tracking with Emacs on Android</title><rect x="40" y="53" opacity="0.8" width="84" height="13" stroke="black" stroke-dasharray="" fill="lightblue"></rect><g transform="translate(40,64)"><text fill="black" x="0" y="0" font-size="10" transform="nil">weights</text></g></a><a href="https://emacsconf.org/2025/talks/modern" title="Some problems of modernizing Emacs" data-slug="modern"><title> 9:40-10:00 Some problems of modernizing Emacs</title><rect x="40" y="94" opacity="0.8" width="84" height="27" stroke="black" stroke-dasharray="5,5,5" fill="gray"></rect><g transform="translate(40,119)"><text fill="black" x="0" y="0" font-size="10" transform="nil">modern</text></g></a><a href="https://emacsconf.org/2025/talks/reader" title="An introduction to the Emacs Reader" data-slug="reader"><title>10:10-10:30 An introduction to the Emacs Reader</title><rect x="40" y="136" opacity="0.8" width="84" height="27" stroke="black" stroke-dasharray="" fill="gray"></rect><g transform="translate(40,161)"><text fill="black" x="0" y="0" font-size="10" transform="nil">reader</text></g></a><a href="https://emacsconf.org/2025/talks/completion" title="corfu+yasnippet: Easier than I thought" data-slug="completion"><title>11:00-11:20 corfu+yasnippet: Easier than I thought</title><rect x="40" y="204" opacity="0.8" width="84" height="27" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(40,229)"><text fill="black" x="0" y="0" font-size="10" transform="nil">completion</text></g></a><a href="https://emacsconf.org/2025/talks/zettelkasten" title="Zettelkasten for regular Emacs hackers" data-slug="zettelkasten"><title> 1:00- 1:20 Zettelkasten for regular Emacs hackers</title><rect x="40" y="369" opacity="0.8" width="84" height="27" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(40,394)"><text fill="black" x="0" y="0" font-size="10" transform="nil">zettelkasten</text></g></a><a href="https://emacsconf.org/2025/talks/hyperboleqa" title="Questions and answers to help you fly with Hyperbole" data-slug="hyperboleqa"><title> 1:40- 2:10 Questions and answers to help you fly with Hyperbole</title><rect x="40" y="424" opacity="0.8" width="84" height="41" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(40,463)"><text fill="black" x="0" y="0" font-size="10" transform="nil">hyperboleqa</text></g></a><a href="https://emacsconf.org/2025/talks/gardening" title="Gardening in Emacs: A Windows user's tale of tending, tweaking, and triumph" data-slug="gardening"><title> 2:10- 2:20 Gardening in Emacs: A Windows user's tale of tending, tweaking, and triumph</title><rect x="40" y="465" opacity="0.8" width="84" height="13" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(40,476)"><text fill="black" x="0" y="0" font-size="10" transform="nil">gardening</text></g></a><a href="https://emacsconf.org/2025/talks/gnus" title="Reading and writing emails in GNU Emacs with Gnus" data-slug="gnus"><title> 2:30- 2:50 Reading and writing emails in GNU Emacs with Gnus</title><rect x="40" y="492" opacity="0.8" width="84" height="27" stroke="black" stroke-dasharray="5,5,5" fill="gray"></rect><g transform="translate(40,517)"><text fill="black" x="0" y="0" font-size="10" transform="nil">gnus</text></g></a><a href="https://emacsconf.org/2025/talks/bookclub-tapas" title="Bookclub tapas" data-slug="bookclub-tapas"><title> 3:00- 3:20 Bookclub tapas</title><rect x="40" y="534" opacity="0.8" width="84" height="27" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(40,559)"><text fill="black" x="0" y="0" font-size="10" transform="nil">bookclub-tapas</text></g></a><a href="https://emacsconf.org/2025/talks/sun-close" title="Sunday closing remarks" data-slug="sun-close"><title> 3:40- 3:50 Sunday closing remarks</title><rect x="40" y="589" opacity="0.8" width="84" height="13" stroke="black" stroke-dasharray="" fill="gray"></rect><g transform="translate(40,600)"><text fill="black" x="0" y="0" font-size="10" transform="nil">sun-close</text></g></a><g transform="translate(3,40)"><line stroke="darkgray" x1="40" y1="0" x2="210" y2="0"></line><text fill="black" x="0" y="0" font-size="10" dy=".4em">9 AM</text></g><g transform="translate(3,122)"><line stroke="darkgray" x1="40" y1="0" x2="210" y2="0"></line><text fill="black" x="0" y="0" font-size="10" dy=".4em">10 AM</text></g><g transform="translate(3,204)"><line stroke="darkgray" x1="40" y1="0" x2="210" y2="0"></line><text fill="black" x="0" y="0" font-size="10" dy=".4em">11 AM</text></g><g transform="translate(3,287)"><line stroke="darkgray" x1="40" y1="0" x2="210" y2="0"></line><text fill="black" x="0" y="0" font-size="10" dy=".4em">12 PM</text></g><g transform="translate(3,369)"><line stroke="darkgray" x1="40" y1="0" x2="210" y2="0"></line><text fill="black" x="0" y="0" font-size="10" dy=".4em">1 PM</text></g><g transform="translate(3,451)"><line stroke="darkgray" x1="40" y1="0" x2="210" y2="0"></line><text fill="black" x="0" y="0" font-size="10" dy=".4em">2 PM</text></g><g transform="translate(3,534)"><line stroke="darkgray" x1="40" y1="0" x2="210" y2="0"></line><text fill="black" x="0" y="0" font-size="10" dy=".4em">3 PM</text></g><g transform="translate(3,616)"><line stroke="darkgray" x1="40" y1="0" x2="210" y2="0"></line><text fill="black" x="0" y="0" font-size="10" dy=".4em">4 PM</text></g><g transform="translate(3,698)"><line stroke="darkgray" x1="40" y1="0" x2="210" y2="0"></line><text fill="black" x="0" y="0" font-size="10" dy=".4em">5 PM</text></g></g></svg> \ No newline at end of file
diff --git a/2025/schedule-2025-12-06.md b/2025/schedule-2025-12-06.md
index 911c3070..49991a4d 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:50 Emacs as a fully-fledged reference manager</title><rect x="47" y="15" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(76,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:10-10:30 org-gmail: A deep integration of Gmail into your Org Mode</title><rect x="109" y="15" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(138,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">gmail</text></g></a><a href="/2025/talks/languages" title="Studying foreign languages with Emacs, Org Mode and gptel" data-slug="languages"><title>10:40-10:50 Studying foreign languages with Emacs, Org Mode and gptel</title><rect x="156" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(169,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">languages</text></g></a><a href="/2025/talks/latex" title="LaTeX export in org-mode: the overhaul" data-slug="latex"><title>11:10-11:30 LaTeX export in org-mode: the overhaul</title><rect x="203" y="15" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(232,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">latex</text></g></a><a href="/2025/talks/bibliography" title="An enhanced bibliography in org-mode for scientific research and self-directed learning" data-slug="bibliography"><title> 1:00- 1:20 An enhanced bibliography in org-mode for scientific research and self-directed learning</title><rect x="376" y="15" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(405,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">bibliography</text></g></a><a href="/2025/talks/calc" title="Basic Calc functionality for engineering or electronics" data-slug="calc"><title> 1:40- 1:50 Basic Calc functionality for engineering or electronics</title><rect x="439" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(452,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">calc</text></g></a><a href="/2025/talks/authoring" title="How Emacs became my authoring playground—no Lisp required" data-slug="authoring"><title> 2:00- 2:10 How Emacs became my authoring playground—no Lisp required</title><rect x="470" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(483,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">authoring</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> 2:30- 2:50 Blee-LCNT: An Emacs-centered content production and self-publication framework</title><rect x="517" y="15" opacity="0.8" width="31" 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)">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> 3:10- 3:20 GNU Emacs Greader (Gnamù Reader) mode is the best Emacs mode in existence</title><rect x="580" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(593,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">greader</text></g></a><a href="/2025/talks/n-angulator" title="Org-mode GTD vs N-angulator GTD" data-slug="n-angulator"><title> 3:30- 3:40 Org-mode GTD vs N-angulator GTD</title><rect x="611" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(624,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">n-angulator</text></g></a><a href="/2025/talks/sat-close" title="Saturday closing remarks" data-slug="sat-close"><title> 4:00- 4:10 Saturday closing remarks</title><rect x="658" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(671,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">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:45 One year progress update Schemacs (formerly Gypsum)</title><rect x="47" y="75" opacity="0.8" width="23" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(68,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:05-10:25 Juicemacs: Exploring Speculative JIT Compilation for ELisp in Java</title><rect x="101" y="75" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="5,5,5" fill="skyblue"></rect><g transform="translate(130,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:35-10:55 Swanky Python: Interactive development for Python</title><rect x="149" y="75" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="5,5,5" fill="skyblue"></rect><g transform="translate(178,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:05-11:25 Interactive Python programming in Emacs</title><rect x="196" y="75" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(225,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:20 Emacs, editors, and LLM driven workflows</title><rect x="376" y="75" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(405,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">llm</text></g></a><a href="/2025/talks/claude-code" title="emacs-claude-code: Intelligent Claude Integration for Emacs" data-slug="claude-code"><title> 1:40- 2:00 emacs-claude-code: Intelligent Claude Integration for Emacs</title><rect x="439" y="75" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="5,5,5" fill="skyblue"></rect><g transform="translate(468,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">claude-code</text></g></a><a href="/2025/talks/private-ai" title="Emacs and private AI: a great match" data-slug="private-ai"><title> 2:10- 2:30 Emacs and private AI: a great match</title><rect x="486" y="75" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(515,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:50- 3:10 Common Lisp images communicating like-a-human through shared Emacs slime and eev</title><rect x="549" y="75" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="5,5,5" fill="skyblue"></rect><g transform="translate(578,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">commonlisp</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:50 Emacs as a fully-fledged reference manager</title><rect x="47" y="15" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(76,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:10-10:30 org-gmail: A deep integration of Gmail into your Org Mode</title><rect x="109" y="15" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(138,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">gmail</text></g></a><a href="/2025/talks/languages" title="Studying foreign languages with Emacs, Org Mode and gptel" data-slug="languages"><title>10:40-10:50 Studying foreign languages with Emacs, Org Mode and gptel</title><rect x="156" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(169,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">languages</text></g></a><a href="/2025/talks/latex" title="LaTeX export in org-mode: the overhaul" data-slug="latex"><title>11:10-11:30 LaTeX export in org-mode: the overhaul</title><rect x="203" y="15" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(232,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">latex</text></g></a><a href="/2025/talks/bibliography" title="An enhanced bibliography in org-mode for scientific research and self-directed learning" data-slug="bibliography"><title> 1:00- 1:20 An enhanced bibliography in org-mode for scientific research and self-directed learning</title><rect x="376" y="15" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(405,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">bibliography</text></g></a><a href="/2025/talks/calc" title="Basic Calc functionality for engineering or electronics" data-slug="calc"><title> 1:40- 1:50 Basic Calc functionality for engineering or electronics</title><rect x="439" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(452,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">calc</text></g></a><a href="/2025/talks/authoring" title="How Emacs became my authoring playground—no Lisp required" data-slug="authoring"><title> 2:00- 2:10 How Emacs became my authoring playground—no Lisp required</title><rect x="470" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(483,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">authoring</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> 2:30- 2:50 Blee-LCNT: An Emacs-centered content production and self-publication framework</title><rect x="517" y="15" opacity="0.8" width="31" 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)">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> 3:10- 3:20 GNU Emacs Greader (Gnamù Reader) mode is the best Emacs mode in existence</title><rect x="580" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(593,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">greader</text></g></a><a href="/2025/talks/sat-close" title="Saturday closing remarks" data-slug="sat-close"><title> 4:00- 4:10 Saturday closing remarks</title><rect x="658" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(671,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">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:45 One year progress update Schemacs (formerly Gypsum)</title><rect x="47" y="75" opacity="0.8" width="23" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(68,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:05-10:25 Juicemacs: Exploring Speculative JIT Compilation for ELisp in Java</title><rect x="101" y="75" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="5,5,5" fill="skyblue"></rect><g transform="translate(130,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:35-10:55 Swanky Python: Interactive development for Python</title><rect x="149" y="75" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="5,5,5" fill="skyblue"></rect><g transform="translate(178,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:05-11:25 Interactive Python programming in Emacs</title><rect x="196" y="75" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(225,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:20 Emacs, editors, and LLM driven workflows</title><rect x="376" y="75" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(405,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">llm</text></g></a><a href="/2025/talks/claude-code" title="emacs-claude-code: Intelligent Claude Integration for Emacs" data-slug="claude-code"><title> 1:40- 2:00 emacs-claude-code: Intelligent Claude Integration for Emacs</title><rect x="439" y="75" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="5,5,5" fill="skyblue"></rect><g transform="translate(468,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">claude-code</text></g></a><a href="/2025/talks/private-ai" title="Emacs and private AI: a great match" data-slug="private-ai"><title> 2:10- 2:30 Emacs and private AI: a great match</title><rect x="486" y="75" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(515,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:50- 3:10 Common Lisp images communicating like-a-human through shared Emacs slime and eev</title><rect x="549" y="75" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="5,5,5" fill="skyblue"></rect><g transform="translate(578,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">commonlisp</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-details.md b/2025/schedule-details.md
index 8cc8b304..32d07393 100644
--- a/2025/schedule-details.md
+++ b/2025/schedule-details.md
@@ -12,14 +12,14 @@ Jump to: <a href="#date-2025-12-06">Sat Dec 6</a> - <a href="#date-2025-12-07">S
<div class="schedule" data-start="2025-12-06T14:00:00+0000" data-end="2025-12-06T22:30:00+0000" data-tracks="General,Development">
[[!template id=sched time="""10""" q-and-a="""<a href="https://pad.emacsconf.org/2025-sat-open">Etherpad</a>""" startutc="""2025-12-06T14:00:00+0000""" endutc="""2025-12-06T14:10:00+0000""" start="""9:00""" end="""9:10""" title="""Saturday opening remarks""" url="""/2025/talks/sat-open""" track="""General""" watch="""https://emacsconf.org/2025/watch/gen""" slug="""sat-open""" note=""""""]]
-[[!template id=sched time="""10""" q-and-a="""<a href="https://pad.emacsconf.org/2025-org-babel">Etherpad</a>""" startutc="""2025-12-06T14:10:00+0000""" endutc="""2025-12-06T14:20:00+0000""" start="""9:10""" end="""9:20""" title="""Making Org-Babel reactive""" url="""/2025/talks/org-babel""" speakers="""Abhinav Tushar""" track="""General""" watch="""https://emacsconf.org/2025/watch/gen""" slug="""org-babel""" note=""""""]]
+[[!template id=sched time="""10""" q-and-a="""<a href="https://pad.emacsconf.org/2025-org-babel">Etherpad</a>""" startutc="""2025-12-06T14:10:00+0000""" endutc="""2025-12-06T14:20:00+0000""" start="""9:10""" end="""9:20""" title="""Making Org-Babel reactive""" url="""/2025/talks/org-babel""" speakers="""Abhinav Tushar""" track="""General""" watch="""https://emacsconf.org/2025/watch/gen""" slug="""org-babel""" note="""video: 08:08"""]]
[[!template id=sched time="""15""" q-and-a="""<a href="https://media.emacsconf.org/2025/current/bbb-schemacs.html">BBB</a>""" startutc="""2025-12-06T14:30:00+0000""" endutc="""2025-12-06T14:45:00+0000""" start="""9:30""" end="""9:45""" title="""One year progress update Schemacs (formerly Gypsum)""" url="""/2025/talks/schemacs""" speakers="""Ramin Honary""" track="""Development""" watch="""https://emacsconf.org/2025/watch/dev""" slug="""schemacs""" note=""""""]]
[[!template id=sched time="""20""" q-and-a="""<a href="https://media.emacsconf.org/2025/current/bbb-reference.html">BBB</a>""" startutc="""2025-12-06T14:30:00+0000""" endutc="""2025-12-06T14:50:00+0000""" start="""9:30""" end="""9:50""" title="""Emacs as a fully-fledged reference manager""" url="""/2025/talks/reference""" speakers="""Vidianos Giannitsis""" track="""General""" watch="""https://emacsconf.org/2025/watch/gen""" slug="""reference""" note=""""""]]
[[!template id=sched time="""20""" q-and-a="""<a href="https://pad.emacsconf.org/2025-juicemacs">Etherpad</a>""" startutc="""2025-12-06T15:05:00+0000""" endutc="""2025-12-06T15:25:00+0000""" start="""10:05""" end="""10:25""" title="""Juicemacs: Exploring Speculative JIT Compilation for ELisp in Java""" url="""/2025/talks/juicemacs""" speakers="""Kana""" track="""Development""" watch="""https://emacsconf.org/2025/watch/dev""" slug="""juicemacs""" note=""""""]]
[[!template id=sched time="""20""" q-and-a="""<a href="https://pad.emacsconf.org/2025-gmail">Etherpad</a>""" startutc="""2025-12-06T15:10:00+0000""" endutc="""2025-12-06T15:30:00+0000""" start="""10:10""" end="""10:30""" title="""org-gmail: A deep integration of Gmail into your Org Mode""" url="""/2025/talks/gmail""" speakers="""Bala Ramadurai""" track="""General""" watch="""https://emacsconf.org/2025/watch/gen""" slug="""gmail""" note="""video: 23:04"""]]
[[!template id=sched time="""20""" q-and-a="""none""" startutc="""2025-12-06T15:35:00+0000""" endutc="""2025-12-06T15:55:00+0000""" start="""10:35""" end="""10:55""" title="""Swanky Python: Interactive development for Python""" url="""/2025/talks/swanky""" speakers="""Scott Zimmermann""" track="""Development""" watch="""https://emacsconf.org/2025/watch/dev""" slug="""swanky""" note=""""""]]
[[!template id=sched time="""10""" q-and-a="""<a href="https://media.emacsconf.org/2025/current/bbb-languages.html">BBB</a>""" startutc="""2025-12-06T15:40:00+0000""" endutc="""2025-12-06T15:50:00+0000""" start="""10:40""" end="""10:50""" title="""Studying foreign languages with Emacs, Org Mode and gptel""" url="""/2025/talks/languages""" speakers="""Marek""" track="""General""" watch="""https://emacsconf.org/2025/watch/gen""" slug="""languages""" note=""""""]]
-[[!template id=sched time="""20""" q-and-a="""<a href="https://media.emacsconf.org/2025/current/bbb-python.html">BBB</a>""" startutc="""2025-12-06T16:05:00+0000""" endutc="""2025-12-06T16:25:00+0000""" start="""11:05""" end="""11:25""" title="""Interactive Python programming in Emacs""" url="""/2025/talks/python""" speakers="""David Vujic""" track="""Development""" watch="""https://emacsconf.org/2025/watch/dev""" slug="""python""" note=""""""]]
+[[!template id=sched time="""20""" q-and-a="""<a href="https://media.emacsconf.org/2025/current/bbb-python.html">BBB</a>""" startutc="""2025-12-06T16:05:00+0000""" endutc="""2025-12-06T16:25:00+0000""" start="""11:05""" end="""11:25""" title="""Interactive Python programming in Emacs""" url="""/2025/talks/python""" speakers="""David Vujic""" track="""Development""" watch="""https://emacsconf.org/2025/watch/dev""" slug="""python""" note="""video: 19:52"""]]
[[!template id=sched time="""20""" q-and-a="""<a href="https://media.emacsconf.org/2025/current/bbb-latex.html">BBB</a>""" startutc="""2025-12-06T16:10:00+0000""" endutc="""2025-12-06T16:30:00+0000""" start="""11:10""" end="""11:30""" title="""LaTeX export in org-mode: the overhaul""" url="""/2025/talks/latex""" speakers="""Pedro A. Aranda Gutiérrez""" track="""General""" watch="""https://emacsconf.org/2025/watch/gen""" slug="""latex""" note=""""""]]
[[!template id=sched time="""20""" q-and-a="""<a href="https://media.emacsconf.org/2025/current/bbb-llm.html">BBB</a>""" startutc="""2025-12-06T18:00:00+0000""" endutc="""2025-12-06T18:20:00+0000""" start="""1:00""" end="""1:20""" title="""Emacs, editors, and LLM driven workflows""" url="""/2025/talks/llm""" speakers="""Andrew Hyatt""" track="""Development""" watch="""https://emacsconf.org/2025/watch/dev""" slug="""llm""" note="""video: 20:04"""]]
[[!template id=sched time="""20""" q-and-a="""<a href="https://media.emacsconf.org/2025/current/bbb-bibliography.html">BBB</a>""" startutc="""2025-12-06T18:00:00+0000""" endutc="""2025-12-06T18:20:00+0000""" start="""1:00""" end="""1:20""" title="""An enhanced bibliography in org-mode for scientific research and self-directed learning""" url="""/2025/talks/bibliography""" speakers="""Blaine Mooers""" track="""General""" watch="""https://emacsconf.org/2025/watch/gen""" slug="""bibliography""" note=""""""]]
@@ -30,8 +30,7 @@ Jump to: <a href="#date-2025-12-06">Sat Dec 6</a> - <a href="#date-2025-12-07">S
[[!template id=sched time="""20""" q-and-a="""<a href="https://media.emacsconf.org/2025/current/bbb-blee-lcnt.html">BBB</a>""" startutc="""2025-12-06T19:30:00+0000""" endutc="""2025-12-06T19:50:00+0000""" start="""2:30""" end="""2:50""" title="""Blee-LCNT: An Emacs-centered content production and self-publication framework""" url="""/2025/talks/blee-lcnt""" speakers="""Mohsen BANAN""" track="""General""" watch="""https://emacsconf.org/2025/watch/gen""" slug="""blee-lcnt""" note=""""""]]
[[!template id=sched time="""20""" q-and-a="""<a href="https://chat.emacsconf.org/?join=emacsconf">#emacsconf, speaker nick: screwlisp</a>""" startutc="""2025-12-06T19:50:00+0000""" endutc="""2025-12-06T20:10:00+0000""" start="""2:50""" end="""3:10""" title="""Common Lisp images communicating like-a-human through shared Emacs slime and eev""" url="""/2025/talks/commonlisp""" speakers="""screwlisp""" track="""Development""" watch="""https://emacsconf.org/2025/watch/dev""" slug="""commonlisp""" note=""""""]]
[[!template id=sched time="""10""" q-and-a="""<a href="https://chat.emacsconf.org/?join=emacsconf">#emacsconf, speaker nick: kreptocracy</a>""" note="""This talk will be narrated by a text-to-speech engine because of a request from the speaker.""" startutc="""2025-12-06T20:10:00+0000""" endutc="""2025-12-06T20:20:00+0000""" start="""3:10""" end="""3:20""" title="""GNU Emacs Greader (Gnamù Reader) mode is the best Emacs mode in existence""" url="""/2025/talks/greader""" speakers="""Yuval Langer""" track="""General""" watch="""https://emacsconf.org/2025/watch/gen""" slug="""greader""" note=""""""]]
-[[!template id=sched time="""10""" q-and-a="""<a href="https://media.emacsconf.org/2025/current/bbb-n-angulator.html">BBB</a>""" startutc="""2025-12-06T20:30:00+0000""" endutc="""2025-12-06T20:40:00+0000""" start="""3:30""" end="""3:40""" title="""Org-mode GTD vs N-angulator GTD""" url="""/2025/talks/n-angulator""" speakers="""Kevin Haddock""" track="""General""" watch="""https://emacsconf.org/2025/watch/gen""" slug="""n-angulator""" note=""""""]]
-[[!template id=sched time="""10""" q-and-a="""<a href="https://pad.emacsconf.org/2025-sat-close">Etherpad</a>""" startutc="""2025-12-06T21:00:00+0000""" endutc="""2025-12-06T21:10:00+0000""" start="""4:00""" end="""4:10""" title="""Saturday closing remarks""" url="""/2025/talks/sat-close""" track="""General""" watch="""https://emacsconf.org/2025/watch/gen""" slug="""sat-close""" note=""""""]]</div>
+[[!template id=sched time="""10""" q-and-a="""<a href="https://pad.emacsconf.org/2025-sat-close">Etherpad</a>""" startutc="""2025-12-06T20:30:00+0000""" endutc="""2025-12-06T20:40:00+0000""" start="""3:30""" end="""3:40""" title="""Saturday closing remarks""" url="""/2025/talks/sat-close""" track="""General""" watch="""https://emacsconf.org/2025/watch/gen""" slug="""sat-close""" note=""""""]]</div>
Jump to: <a href="#date-2025-12-06">Sat Dec 6</a> - <a href="#date-2025-12-07">Sun Dec 7</a><a name="date-2025-12-07"></a>
# Sunday Dec 7, 2025
@@ -49,4 +48,5 @@ Jump to: <a href="#date-2025-12-06">Sat Dec 6</a> - <a href="#date-2025-12-07">S
[[!template id=sched time="""20""" q-and-a="""none""" startutc="""2025-12-07T19:30:00+0000""" endutc="""2025-12-07T19:50:00+0000""" start="""2:30""" end="""2:50""" title="""Reading and writing emails in GNU Emacs with Gnus""" url="""/2025/talks/gnus""" speakers="""Amin Bandali""" track="""General""" watch="""https://emacsconf.org/2025/watch/gen""" slug="""gnus""" note=""""""]]
[[!template id=sched time="""20""" q-and-a="""<a href="https://media.emacsconf.org/2025/current/bbb-bookclub-tapas.html">BBB</a>""" startutc="""2025-12-07T20:00:00+0000""" endutc="""2025-12-07T20:20:00+0000""" start="""3:00""" end="""3:20""" title="""Bookclub tapas""" url="""/2025/talks/bookclub-tapas""" speakers="""Maddie Sullivan""" track="""General""" watch="""https://emacsconf.org/2025/watch/gen""" slug="""bookclub-tapas""" note=""""""]]
[[!template id=sched time="""10""" q-and-a="""<a href="https://media.emacsconf.org/2025/current/bbb-sun-close.html">BBB</a>""" startutc="""2025-12-07T20:40:00+0000""" endutc="""2025-12-07T20:50:00+0000""" start="""3:40""" end="""3:50""" title="""Sunday closing remarks""" url="""/2025/talks/sun-close""" track="""General""" watch="""https://emacsconf.org/2025/watch/gen""" slug="""sun-close""" note=""""""]]</div><div class="cancelled">Cancelled:<ul><li>A writing day in the life with Org-Mode - Jeremy Friesen</li>
+<li>Org-mode GTD vs N-angulator GTD - Kevin Haddock</li>
<li>From FRDCSA to FLP2: Building AI-Powered Life Planning Systems in Emacs - A Journey from Research to Real-World Impact - Andrew John Dougherty</li></ul></div> \ No newline at end of file
diff --git a/2025/schedule-image.md b/2025/schedule-image.md
index 674110ab..71cce24c 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:50 Emacs as a fully-fledged reference manager</title><rect x="47" y="15" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(76,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:10-10:30 org-gmail: A deep integration of Gmail into your Org Mode</title><rect x="109" y="15" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(138,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">gmail</text></g></a><a href="/2025/talks/languages" title="Studying foreign languages with Emacs, Org Mode and gptel" data-slug="languages"><title>10:40-10:50 Studying foreign languages with Emacs, Org Mode and gptel</title><rect x="156" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(169,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">languages</text></g></a><a href="/2025/talks/latex" title="LaTeX export in org-mode: the overhaul" data-slug="latex"><title>11:10-11:30 LaTeX export in org-mode: the overhaul</title><rect x="203" y="15" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(232,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">latex</text></g></a><a href="/2025/talks/bibliography" title="An enhanced bibliography in org-mode for scientific research and self-directed learning" data-slug="bibliography"><title> 1:00- 1:20 An enhanced bibliography in org-mode for scientific research and self-directed learning</title><rect x="376" y="15" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(405,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">bibliography</text></g></a><a href="/2025/talks/calc" title="Basic Calc functionality for engineering or electronics" data-slug="calc"><title> 1:40- 1:50 Basic Calc functionality for engineering or electronics</title><rect x="439" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(452,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">calc</text></g></a><a href="/2025/talks/authoring" title="How Emacs became my authoring playground—no Lisp required" data-slug="authoring"><title> 2:00- 2:10 How Emacs became my authoring playground—no Lisp required</title><rect x="470" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(483,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">authoring</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> 2:30- 2:50 Blee-LCNT: An Emacs-centered content production and self-publication framework</title><rect x="517" y="15" opacity="0.8" width="31" 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)">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> 3:10- 3:20 GNU Emacs Greader (Gnamù Reader) mode is the best Emacs mode in existence</title><rect x="580" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(593,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">greader</text></g></a><a href="/2025/talks/n-angulator" title="Org-mode GTD vs N-angulator GTD" data-slug="n-angulator"><title> 3:30- 3:40 Org-mode GTD vs N-angulator GTD</title><rect x="611" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(624,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">n-angulator</text></g></a><a href="/2025/talks/sat-close" title="Saturday closing remarks" data-slug="sat-close"><title> 4:00- 4:10 Saturday closing remarks</title><rect x="658" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(671,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">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:45 One year progress update Schemacs (formerly Gypsum)</title><rect x="47" y="75" opacity="0.8" width="23" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(68,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:05-10:25 Juicemacs: Exploring Speculative JIT Compilation for ELisp in Java</title><rect x="101" y="75" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="5,5,5" fill="skyblue"></rect><g transform="translate(130,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:35-10:55 Swanky Python: Interactive development for Python</title><rect x="149" y="75" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="5,5,5" fill="skyblue"></rect><g transform="translate(178,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:05-11:25 Interactive Python programming in Emacs</title><rect x="196" y="75" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(225,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:20 Emacs, editors, and LLM driven workflows</title><rect x="376" y="75" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(405,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">llm</text></g></a><a href="/2025/talks/claude-code" title="emacs-claude-code: Intelligent Claude Integration for Emacs" data-slug="claude-code"><title> 1:40- 2:00 emacs-claude-code: Intelligent Claude Integration for Emacs</title><rect x="439" y="75" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="5,5,5" fill="skyblue"></rect><g transform="translate(468,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">claude-code</text></g></a><a href="/2025/talks/private-ai" title="Emacs and private AI: a great match" data-slug="private-ai"><title> 2:10- 2:30 Emacs and private AI: a great match</title><rect x="486" y="75" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(515,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:50- 3:10 Common Lisp images communicating like-a-human through shared Emacs slime and eev</title><rect x="549" y="75" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="5,5,5" fill="skyblue"></rect><g transform="translate(578,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">commonlisp</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/weights" title="Weightlifting tracking with Emacs on Android" data-slug="weights"><title> 9:10- 9:20 Weightlifting tracking with Emacs on Android</title><rect x="15" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(28,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">weights</text></g></a><a href="/2025/talks/modern" title="Some problems of modernizing Emacs" data-slug="modern"><title> 9:40-10:00 Some problems of modernizing Emacs</title><rect x="62" y="15" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(91,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>10:10-10:30 An introduction to the Emacs Reader</title><rect x="109" y="15" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(138,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">reader</text></g></a><a href="/2025/talks/completion" title="corfu+yasnippet: Easier than I thought" data-slug="completion"><title>11:30-11:50 corfu+yasnippet: Easier than I thought</title><rect x="235" y="15" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(264,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:20 Zettelkasten for regular Emacs hackers</title><rect x="376" y="15" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(405,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">zettelkasten</text></g></a><a href="/2025/talks/hyperboleqa" title="Questions and answers to help you fly with Hyperbole" data-slug="hyperboleqa"><title> 1:40- 2:10 Questions and answers to help you fly with Hyperbole</title><rect x="439" y="15" opacity="0.8" width="47" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(484,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:10- 2:20 Gardening in Emacs: A Windows user's tale of tending, tweaking, and triumph</title><rect x="486" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(499,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">gardening</text></g></a><a href="/2025/talks/gnus" title="Reading and writing emails in GNU Emacs with Gnus" data-slug="gnus"><title> 2:30- 2:50 Reading and writing emails in GNU Emacs with Gnus</title><rect x="517" y="15" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(546,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">gnus</text></g></a><a href="/2025/talks/bookclub-tapas" title="Bookclub tapas" data-slug="bookclub-tapas"><title> 3:40- 4:00 Bookclub tapas</title><rect x="627" y="15" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(656,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> 4:20- 4:30 Sunday closing remarks</title><rect x="690" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(703,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">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:50 Emacs as a fully-fledged reference manager</title><rect x="47" y="15" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(76,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:10-10:30 org-gmail: A deep integration of Gmail into your Org Mode</title><rect x="109" y="15" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(138,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">gmail</text></g></a><a href="/2025/talks/languages" title="Studying foreign languages with Emacs, Org Mode and gptel" data-slug="languages"><title>10:40-10:50 Studying foreign languages with Emacs, Org Mode and gptel</title><rect x="156" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(169,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">languages</text></g></a><a href="/2025/talks/latex" title="LaTeX export in org-mode: the overhaul" data-slug="latex"><title>11:10-11:30 LaTeX export in org-mode: the overhaul</title><rect x="203" y="15" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(232,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">latex</text></g></a><a href="/2025/talks/bibliography" title="An enhanced bibliography in org-mode for scientific research and self-directed learning" data-slug="bibliography"><title> 1:00- 1:20 An enhanced bibliography in org-mode for scientific research and self-directed learning</title><rect x="376" y="15" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(405,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">bibliography</text></g></a><a href="/2025/talks/calc" title="Basic Calc functionality for engineering or electronics" data-slug="calc"><title> 1:40- 1:50 Basic Calc functionality for engineering or electronics</title><rect x="439" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(452,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">calc</text></g></a><a href="/2025/talks/authoring" title="How Emacs became my authoring playground—no Lisp required" data-slug="authoring"><title> 2:00- 2:10 How Emacs became my authoring playground—no Lisp required</title><rect x="470" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(483,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">authoring</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> 2:30- 2:50 Blee-LCNT: An Emacs-centered content production and self-publication framework</title><rect x="517" y="15" opacity="0.8" width="31" 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)">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> 3:10- 3:20 GNU Emacs Greader (Gnamù Reader) mode is the best Emacs mode in existence</title><rect x="580" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(593,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">greader</text></g></a><a href="/2025/talks/sat-close" title="Saturday closing remarks" data-slug="sat-close"><title> 4:00- 4:10 Saturday closing remarks</title><rect x="658" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(671,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">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:45 One year progress update Schemacs (formerly Gypsum)</title><rect x="47" y="75" opacity="0.8" width="23" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(68,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:05-10:25 Juicemacs: Exploring Speculative JIT Compilation for ELisp in Java</title><rect x="101" y="75" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="5,5,5" fill="skyblue"></rect><g transform="translate(130,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:35-10:55 Swanky Python: Interactive development for Python</title><rect x="149" y="75" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="5,5,5" fill="skyblue"></rect><g transform="translate(178,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:05-11:25 Interactive Python programming in Emacs</title><rect x="196" y="75" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(225,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:20 Emacs, editors, and LLM driven workflows</title><rect x="376" y="75" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(405,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">llm</text></g></a><a href="/2025/talks/claude-code" title="emacs-claude-code: Intelligent Claude Integration for Emacs" data-slug="claude-code"><title> 1:40- 2:00 emacs-claude-code: Intelligent Claude Integration for Emacs</title><rect x="439" y="75" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="5,5,5" fill="skyblue"></rect><g transform="translate(468,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">claude-code</text></g></a><a href="/2025/talks/private-ai" title="Emacs and private AI: a great match" data-slug="private-ai"><title> 2:10- 2:30 Emacs and private AI: a great match</title><rect x="486" y="75" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(515,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:50- 3:10 Common Lisp images communicating like-a-human through shared Emacs slime and eev</title><rect x="549" y="75" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="5,5,5" fill="skyblue"></rect><g transform="translate(578,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">commonlisp</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/weights" title="Weightlifting tracking with Emacs on Android" data-slug="weights"><title> 9:10- 9:20 Weightlifting tracking with Emacs on Android</title><rect x="15" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(28,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">weights</text></g></a><a href="/2025/talks/modern" title="Some problems of modernizing Emacs" data-slug="modern"><title> 9:40-10:00 Some problems of modernizing Emacs</title><rect x="62" y="15" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(91,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>10:10-10:30 An introduction to the Emacs Reader</title><rect x="109" y="15" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(138,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">reader</text></g></a><a href="/2025/talks/completion" title="corfu+yasnippet: Easier than I thought" data-slug="completion"><title>11:30-11:50 corfu+yasnippet: Easier than I thought</title><rect x="235" y="15" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(264,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:20 Zettelkasten for regular Emacs hackers</title><rect x="376" y="15" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(405,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">zettelkasten</text></g></a><a href="/2025/talks/hyperboleqa" title="Questions and answers to help you fly with Hyperbole" data-slug="hyperboleqa"><title> 1:40- 2:10 Questions and answers to help you fly with Hyperbole</title><rect x="439" y="15" opacity="0.8" width="47" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(484,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:10- 2:20 Gardening in Emacs: A Windows user's tale of tending, tweaking, and triumph</title><rect x="486" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(499,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">gardening</text></g></a><a href="/2025/talks/gnus" title="Reading and writing emails in GNU Emacs with Gnus" data-slug="gnus"><title> 2:30- 2:50 Reading and writing emails in GNU Emacs with Gnus</title><rect x="517" y="15" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(546,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">gnus</text></g></a><a href="/2025/talks/bookclub-tapas" title="Bookclub tapas" data-slug="bookclub-tapas"><title> 3:40- 4:00 Bookclub tapas</title><rect x="627" y="15" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(656,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> 4:20- 4:30 Sunday closing remarks</title><rect x="690" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(703,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">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
diff --git a/2025/talks/greader.md b/2025/talks/greader.md
index 5baa05bd..491bc010 100644
--- a/2025/talks/greader.md
+++ b/2025/talks/greader.md
@@ -1,4 +1,4 @@
-[[!meta title="GNU Emacs Greader (Gnamù Reader) mode is the best Emacs mode in existence"]]
+w[[!meta title="GNU Emacs Greader (Gnamù Reader) mode is the best Emacs mode in existence"]]
[[!meta copyright="Copyright &copy; 2025 Yuval Langer"]]
[[!inline pages="internal(2025/info/greader-nav)" raw="yes"]]