diff options
| author | Sacha Chua <sacha@sachachua.com> | 2026-10-25 17:25:09 -0400 |
|---|---|---|
| committer | Sacha Chua <sacha@sachachua.com> | 2026-10-25 17:25:09 -0400 |
| commit | 8ec36cccd651907e144af9c9664ac632c8234bbb (patch) | |
| tree | 4c65bd1746bb38c9e176321f29a1a536d75cb32b /2026 | |
| parent | e08685fd2cb37360a87e3c1df431ad5dd9dfe69a (diff) | |
| download | emacsconf-wiki-8ec36cccd651907e144af9c9664ac632c8234bbb.tar.xz emacsconf-wiki-8ec36cccd651907e144af9c9664ac632c8234bbb.zip | |
add tasks talk
Diffstat (limited to '')
61 files changed, 135 insertions, 79 deletions
diff --git a/2026/info/align-before.md b/2026/info/align-before.md index 1381be2f..2e296f3e 100644 --- a/2026/info/align-before.md +++ b/2026/info/align-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 Sun 2026-12-13. 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="align"> -<svg width="700" height="150" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><title>Schedule for Sunday</title><rect width="700" height="150" x="0" y="0" fill="white"></rect><text data-start="2026-12-13T14:00:00+0000" class="day-label" font-size="10" fill="black" y="17" x="3">Sunday</text><a href="/2026/talks/sun-open" data-start="2026-12-13T14:00:00+0000" data-end="2026-12-13T14:10:00+0000" title="Sunday opening remarks" data-slug="sun-open"><title>Sun 9:00- 9:10 Sunday opening remarks</title><rect x="0" y="20" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(11,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sun-open</text></g></a><a href="/2026/talks/bone" data-start="2026-12-13T14:10:00+0000" data-end="2026-12-13T14:20:00+0000" title="BONE and gnaw.el: tracking what matters" data-slug="bone"><title>Sun 9:10- 9:20 BONE and gnaw.el: tracking what matters</title><rect x="13" y="20" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(24,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">bone</text></g></a><a href="/2026/talks/local" data-start="2026-12-13T14:40:00+0000" data-end="2026-12-13T14:55:00+0000" title="Local file history possibilities in Emacs" data-slug="local"><title>Sun 9:40- 9:55 Local file history possibilities in Emacs</title><rect x="54" y="20" opacity="0.5" width="20" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(72,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">local</text></g></a><a href="/2026/talks/hutch" data-start="2026-12-13T15:15:00+0000" data-end="2026-12-13T15:25:00+0000" title="hutch: code reviews for the mildly disenfranchised" data-slug="hutch"><title>Sun 10:15-10:25 hutch: code reviews for the mildly disenfranchised</title><rect x="102" y="20" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(113,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">hutch</text></g></a><a href="/2026/talks/team" data-start="2026-12-13T15:35:00+0000" data-end="2026-12-13T15:55:00+0000" title="Beyond the Chatbot: Team-Oriented AI in Emacs" data-slug="team"><title>Sun 10:35-10:55 Beyond the Chatbot: Team-Oriented AI in Emacs</title><rect x="130" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(155,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">team</text></g></a><a href="/2026/talks/compile" data-start="2026-12-13T16:15:00+0000" data-end="2026-12-13T16:35:00+0000" title="Beyond shell history: Saving compilation output in Emacs" data-slug="compile"><title>Sun 11:15-11:35 Beyond shell history: Saving compilation output in Emacs</title><rect x="185" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(210,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">compile</text></g></a><a href="/2026/talks/dnd" data-start="2026-12-13T18:00:00+0000" data-end="2026-12-13T18:20:00+0000" title="DnD and Org Roam: Becoming a Better DM with Emacs" data-slug="dnd"><title>Sun 1:00- 1:20 DnD and Org Roam: Becoming a Better DM with Emacs</title><rect x="329" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(354,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">dnd</text></g></a><a href="/2026/talks/bible" data-start="2026-12-13T18:30:00+0000" data-end="2026-12-13T18:50:00+0000" title="bible-gateway: A Two-Edged Sword in Emacs" data-slug="bible"><title>Sun 1:30- 1:50 bible-gateway: A Two-Edged Sword in Emacs</title><rect x="370" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(395,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">bible</text></g></a><a href="/2026/talks/svg" data-start="2026-12-13T19:10:00+0000" data-end="2026-12-13T19:30:00+0000" title="A (sort of) REPL for learning SVG" data-slug="svg"><title>Sun 2:10- 2:30 A (sort of) REPL for learning SVG</title><rect x="425" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(450,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">svg</text></g></a><a href="/2026/talks/align" data-start="2026-12-13T19:50:00+0000" data-end="2026-12-13T20:10:00+0000" title="Column-aligning text in Emacs" data-slug="align"><title>Sun 2:50- 3:10 Column-aligning text in Emacs</title><rect stroke-width="3" x="480" y="20" opacity="0.8" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(505,73)"><text font-weight="bold" fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">align</text></g></a><a href="/2026/talks/anju" data-start="2026-12-13T20:30:00+0000" data-end="2026-12-13T20:50:00+0000" title="Revisiting Emacs Mouse Interactions with Anju" data-slug="anju"><title>Sun 3:30- 3:50 Revisiting Emacs Mouse Interactions with Anju</title><rect x="535" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(560,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">anju</text></g></a><a href="/2026/talks/ghostel" data-start="2026-12-13T21:00:00+0000" data-end="2026-12-13T21:20:00+0000" title="Ghost in the Shell: a libghostty powered terminal for Emacs" data-slug="ghostel"><title>Sun 4:00- 4:20 Ghost in the Shell: a libghostty powered terminal for Emacs</title><rect x="576" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(601,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">ghostel</text></g></a><a href="/2026/talks/sun-close" data-start="2026-12-13T21:40:00+0000" data-end="2026-12-13T21:50:00+0000" title="Sunday closing remarks" data-slug="sun-close"><title>Sun 4:40- 4:50 Sunday closing remarks</title><rect x="631" y="20" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(642,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sun-close</text></g></a><a href="/2026/talks/prefix" data-start="2026-12-13T15:00:00+0000" data-end="2026-12-13T15:10:00+0000" title="prefix-tab-groups" data-slug="prefix"><title>Sun 10:00-10:10 prefix-tab-groups</title><rect x="82" y="75" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="5,5,5" fill="skyblue"></rect><g transform="translate(93,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">prefix</text></g></a><a href="/2026/talks/rau" data-start="2026-12-13T15:20:00+0000" data-end="2026-12-13T15:40:00+0000" title="Emacs as a Window Manager and concurrency" data-slug="rau"><title>Sun 10:20-10:40 Emacs as a Window Manager and concurrency</title><rect x="109" y="75" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(134,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">rau</text></g></a><a href="/2026/talks/babel" data-start="2026-12-13T16:00:00+0000" data-end="2026-12-13T16:10:00+0000" title="Org Babel everywhere" data-slug="babel"><title>Sun 11:00-11:10 Org Babel everywhere</title><rect x="164" y="75" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(175,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">babel</text></g></a><a href="/2026/talks/el-gpu" data-start="2026-12-13T16:30:00+0000" data-end="2026-12-13T16:50:00+0000" title="El-gpu and pix-el: GNU Emacs 2D and 3D game programming" data-slug="el-gpu"><title>Sun 11:30-11:50 El-gpu and pix-el: GNU Emacs 2D and 3D game programming</title><rect x="205" y="75" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(230,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">el-gpu</text></g></a><a href="/2026/talks/llms" data-start="2026-12-13T18:00:00+0000" data-end="2026-12-13T19:00:00+0000" title="[Panel] Emacs, LLMs, and Free Software" data-slug="llms"><title>Sun 1:00- 2:00 [Panel] Emacs, LLMs, and Free Software</title><rect x="329" y="75" opacity="0.5" width="82" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(409,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">llms</text></g></a><g transform="translate(0,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T14:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">9 AM EST</text></g><g transform="translate(82,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T15:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">10 AM EST</text></g><g transform="translate(164,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T16:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">11 AM EST</text></g><g transform="translate(247,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T17:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">12 PM EST</text></g><g transform="translate(329,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T18:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">1 PM EST</text></g><g transform="translate(411,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T19:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">2 PM EST</text></g><g transform="translate(494,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T20:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">3 PM EST</text></g><g transform="translate(576,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T21:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">4 PM EST</text></g><g transform="translate(658,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T22:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">5 PM EST</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 Sunday</title><rect width="700" height="150" x="0" y="0" fill="white"></rect><text data-start="2026-12-13T14:00:00+0000" class="day-label" font-size="10" fill="black" y="17" x="3">Sunday</text><a href="/2026/talks/sun-open" data-start="2026-12-13T14:00:00+0000" data-end="2026-12-13T14:10:00+0000" title="Sunday opening remarks" data-slug="sun-open"><title>Sun 9:00- 9:10 Sunday opening remarks</title><rect x="0" y="20" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(11,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sun-open</text></g></a><a href="/2026/talks/bone" data-start="2026-12-13T14:10:00+0000" data-end="2026-12-13T14:20:00+0000" title="BONE and gnaw.el: tracking what matters" data-slug="bone"><title>Sun 9:10- 9:20 BONE and gnaw.el: tracking what matters</title><rect x="13" y="20" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(24,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">bone</text></g></a><a href="/2026/talks/local" data-start="2026-12-13T14:40:00+0000" data-end="2026-12-13T14:55:00+0000" title="Local file history possibilities in Emacs" data-slug="local"><title>Sun 9:40- 9:55 Local file history possibilities in Emacs</title><rect x="54" y="20" opacity="0.5" width="20" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(72,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">local</text></g></a><a href="/2026/talks/hutch" data-start="2026-12-13T15:15:00+0000" data-end="2026-12-13T15:25:00+0000" title="hutch: code reviews for the mildly disenfranchised" data-slug="hutch"><title>Sun 10:15-10:25 hutch: code reviews for the mildly disenfranchised</title><rect x="102" y="20" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(113,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">hutch</text></g></a><a href="/2026/talks/team" data-start="2026-12-13T15:35:00+0000" data-end="2026-12-13T15:55:00+0000" title="Beyond the Chatbot: Team-Oriented AI in Emacs" data-slug="team"><title>Sun 10:35-10:55 Beyond the Chatbot: Team-Oriented AI in Emacs</title><rect x="130" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(155,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">team</text></g></a><a href="/2026/talks/compile" data-start="2026-12-13T16:15:00+0000" data-end="2026-12-13T16:35:00+0000" title="Beyond shell history: Saving compilation output in Emacs" data-slug="compile"><title>Sun 11:15-11:35 Beyond shell history: Saving compilation output in Emacs</title><rect x="185" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(210,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">compile</text></g></a><a href="/2026/talks/dnd" data-start="2026-12-13T18:00:00+0000" data-end="2026-12-13T18:20:00+0000" title="DnD and Org Roam: Becoming a Better DM with Emacs" data-slug="dnd"><title>Sun 1:00- 1:20 DnD and Org Roam: Becoming a Better DM with Emacs</title><rect x="329" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(354,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">dnd</text></g></a><a href="/2026/talks/bible" data-start="2026-12-13T18:30:00+0000" data-end="2026-12-13T18:50:00+0000" title="bible-gateway: A Two-Edged Sword in Emacs" data-slug="bible"><title>Sun 1:30- 1:50 bible-gateway: A Two-Edged Sword in Emacs</title><rect x="370" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(395,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">bible</text></g></a><a href="/2026/talks/ffs" data-start="2026-12-13T19:10:00+0000" data-end="2026-12-13T19:30:00+0000" title="Plain text presentations in GNU Emacs with ffs" data-slug="ffs"><title>Sun 2:10- 2:30 Plain text presentations in GNU Emacs with ffs</title><rect x="425" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(450,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">ffs</text></g></a><a href="/2026/talks/align" data-start="2026-12-13T19:50:00+0000" data-end="2026-12-13T20:10:00+0000" title="Column-aligning text in Emacs" data-slug="align"><title>Sun 2:50- 3:10 Column-aligning text in Emacs</title><rect stroke-width="3" x="480" y="20" opacity="0.8" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(505,73)"><text font-weight="bold" fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">align</text></g></a><a href="/2026/talks/anju" data-start="2026-12-13T20:30:00+0000" data-end="2026-12-13T20:50:00+0000" title="Revisiting Emacs Mouse Interactions with Anju" data-slug="anju"><title>Sun 3:30- 3:50 Revisiting Emacs Mouse Interactions with Anju</title><rect x="535" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(560,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">anju</text></g></a><a href="/2026/talks/android" data-start="2026-12-13T21:00:00+0000" data-end="2026-12-13T21:10:00+0000" title="Emacs on Android - Emacs for the next 40 years" data-slug="android"><title>Sun 4:00- 4:10 Emacs on Android - Emacs for the next 40 years</title><rect x="576" y="20" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(587,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">android</text></g></a><a href="/2026/talks/sun-close" data-start="2026-12-13T21:30:00+0000" data-end="2026-12-13T21:40:00+0000" title="Sunday closing remarks" data-slug="sun-close"><title>Sun 4:30- 4:40 Sunday closing remarks</title><rect x="617" y="20" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(628,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sun-close</text></g></a><a href="/2026/talks/prefix" data-start="2026-12-13T15:00:00+0000" data-end="2026-12-13T15:10:00+0000" title="prefix-tab-groups" data-slug="prefix"><title>Sun 10:00-10:10 prefix-tab-groups</title><rect x="82" y="75" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="5,5,5" fill="skyblue"></rect><g transform="translate(93,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">prefix</text></g></a><a href="/2026/talks/rau" data-start="2026-12-13T15:20:00+0000" data-end="2026-12-13T15:40:00+0000" title="Emacs as a Window Manager and concurrency" data-slug="rau"><title>Sun 10:20-10:40 Emacs as a Window Manager and concurrency</title><rect x="109" y="75" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(134,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">rau</text></g></a><a href="/2026/talks/babel" data-start="2026-12-13T16:00:00+0000" data-end="2026-12-13T16:10:00+0000" title="Org Babel everywhere" data-slug="babel"><title>Sun 11:00-11:10 Org Babel everywhere</title><rect x="164" y="75" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(175,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">babel</text></g></a><a href="/2026/talks/el-gpu" data-start="2026-12-13T16:30:00+0000" data-end="2026-12-13T16:50:00+0000" title="El-gpu and pix-el: GNU Emacs 2D and 3D game programming" data-slug="el-gpu"><title>Sun 11:30-11:50 El-gpu and pix-el: GNU Emacs 2D and 3D game programming</title><rect x="205" y="75" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(230,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">el-gpu</text></g></a><a href="/2026/talks/llms" data-start="2026-12-13T18:00:00+0000" data-end="2026-12-13T19:00:00+0000" title="[Panel] Emacs, LLMs, and Free Software" data-slug="llms"><title>Sun 1:00- 2:00 [Panel] Emacs, LLMs, and Free Software</title><rect x="329" y="75" opacity="0.5" width="82" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(409,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">llms</text></g></a><a href="/2026/talks/ghostel" data-start="2026-12-13T19:20:00+0000" data-end="2026-12-13T19:40:00+0000" title="Ghost in the Shell: a libghostty powered terminal for Emacs" data-slug="ghostel"><title>Sun 2:20- 2:40 Ghost in the Shell: a libghostty powered terminal for Emacs</title><rect x="439" y="75" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(464,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">ghostel</text></g></a><a href="/2026/talks/svg" data-start="2026-12-13T20:00:00+0000" data-end="2026-12-13T20:20:00+0000" title="A (sort of) REPL for learning SVG" data-slug="svg"><title>Sun 3:00- 3:20 A (sort of) REPL for learning SVG</title><rect x="494" y="75" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(519,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">svg</text></g></a><g transform="translate(0,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T14:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">9 AM EST</text></g><g transform="translate(82,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T15:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">10 AM EST</text></g><g transform="translate(164,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T16:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">11 AM EST</text></g><g transform="translate(247,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T17:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">12 PM EST</text></g><g transform="translate(329,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T18:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">1 PM EST</text></g><g transform="translate(411,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T19:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">2 PM EST</text></g><g transform="translate(494,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T20:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">3 PM EST</text></g><g transform="translate(576,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T21:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">4 PM EST</text></g><g transform="translate(658,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T22:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">5 PM EST</text></g></svg> </div> [[!toc ]] diff --git a/2026/info/align-nav.md b/2026/info/align-nav.md index 07bb6b20..8707978d 100644 --- a/2026/info/align-nav.md +++ b/2026/info/align-nav.md @@ -1,7 +1,7 @@ <div class="talk-nav"> Back to the [[talks]] -Previous by time: <a href="/2026/talks/svg">A (sort of) REPL for learning SVG</a> -Next by time: <a href="/2026/talks/anju">Revisiting Emacs Mouse Interactions with Anju</a> +Previous by time: <a href="/2026/talks/ghostel">Ghost in the Shell: a libghostty powered terminal for Emacs</a> +Next by time: <a href="/2026/talks/svg">A (sort of) REPL for learning SVG</a> Track: <span class="sched-track General">General</span> - <strong><a href="https://emacsconf.org/2026/watch/gen">Watch</a></strong> </div> diff --git a/2026/info/android-before.md b/2026/info/android-before.md index 922f6dad..68383eb2 100644 --- a/2026/info/android-before.md +++ b/2026/info/android-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 2026-12-12. 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="android"> -<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 data-start="2026-12-12T14:00:00+0000" class="day-label" font-size="10" fill="black" y="17" x="3">Saturday</text><a href="/2026/talks/sat-open" data-start="2026-12-12T14:00:00+0000" data-end="2026-12-12T14:10:00+0000" title="Saturday opening remarks" data-slug="sat-open"><title>Sat 9:00- 9:10 Saturday opening remarks</title><rect x="0" y="20" opacity="0.5" width="13" height="54" 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="/2026/talks/planning" data-start="2026-12-12T14:10:00+0000" data-end="2026-12-12T14:30:00+0000" title="The Emacs Planning Habits of a Questionably Effective Person: My 40-year journey of planning with Emacs, Org Mode, paper journals, etc." data-slug="planning"><title>Sat 9:10- 9:30 The Emacs Planning Habits of a Questionably Effective Person: My 40-year journey of planning with Emacs, Org Mode, paper journals, etc.</title><rect x="13" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(38,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">planning</text></g></a><a href="/2026/talks/listen" data-start="2026-12-12T14:50:00+0000" data-end="2026-12-12T15:10:00+0000" title="Controlling Emacs by voice using Emacslisten" data-slug="listen"><title>Sat 9:50-10:10 Controlling Emacs by voice using Emacslisten</title><rect x="68" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(93,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">listen</text></g></a><a href="/2026/talks/emacspeak" data-start="2026-12-12T15:30:00+0000" data-end="2026-12-12T16:00:00+0000" title="Multi-dimensional information processing with Emacs and Emacspeak: a blind man's perspective" data-slug="emacspeak"><title>Sat 10:30-11:00 Multi-dimensional information processing with Emacs and Emacspeak: a blind man's perspective</title><rect x="123" y="20" opacity="0.5" width="41" height="54" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(162,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">emacspeak</text></g></a><a href="/2026/talks/ltx-talk" data-start="2026-12-12T16:10:00+0000" data-end="2026-12-12T16:30:00+0000" title="ltx-talk: Accessible presentations with ox-beamer" data-slug="ltx-talk"><title>Sat 11:10-11:30 ltx-talk: Accessible presentations with ox-beamer</title><rect x="178" y="20" opacity="0.5" width="27" height="54" 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)">ltx-talk</text></g></a><a href="/2026/talks/plots" data-start="2026-12-12T18:00:00+0000" data-end="2026-12-12T18:20:00+0000" title="Plots with ROOTs: Resilient data visualization with Emacs, Org and gnuplot" data-slug="plots"><title>Sat 1:00- 1:20 Plots with ROOTs: Resilient data visualization with Emacs, Org and gnuplot</title><rect x="329" y="20" opacity="0.5" width="27" height="54" 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)">plots</text></g></a><a href="/2026/talks/ffs" data-start="2026-12-12T18:40:00+0000" data-end="2026-12-12T19:00:00+0000" title="Plain text presentations in GNU Emacs with ffs" data-slug="ffs"><title>Sat 1:40- 2:00 Plain text presentations in GNU Emacs with ffs</title><rect x="384" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(409,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">ffs</text></g></a><a href="/2026/talks/mobile" data-start="2026-12-12T19:20:00+0000" data-end="2026-12-12T19:30:00+0000" title="How I solved Org Mode's biggest mobile and collaboration problems" data-slug="mobile"><title>Sat 2:20- 2:30 How I solved Org Mode's biggest mobile and collaboration problems</title><rect x="439" y="20" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(450,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">mobile</text></g></a><a href="/2026/talks/hyperbole" data-start="2026-12-12T19:50:00+0000" data-end="2026-12-12T20:10:00+0000" title="Hyperbole, My Dear Watson" data-slug="hyperbole"><title>Sat 2:50- 3:10 Hyperbole, My Dear Watson</title><rect x="480" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(505,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">hyperbole</text></g></a><a href="/2026/talks/koutliner" data-start="2026-12-12T20:30:00+0000" data-end="2026-12-12T20:50:00+0000" title="Hyperbole Koutliner: The Best Autonumbered, Hyperlinking Outliner for Emacs" data-slug="koutliner"><title>Sat 3:30- 3:50 Hyperbole Koutliner: The Best Autonumbered, Hyperlinking Outliner for Emacs</title><rect x="535" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(560,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">koutliner</text></g></a><a href="/2026/talks/writing" data-start="2026-12-12T21:10:00+0000" data-end="2026-12-12T21:30:00+0000" title="Close the writing accountability gap with Emacs" data-slug="writing"><title>Sat 4:10- 4:30 Close the writing accountability gap with Emacs</title><rect x="590" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(615,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">writing</text></g></a><a href="/2026/talks/android" data-start="2026-12-12T21:50:00+0000" data-end="2026-12-12T22:00:00+0000" title="Emacs on Android - Emacs for the next 40 years" data-slug="android"><title>Sat 4:50- 5:00 Emacs on Android - Emacs for the next 40 years</title><rect stroke-width="3" x="645" y="20" opacity="0.8" width="13" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(656,73)"><text font-weight="bold" fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">android</text></g></a><a href="/2026/talks/sat-close" data-start="2026-12-12T22:20:00+0000" data-end="2026-12-12T22:30:00+0000" title="Saturday closing remarks / open session" data-slug="sat-close"><title>Sat 5:20- 5:30 Saturday closing remarks / open session</title><rect x="686" y="20" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(697,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sat-close</text></g></a><a href="/2026/talks/community" data-start="2026-12-12T15:30:00+0000" data-end="2026-12-12T16:30:00+0000" title="[Panel] Improving the Emacs Community: Onboarding, Participation, and Growth" data-slug="community"><title>Sat 10:30-11:30 [Panel] Improving the Emacs Community: Onboarding, Participation, and Growth</title><rect x="123" y="75" opacity="0.5" width="82" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(203,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">community</text></g></a><a href="/2026/talks/portable" data-start="2026-12-12T18:00:00+0000" data-end="2026-12-12T18:15:00+0000" title="Emacs as my portable user space across operating platforms" data-slug="portable"><title>Sat 1:00- 1:15 Emacs as my portable user space across operating platforms</title><rect x="329" y="75" opacity="0.5" width="20" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(347,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">portable</text></g></a><a href="/2026/talks/os" data-start="2026-12-12T18:35:00+0000" data-end="2026-12-12T18:55:00+0000" title="Emacs everywhere: A fun romp through esoteric operating systems" data-slug="os"><title>Sat 1:35- 1:55 Emacs everywhere: A fun romp through esoteric operating systems</title><rect x="377" y="75" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(402,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">os</text></g></a><a href="/2026/talks/cadet" data-start="2026-12-12T19:15:00+0000" data-end="2026-12-12T19:25:00+0000" title="My Space Cadet Deck - an Android Stream Deck replacement with deep Emacs integration" data-slug="cadet"><title>Sat 2:15- 2:25 My Space Cadet Deck - an Android Stream Deck replacement with deep Emacs integration</title><rect x="432" y="75" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(443,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">cadet</text></g></a><a href="/2026/talks/remoto" data-start="2026-12-12T19:45:00+0000" data-end="2026-12-12T20:05:00+0000" title="El Remoto: browse any GitHub repos without cloning them" data-slug="remoto"><title>Sat 2:45- 3:05 El Remoto: browse any GitHub repos without cloning them</title><rect x="473" y="75" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(498,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">remoto</text></g></a><a href="/2026/talks/guile" data-start="2026-12-12T20:25:00+0000" data-end="2026-12-12T20:45:00+0000" title="æmacs: having a hoot with a guile emacs" data-slug="guile"><title>Sat 3:25- 3:45 æmacs: having a hoot with a guile emacs</title><rect x="528" y="75" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(553,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">guile</text></g></a><a href="/2026/talks/virus" data-start="2026-12-12T21:05:00+0000" data-end="2026-12-12T21:25:00+0000" title="It's Probably Not a Virus" data-slug="virus"><title>Sat 4:05- 4:25 It's Probably Not a Virus</title><rect x="583" y="75" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(608,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">virus</text></g></a><g transform="translate(0,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T14:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">9 AM EST</text></g><g transform="translate(82,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T15:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">10 AM EST</text></g><g transform="translate(164,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T16:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">11 AM EST</text></g><g transform="translate(247,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T17:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">12 PM EST</text></g><g transform="translate(329,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T18:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">1 PM EST</text></g><g transform="translate(411,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T19:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">2 PM EST</text></g><g transform="translate(494,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T20:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">3 PM EST</text></g><g transform="translate(576,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T21:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">4 PM EST</text></g><g transform="translate(658,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T22:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">5 PM EST</text></g></svg> +The following image shows where the talk is in the schedule for Sun 2026-12-13. 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="android"> +<svg width="700" height="150" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><title>Schedule for Sunday</title><rect width="700" height="150" x="0" y="0" fill="white"></rect><text data-start="2026-12-13T14:00:00+0000" class="day-label" font-size="10" fill="black" y="17" x="3">Sunday</text><a href="/2026/talks/sun-open" data-start="2026-12-13T14:00:00+0000" data-end="2026-12-13T14:10:00+0000" title="Sunday opening remarks" data-slug="sun-open"><title>Sun 9:00- 9:10 Sunday opening remarks</title><rect x="0" y="20" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(11,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sun-open</text></g></a><a href="/2026/talks/bone" data-start="2026-12-13T14:10:00+0000" data-end="2026-12-13T14:20:00+0000" title="BONE and gnaw.el: tracking what matters" data-slug="bone"><title>Sun 9:10- 9:20 BONE and gnaw.el: tracking what matters</title><rect x="13" y="20" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(24,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">bone</text></g></a><a href="/2026/talks/local" data-start="2026-12-13T14:40:00+0000" data-end="2026-12-13T14:55:00+0000" title="Local file history possibilities in Emacs" data-slug="local"><title>Sun 9:40- 9:55 Local file history possibilities in Emacs</title><rect x="54" y="20" opacity="0.5" width="20" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(72,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">local</text></g></a><a href="/2026/talks/hutch" data-start="2026-12-13T15:15:00+0000" data-end="2026-12-13T15:25:00+0000" title="hutch: code reviews for the mildly disenfranchised" data-slug="hutch"><title>Sun 10:15-10:25 hutch: code reviews for the mildly disenfranchised</title><rect x="102" y="20" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(113,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">hutch</text></g></a><a href="/2026/talks/team" data-start="2026-12-13T15:35:00+0000" data-end="2026-12-13T15:55:00+0000" title="Beyond the Chatbot: Team-Oriented AI in Emacs" data-slug="team"><title>Sun 10:35-10:55 Beyond the Chatbot: Team-Oriented AI in Emacs</title><rect x="130" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(155,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">team</text></g></a><a href="/2026/talks/compile" data-start="2026-12-13T16:15:00+0000" data-end="2026-12-13T16:35:00+0000" title="Beyond shell history: Saving compilation output in Emacs" data-slug="compile"><title>Sun 11:15-11:35 Beyond shell history: Saving compilation output in Emacs</title><rect x="185" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(210,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">compile</text></g></a><a href="/2026/talks/dnd" data-start="2026-12-13T18:00:00+0000" data-end="2026-12-13T18:20:00+0000" title="DnD and Org Roam: Becoming a Better DM with Emacs" data-slug="dnd"><title>Sun 1:00- 1:20 DnD and Org Roam: Becoming a Better DM with Emacs</title><rect x="329" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(354,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">dnd</text></g></a><a href="/2026/talks/bible" data-start="2026-12-13T18:30:00+0000" data-end="2026-12-13T18:50:00+0000" title="bible-gateway: A Two-Edged Sword in Emacs" data-slug="bible"><title>Sun 1:30- 1:50 bible-gateway: A Two-Edged Sword in Emacs</title><rect x="370" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(395,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">bible</text></g></a><a href="/2026/talks/ffs" data-start="2026-12-13T19:10:00+0000" data-end="2026-12-13T19:30:00+0000" title="Plain text presentations in GNU Emacs with ffs" data-slug="ffs"><title>Sun 2:10- 2:30 Plain text presentations in GNU Emacs with ffs</title><rect x="425" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(450,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">ffs</text></g></a><a href="/2026/talks/align" data-start="2026-12-13T19:50:00+0000" data-end="2026-12-13T20:10:00+0000" title="Column-aligning text in Emacs" data-slug="align"><title>Sun 2:50- 3:10 Column-aligning text in Emacs</title><rect x="480" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(505,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">align</text></g></a><a href="/2026/talks/anju" data-start="2026-12-13T20:30:00+0000" data-end="2026-12-13T20:50:00+0000" title="Revisiting Emacs Mouse Interactions with Anju" data-slug="anju"><title>Sun 3:30- 3:50 Revisiting Emacs Mouse Interactions with Anju</title><rect x="535" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(560,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">anju</text></g></a><a href="/2026/talks/android" data-start="2026-12-13T21:00:00+0000" data-end="2026-12-13T21:10:00+0000" title="Emacs on Android - Emacs for the next 40 years" data-slug="android"><title>Sun 4:00- 4:10 Emacs on Android - Emacs for the next 40 years</title><rect stroke-width="3" x="576" y="20" opacity="0.8" width="13" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(587,73)"><text font-weight="bold" fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">android</text></g></a><a href="/2026/talks/sun-close" data-start="2026-12-13T21:30:00+0000" data-end="2026-12-13T21:40:00+0000" title="Sunday closing remarks" data-slug="sun-close"><title>Sun 4:30- 4:40 Sunday closing remarks</title><rect x="617" y="20" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(628,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sun-close</text></g></a><a href="/2026/talks/prefix" data-start="2026-12-13T15:00:00+0000" data-end="2026-12-13T15:10:00+0000" title="prefix-tab-groups" data-slug="prefix"><title>Sun 10:00-10:10 prefix-tab-groups</title><rect x="82" y="75" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="5,5,5" fill="skyblue"></rect><g transform="translate(93,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">prefix</text></g></a><a href="/2026/talks/rau" data-start="2026-12-13T15:20:00+0000" data-end="2026-12-13T15:40:00+0000" title="Emacs as a Window Manager and concurrency" data-slug="rau"><title>Sun 10:20-10:40 Emacs as a Window Manager and concurrency</title><rect x="109" y="75" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(134,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">rau</text></g></a><a href="/2026/talks/babel" data-start="2026-12-13T16:00:00+0000" data-end="2026-12-13T16:10:00+0000" title="Org Babel everywhere" data-slug="babel"><title>Sun 11:00-11:10 Org Babel everywhere</title><rect x="164" y="75" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(175,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">babel</text></g></a><a href="/2026/talks/el-gpu" data-start="2026-12-13T16:30:00+0000" data-end="2026-12-13T16:50:00+0000" title="El-gpu and pix-el: GNU Emacs 2D and 3D game programming" data-slug="el-gpu"><title>Sun 11:30-11:50 El-gpu and pix-el: GNU Emacs 2D and 3D game programming</title><rect x="205" y="75" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(230,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">el-gpu</text></g></a><a href="/2026/talks/llms" data-start="2026-12-13T18:00:00+0000" data-end="2026-12-13T19:00:00+0000" title="[Panel] Emacs, LLMs, and Free Software" data-slug="llms"><title>Sun 1:00- 2:00 [Panel] Emacs, LLMs, and Free Software</title><rect x="329" y="75" opacity="0.5" width="82" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(409,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">llms</text></g></a><a href="/2026/talks/ghostel" data-start="2026-12-13T19:20:00+0000" data-end="2026-12-13T19:40:00+0000" title="Ghost in the Shell: a libghostty powered terminal for Emacs" data-slug="ghostel"><title>Sun 2:20- 2:40 Ghost in the Shell: a libghostty powered terminal for Emacs</title><rect x="439" y="75" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(464,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">ghostel</text></g></a><a href="/2026/talks/svg" data-start="2026-12-13T20:00:00+0000" data-end="2026-12-13T20:20:00+0000" title="A (sort of) REPL for learning SVG" data-slug="svg"><title>Sun 3:00- 3:20 A (sort of) REPL for learning SVG</title><rect x="494" y="75" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(519,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">svg</text></g></a><g transform="translate(0,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T14:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">9 AM EST</text></g><g transform="translate(82,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T15:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">10 AM EST</text></g><g transform="translate(164,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T16:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">11 AM EST</text></g><g transform="translate(247,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T17:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">12 PM EST</text></g><g transform="translate(329,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T18:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">1 PM EST</text></g><g transform="translate(411,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T19:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">2 PM EST</text></g><g transform="translate(494,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T20:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">3 PM EST</text></g><g transform="translate(576,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T21:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">4 PM EST</text></g><g transform="translate(658,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T22:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">5 PM EST</text></g></svg> </div> [[!toc ]] @@ -9,7 +9,7 @@ Format: 10-min talk ; Q&A: BigBlueButton conference room <https://media.emacsc Etherpad: <https://pad.emacsconf.org/2026-android> 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="2026-12-12T21:50:00Z" end="2026-12-12T22:00:00Z"><div class="conf-time">Saturday, Dec 12 2026, ~4:50 PM - 5:00 PM EST (US/Eastern)</div><div class="others"><div>which is the same as:</div>Saturday, Dec 12 2026, ~3:50 PM - 4:00 PM CST (US/Central)<br />Saturday, Dec 12 2026, ~2:50 PM - 3:00 PM MST (US/Mountain)<br />Saturday, Dec 12 2026, ~1:50 PM - 2:00 PM PST (US/Pacific)<br />Saturday, Dec 12 2026, ~9:50 PM - 10:00 PM UTC <br />Saturday, Dec 12 2026, ~10:50 PM - 11:00 PM CET (Europe/Paris)<br />Saturday, Dec 12 2026, ~11:50 PM - 12:00 AM EET (Europe/Athens)<br />Sunday, Dec 13 2026, ~3:20 AM - 3:30 AM IST (Asia/Kolkata)<br />Sunday, Dec 13 2026, ~5:50 AM - 6:00 AM +08 (Asia/Singapore)<br />Sunday, Dec 13 2026, ~6:50 AM - 7:00 AM JST (Asia/Tokyo)</div></div><div><strong><a href="/2026/watch/gen/">Find out how to watch and participate</a></strong></div> +<div>Times in different time zones:</div><div class="times" start="2026-12-13T21:00:00Z" end="2026-12-13T21:10:00Z"><div class="conf-time">Sunday, Dec 13 2026, ~4:00 PM - 4:10 PM EST (US/Eastern)</div><div class="others"><div>which is the same as:</div>Sunday, Dec 13 2026, ~3:00 PM - 3:10 PM CST (US/Central)<br />Sunday, Dec 13 2026, ~2:00 PM - 2:10 PM MST (US/Mountain)<br />Sunday, Dec 13 2026, ~1:00 PM - 1:10 PM PST (US/Pacific)<br />Sunday, Dec 13 2026, ~9:00 PM - 9:10 PM UTC <br />Sunday, Dec 13 2026, ~10:00 PM - 10:10 PM CET (Europe/Paris)<br />Sunday, Dec 13 2026, ~11:00 PM - 11:10 PM EET (Europe/Athens)<br />Monday, Dec 14 2026, ~2:30 AM - 2:40 AM IST (Asia/Kolkata)<br />Monday, Dec 14 2026, ~5:00 AM - 5:10 AM +08 (Asia/Singapore)<br />Monday, Dec 14 2026, ~6:00 AM - 6:10 AM JST (Asia/Tokyo)</div></div><div><strong><a href="/2026/watch/gen/">Find out how to watch and participate</a></strong></div> diff --git a/2026/info/android-nav.md b/2026/info/android-nav.md index df9b33af..58d08d1e 100644 --- a/2026/info/android-nav.md +++ b/2026/info/android-nav.md @@ -1,7 +1,7 @@ <div class="talk-nav"> Back to the [[talks]] -Previous by time: <a href="/2026/talks/writing">Close the writing accountability gap with Emacs</a> -Next by time: <a href="/2026/talks/sat-close">Saturday closing remarks / open session</a> +Previous by time: <a href="/2026/talks/anju">Revisiting Emacs Mouse Interactions with Anju</a> +Next by time: <a href="/2026/talks/sun-close">Sunday closing remarks</a> Track: <span class="sched-track General">General</span> - <strong><a href="https://emacsconf.org/2026/watch/gen">Watch</a></strong> </div> diff --git a/2026/info/anju-before.md b/2026/info/anju-before.md index ec5897ff..a9bc9e7d 100644 --- a/2026/info/anju-before.md +++ b/2026/info/anju-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 Sun 2026-12-13. 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="anju"> -<svg width="700" height="150" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><title>Schedule for Sunday</title><rect width="700" height="150" x="0" y="0" fill="white"></rect><text data-start="2026-12-13T14:00:00+0000" class="day-label" font-size="10" fill="black" y="17" x="3">Sunday</text><a href="/2026/talks/sun-open" data-start="2026-12-13T14:00:00+0000" data-end="2026-12-13T14:10:00+0000" title="Sunday opening remarks" data-slug="sun-open"><title>Sun 9:00- 9:10 Sunday opening remarks</title><rect x="0" y="20" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(11,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sun-open</text></g></a><a href="/2026/talks/bone" data-start="2026-12-13T14:10:00+0000" data-end="2026-12-13T14:20:00+0000" title="BONE and gnaw.el: tracking what matters" data-slug="bone"><title>Sun 9:10- 9:20 BONE and gnaw.el: tracking what matters</title><rect x="13" y="20" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(24,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">bone</text></g></a><a href="/2026/talks/local" data-start="2026-12-13T14:40:00+0000" data-end="2026-12-13T14:55:00+0000" title="Local file history possibilities in Emacs" data-slug="local"><title>Sun 9:40- 9:55 Local file history possibilities in Emacs</title><rect x="54" y="20" opacity="0.5" width="20" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(72,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">local</text></g></a><a href="/2026/talks/hutch" data-start="2026-12-13T15:15:00+0000" data-end="2026-12-13T15:25:00+0000" title="hutch: code reviews for the mildly disenfranchised" data-slug="hutch"><title>Sun 10:15-10:25 hutch: code reviews for the mildly disenfranchised</title><rect x="102" y="20" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(113,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">hutch</text></g></a><a href="/2026/talks/team" data-start="2026-12-13T15:35:00+0000" data-end="2026-12-13T15:55:00+0000" title="Beyond the Chatbot: Team-Oriented AI in Emacs" data-slug="team"><title>Sun 10:35-10:55 Beyond the Chatbot: Team-Oriented AI in Emacs</title><rect x="130" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(155,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">team</text></g></a><a href="/2026/talks/compile" data-start="2026-12-13T16:15:00+0000" data-end="2026-12-13T16:35:00+0000" title="Beyond shell history: Saving compilation output in Emacs" data-slug="compile"><title>Sun 11:15-11:35 Beyond shell history: Saving compilation output in Emacs</title><rect x="185" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(210,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">compile</text></g></a><a href="/2026/talks/dnd" data-start="2026-12-13T18:00:00+0000" data-end="2026-12-13T18:20:00+0000" title="DnD and Org Roam: Becoming a Better DM with Emacs" data-slug="dnd"><title>Sun 1:00- 1:20 DnD and Org Roam: Becoming a Better DM with Emacs</title><rect x="329" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(354,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">dnd</text></g></a><a href="/2026/talks/bible" data-start="2026-12-13T18:30:00+0000" data-end="2026-12-13T18:50:00+0000" title="bible-gateway: A Two-Edged Sword in Emacs" data-slug="bible"><title>Sun 1:30- 1:50 bible-gateway: A Two-Edged Sword in Emacs</title><rect x="370" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(395,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">bible</text></g></a><a href="/2026/talks/svg" data-start="2026-12-13T19:10:00+0000" data-end="2026-12-13T19:30:00+0000" title="A (sort of) REPL for learning SVG" data-slug="svg"><title>Sun 2:10- 2:30 A (sort of) REPL for learning SVG</title><rect x="425" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(450,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">svg</text></g></a><a href="/2026/talks/align" data-start="2026-12-13T19:50:00+0000" data-end="2026-12-13T20:10:00+0000" title="Column-aligning text in Emacs" data-slug="align"><title>Sun 2:50- 3:10 Column-aligning text in Emacs</title><rect x="480" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(505,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">align</text></g></a><a href="/2026/talks/anju" data-start="2026-12-13T20:30:00+0000" data-end="2026-12-13T20:50:00+0000" title="Revisiting Emacs Mouse Interactions with Anju" data-slug="anju"><title>Sun 3:30- 3:50 Revisiting Emacs Mouse Interactions with Anju</title><rect stroke-width="3" x="535" y="20" opacity="0.8" width="27" height="54" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(560,73)"><text font-weight="bold" fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">anju</text></g></a><a href="/2026/talks/ghostel" data-start="2026-12-13T21:00:00+0000" data-end="2026-12-13T21:20:00+0000" title="Ghost in the Shell: a libghostty powered terminal for Emacs" data-slug="ghostel"><title>Sun 4:00- 4:20 Ghost in the Shell: a libghostty powered terminal for Emacs</title><rect x="576" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(601,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">ghostel</text></g></a><a href="/2026/talks/sun-close" data-start="2026-12-13T21:40:00+0000" data-end="2026-12-13T21:50:00+0000" title="Sunday closing remarks" data-slug="sun-close"><title>Sun 4:40- 4:50 Sunday closing remarks</title><rect x="631" y="20" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(642,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sun-close</text></g></a><a href="/2026/talks/prefix" data-start="2026-12-13T15:00:00+0000" data-end="2026-12-13T15:10:00+0000" title="prefix-tab-groups" data-slug="prefix"><title>Sun 10:00-10:10 prefix-tab-groups</title><rect x="82" y="75" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="5,5,5" fill="skyblue"></rect><g transform="translate(93,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">prefix</text></g></a><a href="/2026/talks/rau" data-start="2026-12-13T15:20:00+0000" data-end="2026-12-13T15:40:00+0000" title="Emacs as a Window Manager and concurrency" data-slug="rau"><title>Sun 10:20-10:40 Emacs as a Window Manager and concurrency</title><rect x="109" y="75" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(134,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">rau</text></g></a><a href="/2026/talks/babel" data-start="2026-12-13T16:00:00+0000" data-end="2026-12-13T16:10:00+0000" title="Org Babel everywhere" data-slug="babel"><title>Sun 11:00-11:10 Org Babel everywhere</title><rect x="164" y="75" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(175,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">babel</text></g></a><a href="/2026/talks/el-gpu" data-start="2026-12-13T16:30:00+0000" data-end="2026-12-13T16:50:00+0000" title="El-gpu and pix-el: GNU Emacs 2D and 3D game programming" data-slug="el-gpu"><title>Sun 11:30-11:50 El-gpu and pix-el: GNU Emacs 2D and 3D game programming</title><rect x="205" y="75" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(230,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">el-gpu</text></g></a><a href="/2026/talks/llms" data-start="2026-12-13T18:00:00+0000" data-end="2026-12-13T19:00:00+0000" title="[Panel] Emacs, LLMs, and Free Software" data-slug="llms"><title>Sun 1:00- 2:00 [Panel] Emacs, LLMs, and Free Software</title><rect x="329" y="75" opacity="0.5" width="82" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(409,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">llms</text></g></a><g transform="translate(0,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T14:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">9 AM EST</text></g><g transform="translate(82,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T15:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">10 AM EST</text></g><g transform="translate(164,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T16:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">11 AM EST</text></g><g transform="translate(247,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T17:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">12 PM EST</text></g><g transform="translate(329,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T18:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">1 PM EST</text></g><g transform="translate(411,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T19:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">2 PM EST</text></g><g transform="translate(494,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T20:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">3 PM EST</text></g><g transform="translate(576,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T21:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">4 PM EST</text></g><g transform="translate(658,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T22:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">5 PM EST</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 Sunday</title><rect width="700" height="150" x="0" y="0" fill="white"></rect><text data-start="2026-12-13T14:00:00+0000" class="day-label" font-size="10" fill="black" y="17" x="3">Sunday</text><a href="/2026/talks/sun-open" data-start="2026-12-13T14:00:00+0000" data-end="2026-12-13T14:10:00+0000" title="Sunday opening remarks" data-slug="sun-open"><title>Sun 9:00- 9:10 Sunday opening remarks</title><rect x="0" y="20" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(11,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sun-open</text></g></a><a href="/2026/talks/bone" data-start="2026-12-13T14:10:00+0000" data-end="2026-12-13T14:20:00+0000" title="BONE and gnaw.el: tracking what matters" data-slug="bone"><title>Sun 9:10- 9:20 BONE and gnaw.el: tracking what matters</title><rect x="13" y="20" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(24,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">bone</text></g></a><a href="/2026/talks/local" data-start="2026-12-13T14:40:00+0000" data-end="2026-12-13T14:55:00+0000" title="Local file history possibilities in Emacs" data-slug="local"><title>Sun 9:40- 9:55 Local file history possibilities in Emacs</title><rect x="54" y="20" opacity="0.5" width="20" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(72,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">local</text></g></a><a href="/2026/talks/hutch" data-start="2026-12-13T15:15:00+0000" data-end="2026-12-13T15:25:00+0000" title="hutch: code reviews for the mildly disenfranchised" data-slug="hutch"><title>Sun 10:15-10:25 hutch: code reviews for the mildly disenfranchised</title><rect x="102" y="20" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(113,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">hutch</text></g></a><a href="/2026/talks/team" data-start="2026-12-13T15:35:00+0000" data-end="2026-12-13T15:55:00+0000" title="Beyond the Chatbot: Team-Oriented AI in Emacs" data-slug="team"><title>Sun 10:35-10:55 Beyond the Chatbot: Team-Oriented AI in Emacs</title><rect x="130" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(155,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">team</text></g></a><a href="/2026/talks/compile" data-start="2026-12-13T16:15:00+0000" data-end="2026-12-13T16:35:00+0000" title="Beyond shell history: Saving compilation output in Emacs" data-slug="compile"><title>Sun 11:15-11:35 Beyond shell history: Saving compilation output in Emacs</title><rect x="185" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(210,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">compile</text></g></a><a href="/2026/talks/dnd" data-start="2026-12-13T18:00:00+0000" data-end="2026-12-13T18:20:00+0000" title="DnD and Org Roam: Becoming a Better DM with Emacs" data-slug="dnd"><title>Sun 1:00- 1:20 DnD and Org Roam: Becoming a Better DM with Emacs</title><rect x="329" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(354,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">dnd</text></g></a><a href="/2026/talks/bible" data-start="2026-12-13T18:30:00+0000" data-end="2026-12-13T18:50:00+0000" title="bible-gateway: A Two-Edged Sword in Emacs" data-slug="bible"><title>Sun 1:30- 1:50 bible-gateway: A Two-Edged Sword in Emacs</title><rect x="370" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(395,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">bible</text></g></a><a href="/2026/talks/ffs" data-start="2026-12-13T19:10:00+0000" data-end="2026-12-13T19:30:00+0000" title="Plain text presentations in GNU Emacs with ffs" data-slug="ffs"><title>Sun 2:10- 2:30 Plain text presentations in GNU Emacs with ffs</title><rect x="425" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(450,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">ffs</text></g></a><a href="/2026/talks/align" data-start="2026-12-13T19:50:00+0000" data-end="2026-12-13T20:10:00+0000" title="Column-aligning text in Emacs" data-slug="align"><title>Sun 2:50- 3:10 Column-aligning text in Emacs</title><rect x="480" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(505,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">align</text></g></a><a href="/2026/talks/anju" data-start="2026-12-13T20:30:00+0000" data-end="2026-12-13T20:50:00+0000" title="Revisiting Emacs Mouse Interactions with Anju" data-slug="anju"><title>Sun 3:30- 3:50 Revisiting Emacs Mouse Interactions with Anju</title><rect stroke-width="3" x="535" y="20" opacity="0.8" width="27" height="54" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(560,73)"><text font-weight="bold" fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">anju</text></g></a><a href="/2026/talks/android" data-start="2026-12-13T21:00:00+0000" data-end="2026-12-13T21:10:00+0000" title="Emacs on Android - Emacs for the next 40 years" data-slug="android"><title>Sun 4:00- 4:10 Emacs on Android - Emacs for the next 40 years</title><rect x="576" y="20" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(587,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">android</text></g></a><a href="/2026/talks/sun-close" data-start="2026-12-13T21:30:00+0000" data-end="2026-12-13T21:40:00+0000" title="Sunday closing remarks" data-slug="sun-close"><title>Sun 4:30- 4:40 Sunday closing remarks</title><rect x="617" y="20" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(628,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sun-close</text></g></a><a href="/2026/talks/prefix" data-start="2026-12-13T15:00:00+0000" data-end="2026-12-13T15:10:00+0000" title="prefix-tab-groups" data-slug="prefix"><title>Sun 10:00-10:10 prefix-tab-groups</title><rect x="82" y="75" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="5,5,5" fill="skyblue"></rect><g transform="translate(93,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">prefix</text></g></a><a href="/2026/talks/rau" data-start="2026-12-13T15:20:00+0000" data-end="2026-12-13T15:40:00+0000" title="Emacs as a Window Manager and concurrency" data-slug="rau"><title>Sun 10:20-10:40 Emacs as a Window Manager and concurrency</title><rect x="109" y="75" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(134,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">rau</text></g></a><a href="/2026/talks/babel" data-start="2026-12-13T16:00:00+0000" data-end="2026-12-13T16:10:00+0000" title="Org Babel everywhere" data-slug="babel"><title>Sun 11:00-11:10 Org Babel everywhere</title><rect x="164" y="75" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(175,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">babel</text></g></a><a href="/2026/talks/el-gpu" data-start="2026-12-13T16:30:00+0000" data-end="2026-12-13T16:50:00+0000" title="El-gpu and pix-el: GNU Emacs 2D and 3D game programming" data-slug="el-gpu"><title>Sun 11:30-11:50 El-gpu and pix-el: GNU Emacs 2D and 3D game programming</title><rect x="205" y="75" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(230,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">el-gpu</text></g></a><a href="/2026/talks/llms" data-start="2026-12-13T18:00:00+0000" data-end="2026-12-13T19:00:00+0000" title="[Panel] Emacs, LLMs, and Free Software" data-slug="llms"><title>Sun 1:00- 2:00 [Panel] Emacs, LLMs, and Free Software</title><rect x="329" y="75" opacity="0.5" width="82" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(409,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">llms</text></g></a><a href="/2026/talks/ghostel" data-start="2026-12-13T19:20:00+0000" data-end="2026-12-13T19:40:00+0000" title="Ghost in the Shell: a libghostty powered terminal for Emacs" data-slug="ghostel"><title>Sun 2:20- 2:40 Ghost in the Shell: a libghostty powered terminal for Emacs</title><rect x="439" y="75" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(464,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">ghostel</text></g></a><a href="/2026/talks/svg" data-start="2026-12-13T20:00:00+0000" data-end="2026-12-13T20:20:00+0000" title="A (sort of) REPL for learning SVG" data-slug="svg"><title>Sun 3:00- 3:20 A (sort of) REPL for learning SVG</title><rect x="494" y="75" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(519,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">svg</text></g></a><g transform="translate(0,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T14:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">9 AM EST</text></g><g transform="translate(82,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T15:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">10 AM EST</text></g><g transform="translate(164,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T16:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">11 AM EST</text></g><g transform="translate(247,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T17:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">12 PM EST</text></g><g transform="translate(329,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T18:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">1 PM EST</text></g><g transform="translate(411,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T19:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">2 PM EST</text></g><g transform="translate(494,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T20:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">3 PM EST</text></g><g transform="translate(576,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T21:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">4 PM EST</text></g><g transform="translate(658,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T22:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">5 PM EST</text></g></svg> </div> [[!toc ]] diff --git a/2026/info/anju-nav.md b/2026/info/anju-nav.md index 9092edb3..c997eb31 100644 --- a/2026/info/anju-nav.md +++ b/2026/info/anju-nav.md @@ -1,7 +1,7 @@ <div class="talk-nav"> Back to the [[talks]] -Previous by time: <a href="/2026/talks/align">Column-aligning text in Emacs</a> -Next by time: <a href="/2026/talks/ghostel">Ghost in the Shell: a libghostty powered terminal for Emacs</a> +Previous by time: <a href="/2026/talks/svg">A (sort of) REPL for learning SVG</a> +Next by time: <a href="/2026/talks/android">Emacs on Android - Emacs for the next 40 years</a> Track: <span class="sched-track General">General</span> - <strong><a href="https://emacsconf.org/2026/watch/gen">Watch</a></strong> </div> diff --git a/2026/info/babel-before.md b/2026/info/babel-before.md index 48c4dbd0..e538ff8c 100644 --- a/2026/info/babel-before.md +++ b/2026/info/babel-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 Sun 2026-12-13. 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="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 Sunday</title><rect width="700" height="150" x="0" y="0" fill="white"></rect><text data-start="2026-12-13T14:00:00+0000" class="day-label" font-size="10" fill="black" y="17" x="3">Sunday</text><a href="/2026/talks/sun-open" data-start="2026-12-13T14:00:00+0000" data-end="2026-12-13T14:10:00+0000" title="Sunday opening remarks" data-slug="sun-open"><title>Sun 9:00- 9:10 Sunday opening remarks</title><rect x="0" y="20" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(11,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sun-open</text></g></a><a href="/2026/talks/bone" data-start="2026-12-13T14:10:00+0000" data-end="2026-12-13T14:20:00+0000" title="BONE and gnaw.el: tracking what matters" data-slug="bone"><title>Sun 9:10- 9:20 BONE and gnaw.el: tracking what matters</title><rect x="13" y="20" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(24,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">bone</text></g></a><a href="/2026/talks/local" data-start="2026-12-13T14:40:00+0000" data-end="2026-12-13T14:55:00+0000" title="Local file history possibilities in Emacs" data-slug="local"><title>Sun 9:40- 9:55 Local file history possibilities in Emacs</title><rect x="54" y="20" opacity="0.5" width="20" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(72,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">local</text></g></a><a href="/2026/talks/hutch" data-start="2026-12-13T15:15:00+0000" data-end="2026-12-13T15:25:00+0000" title="hutch: code reviews for the mildly disenfranchised" data-slug="hutch"><title>Sun 10:15-10:25 hutch: code reviews for the mildly disenfranchised</title><rect x="102" y="20" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(113,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">hutch</text></g></a><a href="/2026/talks/team" data-start="2026-12-13T15:35:00+0000" data-end="2026-12-13T15:55:00+0000" title="Beyond the Chatbot: Team-Oriented AI in Emacs" data-slug="team"><title>Sun 10:35-10:55 Beyond the Chatbot: Team-Oriented AI in Emacs</title><rect x="130" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(155,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">team</text></g></a><a href="/2026/talks/compile" data-start="2026-12-13T16:15:00+0000" data-end="2026-12-13T16:35:00+0000" title="Beyond shell history: Saving compilation output in Emacs" data-slug="compile"><title>Sun 11:15-11:35 Beyond shell history: Saving compilation output in Emacs</title><rect x="185" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(210,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">compile</text></g></a><a href="/2026/talks/dnd" data-start="2026-12-13T18:00:00+0000" data-end="2026-12-13T18:20:00+0000" title="DnD and Org Roam: Becoming a Better DM with Emacs" data-slug="dnd"><title>Sun 1:00- 1:20 DnD and Org Roam: Becoming a Better DM with Emacs</title><rect x="329" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(354,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">dnd</text></g></a><a href="/2026/talks/bible" data-start="2026-12-13T18:30:00+0000" data-end="2026-12-13T18:50:00+0000" title="bible-gateway: A Two-Edged Sword in Emacs" data-slug="bible"><title>Sun 1:30- 1:50 bible-gateway: A Two-Edged Sword in Emacs</title><rect x="370" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(395,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">bible</text></g></a><a href="/2026/talks/svg" data-start="2026-12-13T19:10:00+0000" data-end="2026-12-13T19:30:00+0000" title="A (sort of) REPL for learning SVG" data-slug="svg"><title>Sun 2:10- 2:30 A (sort of) REPL for learning SVG</title><rect x="425" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(450,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">svg</text></g></a><a href="/2026/talks/align" data-start="2026-12-13T19:50:00+0000" data-end="2026-12-13T20:10:00+0000" title="Column-aligning text in Emacs" data-slug="align"><title>Sun 2:50- 3:10 Column-aligning text in Emacs</title><rect x="480" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(505,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">align</text></g></a><a href="/2026/talks/anju" data-start="2026-12-13T20:30:00+0000" data-end="2026-12-13T20:50:00+0000" title="Revisiting Emacs Mouse Interactions with Anju" data-slug="anju"><title>Sun 3:30- 3:50 Revisiting Emacs Mouse Interactions with Anju</title><rect x="535" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(560,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">anju</text></g></a><a href="/2026/talks/ghostel" data-start="2026-12-13T21:00:00+0000" data-end="2026-12-13T21:20:00+0000" title="Ghost in the Shell: a libghostty powered terminal for Emacs" data-slug="ghostel"><title>Sun 4:00- 4:20 Ghost in the Shell: a libghostty powered terminal for Emacs</title><rect x="576" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(601,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">ghostel</text></g></a><a href="/2026/talks/sun-close" data-start="2026-12-13T21:40:00+0000" data-end="2026-12-13T21:50:00+0000" title="Sunday closing remarks" data-slug="sun-close"><title>Sun 4:40- 4:50 Sunday closing remarks</title><rect x="631" y="20" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(642,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sun-close</text></g></a><a href="/2026/talks/prefix" data-start="2026-12-13T15:00:00+0000" data-end="2026-12-13T15:10:00+0000" title="prefix-tab-groups" data-slug="prefix"><title>Sun 10:00-10:10 prefix-tab-groups</title><rect x="82" y="75" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="5,5,5" fill="skyblue"></rect><g transform="translate(93,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">prefix</text></g></a><a href="/2026/talks/rau" data-start="2026-12-13T15:20:00+0000" data-end="2026-12-13T15:40:00+0000" title="Emacs as a Window Manager and concurrency" data-slug="rau"><title>Sun 10:20-10:40 Emacs as a Window Manager and concurrency</title><rect x="109" y="75" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(134,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">rau</text></g></a><a href="/2026/talks/babel" data-start="2026-12-13T16:00:00+0000" data-end="2026-12-13T16:10:00+0000" title="Org Babel everywhere" data-slug="babel"><title>Sun 11:00-11:10 Org Babel everywhere</title><rect stroke-width="3" x="164" y="75" opacity="0.8" width="13" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(175,128)"><text font-weight="bold" fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">babel</text></g></a><a href="/2026/talks/el-gpu" data-start="2026-12-13T16:30:00+0000" data-end="2026-12-13T16:50:00+0000" title="El-gpu and pix-el: GNU Emacs 2D and 3D game programming" data-slug="el-gpu"><title>Sun 11:30-11:50 El-gpu and pix-el: GNU Emacs 2D and 3D game programming</title><rect x="205" y="75" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(230,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">el-gpu</text></g></a><a href="/2026/talks/llms" data-start="2026-12-13T18:00:00+0000" data-end="2026-12-13T19:00:00+0000" title="[Panel] Emacs, LLMs, and Free Software" data-slug="llms"><title>Sun 1:00- 2:00 [Panel] Emacs, LLMs, and Free Software</title><rect x="329" y="75" opacity="0.5" width="82" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(409,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">llms</text></g></a><g transform="translate(0,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T14:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">9 AM EST</text></g><g transform="translate(82,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T15:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">10 AM EST</text></g><g transform="translate(164,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T16:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">11 AM EST</text></g><g transform="translate(247,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T17:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">12 PM EST</text></g><g transform="translate(329,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T18:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">1 PM EST</text></g><g transform="translate(411,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T19:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">2 PM EST</text></g><g transform="translate(494,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T20:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">3 PM EST</text></g><g transform="translate(576,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T21:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">4 PM EST</text></g><g transform="translate(658,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T22:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">5 PM EST</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 Sunday</title><rect width="700" height="150" x="0" y="0" fill="white"></rect><text data-start="2026-12-13T14:00:00+0000" class="day-label" font-size="10" fill="black" y="17" x="3">Sunday</text><a href="/2026/talks/sun-open" data-start="2026-12-13T14:00:00+0000" data-end="2026-12-13T14:10:00+0000" title="Sunday opening remarks" data-slug="sun-open"><title>Sun 9:00- 9:10 Sunday opening remarks</title><rect x="0" y="20" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(11,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sun-open</text></g></a><a href="/2026/talks/bone" data-start="2026-12-13T14:10:00+0000" data-end="2026-12-13T14:20:00+0000" title="BONE and gnaw.el: tracking what matters" data-slug="bone"><title>Sun 9:10- 9:20 BONE and gnaw.el: tracking what matters</title><rect x="13" y="20" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(24,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">bone</text></g></a><a href="/2026/talks/local" data-start="2026-12-13T14:40:00+0000" data-end="2026-12-13T14:55:00+0000" title="Local file history possibilities in Emacs" data-slug="local"><title>Sun 9:40- 9:55 Local file history possibilities in Emacs</title><rect x="54" y="20" opacity="0.5" width="20" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(72,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">local</text></g></a><a href="/2026/talks/hutch" data-start="2026-12-13T15:15:00+0000" data-end="2026-12-13T15:25:00+0000" title="hutch: code reviews for the mildly disenfranchised" data-slug="hutch"><title>Sun 10:15-10:25 hutch: code reviews for the mildly disenfranchised</title><rect x="102" y="20" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(113,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">hutch</text></g></a><a href="/2026/talks/team" data-start="2026-12-13T15:35:00+0000" data-end="2026-12-13T15:55:00+0000" title="Beyond the Chatbot: Team-Oriented AI in Emacs" data-slug="team"><title>Sun 10:35-10:55 Beyond the Chatbot: Team-Oriented AI in Emacs</title><rect x="130" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(155,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">team</text></g></a><a href="/2026/talks/compile" data-start="2026-12-13T16:15:00+0000" data-end="2026-12-13T16:35:00+0000" title="Beyond shell history: Saving compilation output in Emacs" data-slug="compile"><title>Sun 11:15-11:35 Beyond shell history: Saving compilation output in Emacs</title><rect x="185" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(210,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">compile</text></g></a><a href="/2026/talks/dnd" data-start="2026-12-13T18:00:00+0000" data-end="2026-12-13T18:20:00+0000" title="DnD and Org Roam: Becoming a Better DM with Emacs" data-slug="dnd"><title>Sun 1:00- 1:20 DnD and Org Roam: Becoming a Better DM with Emacs</title><rect x="329" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(354,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">dnd</text></g></a><a href="/2026/talks/bible" data-start="2026-12-13T18:30:00+0000" data-end="2026-12-13T18:50:00+0000" title="bible-gateway: A Two-Edged Sword in Emacs" data-slug="bible"><title>Sun 1:30- 1:50 bible-gateway: A Two-Edged Sword in Emacs</title><rect x="370" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(395,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">bible</text></g></a><a href="/2026/talks/ffs" data-start="2026-12-13T19:10:00+0000" data-end="2026-12-13T19:30:00+0000" title="Plain text presentations in GNU Emacs with ffs" data-slug="ffs"><title>Sun 2:10- 2:30 Plain text presentations in GNU Emacs with ffs</title><rect x="425" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(450,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">ffs</text></g></a><a href="/2026/talks/align" data-start="2026-12-13T19:50:00+0000" data-end="2026-12-13T20:10:00+0000" title="Column-aligning text in Emacs" data-slug="align"><title>Sun 2:50- 3:10 Column-aligning text in Emacs</title><rect x="480" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(505,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">align</text></g></a><a href="/2026/talks/anju" data-start="2026-12-13T20:30:00+0000" data-end="2026-12-13T20:50:00+0000" title="Revisiting Emacs Mouse Interactions with Anju" data-slug="anju"><title>Sun 3:30- 3:50 Revisiting Emacs Mouse Interactions with Anju</title><rect x="535" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(560,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">anju</text></g></a><a href="/2026/talks/android" data-start="2026-12-13T21:00:00+0000" data-end="2026-12-13T21:10:00+0000" title="Emacs on Android - Emacs for the next 40 years" data-slug="android"><title>Sun 4:00- 4:10 Emacs on Android - Emacs for the next 40 years</title><rect x="576" y="20" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(587,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">android</text></g></a><a href="/2026/talks/sun-close" data-start="2026-12-13T21:30:00+0000" data-end="2026-12-13T21:40:00+0000" title="Sunday closing remarks" data-slug="sun-close"><title>Sun 4:30- 4:40 Sunday closing remarks</title><rect x="617" y="20" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(628,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sun-close</text></g></a><a href="/2026/talks/prefix" data-start="2026-12-13T15:00:00+0000" data-end="2026-12-13T15:10:00+0000" title="prefix-tab-groups" data-slug="prefix"><title>Sun 10:00-10:10 prefix-tab-groups</title><rect x="82" y="75" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="5,5,5" fill="skyblue"></rect><g transform="translate(93,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">prefix</text></g></a><a href="/2026/talks/rau" data-start="2026-12-13T15:20:00+0000" data-end="2026-12-13T15:40:00+0000" title="Emacs as a Window Manager and concurrency" data-slug="rau"><title>Sun 10:20-10:40 Emacs as a Window Manager and concurrency</title><rect x="109" y="75" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(134,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">rau</text></g></a><a href="/2026/talks/babel" data-start="2026-12-13T16:00:00+0000" data-end="2026-12-13T16:10:00+0000" title="Org Babel everywhere" data-slug="babel"><title>Sun 11:00-11:10 Org Babel everywhere</title><rect stroke-width="3" x="164" y="75" opacity="0.8" width="13" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(175,128)"><text font-weight="bold" fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">babel</text></g></a><a href="/2026/talks/el-gpu" data-start="2026-12-13T16:30:00+0000" data-end="2026-12-13T16:50:00+0000" title="El-gpu and pix-el: GNU Emacs 2D and 3D game programming" data-slug="el-gpu"><title>Sun 11:30-11:50 El-gpu and pix-el: GNU Emacs 2D and 3D game programming</title><rect x="205" y="75" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(230,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">el-gpu</text></g></a><a href="/2026/talks/llms" data-start="2026-12-13T18:00:00+0000" data-end="2026-12-13T19:00:00+0000" title="[Panel] Emacs, LLMs, and Free Software" data-slug="llms"><title>Sun 1:00- 2:00 [Panel] Emacs, LLMs, and Free Software</title><rect x="329" y="75" opacity="0.5" width="82" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(409,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">llms</text></g></a><a href="/2026/talks/ghostel" data-start="2026-12-13T19:20:00+0000" data-end="2026-12-13T19:40:00+0000" title="Ghost in the Shell: a libghostty powered terminal for Emacs" data-slug="ghostel"><title>Sun 2:20- 2:40 Ghost in the Shell: a libghostty powered terminal for Emacs</title><rect x="439" y="75" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(464,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">ghostel</text></g></a><a href="/2026/talks/svg" data-start="2026-12-13T20:00:00+0000" data-end="2026-12-13T20:20:00+0000" title="A (sort of) REPL for learning SVG" data-slug="svg"><title>Sun 3:00- 3:20 A (sort of) REPL for learning SVG</title><rect x="494" y="75" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(519,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">svg</text></g></a><g transform="translate(0,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T14:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">9 AM EST</text></g><g transform="translate(82,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T15:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">10 AM EST</text></g><g transform="translate(164,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T16:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">11 AM EST</text></g><g transform="translate(247,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T17:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">12 PM EST</text></g><g transform="translate(329,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T18:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">1 PM EST</text></g><g transform="translate(411,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T19:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">2 PM EST</text></g><g transform="translate(494,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T20:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">3 PM EST</text></g><g transform="translate(576,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T21:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">4 PM EST</text></g><g transform="translate(658,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T22:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">5 PM EST</text></g></svg> </div> [[!toc ]] diff --git a/2026/info/bible-before.md b/2026/info/bible-before.md index 2aab8f96..2d8f5191 100644 --- a/2026/info/bible-before.md +++ b/2026/info/bible-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 Sun 2026-12-13. 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="bible"> -<svg width="700" height="150" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><title>Schedule for Sunday</title><rect width="700" height="150" x="0" y="0" fill="white"></rect><text data-start="2026-12-13T14:00:00+0000" class="day-label" font-size="10" fill="black" y="17" x="3">Sunday</text><a href="/2026/talks/sun-open" data-start="2026-12-13T14:00:00+0000" data-end="2026-12-13T14:10:00+0000" title="Sunday opening remarks" data-slug="sun-open"><title>Sun 9:00- 9:10 Sunday opening remarks</title><rect x="0" y="20" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(11,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sun-open</text></g></a><a href="/2026/talks/bone" data-start="2026-12-13T14:10:00+0000" data-end="2026-12-13T14:20:00+0000" title="BONE and gnaw.el: tracking what matters" data-slug="bone"><title>Sun 9:10- 9:20 BONE and gnaw.el: tracking what matters</title><rect x="13" y="20" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(24,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">bone</text></g></a><a href="/2026/talks/local" data-start="2026-12-13T14:40:00+0000" data-end="2026-12-13T14:55:00+0000" title="Local file history possibilities in Emacs" data-slug="local"><title>Sun 9:40- 9:55 Local file history possibilities in Emacs</title><rect x="54" y="20" opacity="0.5" width="20" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(72,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">local</text></g></a><a href="/2026/talks/hutch" data-start="2026-12-13T15:15:00+0000" data-end="2026-12-13T15:25:00+0000" title="hutch: code reviews for the mildly disenfranchised" data-slug="hutch"><title>Sun 10:15-10:25 hutch: code reviews for the mildly disenfranchised</title><rect x="102" y="20" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(113,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">hutch</text></g></a><a href="/2026/talks/team" data-start="2026-12-13T15:35:00+0000" data-end="2026-12-13T15:55:00+0000" title="Beyond the Chatbot: Team-Oriented AI in Emacs" data-slug="team"><title>Sun 10:35-10:55 Beyond the Chatbot: Team-Oriented AI in Emacs</title><rect x="130" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(155,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">team</text></g></a><a href="/2026/talks/compile" data-start="2026-12-13T16:15:00+0000" data-end="2026-12-13T16:35:00+0000" title="Beyond shell history: Saving compilation output in Emacs" data-slug="compile"><title>Sun 11:15-11:35 Beyond shell history: Saving compilation output in Emacs</title><rect x="185" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(210,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">compile</text></g></a><a href="/2026/talks/dnd" data-start="2026-12-13T18:00:00+0000" data-end="2026-12-13T18:20:00+0000" title="DnD and Org Roam: Becoming a Better DM with Emacs" data-slug="dnd"><title>Sun 1:00- 1:20 DnD and Org Roam: Becoming a Better DM with Emacs</title><rect x="329" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(354,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">dnd</text></g></a><a href="/2026/talks/bible" data-start="2026-12-13T18:30:00+0000" data-end="2026-12-13T18:50:00+0000" title="bible-gateway: A Two-Edged Sword in Emacs" data-slug="bible"><title>Sun 1:30- 1:50 bible-gateway: A Two-Edged Sword in Emacs</title><rect stroke-width="3" x="370" y="20" opacity="0.8" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(395,73)"><text font-weight="bold" fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">bible</text></g></a><a href="/2026/talks/svg" data-start="2026-12-13T19:10:00+0000" data-end="2026-12-13T19:30:00+0000" title="A (sort of) REPL for learning SVG" data-slug="svg"><title>Sun 2:10- 2:30 A (sort of) REPL for learning SVG</title><rect x="425" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(450,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">svg</text></g></a><a href="/2026/talks/align" data-start="2026-12-13T19:50:00+0000" data-end="2026-12-13T20:10:00+0000" title="Column-aligning text in Emacs" data-slug="align"><title>Sun 2:50- 3:10 Column-aligning text in Emacs</title><rect x="480" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(505,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">align</text></g></a><a href="/2026/talks/anju" data-start="2026-12-13T20:30:00+0000" data-end="2026-12-13T20:50:00+0000" title="Revisiting Emacs Mouse Interactions with Anju" data-slug="anju"><title>Sun 3:30- 3:50 Revisiting Emacs Mouse Interactions with Anju</title><rect x="535" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(560,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">anju</text></g></a><a href="/2026/talks/ghostel" data-start="2026-12-13T21:00:00+0000" data-end="2026-12-13T21:20:00+0000" title="Ghost in the Shell: a libghostty powered terminal for Emacs" data-slug="ghostel"><title>Sun 4:00- 4:20 Ghost in the Shell: a libghostty powered terminal for Emacs</title><rect x="576" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(601,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">ghostel</text></g></a><a href="/2026/talks/sun-close" data-start="2026-12-13T21:40:00+0000" data-end="2026-12-13T21:50:00+0000" title="Sunday closing remarks" data-slug="sun-close"><title>Sun 4:40- 4:50 Sunday closing remarks</title><rect x="631" y="20" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(642,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sun-close</text></g></a><a href="/2026/talks/prefix" data-start="2026-12-13T15:00:00+0000" data-end="2026-12-13T15:10:00+0000" title="prefix-tab-groups" data-slug="prefix"><title>Sun 10:00-10:10 prefix-tab-groups</title><rect x="82" y="75" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="5,5,5" fill="skyblue"></rect><g transform="translate(93,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">prefix</text></g></a><a href="/2026/talks/rau" data-start="2026-12-13T15:20:00+0000" data-end="2026-12-13T15:40:00+0000" title="Emacs as a Window Manager and concurrency" data-slug="rau"><title>Sun 10:20-10:40 Emacs as a Window Manager and concurrency</title><rect x="109" y="75" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(134,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">rau</text></g></a><a href="/2026/talks/babel" data-start="2026-12-13T16:00:00+0000" data-end="2026-12-13T16:10:00+0000" title="Org Babel everywhere" data-slug="babel"><title>Sun 11:00-11:10 Org Babel everywhere</title><rect x="164" y="75" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(175,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">babel</text></g></a><a href="/2026/talks/el-gpu" data-start="2026-12-13T16:30:00+0000" data-end="2026-12-13T16:50:00+0000" title="El-gpu and pix-el: GNU Emacs 2D and 3D game programming" data-slug="el-gpu"><title>Sun 11:30-11:50 El-gpu and pix-el: GNU Emacs 2D and 3D game programming</title><rect x="205" y="75" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(230,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">el-gpu</text></g></a><a href="/2026/talks/llms" data-start="2026-12-13T18:00:00+0000" data-end="2026-12-13T19:00:00+0000" title="[Panel] Emacs, LLMs, and Free Software" data-slug="llms"><title>Sun 1:00- 2:00 [Panel] Emacs, LLMs, and Free Software</title><rect x="329" y="75" opacity="0.5" width="82" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(409,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">llms</text></g></a><g transform="translate(0,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T14:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">9 AM EST</text></g><g transform="translate(82,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T15:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">10 AM EST</text></g><g transform="translate(164,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T16:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">11 AM EST</text></g><g transform="translate(247,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T17:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">12 PM EST</text></g><g transform="translate(329,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T18:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">1 PM EST</text></g><g transform="translate(411,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T19:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">2 PM EST</text></g><g transform="translate(494,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T20:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">3 PM EST</text></g><g transform="translate(576,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T21:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">4 PM EST</text></g><g transform="translate(658,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T22:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">5 PM EST</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 Sunday</title><rect width="700" height="150" x="0" y="0" fill="white"></rect><text data-start="2026-12-13T14:00:00+0000" class="day-label" font-size="10" fill="black" y="17" x="3">Sunday</text><a href="/2026/talks/sun-open" data-start="2026-12-13T14:00:00+0000" data-end="2026-12-13T14:10:00+0000" title="Sunday opening remarks" data-slug="sun-open"><title>Sun 9:00- 9:10 Sunday opening remarks</title><rect x="0" y="20" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(11,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sun-open</text></g></a><a href="/2026/talks/bone" data-start="2026-12-13T14:10:00+0000" data-end="2026-12-13T14:20:00+0000" title="BONE and gnaw.el: tracking what matters" data-slug="bone"><title>Sun 9:10- 9:20 BONE and gnaw.el: tracking what matters</title><rect x="13" y="20" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(24,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">bone</text></g></a><a href="/2026/talks/local" data-start="2026-12-13T14:40:00+0000" data-end="2026-12-13T14:55:00+0000" title="Local file history possibilities in Emacs" data-slug="local"><title>Sun 9:40- 9:55 Local file history possibilities in Emacs</title><rect x="54" y="20" opacity="0.5" width="20" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(72,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">local</text></g></a><a href="/2026/talks/hutch" data-start="2026-12-13T15:15:00+0000" data-end="2026-12-13T15:25:00+0000" title="hutch: code reviews for the mildly disenfranchised" data-slug="hutch"><title>Sun 10:15-10:25 hutch: code reviews for the mildly disenfranchised</title><rect x="102" y="20" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(113,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">hutch</text></g></a><a href="/2026/talks/team" data-start="2026-12-13T15:35:00+0000" data-end="2026-12-13T15:55:00+0000" title="Beyond the Chatbot: Team-Oriented AI in Emacs" data-slug="team"><title>Sun 10:35-10:55 Beyond the Chatbot: Team-Oriented AI in Emacs</title><rect x="130" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(155,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">team</text></g></a><a href="/2026/talks/compile" data-start="2026-12-13T16:15:00+0000" data-end="2026-12-13T16:35:00+0000" title="Beyond shell history: Saving compilation output in Emacs" data-slug="compile"><title>Sun 11:15-11:35 Beyond shell history: Saving compilation output in Emacs</title><rect x="185" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(210,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">compile</text></g></a><a href="/2026/talks/dnd" data-start="2026-12-13T18:00:00+0000" data-end="2026-12-13T18:20:00+0000" title="DnD and Org Roam: Becoming a Better DM with Emacs" data-slug="dnd"><title>Sun 1:00- 1:20 DnD and Org Roam: Becoming a Better DM with Emacs</title><rect x="329" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(354,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">dnd</text></g></a><a href="/2026/talks/bible" data-start="2026-12-13T18:30:00+0000" data-end="2026-12-13T18:50:00+0000" title="bible-gateway: A Two-Edged Sword in Emacs" data-slug="bible"><title>Sun 1:30- 1:50 bible-gateway: A Two-Edged Sword in Emacs</title><rect stroke-width="3" x="370" y="20" opacity="0.8" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(395,73)"><text font-weight="bold" fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">bible</text></g></a><a href="/2026/talks/ffs" data-start="2026-12-13T19:10:00+0000" data-end="2026-12-13T19:30:00+0000" title="Plain text presentations in GNU Emacs with ffs" data-slug="ffs"><title>Sun 2:10- 2:30 Plain text presentations in GNU Emacs with ffs</title><rect x="425" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(450,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">ffs</text></g></a><a href="/2026/talks/align" data-start="2026-12-13T19:50:00+0000" data-end="2026-12-13T20:10:00+0000" title="Column-aligning text in Emacs" data-slug="align"><title>Sun 2:50- 3:10 Column-aligning text in Emacs</title><rect x="480" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(505,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">align</text></g></a><a href="/2026/talks/anju" data-start="2026-12-13T20:30:00+0000" data-end="2026-12-13T20:50:00+0000" title="Revisiting Emacs Mouse Interactions with Anju" data-slug="anju"><title>Sun 3:30- 3:50 Revisiting Emacs Mouse Interactions with Anju</title><rect x="535" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(560,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">anju</text></g></a><a href="/2026/talks/android" data-start="2026-12-13T21:00:00+0000" data-end="2026-12-13T21:10:00+0000" title="Emacs on Android - Emacs for the next 40 years" data-slug="android"><title>Sun 4:00- 4:10 Emacs on Android - Emacs for the next 40 years</title><rect x="576" y="20" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(587,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">android</text></g></a><a href="/2026/talks/sun-close" data-start="2026-12-13T21:30:00+0000" data-end="2026-12-13T21:40:00+0000" title="Sunday closing remarks" data-slug="sun-close"><title>Sun 4:30- 4:40 Sunday closing remarks</title><rect x="617" y="20" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(628,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sun-close</text></g></a><a href="/2026/talks/prefix" data-start="2026-12-13T15:00:00+0000" data-end="2026-12-13T15:10:00+0000" title="prefix-tab-groups" data-slug="prefix"><title>Sun 10:00-10:10 prefix-tab-groups</title><rect x="82" y="75" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="5,5,5" fill="skyblue"></rect><g transform="translate(93,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">prefix</text></g></a><a href="/2026/talks/rau" data-start="2026-12-13T15:20:00+0000" data-end="2026-12-13T15:40:00+0000" title="Emacs as a Window Manager and concurrency" data-slug="rau"><title>Sun 10:20-10:40 Emacs as a Window Manager and concurrency</title><rect x="109" y="75" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(134,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">rau</text></g></a><a href="/2026/talks/babel" data-start="2026-12-13T16:00:00+0000" data-end="2026-12-13T16:10:00+0000" title="Org Babel everywhere" data-slug="babel"><title>Sun 11:00-11:10 Org Babel everywhere</title><rect x="164" y="75" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(175,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">babel</text></g></a><a href="/2026/talks/el-gpu" data-start="2026-12-13T16:30:00+0000" data-end="2026-12-13T16:50:00+0000" title="El-gpu and pix-el: GNU Emacs 2D and 3D game programming" data-slug="el-gpu"><title>Sun 11:30-11:50 El-gpu and pix-el: GNU Emacs 2D and 3D game programming</title><rect x="205" y="75" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(230,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">el-gpu</text></g></a><a href="/2026/talks/llms" data-start="2026-12-13T18:00:00+0000" data-end="2026-12-13T19:00:00+0000" title="[Panel] Emacs, LLMs, and Free Software" data-slug="llms"><title>Sun 1:00- 2:00 [Panel] Emacs, LLMs, and Free Software</title><rect x="329" y="75" opacity="0.5" width="82" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(409,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">llms</text></g></a><a href="/2026/talks/ghostel" data-start="2026-12-13T19:20:00+0000" data-end="2026-12-13T19:40:00+0000" title="Ghost in the Shell: a libghostty powered terminal for Emacs" data-slug="ghostel"><title>Sun 2:20- 2:40 Ghost in the Shell: a libghostty powered terminal for Emacs</title><rect x="439" y="75" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(464,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">ghostel</text></g></a><a href="/2026/talks/svg" data-start="2026-12-13T20:00:00+0000" data-end="2026-12-13T20:20:00+0000" title="A (sort of) REPL for learning SVG" data-slug="svg"><title>Sun 3:00- 3:20 A (sort of) REPL for learning SVG</title><rect x="494" y="75" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(519,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">svg</text></g></a><g transform="translate(0,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T14:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">9 AM EST</text></g><g transform="translate(82,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T15:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">10 AM EST</text></g><g transform="translate(164,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T16:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">11 AM EST</text></g><g transform="translate(247,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T17:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">12 PM EST</text></g><g transform="translate(329,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T18:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">1 PM EST</text></g><g transform="translate(411,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T19:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">2 PM EST</text></g><g transform="translate(494,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T20:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">3 PM EST</text></g><g transform="translate(576,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T21:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">4 PM EST</text></g><g transform="translate(658,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T22:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">5 PM EST</text></g></svg> </div> [[!toc ]] diff --git a/2026/info/bible-nav.md b/2026/info/bible-nav.md index 99f352f0..af038c74 100644 --- a/2026/info/bible-nav.md +++ b/2026/info/bible-nav.md @@ -2,6 +2,6 @@ <div class="talk-nav"> Back to the [[talks]] Previous by time: <a href="/2026/talks/llms">[Panel] Emacs, LLMs, and Free Software</a> -Next by time: <a href="/2026/talks/svg">A (sort of) REPL for learning SVG</a> +Next by time: <a href="/2026/talks/ffs">Plain text presentations in GNU Emacs with ffs</a> Track: <span class="sched-track General">General</span> - <strong><a href="https://emacsconf.org/2026/watch/gen">Watch</a></strong> </div> diff --git a/2026/info/bone-before.md b/2026/info/bone-before.md index 27c33b8d..31395dcc 100644 --- a/2026/info/bone-before.md +++ b/2026/info/bone-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 Sun 2026-12-13. 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="bone"> -<svg width="700" height="150" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><title>Schedule for Sunday</title><rect width="700" height="150" x="0" y="0" fill="white"></rect><text data-start="2026-12-13T14:00:00+0000" class="day-label" font-size="10" fill="black" y="17" x="3">Sunday</text><a href="/2026/talks/sun-open" data-start="2026-12-13T14:00:00+0000" data-end="2026-12-13T14:10:00+0000" title="Sunday opening remarks" data-slug="sun-open"><title>Sun 9:00- 9:10 Sunday opening remarks</title><rect x="0" y="20" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(11,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sun-open</text></g></a><a href="/2026/talks/bone" data-start="2026-12-13T14:10:00+0000" data-end="2026-12-13T14:20:00+0000" title="BONE and gnaw.el: tracking what matters" data-slug="bone"><title>Sun 9:10- 9:20 BONE and gnaw.el: tracking what matters</title><rect stroke-width="3" x="13" y="20" opacity="0.8" width="13" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(24,73)"><text font-weight="bold" fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">bone</text></g></a><a href="/2026/talks/local" data-start="2026-12-13T14:40:00+0000" data-end="2026-12-13T14:55:00+0000" title="Local file history possibilities in Emacs" data-slug="local"><title>Sun 9:40- 9:55 Local file history possibilities in Emacs</title><rect x="54" y="20" opacity="0.5" width="20" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(72,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">local</text></g></a><a href="/2026/talks/hutch" data-start="2026-12-13T15:15:00+0000" data-end="2026-12-13T15:25:00+0000" title="hutch: code reviews for the mildly disenfranchised" data-slug="hutch"><title>Sun 10:15-10:25 hutch: code reviews for the mildly disenfranchised</title><rect x="102" y="20" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(113,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">hutch</text></g></a><a href="/2026/talks/team" data-start="2026-12-13T15:35:00+0000" data-end="2026-12-13T15:55:00+0000" title="Beyond the Chatbot: Team-Oriented AI in Emacs" data-slug="team"><title>Sun 10:35-10:55 Beyond the Chatbot: Team-Oriented AI in Emacs</title><rect x="130" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(155,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">team</text></g></a><a href="/2026/talks/compile" data-start="2026-12-13T16:15:00+0000" data-end="2026-12-13T16:35:00+0000" title="Beyond shell history: Saving compilation output in Emacs" data-slug="compile"><title>Sun 11:15-11:35 Beyond shell history: Saving compilation output in Emacs</title><rect x="185" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(210,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">compile</text></g></a><a href="/2026/talks/dnd" data-start="2026-12-13T18:00:00+0000" data-end="2026-12-13T18:20:00+0000" title="DnD and Org Roam: Becoming a Better DM with Emacs" data-slug="dnd"><title>Sun 1:00- 1:20 DnD and Org Roam: Becoming a Better DM with Emacs</title><rect x="329" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(354,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">dnd</text></g></a><a href="/2026/talks/bible" data-start="2026-12-13T18:30:00+0000" data-end="2026-12-13T18:50:00+0000" title="bible-gateway: A Two-Edged Sword in Emacs" data-slug="bible"><title>Sun 1:30- 1:50 bible-gateway: A Two-Edged Sword in Emacs</title><rect x="370" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(395,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">bible</text></g></a><a href="/2026/talks/svg" data-start="2026-12-13T19:10:00+0000" data-end="2026-12-13T19:30:00+0000" title="A (sort of) REPL for learning SVG" data-slug="svg"><title>Sun 2:10- 2:30 A (sort of) REPL for learning SVG</title><rect x="425" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(450,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">svg</text></g></a><a href="/2026/talks/align" data-start="2026-12-13T19:50:00+0000" data-end="2026-12-13T20:10:00+0000" title="Column-aligning text in Emacs" data-slug="align"><title>Sun 2:50- 3:10 Column-aligning text in Emacs</title><rect x="480" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(505,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">align</text></g></a><a href="/2026/talks/anju" data-start="2026-12-13T20:30:00+0000" data-end="2026-12-13T20:50:00+0000" title="Revisiting Emacs Mouse Interactions with Anju" data-slug="anju"><title>Sun 3:30- 3:50 Revisiting Emacs Mouse Interactions with Anju</title><rect x="535" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(560,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">anju</text></g></a><a href="/2026/talks/ghostel" data-start="2026-12-13T21:00:00+0000" data-end="2026-12-13T21:20:00+0000" title="Ghost in the Shell: a libghostty powered terminal for Emacs" data-slug="ghostel"><title>Sun 4:00- 4:20 Ghost in the Shell: a libghostty powered terminal for Emacs</title><rect x="576" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(601,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">ghostel</text></g></a><a href="/2026/talks/sun-close" data-start="2026-12-13T21:40:00+0000" data-end="2026-12-13T21:50:00+0000" title="Sunday closing remarks" data-slug="sun-close"><title>Sun 4:40- 4:50 Sunday closing remarks</title><rect x="631" y="20" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(642,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sun-close</text></g></a><a href="/2026/talks/prefix" data-start="2026-12-13T15:00:00+0000" data-end="2026-12-13T15:10:00+0000" title="prefix-tab-groups" data-slug="prefix"><title>Sun 10:00-10:10 prefix-tab-groups</title><rect x="82" y="75" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="5,5,5" fill="skyblue"></rect><g transform="translate(93,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">prefix</text></g></a><a href="/2026/talks/rau" data-start="2026-12-13T15:20:00+0000" data-end="2026-12-13T15:40:00+0000" title="Emacs as a Window Manager and concurrency" data-slug="rau"><title>Sun 10:20-10:40 Emacs as a Window Manager and concurrency</title><rect x="109" y="75" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(134,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">rau</text></g></a><a href="/2026/talks/babel" data-start="2026-12-13T16:00:00+0000" data-end="2026-12-13T16:10:00+0000" title="Org Babel everywhere" data-slug="babel"><title>Sun 11:00-11:10 Org Babel everywhere</title><rect x="164" y="75" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(175,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">babel</text></g></a><a href="/2026/talks/el-gpu" data-start="2026-12-13T16:30:00+0000" data-end="2026-12-13T16:50:00+0000" title="El-gpu and pix-el: GNU Emacs 2D and 3D game programming" data-slug="el-gpu"><title>Sun 11:30-11:50 El-gpu and pix-el: GNU Emacs 2D and 3D game programming</title><rect x="205" y="75" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(230,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">el-gpu</text></g></a><a href="/2026/talks/llms" data-start="2026-12-13T18:00:00+0000" data-end="2026-12-13T19:00:00+0000" title="[Panel] Emacs, LLMs, and Free Software" data-slug="llms"><title>Sun 1:00- 2:00 [Panel] Emacs, LLMs, and Free Software</title><rect x="329" y="75" opacity="0.5" width="82" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(409,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">llms</text></g></a><g transform="translate(0,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T14:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">9 AM EST</text></g><g transform="translate(82,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T15:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">10 AM EST</text></g><g transform="translate(164,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T16:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">11 AM EST</text></g><g transform="translate(247,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T17:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">12 PM EST</text></g><g transform="translate(329,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T18:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">1 PM EST</text></g><g transform="translate(411,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T19:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">2 PM EST</text></g><g transform="translate(494,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T20:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">3 PM EST</text></g><g transform="translate(576,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T21:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">4 PM EST</text></g><g transform="translate(658,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T22:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">5 PM EST</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 Sunday</title><rect width="700" height="150" x="0" y="0" fill="white"></rect><text data-start="2026-12-13T14:00:00+0000" class="day-label" font-size="10" fill="black" y="17" x="3">Sunday</text><a href="/2026/talks/sun-open" data-start="2026-12-13T14:00:00+0000" data-end="2026-12-13T14:10:00+0000" title="Sunday opening remarks" data-slug="sun-open"><title>Sun 9:00- 9:10 Sunday opening remarks</title><rect x="0" y="20" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(11,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sun-open</text></g></a><a href="/2026/talks/bone" data-start="2026-12-13T14:10:00+0000" data-end="2026-12-13T14:20:00+0000" title="BONE and gnaw.el: tracking what matters" data-slug="bone"><title>Sun 9:10- 9:20 BONE and gnaw.el: tracking what matters</title><rect stroke-width="3" x="13" y="20" opacity="0.8" width="13" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(24,73)"><text font-weight="bold" fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">bone</text></g></a><a href="/2026/talks/local" data-start="2026-12-13T14:40:00+0000" data-end="2026-12-13T14:55:00+0000" title="Local file history possibilities in Emacs" data-slug="local"><title>Sun 9:40- 9:55 Local file history possibilities in Emacs</title><rect x="54" y="20" opacity="0.5" width="20" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(72,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">local</text></g></a><a href="/2026/talks/hutch" data-start="2026-12-13T15:15:00+0000" data-end="2026-12-13T15:25:00+0000" title="hutch: code reviews for the mildly disenfranchised" data-slug="hutch"><title>Sun 10:15-10:25 hutch: code reviews for the mildly disenfranchised</title><rect x="102" y="20" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(113,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">hutch</text></g></a><a href="/2026/talks/team" data-start="2026-12-13T15:35:00+0000" data-end="2026-12-13T15:55:00+0000" title="Beyond the Chatbot: Team-Oriented AI in Emacs" data-slug="team"><title>Sun 10:35-10:55 Beyond the Chatbot: Team-Oriented AI in Emacs</title><rect x="130" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(155,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">team</text></g></a><a href="/2026/talks/compile" data-start="2026-12-13T16:15:00+0000" data-end="2026-12-13T16:35:00+0000" title="Beyond shell history: Saving compilation output in Emacs" data-slug="compile"><title>Sun 11:15-11:35 Beyond shell history: Saving compilation output in Emacs</title><rect x="185" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(210,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">compile</text></g></a><a href="/2026/talks/dnd" data-start="2026-12-13T18:00:00+0000" data-end="2026-12-13T18:20:00+0000" title="DnD and Org Roam: Becoming a Better DM with Emacs" data-slug="dnd"><title>Sun 1:00- 1:20 DnD and Org Roam: Becoming a Better DM with Emacs</title><rect x="329" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(354,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">dnd</text></g></a><a href="/2026/talks/bible" data-start="2026-12-13T18:30:00+0000" data-end="2026-12-13T18:50:00+0000" title="bible-gateway: A Two-Edged Sword in Emacs" data-slug="bible"><title>Sun 1:30- 1:50 bible-gateway: A Two-Edged Sword in Emacs</title><rect x="370" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(395,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">bible</text></g></a><a href="/2026/talks/ffs" data-start="2026-12-13T19:10:00+0000" data-end="2026-12-13T19:30:00+0000" title="Plain text presentations in GNU Emacs with ffs" data-slug="ffs"><title>Sun 2:10- 2:30 Plain text presentations in GNU Emacs with ffs</title><rect x="425" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(450,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">ffs</text></g></a><a href="/2026/talks/align" data-start="2026-12-13T19:50:00+0000" data-end="2026-12-13T20:10:00+0000" title="Column-aligning text in Emacs" data-slug="align"><title>Sun 2:50- 3:10 Column-aligning text in Emacs</title><rect x="480" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(505,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">align</text></g></a><a href="/2026/talks/anju" data-start="2026-12-13T20:30:00+0000" data-end="2026-12-13T20:50:00+0000" title="Revisiting Emacs Mouse Interactions with Anju" data-slug="anju"><title>Sun 3:30- 3:50 Revisiting Emacs Mouse Interactions with Anju</title><rect x="535" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(560,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">anju</text></g></a><a href="/2026/talks/android" data-start="2026-12-13T21:00:00+0000" data-end="2026-12-13T21:10:00+0000" title="Emacs on Android - Emacs for the next 40 years" data-slug="android"><title>Sun 4:00- 4:10 Emacs on Android - Emacs for the next 40 years</title><rect x="576" y="20" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(587,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">android</text></g></a><a href="/2026/talks/sun-close" data-start="2026-12-13T21:30:00+0000" data-end="2026-12-13T21:40:00+0000" title="Sunday closing remarks" data-slug="sun-close"><title>Sun 4:30- 4:40 Sunday closing remarks</title><rect x="617" y="20" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(628,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sun-close</text></g></a><a href="/2026/talks/prefix" data-start="2026-12-13T15:00:00+0000" data-end="2026-12-13T15:10:00+0000" title="prefix-tab-groups" data-slug="prefix"><title>Sun 10:00-10:10 prefix-tab-groups</title><rect x="82" y="75" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="5,5,5" fill="skyblue"></rect><g transform="translate(93,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">prefix</text></g></a><a href="/2026/talks/rau" data-start="2026-12-13T15:20:00+0000" data-end="2026-12-13T15:40:00+0000" title="Emacs as a Window Manager and concurrency" data-slug="rau"><title>Sun 10:20-10:40 Emacs as a Window Manager and concurrency</title><rect x="109" y="75" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(134,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">rau</text></g></a><a href="/2026/talks/babel" data-start="2026-12-13T16:00:00+0000" data-end="2026-12-13T16:10:00+0000" title="Org Babel everywhere" data-slug="babel"><title>Sun 11:00-11:10 Org Babel everywhere</title><rect x="164" y="75" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(175,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">babel</text></g></a><a href="/2026/talks/el-gpu" data-start="2026-12-13T16:30:00+0000" data-end="2026-12-13T16:50:00+0000" title="El-gpu and pix-el: GNU Emacs 2D and 3D game programming" data-slug="el-gpu"><title>Sun 11:30-11:50 El-gpu and pix-el: GNU Emacs 2D and 3D game programming</title><rect x="205" y="75" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(230,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">el-gpu</text></g></a><a href="/2026/talks/llms" data-start="2026-12-13T18:00:00+0000" data-end="2026-12-13T19:00:00+0000" title="[Panel] Emacs, LLMs, and Free Software" data-slug="llms"><title>Sun 1:00- 2:00 [Panel] Emacs, LLMs, and Free Software</title><rect x="329" y="75" opacity="0.5" width="82" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(409,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">llms</text></g></a><a href="/2026/talks/ghostel" data-start="2026-12-13T19:20:00+0000" data-end="2026-12-13T19:40:00+0000" title="Ghost in the Shell: a libghostty powered terminal for Emacs" data-slug="ghostel"><title>Sun 2:20- 2:40 Ghost in the Shell: a libghostty powered terminal for Emacs</title><rect x="439" y="75" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(464,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">ghostel</text></g></a><a href="/2026/talks/svg" data-start="2026-12-13T20:00:00+0000" data-end="2026-12-13T20:20:00+0000" title="A (sort of) REPL for learning SVG" data-slug="svg"><title>Sun 3:00- 3:20 A (sort of) REPL for learning SVG</title><rect x="494" y="75" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(519,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">svg</text></g></a><g transform="translate(0,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T14:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">9 AM EST</text></g><g transform="translate(82,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T15:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">10 AM EST</text></g><g transform="translate(164,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T16:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">11 AM EST</text></g><g transform="translate(247,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T17:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">12 PM EST</text></g><g transform="translate(329,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T18:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">1 PM EST</text></g><g transform="translate(411,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T19:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">2 PM EST</text></g><g transform="translate(494,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T20:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">3 PM EST</text></g><g transform="translate(576,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T21:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">4 PM EST</text></g><g transform="translate(658,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T22:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">5 PM EST</text></g></svg> </div> [[!toc ]] diff --git a/2026/info/cadet-before.md b/2026/info/cadet-before.md index 9ff28bf7..858a4578 100644 --- a/2026/info/cadet-before.md +++ b/2026/info/cadet-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 2026-12-12. 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="cadet"> -<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 data-start="2026-12-12T14:00:00+0000" class="day-label" font-size="10" fill="black" y="17" x="3">Saturday</text><a href="/2026/talks/sat-open" data-start="2026-12-12T14:00:00+0000" data-end="2026-12-12T14:10:00+0000" title="Saturday opening remarks" data-slug="sat-open"><title>Sat 9:00- 9:10 Saturday opening remarks</title><rect x="0" y="20" opacity="0.5" width="13" height="54" 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="/2026/talks/planning" data-start="2026-12-12T14:10:00+0000" data-end="2026-12-12T14:30:00+0000" title="The Emacs Planning Habits of a Questionably Effective Person: My 40-year journey of planning with Emacs, Org Mode, paper journals, etc." data-slug="planning"><title>Sat 9:10- 9:30 The Emacs Planning Habits of a Questionably Effective Person: My 40-year journey of planning with Emacs, Org Mode, paper journals, etc.</title><rect x="13" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(38,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">planning</text></g></a><a href="/2026/talks/listen" data-start="2026-12-12T14:50:00+0000" data-end="2026-12-12T15:10:00+0000" title="Controlling Emacs by voice using Emacslisten" data-slug="listen"><title>Sat 9:50-10:10 Controlling Emacs by voice using Emacslisten</title><rect x="68" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(93,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">listen</text></g></a><a href="/2026/talks/emacspeak" data-start="2026-12-12T15:30:00+0000" data-end="2026-12-12T16:00:00+0000" title="Multi-dimensional information processing with Emacs and Emacspeak: a blind man's perspective" data-slug="emacspeak"><title>Sat 10:30-11:00 Multi-dimensional information processing with Emacs and Emacspeak: a blind man's perspective</title><rect x="123" y="20" opacity="0.5" width="41" height="54" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(162,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">emacspeak</text></g></a><a href="/2026/talks/ltx-talk" data-start="2026-12-12T16:10:00+0000" data-end="2026-12-12T16:30:00+0000" title="ltx-talk: Accessible presentations with ox-beamer" data-slug="ltx-talk"><title>Sat 11:10-11:30 ltx-talk: Accessible presentations with ox-beamer</title><rect x="178" y="20" opacity="0.5" width="27" height="54" 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)">ltx-talk</text></g></a><a href="/2026/talks/plots" data-start="2026-12-12T18:00:00+0000" data-end="2026-12-12T18:20:00+0000" title="Plots with ROOTs: Resilient data visualization with Emacs, Org and gnuplot" data-slug="plots"><title>Sat 1:00- 1:20 Plots with ROOTs: Resilient data visualization with Emacs, Org and gnuplot</title><rect x="329" y="20" opacity="0.5" width="27" height="54" 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)">plots</text></g></a><a href="/2026/talks/ffs" data-start="2026-12-12T18:40:00+0000" data-end="2026-12-12T19:00:00+0000" title="Plain text presentations in GNU Emacs with ffs" data-slug="ffs"><title>Sat 1:40- 2:00 Plain text presentations in GNU Emacs with ffs</title><rect x="384" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(409,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">ffs</text></g></a><a href="/2026/talks/mobile" data-start="2026-12-12T19:20:00+0000" data-end="2026-12-12T19:30:00+0000" title="How I solved Org Mode's biggest mobile and collaboration problems" data-slug="mobile"><title>Sat 2:20- 2:30 How I solved Org Mode's biggest mobile and collaboration problems</title><rect x="439" y="20" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(450,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">mobile</text></g></a><a href="/2026/talks/hyperbole" data-start="2026-12-12T19:50:00+0000" data-end="2026-12-12T20:10:00+0000" title="Hyperbole, My Dear Watson" data-slug="hyperbole"><title>Sat 2:50- 3:10 Hyperbole, My Dear Watson</title><rect x="480" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(505,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">hyperbole</text></g></a><a href="/2026/talks/koutliner" data-start="2026-12-12T20:30:00+0000" data-end="2026-12-12T20:50:00+0000" title="Hyperbole Koutliner: The Best Autonumbered, Hyperlinking Outliner for Emacs" data-slug="koutliner"><title>Sat 3:30- 3:50 Hyperbole Koutliner: The Best Autonumbered, Hyperlinking Outliner for Emacs</title><rect x="535" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(560,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">koutliner</text></g></a><a href="/2026/talks/writing" data-start="2026-12-12T21:10:00+0000" data-end="2026-12-12T21:30:00+0000" title="Close the writing accountability gap with Emacs" data-slug="writing"><title>Sat 4:10- 4:30 Close the writing accountability gap with Emacs</title><rect x="590" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(615,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">writing</text></g></a><a href="/2026/talks/android" data-start="2026-12-12T21:50:00+0000" data-end="2026-12-12T22:00:00+0000" title="Emacs on Android - Emacs for the next 40 years" data-slug="android"><title>Sat 4:50- 5:00 Emacs on Android - Emacs for the next 40 years</title><rect x="645" y="20" opacity="0.5" width="13" height="54" 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)">android</text></g></a><a href="/2026/talks/sat-close" data-start="2026-12-12T22:20:00+0000" data-end="2026-12-12T22:30:00+0000" title="Saturday closing remarks / open session" data-slug="sat-close"><title>Sat 5:20- 5:30 Saturday closing remarks / open session</title><rect x="686" y="20" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(697,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sat-close</text></g></a><a href="/2026/talks/community" data-start="2026-12-12T15:30:00+0000" data-end="2026-12-12T16:30:00+0000" title="[Panel] Improving the Emacs Community: Onboarding, Participation, and Growth" data-slug="community"><title>Sat 10:30-11:30 [Panel] Improving the Emacs Community: Onboarding, Participation, and Growth</title><rect x="123" y="75" opacity="0.5" width="82" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(203,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">community</text></g></a><a href="/2026/talks/portable" data-start="2026-12-12T18:00:00+0000" data-end="2026-12-12T18:15:00+0000" title="Emacs as my portable user space across operating platforms" data-slug="portable"><title>Sat 1:00- 1:15 Emacs as my portable user space across operating platforms</title><rect x="329" y="75" opacity="0.5" width="20" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(347,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">portable</text></g></a><a href="/2026/talks/os" data-start="2026-12-12T18:35:00+0000" data-end="2026-12-12T18:55:00+0000" title="Emacs everywhere: A fun romp through esoteric operating systems" data-slug="os"><title>Sat 1:35- 1:55 Emacs everywhere: A fun romp through esoteric operating systems</title><rect x="377" y="75" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(402,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">os</text></g></a><a href="/2026/talks/cadet" data-start="2026-12-12T19:15:00+0000" data-end="2026-12-12T19:25:00+0000" title="My Space Cadet Deck - an Android Stream Deck replacement with deep Emacs integration" data-slug="cadet"><title>Sat 2:15- 2:25 My Space Cadet Deck - an Android Stream Deck replacement with deep Emacs integration</title><rect stroke-width="3" x="432" y="75" opacity="0.8" width="13" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(443,128)"><text font-weight="bold" fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">cadet</text></g></a><a href="/2026/talks/remoto" data-start="2026-12-12T19:45:00+0000" data-end="2026-12-12T20:05:00+0000" title="El Remoto: browse any GitHub repos without cloning them" data-slug="remoto"><title>Sat 2:45- 3:05 El Remoto: browse any GitHub repos without cloning them</title><rect x="473" y="75" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(498,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">remoto</text></g></a><a href="/2026/talks/guile" data-start="2026-12-12T20:25:00+0000" data-end="2026-12-12T20:45:00+0000" title="æmacs: having a hoot with a guile emacs" data-slug="guile"><title>Sat 3:25- 3:45 æmacs: having a hoot with a guile emacs</title><rect x="528" y="75" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(553,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">guile</text></g></a><a href="/2026/talks/virus" data-start="2026-12-12T21:05:00+0000" data-end="2026-12-12T21:25:00+0000" title="It's Probably Not a Virus" data-slug="virus"><title>Sat 4:05- 4:25 It's Probably Not a Virus</title><rect x="583" y="75" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(608,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">virus</text></g></a><g transform="translate(0,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T14:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">9 AM EST</text></g><g transform="translate(82,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T15:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">10 AM EST</text></g><g transform="translate(164,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T16:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">11 AM EST</text></g><g transform="translate(247,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T17:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">12 PM EST</text></g><g transform="translate(329,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T18:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">1 PM EST</text></g><g transform="translate(411,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T19:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">2 PM EST</text></g><g transform="translate(494,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T20:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">3 PM EST</text></g><g transform="translate(576,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T21:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">4 PM EST</text></g><g transform="translate(658,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T22:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">5 PM EST</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 data-start="2026-12-12T14:00:00+0000" class="day-label" font-size="10" fill="black" y="17" x="3">Saturday</text><a href="/2026/talks/sat-open" data-start="2026-12-12T14:00:00+0000" data-end="2026-12-12T14:10:00+0000" title="Saturday opening remarks" data-slug="sat-open"><title>Sat 9:00- 9:10 Saturday opening remarks</title><rect x="0" y="20" opacity="0.5" width="13" height="54" 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="/2026/talks/planning" data-start="2026-12-12T14:10:00+0000" data-end="2026-12-12T14:30:00+0000" title="The Emacs Planning Habits of a Questionably Effective Person: My 40-year journey of planning with Emacs, Org Mode, paper journals, etc." data-slug="planning"><title>Sat 9:10- 9:30 The Emacs Planning Habits of a Questionably Effective Person: My 40-year journey of planning with Emacs, Org Mode, paper journals, etc.</title><rect x="13" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(38,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">planning</text></g></a><a href="/2026/talks/listen" data-start="2026-12-12T14:50:00+0000" data-end="2026-12-12T15:10:00+0000" title="Emacslisten: Controlling Emacs by voice" data-slug="listen"><title>Sat 9:50-10:10 Emacslisten: Controlling Emacs by voice</title><rect x="68" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(93,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">listen</text></g></a><a href="/2026/talks/emacspeak" data-start="2026-12-12T15:30:00+0000" data-end="2026-12-12T16:00:00+0000" title="Multi-dimensional information processing with Emacs and Emacspeak: a blind man's perspective" data-slug="emacspeak"><title>Sat 10:30-11:00 Multi-dimensional information processing with Emacs and Emacspeak: a blind man's perspective</title><rect x="123" y="20" opacity="0.5" width="41" height="54" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(162,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">emacspeak</text></g></a><a href="/2026/talks/ltx-talk" data-start="2026-12-12T16:10:00+0000" data-end="2026-12-12T16:30:00+0000" title="ltx-talk: Accessible presentations with ox-beamer" data-slug="ltx-talk"><title>Sat 11:10-11:30 ltx-talk: Accessible presentations with ox-beamer</title><rect x="178" y="20" opacity="0.5" width="27" height="54" 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)">ltx-talk</text></g></a><a href="/2026/talks/plots" data-start="2026-12-12T18:00:00+0000" data-end="2026-12-12T18:20:00+0000" title="Plots with ROOTs: Resilient data visualization with Emacs, Org and gnuplot" data-slug="plots"><title>Sat 1:00- 1:20 Plots with ROOTs: Resilient data visualization with Emacs, Org and gnuplot</title><rect x="329" y="20" opacity="0.5" width="27" height="54" 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)">plots</text></g></a><a href="/2026/talks/tasks" data-start="2026-12-12T18:40:00+0000" data-end="2026-12-12T19:00:00+0000" title="Personal task management under stress (with Org mode)" data-slug="tasks"><title>Sat 1:40- 2:00 Personal task management under stress (with Org mode)</title><rect x="384" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(409,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">tasks</text></g></a><a href="/2026/talks/mobile" data-start="2026-12-12T19:20:00+0000" data-end="2026-12-12T19:30:00+0000" title="How I solved Org Mode's biggest mobile and collaboration problems" data-slug="mobile"><title>Sat 2:20- 2:30 How I solved Org Mode's biggest mobile and collaboration problems</title><rect x="439" y="20" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(450,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">mobile</text></g></a><a href="/2026/talks/hyperbole" data-start="2026-12-12T19:50:00+0000" data-end="2026-12-12T20:10:00+0000" title="Hyperbole, My Dear Watson" data-slug="hyperbole"><title>Sat 2:50- 3:10 Hyperbole, My Dear Watson</title><rect x="480" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(505,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">hyperbole</text></g></a><a href="/2026/talks/koutliner" data-start="2026-12-12T20:30:00+0000" data-end="2026-12-12T20:50:00+0000" title="Hyperbole Koutliner: The Best Autonumbered, Hyperlinking Outliner for Emacs" data-slug="koutliner"><title>Sat 3:30- 3:50 Hyperbole Koutliner: The Best Autonumbered, Hyperlinking Outliner for Emacs</title><rect x="535" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(560,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">koutliner</text></g></a><a href="/2026/talks/writing" data-start="2026-12-12T21:10:00+0000" data-end="2026-12-12T21:30:00+0000" title="Close the writing accountability gap with Emacs" data-slug="writing"><title>Sat 4:10- 4:30 Close the writing accountability gap with Emacs</title><rect x="590" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(615,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">writing</text></g></a><a href="/2026/talks/sat-close" data-start="2026-12-12T21:50:00+0000" data-end="2026-12-12T22:00:00+0000" title="Saturday closing remarks / open session" data-slug="sat-close"><title>Sat 4:50- 5:00 Saturday closing remarks / open session</title><rect x="645" y="20" opacity="0.5" width="13" height="54" 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)">sat-close</text></g></a><a href="/2026/talks/community" data-start="2026-12-12T15:30:00+0000" data-end="2026-12-12T16:30:00+0000" title="[Panel] Improving the Emacs Community: Onboarding, Participation, and Growth" data-slug="community"><title>Sat 10:30-11:30 [Panel] Improving the Emacs Community: Onboarding, Participation, and Growth</title><rect x="123" y="75" opacity="0.5" width="82" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(203,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">community</text></g></a><a href="/2026/talks/portable" data-start="2026-12-12T18:00:00+0000" data-end="2026-12-12T18:15:00+0000" title="Emacs as my portable user space across operating platforms" data-slug="portable"><title>Sat 1:00- 1:15 Emacs as my portable user space across operating platforms</title><rect x="329" y="75" opacity="0.5" width="20" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(347,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">portable</text></g></a><a href="/2026/talks/os" data-start="2026-12-12T18:35:00+0000" data-end="2026-12-12T18:55:00+0000" title="Emacs everywhere: A fun romp through esoteric operating systems" data-slug="os"><title>Sat 1:35- 1:55 Emacs everywhere: A fun romp through esoteric operating systems</title><rect x="377" y="75" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(402,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">os</text></g></a><a href="/2026/talks/cadet" data-start="2026-12-12T19:15:00+0000" data-end="2026-12-12T19:25:00+0000" title="My Space Cadet Deck - an Android Stream Deck replacement with deep Emacs integration" data-slug="cadet"><title>Sat 2:15- 2:25 My Space Cadet Deck - an Android Stream Deck replacement with deep Emacs integration</title><rect stroke-width="3" x="432" y="75" opacity="0.8" width="13" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(443,128)"><text font-weight="bold" fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">cadet</text></g></a><a href="/2026/talks/remoto" data-start="2026-12-12T19:45:00+0000" data-end="2026-12-12T20:05:00+0000" title="El Remoto: browse any GitHub repos without cloning them" data-slug="remoto"><title>Sat 2:45- 3:05 El Remoto: browse any GitHub repos without cloning them</title><rect x="473" y="75" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(498,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">remoto</text></g></a><a href="/2026/talks/guile" data-start="2026-12-12T20:25:00+0000" data-end="2026-12-12T20:45:00+0000" title="æmacs: having a hoot with a guile emacs" data-slug="guile"><title>Sat 3:25- 3:45 æmacs: having a hoot with a guile emacs</title><rect x="528" y="75" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(553,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">guile</text></g></a><a href="/2026/talks/virus" data-start="2026-12-12T21:05:00+0000" data-end="2026-12-12T21:25:00+0000" title="It's Probably Not a Virus" data-slug="virus"><title>Sat 4:05- 4:25 It's Probably Not a Virus</title><rect x="583" y="75" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(608,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">virus</text></g></a><g transform="translate(0,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T14:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">9 AM EST</text></g><g transform="translate(82,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T15:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">10 AM EST</text></g><g transform="translate(164,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T16:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">11 AM EST</text></g><g transform="translate(247,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T17:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">12 PM EST</text></g><g transform="translate(329,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T18:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">1 PM EST</text></g><g transform="translate(411,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T19:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">2 PM EST</text></g><g transform="translate(494,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T20:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">3 PM EST</text></g><g transform="translate(576,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T21:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">4 PM EST</text></g><g transform="translate(658,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T22:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">5 PM EST</text></g></svg> </div> [[!toc ]] diff --git a/2026/info/cadet-nav.md b/2026/info/cadet-nav.md index a9596b91..5e4d2a0d 100644 --- a/2026/info/cadet-nav.md +++ b/2026/info/cadet-nav.md @@ -1,7 +1,7 @@ <div class="talk-nav"> Back to the [[talks]] -Previous by time: <a href="/2026/talks/ffs">Plain text presentations in GNU Emacs with ffs</a> +Previous by time: <a href="/2026/talks/tasks">Personal task management under stress (with Org mode)</a> Next by time: <a href="/2026/talks/mobile">How I solved Org Mode's biggest mobile and collaboration problems</a> Track: <span class="sched-track Development">Development</span> - <strong><a href="https://emacsconf.org/2026/watch/dev">Watch</a></strong> </div> diff --git a/2026/info/community-before.md b/2026/info/community-before.md index 37d000c2..c6788329 100644 --- a/2026/info/community-before.md +++ b/2026/info/community-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 2026-12-12. 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="community"> -<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 data-start="2026-12-12T14:00:00+0000" class="day-label" font-size="10" fill="black" y="17" x="3">Saturday</text><a href="/2026/talks/sat-open" data-start="2026-12-12T14:00:00+0000" data-end="2026-12-12T14:10:00+0000" title="Saturday opening remarks" data-slug="sat-open"><title>Sat 9:00- 9:10 Saturday opening remarks</title><rect x="0" y="20" opacity="0.5" width="13" height="54" 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="/2026/talks/planning" data-start="2026-12-12T14:10:00+0000" data-end="2026-12-12T14:30:00+0000" title="The Emacs Planning Habits of a Questionably Effective Person: My 40-year journey of planning with Emacs, Org Mode, paper journals, etc." data-slug="planning"><title>Sat 9:10- 9:30 The Emacs Planning Habits of a Questionably Effective Person: My 40-year journey of planning with Emacs, Org Mode, paper journals, etc.</title><rect x="13" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(38,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">planning</text></g></a><a href="/2026/talks/listen" data-start="2026-12-12T14:50:00+0000" data-end="2026-12-12T15:10:00+0000" title="Controlling Emacs by voice using Emacslisten" data-slug="listen"><title>Sat 9:50-10:10 Controlling Emacs by voice using Emacslisten</title><rect x="68" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(93,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">listen</text></g></a><a href="/2026/talks/emacspeak" data-start="2026-12-12T15:30:00+0000" data-end="2026-12-12T16:00:00+0000" title="Multi-dimensional information processing with Emacs and Emacspeak: a blind man's perspective" data-slug="emacspeak"><title>Sat 10:30-11:00 Multi-dimensional information processing with Emacs and Emacspeak: a blind man's perspective</title><rect x="123" y="20" opacity="0.5" width="41" height="54" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(162,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">emacspeak</text></g></a><a href="/2026/talks/ltx-talk" data-start="2026-12-12T16:10:00+0000" data-end="2026-12-12T16:30:00+0000" title="ltx-talk: Accessible presentations with ox-beamer" data-slug="ltx-talk"><title>Sat 11:10-11:30 ltx-talk: Accessible presentations with ox-beamer</title><rect x="178" y="20" opacity="0.5" width="27" height="54" 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)">ltx-talk</text></g></a><a href="/2026/talks/plots" data-start="2026-12-12T18:00:00+0000" data-end="2026-12-12T18:20:00+0000" title="Plots with ROOTs: Resilient data visualization with Emacs, Org and gnuplot" data-slug="plots"><title>Sat 1:00- 1:20 Plots with ROOTs: Resilient data visualization with Emacs, Org and gnuplot</title><rect x="329" y="20" opacity="0.5" width="27" height="54" 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)">plots</text></g></a><a href="/2026/talks/ffs" data-start="2026-12-12T18:40:00+0000" data-end="2026-12-12T19:00:00+0000" title="Plain text presentations in GNU Emacs with ffs" data-slug="ffs"><title>Sat 1:40- 2:00 Plain text presentations in GNU Emacs with ffs</title><rect x="384" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(409,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">ffs</text></g></a><a href="/2026/talks/mobile" data-start="2026-12-12T19:20:00+0000" data-end="2026-12-12T19:30:00+0000" title="How I solved Org Mode's biggest mobile and collaboration problems" data-slug="mobile"><title>Sat 2:20- 2:30 How I solved Org Mode's biggest mobile and collaboration problems</title><rect x="439" y="20" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(450,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">mobile</text></g></a><a href="/2026/talks/hyperbole" data-start="2026-12-12T19:50:00+0000" data-end="2026-12-12T20:10:00+0000" title="Hyperbole, My Dear Watson" data-slug="hyperbole"><title>Sat 2:50- 3:10 Hyperbole, My Dear Watson</title><rect x="480" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(505,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">hyperbole</text></g></a><a href="/2026/talks/koutliner" data-start="2026-12-12T20:30:00+0000" data-end="2026-12-12T20:50:00+0000" title="Hyperbole Koutliner: The Best Autonumbered, Hyperlinking Outliner for Emacs" data-slug="koutliner"><title>Sat 3:30- 3:50 Hyperbole Koutliner: The Best Autonumbered, Hyperlinking Outliner for Emacs</title><rect x="535" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(560,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">koutliner</text></g></a><a href="/2026/talks/writing" data-start="2026-12-12T21:10:00+0000" data-end="2026-12-12T21:30:00+0000" title="Close the writing accountability gap with Emacs" data-slug="writing"><title>Sat 4:10- 4:30 Close the writing accountability gap with Emacs</title><rect x="590" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(615,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">writing</text></g></a><a href="/2026/talks/android" data-start="2026-12-12T21:50:00+0000" data-end="2026-12-12T22:00:00+0000" title="Emacs on Android - Emacs for the next 40 years" data-slug="android"><title>Sat 4:50- 5:00 Emacs on Android - Emacs for the next 40 years</title><rect x="645" y="20" opacity="0.5" width="13" height="54" 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)">android</text></g></a><a href="/2026/talks/sat-close" data-start="2026-12-12T22:20:00+0000" data-end="2026-12-12T22:30:00+0000" title="Saturday closing remarks / open session" data-slug="sat-close"><title>Sat 5:20- 5:30 Saturday closing remarks / open session</title><rect x="686" y="20" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(697,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sat-close</text></g></a><a href="/2026/talks/community" data-start="2026-12-12T15:30:00+0000" data-end="2026-12-12T16:30:00+0000" title="[Panel] Improving the Emacs Community: Onboarding, Participation, and Growth" data-slug="community"><title>Sat 10:30-11:30 [Panel] Improving the Emacs Community: Onboarding, Participation, and Growth</title><rect stroke-width="3" x="123" y="75" opacity="0.8" width="82" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(203,128)"><text font-weight="bold" fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">community</text></g></a><a href="/2026/talks/portable" data-start="2026-12-12T18:00:00+0000" data-end="2026-12-12T18:15:00+0000" title="Emacs as my portable user space across operating platforms" data-slug="portable"><title>Sat 1:00- 1:15 Emacs as my portable user space across operating platforms</title><rect x="329" y="75" opacity="0.5" width="20" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(347,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">portable</text></g></a><a href="/2026/talks/os" data-start="2026-12-12T18:35:00+0000" data-end="2026-12-12T18:55:00+0000" title="Emacs everywhere: A fun romp through esoteric operating systems" data-slug="os"><title>Sat 1:35- 1:55 Emacs everywhere: A fun romp through esoteric operating systems</title><rect x="377" y="75" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(402,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">os</text></g></a><a href="/2026/talks/cadet" data-start="2026-12-12T19:15:00+0000" data-end="2026-12-12T19:25:00+0000" title="My Space Cadet Deck - an Android Stream Deck replacement with deep Emacs integration" data-slug="cadet"><title>Sat 2:15- 2:25 My Space Cadet Deck - an Android Stream Deck replacement with deep Emacs integration</title><rect x="432" y="75" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(443,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">cadet</text></g></a><a href="/2026/talks/remoto" data-start="2026-12-12T19:45:00+0000" data-end="2026-12-12T20:05:00+0000" title="El Remoto: browse any GitHub repos without cloning them" data-slug="remoto"><title>Sat 2:45- 3:05 El Remoto: browse any GitHub repos without cloning them</title><rect x="473" y="75" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(498,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">remoto</text></g></a><a href="/2026/talks/guile" data-start="2026-12-12T20:25:00+0000" data-end="2026-12-12T20:45:00+0000" title="æmacs: having a hoot with a guile emacs" data-slug="guile"><title>Sat 3:25- 3:45 æmacs: having a hoot with a guile emacs</title><rect x="528" y="75" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(553,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">guile</text></g></a><a href="/2026/talks/virus" data-start="2026-12-12T21:05:00+0000" data-end="2026-12-12T21:25:00+0000" title="It's Probably Not a Virus" data-slug="virus"><title>Sat 4:05- 4:25 It's Probably Not a Virus</title><rect x="583" y="75" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(608,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">virus</text></g></a><g transform="translate(0,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T14:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">9 AM EST</text></g><g transform="translate(82,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T15:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">10 AM EST</text></g><g transform="translate(164,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T16:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">11 AM EST</text></g><g transform="translate(247,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T17:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">12 PM EST</text></g><g transform="translate(329,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T18:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">1 PM EST</text></g><g transform="translate(411,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T19:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">2 PM EST</text></g><g transform="translate(494,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T20:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">3 PM EST</text></g><g transform="translate(576,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T21:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">4 PM EST</text></g><g transform="translate(658,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T22:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">5 PM EST</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 data-start="2026-12-12T14:00:00+0000" class="day-label" font-size="10" fill="black" y="17" x="3">Saturday</text><a href="/2026/talks/sat-open" data-start="2026-12-12T14:00:00+0000" data-end="2026-12-12T14:10:00+0000" title="Saturday opening remarks" data-slug="sat-open"><title>Sat 9:00- 9:10 Saturday opening remarks</title><rect x="0" y="20" opacity="0.5" width="13" height="54" 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="/2026/talks/planning" data-start="2026-12-12T14:10:00+0000" data-end="2026-12-12T14:30:00+0000" title="The Emacs Planning Habits of a Questionably Effective Person: My 40-year journey of planning with Emacs, Org Mode, paper journals, etc." data-slug="planning"><title>Sat 9:10- 9:30 The Emacs Planning Habits of a Questionably Effective Person: My 40-year journey of planning with Emacs, Org Mode, paper journals, etc.</title><rect x="13" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(38,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">planning</text></g></a><a href="/2026/talks/listen" data-start="2026-12-12T14:50:00+0000" data-end="2026-12-12T15:10:00+0000" title="Emacslisten: Controlling Emacs by voice" data-slug="listen"><title>Sat 9:50-10:10 Emacslisten: Controlling Emacs by voice</title><rect x="68" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(93,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">listen</text></g></a><a href="/2026/talks/emacspeak" data-start="2026-12-12T15:30:00+0000" data-end="2026-12-12T16:00:00+0000" title="Multi-dimensional information processing with Emacs and Emacspeak: a blind man's perspective" data-slug="emacspeak"><title>Sat 10:30-11:00 Multi-dimensional information processing with Emacs and Emacspeak: a blind man's perspective</title><rect x="123" y="20" opacity="0.5" width="41" height="54" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(162,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">emacspeak</text></g></a><a href="/2026/talks/ltx-talk" data-start="2026-12-12T16:10:00+0000" data-end="2026-12-12T16:30:00+0000" title="ltx-talk: Accessible presentations with ox-beamer" data-slug="ltx-talk"><title>Sat 11:10-11:30 ltx-talk: Accessible presentations with ox-beamer</title><rect x="178" y="20" opacity="0.5" width="27" height="54" 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)">ltx-talk</text></g></a><a href="/2026/talks/plots" data-start="2026-12-12T18:00:00+0000" data-end="2026-12-12T18:20:00+0000" title="Plots with ROOTs: Resilient data visualization with Emacs, Org and gnuplot" data-slug="plots"><title>Sat 1:00- 1:20 Plots with ROOTs: Resilient data visualization with Emacs, Org and gnuplot</title><rect x="329" y="20" opacity="0.5" width="27" height="54" 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)">plots</text></g></a><a href="/2026/talks/tasks" data-start="2026-12-12T18:40:00+0000" data-end="2026-12-12T19:00:00+0000" title="Personal task management under stress (with Org mode)" data-slug="tasks"><title>Sat 1:40- 2:00 Personal task management under stress (with Org mode)</title><rect x="384" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(409,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">tasks</text></g></a><a href="/2026/talks/mobile" data-start="2026-12-12T19:20:00+0000" data-end="2026-12-12T19:30:00+0000" title="How I solved Org Mode's biggest mobile and collaboration problems" data-slug="mobile"><title>Sat 2:20- 2:30 How I solved Org Mode's biggest mobile and collaboration problems</title><rect x="439" y="20" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(450,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">mobile</text></g></a><a href="/2026/talks/hyperbole" data-start="2026-12-12T19:50:00+0000" data-end="2026-12-12T20:10:00+0000" title="Hyperbole, My Dear Watson" data-slug="hyperbole"><title>Sat 2:50- 3:10 Hyperbole, My Dear Watson</title><rect x="480" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(505,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">hyperbole</text></g></a><a href="/2026/talks/koutliner" data-start="2026-12-12T20:30:00+0000" data-end="2026-12-12T20:50:00+0000" title="Hyperbole Koutliner: The Best Autonumbered, Hyperlinking Outliner for Emacs" data-slug="koutliner"><title>Sat 3:30- 3:50 Hyperbole Koutliner: The Best Autonumbered, Hyperlinking Outliner for Emacs</title><rect x="535" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(560,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">koutliner</text></g></a><a href="/2026/talks/writing" data-start="2026-12-12T21:10:00+0000" data-end="2026-12-12T21:30:00+0000" title="Close the writing accountability gap with Emacs" data-slug="writing"><title>Sat 4:10- 4:30 Close the writing accountability gap with Emacs</title><rect x="590" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(615,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">writing</text></g></a><a href="/2026/talks/sat-close" data-start="2026-12-12T21:50:00+0000" data-end="2026-12-12T22:00:00+0000" title="Saturday closing remarks / open session" data-slug="sat-close"><title>Sat 4:50- 5:00 Saturday closing remarks / open session</title><rect x="645" y="20" opacity="0.5" width="13" height="54" 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)">sat-close</text></g></a><a href="/2026/talks/community" data-start="2026-12-12T15:30:00+0000" data-end="2026-12-12T16:30:00+0000" title="[Panel] Improving the Emacs Community: Onboarding, Participation, and Growth" data-slug="community"><title>Sat 10:30-11:30 [Panel] Improving the Emacs Community: Onboarding, Participation, and Growth</title><rect stroke-width="3" x="123" y="75" opacity="0.8" width="82" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(203,128)"><text font-weight="bold" fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">community</text></g></a><a href="/2026/talks/portable" data-start="2026-12-12T18:00:00+0000" data-end="2026-12-12T18:15:00+0000" title="Emacs as my portable user space across operating platforms" data-slug="portable"><title>Sat 1:00- 1:15 Emacs as my portable user space across operating platforms</title><rect x="329" y="75" opacity="0.5" width="20" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(347,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">portable</text></g></a><a href="/2026/talks/os" data-start="2026-12-12T18:35:00+0000" data-end="2026-12-12T18:55:00+0000" title="Emacs everywhere: A fun romp through esoteric operating systems" data-slug="os"><title>Sat 1:35- 1:55 Emacs everywhere: A fun romp through esoteric operating systems</title><rect x="377" y="75" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(402,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">os</text></g></a><a href="/2026/talks/cadet" data-start="2026-12-12T19:15:00+0000" data-end="2026-12-12T19:25:00+0000" title="My Space Cadet Deck - an Android Stream Deck replacement with deep Emacs integration" data-slug="cadet"><title>Sat 2:15- 2:25 My Space Cadet Deck - an Android Stream Deck replacement with deep Emacs integration</title><rect x="432" y="75" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(443,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">cadet</text></g></a><a href="/2026/talks/remoto" data-start="2026-12-12T19:45:00+0000" data-end="2026-12-12T20:05:00+0000" title="El Remoto: browse any GitHub repos without cloning them" data-slug="remoto"><title>Sat 2:45- 3:05 El Remoto: browse any GitHub repos without cloning them</title><rect x="473" y="75" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(498,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">remoto</text></g></a><a href="/2026/talks/guile" data-start="2026-12-12T20:25:00+0000" data-end="2026-12-12T20:45:00+0000" title="æmacs: having a hoot with a guile emacs" data-slug="guile"><title>Sat 3:25- 3:45 æmacs: having a hoot with a guile emacs</title><rect x="528" y="75" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(553,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">guile</text></g></a><a href="/2026/talks/virus" data-start="2026-12-12T21:05:00+0000" data-end="2026-12-12T21:25:00+0000" title="It's Probably Not a Virus" data-slug="virus"><title>Sat 4:05- 4:25 It's Probably Not a Virus</title><rect x="583" y="75" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(608,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">virus</text></g></a><g transform="translate(0,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T14:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">9 AM EST</text></g><g transform="translate(82,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T15:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">10 AM EST</text></g><g transform="translate(164,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T16:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">11 AM EST</text></g><g transform="translate(247,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T17:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">12 PM EST</text></g><g transform="translate(329,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T18:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">1 PM EST</text></g><g transform="translate(411,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T19:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">2 PM EST</text></g><g transform="translate(494,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T20:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">3 PM EST</text></g><g transform="translate(576,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T21:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">4 PM EST</text></g><g transform="translate(658,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T22:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">5 PM EST</text></g></svg> </div> [[!toc ]] diff --git a/2026/info/compile-before.md b/2026/info/compile-before.md index f419f1b9..d3266ed8 100644 --- a/2026/info/compile-before.md +++ b/2026/info/compile-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 Sun 2026-12-13. 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="compile"> -<svg width="700" height="150" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><title>Schedule for Sunday</title><rect width="700" height="150" x="0" y="0" fill="white"></rect><text data-start="2026-12-13T14:00:00+0000" class="day-label" font-size="10" fill="black" y="17" x="3">Sunday</text><a href="/2026/talks/sun-open" data-start="2026-12-13T14:00:00+0000" data-end="2026-12-13T14:10:00+0000" title="Sunday opening remarks" data-slug="sun-open"><title>Sun 9:00- 9:10 Sunday opening remarks</title><rect x="0" y="20" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(11,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sun-open</text></g></a><a href="/2026/talks/bone" data-start="2026-12-13T14:10:00+0000" data-end="2026-12-13T14:20:00+0000" title="BONE and gnaw.el: tracking what matters" data-slug="bone"><title>Sun 9:10- 9:20 BONE and gnaw.el: tracking what matters</title><rect x="13" y="20" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(24,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">bone</text></g></a><a href="/2026/talks/local" data-start="2026-12-13T14:40:00+0000" data-end="2026-12-13T14:55:00+0000" title="Local file history possibilities in Emacs" data-slug="local"><title>Sun 9:40- 9:55 Local file history possibilities in Emacs</title><rect x="54" y="20" opacity="0.5" width="20" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(72,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">local</text></g></a><a href="/2026/talks/hutch" data-start="2026-12-13T15:15:00+0000" data-end="2026-12-13T15:25:00+0000" title="hutch: code reviews for the mildly disenfranchised" data-slug="hutch"><title>Sun 10:15-10:25 hutch: code reviews for the mildly disenfranchised</title><rect x="102" y="20" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(113,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">hutch</text></g></a><a href="/2026/talks/team" data-start="2026-12-13T15:35:00+0000" data-end="2026-12-13T15:55:00+0000" title="Beyond the Chatbot: Team-Oriented AI in Emacs" data-slug="team"><title>Sun 10:35-10:55 Beyond the Chatbot: Team-Oriented AI in Emacs</title><rect x="130" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(155,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">team</text></g></a><a href="/2026/talks/compile" data-start="2026-12-13T16:15:00+0000" data-end="2026-12-13T16:35:00+0000" title="Beyond shell history: Saving compilation output in Emacs" data-slug="compile"><title>Sun 11:15-11:35 Beyond shell history: Saving compilation output in Emacs</title><rect stroke-width="3" x="185" y="20" opacity="0.8" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(210,73)"><text font-weight="bold" fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">compile</text></g></a><a href="/2026/talks/dnd" data-start="2026-12-13T18:00:00+0000" data-end="2026-12-13T18:20:00+0000" title="DnD and Org Roam: Becoming a Better DM with Emacs" data-slug="dnd"><title>Sun 1:00- 1:20 DnD and Org Roam: Becoming a Better DM with Emacs</title><rect x="329" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(354,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">dnd</text></g></a><a href="/2026/talks/bible" data-start="2026-12-13T18:30:00+0000" data-end="2026-12-13T18:50:00+0000" title="bible-gateway: A Two-Edged Sword in Emacs" data-slug="bible"><title>Sun 1:30- 1:50 bible-gateway: A Two-Edged Sword in Emacs</title><rect x="370" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(395,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">bible</text></g></a><a href="/2026/talks/svg" data-start="2026-12-13T19:10:00+0000" data-end="2026-12-13T19:30:00+0000" title="A (sort of) REPL for learning SVG" data-slug="svg"><title>Sun 2:10- 2:30 A (sort of) REPL for learning SVG</title><rect x="425" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(450,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">svg</text></g></a><a href="/2026/talks/align" data-start="2026-12-13T19:50:00+0000" data-end="2026-12-13T20:10:00+0000" title="Column-aligning text in Emacs" data-slug="align"><title>Sun 2:50- 3:10 Column-aligning text in Emacs</title><rect x="480" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(505,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">align</text></g></a><a href="/2026/talks/anju" data-start="2026-12-13T20:30:00+0000" data-end="2026-12-13T20:50:00+0000" title="Revisiting Emacs Mouse Interactions with Anju" data-slug="anju"><title>Sun 3:30- 3:50 Revisiting Emacs Mouse Interactions with Anju</title><rect x="535" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(560,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">anju</text></g></a><a href="/2026/talks/ghostel" data-start="2026-12-13T21:00:00+0000" data-end="2026-12-13T21:20:00+0000" title="Ghost in the Shell: a libghostty powered terminal for Emacs" data-slug="ghostel"><title>Sun 4:00- 4:20 Ghost in the Shell: a libghostty powered terminal for Emacs</title><rect x="576" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(601,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">ghostel</text></g></a><a href="/2026/talks/sun-close" data-start="2026-12-13T21:40:00+0000" data-end="2026-12-13T21:50:00+0000" title="Sunday closing remarks" data-slug="sun-close"><title>Sun 4:40- 4:50 Sunday closing remarks</title><rect x="631" y="20" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(642,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sun-close</text></g></a><a href="/2026/talks/prefix" data-start="2026-12-13T15:00:00+0000" data-end="2026-12-13T15:10:00+0000" title="prefix-tab-groups" data-slug="prefix"><title>Sun 10:00-10:10 prefix-tab-groups</title><rect x="82" y="75" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="5,5,5" fill="skyblue"></rect><g transform="translate(93,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">prefix</text></g></a><a href="/2026/talks/rau" data-start="2026-12-13T15:20:00+0000" data-end="2026-12-13T15:40:00+0000" title="Emacs as a Window Manager and concurrency" data-slug="rau"><title>Sun 10:20-10:40 Emacs as a Window Manager and concurrency</title><rect x="109" y="75" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(134,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">rau</text></g></a><a href="/2026/talks/babel" data-start="2026-12-13T16:00:00+0000" data-end="2026-12-13T16:10:00+0000" title="Org Babel everywhere" data-slug="babel"><title>Sun 11:00-11:10 Org Babel everywhere</title><rect x="164" y="75" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(175,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">babel</text></g></a><a href="/2026/talks/el-gpu" data-start="2026-12-13T16:30:00+0000" data-end="2026-12-13T16:50:00+0000" title="El-gpu and pix-el: GNU Emacs 2D and 3D game programming" data-slug="el-gpu"><title>Sun 11:30-11:50 El-gpu and pix-el: GNU Emacs 2D and 3D game programming</title><rect x="205" y="75" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(230,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">el-gpu</text></g></a><a href="/2026/talks/llms" data-start="2026-12-13T18:00:00+0000" data-end="2026-12-13T19:00:00+0000" title="[Panel] Emacs, LLMs, and Free Software" data-slug="llms"><title>Sun 1:00- 2:00 [Panel] Emacs, LLMs, and Free Software</title><rect x="329" y="75" opacity="0.5" width="82" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(409,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">llms</text></g></a><g transform="translate(0,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T14:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">9 AM EST</text></g><g transform="translate(82,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T15:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">10 AM EST</text></g><g transform="translate(164,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T16:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">11 AM EST</text></g><g transform="translate(247,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T17:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">12 PM EST</text></g><g transform="translate(329,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T18:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">1 PM EST</text></g><g transform="translate(411,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T19:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">2 PM EST</text></g><g transform="translate(494,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T20:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">3 PM EST</text></g><g transform="translate(576,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T21:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">4 PM EST</text></g><g transform="translate(658,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T22:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">5 PM EST</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 Sunday</title><rect width="700" height="150" x="0" y="0" fill="white"></rect><text data-start="2026-12-13T14:00:00+0000" class="day-label" font-size="10" fill="black" y="17" x="3">Sunday</text><a href="/2026/talks/sun-open" data-start="2026-12-13T14:00:00+0000" data-end="2026-12-13T14:10:00+0000" title="Sunday opening remarks" data-slug="sun-open"><title>Sun 9:00- 9:10 Sunday opening remarks</title><rect x="0" y="20" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(11,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sun-open</text></g></a><a href="/2026/talks/bone" data-start="2026-12-13T14:10:00+0000" data-end="2026-12-13T14:20:00+0000" title="BONE and gnaw.el: tracking what matters" data-slug="bone"><title>Sun 9:10- 9:20 BONE and gnaw.el: tracking what matters</title><rect x="13" y="20" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(24,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">bone</text></g></a><a href="/2026/talks/local" data-start="2026-12-13T14:40:00+0000" data-end="2026-12-13T14:55:00+0000" title="Local file history possibilities in Emacs" data-slug="local"><title>Sun 9:40- 9:55 Local file history possibilities in Emacs</title><rect x="54" y="20" opacity="0.5" width="20" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(72,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">local</text></g></a><a href="/2026/talks/hutch" data-start="2026-12-13T15:15:00+0000" data-end="2026-12-13T15:25:00+0000" title="hutch: code reviews for the mildly disenfranchised" data-slug="hutch"><title>Sun 10:15-10:25 hutch: code reviews for the mildly disenfranchised</title><rect x="102" y="20" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(113,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">hutch</text></g></a><a href="/2026/talks/team" data-start="2026-12-13T15:35:00+0000" data-end="2026-12-13T15:55:00+0000" title="Beyond the Chatbot: Team-Oriented AI in Emacs" data-slug="team"><title>Sun 10:35-10:55 Beyond the Chatbot: Team-Oriented AI in Emacs</title><rect x="130" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(155,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">team</text></g></a><a href="/2026/talks/compile" data-start="2026-12-13T16:15:00+0000" data-end="2026-12-13T16:35:00+0000" title="Beyond shell history: Saving compilation output in Emacs" data-slug="compile"><title>Sun 11:15-11:35 Beyond shell history: Saving compilation output in Emacs</title><rect stroke-width="3" x="185" y="20" opacity="0.8" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(210,73)"><text font-weight="bold" fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">compile</text></g></a><a href="/2026/talks/dnd" data-start="2026-12-13T18:00:00+0000" data-end="2026-12-13T18:20:00+0000" title="DnD and Org Roam: Becoming a Better DM with Emacs" data-slug="dnd"><title>Sun 1:00- 1:20 DnD and Org Roam: Becoming a Better DM with Emacs</title><rect x="329" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(354,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">dnd</text></g></a><a href="/2026/talks/bible" data-start="2026-12-13T18:30:00+0000" data-end="2026-12-13T18:50:00+0000" title="bible-gateway: A Two-Edged Sword in Emacs" data-slug="bible"><title>Sun 1:30- 1:50 bible-gateway: A Two-Edged Sword in Emacs</title><rect x="370" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(395,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">bible</text></g></a><a href="/2026/talks/ffs" data-start="2026-12-13T19:10:00+0000" data-end="2026-12-13T19:30:00+0000" title="Plain text presentations in GNU Emacs with ffs" data-slug="ffs"><title>Sun 2:10- 2:30 Plain text presentations in GNU Emacs with ffs</title><rect x="425" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(450,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">ffs</text></g></a><a href="/2026/talks/align" data-start="2026-12-13T19:50:00+0000" data-end="2026-12-13T20:10:00+0000" title="Column-aligning text in Emacs" data-slug="align"><title>Sun 2:50- 3:10 Column-aligning text in Emacs</title><rect x="480" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(505,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">align</text></g></a><a href="/2026/talks/anju" data-start="2026-12-13T20:30:00+0000" data-end="2026-12-13T20:50:00+0000" title="Revisiting Emacs Mouse Interactions with Anju" data-slug="anju"><title>Sun 3:30- 3:50 Revisiting Emacs Mouse Interactions with Anju</title><rect x="535" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(560,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">anju</text></g></a><a href="/2026/talks/android" data-start="2026-12-13T21:00:00+0000" data-end="2026-12-13T21:10:00+0000" title="Emacs on Android - Emacs for the next 40 years" data-slug="android"><title>Sun 4:00- 4:10 Emacs on Android - Emacs for the next 40 years</title><rect x="576" y="20" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(587,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">android</text></g></a><a href="/2026/talks/sun-close" data-start="2026-12-13T21:30:00+0000" data-end="2026-12-13T21:40:00+0000" title="Sunday closing remarks" data-slug="sun-close"><title>Sun 4:30- 4:40 Sunday closing remarks</title><rect x="617" y="20" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(628,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sun-close</text></g></a><a href="/2026/talks/prefix" data-start="2026-12-13T15:00:00+0000" data-end="2026-12-13T15:10:00+0000" title="prefix-tab-groups" data-slug="prefix"><title>Sun 10:00-10:10 prefix-tab-groups</title><rect x="82" y="75" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="5,5,5" fill="skyblue"></rect><g transform="translate(93,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">prefix</text></g></a><a href="/2026/talks/rau" data-start="2026-12-13T15:20:00+0000" data-end="2026-12-13T15:40:00+0000" title="Emacs as a Window Manager and concurrency" data-slug="rau"><title>Sun 10:20-10:40 Emacs as a Window Manager and concurrency</title><rect x="109" y="75" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(134,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">rau</text></g></a><a href="/2026/talks/babel" data-start="2026-12-13T16:00:00+0000" data-end="2026-12-13T16:10:00+0000" title="Org Babel everywhere" data-slug="babel"><title>Sun 11:00-11:10 Org Babel everywhere</title><rect x="164" y="75" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(175,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">babel</text></g></a><a href="/2026/talks/el-gpu" data-start="2026-12-13T16:30:00+0000" data-end="2026-12-13T16:50:00+0000" title="El-gpu and pix-el: GNU Emacs 2D and 3D game programming" data-slug="el-gpu"><title>Sun 11:30-11:50 El-gpu and pix-el: GNU Emacs 2D and 3D game programming</title><rect x="205" y="75" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(230,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">el-gpu</text></g></a><a href="/2026/talks/llms" data-start="2026-12-13T18:00:00+0000" data-end="2026-12-13T19:00:00+0000" title="[Panel] Emacs, LLMs, and Free Software" data-slug="llms"><title>Sun 1:00- 2:00 [Panel] Emacs, LLMs, and Free Software</title><rect x="329" y="75" opacity="0.5" width="82" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(409,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">llms</text></g></a><a href="/2026/talks/ghostel" data-start="2026-12-13T19:20:00+0000" data-end="2026-12-13T19:40:00+0000" title="Ghost in the Shell: a libghostty powered terminal for Emacs" data-slug="ghostel"><title>Sun 2:20- 2:40 Ghost in the Shell: a libghostty powered terminal for Emacs</title><rect x="439" y="75" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(464,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">ghostel</text></g></a><a href="/2026/talks/svg" data-start="2026-12-13T20:00:00+0000" data-end="2026-12-13T20:20:00+0000" title="A (sort of) REPL for learning SVG" data-slug="svg"><title>Sun 3:00- 3:20 A (sort of) REPL for learning SVG</title><rect x="494" y="75" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(519,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">svg</text></g></a><g transform="translate(0,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T14:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">9 AM EST</text></g><g transform="translate(82,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T15:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">10 AM EST</text></g><g transform="translate(164,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T16:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">11 AM EST</text></g><g transform="translate(247,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T17:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">12 PM EST</text></g><g transform="translate(329,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T18:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">1 PM EST</text></g><g transform="translate(411,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T19:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">2 PM EST</text></g><g transform="translate(494,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T20:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">3 PM EST</text></g><g transform="translate(576,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T21:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">4 PM EST</text></g><g transform="translate(658,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T22:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">5 PM EST</text></g></svg> </div> [[!toc ]] diff --git a/2026/info/dnd-before.md b/2026/info/dnd-before.md index e3c8ebe2..2150e445 100644 --- a/2026/info/dnd-before.md +++ b/2026/info/dnd-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 Sun 2026-12-13. 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="dnd"> -<svg width="700" height="150" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><title>Schedule for Sunday</title><rect width="700" height="150" x="0" y="0" fill="white"></rect><text data-start="2026-12-13T14:00:00+0000" class="day-label" font-size="10" fill="black" y="17" x="3">Sunday</text><a href="/2026/talks/sun-open" data-start="2026-12-13T14:00:00+0000" data-end="2026-12-13T14:10:00+0000" title="Sunday opening remarks" data-slug="sun-open"><title>Sun 9:00- 9:10 Sunday opening remarks</title><rect x="0" y="20" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(11,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sun-open</text></g></a><a href="/2026/talks/bone" data-start="2026-12-13T14:10:00+0000" data-end="2026-12-13T14:20:00+0000" title="BONE and gnaw.el: tracking what matters" data-slug="bone"><title>Sun 9:10- 9:20 BONE and gnaw.el: tracking what matters</title><rect x="13" y="20" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(24,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">bone</text></g></a><a href="/2026/talks/local" data-start="2026-12-13T14:40:00+0000" data-end="2026-12-13T14:55:00+0000" title="Local file history possibilities in Emacs" data-slug="local"><title>Sun 9:40- 9:55 Local file history possibilities in Emacs</title><rect x="54" y="20" opacity="0.5" width="20" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(72,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">local</text></g></a><a href="/2026/talks/hutch" data-start="2026-12-13T15:15:00+0000" data-end="2026-12-13T15:25:00+0000" title="hutch: code reviews for the mildly disenfranchised" data-slug="hutch"><title>Sun 10:15-10:25 hutch: code reviews for the mildly disenfranchised</title><rect x="102" y="20" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(113,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">hutch</text></g></a><a href="/2026/talks/team" data-start="2026-12-13T15:35:00+0000" data-end="2026-12-13T15:55:00+0000" title="Beyond the Chatbot: Team-Oriented AI in Emacs" data-slug="team"><title>Sun 10:35-10:55 Beyond the Chatbot: Team-Oriented AI in Emacs</title><rect x="130" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(155,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">team</text></g></a><a href="/2026/talks/compile" data-start="2026-12-13T16:15:00+0000" data-end="2026-12-13T16:35:00+0000" title="Beyond shell history: Saving compilation output in Emacs" data-slug="compile"><title>Sun 11:15-11:35 Beyond shell history: Saving compilation output in Emacs</title><rect x="185" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(210,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">compile</text></g></a><a href="/2026/talks/dnd" data-start="2026-12-13T18:00:00+0000" data-end="2026-12-13T18:20:00+0000" title="DnD and Org Roam: Becoming a Better DM with Emacs" data-slug="dnd"><title>Sun 1:00- 1:20 DnD and Org Roam: Becoming a Better DM with Emacs</title><rect stroke-width="3" x="329" y="20" opacity="0.8" width="27" height="54" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(354,73)"><text font-weight="bold" fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">dnd</text></g></a><a href="/2026/talks/bible" data-start="2026-12-13T18:30:00+0000" data-end="2026-12-13T18:50:00+0000" title="bible-gateway: A Two-Edged Sword in Emacs" data-slug="bible"><title>Sun 1:30- 1:50 bible-gateway: A Two-Edged Sword in Emacs</title><rect x="370" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(395,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">bible</text></g></a><a href="/2026/talks/svg" data-start="2026-12-13T19:10:00+0000" data-end="2026-12-13T19:30:00+0000" title="A (sort of) REPL for learning SVG" data-slug="svg"><title>Sun 2:10- 2:30 A (sort of) REPL for learning SVG</title><rect x="425" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(450,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">svg</text></g></a><a href="/2026/talks/align" data-start="2026-12-13T19:50:00+0000" data-end="2026-12-13T20:10:00+0000" title="Column-aligning text in Emacs" data-slug="align"><title>Sun 2:50- 3:10 Column-aligning text in Emacs</title><rect x="480" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(505,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">align</text></g></a><a href="/2026/talks/anju" data-start="2026-12-13T20:30:00+0000" data-end="2026-12-13T20:50:00+0000" title="Revisiting Emacs Mouse Interactions with Anju" data-slug="anju"><title>Sun 3:30- 3:50 Revisiting Emacs Mouse Interactions with Anju</title><rect x="535" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(560,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">anju</text></g></a><a href="/2026/talks/ghostel" data-start="2026-12-13T21:00:00+0000" data-end="2026-12-13T21:20:00+0000" title="Ghost in the Shell: a libghostty powered terminal for Emacs" data-slug="ghostel"><title>Sun 4:00- 4:20 Ghost in the Shell: a libghostty powered terminal for Emacs</title><rect x="576" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(601,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">ghostel</text></g></a><a href="/2026/talks/sun-close" data-start="2026-12-13T21:40:00+0000" data-end="2026-12-13T21:50:00+0000" title="Sunday closing remarks" data-slug="sun-close"><title>Sun 4:40- 4:50 Sunday closing remarks</title><rect x="631" y="20" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(642,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sun-close</text></g></a><a href="/2026/talks/prefix" data-start="2026-12-13T15:00:00+0000" data-end="2026-12-13T15:10:00+0000" title="prefix-tab-groups" data-slug="prefix"><title>Sun 10:00-10:10 prefix-tab-groups</title><rect x="82" y="75" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="5,5,5" fill="skyblue"></rect><g transform="translate(93,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">prefix</text></g></a><a href="/2026/talks/rau" data-start="2026-12-13T15:20:00+0000" data-end="2026-12-13T15:40:00+0000" title="Emacs as a Window Manager and concurrency" data-slug="rau"><title>Sun 10:20-10:40 Emacs as a Window Manager and concurrency</title><rect x="109" y="75" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(134,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">rau</text></g></a><a href="/2026/talks/babel" data-start="2026-12-13T16:00:00+0000" data-end="2026-12-13T16:10:00+0000" title="Org Babel everywhere" data-slug="babel"><title>Sun 11:00-11:10 Org Babel everywhere</title><rect x="164" y="75" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(175,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">babel</text></g></a><a href="/2026/talks/el-gpu" data-start="2026-12-13T16:30:00+0000" data-end="2026-12-13T16:50:00+0000" title="El-gpu and pix-el: GNU Emacs 2D and 3D game programming" data-slug="el-gpu"><title>Sun 11:30-11:50 El-gpu and pix-el: GNU Emacs 2D and 3D game programming</title><rect x="205" y="75" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(230,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">el-gpu</text></g></a><a href="/2026/talks/llms" data-start="2026-12-13T18:00:00+0000" data-end="2026-12-13T19:00:00+0000" title="[Panel] Emacs, LLMs, and Free Software" data-slug="llms"><title>Sun 1:00- 2:00 [Panel] Emacs, LLMs, and Free Software</title><rect x="329" y="75" opacity="0.5" width="82" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(409,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">llms</text></g></a><g transform="translate(0,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T14:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">9 AM EST</text></g><g transform="translate(82,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T15:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">10 AM EST</text></g><g transform="translate(164,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T16:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">11 AM EST</text></g><g transform="translate(247,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T17:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">12 PM EST</text></g><g transform="translate(329,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T18:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">1 PM EST</text></g><g transform="translate(411,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T19:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">2 PM EST</text></g><g transform="translate(494,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T20:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">3 PM EST</text></g><g transform="translate(576,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T21:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">4 PM EST</text></g><g transform="translate(658,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T22:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">5 PM EST</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 Sunday</title><rect width="700" height="150" x="0" y="0" fill="white"></rect><text data-start="2026-12-13T14:00:00+0000" class="day-label" font-size="10" fill="black" y="17" x="3">Sunday</text><a href="/2026/talks/sun-open" data-start="2026-12-13T14:00:00+0000" data-end="2026-12-13T14:10:00+0000" title="Sunday opening remarks" data-slug="sun-open"><title>Sun 9:00- 9:10 Sunday opening remarks</title><rect x="0" y="20" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(11,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sun-open</text></g></a><a href="/2026/talks/bone" data-start="2026-12-13T14:10:00+0000" data-end="2026-12-13T14:20:00+0000" title="BONE and gnaw.el: tracking what matters" data-slug="bone"><title>Sun 9:10- 9:20 BONE and gnaw.el: tracking what matters</title><rect x="13" y="20" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(24,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">bone</text></g></a><a href="/2026/talks/local" data-start="2026-12-13T14:40:00+0000" data-end="2026-12-13T14:55:00+0000" title="Local file history possibilities in Emacs" data-slug="local"><title>Sun 9:40- 9:55 Local file history possibilities in Emacs</title><rect x="54" y="20" opacity="0.5" width="20" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(72,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">local</text></g></a><a href="/2026/talks/hutch" data-start="2026-12-13T15:15:00+0000" data-end="2026-12-13T15:25:00+0000" title="hutch: code reviews for the mildly disenfranchised" data-slug="hutch"><title>Sun 10:15-10:25 hutch: code reviews for the mildly disenfranchised</title><rect x="102" y="20" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(113,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">hutch</text></g></a><a href="/2026/talks/team" data-start="2026-12-13T15:35:00+0000" data-end="2026-12-13T15:55:00+0000" title="Beyond the Chatbot: Team-Oriented AI in Emacs" data-slug="team"><title>Sun 10:35-10:55 Beyond the Chatbot: Team-Oriented AI in Emacs</title><rect x="130" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(155,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">team</text></g></a><a href="/2026/talks/compile" data-start="2026-12-13T16:15:00+0000" data-end="2026-12-13T16:35:00+0000" title="Beyond shell history: Saving compilation output in Emacs" data-slug="compile"><title>Sun 11:15-11:35 Beyond shell history: Saving compilation output in Emacs</title><rect x="185" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(210,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">compile</text></g></a><a href="/2026/talks/dnd" data-start="2026-12-13T18:00:00+0000" data-end="2026-12-13T18:20:00+0000" title="DnD and Org Roam: Becoming a Better DM with Emacs" data-slug="dnd"><title>Sun 1:00- 1:20 DnD and Org Roam: Becoming a Better DM with Emacs</title><rect stroke-width="3" x="329" y="20" opacity="0.8" width="27" height="54" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(354,73)"><text font-weight="bold" fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">dnd</text></g></a><a href="/2026/talks/bible" data-start="2026-12-13T18:30:00+0000" data-end="2026-12-13T18:50:00+0000" title="bible-gateway: A Two-Edged Sword in Emacs" data-slug="bible"><title>Sun 1:30- 1:50 bible-gateway: A Two-Edged Sword in Emacs</title><rect x="370" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(395,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">bible</text></g></a><a href="/2026/talks/ffs" data-start="2026-12-13T19:10:00+0000" data-end="2026-12-13T19:30:00+0000" title="Plain text presentations in GNU Emacs with ffs" data-slug="ffs"><title>Sun 2:10- 2:30 Plain text presentations in GNU Emacs with ffs</title><rect x="425" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(450,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">ffs</text></g></a><a href="/2026/talks/align" data-start="2026-12-13T19:50:00+0000" data-end="2026-12-13T20:10:00+0000" title="Column-aligning text in Emacs" data-slug="align"><title>Sun 2:50- 3:10 Column-aligning text in Emacs</title><rect x="480" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(505,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">align</text></g></a><a href="/2026/talks/anju" data-start="2026-12-13T20:30:00+0000" data-end="2026-12-13T20:50:00+0000" title="Revisiting Emacs Mouse Interactions with Anju" data-slug="anju"><title>Sun 3:30- 3:50 Revisiting Emacs Mouse Interactions with Anju</title><rect x="535" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(560,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">anju</text></g></a><a href="/2026/talks/android" data-start="2026-12-13T21:00:00+0000" data-end="2026-12-13T21:10:00+0000" title="Emacs on Android - Emacs for the next 40 years" data-slug="android"><title>Sun 4:00- 4:10 Emacs on Android - Emacs for the next 40 years</title><rect x="576" y="20" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(587,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">android</text></g></a><a href="/2026/talks/sun-close" data-start="2026-12-13T21:30:00+0000" data-end="2026-12-13T21:40:00+0000" title="Sunday closing remarks" data-slug="sun-close"><title>Sun 4:30- 4:40 Sunday closing remarks</title><rect x="617" y="20" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(628,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sun-close</text></g></a><a href="/2026/talks/prefix" data-start="2026-12-13T15:00:00+0000" data-end="2026-12-13T15:10:00+0000" title="prefix-tab-groups" data-slug="prefix"><title>Sun 10:00-10:10 prefix-tab-groups</title><rect x="82" y="75" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="5,5,5" fill="skyblue"></rect><g transform="translate(93,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">prefix</text></g></a><a href="/2026/talks/rau" data-start="2026-12-13T15:20:00+0000" data-end="2026-12-13T15:40:00+0000" title="Emacs as a Window Manager and concurrency" data-slug="rau"><title>Sun 10:20-10:40 Emacs as a Window Manager and concurrency</title><rect x="109" y="75" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(134,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">rau</text></g></a><a href="/2026/talks/babel" data-start="2026-12-13T16:00:00+0000" data-end="2026-12-13T16:10:00+0000" title="Org Babel everywhere" data-slug="babel"><title>Sun 11:00-11:10 Org Babel everywhere</title><rect x="164" y="75" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(175,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">babel</text></g></a><a href="/2026/talks/el-gpu" data-start="2026-12-13T16:30:00+0000" data-end="2026-12-13T16:50:00+0000" title="El-gpu and pix-el: GNU Emacs 2D and 3D game programming" data-slug="el-gpu"><title>Sun 11:30-11:50 El-gpu and pix-el: GNU Emacs 2D and 3D game programming</title><rect x="205" y="75" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(230,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">el-gpu</text></g></a><a href="/2026/talks/llms" data-start="2026-12-13T18:00:00+0000" data-end="2026-12-13T19:00:00+0000" title="[Panel] Emacs, LLMs, and Free Software" data-slug="llms"><title>Sun 1:00- 2:00 [Panel] Emacs, LLMs, and Free Software</title><rect x="329" y="75" opacity="0.5" width="82" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(409,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">llms</text></g></a><a href="/2026/talks/ghostel" data-start="2026-12-13T19:20:00+0000" data-end="2026-12-13T19:40:00+0000" title="Ghost in the Shell: a libghostty powered terminal for Emacs" data-slug="ghostel"><title>Sun 2:20- 2:40 Ghost in the Shell: a libghostty powered terminal for Emacs</title><rect x="439" y="75" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(464,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">ghostel</text></g></a><a href="/2026/talks/svg" data-start="2026-12-13T20:00:00+0000" data-end="2026-12-13T20:20:00+0000" title="A (sort of) REPL for learning SVG" data-slug="svg"><title>Sun 3:00- 3:20 A (sort of) REPL for learning SVG</title><rect x="494" y="75" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(519,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">svg</text></g></a><g transform="translate(0,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T14:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">9 AM EST</text></g><g transform="translate(82,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T15:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">10 AM EST</text></g><g transform="translate(164,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T16:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">11 AM EST</text></g><g transform="translate(247,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T17:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">12 PM EST</text></g><g transform="translate(329,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T18:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">1 PM EST</text></g><g transform="translate(411,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T19:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">2 PM EST</text></g><g transform="translate(494,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T20:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">3 PM EST</text></g><g transform="translate(576,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T21:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">4 PM EST</text></g><g transform="translate(658,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T22:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">5 PM EST</text></g></svg> </div> [[!toc ]] diff --git a/2026/info/el-gpu-before.md b/2026/info/el-gpu-before.md index 2e6048b7..bc3244ff 100644 --- a/2026/info/el-gpu-before.md +++ b/2026/info/el-gpu-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 Sun 2026-12-13. 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="el-gpu"> -<svg width="700" height="150" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><title>Schedule for Sunday</title><rect width="700" height="150" x="0" y="0" fill="white"></rect><text data-start="2026-12-13T14:00:00+0000" class="day-label" font-size="10" fill="black" y="17" x="3">Sunday</text><a href="/2026/talks/sun-open" data-start="2026-12-13T14:00:00+0000" data-end="2026-12-13T14:10:00+0000" title="Sunday opening remarks" data-slug="sun-open"><title>Sun 9:00- 9:10 Sunday opening remarks</title><rect x="0" y="20" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(11,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sun-open</text></g></a><a href="/2026/talks/bone" data-start="2026-12-13T14:10:00+0000" data-end="2026-12-13T14:20:00+0000" title="BONE and gnaw.el: tracking what matters" data-slug="bone"><title>Sun 9:10- 9:20 BONE and gnaw.el: tracking what matters</title><rect x="13" y="20" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(24,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">bone</text></g></a><a href="/2026/talks/local" data-start="2026-12-13T14:40:00+0000" data-end="2026-12-13T14:55:00+0000" title="Local file history possibilities in Emacs" data-slug="local"><title>Sun 9:40- 9:55 Local file history possibilities in Emacs</title><rect x="54" y="20" opacity="0.5" width="20" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(72,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">local</text></g></a><a href="/2026/talks/hutch" data-start="2026-12-13T15:15:00+0000" data-end="2026-12-13T15:25:00+0000" title="hutch: code reviews for the mildly disenfranchised" data-slug="hutch"><title>Sun 10:15-10:25 hutch: code reviews for the mildly disenfranchised</title><rect x="102" y="20" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(113,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">hutch</text></g></a><a href="/2026/talks/team" data-start="2026-12-13T15:35:00+0000" data-end="2026-12-13T15:55:00+0000" title="Beyond the Chatbot: Team-Oriented AI in Emacs" data-slug="team"><title>Sun 10:35-10:55 Beyond the Chatbot: Team-Oriented AI in Emacs</title><rect x="130" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(155,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">team</text></g></a><a href="/2026/talks/compile" data-start="2026-12-13T16:15:00+0000" data-end="2026-12-13T16:35:00+0000" title="Beyond shell history: Saving compilation output in Emacs" data-slug="compile"><title>Sun 11:15-11:35 Beyond shell history: Saving compilation output in Emacs</title><rect x="185" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(210,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">compile</text></g></a><a href="/2026/talks/dnd" data-start="2026-12-13T18:00:00+0000" data-end="2026-12-13T18:20:00+0000" title="DnD and Org Roam: Becoming a Better DM with Emacs" data-slug="dnd"><title>Sun 1:00- 1:20 DnD and Org Roam: Becoming a Better DM with Emacs</title><rect x="329" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(354,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">dnd</text></g></a><a href="/2026/talks/bible" data-start="2026-12-13T18:30:00+0000" data-end="2026-12-13T18:50:00+0000" title="bible-gateway: A Two-Edged Sword in Emacs" data-slug="bible"><title>Sun 1:30- 1:50 bible-gateway: A Two-Edged Sword in Emacs</title><rect x="370" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(395,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">bible</text></g></a><a href="/2026/talks/svg" data-start="2026-12-13T19:10:00+0000" data-end="2026-12-13T19:30:00+0000" title="A (sort of) REPL for learning SVG" data-slug="svg"><title>Sun 2:10- 2:30 A (sort of) REPL for learning SVG</title><rect x="425" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(450,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">svg</text></g></a><a href="/2026/talks/align" data-start="2026-12-13T19:50:00+0000" data-end="2026-12-13T20:10:00+0000" title="Column-aligning text in Emacs" data-slug="align"><title>Sun 2:50- 3:10 Column-aligning text in Emacs</title><rect x="480" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(505,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">align</text></g></a><a href="/2026/talks/anju" data-start="2026-12-13T20:30:00+0000" data-end="2026-12-13T20:50:00+0000" title="Revisiting Emacs Mouse Interactions with Anju" data-slug="anju"><title>Sun 3:30- 3:50 Revisiting Emacs Mouse Interactions with Anju</title><rect x="535" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(560,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">anju</text></g></a><a href="/2026/talks/ghostel" data-start="2026-12-13T21:00:00+0000" data-end="2026-12-13T21:20:00+0000" title="Ghost in the Shell: a libghostty powered terminal for Emacs" data-slug="ghostel"><title>Sun 4:00- 4:20 Ghost in the Shell: a libghostty powered terminal for Emacs</title><rect x="576" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(601,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">ghostel</text></g></a><a href="/2026/talks/sun-close" data-start="2026-12-13T21:40:00+0000" data-end="2026-12-13T21:50:00+0000" title="Sunday closing remarks" data-slug="sun-close"><title>Sun 4:40- 4:50 Sunday closing remarks</title><rect x="631" y="20" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(642,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sun-close</text></g></a><a href="/2026/talks/prefix" data-start="2026-12-13T15:00:00+0000" data-end="2026-12-13T15:10:00+0000" title="prefix-tab-groups" data-slug="prefix"><title>Sun 10:00-10:10 prefix-tab-groups</title><rect x="82" y="75" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="5,5,5" fill="skyblue"></rect><g transform="translate(93,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">prefix</text></g></a><a href="/2026/talks/rau" data-start="2026-12-13T15:20:00+0000" data-end="2026-12-13T15:40:00+0000" title="Emacs as a Window Manager and concurrency" data-slug="rau"><title>Sun 10:20-10:40 Emacs as a Window Manager and concurrency</title><rect x="109" y="75" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(134,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">rau</text></g></a><a href="/2026/talks/babel" data-start="2026-12-13T16:00:00+0000" data-end="2026-12-13T16:10:00+0000" title="Org Babel everywhere" data-slug="babel"><title>Sun 11:00-11:10 Org Babel everywhere</title><rect x="164" y="75" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(175,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">babel</text></g></a><a href="/2026/talks/el-gpu" data-start="2026-12-13T16:30:00+0000" data-end="2026-12-13T16:50:00+0000" title="El-gpu and pix-el: GNU Emacs 2D and 3D game programming" data-slug="el-gpu"><title>Sun 11:30-11:50 El-gpu and pix-el: GNU Emacs 2D and 3D game programming</title><rect stroke-width="3" x="205" y="75" opacity="0.8" width="27" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(230,128)"><text font-weight="bold" fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">el-gpu</text></g></a><a href="/2026/talks/llms" data-start="2026-12-13T18:00:00+0000" data-end="2026-12-13T19:00:00+0000" title="[Panel] Emacs, LLMs, and Free Software" data-slug="llms"><title>Sun 1:00- 2:00 [Panel] Emacs, LLMs, and Free Software</title><rect x="329" y="75" opacity="0.5" width="82" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(409,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">llms</text></g></a><g transform="translate(0,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T14:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">9 AM EST</text></g><g transform="translate(82,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T15:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">10 AM EST</text></g><g transform="translate(164,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T16:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">11 AM EST</text></g><g transform="translate(247,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T17:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">12 PM EST</text></g><g transform="translate(329,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T18:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">1 PM EST</text></g><g transform="translate(411,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T19:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">2 PM EST</text></g><g transform="translate(494,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T20:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">3 PM EST</text></g><g transform="translate(576,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T21:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">4 PM EST</text></g><g transform="translate(658,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T22:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">5 PM EST</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 Sunday</title><rect width="700" height="150" x="0" y="0" fill="white"></rect><text data-start="2026-12-13T14:00:00+0000" class="day-label" font-size="10" fill="black" y="17" x="3">Sunday</text><a href="/2026/talks/sun-open" data-start="2026-12-13T14:00:00+0000" data-end="2026-12-13T14:10:00+0000" title="Sunday opening remarks" data-slug="sun-open"><title>Sun 9:00- 9:10 Sunday opening remarks</title><rect x="0" y="20" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(11,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sun-open</text></g></a><a href="/2026/talks/bone" data-start="2026-12-13T14:10:00+0000" data-end="2026-12-13T14:20:00+0000" title="BONE and gnaw.el: tracking what matters" data-slug="bone"><title>Sun 9:10- 9:20 BONE and gnaw.el: tracking what matters</title><rect x="13" y="20" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(24,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">bone</text></g></a><a href="/2026/talks/local" data-start="2026-12-13T14:40:00+0000" data-end="2026-12-13T14:55:00+0000" title="Local file history possibilities in Emacs" data-slug="local"><title>Sun 9:40- 9:55 Local file history possibilities in Emacs</title><rect x="54" y="20" opacity="0.5" width="20" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(72,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">local</text></g></a><a href="/2026/talks/hutch" data-start="2026-12-13T15:15:00+0000" data-end="2026-12-13T15:25:00+0000" title="hutch: code reviews for the mildly disenfranchised" data-slug="hutch"><title>Sun 10:15-10:25 hutch: code reviews for the mildly disenfranchised</title><rect x="102" y="20" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(113,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">hutch</text></g></a><a href="/2026/talks/team" data-start="2026-12-13T15:35:00+0000" data-end="2026-12-13T15:55:00+0000" title="Beyond the Chatbot: Team-Oriented AI in Emacs" data-slug="team"><title>Sun 10:35-10:55 Beyond the Chatbot: Team-Oriented AI in Emacs</title><rect x="130" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(155,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">team</text></g></a><a href="/2026/talks/compile" data-start="2026-12-13T16:15:00+0000" data-end="2026-12-13T16:35:00+0000" title="Beyond shell history: Saving compilation output in Emacs" data-slug="compile"><title>Sun 11:15-11:35 Beyond shell history: Saving compilation output in Emacs</title><rect x="185" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(210,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">compile</text></g></a><a href="/2026/talks/dnd" data-start="2026-12-13T18:00:00+0000" data-end="2026-12-13T18:20:00+0000" title="DnD and Org Roam: Becoming a Better DM with Emacs" data-slug="dnd"><title>Sun 1:00- 1:20 DnD and Org Roam: Becoming a Better DM with Emacs</title><rect x="329" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(354,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">dnd</text></g></a><a href="/2026/talks/bible" data-start="2026-12-13T18:30:00+0000" data-end="2026-12-13T18:50:00+0000" title="bible-gateway: A Two-Edged Sword in Emacs" data-slug="bible"><title>Sun 1:30- 1:50 bible-gateway: A Two-Edged Sword in Emacs</title><rect x="370" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(395,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">bible</text></g></a><a href="/2026/talks/ffs" data-start="2026-12-13T19:10:00+0000" data-end="2026-12-13T19:30:00+0000" title="Plain text presentations in GNU Emacs with ffs" data-slug="ffs"><title>Sun 2:10- 2:30 Plain text presentations in GNU Emacs with ffs</title><rect x="425" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(450,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">ffs</text></g></a><a href="/2026/talks/align" data-start="2026-12-13T19:50:00+0000" data-end="2026-12-13T20:10:00+0000" title="Column-aligning text in Emacs" data-slug="align"><title>Sun 2:50- 3:10 Column-aligning text in Emacs</title><rect x="480" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(505,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">align</text></g></a><a href="/2026/talks/anju" data-start="2026-12-13T20:30:00+0000" data-end="2026-12-13T20:50:00+0000" title="Revisiting Emacs Mouse Interactions with Anju" data-slug="anju"><title>Sun 3:30- 3:50 Revisiting Emacs Mouse Interactions with Anju</title><rect x="535" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(560,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">anju</text></g></a><a href="/2026/talks/android" data-start="2026-12-13T21:00:00+0000" data-end="2026-12-13T21:10:00+0000" title="Emacs on Android - Emacs for the next 40 years" data-slug="android"><title>Sun 4:00- 4:10 Emacs on Android - Emacs for the next 40 years</title><rect x="576" y="20" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(587,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">android</text></g></a><a href="/2026/talks/sun-close" data-start="2026-12-13T21:30:00+0000" data-end="2026-12-13T21:40:00+0000" title="Sunday closing remarks" data-slug="sun-close"><title>Sun 4:30- 4:40 Sunday closing remarks</title><rect x="617" y="20" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(628,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sun-close</text></g></a><a href="/2026/talks/prefix" data-start="2026-12-13T15:00:00+0000" data-end="2026-12-13T15:10:00+0000" title="prefix-tab-groups" data-slug="prefix"><title>Sun 10:00-10:10 prefix-tab-groups</title><rect x="82" y="75" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="5,5,5" fill="skyblue"></rect><g transform="translate(93,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">prefix</text></g></a><a href="/2026/talks/rau" data-start="2026-12-13T15:20:00+0000" data-end="2026-12-13T15:40:00+0000" title="Emacs as a Window Manager and concurrency" data-slug="rau"><title>Sun 10:20-10:40 Emacs as a Window Manager and concurrency</title><rect x="109" y="75" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(134,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">rau</text></g></a><a href="/2026/talks/babel" data-start="2026-12-13T16:00:00+0000" data-end="2026-12-13T16:10:00+0000" title="Org Babel everywhere" data-slug="babel"><title>Sun 11:00-11:10 Org Babel everywhere</title><rect x="164" y="75" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(175,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">babel</text></g></a><a href="/2026/talks/el-gpu" data-start="2026-12-13T16:30:00+0000" data-end="2026-12-13T16:50:00+0000" title="El-gpu and pix-el: GNU Emacs 2D and 3D game programming" data-slug="el-gpu"><title>Sun 11:30-11:50 El-gpu and pix-el: GNU Emacs 2D and 3D game programming</title><rect stroke-width="3" x="205" y="75" opacity="0.8" width="27" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(230,128)"><text font-weight="bold" fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">el-gpu</text></g></a><a href="/2026/talks/llms" data-start="2026-12-13T18:00:00+0000" data-end="2026-12-13T19:00:00+0000" title="[Panel] Emacs, LLMs, and Free Software" data-slug="llms"><title>Sun 1:00- 2:00 [Panel] Emacs, LLMs, and Free Software</title><rect x="329" y="75" opacity="0.5" width="82" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(409,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">llms</text></g></a><a href="/2026/talks/ghostel" data-start="2026-12-13T19:20:00+0000" data-end="2026-12-13T19:40:00+0000" title="Ghost in the Shell: a libghostty powered terminal for Emacs" data-slug="ghostel"><title>Sun 2:20- 2:40 Ghost in the Shell: a libghostty powered terminal for Emacs</title><rect x="439" y="75" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(464,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">ghostel</text></g></a><a href="/2026/talks/svg" data-start="2026-12-13T20:00:00+0000" data-end="2026-12-13T20:20:00+0000" title="A (sort of) REPL for learning SVG" data-slug="svg"><title>Sun 3:00- 3:20 A (sort of) REPL for learning SVG</title><rect x="494" y="75" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(519,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">svg</text></g></a><g transform="translate(0,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T14:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">9 AM EST</text></g><g transform="translate(82,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T15:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">10 AM EST</text></g><g transform="translate(164,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T16:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">11 AM EST</text></g><g transform="translate(247,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T17:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">12 PM EST</text></g><g transform="translate(329,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T18:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">1 PM EST</text></g><g transform="translate(411,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T19:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">2 PM EST</text></g><g transform="translate(494,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T20:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">3 PM EST</text></g><g transform="translate(576,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T21:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">4 PM EST</text></g><g transform="translate(658,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T22:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">5 PM EST</text></g></svg> </div> [[!toc ]] diff --git a/2026/info/emacspeak-before.md b/2026/info/emacspeak-before.md index 3873b2d7..763cc2c0 100644 --- a/2026/info/emacspeak-before.md +++ b/2026/info/emacspeak-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 2026-12-12. 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="emacspeak"> -<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 data-start="2026-12-12T14:00:00+0000" class="day-label" font-size="10" fill="black" y="17" x="3">Saturday</text><a href="/2026/talks/sat-open" data-start="2026-12-12T14:00:00+0000" data-end="2026-12-12T14:10:00+0000" title="Saturday opening remarks" data-slug="sat-open"><title>Sat 9:00- 9:10 Saturday opening remarks</title><rect x="0" y="20" opacity="0.5" width="13" height="54" 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="/2026/talks/planning" data-start="2026-12-12T14:10:00+0000" data-end="2026-12-12T14:30:00+0000" title="The Emacs Planning Habits of a Questionably Effective Person: My 40-year journey of planning with Emacs, Org Mode, paper journals, etc." data-slug="planning"><title>Sat 9:10- 9:30 The Emacs Planning Habits of a Questionably Effective Person: My 40-year journey of planning with Emacs, Org Mode, paper journals, etc.</title><rect x="13" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(38,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">planning</text></g></a><a href="/2026/talks/listen" data-start="2026-12-12T14:50:00+0000" data-end="2026-12-12T15:10:00+0000" title="Controlling Emacs by voice using Emacslisten" data-slug="listen"><title>Sat 9:50-10:10 Controlling Emacs by voice using Emacslisten</title><rect x="68" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(93,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">listen</text></g></a><a href="/2026/talks/emacspeak" data-start="2026-12-12T15:30:00+0000" data-end="2026-12-12T16:00:00+0000" title="Multi-dimensional information processing with Emacs and Emacspeak: a blind man's perspective" data-slug="emacspeak"><title>Sat 10:30-11:00 Multi-dimensional information processing with Emacs and Emacspeak: a blind man's perspective</title><rect stroke-width="3" x="123" y="20" opacity="0.8" width="41" height="54" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(162,73)"><text font-weight="bold" fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">emacspeak</text></g></a><a href="/2026/talks/ltx-talk" data-start="2026-12-12T16:10:00+0000" data-end="2026-12-12T16:30:00+0000" title="ltx-talk: Accessible presentations with ox-beamer" data-slug="ltx-talk"><title>Sat 11:10-11:30 ltx-talk: Accessible presentations with ox-beamer</title><rect x="178" y="20" opacity="0.5" width="27" height="54" 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)">ltx-talk</text></g></a><a href="/2026/talks/plots" data-start="2026-12-12T18:00:00+0000" data-end="2026-12-12T18:20:00+0000" title="Plots with ROOTs: Resilient data visualization with Emacs, Org and gnuplot" data-slug="plots"><title>Sat 1:00- 1:20 Plots with ROOTs: Resilient data visualization with Emacs, Org and gnuplot</title><rect x="329" y="20" opacity="0.5" width="27" height="54" 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)">plots</text></g></a><a href="/2026/talks/ffs" data-start="2026-12-12T18:40:00+0000" data-end="2026-12-12T19:00:00+0000" title="Plain text presentations in GNU Emacs with ffs" data-slug="ffs"><title>Sat 1:40- 2:00 Plain text presentations in GNU Emacs with ffs</title><rect x="384" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(409,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">ffs</text></g></a><a href="/2026/talks/mobile" data-start="2026-12-12T19:20:00+0000" data-end="2026-12-12T19:30:00+0000" title="How I solved Org Mode's biggest mobile and collaboration problems" data-slug="mobile"><title>Sat 2:20- 2:30 How I solved Org Mode's biggest mobile and collaboration problems</title><rect x="439" y="20" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(450,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">mobile</text></g></a><a href="/2026/talks/hyperbole" data-start="2026-12-12T19:50:00+0000" data-end="2026-12-12T20:10:00+0000" title="Hyperbole, My Dear Watson" data-slug="hyperbole"><title>Sat 2:50- 3:10 Hyperbole, My Dear Watson</title><rect x="480" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(505,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">hyperbole</text></g></a><a href="/2026/talks/koutliner" data-start="2026-12-12T20:30:00+0000" data-end="2026-12-12T20:50:00+0000" title="Hyperbole Koutliner: The Best Autonumbered, Hyperlinking Outliner for Emacs" data-slug="koutliner"><title>Sat 3:30- 3:50 Hyperbole Koutliner: The Best Autonumbered, Hyperlinking Outliner for Emacs</title><rect x="535" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(560,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">koutliner</text></g></a><a href="/2026/talks/writing" data-start="2026-12-12T21:10:00+0000" data-end="2026-12-12T21:30:00+0000" title="Close the writing accountability gap with Emacs" data-slug="writing"><title>Sat 4:10- 4:30 Close the writing accountability gap with Emacs</title><rect x="590" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(615,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">writing</text></g></a><a href="/2026/talks/android" data-start="2026-12-12T21:50:00+0000" data-end="2026-12-12T22:00:00+0000" title="Emacs on Android - Emacs for the next 40 years" data-slug="android"><title>Sat 4:50- 5:00 Emacs on Android - Emacs for the next 40 years</title><rect x="645" y="20" opacity="0.5" width="13" height="54" 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)">android</text></g></a><a href="/2026/talks/sat-close" data-start="2026-12-12T22:20:00+0000" data-end="2026-12-12T22:30:00+0000" title="Saturday closing remarks / open session" data-slug="sat-close"><title>Sat 5:20- 5:30 Saturday closing remarks / open session</title><rect x="686" y="20" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(697,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sat-close</text></g></a><a href="/2026/talks/community" data-start="2026-12-12T15:30:00+0000" data-end="2026-12-12T16:30:00+0000" title="[Panel] Improving the Emacs Community: Onboarding, Participation, and Growth" data-slug="community"><title>Sat 10:30-11:30 [Panel] Improving the Emacs Community: Onboarding, Participation, and Growth</title><rect x="123" y="75" opacity="0.5" width="82" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(203,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">community</text></g></a><a href="/2026/talks/portable" data-start="2026-12-12T18:00:00+0000" data-end="2026-12-12T18:15:00+0000" title="Emacs as my portable user space across operating platforms" data-slug="portable"><title>Sat 1:00- 1:15 Emacs as my portable user space across operating platforms</title><rect x="329" y="75" opacity="0.5" width="20" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(347,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">portable</text></g></a><a href="/2026/talks/os" data-start="2026-12-12T18:35:00+0000" data-end="2026-12-12T18:55:00+0000" title="Emacs everywhere: A fun romp through esoteric operating systems" data-slug="os"><title>Sat 1:35- 1:55 Emacs everywhere: A fun romp through esoteric operating systems</title><rect x="377" y="75" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(402,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">os</text></g></a><a href="/2026/talks/cadet" data-start="2026-12-12T19:15:00+0000" data-end="2026-12-12T19:25:00+0000" title="My Space Cadet Deck - an Android Stream Deck replacement with deep Emacs integration" data-slug="cadet"><title>Sat 2:15- 2:25 My Space Cadet Deck - an Android Stream Deck replacement with deep Emacs integration</title><rect x="432" y="75" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(443,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">cadet</text></g></a><a href="/2026/talks/remoto" data-start="2026-12-12T19:45:00+0000" data-end="2026-12-12T20:05:00+0000" title="El Remoto: browse any GitHub repos without cloning them" data-slug="remoto"><title>Sat 2:45- 3:05 El Remoto: browse any GitHub repos without cloning them</title><rect x="473" y="75" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(498,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">remoto</text></g></a><a href="/2026/talks/guile" data-start="2026-12-12T20:25:00+0000" data-end="2026-12-12T20:45:00+0000" title="æmacs: having a hoot with a guile emacs" data-slug="guile"><title>Sat 3:25- 3:45 æmacs: having a hoot with a guile emacs</title><rect x="528" y="75" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(553,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">guile</text></g></a><a href="/2026/talks/virus" data-start="2026-12-12T21:05:00+0000" data-end="2026-12-12T21:25:00+0000" title="It's Probably Not a Virus" data-slug="virus"><title>Sat 4:05- 4:25 It's Probably Not a Virus</title><rect x="583" y="75" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(608,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">virus</text></g></a><g transform="translate(0,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T14:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">9 AM EST</text></g><g transform="translate(82,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T15:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">10 AM EST</text></g><g transform="translate(164,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T16:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">11 AM EST</text></g><g transform="translate(247,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T17:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">12 PM EST</text></g><g transform="translate(329,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T18:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">1 PM EST</text></g><g transform="translate(411,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T19:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">2 PM EST</text></g><g transform="translate(494,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T20:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">3 PM EST</text></g><g transform="translate(576,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T21:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">4 PM EST</text></g><g transform="translate(658,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T22:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">5 PM EST</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 data-start="2026-12-12T14:00:00+0000" class="day-label" font-size="10" fill="black" y="17" x="3">Saturday</text><a href="/2026/talks/sat-open" data-start="2026-12-12T14:00:00+0000" data-end="2026-12-12T14:10:00+0000" title="Saturday opening remarks" data-slug="sat-open"><title>Sat 9:00- 9:10 Saturday opening remarks</title><rect x="0" y="20" opacity="0.5" width="13" height="54" 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="/2026/talks/planning" data-start="2026-12-12T14:10:00+0000" data-end="2026-12-12T14:30:00+0000" title="The Emacs Planning Habits of a Questionably Effective Person: My 40-year journey of planning with Emacs, Org Mode, paper journals, etc." data-slug="planning"><title>Sat 9:10- 9:30 The Emacs Planning Habits of a Questionably Effective Person: My 40-year journey of planning with Emacs, Org Mode, paper journals, etc.</title><rect x="13" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(38,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">planning</text></g></a><a href="/2026/talks/listen" data-start="2026-12-12T14:50:00+0000" data-end="2026-12-12T15:10:00+0000" title="Emacslisten: Controlling Emacs by voice" data-slug="listen"><title>Sat 9:50-10:10 Emacslisten: Controlling Emacs by voice</title><rect x="68" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(93,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">listen</text></g></a><a href="/2026/talks/emacspeak" data-start="2026-12-12T15:30:00+0000" data-end="2026-12-12T16:00:00+0000" title="Multi-dimensional information processing with Emacs and Emacspeak: a blind man's perspective" data-slug="emacspeak"><title>Sat 10:30-11:00 Multi-dimensional information processing with Emacs and Emacspeak: a blind man's perspective</title><rect stroke-width="3" x="123" y="20" opacity="0.8" width="41" height="54" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(162,73)"><text font-weight="bold" fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">emacspeak</text></g></a><a href="/2026/talks/ltx-talk" data-start="2026-12-12T16:10:00+0000" data-end="2026-12-12T16:30:00+0000" title="ltx-talk: Accessible presentations with ox-beamer" data-slug="ltx-talk"><title>Sat 11:10-11:30 ltx-talk: Accessible presentations with ox-beamer</title><rect x="178" y="20" opacity="0.5" width="27" height="54" 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)">ltx-talk</text></g></a><a href="/2026/talks/plots" data-start="2026-12-12T18:00:00+0000" data-end="2026-12-12T18:20:00+0000" title="Plots with ROOTs: Resilient data visualization with Emacs, Org and gnuplot" data-slug="plots"><title>Sat 1:00- 1:20 Plots with ROOTs: Resilient data visualization with Emacs, Org and gnuplot</title><rect x="329" y="20" opacity="0.5" width="27" height="54" 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)">plots</text></g></a><a href="/2026/talks/tasks" data-start="2026-12-12T18:40:00+0000" data-end="2026-12-12T19:00:00+0000" title="Personal task management under stress (with Org mode)" data-slug="tasks"><title>Sat 1:40- 2:00 Personal task management under stress (with Org mode)</title><rect x="384" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(409,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">tasks</text></g></a><a href="/2026/talks/mobile" data-start="2026-12-12T19:20:00+0000" data-end="2026-12-12T19:30:00+0000" title="How I solved Org Mode's biggest mobile and collaboration problems" data-slug="mobile"><title>Sat 2:20- 2:30 How I solved Org Mode's biggest mobile and collaboration problems</title><rect x="439" y="20" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(450,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">mobile</text></g></a><a href="/2026/talks/hyperbole" data-start="2026-12-12T19:50:00+0000" data-end="2026-12-12T20:10:00+0000" title="Hyperbole, My Dear Watson" data-slug="hyperbole"><title>Sat 2:50- 3:10 Hyperbole, My Dear Watson</title><rect x="480" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(505,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">hyperbole</text></g></a><a href="/2026/talks/koutliner" data-start="2026-12-12T20:30:00+0000" data-end="2026-12-12T20:50:00+0000" title="Hyperbole Koutliner: The Best Autonumbered, Hyperlinking Outliner for Emacs" data-slug="koutliner"><title>Sat 3:30- 3:50 Hyperbole Koutliner: The Best Autonumbered, Hyperlinking Outliner for Emacs</title><rect x="535" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(560,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">koutliner</text></g></a><a href="/2026/talks/writing" data-start="2026-12-12T21:10:00+0000" data-end="2026-12-12T21:30:00+0000" title="Close the writing accountability gap with Emacs" data-slug="writing"><title>Sat 4:10- 4:30 Close the writing accountability gap with Emacs</title><rect x="590" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(615,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">writing</text></g></a><a href="/2026/talks/sat-close" data-start="2026-12-12T21:50:00+0000" data-end="2026-12-12T22:00:00+0000" title="Saturday closing remarks / open session" data-slug="sat-close"><title>Sat 4:50- 5:00 Saturday closing remarks / open session</title><rect x="645" y="20" opacity="0.5" width="13" height="54" 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)">sat-close</text></g></a><a href="/2026/talks/community" data-start="2026-12-12T15:30:00+0000" data-end="2026-12-12T16:30:00+0000" title="[Panel] Improving the Emacs Community: Onboarding, Participation, and Growth" data-slug="community"><title>Sat 10:30-11:30 [Panel] Improving the Emacs Community: Onboarding, Participation, and Growth</title><rect x="123" y="75" opacity="0.5" width="82" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(203,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">community</text></g></a><a href="/2026/talks/portable" data-start="2026-12-12T18:00:00+0000" data-end="2026-12-12T18:15:00+0000" title="Emacs as my portable user space across operating platforms" data-slug="portable"><title>Sat 1:00- 1:15 Emacs as my portable user space across operating platforms</title><rect x="329" y="75" opacity="0.5" width="20" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(347,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">portable</text></g></a><a href="/2026/talks/os" data-start="2026-12-12T18:35:00+0000" data-end="2026-12-12T18:55:00+0000" title="Emacs everywhere: A fun romp through esoteric operating systems" data-slug="os"><title>Sat 1:35- 1:55 Emacs everywhere: A fun romp through esoteric operating systems</title><rect x="377" y="75" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(402,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">os</text></g></a><a href="/2026/talks/cadet" data-start="2026-12-12T19:15:00+0000" data-end="2026-12-12T19:25:00+0000" title="My Space Cadet Deck - an Android Stream Deck replacement with deep Emacs integration" data-slug="cadet"><title>Sat 2:15- 2:25 My Space Cadet Deck - an Android Stream Deck replacement with deep Emacs integration</title><rect x="432" y="75" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(443,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">cadet</text></g></a><a href="/2026/talks/remoto" data-start="2026-12-12T19:45:00+0000" data-end="2026-12-12T20:05:00+0000" title="El Remoto: browse any GitHub repos without cloning them" data-slug="remoto"><title>Sat 2:45- 3:05 El Remoto: browse any GitHub repos without cloning them</title><rect x="473" y="75" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(498,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">remoto</text></g></a><a href="/2026/talks/guile" data-start="2026-12-12T20:25:00+0000" data-end="2026-12-12T20:45:00+0000" title="æmacs: having a hoot with a guile emacs" data-slug="guile"><title>Sat 3:25- 3:45 æmacs: having a hoot with a guile emacs</title><rect x="528" y="75" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(553,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">guile</text></g></a><a href="/2026/talks/virus" data-start="2026-12-12T21:05:00+0000" data-end="2026-12-12T21:25:00+0000" title="It's Probably Not a Virus" data-slug="virus"><title>Sat 4:05- 4:25 It's Probably Not a Virus</title><rect x="583" y="75" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(608,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">virus</text></g></a><g transform="translate(0,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T14:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">9 AM EST</text></g><g transform="translate(82,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T15:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">10 AM EST</text></g><g transform="translate(164,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T16:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">11 AM EST</text></g><g transform="translate(247,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T17:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">12 PM EST</text></g><g transform="translate(329,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T18:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">1 PM EST</text></g><g transform="translate(411,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T19:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">2 PM EST</text></g><g transform="translate(494,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T20:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">3 PM EST</text></g><g transform="translate(576,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T21:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">4 PM EST</text></g><g transform="translate(658,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T22:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">5 PM EST</text></g></svg> </div> [[!toc ]] diff --git a/2026/info/emacspeak-nav.md b/2026/info/emacspeak-nav.md index f7f1de9b..40fcdcd7 100644 --- a/2026/info/emacspeak-nav.md +++ b/2026/info/emacspeak-nav.md @@ -1,7 +1,7 @@ <div class="talk-nav"> Back to the [[talks]] -Previous by time: <a href="/2026/talks/listen">Controlling Emacs by voice using Emacslisten</a> +Previous by time: <a href="/2026/talks/listen">Emacslisten: Controlling Emacs by voice</a> Next by time: <a href="/2026/talks/community">[Panel] Improving the Emacs Community: Onboarding, Participation, and Growth</a> Track: <span class="sched-track General">General</span> - <strong><a href="https://emacsconf.org/2026/watch/gen">Watch</a></strong> </div> diff --git a/2026/info/ffs-before.md b/2026/info/ffs-before.md index 21255d78..bb113f06 100644 --- a/2026/info/ffs-before.md +++ b/2026/info/ffs-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 2026-12-12. 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="ffs"> -<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 data-start="2026-12-12T14:00:00+0000" class="day-label" font-size="10" fill="black" y="17" x="3">Saturday</text><a href="/2026/talks/sat-open" data-start="2026-12-12T14:00:00+0000" data-end="2026-12-12T14:10:00+0000" title="Saturday opening remarks" data-slug="sat-open"><title>Sat 9:00- 9:10 Saturday opening remarks</title><rect x="0" y="20" opacity="0.5" width="13" height="54" 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="/2026/talks/planning" data-start="2026-12-12T14:10:00+0000" data-end="2026-12-12T14:30:00+0000" title="The Emacs Planning Habits of a Questionably Effective Person: My 40-year journey of planning with Emacs, Org Mode, paper journals, etc." data-slug="planning"><title>Sat 9:10- 9:30 The Emacs Planning Habits of a Questionably Effective Person: My 40-year journey of planning with Emacs, Org Mode, paper journals, etc.</title><rect x="13" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(38,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">planning</text></g></a><a href="/2026/talks/listen" data-start="2026-12-12T14:50:00+0000" data-end="2026-12-12T15:10:00+0000" title="Controlling Emacs by voice using Emacslisten" data-slug="listen"><title>Sat 9:50-10:10 Controlling Emacs by voice using Emacslisten</title><rect x="68" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(93,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">listen</text></g></a><a href="/2026/talks/emacspeak" data-start="2026-12-12T15:30:00+0000" data-end="2026-12-12T16:00:00+0000" title="Multi-dimensional information processing with Emacs and Emacspeak: a blind man's perspective" data-slug="emacspeak"><title>Sat 10:30-11:00 Multi-dimensional information processing with Emacs and Emacspeak: a blind man's perspective</title><rect x="123" y="20" opacity="0.5" width="41" height="54" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(162,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">emacspeak</text></g></a><a href="/2026/talks/ltx-talk" data-start="2026-12-12T16:10:00+0000" data-end="2026-12-12T16:30:00+0000" title="ltx-talk: Accessible presentations with ox-beamer" data-slug="ltx-talk"><title>Sat 11:10-11:30 ltx-talk: Accessible presentations with ox-beamer</title><rect x="178" y="20" opacity="0.5" width="27" height="54" 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)">ltx-talk</text></g></a><a href="/2026/talks/plots" data-start="2026-12-12T18:00:00+0000" data-end="2026-12-12T18:20:00+0000" title="Plots with ROOTs: Resilient data visualization with Emacs, Org and gnuplot" data-slug="plots"><title>Sat 1:00- 1:20 Plots with ROOTs: Resilient data visualization with Emacs, Org and gnuplot</title><rect x="329" y="20" opacity="0.5" width="27" height="54" 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)">plots</text></g></a><a href="/2026/talks/ffs" data-start="2026-12-12T18:40:00+0000" data-end="2026-12-12T19:00:00+0000" title="Plain text presentations in GNU Emacs with ffs" data-slug="ffs"><title>Sat 1:40- 2:00 Plain text presentations in GNU Emacs with ffs</title><rect stroke-width="3" x="384" y="20" opacity="0.8" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(409,73)"><text font-weight="bold" fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">ffs</text></g></a><a href="/2026/talks/mobile" data-start="2026-12-12T19:20:00+0000" data-end="2026-12-12T19:30:00+0000" title="How I solved Org Mode's biggest mobile and collaboration problems" data-slug="mobile"><title>Sat 2:20- 2:30 How I solved Org Mode's biggest mobile and collaboration problems</title><rect x="439" y="20" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(450,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">mobile</text></g></a><a href="/2026/talks/hyperbole" data-start="2026-12-12T19:50:00+0000" data-end="2026-12-12T20:10:00+0000" title="Hyperbole, My Dear Watson" data-slug="hyperbole"><title>Sat 2:50- 3:10 Hyperbole, My Dear Watson</title><rect x="480" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(505,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">hyperbole</text></g></a><a href="/2026/talks/koutliner" data-start="2026-12-12T20:30:00+0000" data-end="2026-12-12T20:50:00+0000" title="Hyperbole Koutliner: The Best Autonumbered, Hyperlinking Outliner for Emacs" data-slug="koutliner"><title>Sat 3:30- 3:50 Hyperbole Koutliner: The Best Autonumbered, Hyperlinking Outliner for Emacs</title><rect x="535" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(560,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">koutliner</text></g></a><a href="/2026/talks/writing" data-start="2026-12-12T21:10:00+0000" data-end="2026-12-12T21:30:00+0000" title="Close the writing accountability gap with Emacs" data-slug="writing"><title>Sat 4:10- 4:30 Close the writing accountability gap with Emacs</title><rect x="590" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(615,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">writing</text></g></a><a href="/2026/talks/android" data-start="2026-12-12T21:50:00+0000" data-end="2026-12-12T22:00:00+0000" title="Emacs on Android - Emacs for the next 40 years" data-slug="android"><title>Sat 4:50- 5:00 Emacs on Android - Emacs for the next 40 years</title><rect x="645" y="20" opacity="0.5" width="13" height="54" 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)">android</text></g></a><a href="/2026/talks/sat-close" data-start="2026-12-12T22:20:00+0000" data-end="2026-12-12T22:30:00+0000" title="Saturday closing remarks / open session" data-slug="sat-close"><title>Sat 5:20- 5:30 Saturday closing remarks / open session</title><rect x="686" y="20" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(697,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sat-close</text></g></a><a href="/2026/talks/community" data-start="2026-12-12T15:30:00+0000" data-end="2026-12-12T16:30:00+0000" title="[Panel] Improving the Emacs Community: Onboarding, Participation, and Growth" data-slug="community"><title>Sat 10:30-11:30 [Panel] Improving the Emacs Community: Onboarding, Participation, and Growth</title><rect x="123" y="75" opacity="0.5" width="82" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(203,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">community</text></g></a><a href="/2026/talks/portable" data-start="2026-12-12T18:00:00+0000" data-end="2026-12-12T18:15:00+0000" title="Emacs as my portable user space across operating platforms" data-slug="portable"><title>Sat 1:00- 1:15 Emacs as my portable user space across operating platforms</title><rect x="329" y="75" opacity="0.5" width="20" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(347,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">portable</text></g></a><a href="/2026/talks/os" data-start="2026-12-12T18:35:00+0000" data-end="2026-12-12T18:55:00+0000" title="Emacs everywhere: A fun romp through esoteric operating systems" data-slug="os"><title>Sat 1:35- 1:55 Emacs everywhere: A fun romp through esoteric operating systems</title><rect x="377" y="75" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(402,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">os</text></g></a><a href="/2026/talks/cadet" data-start="2026-12-12T19:15:00+0000" data-end="2026-12-12T19:25:00+0000" title="My Space Cadet Deck - an Android Stream Deck replacement with deep Emacs integration" data-slug="cadet"><title>Sat 2:15- 2:25 My Space Cadet Deck - an Android Stream Deck replacement with deep Emacs integration</title><rect x="432" y="75" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(443,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">cadet</text></g></a><a href="/2026/talks/remoto" data-start="2026-12-12T19:45:00+0000" data-end="2026-12-12T20:05:00+0000" title="El Remoto: browse any GitHub repos without cloning them" data-slug="remoto"><title>Sat 2:45- 3:05 El Remoto: browse any GitHub repos without cloning them</title><rect x="473" y="75" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(498,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">remoto</text></g></a><a href="/2026/talks/guile" data-start="2026-12-12T20:25:00+0000" data-end="2026-12-12T20:45:00+0000" title="æmacs: having a hoot with a guile emacs" data-slug="guile"><title>Sat 3:25- 3:45 æmacs: having a hoot with a guile emacs</title><rect x="528" y="75" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(553,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">guile</text></g></a><a href="/2026/talks/virus" data-start="2026-12-12T21:05:00+0000" data-end="2026-12-12T21:25:00+0000" title="It's Probably Not a Virus" data-slug="virus"><title>Sat 4:05- 4:25 It's Probably Not a Virus</title><rect x="583" y="75" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(608,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">virus</text></g></a><g transform="translate(0,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T14:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">9 AM EST</text></g><g transform="translate(82,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T15:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">10 AM EST</text></g><g transform="translate(164,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T16:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">11 AM EST</text></g><g transform="translate(247,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T17:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">12 PM EST</text></g><g transform="translate(329,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T18:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">1 PM EST</text></g><g transform="translate(411,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T19:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">2 PM EST</text></g><g transform="translate(494,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T20:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">3 PM EST</text></g><g transform="translate(576,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T21:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">4 PM EST</text></g><g transform="translate(658,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T22:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">5 PM EST</text></g></svg> +The following image shows where the talk is in the schedule for Sun 2026-12-13. 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="ffs"> +<svg width="700" height="150" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><title>Schedule for Sunday</title><rect width="700" height="150" x="0" y="0" fill="white"></rect><text data-start="2026-12-13T14:00:00+0000" class="day-label" font-size="10" fill="black" y="17" x="3">Sunday</text><a href="/2026/talks/sun-open" data-start="2026-12-13T14:00:00+0000" data-end="2026-12-13T14:10:00+0000" title="Sunday opening remarks" data-slug="sun-open"><title>Sun 9:00- 9:10 Sunday opening remarks</title><rect x="0" y="20" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(11,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sun-open</text></g></a><a href="/2026/talks/bone" data-start="2026-12-13T14:10:00+0000" data-end="2026-12-13T14:20:00+0000" title="BONE and gnaw.el: tracking what matters" data-slug="bone"><title>Sun 9:10- 9:20 BONE and gnaw.el: tracking what matters</title><rect x="13" y="20" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(24,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">bone</text></g></a><a href="/2026/talks/local" data-start="2026-12-13T14:40:00+0000" data-end="2026-12-13T14:55:00+0000" title="Local file history possibilities in Emacs" data-slug="local"><title>Sun 9:40- 9:55 Local file history possibilities in Emacs</title><rect x="54" y="20" opacity="0.5" width="20" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(72,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">local</text></g></a><a href="/2026/talks/hutch" data-start="2026-12-13T15:15:00+0000" data-end="2026-12-13T15:25:00+0000" title="hutch: code reviews for the mildly disenfranchised" data-slug="hutch"><title>Sun 10:15-10:25 hutch: code reviews for the mildly disenfranchised</title><rect x="102" y="20" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(113,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">hutch</text></g></a><a href="/2026/talks/team" data-start="2026-12-13T15:35:00+0000" data-end="2026-12-13T15:55:00+0000" title="Beyond the Chatbot: Team-Oriented AI in Emacs" data-slug="team"><title>Sun 10:35-10:55 Beyond the Chatbot: Team-Oriented AI in Emacs</title><rect x="130" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(155,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">team</text></g></a><a href="/2026/talks/compile" data-start="2026-12-13T16:15:00+0000" data-end="2026-12-13T16:35:00+0000" title="Beyond shell history: Saving compilation output in Emacs" data-slug="compile"><title>Sun 11:15-11:35 Beyond shell history: Saving compilation output in Emacs</title><rect x="185" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(210,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">compile</text></g></a><a href="/2026/talks/dnd" data-start="2026-12-13T18:00:00+0000" data-end="2026-12-13T18:20:00+0000" title="DnD and Org Roam: Becoming a Better DM with Emacs" data-slug="dnd"><title>Sun 1:00- 1:20 DnD and Org Roam: Becoming a Better DM with Emacs</title><rect x="329" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(354,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">dnd</text></g></a><a href="/2026/talks/bible" data-start="2026-12-13T18:30:00+0000" data-end="2026-12-13T18:50:00+0000" title="bible-gateway: A Two-Edged Sword in Emacs" data-slug="bible"><title>Sun 1:30- 1:50 bible-gateway: A Two-Edged Sword in Emacs</title><rect x="370" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(395,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">bible</text></g></a><a href="/2026/talks/ffs" data-start="2026-12-13T19:10:00+0000" data-end="2026-12-13T19:30:00+0000" title="Plain text presentations in GNU Emacs with ffs" data-slug="ffs"><title>Sun 2:10- 2:30 Plain text presentations in GNU Emacs with ffs</title><rect stroke-width="3" x="425" y="20" opacity="0.8" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(450,73)"><text font-weight="bold" fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">ffs</text></g></a><a href="/2026/talks/align" data-start="2026-12-13T19:50:00+0000" data-end="2026-12-13T20:10:00+0000" title="Column-aligning text in Emacs" data-slug="align"><title>Sun 2:50- 3:10 Column-aligning text in Emacs</title><rect x="480" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(505,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">align</text></g></a><a href="/2026/talks/anju" data-start="2026-12-13T20:30:00+0000" data-end="2026-12-13T20:50:00+0000" title="Revisiting Emacs Mouse Interactions with Anju" data-slug="anju"><title>Sun 3:30- 3:50 Revisiting Emacs Mouse Interactions with Anju</title><rect x="535" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(560,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">anju</text></g></a><a href="/2026/talks/android" data-start="2026-12-13T21:00:00+0000" data-end="2026-12-13T21:10:00+0000" title="Emacs on Android - Emacs for the next 40 years" data-slug="android"><title>Sun 4:00- 4:10 Emacs on Android - Emacs for the next 40 years</title><rect x="576" y="20" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(587,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">android</text></g></a><a href="/2026/talks/sun-close" data-start="2026-12-13T21:30:00+0000" data-end="2026-12-13T21:40:00+0000" title="Sunday closing remarks" data-slug="sun-close"><title>Sun 4:30- 4:40 Sunday closing remarks</title><rect x="617" y="20" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(628,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sun-close</text></g></a><a href="/2026/talks/prefix" data-start="2026-12-13T15:00:00+0000" data-end="2026-12-13T15:10:00+0000" title="prefix-tab-groups" data-slug="prefix"><title>Sun 10:00-10:10 prefix-tab-groups</title><rect x="82" y="75" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="5,5,5" fill="skyblue"></rect><g transform="translate(93,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">prefix</text></g></a><a href="/2026/talks/rau" data-start="2026-12-13T15:20:00+0000" data-end="2026-12-13T15:40:00+0000" title="Emacs as a Window Manager and concurrency" data-slug="rau"><title>Sun 10:20-10:40 Emacs as a Window Manager and concurrency</title><rect x="109" y="75" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(134,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">rau</text></g></a><a href="/2026/talks/babel" data-start="2026-12-13T16:00:00+0000" data-end="2026-12-13T16:10:00+0000" title="Org Babel everywhere" data-slug="babel"><title>Sun 11:00-11:10 Org Babel everywhere</title><rect x="164" y="75" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(175,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">babel</text></g></a><a href="/2026/talks/el-gpu" data-start="2026-12-13T16:30:00+0000" data-end="2026-12-13T16:50:00+0000" title="El-gpu and pix-el: GNU Emacs 2D and 3D game programming" data-slug="el-gpu"><title>Sun 11:30-11:50 El-gpu and pix-el: GNU Emacs 2D and 3D game programming</title><rect x="205" y="75" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(230,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">el-gpu</text></g></a><a href="/2026/talks/llms" data-start="2026-12-13T18:00:00+0000" data-end="2026-12-13T19:00:00+0000" title="[Panel] Emacs, LLMs, and Free Software" data-slug="llms"><title>Sun 1:00- 2:00 [Panel] Emacs, LLMs, and Free Software</title><rect x="329" y="75" opacity="0.5" width="82" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(409,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">llms</text></g></a><a href="/2026/talks/ghostel" data-start="2026-12-13T19:20:00+0000" data-end="2026-12-13T19:40:00+0000" title="Ghost in the Shell: a libghostty powered terminal for Emacs" data-slug="ghostel"><title>Sun 2:20- 2:40 Ghost in the Shell: a libghostty powered terminal for Emacs</title><rect x="439" y="75" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(464,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">ghostel</text></g></a><a href="/2026/talks/svg" data-start="2026-12-13T20:00:00+0000" data-end="2026-12-13T20:20:00+0000" title="A (sort of) REPL for learning SVG" data-slug="svg"><title>Sun 3:00- 3:20 A (sort of) REPL for learning SVG</title><rect x="494" y="75" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(519,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">svg</text></g></a><g transform="translate(0,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T14:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">9 AM EST</text></g><g transform="translate(82,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T15:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">10 AM EST</text></g><g transform="translate(164,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T16:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">11 AM EST</text></g><g transform="translate(247,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T17:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">12 PM EST</text></g><g transform="translate(329,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T18:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">1 PM EST</text></g><g transform="translate(411,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T19:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">2 PM EST</text></g><g transform="translate(494,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T20:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">3 PM EST</text></g><g transform="translate(576,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T21:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">4 PM EST</text></g><g transform="translate(658,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T22:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">5 PM EST</text></g></svg> </div> [[!toc ]] @@ -9,7 +9,7 @@ Format: 20-min talk ; Q&A: BigBlueButton conference room <https://media.emacsc Etherpad: <https://pad.emacsconf.org/2026-ffs> 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="2026-12-12T18:40:00Z" end="2026-12-12T19:00:00Z"><div class="conf-time">Saturday, Dec 12 2026, ~1:40 PM - 2:00 PM EST (US/Eastern)</div><div class="others"><div>which is the same as:</div>Saturday, Dec 12 2026, ~12:40 PM - 1:00 PM CST (US/Central)<br />Saturday, Dec 12 2026, ~11:40 AM - 12:00 PM MST (US/Mountain)<br />Saturday, Dec 12 2026, ~10:40 AM - 11:00 AM PST (US/Pacific)<br />Saturday, Dec 12 2026, ~6:40 PM - 7:00 PM UTC <br />Saturday, Dec 12 2026, ~7:40 PM - 8:00 PM CET (Europe/Paris)<br />Saturday, Dec 12 2026, ~8:40 PM - 9:00 PM EET (Europe/Athens)<br />Sunday, Dec 13 2026, ~12:10 AM - 12:30 AM IST (Asia/Kolkata)<br />Sunday, Dec 13 2026, ~2:40 AM - 3:00 AM +08 (Asia/Singapore)<br />Sunday, Dec 13 2026, ~3:40 AM - 4:00 AM JST (Asia/Tokyo)</div></div><div><strong><a href="/2026/watch/gen/">Find out how to watch and participate</a></strong></div> +<div>Times in different time zones:</div><div class="times" start="2026-12-13T19:10:00Z" end="2026-12-13T19:30:00Z"><div class="conf-time">Sunday, Dec 13 2026, ~2:10 PM - 2:30 PM EST (US/Eastern)</div><div class="others"><div>which is the same as:</div>Sunday, Dec 13 2026, ~1:10 PM - 1:30 PM CST (US/Central)<br />Sunday, Dec 13 2026, ~12:10 PM - 12:30 PM MST (US/Mountain)<br />Sunday, Dec 13 2026, ~11:10 AM - 11:30 AM PST (US/Pacific)<br />Sunday, Dec 13 2026, ~7:10 PM - 7:30 PM UTC <br />Sunday, Dec 13 2026, ~8:10 PM - 8:30 PM CET (Europe/Paris)<br />Sunday, Dec 13 2026, ~9:10 PM - 9:30 PM EET (Europe/Athens)<br />Monday, Dec 14 2026, ~12:40 AM - 1:00 AM IST (Asia/Kolkata)<br />Monday, Dec 14 2026, ~3:10 AM - 3:30 AM +08 (Asia/Singapore)<br />Monday, Dec 14 2026, ~4:10 AM - 4:30 AM JST (Asia/Tokyo)</div></div><div><strong><a href="/2026/watch/gen/">Find out how to watch and participate</a></strong></div> diff --git a/2026/info/ffs-nav.md b/2026/info/ffs-nav.md index 9f595858..cfea13dc 100644 --- a/2026/info/ffs-nav.md +++ b/2026/info/ffs-nav.md @@ -1,7 +1,7 @@ <div class="talk-nav"> Back to the [[talks]] -Previous by time: <a href="/2026/talks/os">Emacs everywhere: A fun romp through esoteric operating systems</a> -Next by time: <a href="/2026/talks/cadet">My Space Cadet Deck - an Android Stream Deck replacement with deep Emacs integration</a> +Previous by time: <a href="/2026/talks/bible">bible-gateway: A Two-Edged Sword in Emacs</a> +Next by time: <a href="/2026/talks/ghostel">Ghost in the Shell: a libghostty powered terminal for Emacs</a> Track: <span class="sched-track General">General</span> - <strong><a href="https://emacsconf.org/2026/watch/gen">Watch</a></strong> </div> diff --git a/2026/info/ghostel-before.md b/2026/info/ghostel-before.md index 0eeed1e0..b2799d7f 100644 --- a/2026/info/ghostel-before.md +++ b/2026/info/ghostel-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 Sun 2026-12-13. 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="ghostel"> -<svg width="700" height="150" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><title>Schedule for Sunday</title><rect width="700" height="150" x="0" y="0" fill="white"></rect><text data-start="2026-12-13T14:00:00+0000" class="day-label" font-size="10" fill="black" y="17" x="3">Sunday</text><a href="/2026/talks/sun-open" data-start="2026-12-13T14:00:00+0000" data-end="2026-12-13T14:10:00+0000" title="Sunday opening remarks" data-slug="sun-open"><title>Sun 9:00- 9:10 Sunday opening remarks</title><rect x="0" y="20" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(11,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sun-open</text></g></a><a href="/2026/talks/bone" data-start="2026-12-13T14:10:00+0000" data-end="2026-12-13T14:20:00+0000" title="BONE and gnaw.el: tracking what matters" data-slug="bone"><title>Sun 9:10- 9:20 BONE and gnaw.el: tracking what matters</title><rect x="13" y="20" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(24,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">bone</text></g></a><a href="/2026/talks/local" data-start="2026-12-13T14:40:00+0000" data-end="2026-12-13T14:55:00+0000" title="Local file history possibilities in Emacs" data-slug="local"><title>Sun 9:40- 9:55 Local file history possibilities in Emacs</title><rect x="54" y="20" opacity="0.5" width="20" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(72,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">local</text></g></a><a href="/2026/talks/hutch" data-start="2026-12-13T15:15:00+0000" data-end="2026-12-13T15:25:00+0000" title="hutch: code reviews for the mildly disenfranchised" data-slug="hutch"><title>Sun 10:15-10:25 hutch: code reviews for the mildly disenfranchised</title><rect x="102" y="20" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(113,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">hutch</text></g></a><a href="/2026/talks/team" data-start="2026-12-13T15:35:00+0000" data-end="2026-12-13T15:55:00+0000" title="Beyond the Chatbot: Team-Oriented AI in Emacs" data-slug="team"><title>Sun 10:35-10:55 Beyond the Chatbot: Team-Oriented AI in Emacs</title><rect x="130" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(155,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">team</text></g></a><a href="/2026/talks/compile" data-start="2026-12-13T16:15:00+0000" data-end="2026-12-13T16:35:00+0000" title="Beyond shell history: Saving compilation output in Emacs" data-slug="compile"><title>Sun 11:15-11:35 Beyond shell history: Saving compilation output in Emacs</title><rect x="185" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(210,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">compile</text></g></a><a href="/2026/talks/dnd" data-start="2026-12-13T18:00:00+0000" data-end="2026-12-13T18:20:00+0000" title="DnD and Org Roam: Becoming a Better DM with Emacs" data-slug="dnd"><title>Sun 1:00- 1:20 DnD and Org Roam: Becoming a Better DM with Emacs</title><rect x="329" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(354,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">dnd</text></g></a><a href="/2026/talks/bible" data-start="2026-12-13T18:30:00+0000" data-end="2026-12-13T18:50:00+0000" title="bible-gateway: A Two-Edged Sword in Emacs" data-slug="bible"><title>Sun 1:30- 1:50 bible-gateway: A Two-Edged Sword in Emacs</title><rect x="370" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(395,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">bible</text></g></a><a href="/2026/talks/svg" data-start="2026-12-13T19:10:00+0000" data-end="2026-12-13T19:30:00+0000" title="A (sort of) REPL for learning SVG" data-slug="svg"><title>Sun 2:10- 2:30 A (sort of) REPL for learning SVG</title><rect x="425" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(450,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">svg</text></g></a><a href="/2026/talks/align" data-start="2026-12-13T19:50:00+0000" data-end="2026-12-13T20:10:00+0000" title="Column-aligning text in Emacs" data-slug="align"><title>Sun 2:50- 3:10 Column-aligning text in Emacs</title><rect x="480" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(505,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">align</text></g></a><a href="/2026/talks/anju" data-start="2026-12-13T20:30:00+0000" data-end="2026-12-13T20:50:00+0000" title="Revisiting Emacs Mouse Interactions with Anju" data-slug="anju"><title>Sun 3:30- 3:50 Revisiting Emacs Mouse Interactions with Anju</title><rect x="535" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(560,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">anju</text></g></a><a href="/2026/talks/ghostel" data-start="2026-12-13T21:00:00+0000" data-end="2026-12-13T21:20:00+0000" title="Ghost in the Shell: a libghostty powered terminal for Emacs" data-slug="ghostel"><title>Sun 4:00- 4:20 Ghost in the Shell: a libghostty powered terminal for Emacs</title><rect stroke-width="3" x="576" y="20" opacity="0.8" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(601,73)"><text font-weight="bold" fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">ghostel</text></g></a><a href="/2026/talks/sun-close" data-start="2026-12-13T21:40:00+0000" data-end="2026-12-13T21:50:00+0000" title="Sunday closing remarks" data-slug="sun-close"><title>Sun 4:40- 4:50 Sunday closing remarks</title><rect x="631" y="20" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(642,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sun-close</text></g></a><a href="/2026/talks/prefix" data-start="2026-12-13T15:00:00+0000" data-end="2026-12-13T15:10:00+0000" title="prefix-tab-groups" data-slug="prefix"><title>Sun 10:00-10:10 prefix-tab-groups</title><rect x="82" y="75" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="5,5,5" fill="skyblue"></rect><g transform="translate(93,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">prefix</text></g></a><a href="/2026/talks/rau" data-start="2026-12-13T15:20:00+0000" data-end="2026-12-13T15:40:00+0000" title="Emacs as a Window Manager and concurrency" data-slug="rau"><title>Sun 10:20-10:40 Emacs as a Window Manager and concurrency</title><rect x="109" y="75" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(134,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">rau</text></g></a><a href="/2026/talks/babel" data-start="2026-12-13T16:00:00+0000" data-end="2026-12-13T16:10:00+0000" title="Org Babel everywhere" data-slug="babel"><title>Sun 11:00-11:10 Org Babel everywhere</title><rect x="164" y="75" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(175,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">babel</text></g></a><a href="/2026/talks/el-gpu" data-start="2026-12-13T16:30:00+0000" data-end="2026-12-13T16:50:00+0000" title="El-gpu and pix-el: GNU Emacs 2D and 3D game programming" data-slug="el-gpu"><title>Sun 11:30-11:50 El-gpu and pix-el: GNU Emacs 2D and 3D game programming</title><rect x="205" y="75" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(230,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">el-gpu</text></g></a><a href="/2026/talks/llms" data-start="2026-12-13T18:00:00+0000" data-end="2026-12-13T19:00:00+0000" title="[Panel] Emacs, LLMs, and Free Software" data-slug="llms"><title>Sun 1:00- 2:00 [Panel] Emacs, LLMs, and Free Software</title><rect x="329" y="75" opacity="0.5" width="82" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(409,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">llms</text></g></a><g transform="translate(0,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T14:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">9 AM EST</text></g><g transform="translate(82,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T15:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">10 AM EST</text></g><g transform="translate(164,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T16:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">11 AM EST</text></g><g transform="translate(247,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T17:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">12 PM EST</text></g><g transform="translate(329,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T18:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">1 PM EST</text></g><g transform="translate(411,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T19:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">2 PM EST</text></g><g transform="translate(494,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T20:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">3 PM EST</text></g><g transform="translate(576,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T21:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">4 PM EST</text></g><g transform="translate(658,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T22:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">5 PM EST</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 Sunday</title><rect width="700" height="150" x="0" y="0" fill="white"></rect><text data-start="2026-12-13T14:00:00+0000" class="day-label" font-size="10" fill="black" y="17" x="3">Sunday</text><a href="/2026/talks/sun-open" data-start="2026-12-13T14:00:00+0000" data-end="2026-12-13T14:10:00+0000" title="Sunday opening remarks" data-slug="sun-open"><title>Sun 9:00- 9:10 Sunday opening remarks</title><rect x="0" y="20" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(11,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sun-open</text></g></a><a href="/2026/talks/bone" data-start="2026-12-13T14:10:00+0000" data-end="2026-12-13T14:20:00+0000" title="BONE and gnaw.el: tracking what matters" data-slug="bone"><title>Sun 9:10- 9:20 BONE and gnaw.el: tracking what matters</title><rect x="13" y="20" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(24,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">bone</text></g></a><a href="/2026/talks/local" data-start="2026-12-13T14:40:00+0000" data-end="2026-12-13T14:55:00+0000" title="Local file history possibilities in Emacs" data-slug="local"><title>Sun 9:40- 9:55 Local file history possibilities in Emacs</title><rect x="54" y="20" opacity="0.5" width="20" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(72,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">local</text></g></a><a href="/2026/talks/hutch" data-start="2026-12-13T15:15:00+0000" data-end="2026-12-13T15:25:00+0000" title="hutch: code reviews for the mildly disenfranchised" data-slug="hutch"><title>Sun 10:15-10:25 hutch: code reviews for the mildly disenfranchised</title><rect x="102" y="20" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(113,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">hutch</text></g></a><a href="/2026/talks/team" data-start="2026-12-13T15:35:00+0000" data-end="2026-12-13T15:55:00+0000" title="Beyond the Chatbot: Team-Oriented AI in Emacs" data-slug="team"><title>Sun 10:35-10:55 Beyond the Chatbot: Team-Oriented AI in Emacs</title><rect x="130" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(155,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">team</text></g></a><a href="/2026/talks/compile" data-start="2026-12-13T16:15:00+0000" data-end="2026-12-13T16:35:00+0000" title="Beyond shell history: Saving compilation output in Emacs" data-slug="compile"><title>Sun 11:15-11:35 Beyond shell history: Saving compilation output in Emacs</title><rect x="185" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(210,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">compile</text></g></a><a href="/2026/talks/dnd" data-start="2026-12-13T18:00:00+0000" data-end="2026-12-13T18:20:00+0000" title="DnD and Org Roam: Becoming a Better DM with Emacs" data-slug="dnd"><title>Sun 1:00- 1:20 DnD and Org Roam: Becoming a Better DM with Emacs</title><rect x="329" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(354,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">dnd</text></g></a><a href="/2026/talks/bible" data-start="2026-12-13T18:30:00+0000" data-end="2026-12-13T18:50:00+0000" title="bible-gateway: A Two-Edged Sword in Emacs" data-slug="bible"><title>Sun 1:30- 1:50 bible-gateway: A Two-Edged Sword in Emacs</title><rect x="370" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(395,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">bible</text></g></a><a href="/2026/talks/ffs" data-start="2026-12-13T19:10:00+0000" data-end="2026-12-13T19:30:00+0000" title="Plain text presentations in GNU Emacs with ffs" data-slug="ffs"><title>Sun 2:10- 2:30 Plain text presentations in GNU Emacs with ffs</title><rect x="425" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(450,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">ffs</text></g></a><a href="/2026/talks/align" data-start="2026-12-13T19:50:00+0000" data-end="2026-12-13T20:10:00+0000" title="Column-aligning text in Emacs" data-slug="align"><title>Sun 2:50- 3:10 Column-aligning text in Emacs</title><rect x="480" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(505,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">align</text></g></a><a href="/2026/talks/anju" data-start="2026-12-13T20:30:00+0000" data-end="2026-12-13T20:50:00+0000" title="Revisiting Emacs Mouse Interactions with Anju" data-slug="anju"><title>Sun 3:30- 3:50 Revisiting Emacs Mouse Interactions with Anju</title><rect x="535" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(560,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">anju</text></g></a><a href="/2026/talks/android" data-start="2026-12-13T21:00:00+0000" data-end="2026-12-13T21:10:00+0000" title="Emacs on Android - Emacs for the next 40 years" data-slug="android"><title>Sun 4:00- 4:10 Emacs on Android - Emacs for the next 40 years</title><rect x="576" y="20" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(587,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">android</text></g></a><a href="/2026/talks/sun-close" data-start="2026-12-13T21:30:00+0000" data-end="2026-12-13T21:40:00+0000" title="Sunday closing remarks" data-slug="sun-close"><title>Sun 4:30- 4:40 Sunday closing remarks</title><rect x="617" y="20" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(628,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sun-close</text></g></a><a href="/2026/talks/prefix" data-start="2026-12-13T15:00:00+0000" data-end="2026-12-13T15:10:00+0000" title="prefix-tab-groups" data-slug="prefix"><title>Sun 10:00-10:10 prefix-tab-groups</title><rect x="82" y="75" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="5,5,5" fill="skyblue"></rect><g transform="translate(93,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">prefix</text></g></a><a href="/2026/talks/rau" data-start="2026-12-13T15:20:00+0000" data-end="2026-12-13T15:40:00+0000" title="Emacs as a Window Manager and concurrency" data-slug="rau"><title>Sun 10:20-10:40 Emacs as a Window Manager and concurrency</title><rect x="109" y="75" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(134,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">rau</text></g></a><a href="/2026/talks/babel" data-start="2026-12-13T16:00:00+0000" data-end="2026-12-13T16:10:00+0000" title="Org Babel everywhere" data-slug="babel"><title>Sun 11:00-11:10 Org Babel everywhere</title><rect x="164" y="75" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(175,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">babel</text></g></a><a href="/2026/talks/el-gpu" data-start="2026-12-13T16:30:00+0000" data-end="2026-12-13T16:50:00+0000" title="El-gpu and pix-el: GNU Emacs 2D and 3D game programming" data-slug="el-gpu"><title>Sun 11:30-11:50 El-gpu and pix-el: GNU Emacs 2D and 3D game programming</title><rect x="205" y="75" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(230,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">el-gpu</text></g></a><a href="/2026/talks/llms" data-start="2026-12-13T18:00:00+0000" data-end="2026-12-13T19:00:00+0000" title="[Panel] Emacs, LLMs, and Free Software" data-slug="llms"><title>Sun 1:00- 2:00 [Panel] Emacs, LLMs, and Free Software</title><rect x="329" y="75" opacity="0.5" width="82" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(409,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">llms</text></g></a><a href="/2026/talks/ghostel" data-start="2026-12-13T19:20:00+0000" data-end="2026-12-13T19:40:00+0000" title="Ghost in the Shell: a libghostty powered terminal for Emacs" data-slug="ghostel"><title>Sun 2:20- 2:40 Ghost in the Shell: a libghostty powered terminal for Emacs</title><rect stroke-width="3" x="439" y="75" opacity="0.8" width="27" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(464,128)"><text font-weight="bold" fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">ghostel</text></g></a><a href="/2026/talks/svg" data-start="2026-12-13T20:00:00+0000" data-end="2026-12-13T20:20:00+0000" title="A (sort of) REPL for learning SVG" data-slug="svg"><title>Sun 3:00- 3:20 A (sort of) REPL for learning SVG</title><rect x="494" y="75" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(519,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">svg</text></g></a><g transform="translate(0,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T14:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">9 AM EST</text></g><g transform="translate(82,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T15:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">10 AM EST</text></g><g transform="translate(164,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T16:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">11 AM EST</text></g><g transform="translate(247,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T17:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">12 PM EST</text></g><g transform="translate(329,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T18:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">1 PM EST</text></g><g transform="translate(411,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T19:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">2 PM EST</text></g><g transform="translate(494,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T20:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">3 PM EST</text></g><g transform="translate(576,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T21:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">4 PM EST</text></g><g transform="translate(658,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T22:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">5 PM EST</text></g></svg> </div> [[!toc ]] @@ -9,7 +9,7 @@ Format: 20-min talk ; Q&A: BigBlueButton conference room <https://media.emacsc Etherpad: <https://pad.emacsconf.org/2026-ghostel> 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="2026-12-13T21:00:00Z" end="2026-12-13T21:20:00Z"><div class="conf-time">Sunday, Dec 13 2026, ~4:00 PM - 4:20 PM EST (US/Eastern)</div><div class="others"><div>which is the same as:</div>Sunday, Dec 13 2026, ~3:00 PM - 3:20 PM CST (US/Central)<br />Sunday, Dec 13 2026, ~2:00 PM - 2:20 PM MST (US/Mountain)<br />Sunday, Dec 13 2026, ~1:00 PM - 1:20 PM PST (US/Pacific)<br />Sunday, Dec 13 2026, ~9:00 PM - 9:20 PM UTC <br />Sunday, Dec 13 2026, ~10:00 PM - 10:20 PM CET (Europe/Paris)<br />Sunday, Dec 13 2026, ~11:00 PM - 11:20 PM EET (Europe/Athens)<br />Monday, Dec 14 2026, ~2:30 AM - 2:50 AM IST (Asia/Kolkata)<br />Monday, Dec 14 2026, ~5:00 AM - 5:20 AM +08 (Asia/Singapore)<br />Monday, Dec 14 2026, ~6:00 AM - 6:20 AM JST (Asia/Tokyo)</div></div><div><strong><a href="/2026/watch/gen/">Find out how to watch and participate</a></strong></div> +<div>Times in different time zones:</div><div class="times" start="2026-12-13T19:20:00Z" end="2026-12-13T19:40:00Z"><div class="conf-time">Sunday, Dec 13 2026, ~2:20 PM - 2:40 PM EST (US/Eastern)</div><div class="others"><div>which is the same as:</div>Sunday, Dec 13 2026, ~1:20 PM - 1:40 PM CST (US/Central)<br />Sunday, Dec 13 2026, ~12:20 PM - 12:40 PM MST (US/Mountain)<br />Sunday, Dec 13 2026, ~11:20 AM - 11:40 AM PST (US/Pacific)<br />Sunday, Dec 13 2026, ~7:20 PM - 7:40 PM UTC <br />Sunday, Dec 13 2026, ~8:20 PM - 8:40 PM CET (Europe/Paris)<br />Sunday, Dec 13 2026, ~9:20 PM - 9:40 PM EET (Europe/Athens)<br />Monday, Dec 14 2026, ~12:50 AM - 1:10 AM IST (Asia/Kolkata)<br />Monday, Dec 14 2026, ~3:20 AM - 3:40 AM +08 (Asia/Singapore)<br />Monday, Dec 14 2026, ~4:20 AM - 4:40 AM JST (Asia/Tokyo)</div></div><div><strong><a href="/2026/watch/dev/">Find out how to watch and participate</a></strong></div> diff --git a/2026/info/ghostel-nav.md b/2026/info/ghostel-nav.md index 58d08d1e..9cf5724f 100644 --- a/2026/info/ghostel-nav.md +++ b/2026/info/ghostel-nav.md @@ -1,7 +1,7 @@ <div class="talk-nav"> Back to the [[talks]] -Previous by time: <a href="/2026/talks/anju">Revisiting Emacs Mouse Interactions with Anju</a> -Next by time: <a href="/2026/talks/sun-close">Sunday closing remarks</a> -Track: <span class="sched-track General">General</span> - <strong><a href="https://emacsconf.org/2026/watch/gen">Watch</a></strong> +Previous by time: <a href="/2026/talks/ffs">Plain text presentations in GNU Emacs with ffs</a> +Next by time: <a href="/2026/talks/align">Column-aligning text in Emacs</a> +Track: <span class="sched-track Development">Development</span> - <strong><a href="https://emacsconf.org/2026/watch/gen">Watch</a></strong> </div> diff --git a/2026/info/guile-before.md b/2026/info/guile-before.md index 198e8b06..90756f85 100644 --- a/2026/info/guile-before.md +++ b/2026/info/guile-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 2026-12-12. Solid lines show talks with Q&A via BigBlueButton. Dashed lines show talks with Q&A via IRC or Etherpad.<div class="schedule-in-context schedule-svg-container" data-slug="guile"> -<svg width="700" height="150" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><title>Schedule for Saturday</title><rect width="700" height="150" x="0" y="0" fill="white"></rect><text data-start="2026-12-12T14:00:00+0000" class="day-label" font-size="10" fill="black" y="17" x="3">Saturday</text><a href="/2026/talks/sat-open" data-start="2026-12-12T14:00:00+0000" data-end="2026-12-12T14:10:00+0000" title="Saturday opening remarks" data-slug="sat-open"><title>Sat 9:00- 9:10 Saturday opening remarks</title><rect x="0" y="20" opacity="0.5" width="13" height="54" 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="/2026/talks/planning" data-start="2026-12-12T14:10:00+0000" data-end="2026-12-12T14:30:00+0000" title="The Emacs Planning Habits of a Questionably Effective Person: My 40-year journey of planning with Emacs, Org Mode, paper journals, etc." data-slug="planning"><title>Sat 9:10- 9:30 The Emacs Planning Habits of a Questionably Effective Person: My 40-year journey of planning with Emacs, Org Mode, paper journals, etc.</title><rect x="13" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(38,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">planning</text></g></a><a href="/2026/talks/listen" data-start="2026-12-12T14:50:00+0000" data-end="2026-12-12T15:10:00+0000" title="Controlling Emacs by voice using Emacslisten" data-slug="listen"><title>Sat 9:50-10:10 Controlling Emacs by voice using Emacslisten</title><rect x="68" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(93,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">listen</text></g></a><a href="/2026/talks/emacspeak" data-start="2026-12-12T15:30:00+0000" data-end="2026-12-12T16:00:00+0000" title="Multi-dimensional information processing with Emacs and Emacspeak: a blind man's perspective" data-slug="emacspeak"><title>Sat 10:30-11:00 Multi-dimensional information processing with Emacs and Emacspeak: a blind man's perspective</title><rect x="123" y="20" opacity="0.5" width="41" height="54" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(162,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">emacspeak</text></g></a><a href="/2026/talks/ltx-talk" data-start="2026-12-12T16:10:00+0000" data-end="2026-12-12T16:30:00+0000" title="ltx-talk: Accessible presentations with ox-beamer" data-slug="ltx-talk"><title>Sat 11:10-11:30 ltx-talk: Accessible presentations with ox-beamer</title><rect x="178" y="20" opacity="0.5" width="27" height="54" 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)">ltx-talk</text></g></a><a href="/2026/talks/plots" data-start="2026-12-12T18:00:00+0000" data-end="2026-12-12T18:20:00+0000" title="Plots with ROOTs: Resilient data visualization with Emacs, Org and gnuplot" data-slug="plots"><title>Sat 1:00- 1:20 Plots with ROOTs: Resilient data visualization with Emacs, Org and gnuplot</title><rect x="329" y="20" opacity="0.5" width="27" height="54" 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)">plots</text></g></a><a href="/2026/talks/ffs" data-start="2026-12-12T18:40:00+0000" data-end="2026-12-12T19:00:00+0000" title="Plain text presentations in GNU Emacs with ffs" data-slug="ffs"><title>Sat 1:40- 2:00 Plain text presentations in GNU Emacs with ffs</title><rect x="384" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(409,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">ffs</text></g></a><a href="/2026/talks/mobile" data-start="2026-12-12T19:20:00+0000" data-end="2026-12-12T19:30:00+0000" title="How I solved Org Mode's biggest mobile and collaboration problems" data-slug="mobile"><title>Sat 2:20- 2:30 How I solved Org Mode's biggest mobile and collaboration problems</title><rect x="439" y="20" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(450,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">mobile</text></g></a><a href="/2026/talks/hyperbole" data-start="2026-12-12T19:50:00+0000" data-end="2026-12-12T20:10:00+0000" title="Hyperbole, My Dear Watson" data-slug="hyperbole"><title>Sat 2:50- 3:10 Hyperbole, My Dear Watson</title><rect x="480" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(505,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">hyperbole</text></g></a><a href="/2026/talks/koutliner" data-start="2026-12-12T20:30:00+0000" data-end="2026-12-12T20:50:00+0000" title="Hyperbole Koutliner: The Best Autonumbered, Hyperlinking Outliner for Emacs" data-slug="koutliner"><title>Sat 3:30- 3:50 Hyperbole Koutliner: The Best Autonumbered, Hyperlinking Outliner for Emacs</title><rect x="535" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(560,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">koutliner</text></g></a><a href="/2026/talks/writing" data-start="2026-12-12T21:10:00+0000" data-end="2026-12-12T21:30:00+0000" title="Close the writing accountability gap with Emacs" data-slug="writing"><title>Sat 4:10- 4:30 Close the writing accountability gap with Emacs</title><rect x="590" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(615,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">writing</text></g></a><a href="/2026/talks/android" data-start="2026-12-12T21:50:00+0000" data-end="2026-12-12T22:00:00+0000" title="Emacs on Android - Emacs for the next 40 years" data-slug="android"><title>Sat 4:50- 5:00 Emacs on Android - Emacs for the next 40 years</title><rect x="645" y="20" opacity="0.5" width="13" height="54" 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)">android</text></g></a><a href="/2026/talks/sat-close" data-start="2026-12-12T22:20:00+0000" data-end="2026-12-12T22:30:00+0000" title="Saturday closing remarks / open session" data-slug="sat-close"><title>Sat 5:20- 5:30 Saturday closing remarks / open session</title><rect x="686" y="20" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(697,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sat-close</text></g></a><a href="/2026/talks/community" data-start="2026-12-12T15:30:00+0000" data-end="2026-12-12T16:30:00+0000" title="[Panel] Improving the Emacs Community: Onboarding, Participation, and Growth" data-slug="community"><title>Sat 10:30-11:30 [Panel] Improving the Emacs Community: Onboarding, Participation, and Growth</title><rect x="123" y="75" opacity="0.5" width="82" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(203,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">community</text></g></a><a href="/2026/talks/portable" data-start="2026-12-12T18:00:00+0000" data-end="2026-12-12T18:15:00+0000" title="Emacs as my portable user space across operating platforms" data-slug="portable"><title>Sat 1:00- 1:15 Emacs as my portable user space across operating platforms</title><rect x="329" y="75" opacity="0.5" width="20" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(347,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">portable</text></g></a><a href="/2026/talks/os" data-start="2026-12-12T18:35:00+0000" data-end="2026-12-12T18:55:00+0000" title="Emacs everywhere: A fun romp through esoteric operating systems" data-slug="os"><title>Sat 1:35- 1:55 Emacs everywhere: A fun romp through esoteric operating systems</title><rect x="377" y="75" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(402,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">os</text></g></a><a href="/2026/talks/cadet" data-start="2026-12-12T19:15:00+0000" data-end="2026-12-12T19:25:00+0000" title="My Space Cadet Deck - an Android Stream Deck replacement with deep Emacs integration" data-slug="cadet"><title>Sat 2:15- 2:25 My Space Cadet Deck - an Android Stream Deck replacement with deep Emacs integration</title><rect x="432" y="75" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(443,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">cadet</text></g></a><a href="/2026/talks/remoto" data-start="2026-12-12T19:45:00+0000" data-end="2026-12-12T20:05:00+0000" title="El Remoto: browse any GitHub repos without cloning them" data-slug="remoto"><title>Sat 2:45- 3:05 El Remoto: browse any GitHub repos without cloning them</title><rect x="473" y="75" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(498,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">remoto</text></g></a><a href="/2026/talks/guile" data-start="2026-12-12T20:25:00+0000" data-end="2026-12-12T20:45:00+0000" title="æmacs: having a hoot with a guile emacs" data-slug="guile"><title>Sat 3:25- 3:45 æmacs: having a hoot with a guile emacs</title><rect stroke-width="3" x="528" y="75" opacity="0.8" width="27" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(553,128)"><text font-weight="bold" fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">guile</text></g></a><a href="/2026/talks/virus" data-start="2026-12-12T21:05:00+0000" data-end="2026-12-12T21:25:00+0000" title="It's Probably Not a Virus" data-slug="virus"><title>Sat 4:05- 4:25 It's Probably Not a Virus</title><rect x="583" y="75" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(608,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">virus</text></g></a><g transform="translate(0,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T14:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">9 AM EST</text></g><g transform="translate(82,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T15:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">10 AM EST</text></g><g transform="translate(164,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T16:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">11 AM EST</text></g><g transform="translate(247,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T17:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">12 PM EST</text></g><g transform="translate(329,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T18:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">1 PM EST</text></g><g transform="translate(411,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T19:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">2 PM EST</text></g><g transform="translate(494,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T20:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">3 PM EST</text></g><g transform="translate(576,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T21:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">4 PM EST</text></g><g transform="translate(658,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T22:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">5 PM EST</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 data-start="2026-12-12T14:00:00+0000" class="day-label" font-size="10" fill="black" y="17" x="3">Saturday</text><a href="/2026/talks/sat-open" data-start="2026-12-12T14:00:00+0000" data-end="2026-12-12T14:10:00+0000" title="Saturday opening remarks" data-slug="sat-open"><title>Sat 9:00- 9:10 Saturday opening remarks</title><rect x="0" y="20" opacity="0.5" width="13" height="54" 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="/2026/talks/planning" data-start="2026-12-12T14:10:00+0000" data-end="2026-12-12T14:30:00+0000" title="The Emacs Planning Habits of a Questionably Effective Person: My 40-year journey of planning with Emacs, Org Mode, paper journals, etc." data-slug="planning"><title>Sat 9:10- 9:30 The Emacs Planning Habits of a Questionably Effective Person: My 40-year journey of planning with Emacs, Org Mode, paper journals, etc.</title><rect x="13" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(38,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">planning</text></g></a><a href="/2026/talks/listen" data-start="2026-12-12T14:50:00+0000" data-end="2026-12-12T15:10:00+0000" title="Emacslisten: Controlling Emacs by voice" data-slug="listen"><title>Sat 9:50-10:10 Emacslisten: Controlling Emacs by voice</title><rect x="68" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(93,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">listen</text></g></a><a href="/2026/talks/emacspeak" data-start="2026-12-12T15:30:00+0000" data-end="2026-12-12T16:00:00+0000" title="Multi-dimensional information processing with Emacs and Emacspeak: a blind man's perspective" data-slug="emacspeak"><title>Sat 10:30-11:00 Multi-dimensional information processing with Emacs and Emacspeak: a blind man's perspective</title><rect x="123" y="20" opacity="0.5" width="41" height="54" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(162,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">emacspeak</text></g></a><a href="/2026/talks/ltx-talk" data-start="2026-12-12T16:10:00+0000" data-end="2026-12-12T16:30:00+0000" title="ltx-talk: Accessible presentations with ox-beamer" data-slug="ltx-talk"><title>Sat 11:10-11:30 ltx-talk: Accessible presentations with ox-beamer</title><rect x="178" y="20" opacity="0.5" width="27" height="54" 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)">ltx-talk</text></g></a><a href="/2026/talks/plots" data-start="2026-12-12T18:00:00+0000" data-end="2026-12-12T18:20:00+0000" title="Plots with ROOTs: Resilient data visualization with Emacs, Org and gnuplot" data-slug="plots"><title>Sat 1:00- 1:20 Plots with ROOTs: Resilient data visualization with Emacs, Org and gnuplot</title><rect x="329" y="20" opacity="0.5" width="27" height="54" 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)">plots</text></g></a><a href="/2026/talks/tasks" data-start="2026-12-12T18:40:00+0000" data-end="2026-12-12T19:00:00+0000" title="Personal task management under stress (with Org mode)" data-slug="tasks"><title>Sat 1:40- 2:00 Personal task management under stress (with Org mode)</title><rect x="384" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(409,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">tasks</text></g></a><a href="/2026/talks/mobile" data-start="2026-12-12T19:20:00+0000" data-end="2026-12-12T19:30:00+0000" title="How I solved Org Mode's biggest mobile and collaboration problems" data-slug="mobile"><title>Sat 2:20- 2:30 How I solved Org Mode's biggest mobile and collaboration problems</title><rect x="439" y="20" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(450,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">mobile</text></g></a><a href="/2026/talks/hyperbole" data-start="2026-12-12T19:50:00+0000" data-end="2026-12-12T20:10:00+0000" title="Hyperbole, My Dear Watson" data-slug="hyperbole"><title>Sat 2:50- 3:10 Hyperbole, My Dear Watson</title><rect x="480" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(505,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">hyperbole</text></g></a><a href="/2026/talks/koutliner" data-start="2026-12-12T20:30:00+0000" data-end="2026-12-12T20:50:00+0000" title="Hyperbole Koutliner: The Best Autonumbered, Hyperlinking Outliner for Emacs" data-slug="koutliner"><title>Sat 3:30- 3:50 Hyperbole Koutliner: The Best Autonumbered, Hyperlinking Outliner for Emacs</title><rect x="535" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(560,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">koutliner</text></g></a><a href="/2026/talks/writing" data-start="2026-12-12T21:10:00+0000" data-end="2026-12-12T21:30:00+0000" title="Close the writing accountability gap with Emacs" data-slug="writing"><title>Sat 4:10- 4:30 Close the writing accountability gap with Emacs</title><rect x="590" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(615,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">writing</text></g></a><a href="/2026/talks/sat-close" data-start="2026-12-12T21:50:00+0000" data-end="2026-12-12T22:00:00+0000" title="Saturday closing remarks / open session" data-slug="sat-close"><title>Sat 4:50- 5:00 Saturday closing remarks / open session</title><rect x="645" y="20" opacity="0.5" width="13" height="54" 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)">sat-close</text></g></a><a href="/2026/talks/community" data-start="2026-12-12T15:30:00+0000" data-end="2026-12-12T16:30:00+0000" title="[Panel] Improving the Emacs Community: Onboarding, Participation, and Growth" data-slug="community"><title>Sat 10:30-11:30 [Panel] Improving the Emacs Community: Onboarding, Participation, and Growth</title><rect x="123" y="75" opacity="0.5" width="82" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(203,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">community</text></g></a><a href="/2026/talks/portable" data-start="2026-12-12T18:00:00+0000" data-end="2026-12-12T18:15:00+0000" title="Emacs as my portable user space across operating platforms" data-slug="portable"><title>Sat 1:00- 1:15 Emacs as my portable user space across operating platforms</title><rect x="329" y="75" opacity="0.5" width="20" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(347,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">portable</text></g></a><a href="/2026/talks/os" data-start="2026-12-12T18:35:00+0000" data-end="2026-12-12T18:55:00+0000" title="Emacs everywhere: A fun romp through esoteric operating systems" data-slug="os"><title>Sat 1:35- 1:55 Emacs everywhere: A fun romp through esoteric operating systems</title><rect x="377" y="75" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(402,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">os</text></g></a><a href="/2026/talks/cadet" data-start="2026-12-12T19:15:00+0000" data-end="2026-12-12T19:25:00+0000" title="My Space Cadet Deck - an Android Stream Deck replacement with deep Emacs integration" data-slug="cadet"><title>Sat 2:15- 2:25 My Space Cadet Deck - an Android Stream Deck replacement with deep Emacs integration</title><rect x="432" y="75" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(443,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">cadet</text></g></a><a href="/2026/talks/remoto" data-start="2026-12-12T19:45:00+0000" data-end="2026-12-12T20:05:00+0000" title="El Remoto: browse any GitHub repos without cloning them" data-slug="remoto"><title>Sat 2:45- 3:05 El Remoto: browse any GitHub repos without cloning them</title><rect x="473" y="75" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(498,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">remoto</text></g></a><a href="/2026/talks/guile" data-start="2026-12-12T20:25:00+0000" data-end="2026-12-12T20:45:00+0000" title="æmacs: having a hoot with a guile emacs" data-slug="guile"><title>Sat 3:25- 3:45 æmacs: having a hoot with a guile emacs</title><rect stroke-width="3" x="528" y="75" opacity="0.8" width="27" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(553,128)"><text font-weight="bold" fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">guile</text></g></a><a href="/2026/talks/virus" data-start="2026-12-12T21:05:00+0000" data-end="2026-12-12T21:25:00+0000" title="It's Probably Not a Virus" data-slug="virus"><title>Sat 4:05- 4:25 It's Probably Not a Virus</title><rect x="583" y="75" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(608,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">virus</text></g></a><g transform="translate(0,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T14:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">9 AM EST</text></g><g transform="translate(82,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T15:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">10 AM EST</text></g><g transform="translate(164,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T16:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">11 AM EST</text></g><g transform="translate(247,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T17:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">12 PM EST</text></g><g transform="translate(329,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T18:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">1 PM EST</text></g><g transform="translate(411,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T19:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">2 PM EST</text></g><g transform="translate(494,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T20:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">3 PM EST</text></g><g transform="translate(576,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T21:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">4 PM EST</text></g><g transform="translate(658,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T22:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">5 PM EST</text></g></svg> </div> [[!toc ]] diff --git a/2026/info/hutch-before.md b/2026/info/hutch-before.md index b30b119b..91cf0d7e 100644 --- a/2026/info/hutch-before.md +++ b/2026/info/hutch-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 Sun 2026-12-13. 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="hutch"> -<svg width="700" height="150" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><title>Schedule for Sunday</title><rect width="700" height="150" x="0" y="0" fill="white"></rect><text data-start="2026-12-13T14:00:00+0000" class="day-label" font-size="10" fill="black" y="17" x="3">Sunday</text><a href="/2026/talks/sun-open" data-start="2026-12-13T14:00:00+0000" data-end="2026-12-13T14:10:00+0000" title="Sunday opening remarks" data-slug="sun-open"><title>Sun 9:00- 9:10 Sunday opening remarks</title><rect x="0" y="20" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(11,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sun-open</text></g></a><a href="/2026/talks/bone" data-start="2026-12-13T14:10:00+0000" data-end="2026-12-13T14:20:00+0000" title="BONE and gnaw.el: tracking what matters" data-slug="bone"><title>Sun 9:10- 9:20 BONE and gnaw.el: tracking what matters</title><rect x="13" y="20" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(24,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">bone</text></g></a><a href="/2026/talks/local" data-start="2026-12-13T14:40:00+0000" data-end="2026-12-13T14:55:00+0000" title="Local file history possibilities in Emacs" data-slug="local"><title>Sun 9:40- 9:55 Local file history possibilities in Emacs</title><rect x="54" y="20" opacity="0.5" width="20" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(72,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">local</text></g></a><a href="/2026/talks/hutch" data-start="2026-12-13T15:15:00+0000" data-end="2026-12-13T15:25:00+0000" title="hutch: code reviews for the mildly disenfranchised" data-slug="hutch"><title>Sun 10:15-10:25 hutch: code reviews for the mildly disenfranchised</title><rect stroke-width="3" x="102" y="20" opacity="0.8" width="13" height="54" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(113,73)"><text font-weight="bold" fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">hutch</text></g></a><a href="/2026/talks/team" data-start="2026-12-13T15:35:00+0000" data-end="2026-12-13T15:55:00+0000" title="Beyond the Chatbot: Team-Oriented AI in Emacs" data-slug="team"><title>Sun 10:35-10:55 Beyond the Chatbot: Team-Oriented AI in Emacs</title><rect x="130" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(155,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">team</text></g></a><a href="/2026/talks/compile" data-start="2026-12-13T16:15:00+0000" data-end="2026-12-13T16:35:00+0000" title="Beyond shell history: Saving compilation output in Emacs" data-slug="compile"><title>Sun 11:15-11:35 Beyond shell history: Saving compilation output in Emacs</title><rect x="185" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(210,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">compile</text></g></a><a href="/2026/talks/dnd" data-start="2026-12-13T18:00:00+0000" data-end="2026-12-13T18:20:00+0000" title="DnD and Org Roam: Becoming a Better DM with Emacs" data-slug="dnd"><title>Sun 1:00- 1:20 DnD and Org Roam: Becoming a Better DM with Emacs</title><rect x="329" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(354,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">dnd</text></g></a><a href="/2026/talks/bible" data-start="2026-12-13T18:30:00+0000" data-end="2026-12-13T18:50:00+0000" title="bible-gateway: A Two-Edged Sword in Emacs" data-slug="bible"><title>Sun 1:30- 1:50 bible-gateway: A Two-Edged Sword in Emacs</title><rect x="370" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(395,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">bible</text></g></a><a href="/2026/talks/svg" data-start="2026-12-13T19:10:00+0000" data-end="2026-12-13T19:30:00+0000" title="A (sort of) REPL for learning SVG" data-slug="svg"><title>Sun 2:10- 2:30 A (sort of) REPL for learning SVG</title><rect x="425" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(450,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">svg</text></g></a><a href="/2026/talks/align" data-start="2026-12-13T19:50:00+0000" data-end="2026-12-13T20:10:00+0000" title="Column-aligning text in Emacs" data-slug="align"><title>Sun 2:50- 3:10 Column-aligning text in Emacs</title><rect x="480" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(505,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">align</text></g></a><a href="/2026/talks/anju" data-start="2026-12-13T20:30:00+0000" data-end="2026-12-13T20:50:00+0000" title="Revisiting Emacs Mouse Interactions with Anju" data-slug="anju"><title>Sun 3:30- 3:50 Revisiting Emacs Mouse Interactions with Anju</title><rect x="535" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(560,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">anju</text></g></a><a href="/2026/talks/ghostel" data-start="2026-12-13T21:00:00+0000" data-end="2026-12-13T21:20:00+0000" title="Ghost in the Shell: a libghostty powered terminal for Emacs" data-slug="ghostel"><title>Sun 4:00- 4:20 Ghost in the Shell: a libghostty powered terminal for Emacs</title><rect x="576" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(601,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">ghostel</text></g></a><a href="/2026/talks/sun-close" data-start="2026-12-13T21:40:00+0000" data-end="2026-12-13T21:50:00+0000" title="Sunday closing remarks" data-slug="sun-close"><title>Sun 4:40- 4:50 Sunday closing remarks</title><rect x="631" y="20" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(642,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sun-close</text></g></a><a href="/2026/talks/prefix" data-start="2026-12-13T15:00:00+0000" data-end="2026-12-13T15:10:00+0000" title="prefix-tab-groups" data-slug="prefix"><title>Sun 10:00-10:10 prefix-tab-groups</title><rect x="82" y="75" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="5,5,5" fill="skyblue"></rect><g transform="translate(93,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">prefix</text></g></a><a href="/2026/talks/rau" data-start="2026-12-13T15:20:00+0000" data-end="2026-12-13T15:40:00+0000" title="Emacs as a Window Manager and concurrency" data-slug="rau"><title>Sun 10:20-10:40 Emacs as a Window Manager and concurrency</title><rect x="109" y="75" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(134,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">rau</text></g></a><a href="/2026/talks/babel" data-start="2026-12-13T16:00:00+0000" data-end="2026-12-13T16:10:00+0000" title="Org Babel everywhere" data-slug="babel"><title>Sun 11:00-11:10 Org Babel everywhere</title><rect x="164" y="75" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(175,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">babel</text></g></a><a href="/2026/talks/el-gpu" data-start="2026-12-13T16:30:00+0000" data-end="2026-12-13T16:50:00+0000" title="El-gpu and pix-el: GNU Emacs 2D and 3D game programming" data-slug="el-gpu"><title>Sun 11:30-11:50 El-gpu and pix-el: GNU Emacs 2D and 3D game programming</title><rect x="205" y="75" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(230,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">el-gpu</text></g></a><a href="/2026/talks/llms" data-start="2026-12-13T18:00:00+0000" data-end="2026-12-13T19:00:00+0000" title="[Panel] Emacs, LLMs, and Free Software" data-slug="llms"><title>Sun 1:00- 2:00 [Panel] Emacs, LLMs, and Free Software</title><rect x="329" y="75" opacity="0.5" width="82" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(409,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">llms</text></g></a><g transform="translate(0,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T14:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">9 AM EST</text></g><g transform="translate(82,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T15:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">10 AM EST</text></g><g transform="translate(164,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T16:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">11 AM EST</text></g><g transform="translate(247,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T17:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">12 PM EST</text></g><g transform="translate(329,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T18:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">1 PM EST</text></g><g transform="translate(411,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T19:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">2 PM EST</text></g><g transform="translate(494,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T20:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">3 PM EST</text></g><g transform="translate(576,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T21:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">4 PM EST</text></g><g transform="translate(658,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T22:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">5 PM EST</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 Sunday</title><rect width="700" height="150" x="0" y="0" fill="white"></rect><text data-start="2026-12-13T14:00:00+0000" class="day-label" font-size="10" fill="black" y="17" x="3">Sunday</text><a href="/2026/talks/sun-open" data-start="2026-12-13T14:00:00+0000" data-end="2026-12-13T14:10:00+0000" title="Sunday opening remarks" data-slug="sun-open"><title>Sun 9:00- 9:10 Sunday opening remarks</title><rect x="0" y="20" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(11,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sun-open</text></g></a><a href="/2026/talks/bone" data-start="2026-12-13T14:10:00+0000" data-end="2026-12-13T14:20:00+0000" title="BONE and gnaw.el: tracking what matters" data-slug="bone"><title>Sun 9:10- 9:20 BONE and gnaw.el: tracking what matters</title><rect x="13" y="20" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(24,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">bone</text></g></a><a href="/2026/talks/local" data-start="2026-12-13T14:40:00+0000" data-end="2026-12-13T14:55:00+0000" title="Local file history possibilities in Emacs" data-slug="local"><title>Sun 9:40- 9:55 Local file history possibilities in Emacs</title><rect x="54" y="20" opacity="0.5" width="20" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(72,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">local</text></g></a><a href="/2026/talks/hutch" data-start="2026-12-13T15:15:00+0000" data-end="2026-12-13T15:25:00+0000" title="hutch: code reviews for the mildly disenfranchised" data-slug="hutch"><title>Sun 10:15-10:25 hutch: code reviews for the mildly disenfranchised</title><rect stroke-width="3" x="102" y="20" opacity="0.8" width="13" height="54" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(113,73)"><text font-weight="bold" fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">hutch</text></g></a><a href="/2026/talks/team" data-start="2026-12-13T15:35:00+0000" data-end="2026-12-13T15:55:00+0000" title="Beyond the Chatbot: Team-Oriented AI in Emacs" data-slug="team"><title>Sun 10:35-10:55 Beyond the Chatbot: Team-Oriented AI in Emacs</title><rect x="130" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(155,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">team</text></g></a><a href="/2026/talks/compile" data-start="2026-12-13T16:15:00+0000" data-end="2026-12-13T16:35:00+0000" title="Beyond shell history: Saving compilation output in Emacs" data-slug="compile"><title>Sun 11:15-11:35 Beyond shell history: Saving compilation output in Emacs</title><rect x="185" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(210,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">compile</text></g></a><a href="/2026/talks/dnd" data-start="2026-12-13T18:00:00+0000" data-end="2026-12-13T18:20:00+0000" title="DnD and Org Roam: Becoming a Better DM with Emacs" data-slug="dnd"><title>Sun 1:00- 1:20 DnD and Org Roam: Becoming a Better DM with Emacs</title><rect x="329" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(354,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">dnd</text></g></a><a href="/2026/talks/bible" data-start="2026-12-13T18:30:00+0000" data-end="2026-12-13T18:50:00+0000" title="bible-gateway: A Two-Edged Sword in Emacs" data-slug="bible"><title>Sun 1:30- 1:50 bible-gateway: A Two-Edged Sword in Emacs</title><rect x="370" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(395,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">bible</text></g></a><a href="/2026/talks/ffs" data-start="2026-12-13T19:10:00+0000" data-end="2026-12-13T19:30:00+0000" title="Plain text presentations in GNU Emacs with ffs" data-slug="ffs"><title>Sun 2:10- 2:30 Plain text presentations in GNU Emacs with ffs</title><rect x="425" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(450,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">ffs</text></g></a><a href="/2026/talks/align" data-start="2026-12-13T19:50:00+0000" data-end="2026-12-13T20:10:00+0000" title="Column-aligning text in Emacs" data-slug="align"><title>Sun 2:50- 3:10 Column-aligning text in Emacs</title><rect x="480" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(505,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">align</text></g></a><a href="/2026/talks/anju" data-start="2026-12-13T20:30:00+0000" data-end="2026-12-13T20:50:00+0000" title="Revisiting Emacs Mouse Interactions with Anju" data-slug="anju"><title>Sun 3:30- 3:50 Revisiting Emacs Mouse Interactions with Anju</title><rect x="535" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(560,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">anju</text></g></a><a href="/2026/talks/android" data-start="2026-12-13T21:00:00+0000" data-end="2026-12-13T21:10:00+0000" title="Emacs on Android - Emacs for the next 40 years" data-slug="android"><title>Sun 4:00- 4:10 Emacs on Android - Emacs for the next 40 years</title><rect x="576" y="20" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(587,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">android</text></g></a><a href="/2026/talks/sun-close" data-start="2026-12-13T21:30:00+0000" data-end="2026-12-13T21:40:00+0000" title="Sunday closing remarks" data-slug="sun-close"><title>Sun 4:30- 4:40 Sunday closing remarks</title><rect x="617" y="20" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(628,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sun-close</text></g></a><a href="/2026/talks/prefix" data-start="2026-12-13T15:00:00+0000" data-end="2026-12-13T15:10:00+0000" title="prefix-tab-groups" data-slug="prefix"><title>Sun 10:00-10:10 prefix-tab-groups</title><rect x="82" y="75" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="5,5,5" fill="skyblue"></rect><g transform="translate(93,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">prefix</text></g></a><a href="/2026/talks/rau" data-start="2026-12-13T15:20:00+0000" data-end="2026-12-13T15:40:00+0000" title="Emacs as a Window Manager and concurrency" data-slug="rau"><title>Sun 10:20-10:40 Emacs as a Window Manager and concurrency</title><rect x="109" y="75" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(134,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">rau</text></g></a><a href="/2026/talks/babel" data-start="2026-12-13T16:00:00+0000" data-end="2026-12-13T16:10:00+0000" title="Org Babel everywhere" data-slug="babel"><title>Sun 11:00-11:10 Org Babel everywhere</title><rect x="164" y="75" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(175,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">babel</text></g></a><a href="/2026/talks/el-gpu" data-start="2026-12-13T16:30:00+0000" data-end="2026-12-13T16:50:00+0000" title="El-gpu and pix-el: GNU Emacs 2D and 3D game programming" data-slug="el-gpu"><title>Sun 11:30-11:50 El-gpu and pix-el: GNU Emacs 2D and 3D game programming</title><rect x="205" y="75" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(230,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">el-gpu</text></g></a><a href="/2026/talks/llms" data-start="2026-12-13T18:00:00+0000" data-end="2026-12-13T19:00:00+0000" title="[Panel] Emacs, LLMs, and Free Software" data-slug="llms"><title>Sun 1:00- 2:00 [Panel] Emacs, LLMs, and Free Software</title><rect x="329" y="75" opacity="0.5" width="82" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(409,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">llms</text></g></a><a href="/2026/talks/ghostel" data-start="2026-12-13T19:20:00+0000" data-end="2026-12-13T19:40:00+0000" title="Ghost in the Shell: a libghostty powered terminal for Emacs" data-slug="ghostel"><title>Sun 2:20- 2:40 Ghost in the Shell: a libghostty powered terminal for Emacs</title><rect x="439" y="75" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(464,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">ghostel</text></g></a><a href="/2026/talks/svg" data-start="2026-12-13T20:00:00+0000" data-end="2026-12-13T20:20:00+0000" title="A (sort of) REPL for learning SVG" data-slug="svg"><title>Sun 3:00- 3:20 A (sort of) REPL for learning SVG</title><rect x="494" y="75" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(519,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">svg</text></g></a><g transform="translate(0,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T14:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">9 AM EST</text></g><g transform="translate(82,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T15:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">10 AM EST</text></g><g transform="translate(164,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T16:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">11 AM EST</text></g><g transform="translate(247,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T17:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">12 PM EST</text></g><g transform="translate(329,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T18:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">1 PM EST</text></g><g transform="translate(411,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T19:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">2 PM EST</text></g><g transform="translate(494,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T20:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">3 PM EST</text></g><g transform="translate(576,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T21:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">4 PM EST</text></g><g transform="translate(658,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T22:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">5 PM EST</text></g></svg> </div> [[!toc ]] diff --git a/2026/info/hyperbole-before.md b/2026/info/hyperbole-before.md index f9271f77..72ff0256 100644 --- a/2026/info/hyperbole-before.md +++ b/2026/info/hyperbole-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 2026-12-12. Solid lines show talks with Q&A via BigBlueButton. Dashed lines show talks with Q&A via IRC or Etherpad.<div class="schedule-in-context schedule-svg-container" data-slug="hyperbole"> -<svg width="700" height="150" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><title>Schedule for Saturday</title><rect width="700" height="150" x="0" y="0" fill="white"></rect><text data-start="2026-12-12T14:00:00+0000" class="day-label" font-size="10" fill="black" y="17" x="3">Saturday</text><a href="/2026/talks/sat-open" data-start="2026-12-12T14:00:00+0000" data-end="2026-12-12T14:10:00+0000" title="Saturday opening remarks" data-slug="sat-open"><title>Sat 9:00- 9:10 Saturday opening remarks</title><rect x="0" y="20" opacity="0.5" width="13" height="54" 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="/2026/talks/planning" data-start="2026-12-12T14:10:00+0000" data-end="2026-12-12T14:30:00+0000" title="The Emacs Planning Habits of a Questionably Effective Person: My 40-year journey of planning with Emacs, Org Mode, paper journals, etc." data-slug="planning"><title>Sat 9:10- 9:30 The Emacs Planning Habits of a Questionably Effective Person: My 40-year journey of planning with Emacs, Org Mode, paper journals, etc.</title><rect x="13" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(38,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">planning</text></g></a><a href="/2026/talks/listen" data-start="2026-12-12T14:50:00+0000" data-end="2026-12-12T15:10:00+0000" title="Controlling Emacs by voice using Emacslisten" data-slug="listen"><title>Sat 9:50-10:10 Controlling Emacs by voice using Emacslisten</title><rect x="68" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(93,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">listen</text></g></a><a href="/2026/talks/emacspeak" data-start="2026-12-12T15:30:00+0000" data-end="2026-12-12T16:00:00+0000" title="Multi-dimensional information processing with Emacs and Emacspeak: a blind man's perspective" data-slug="emacspeak"><title>Sat 10:30-11:00 Multi-dimensional information processing with Emacs and Emacspeak: a blind man's perspective</title><rect x="123" y="20" opacity="0.5" width="41" height="54" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(162,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">emacspeak</text></g></a><a href="/2026/talks/ltx-talk" data-start="2026-12-12T16:10:00+0000" data-end="2026-12-12T16:30:00+0000" title="ltx-talk: Accessible presentations with ox-beamer" data-slug="ltx-talk"><title>Sat 11:10-11:30 ltx-talk: Accessible presentations with ox-beamer</title><rect x="178" y="20" opacity="0.5" width="27" height="54" 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)">ltx-talk</text></g></a><a href="/2026/talks/plots" data-start="2026-12-12T18:00:00+0000" data-end="2026-12-12T18:20:00+0000" title="Plots with ROOTs: Resilient data visualization with Emacs, Org and gnuplot" data-slug="plots"><title>Sat 1:00- 1:20 Plots with ROOTs: Resilient data visualization with Emacs, Org and gnuplot</title><rect x="329" y="20" opacity="0.5" width="27" height="54" 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)">plots</text></g></a><a href="/2026/talks/ffs" data-start="2026-12-12T18:40:00+0000" data-end="2026-12-12T19:00:00+0000" title="Plain text presentations in GNU Emacs with ffs" data-slug="ffs"><title>Sat 1:40- 2:00 Plain text presentations in GNU Emacs with ffs</title><rect x="384" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(409,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">ffs</text></g></a><a href="/2026/talks/mobile" data-start="2026-12-12T19:20:00+0000" data-end="2026-12-12T19:30:00+0000" title="How I solved Org Mode's biggest mobile and collaboration problems" data-slug="mobile"><title>Sat 2:20- 2:30 How I solved Org Mode's biggest mobile and collaboration problems</title><rect x="439" y="20" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(450,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">mobile</text></g></a><a href="/2026/talks/hyperbole" data-start="2026-12-12T19:50:00+0000" data-end="2026-12-12T20:10:00+0000" title="Hyperbole, My Dear Watson" data-slug="hyperbole"><title>Sat 2:50- 3:10 Hyperbole, My Dear Watson</title><rect stroke-width="3" x="480" y="20" opacity="0.8" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(505,73)"><text font-weight="bold" fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">hyperbole</text></g></a><a href="/2026/talks/koutliner" data-start="2026-12-12T20:30:00+0000" data-end="2026-12-12T20:50:00+0000" title="Hyperbole Koutliner: The Best Autonumbered, Hyperlinking Outliner for Emacs" data-slug="koutliner"><title>Sat 3:30- 3:50 Hyperbole Koutliner: The Best Autonumbered, Hyperlinking Outliner for Emacs</title><rect x="535" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(560,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">koutliner</text></g></a><a href="/2026/talks/writing" data-start="2026-12-12T21:10:00+0000" data-end="2026-12-12T21:30:00+0000" title="Close the writing accountability gap with Emacs" data-slug="writing"><title>Sat 4:10- 4:30 Close the writing accountability gap with Emacs</title><rect x="590" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(615,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">writing</text></g></a><a href="/2026/talks/android" data-start="2026-12-12T21:50:00+0000" data-end="2026-12-12T22:00:00+0000" title="Emacs on Android - Emacs for the next 40 years" data-slug="android"><title>Sat 4:50- 5:00 Emacs on Android - Emacs for the next 40 years</title><rect x="645" y="20" opacity="0.5" width="13" height="54" 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)">android</text></g></a><a href="/2026/talks/sat-close" data-start="2026-12-12T22:20:00+0000" data-end="2026-12-12T22:30:00+0000" title="Saturday closing remarks / open session" data-slug="sat-close"><title>Sat 5:20- 5:30 Saturday closing remarks / open session</title><rect x="686" y="20" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(697,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sat-close</text></g></a><a href="/2026/talks/community" data-start="2026-12-12T15:30:00+0000" data-end="2026-12-12T16:30:00+0000" title="[Panel] Improving the Emacs Community: Onboarding, Participation, and Growth" data-slug="community"><title>Sat 10:30-11:30 [Panel] Improving the Emacs Community: Onboarding, Participation, and Growth</title><rect x="123" y="75" opacity="0.5" width="82" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(203,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">community</text></g></a><a href="/2026/talks/portable" data-start="2026-12-12T18:00:00+0000" data-end="2026-12-12T18:15:00+0000" title="Emacs as my portable user space across operating platforms" data-slug="portable"><title>Sat 1:00- 1:15 Emacs as my portable user space across operating platforms</title><rect x="329" y="75" opacity="0.5" width="20" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(347,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">portable</text></g></a><a href="/2026/talks/os" data-start="2026-12-12T18:35:00+0000" data-end="2026-12-12T18:55:00+0000" title="Emacs everywhere: A fun romp through esoteric operating systems" data-slug="os"><title>Sat 1:35- 1:55 Emacs everywhere: A fun romp through esoteric operating systems</title><rect x="377" y="75" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(402,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">os</text></g></a><a href="/2026/talks/cadet" data-start="2026-12-12T19:15:00+0000" data-end="2026-12-12T19:25:00+0000" title="My Space Cadet Deck - an Android Stream Deck replacement with deep Emacs integration" data-slug="cadet"><title>Sat 2:15- 2:25 My Space Cadet Deck - an Android Stream Deck replacement with deep Emacs integration</title><rect x="432" y="75" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(443,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">cadet</text></g></a><a href="/2026/talks/remoto" data-start="2026-12-12T19:45:00+0000" data-end="2026-12-12T20:05:00+0000" title="El Remoto: browse any GitHub repos without cloning them" data-slug="remoto"><title>Sat 2:45- 3:05 El Remoto: browse any GitHub repos without cloning them</title><rect x="473" y="75" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(498,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">remoto</text></g></a><a href="/2026/talks/guile" data-start="2026-12-12T20:25:00+0000" data-end="2026-12-12T20:45:00+0000" title="æmacs: having a hoot with a guile emacs" data-slug="guile"><title>Sat 3:25- 3:45 æmacs: having a hoot with a guile emacs</title><rect x="528" y="75" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(553,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">guile</text></g></a><a href="/2026/talks/virus" data-start="2026-12-12T21:05:00+0000" data-end="2026-12-12T21:25:00+0000" title="It's Probably Not a Virus" data-slug="virus"><title>Sat 4:05- 4:25 It's Probably Not a Virus</title><rect x="583" y="75" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(608,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">virus</text></g></a><g transform="translate(0,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T14:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">9 AM EST</text></g><g transform="translate(82,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T15:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">10 AM EST</text></g><g transform="translate(164,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T16:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">11 AM EST</text></g><g transform="translate(247,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T17:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">12 PM EST</text></g><g transform="translate(329,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T18:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">1 PM EST</text></g><g transform="translate(411,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T19:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">2 PM EST</text></g><g transform="translate(494,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T20:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">3 PM EST</text></g><g transform="translate(576,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T21:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">4 PM EST</text></g><g transform="translate(658,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T22:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">5 PM EST</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 data-start="2026-12-12T14:00:00+0000" class="day-label" font-size="10" fill="black" y="17" x="3">Saturday</text><a href="/2026/talks/sat-open" data-start="2026-12-12T14:00:00+0000" data-end="2026-12-12T14:10:00+0000" title="Saturday opening remarks" data-slug="sat-open"><title>Sat 9:00- 9:10 Saturday opening remarks</title><rect x="0" y="20" opacity="0.5" width="13" height="54" 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="/2026/talks/planning" data-start="2026-12-12T14:10:00+0000" data-end="2026-12-12T14:30:00+0000" title="The Emacs Planning Habits of a Questionably Effective Person: My 40-year journey of planning with Emacs, Org Mode, paper journals, etc." data-slug="planning"><title>Sat 9:10- 9:30 The Emacs Planning Habits of a Questionably Effective Person: My 40-year journey of planning with Emacs, Org Mode, paper journals, etc.</title><rect x="13" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(38,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">planning</text></g></a><a href="/2026/talks/listen" data-start="2026-12-12T14:50:00+0000" data-end="2026-12-12T15:10:00+0000" title="Emacslisten: Controlling Emacs by voice" data-slug="listen"><title>Sat 9:50-10:10 Emacslisten: Controlling Emacs by voice</title><rect x="68" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(93,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">listen</text></g></a><a href="/2026/talks/emacspeak" data-start="2026-12-12T15:30:00+0000" data-end="2026-12-12T16:00:00+0000" title="Multi-dimensional information processing with Emacs and Emacspeak: a blind man's perspective" data-slug="emacspeak"><title>Sat 10:30-11:00 Multi-dimensional information processing with Emacs and Emacspeak: a blind man's perspective</title><rect x="123" y="20" opacity="0.5" width="41" height="54" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(162,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">emacspeak</text></g></a><a href="/2026/talks/ltx-talk" data-start="2026-12-12T16:10:00+0000" data-end="2026-12-12T16:30:00+0000" title="ltx-talk: Accessible presentations with ox-beamer" data-slug="ltx-talk"><title>Sat 11:10-11:30 ltx-talk: Accessible presentations with ox-beamer</title><rect x="178" y="20" opacity="0.5" width="27" height="54" 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)">ltx-talk</text></g></a><a href="/2026/talks/plots" data-start="2026-12-12T18:00:00+0000" data-end="2026-12-12T18:20:00+0000" title="Plots with ROOTs: Resilient data visualization with Emacs, Org and gnuplot" data-slug="plots"><title>Sat 1:00- 1:20 Plots with ROOTs: Resilient data visualization with Emacs, Org and gnuplot</title><rect x="329" y="20" opacity="0.5" width="27" height="54" 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)">plots</text></g></a><a href="/2026/talks/tasks" data-start="2026-12-12T18:40:00+0000" data-end="2026-12-12T19:00:00+0000" title="Personal task management under stress (with Org mode)" data-slug="tasks"><title>Sat 1:40- 2:00 Personal task management under stress (with Org mode)</title><rect x="384" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(409,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">tasks</text></g></a><a href="/2026/talks/mobile" data-start="2026-12-12T19:20:00+0000" data-end="2026-12-12T19:30:00+0000" title="How I solved Org Mode's biggest mobile and collaboration problems" data-slug="mobile"><title>Sat 2:20- 2:30 How I solved Org Mode's biggest mobile and collaboration problems</title><rect x="439" y="20" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(450,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">mobile</text></g></a><a href="/2026/talks/hyperbole" data-start="2026-12-12T19:50:00+0000" data-end="2026-12-12T20:10:00+0000" title="Hyperbole, My Dear Watson" data-slug="hyperbole"><title>Sat 2:50- 3:10 Hyperbole, My Dear Watson</title><rect stroke-width="3" x="480" y="20" opacity="0.8" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(505,73)"><text font-weight="bold" fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">hyperbole</text></g></a><a href="/2026/talks/koutliner" data-start="2026-12-12T20:30:00+0000" data-end="2026-12-12T20:50:00+0000" title="Hyperbole Koutliner: The Best Autonumbered, Hyperlinking Outliner for Emacs" data-slug="koutliner"><title>Sat 3:30- 3:50 Hyperbole Koutliner: The Best Autonumbered, Hyperlinking Outliner for Emacs</title><rect x="535" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(560,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">koutliner</text></g></a><a href="/2026/talks/writing" data-start="2026-12-12T21:10:00+0000" data-end="2026-12-12T21:30:00+0000" title="Close the writing accountability gap with Emacs" data-slug="writing"><title>Sat 4:10- 4:30 Close the writing accountability gap with Emacs</title><rect x="590" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(615,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">writing</text></g></a><a href="/2026/talks/sat-close" data-start="2026-12-12T21:50:00+0000" data-end="2026-12-12T22:00:00+0000" title="Saturday closing remarks / open session" data-slug="sat-close"><title>Sat 4:50- 5:00 Saturday closing remarks / open session</title><rect x="645" y="20" opacity="0.5" width="13" height="54" 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)">sat-close</text></g></a><a href="/2026/talks/community" data-start="2026-12-12T15:30:00+0000" data-end="2026-12-12T16:30:00+0000" title="[Panel] Improving the Emacs Community: Onboarding, Participation, and Growth" data-slug="community"><title>Sat 10:30-11:30 [Panel] Improving the Emacs Community: Onboarding, Participation, and Growth</title><rect x="123" y="75" opacity="0.5" width="82" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(203,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">community</text></g></a><a href="/2026/talks/portable" data-start="2026-12-12T18:00:00+0000" data-end="2026-12-12T18:15:00+0000" title="Emacs as my portable user space across operating platforms" data-slug="portable"><title>Sat 1:00- 1:15 Emacs as my portable user space across operating platforms</title><rect x="329" y="75" opacity="0.5" width="20" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(347,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">portable</text></g></a><a href="/2026/talks/os" data-start="2026-12-12T18:35:00+0000" data-end="2026-12-12T18:55:00+0000" title="Emacs everywhere: A fun romp through esoteric operating systems" data-slug="os"><title>Sat 1:35- 1:55 Emacs everywhere: A fun romp through esoteric operating systems</title><rect x="377" y="75" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(402,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">os</text></g></a><a href="/2026/talks/cadet" data-start="2026-12-12T19:15:00+0000" data-end="2026-12-12T19:25:00+0000" title="My Space Cadet Deck - an Android Stream Deck replacement with deep Emacs integration" data-slug="cadet"><title>Sat 2:15- 2:25 My Space Cadet Deck - an Android Stream Deck replacement with deep Emacs integration</title><rect x="432" y="75" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(443,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">cadet</text></g></a><a href="/2026/talks/remoto" data-start="2026-12-12T19:45:00+0000" data-end="2026-12-12T20:05:00+0000" title="El Remoto: browse any GitHub repos without cloning them" data-slug="remoto"><title>Sat 2:45- 3:05 El Remoto: browse any GitHub repos without cloning them</title><rect x="473" y="75" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(498,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">remoto</text></g></a><a href="/2026/talks/guile" data-start="2026-12-12T20:25:00+0000" data-end="2026-12-12T20:45:00+0000" title="æmacs: having a hoot with a guile emacs" data-slug="guile"><title>Sat 3:25- 3:45 æmacs: having a hoot with a guile emacs</title><rect x="528" y="75" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(553,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">guile</text></g></a><a href="/2026/talks/virus" data-start="2026-12-12T21:05:00+0000" data-end="2026-12-12T21:25:00+0000" title="It's Probably Not a Virus" data-slug="virus"><title>Sat 4:05- 4:25 It's Probably Not a Virus</title><rect x="583" y="75" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(608,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">virus</text></g></a><g transform="translate(0,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T14:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">9 AM EST</text></g><g transform="translate(82,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T15:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">10 AM EST</text></g><g transform="translate(164,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T16:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">11 AM EST</text></g><g transform="translate(247,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T17:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">12 PM EST</text></g><g transform="translate(329,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T18:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">1 PM EST</text></g><g transform="translate(411,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T19:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">2 PM EST</text></g><g transform="translate(494,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T20:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">3 PM EST</text></g><g transform="translate(576,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T21:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">4 PM EST</text></g><g transform="translate(658,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T22:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">5 PM EST</text></g></svg> </div> [[!toc ]] diff --git a/2026/info/koutliner-before.md b/2026/info/koutliner-before.md index 16da9034..fd382a52 100644 --- a/2026/info/koutliner-before.md +++ b/2026/info/koutliner-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 2026-12-12. 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="koutliner"> -<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 data-start="2026-12-12T14:00:00+0000" class="day-label" font-size="10" fill="black" y="17" x="3">Saturday</text><a href="/2026/talks/sat-open" data-start="2026-12-12T14:00:00+0000" data-end="2026-12-12T14:10:00+0000" title="Saturday opening remarks" data-slug="sat-open"><title>Sat 9:00- 9:10 Saturday opening remarks</title><rect x="0" y="20" opacity="0.5" width="13" height="54" 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="/2026/talks/planning" data-start="2026-12-12T14:10:00+0000" data-end="2026-12-12T14:30:00+0000" title="The Emacs Planning Habits of a Questionably Effective Person: My 40-year journey of planning with Emacs, Org Mode, paper journals, etc." data-slug="planning"><title>Sat 9:10- 9:30 The Emacs Planning Habits of a Questionably Effective Person: My 40-year journey of planning with Emacs, Org Mode, paper journals, etc.</title><rect x="13" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(38,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">planning</text></g></a><a href="/2026/talks/listen" data-start="2026-12-12T14:50:00+0000" data-end="2026-12-12T15:10:00+0000" title="Controlling Emacs by voice using Emacslisten" data-slug="listen"><title>Sat 9:50-10:10 Controlling Emacs by voice using Emacslisten</title><rect x="68" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(93,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">listen</text></g></a><a href="/2026/talks/emacspeak" data-start="2026-12-12T15:30:00+0000" data-end="2026-12-12T16:00:00+0000" title="Multi-dimensional information processing with Emacs and Emacspeak: a blind man's perspective" data-slug="emacspeak"><title>Sat 10:30-11:00 Multi-dimensional information processing with Emacs and Emacspeak: a blind man's perspective</title><rect x="123" y="20" opacity="0.5" width="41" height="54" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(162,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">emacspeak</text></g></a><a href="/2026/talks/ltx-talk" data-start="2026-12-12T16:10:00+0000" data-end="2026-12-12T16:30:00+0000" title="ltx-talk: Accessible presentations with ox-beamer" data-slug="ltx-talk"><title>Sat 11:10-11:30 ltx-talk: Accessible presentations with ox-beamer</title><rect x="178" y="20" opacity="0.5" width="27" height="54" 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)">ltx-talk</text></g></a><a href="/2026/talks/plots" data-start="2026-12-12T18:00:00+0000" data-end="2026-12-12T18:20:00+0000" title="Plots with ROOTs: Resilient data visualization with Emacs, Org and gnuplot" data-slug="plots"><title>Sat 1:00- 1:20 Plots with ROOTs: Resilient data visualization with Emacs, Org and gnuplot</title><rect x="329" y="20" opacity="0.5" width="27" height="54" 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)">plots</text></g></a><a href="/2026/talks/ffs" data-start="2026-12-12T18:40:00+0000" data-end="2026-12-12T19:00:00+0000" title="Plain text presentations in GNU Emacs with ffs" data-slug="ffs"><title>Sat 1:40- 2:00 Plain text presentations in GNU Emacs with ffs</title><rect x="384" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(409,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">ffs</text></g></a><a href="/2026/talks/mobile" data-start="2026-12-12T19:20:00+0000" data-end="2026-12-12T19:30:00+0000" title="How I solved Org Mode's biggest mobile and collaboration problems" data-slug="mobile"><title>Sat 2:20- 2:30 How I solved Org Mode's biggest mobile and collaboration problems</title><rect x="439" y="20" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(450,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">mobile</text></g></a><a href="/2026/talks/hyperbole" data-start="2026-12-12T19:50:00+0000" data-end="2026-12-12T20:10:00+0000" title="Hyperbole, My Dear Watson" data-slug="hyperbole"><title>Sat 2:50- 3:10 Hyperbole, My Dear Watson</title><rect x="480" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(505,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">hyperbole</text></g></a><a href="/2026/talks/koutliner" data-start="2026-12-12T20:30:00+0000" data-end="2026-12-12T20:50:00+0000" title="Hyperbole Koutliner: The Best Autonumbered, Hyperlinking Outliner for Emacs" data-slug="koutliner"><title>Sat 3:30- 3:50 Hyperbole Koutliner: The Best Autonumbered, Hyperlinking Outliner for Emacs</title><rect stroke-width="3" x="535" y="20" opacity="0.8" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(560,73)"><text font-weight="bold" fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">koutliner</text></g></a><a href="/2026/talks/writing" data-start="2026-12-12T21:10:00+0000" data-end="2026-12-12T21:30:00+0000" title="Close the writing accountability gap with Emacs" data-slug="writing"><title>Sat 4:10- 4:30 Close the writing accountability gap with Emacs</title><rect x="590" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(615,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">writing</text></g></a><a href="/2026/talks/android" data-start="2026-12-12T21:50:00+0000" data-end="2026-12-12T22:00:00+0000" title="Emacs on Android - Emacs for the next 40 years" data-slug="android"><title>Sat 4:50- 5:00 Emacs on Android - Emacs for the next 40 years</title><rect x="645" y="20" opacity="0.5" width="13" height="54" 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)">android</text></g></a><a href="/2026/talks/sat-close" data-start="2026-12-12T22:20:00+0000" data-end="2026-12-12T22:30:00+0000" title="Saturday closing remarks / open session" data-slug="sat-close"><title>Sat 5:20- 5:30 Saturday closing remarks / open session</title><rect x="686" y="20" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(697,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sat-close</text></g></a><a href="/2026/talks/community" data-start="2026-12-12T15:30:00+0000" data-end="2026-12-12T16:30:00+0000" title="[Panel] Improving the Emacs Community: Onboarding, Participation, and Growth" data-slug="community"><title>Sat 10:30-11:30 [Panel] Improving the Emacs Community: Onboarding, Participation, and Growth</title><rect x="123" y="75" opacity="0.5" width="82" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(203,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">community</text></g></a><a href="/2026/talks/portable" data-start="2026-12-12T18:00:00+0000" data-end="2026-12-12T18:15:00+0000" title="Emacs as my portable user space across operating platforms" data-slug="portable"><title>Sat 1:00- 1:15 Emacs as my portable user space across operating platforms</title><rect x="329" y="75" opacity="0.5" width="20" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(347,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">portable</text></g></a><a href="/2026/talks/os" data-start="2026-12-12T18:35:00+0000" data-end="2026-12-12T18:55:00+0000" title="Emacs everywhere: A fun romp through esoteric operating systems" data-slug="os"><title>Sat 1:35- 1:55 Emacs everywhere: A fun romp through esoteric operating systems</title><rect x="377" y="75" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(402,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">os</text></g></a><a href="/2026/talks/cadet" data-start="2026-12-12T19:15:00+0000" data-end="2026-12-12T19:25:00+0000" title="My Space Cadet Deck - an Android Stream Deck replacement with deep Emacs integration" data-slug="cadet"><title>Sat 2:15- 2:25 My Space Cadet Deck - an Android Stream Deck replacement with deep Emacs integration</title><rect x="432" y="75" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(443,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">cadet</text></g></a><a href="/2026/talks/remoto" data-start="2026-12-12T19:45:00+0000" data-end="2026-12-12T20:05:00+0000" title="El Remoto: browse any GitHub repos without cloning them" data-slug="remoto"><title>Sat 2:45- 3:05 El Remoto: browse any GitHub repos without cloning them</title><rect x="473" y="75" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(498,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">remoto</text></g></a><a href="/2026/talks/guile" data-start="2026-12-12T20:25:00+0000" data-end="2026-12-12T20:45:00+0000" title="æmacs: having a hoot with a guile emacs" data-slug="guile"><title>Sat 3:25- 3:45 æmacs: having a hoot with a guile emacs</title><rect x="528" y="75" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(553,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">guile</text></g></a><a href="/2026/talks/virus" data-start="2026-12-12T21:05:00+0000" data-end="2026-12-12T21:25:00+0000" title="It's Probably Not a Virus" data-slug="virus"><title>Sat 4:05- 4:25 It's Probably Not a Virus</title><rect x="583" y="75" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(608,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">virus</text></g></a><g transform="translate(0,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T14:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">9 AM EST</text></g><g transform="translate(82,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T15:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">10 AM EST</text></g><g transform="translate(164,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T16:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">11 AM EST</text></g><g transform="translate(247,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T17:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">12 PM EST</text></g><g transform="translate(329,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T18:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">1 PM EST</text></g><g transform="translate(411,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T19:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">2 PM EST</text></g><g transform="translate(494,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T20:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">3 PM EST</text></g><g transform="translate(576,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T21:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">4 PM EST</text></g><g transform="translate(658,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T22:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">5 PM EST</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 data-start="2026-12-12T14:00:00+0000" class="day-label" font-size="10" fill="black" y="17" x="3">Saturday</text><a href="/2026/talks/sat-open" data-start="2026-12-12T14:00:00+0000" data-end="2026-12-12T14:10:00+0000" title="Saturday opening remarks" data-slug="sat-open"><title>Sat 9:00- 9:10 Saturday opening remarks</title><rect x="0" y="20" opacity="0.5" width="13" height="54" 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="/2026/talks/planning" data-start="2026-12-12T14:10:00+0000" data-end="2026-12-12T14:30:00+0000" title="The Emacs Planning Habits of a Questionably Effective Person: My 40-year journey of planning with Emacs, Org Mode, paper journals, etc." data-slug="planning"><title>Sat 9:10- 9:30 The Emacs Planning Habits of a Questionably Effective Person: My 40-year journey of planning with Emacs, Org Mode, paper journals, etc.</title><rect x="13" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(38,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">planning</text></g></a><a href="/2026/talks/listen" data-start="2026-12-12T14:50:00+0000" data-end="2026-12-12T15:10:00+0000" title="Emacslisten: Controlling Emacs by voice" data-slug="listen"><title>Sat 9:50-10:10 Emacslisten: Controlling Emacs by voice</title><rect x="68" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(93,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">listen</text></g></a><a href="/2026/talks/emacspeak" data-start="2026-12-12T15:30:00+0000" data-end="2026-12-12T16:00:00+0000" title="Multi-dimensional information processing with Emacs and Emacspeak: a blind man's perspective" data-slug="emacspeak"><title>Sat 10:30-11:00 Multi-dimensional information processing with Emacs and Emacspeak: a blind man's perspective</title><rect x="123" y="20" opacity="0.5" width="41" height="54" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(162,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">emacspeak</text></g></a><a href="/2026/talks/ltx-talk" data-start="2026-12-12T16:10:00+0000" data-end="2026-12-12T16:30:00+0000" title="ltx-talk: Accessible presentations with ox-beamer" data-slug="ltx-talk"><title>Sat 11:10-11:30 ltx-talk: Accessible presentations with ox-beamer</title><rect x="178" y="20" opacity="0.5" width="27" height="54" 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)">ltx-talk</text></g></a><a href="/2026/talks/plots" data-start="2026-12-12T18:00:00+0000" data-end="2026-12-12T18:20:00+0000" title="Plots with ROOTs: Resilient data visualization with Emacs, Org and gnuplot" data-slug="plots"><title>Sat 1:00- 1:20 Plots with ROOTs: Resilient data visualization with Emacs, Org and gnuplot</title><rect x="329" y="20" opacity="0.5" width="27" height="54" 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)">plots</text></g></a><a href="/2026/talks/tasks" data-start="2026-12-12T18:40:00+0000" data-end="2026-12-12T19:00:00+0000" title="Personal task management under stress (with Org mode)" data-slug="tasks"><title>Sat 1:40- 2:00 Personal task management under stress (with Org mode)</title><rect x="384" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(409,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">tasks</text></g></a><a href="/2026/talks/mobile" data-start="2026-12-12T19:20:00+0000" data-end="2026-12-12T19:30:00+0000" title="How I solved Org Mode's biggest mobile and collaboration problems" data-slug="mobile"><title>Sat 2:20- 2:30 How I solved Org Mode's biggest mobile and collaboration problems</title><rect x="439" y="20" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(450,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">mobile</text></g></a><a href="/2026/talks/hyperbole" data-start="2026-12-12T19:50:00+0000" data-end="2026-12-12T20:10:00+0000" title="Hyperbole, My Dear Watson" data-slug="hyperbole"><title>Sat 2:50- 3:10 Hyperbole, My Dear Watson</title><rect x="480" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(505,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">hyperbole</text></g></a><a href="/2026/talks/koutliner" data-start="2026-12-12T20:30:00+0000" data-end="2026-12-12T20:50:00+0000" title="Hyperbole Koutliner: The Best Autonumbered, Hyperlinking Outliner for Emacs" data-slug="koutliner"><title>Sat 3:30- 3:50 Hyperbole Koutliner: The Best Autonumbered, Hyperlinking Outliner for Emacs</title><rect stroke-width="3" x="535" y="20" opacity="0.8" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(560,73)"><text font-weight="bold" fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">koutliner</text></g></a><a href="/2026/talks/writing" data-start="2026-12-12T21:10:00+0000" data-end="2026-12-12T21:30:00+0000" title="Close the writing accountability gap with Emacs" data-slug="writing"><title>Sat 4:10- 4:30 Close the writing accountability gap with Emacs</title><rect x="590" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(615,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">writing</text></g></a><a href="/2026/talks/sat-close" data-start="2026-12-12T21:50:00+0000" data-end="2026-12-12T22:00:00+0000" title="Saturday closing remarks / open session" data-slug="sat-close"><title>Sat 4:50- 5:00 Saturday closing remarks / open session</title><rect x="645" y="20" opacity="0.5" width="13" height="54" 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)">sat-close</text></g></a><a href="/2026/talks/community" data-start="2026-12-12T15:30:00+0000" data-end="2026-12-12T16:30:00+0000" title="[Panel] Improving the Emacs Community: Onboarding, Participation, and Growth" data-slug="community"><title>Sat 10:30-11:30 [Panel] Improving the Emacs Community: Onboarding, Participation, and Growth</title><rect x="123" y="75" opacity="0.5" width="82" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(203,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">community</text></g></a><a href="/2026/talks/portable" data-start="2026-12-12T18:00:00+0000" data-end="2026-12-12T18:15:00+0000" title="Emacs as my portable user space across operating platforms" data-slug="portable"><title>Sat 1:00- 1:15 Emacs as my portable user space across operating platforms</title><rect x="329" y="75" opacity="0.5" width="20" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(347,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">portable</text></g></a><a href="/2026/talks/os" data-start="2026-12-12T18:35:00+0000" data-end="2026-12-12T18:55:00+0000" title="Emacs everywhere: A fun romp through esoteric operating systems" data-slug="os"><title>Sat 1:35- 1:55 Emacs everywhere: A fun romp through esoteric operating systems</title><rect x="377" y="75" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(402,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">os</text></g></a><a href="/2026/talks/cadet" data-start="2026-12-12T19:15:00+0000" data-end="2026-12-12T19:25:00+0000" title="My Space Cadet Deck - an Android Stream Deck replacement with deep Emacs integration" data-slug="cadet"><title>Sat 2:15- 2:25 My Space Cadet Deck - an Android Stream Deck replacement with deep Emacs integration</title><rect x="432" y="75" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(443,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">cadet</text></g></a><a href="/2026/talks/remoto" data-start="2026-12-12T19:45:00+0000" data-end="2026-12-12T20:05:00+0000" title="El Remoto: browse any GitHub repos without cloning them" data-slug="remoto"><title>Sat 2:45- 3:05 El Remoto: browse any GitHub repos without cloning them</title><rect x="473" y="75" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(498,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">remoto</text></g></a><a href="/2026/talks/guile" data-start="2026-12-12T20:25:00+0000" data-end="2026-12-12T20:45:00+0000" title="æmacs: having a hoot with a guile emacs" data-slug="guile"><title>Sat 3:25- 3:45 æmacs: having a hoot with a guile emacs</title><rect x="528" y="75" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(553,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">guile</text></g></a><a href="/2026/talks/virus" data-start="2026-12-12T21:05:00+0000" data-end="2026-12-12T21:25:00+0000" title="It's Probably Not a Virus" data-slug="virus"><title>Sat 4:05- 4:25 It's Probably Not a Virus</title><rect x="583" y="75" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(608,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">virus</text></g></a><g transform="translate(0,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T14:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">9 AM EST</text></g><g transform="translate(82,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T15:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">10 AM EST</text></g><g transform="translate(164,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T16:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">11 AM EST</text></g><g transform="translate(247,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T17:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">12 PM EST</text></g><g transform="translate(329,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T18:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">1 PM EST</text></g><g transform="translate(411,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T19:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">2 PM EST</text></g><g transform="translate(494,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T20:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">3 PM EST</text></g><g transform="translate(576,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T21:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">4 PM EST</text></g><g transform="translate(658,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T22:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">5 PM EST</text></g></svg> </div> [[!toc ]] diff --git a/2026/info/listen-after.md b/2026/info/listen-after.md index cca4e125..132a3265 100644 --- a/2026/info/listen-after.md +++ b/2026/info/listen-after.md @@ -1,7 +1,7 @@ <!-- Automatically generated by emacsconf-publish-after-page --> -Questions or comments? Please e-mail [erik@prantare.xyz](mailto:erik@prantare.xyz?subject=Comment%20for%20EmacsConf%202023%20listen%3A%20Controlling%20Emacs%20by%20voice%20using%20Emacslisten) +Questions or comments? Please e-mail [erik@prantare.xyz](mailto:erik@prantare.xyz?subject=Comment%20for%20EmacsConf%202023%20listen%3A%20Emacslisten%3A%20Controlling%20Emacs%20by%20voice) <!-- End of emacsconf-publish-after-page --> diff --git a/2026/info/listen-before.md b/2026/info/listen-before.md index c8479f19..f69c9629 100644 --- a/2026/info/listen-before.md +++ b/2026/info/listen-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 2026-12-12. 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="listen"> -<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 data-start="2026-12-12T14:00:00+0000" class="day-label" font-size="10" fill="black" y="17" x="3">Saturday</text><a href="/2026/talks/sat-open" data-start="2026-12-12T14:00:00+0000" data-end="2026-12-12T14:10:00+0000" title="Saturday opening remarks" data-slug="sat-open"><title>Sat 9:00- 9:10 Saturday opening remarks</title><rect x="0" y="20" opacity="0.5" width="13" height="54" 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="/2026/talks/planning" data-start="2026-12-12T14:10:00+0000" data-end="2026-12-12T14:30:00+0000" title="The Emacs Planning Habits of a Questionably Effective Person: My 40-year journey of planning with Emacs, Org Mode, paper journals, etc." data-slug="planning"><title>Sat 9:10- 9:30 The Emacs Planning Habits of a Questionably Effective Person: My 40-year journey of planning with Emacs, Org Mode, paper journals, etc.</title><rect x="13" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(38,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">planning</text></g></a><a href="/2026/talks/listen" data-start="2026-12-12T14:50:00+0000" data-end="2026-12-12T15:10:00+0000" title="Controlling Emacs by voice using Emacslisten" data-slug="listen"><title>Sat 9:50-10:10 Controlling Emacs by voice using Emacslisten</title><rect stroke-width="3" x="68" y="20" opacity="0.8" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(93,73)"><text font-weight="bold" fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">listen</text></g></a><a href="/2026/talks/emacspeak" data-start="2026-12-12T15:30:00+0000" data-end="2026-12-12T16:00:00+0000" title="Multi-dimensional information processing with Emacs and Emacspeak: a blind man's perspective" data-slug="emacspeak"><title>Sat 10:30-11:00 Multi-dimensional information processing with Emacs and Emacspeak: a blind man's perspective</title><rect x="123" y="20" opacity="0.5" width="41" height="54" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(162,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">emacspeak</text></g></a><a href="/2026/talks/ltx-talk" data-start="2026-12-12T16:10:00+0000" data-end="2026-12-12T16:30:00+0000" title="ltx-talk: Accessible presentations with ox-beamer" data-slug="ltx-talk"><title>Sat 11:10-11:30 ltx-talk: Accessible presentations with ox-beamer</title><rect x="178" y="20" opacity="0.5" width="27" height="54" 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)">ltx-talk</text></g></a><a href="/2026/talks/plots" data-start="2026-12-12T18:00:00+0000" data-end="2026-12-12T18:20:00+0000" title="Plots with ROOTs: Resilient data visualization with Emacs, Org and gnuplot" data-slug="plots"><title>Sat 1:00- 1:20 Plots with ROOTs: Resilient data visualization with Emacs, Org and gnuplot</title><rect x="329" y="20" opacity="0.5" width="27" height="54" 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)">plots</text></g></a><a href="/2026/talks/ffs" data-start="2026-12-12T18:40:00+0000" data-end="2026-12-12T19:00:00+0000" title="Plain text presentations in GNU Emacs with ffs" data-slug="ffs"><title>Sat 1:40- 2:00 Plain text presentations in GNU Emacs with ffs</title><rect x="384" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(409,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">ffs</text></g></a><a href="/2026/talks/mobile" data-start="2026-12-12T19:20:00+0000" data-end="2026-12-12T19:30:00+0000" title="How I solved Org Mode's biggest mobile and collaboration problems" data-slug="mobile"><title>Sat 2:20- 2:30 How I solved Org Mode's biggest mobile and collaboration problems</title><rect x="439" y="20" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(450,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">mobile</text></g></a><a href="/2026/talks/hyperbole" data-start="2026-12-12T19:50:00+0000" data-end="2026-12-12T20:10:00+0000" title="Hyperbole, My Dear Watson" data-slug="hyperbole"><title>Sat 2:50- 3:10 Hyperbole, My Dear Watson</title><rect x="480" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(505,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">hyperbole</text></g></a><a href="/2026/talks/koutliner" data-start="2026-12-12T20:30:00+0000" data-end="2026-12-12T20:50:00+0000" title="Hyperbole Koutliner: The Best Autonumbered, Hyperlinking Outliner for Emacs" data-slug="koutliner"><title>Sat 3:30- 3:50 Hyperbole Koutliner: The Best Autonumbered, Hyperlinking Outliner for Emacs</title><rect x="535" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(560,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">koutliner</text></g></a><a href="/2026/talks/writing" data-start="2026-12-12T21:10:00+0000" data-end="2026-12-12T21:30:00+0000" title="Close the writing accountability gap with Emacs" data-slug="writing"><title>Sat 4:10- 4:30 Close the writing accountability gap with Emacs</title><rect x="590" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(615,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">writing</text></g></a><a href="/2026/talks/android" data-start="2026-12-12T21:50:00+0000" data-end="2026-12-12T22:00:00+0000" title="Emacs on Android - Emacs for the next 40 years" data-slug="android"><title>Sat 4:50- 5:00 Emacs on Android - Emacs for the next 40 years</title><rect x="645" y="20" opacity="0.5" width="13" height="54" 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)">android</text></g></a><a href="/2026/talks/sat-close" data-start="2026-12-12T22:20:00+0000" data-end="2026-12-12T22:30:00+0000" title="Saturday closing remarks / open session" data-slug="sat-close"><title>Sat 5:20- 5:30 Saturday closing remarks / open session</title><rect x="686" y="20" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(697,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sat-close</text></g></a><a href="/2026/talks/community" data-start="2026-12-12T15:30:00+0000" data-end="2026-12-12T16:30:00+0000" title="[Panel] Improving the Emacs Community: Onboarding, Participation, and Growth" data-slug="community"><title>Sat 10:30-11:30 [Panel] Improving the Emacs Community: Onboarding, Participation, and Growth</title><rect x="123" y="75" opacity="0.5" width="82" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(203,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">community</text></g></a><a href="/2026/talks/portable" data-start="2026-12-12T18:00:00+0000" data-end="2026-12-12T18:15:00+0000" title="Emacs as my portable user space across operating platforms" data-slug="portable"><title>Sat 1:00- 1:15 Emacs as my portable user space across operating platforms</title><rect x="329" y="75" opacity="0.5" width="20" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(347,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">portable</text></g></a><a href="/2026/talks/os" data-start="2026-12-12T18:35:00+0000" data-end="2026-12-12T18:55:00+0000" title="Emacs everywhere: A fun romp through esoteric operating systems" data-slug="os"><title>Sat 1:35- 1:55 Emacs everywhere: A fun romp through esoteric operating systems</title><rect x="377" y="75" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(402,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">os</text></g></a><a href="/2026/talks/cadet" data-start="2026-12-12T19:15:00+0000" data-end="2026-12-12T19:25:00+0000" title="My Space Cadet Deck - an Android Stream Deck replacement with deep Emacs integration" data-slug="cadet"><title>Sat 2:15- 2:25 My Space Cadet Deck - an Android Stream Deck replacement with deep Emacs integration</title><rect x="432" y="75" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(443,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">cadet</text></g></a><a href="/2026/talks/remoto" data-start="2026-12-12T19:45:00+0000" data-end="2026-12-12T20:05:00+0000" title="El Remoto: browse any GitHub repos without cloning them" data-slug="remoto"><title>Sat 2:45- 3:05 El Remoto: browse any GitHub repos without cloning them</title><rect x="473" y="75" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(498,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">remoto</text></g></a><a href="/2026/talks/guile" data-start="2026-12-12T20:25:00+0000" data-end="2026-12-12T20:45:00+0000" title="æmacs: having a hoot with a guile emacs" data-slug="guile"><title>Sat 3:25- 3:45 æmacs: having a hoot with a guile emacs</title><rect x="528" y="75" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(553,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">guile</text></g></a><a href="/2026/talks/virus" data-start="2026-12-12T21:05:00+0000" data-end="2026-12-12T21:25:00+0000" title="It's Probably Not a Virus" data-slug="virus"><title>Sat 4:05- 4:25 It's Probably Not a Virus</title><rect x="583" y="75" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(608,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">virus</text></g></a><g transform="translate(0,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T14:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">9 AM EST</text></g><g transform="translate(82,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T15:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">10 AM EST</text></g><g transform="translate(164,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T16:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">11 AM EST</text></g><g transform="translate(247,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T17:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">12 PM EST</text></g><g transform="translate(329,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T18:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">1 PM EST</text></g><g transform="translate(411,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T19:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">2 PM EST</text></g><g transform="translate(494,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T20:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">3 PM EST</text></g><g transform="translate(576,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T21:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">4 PM EST</text></g><g transform="translate(658,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T22:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">5 PM EST</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 data-start="2026-12-12T14:00:00+0000" class="day-label" font-size="10" fill="black" y="17" x="3">Saturday</text><a href="/2026/talks/sat-open" data-start="2026-12-12T14:00:00+0000" data-end="2026-12-12T14:10:00+0000" title="Saturday opening remarks" data-slug="sat-open"><title>Sat 9:00- 9:10 Saturday opening remarks</title><rect x="0" y="20" opacity="0.5" width="13" height="54" 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="/2026/talks/planning" data-start="2026-12-12T14:10:00+0000" data-end="2026-12-12T14:30:00+0000" title="The Emacs Planning Habits of a Questionably Effective Person: My 40-year journey of planning with Emacs, Org Mode, paper journals, etc." data-slug="planning"><title>Sat 9:10- 9:30 The Emacs Planning Habits of a Questionably Effective Person: My 40-year journey of planning with Emacs, Org Mode, paper journals, etc.</title><rect x="13" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(38,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">planning</text></g></a><a href="/2026/talks/listen" data-start="2026-12-12T14:50:00+0000" data-end="2026-12-12T15:10:00+0000" title="Emacslisten: Controlling Emacs by voice" data-slug="listen"><title>Sat 9:50-10:10 Emacslisten: Controlling Emacs by voice</title><rect stroke-width="3" x="68" y="20" opacity="0.8" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(93,73)"><text font-weight="bold" fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">listen</text></g></a><a href="/2026/talks/emacspeak" data-start="2026-12-12T15:30:00+0000" data-end="2026-12-12T16:00:00+0000" title="Multi-dimensional information processing with Emacs and Emacspeak: a blind man's perspective" data-slug="emacspeak"><title>Sat 10:30-11:00 Multi-dimensional information processing with Emacs and Emacspeak: a blind man's perspective</title><rect x="123" y="20" opacity="0.5" width="41" height="54" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(162,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">emacspeak</text></g></a><a href="/2026/talks/ltx-talk" data-start="2026-12-12T16:10:00+0000" data-end="2026-12-12T16:30:00+0000" title="ltx-talk: Accessible presentations with ox-beamer" data-slug="ltx-talk"><title>Sat 11:10-11:30 ltx-talk: Accessible presentations with ox-beamer</title><rect x="178" y="20" opacity="0.5" width="27" height="54" 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)">ltx-talk</text></g></a><a href="/2026/talks/plots" data-start="2026-12-12T18:00:00+0000" data-end="2026-12-12T18:20:00+0000" title="Plots with ROOTs: Resilient data visualization with Emacs, Org and gnuplot" data-slug="plots"><title>Sat 1:00- 1:20 Plots with ROOTs: Resilient data visualization with Emacs, Org and gnuplot</title><rect x="329" y="20" opacity="0.5" width="27" height="54" 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)">plots</text></g></a><a href="/2026/talks/tasks" data-start="2026-12-12T18:40:00+0000" data-end="2026-12-12T19:00:00+0000" title="Personal task management under stress (with Org mode)" data-slug="tasks"><title>Sat 1:40- 2:00 Personal task management under stress (with Org mode)</title><rect x="384" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(409,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">tasks</text></g></a><a href="/2026/talks/mobile" data-start="2026-12-12T19:20:00+0000" data-end="2026-12-12T19:30:00+0000" title="How I solved Org Mode's biggest mobile and collaboration problems" data-slug="mobile"><title>Sat 2:20- 2:30 How I solved Org Mode's biggest mobile and collaboration problems</title><rect x="439" y="20" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(450,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">mobile</text></g></a><a href="/2026/talks/hyperbole" data-start="2026-12-12T19:50:00+0000" data-end="2026-12-12T20:10:00+0000" title="Hyperbole, My Dear Watson" data-slug="hyperbole"><title>Sat 2:50- 3:10 Hyperbole, My Dear Watson</title><rect x="480" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(505,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">hyperbole</text></g></a><a href="/2026/talks/koutliner" data-start="2026-12-12T20:30:00+0000" data-end="2026-12-12T20:50:00+0000" title="Hyperbole Koutliner: The Best Autonumbered, Hyperlinking Outliner for Emacs" data-slug="koutliner"><title>Sat 3:30- 3:50 Hyperbole Koutliner: The Best Autonumbered, Hyperlinking Outliner for Emacs</title><rect x="535" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(560,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">koutliner</text></g></a><a href="/2026/talks/writing" data-start="2026-12-12T21:10:00+0000" data-end="2026-12-12T21:30:00+0000" title="Close the writing accountability gap with Emacs" data-slug="writing"><title>Sat 4:10- 4:30 Close the writing accountability gap with Emacs</title><rect x="590" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(615,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">writing</text></g></a><a href="/2026/talks/sat-close" data-start="2026-12-12T21:50:00+0000" data-end="2026-12-12T22:00:00+0000" title="Saturday closing remarks / open session" data-slug="sat-close"><title>Sat 4:50- 5:00 Saturday closing remarks / open session</title><rect x="645" y="20" opacity="0.5" width="13" height="54" 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)">sat-close</text></g></a><a href="/2026/talks/community" data-start="2026-12-12T15:30:00+0000" data-end="2026-12-12T16:30:00+0000" title="[Panel] Improving the Emacs Community: Onboarding, Participation, and Growth" data-slug="community"><title>Sat 10:30-11:30 [Panel] Improving the Emacs Community: Onboarding, Participation, and Growth</title><rect x="123" y="75" opacity="0.5" width="82" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(203,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">community</text></g></a><a href="/2026/talks/portable" data-start="2026-12-12T18:00:00+0000" data-end="2026-12-12T18:15:00+0000" title="Emacs as my portable user space across operating platforms" data-slug="portable"><title>Sat 1:00- 1:15 Emacs as my portable user space across operating platforms</title><rect x="329" y="75" opacity="0.5" width="20" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(347,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">portable</text></g></a><a href="/2026/talks/os" data-start="2026-12-12T18:35:00+0000" data-end="2026-12-12T18:55:00+0000" title="Emacs everywhere: A fun romp through esoteric operating systems" data-slug="os"><title>Sat 1:35- 1:55 Emacs everywhere: A fun romp through esoteric operating systems</title><rect x="377" y="75" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(402,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">os</text></g></a><a href="/2026/talks/cadet" data-start="2026-12-12T19:15:00+0000" data-end="2026-12-12T19:25:00+0000" title="My Space Cadet Deck - an Android Stream Deck replacement with deep Emacs integration" data-slug="cadet"><title>Sat 2:15- 2:25 My Space Cadet Deck - an Android Stream Deck replacement with deep Emacs integration</title><rect x="432" y="75" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(443,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">cadet</text></g></a><a href="/2026/talks/remoto" data-start="2026-12-12T19:45:00+0000" data-end="2026-12-12T20:05:00+0000" title="El Remoto: browse any GitHub repos without cloning them" data-slug="remoto"><title>Sat 2:45- 3:05 El Remoto: browse any GitHub repos without cloning them</title><rect x="473" y="75" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(498,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">remoto</text></g></a><a href="/2026/talks/guile" data-start="2026-12-12T20:25:00+0000" data-end="2026-12-12T20:45:00+0000" title="æmacs: having a hoot with a guile emacs" data-slug="guile"><title>Sat 3:25- 3:45 æmacs: having a hoot with a guile emacs</title><rect x="528" y="75" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(553,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">guile</text></g></a><a href="/2026/talks/virus" data-start="2026-12-12T21:05:00+0000" data-end="2026-12-12T21:25:00+0000" title="It's Probably Not a Virus" data-slug="virus"><title>Sat 4:05- 4:25 It's Probably Not a Virus</title><rect x="583" y="75" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(608,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">virus</text></g></a><g transform="translate(0,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T14:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">9 AM EST</text></g><g transform="translate(82,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T15:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">10 AM EST</text></g><g transform="translate(164,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T16:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">11 AM EST</text></g><g transform="translate(247,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T17:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">12 PM EST</text></g><g transform="translate(329,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T18:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">1 PM EST</text></g><g transform="translate(411,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T19:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">2 PM EST</text></g><g transform="translate(494,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T20:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">3 PM EST</text></g><g transform="translate(576,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T21:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">4 PM EST</text></g><g transform="translate(658,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T22:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">5 PM EST</text></g></svg> </div> [[!toc ]] diff --git a/2026/info/llms-before.md b/2026/info/llms-before.md index 59e807b9..e3b47b3e 100644 --- a/2026/info/llms-before.md +++ b/2026/info/llms-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 Sun 2026-12-13. 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="llms"> -<svg width="700" height="150" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><title>Schedule for Sunday</title><rect width="700" height="150" x="0" y="0" fill="white"></rect><text data-start="2026-12-13T14:00:00+0000" class="day-label" font-size="10" fill="black" y="17" x="3">Sunday</text><a href="/2026/talks/sun-open" data-start="2026-12-13T14:00:00+0000" data-end="2026-12-13T14:10:00+0000" title="Sunday opening remarks" data-slug="sun-open"><title>Sun 9:00- 9:10 Sunday opening remarks</title><rect x="0" y="20" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(11,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sun-open</text></g></a><a href="/2026/talks/bone" data-start="2026-12-13T14:10:00+0000" data-end="2026-12-13T14:20:00+0000" title="BONE and gnaw.el: tracking what matters" data-slug="bone"><title>Sun 9:10- 9:20 BONE and gnaw.el: tracking what matters</title><rect x="13" y="20" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(24,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">bone</text></g></a><a href="/2026/talks/local" data-start="2026-12-13T14:40:00+0000" data-end="2026-12-13T14:55:00+0000" title="Local file history possibilities in Emacs" data-slug="local"><title>Sun 9:40- 9:55 Local file history possibilities in Emacs</title><rect x="54" y="20" opacity="0.5" width="20" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(72,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">local</text></g></a><a href="/2026/talks/hutch" data-start="2026-12-13T15:15:00+0000" data-end="2026-12-13T15:25:00+0000" title="hutch: code reviews for the mildly disenfranchised" data-slug="hutch"><title>Sun 10:15-10:25 hutch: code reviews for the mildly disenfranchised</title><rect x="102" y="20" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(113,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">hutch</text></g></a><a href="/2026/talks/team" data-start="2026-12-13T15:35:00+0000" data-end="2026-12-13T15:55:00+0000" title="Beyond the Chatbot: Team-Oriented AI in Emacs" data-slug="team"><title>Sun 10:35-10:55 Beyond the Chatbot: Team-Oriented AI in Emacs</title><rect x="130" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(155,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">team</text></g></a><a href="/2026/talks/compile" data-start="2026-12-13T16:15:00+0000" data-end="2026-12-13T16:35:00+0000" title="Beyond shell history: Saving compilation output in Emacs" data-slug="compile"><title>Sun 11:15-11:35 Beyond shell history: Saving compilation output in Emacs</title><rect x="185" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(210,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">compile</text></g></a><a href="/2026/talks/dnd" data-start="2026-12-13T18:00:00+0000" data-end="2026-12-13T18:20:00+0000" title="DnD and Org Roam: Becoming a Better DM with Emacs" data-slug="dnd"><title>Sun 1:00- 1:20 DnD and Org Roam: Becoming a Better DM with Emacs</title><rect x="329" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(354,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">dnd</text></g></a><a href="/2026/talks/bible" data-start="2026-12-13T18:30:00+0000" data-end="2026-12-13T18:50:00+0000" title="bible-gateway: A Two-Edged Sword in Emacs" data-slug="bible"><title>Sun 1:30- 1:50 bible-gateway: A Two-Edged Sword in Emacs</title><rect x="370" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(395,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">bible</text></g></a><a href="/2026/talks/svg" data-start="2026-12-13T19:10:00+0000" data-end="2026-12-13T19:30:00+0000" title="A (sort of) REPL for learning SVG" data-slug="svg"><title>Sun 2:10- 2:30 A (sort of) REPL for learning SVG</title><rect x="425" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(450,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">svg</text></g></a><a href="/2026/talks/align" data-start="2026-12-13T19:50:00+0000" data-end="2026-12-13T20:10:00+0000" title="Column-aligning text in Emacs" data-slug="align"><title>Sun 2:50- 3:10 Column-aligning text in Emacs</title><rect x="480" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(505,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">align</text></g></a><a href="/2026/talks/anju" data-start="2026-12-13T20:30:00+0000" data-end="2026-12-13T20:50:00+0000" title="Revisiting Emacs Mouse Interactions with Anju" data-slug="anju"><title>Sun 3:30- 3:50 Revisiting Emacs Mouse Interactions with Anju</title><rect x="535" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(560,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">anju</text></g></a><a href="/2026/talks/ghostel" data-start="2026-12-13T21:00:00+0000" data-end="2026-12-13T21:20:00+0000" title="Ghost in the Shell: a libghostty powered terminal for Emacs" data-slug="ghostel"><title>Sun 4:00- 4:20 Ghost in the Shell: a libghostty powered terminal for Emacs</title><rect x="576" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(601,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">ghostel</text></g></a><a href="/2026/talks/sun-close" data-start="2026-12-13T21:40:00+0000" data-end="2026-12-13T21:50:00+0000" title="Sunday closing remarks" data-slug="sun-close"><title>Sun 4:40- 4:50 Sunday closing remarks</title><rect x="631" y="20" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(642,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sun-close</text></g></a><a href="/2026/talks/prefix" data-start="2026-12-13T15:00:00+0000" data-end="2026-12-13T15:10:00+0000" title="prefix-tab-groups" data-slug="prefix"><title>Sun 10:00-10:10 prefix-tab-groups</title><rect x="82" y="75" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="5,5,5" fill="skyblue"></rect><g transform="translate(93,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">prefix</text></g></a><a href="/2026/talks/rau" data-start="2026-12-13T15:20:00+0000" data-end="2026-12-13T15:40:00+0000" title="Emacs as a Window Manager and concurrency" data-slug="rau"><title>Sun 10:20-10:40 Emacs as a Window Manager and concurrency</title><rect x="109" y="75" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(134,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">rau</text></g></a><a href="/2026/talks/babel" data-start="2026-12-13T16:00:00+0000" data-end="2026-12-13T16:10:00+0000" title="Org Babel everywhere" data-slug="babel"><title>Sun 11:00-11:10 Org Babel everywhere</title><rect x="164" y="75" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(175,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">babel</text></g></a><a href="/2026/talks/el-gpu" data-start="2026-12-13T16:30:00+0000" data-end="2026-12-13T16:50:00+0000" title="El-gpu and pix-el: GNU Emacs 2D and 3D game programming" data-slug="el-gpu"><title>Sun 11:30-11:50 El-gpu and pix-el: GNU Emacs 2D and 3D game programming</title><rect x="205" y="75" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(230,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">el-gpu</text></g></a><a href="/2026/talks/llms" data-start="2026-12-13T18:00:00+0000" data-end="2026-12-13T19:00:00+0000" title="[Panel] Emacs, LLMs, and Free Software" data-slug="llms"><title>Sun 1:00- 2:00 [Panel] Emacs, LLMs, and Free Software</title><rect stroke-width="3" x="329" y="75" opacity="0.8" width="82" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(409,128)"><text font-weight="bold" fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">llms</text></g></a><g transform="translate(0,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T14:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">9 AM EST</text></g><g transform="translate(82,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T15:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">10 AM EST</text></g><g transform="translate(164,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T16:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">11 AM EST</text></g><g transform="translate(247,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T17:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">12 PM EST</text></g><g transform="translate(329,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T18:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">1 PM EST</text></g><g transform="translate(411,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T19:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">2 PM EST</text></g><g transform="translate(494,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T20:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">3 PM EST</text></g><g transform="translate(576,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T21:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">4 PM EST</text></g><g transform="translate(658,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T22:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">5 PM EST</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 Sunday</title><rect width="700" height="150" x="0" y="0" fill="white"></rect><text data-start="2026-12-13T14:00:00+0000" class="day-label" font-size="10" fill="black" y="17" x="3">Sunday</text><a href="/2026/talks/sun-open" data-start="2026-12-13T14:00:00+0000" data-end="2026-12-13T14:10:00+0000" title="Sunday opening remarks" data-slug="sun-open"><title>Sun 9:00- 9:10 Sunday opening remarks</title><rect x="0" y="20" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(11,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sun-open</text></g></a><a href="/2026/talks/bone" data-start="2026-12-13T14:10:00+0000" data-end="2026-12-13T14:20:00+0000" title="BONE and gnaw.el: tracking what matters" data-slug="bone"><title>Sun 9:10- 9:20 BONE and gnaw.el: tracking what matters</title><rect x="13" y="20" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(24,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">bone</text></g></a><a href="/2026/talks/local" data-start="2026-12-13T14:40:00+0000" data-end="2026-12-13T14:55:00+0000" title="Local file history possibilities in Emacs" data-slug="local"><title>Sun 9:40- 9:55 Local file history possibilities in Emacs</title><rect x="54" y="20" opacity="0.5" width="20" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(72,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">local</text></g></a><a href="/2026/talks/hutch" data-start="2026-12-13T15:15:00+0000" data-end="2026-12-13T15:25:00+0000" title="hutch: code reviews for the mildly disenfranchised" data-slug="hutch"><title>Sun 10:15-10:25 hutch: code reviews for the mildly disenfranchised</title><rect x="102" y="20" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(113,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">hutch</text></g></a><a href="/2026/talks/team" data-start="2026-12-13T15:35:00+0000" data-end="2026-12-13T15:55:00+0000" title="Beyond the Chatbot: Team-Oriented AI in Emacs" data-slug="team"><title>Sun 10:35-10:55 Beyond the Chatbot: Team-Oriented AI in Emacs</title><rect x="130" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(155,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">team</text></g></a><a href="/2026/talks/compile" data-start="2026-12-13T16:15:00+0000" data-end="2026-12-13T16:35:00+0000" title="Beyond shell history: Saving compilation output in Emacs" data-slug="compile"><title>Sun 11:15-11:35 Beyond shell history: Saving compilation output in Emacs</title><rect x="185" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(210,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">compile</text></g></a><a href="/2026/talks/dnd" data-start="2026-12-13T18:00:00+0000" data-end="2026-12-13T18:20:00+0000" title="DnD and Org Roam: Becoming a Better DM with Emacs" data-slug="dnd"><title>Sun 1:00- 1:20 DnD and Org Roam: Becoming a Better DM with Emacs</title><rect x="329" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(354,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">dnd</text></g></a><a href="/2026/talks/bible" data-start="2026-12-13T18:30:00+0000" data-end="2026-12-13T18:50:00+0000" title="bible-gateway: A Two-Edged Sword in Emacs" data-slug="bible"><title>Sun 1:30- 1:50 bible-gateway: A Two-Edged Sword in Emacs</title><rect x="370" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(395,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">bible</text></g></a><a href="/2026/talks/ffs" data-start="2026-12-13T19:10:00+0000" data-end="2026-12-13T19:30:00+0000" title="Plain text presentations in GNU Emacs with ffs" data-slug="ffs"><title>Sun 2:10- 2:30 Plain text presentations in GNU Emacs with ffs</title><rect x="425" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(450,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">ffs</text></g></a><a href="/2026/talks/align" data-start="2026-12-13T19:50:00+0000" data-end="2026-12-13T20:10:00+0000" title="Column-aligning text in Emacs" data-slug="align"><title>Sun 2:50- 3:10 Column-aligning text in Emacs</title><rect x="480" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(505,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">align</text></g></a><a href="/2026/talks/anju" data-start="2026-12-13T20:30:00+0000" data-end="2026-12-13T20:50:00+0000" title="Revisiting Emacs Mouse Interactions with Anju" data-slug="anju"><title>Sun 3:30- 3:50 Revisiting Emacs Mouse Interactions with Anju</title><rect x="535" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(560,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">anju</text></g></a><a href="/2026/talks/android" data-start="2026-12-13T21:00:00+0000" data-end="2026-12-13T21:10:00+0000" title="Emacs on Android - Emacs for the next 40 years" data-slug="android"><title>Sun 4:00- 4:10 Emacs on Android - Emacs for the next 40 years</title><rect x="576" y="20" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(587,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">android</text></g></a><a href="/2026/talks/sun-close" data-start="2026-12-13T21:30:00+0000" data-end="2026-12-13T21:40:00+0000" title="Sunday closing remarks" data-slug="sun-close"><title>Sun 4:30- 4:40 Sunday closing remarks</title><rect x="617" y="20" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(628,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sun-close</text></g></a><a href="/2026/talks/prefix" data-start="2026-12-13T15:00:00+0000" data-end="2026-12-13T15:10:00+0000" title="prefix-tab-groups" data-slug="prefix"><title>Sun 10:00-10:10 prefix-tab-groups</title><rect x="82" y="75" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="5,5,5" fill="skyblue"></rect><g transform="translate(93,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">prefix</text></g></a><a href="/2026/talks/rau" data-start="2026-12-13T15:20:00+0000" data-end="2026-12-13T15:40:00+0000" title="Emacs as a Window Manager and concurrency" data-slug="rau"><title>Sun 10:20-10:40 Emacs as a Window Manager and concurrency</title><rect x="109" y="75" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(134,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">rau</text></g></a><a href="/2026/talks/babel" data-start="2026-12-13T16:00:00+0000" data-end="2026-12-13T16:10:00+0000" title="Org Babel everywhere" data-slug="babel"><title>Sun 11:00-11:10 Org Babel everywhere</title><rect x="164" y="75" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(175,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">babel</text></g></a><a href="/2026/talks/el-gpu" data-start="2026-12-13T16:30:00+0000" data-end="2026-12-13T16:50:00+0000" title="El-gpu and pix-el: GNU Emacs 2D and 3D game programming" data-slug="el-gpu"><title>Sun 11:30-11:50 El-gpu and pix-el: GNU Emacs 2D and 3D game programming</title><rect x="205" y="75" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(230,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">el-gpu</text></g></a><a href="/2026/talks/llms" data-start="2026-12-13T18:00:00+0000" data-end="2026-12-13T19:00:00+0000" title="[Panel] Emacs, LLMs, and Free Software" data-slug="llms"><title>Sun 1:00- 2:00 [Panel] Emacs, LLMs, and Free Software</title><rect stroke-width="3" x="329" y="75" opacity="0.8" width="82" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(409,128)"><text font-weight="bold" fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">llms</text></g></a><a href="/2026/talks/ghostel" data-start="2026-12-13T19:20:00+0000" data-end="2026-12-13T19:40:00+0000" title="Ghost in the Shell: a libghostty powered terminal for Emacs" data-slug="ghostel"><title>Sun 2:20- 2:40 Ghost in the Shell: a libghostty powered terminal for Emacs</title><rect x="439" y="75" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(464,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">ghostel</text></g></a><a href="/2026/talks/svg" data-start="2026-12-13T20:00:00+0000" data-end="2026-12-13T20:20:00+0000" title="A (sort of) REPL for learning SVG" data-slug="svg"><title>Sun 3:00- 3:20 A (sort of) REPL for learning SVG</title><rect x="494" y="75" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(519,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">svg</text></g></a><g transform="translate(0,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T14:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">9 AM EST</text></g><g transform="translate(82,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T15:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">10 AM EST</text></g><g transform="translate(164,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T16:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">11 AM EST</text></g><g transform="translate(247,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T17:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">12 PM EST</text></g><g transform="translate(329,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T18:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">1 PM EST</text></g><g transform="translate(411,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T19:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">2 PM EST</text></g><g transform="translate(494,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T20:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">3 PM EST</text></g><g transform="translate(576,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T21:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">4 PM EST</text></g><g transform="translate(658,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T22:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">5 PM EST</text></g></svg> </div> [[!toc ]] diff --git a/2026/info/local-before.md b/2026/info/local-before.md index 871da638..70c2f7ed 100644 --- a/2026/info/local-before.md +++ b/2026/info/local-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 Sun 2026-12-13. 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="local"> -<svg width="700" height="150" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><title>Schedule for Sunday</title><rect width="700" height="150" x="0" y="0" fill="white"></rect><text data-start="2026-12-13T14:00:00+0000" class="day-label" font-size="10" fill="black" y="17" x="3">Sunday</text><a href="/2026/talks/sun-open" data-start="2026-12-13T14:00:00+0000" data-end="2026-12-13T14:10:00+0000" title="Sunday opening remarks" data-slug="sun-open"><title>Sun 9:00- 9:10 Sunday opening remarks</title><rect x="0" y="20" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(11,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sun-open</text></g></a><a href="/2026/talks/bone" data-start="2026-12-13T14:10:00+0000" data-end="2026-12-13T14:20:00+0000" title="BONE and gnaw.el: tracking what matters" data-slug="bone"><title>Sun 9:10- 9:20 BONE and gnaw.el: tracking what matters</title><rect x="13" y="20" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(24,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">bone</text></g></a><a href="/2026/talks/local" data-start="2026-12-13T14:40:00+0000" data-end="2026-12-13T14:55:00+0000" title="Local file history possibilities in Emacs" data-slug="local"><title>Sun 9:40- 9:55 Local file history possibilities in Emacs</title><rect stroke-width="3" x="54" y="20" opacity="0.8" width="20" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(72,73)"><text font-weight="bold" fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">local</text></g></a><a href="/2026/talks/hutch" data-start="2026-12-13T15:15:00+0000" data-end="2026-12-13T15:25:00+0000" title="hutch: code reviews for the mildly disenfranchised" data-slug="hutch"><title>Sun 10:15-10:25 hutch: code reviews for the mildly disenfranchised</title><rect x="102" y="20" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(113,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">hutch</text></g></a><a href="/2026/talks/team" data-start="2026-12-13T15:35:00+0000" data-end="2026-12-13T15:55:00+0000" title="Beyond the Chatbot: Team-Oriented AI in Emacs" data-slug="team"><title>Sun 10:35-10:55 Beyond the Chatbot: Team-Oriented AI in Emacs</title><rect x="130" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(155,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">team</text></g></a><a href="/2026/talks/compile" data-start="2026-12-13T16:15:00+0000" data-end="2026-12-13T16:35:00+0000" title="Beyond shell history: Saving compilation output in Emacs" data-slug="compile"><title>Sun 11:15-11:35 Beyond shell history: Saving compilation output in Emacs</title><rect x="185" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(210,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">compile</text></g></a><a href="/2026/talks/dnd" data-start="2026-12-13T18:00:00+0000" data-end="2026-12-13T18:20:00+0000" title="DnD and Org Roam: Becoming a Better DM with Emacs" data-slug="dnd"><title>Sun 1:00- 1:20 DnD and Org Roam: Becoming a Better DM with Emacs</title><rect x="329" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(354,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">dnd</text></g></a><a href="/2026/talks/bible" data-start="2026-12-13T18:30:00+0000" data-end="2026-12-13T18:50:00+0000" title="bible-gateway: A Two-Edged Sword in Emacs" data-slug="bible"><title>Sun 1:30- 1:50 bible-gateway: A Two-Edged Sword in Emacs</title><rect x="370" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(395,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">bible</text></g></a><a href="/2026/talks/svg" data-start="2026-12-13T19:10:00+0000" data-end="2026-12-13T19:30:00+0000" title="A (sort of) REPL for learning SVG" data-slug="svg"><title>Sun 2:10- 2:30 A (sort of) REPL for learning SVG</title><rect x="425" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(450,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">svg</text></g></a><a href="/2026/talks/align" data-start="2026-12-13T19:50:00+0000" data-end="2026-12-13T20:10:00+0000" title="Column-aligning text in Emacs" data-slug="align"><title>Sun 2:50- 3:10 Column-aligning text in Emacs</title><rect x="480" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(505,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">align</text></g></a><a href="/2026/talks/anju" data-start="2026-12-13T20:30:00+0000" data-end="2026-12-13T20:50:00+0000" title="Revisiting Emacs Mouse Interactions with Anju" data-slug="anju"><title>Sun 3:30- 3:50 Revisiting Emacs Mouse Interactions with Anju</title><rect x="535" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(560,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">anju</text></g></a><a href="/2026/talks/ghostel" data-start="2026-12-13T21:00:00+0000" data-end="2026-12-13T21:20:00+0000" title="Ghost in the Shell: a libghostty powered terminal for Emacs" data-slug="ghostel"><title>Sun 4:00- 4:20 Ghost in the Shell: a libghostty powered terminal for Emacs</title><rect x="576" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(601,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">ghostel</text></g></a><a href="/2026/talks/sun-close" data-start="2026-12-13T21:40:00+0000" data-end="2026-12-13T21:50:00+0000" title="Sunday closing remarks" data-slug="sun-close"><title>Sun 4:40- 4:50 Sunday closing remarks</title><rect x="631" y="20" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(642,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sun-close</text></g></a><a href="/2026/talks/prefix" data-start="2026-12-13T15:00:00+0000" data-end="2026-12-13T15:10:00+0000" title="prefix-tab-groups" data-slug="prefix"><title>Sun 10:00-10:10 prefix-tab-groups</title><rect x="82" y="75" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="5,5,5" fill="skyblue"></rect><g transform="translate(93,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">prefix</text></g></a><a href="/2026/talks/rau" data-start="2026-12-13T15:20:00+0000" data-end="2026-12-13T15:40:00+0000" title="Emacs as a Window Manager and concurrency" data-slug="rau"><title>Sun 10:20-10:40 Emacs as a Window Manager and concurrency</title><rect x="109" y="75" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(134,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">rau</text></g></a><a href="/2026/talks/babel" data-start="2026-12-13T16:00:00+0000" data-end="2026-12-13T16:10:00+0000" title="Org Babel everywhere" data-slug="babel"><title>Sun 11:00-11:10 Org Babel everywhere</title><rect x="164" y="75" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(175,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">babel</text></g></a><a href="/2026/talks/el-gpu" data-start="2026-12-13T16:30:00+0000" data-end="2026-12-13T16:50:00+0000" title="El-gpu and pix-el: GNU Emacs 2D and 3D game programming" data-slug="el-gpu"><title>Sun 11:30-11:50 El-gpu and pix-el: GNU Emacs 2D and 3D game programming</title><rect x="205" y="75" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(230,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">el-gpu</text></g></a><a href="/2026/talks/llms" data-start="2026-12-13T18:00:00+0000" data-end="2026-12-13T19:00:00+0000" title="[Panel] Emacs, LLMs, and Free Software" data-slug="llms"><title>Sun 1:00- 2:00 [Panel] Emacs, LLMs, and Free Software</title><rect x="329" y="75" opacity="0.5" width="82" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(409,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">llms</text></g></a><g transform="translate(0,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T14:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">9 AM EST</text></g><g transform="translate(82,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T15:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">10 AM EST</text></g><g transform="translate(164,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T16:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">11 AM EST</text></g><g transform="translate(247,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T17:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">12 PM EST</text></g><g transform="translate(329,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T18:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">1 PM EST</text></g><g transform="translate(411,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T19:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">2 PM EST</text></g><g transform="translate(494,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T20:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">3 PM EST</text></g><g transform="translate(576,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T21:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">4 PM EST</text></g><g transform="translate(658,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T22:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">5 PM EST</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 Sunday</title><rect width="700" height="150" x="0" y="0" fill="white"></rect><text data-start="2026-12-13T14:00:00+0000" class="day-label" font-size="10" fill="black" y="17" x="3">Sunday</text><a href="/2026/talks/sun-open" data-start="2026-12-13T14:00:00+0000" data-end="2026-12-13T14:10:00+0000" title="Sunday opening remarks" data-slug="sun-open"><title>Sun 9:00- 9:10 Sunday opening remarks</title><rect x="0" y="20" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(11,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sun-open</text></g></a><a href="/2026/talks/bone" data-start="2026-12-13T14:10:00+0000" data-end="2026-12-13T14:20:00+0000" title="BONE and gnaw.el: tracking what matters" data-slug="bone"><title>Sun 9:10- 9:20 BONE and gnaw.el: tracking what matters</title><rect x="13" y="20" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(24,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">bone</text></g></a><a href="/2026/talks/local" data-start="2026-12-13T14:40:00+0000" data-end="2026-12-13T14:55:00+0000" title="Local file history possibilities in Emacs" data-slug="local"><title>Sun 9:40- 9:55 Local file history possibilities in Emacs</title><rect stroke-width="3" x="54" y="20" opacity="0.8" width="20" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(72,73)"><text font-weight="bold" fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">local</text></g></a><a href="/2026/talks/hutch" data-start="2026-12-13T15:15:00+0000" data-end="2026-12-13T15:25:00+0000" title="hutch: code reviews for the mildly disenfranchised" data-slug="hutch"><title>Sun 10:15-10:25 hutch: code reviews for the mildly disenfranchised</title><rect x="102" y="20" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(113,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">hutch</text></g></a><a href="/2026/talks/team" data-start="2026-12-13T15:35:00+0000" data-end="2026-12-13T15:55:00+0000" title="Beyond the Chatbot: Team-Oriented AI in Emacs" data-slug="team"><title>Sun 10:35-10:55 Beyond the Chatbot: Team-Oriented AI in Emacs</title><rect x="130" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(155,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">team</text></g></a><a href="/2026/talks/compile" data-start="2026-12-13T16:15:00+0000" data-end="2026-12-13T16:35:00+0000" title="Beyond shell history: Saving compilation output in Emacs" data-slug="compile"><title>Sun 11:15-11:35 Beyond shell history: Saving compilation output in Emacs</title><rect x="185" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(210,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">compile</text></g></a><a href="/2026/talks/dnd" data-start="2026-12-13T18:00:00+0000" data-end="2026-12-13T18:20:00+0000" title="DnD and Org Roam: Becoming a Better DM with Emacs" data-slug="dnd"><title>Sun 1:00- 1:20 DnD and Org Roam: Becoming a Better DM with Emacs</title><rect x="329" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(354,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">dnd</text></g></a><a href="/2026/talks/bible" data-start="2026-12-13T18:30:00+0000" data-end="2026-12-13T18:50:00+0000" title="bible-gateway: A Two-Edged Sword in Emacs" data-slug="bible"><title>Sun 1:30- 1:50 bible-gateway: A Two-Edged Sword in Emacs</title><rect x="370" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(395,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">bible</text></g></a><a href="/2026/talks/ffs" data-start="2026-12-13T19:10:00+0000" data-end="2026-12-13T19:30:00+0000" title="Plain text presentations in GNU Emacs with ffs" data-slug="ffs"><title>Sun 2:10- 2:30 Plain text presentations in GNU Emacs with ffs</title><rect x="425" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(450,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">ffs</text></g></a><a href="/2026/talks/align" data-start="2026-12-13T19:50:00+0000" data-end="2026-12-13T20:10:00+0000" title="Column-aligning text in Emacs" data-slug="align"><title>Sun 2:50- 3:10 Column-aligning text in Emacs</title><rect x="480" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(505,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">align</text></g></a><a href="/2026/talks/anju" data-start="2026-12-13T20:30:00+0000" data-end="2026-12-13T20:50:00+0000" title="Revisiting Emacs Mouse Interactions with Anju" data-slug="anju"><title>Sun 3:30- 3:50 Revisiting Emacs Mouse Interactions with Anju</title><rect x="535" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(560,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">anju</text></g></a><a href="/2026/talks/android" data-start="2026-12-13T21:00:00+0000" data-end="2026-12-13T21:10:00+0000" title="Emacs on Android - Emacs for the next 40 years" data-slug="android"><title>Sun 4:00- 4:10 Emacs on Android - Emacs for the next 40 years</title><rect x="576" y="20" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(587,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">android</text></g></a><a href="/2026/talks/sun-close" data-start="2026-12-13T21:30:00+0000" data-end="2026-12-13T21:40:00+0000" title="Sunday closing remarks" data-slug="sun-close"><title>Sun 4:30- 4:40 Sunday closing remarks</title><rect x="617" y="20" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(628,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sun-close</text></g></a><a href="/2026/talks/prefix" data-start="2026-12-13T15:00:00+0000" data-end="2026-12-13T15:10:00+0000" title="prefix-tab-groups" data-slug="prefix"><title>Sun 10:00-10:10 prefix-tab-groups</title><rect x="82" y="75" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="5,5,5" fill="skyblue"></rect><g transform="translate(93,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">prefix</text></g></a><a href="/2026/talks/rau" data-start="2026-12-13T15:20:00+0000" data-end="2026-12-13T15:40:00+0000" title="Emacs as a Window Manager and concurrency" data-slug="rau"><title>Sun 10:20-10:40 Emacs as a Window Manager and concurrency</title><rect x="109" y="75" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(134,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">rau</text></g></a><a href="/2026/talks/babel" data-start="2026-12-13T16:00:00+0000" data-end="2026-12-13T16:10:00+0000" title="Org Babel everywhere" data-slug="babel"><title>Sun 11:00-11:10 Org Babel everywhere</title><rect x="164" y="75" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(175,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">babel</text></g></a><a href="/2026/talks/el-gpu" data-start="2026-12-13T16:30:00+0000" data-end="2026-12-13T16:50:00+0000" title="El-gpu and pix-el: GNU Emacs 2D and 3D game programming" data-slug="el-gpu"><title>Sun 11:30-11:50 El-gpu and pix-el: GNU Emacs 2D and 3D game programming</title><rect x="205" y="75" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(230,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">el-gpu</text></g></a><a href="/2026/talks/llms" data-start="2026-12-13T18:00:00+0000" data-end="2026-12-13T19:00:00+0000" title="[Panel] Emacs, LLMs, and Free Software" data-slug="llms"><title>Sun 1:00- 2:00 [Panel] Emacs, LLMs, and Free Software</title><rect x="329" y="75" opacity="0.5" width="82" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(409,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">llms</text></g></a><a href="/2026/talks/ghostel" data-start="2026-12-13T19:20:00+0000" data-end="2026-12-13T19:40:00+0000" title="Ghost in the Shell: a libghostty powered terminal for Emacs" data-slug="ghostel"><title>Sun 2:20- 2:40 Ghost in the Shell: a libghostty powered terminal for Emacs</title><rect x="439" y="75" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(464,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">ghostel</text></g></a><a href="/2026/talks/svg" data-start="2026-12-13T20:00:00+0000" data-end="2026-12-13T20:20:00+0000" title="A (sort of) REPL for learning SVG" data-slug="svg"><title>Sun 3:00- 3:20 A (sort of) REPL for learning SVG</title><rect x="494" y="75" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(519,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">svg</text></g></a><g transform="translate(0,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T14:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">9 AM EST</text></g><g transform="translate(82,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T15:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">10 AM EST</text></g><g transform="translate(164,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T16:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">11 AM EST</text></g><g transform="translate(247,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T17:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">12 PM EST</text></g><g transform="translate(329,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T18:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">1 PM EST</text></g><g transform="translate(411,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T19:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">2 PM EST</text></g><g transform="translate(494,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T20:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">3 PM EST</text></g><g transform="translate(576,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T21:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">4 PM EST</text></g><g transform="translate(658,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T22:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">5 PM EST</text></g></svg> </div> [[!toc ]] diff --git a/2026/info/ltx-talk-before.md b/2026/info/ltx-talk-before.md index aa70676c..c296b7b0 100644 --- a/2026/info/ltx-talk-before.md +++ b/2026/info/ltx-talk-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 2026-12-12. 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="ltx-talk"> -<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 data-start="2026-12-12T14:00:00+0000" class="day-label" font-size="10" fill="black" y="17" x="3">Saturday</text><a href="/2026/talks/sat-open" data-start="2026-12-12T14:00:00+0000" data-end="2026-12-12T14:10:00+0000" title="Saturday opening remarks" data-slug="sat-open"><title>Sat 9:00- 9:10 Saturday opening remarks</title><rect x="0" y="20" opacity="0.5" width="13" height="54" 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="/2026/talks/planning" data-start="2026-12-12T14:10:00+0000" data-end="2026-12-12T14:30:00+0000" title="The Emacs Planning Habits of a Questionably Effective Person: My 40-year journey of planning with Emacs, Org Mode, paper journals, etc." data-slug="planning"><title>Sat 9:10- 9:30 The Emacs Planning Habits of a Questionably Effective Person: My 40-year journey of planning with Emacs, Org Mode, paper journals, etc.</title><rect x="13" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(38,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">planning</text></g></a><a href="/2026/talks/listen" data-start="2026-12-12T14:50:00+0000" data-end="2026-12-12T15:10:00+0000" title="Controlling Emacs by voice using Emacslisten" data-slug="listen"><title>Sat 9:50-10:10 Controlling Emacs by voice using Emacslisten</title><rect x="68" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(93,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">listen</text></g></a><a href="/2026/talks/emacspeak" data-start="2026-12-12T15:30:00+0000" data-end="2026-12-12T16:00:00+0000" title="Multi-dimensional information processing with Emacs and Emacspeak: a blind man's perspective" data-slug="emacspeak"><title>Sat 10:30-11:00 Multi-dimensional information processing with Emacs and Emacspeak: a blind man's perspective</title><rect x="123" y="20" opacity="0.5" width="41" height="54" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(162,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">emacspeak</text></g></a><a href="/2026/talks/ltx-talk" data-start="2026-12-12T16:10:00+0000" data-end="2026-12-12T16:30:00+0000" title="ltx-talk: Accessible presentations with ox-beamer" data-slug="ltx-talk"><title>Sat 11:10-11:30 ltx-talk: Accessible presentations with ox-beamer</title><rect stroke-width="3" x="178" y="20" opacity="0.8" width="27" height="54" 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)">ltx-talk</text></g></a><a href="/2026/talks/plots" data-start="2026-12-12T18:00:00+0000" data-end="2026-12-12T18:20:00+0000" title="Plots with ROOTs: Resilient data visualization with Emacs, Org and gnuplot" data-slug="plots"><title>Sat 1:00- 1:20 Plots with ROOTs: Resilient data visualization with Emacs, Org and gnuplot</title><rect x="329" y="20" opacity="0.5" width="27" height="54" 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)">plots</text></g></a><a href="/2026/talks/ffs" data-start="2026-12-12T18:40:00+0000" data-end="2026-12-12T19:00:00+0000" title="Plain text presentations in GNU Emacs with ffs" data-slug="ffs"><title>Sat 1:40- 2:00 Plain text presentations in GNU Emacs with ffs</title><rect x="384" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(409,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">ffs</text></g></a><a href="/2026/talks/mobile" data-start="2026-12-12T19:20:00+0000" data-end="2026-12-12T19:30:00+0000" title="How I solved Org Mode's biggest mobile and collaboration problems" data-slug="mobile"><title>Sat 2:20- 2:30 How I solved Org Mode's biggest mobile and collaboration problems</title><rect x="439" y="20" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(450,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">mobile</text></g></a><a href="/2026/talks/hyperbole" data-start="2026-12-12T19:50:00+0000" data-end="2026-12-12T20:10:00+0000" title="Hyperbole, My Dear Watson" data-slug="hyperbole"><title>Sat 2:50- 3:10 Hyperbole, My Dear Watson</title><rect x="480" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(505,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">hyperbole</text></g></a><a href="/2026/talks/koutliner" data-start="2026-12-12T20:30:00+0000" data-end="2026-12-12T20:50:00+0000" title="Hyperbole Koutliner: The Best Autonumbered, Hyperlinking Outliner for Emacs" data-slug="koutliner"><title>Sat 3:30- 3:50 Hyperbole Koutliner: The Best Autonumbered, Hyperlinking Outliner for Emacs</title><rect x="535" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(560,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">koutliner</text></g></a><a href="/2026/talks/writing" data-start="2026-12-12T21:10:00+0000" data-end="2026-12-12T21:30:00+0000" title="Close the writing accountability gap with Emacs" data-slug="writing"><title>Sat 4:10- 4:30 Close the writing accountability gap with Emacs</title><rect x="590" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(615,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">writing</text></g></a><a href="/2026/talks/android" data-start="2026-12-12T21:50:00+0000" data-end="2026-12-12T22:00:00+0000" title="Emacs on Android - Emacs for the next 40 years" data-slug="android"><title>Sat 4:50- 5:00 Emacs on Android - Emacs for the next 40 years</title><rect x="645" y="20" opacity="0.5" width="13" height="54" 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)">android</text></g></a><a href="/2026/talks/sat-close" data-start="2026-12-12T22:20:00+0000" data-end="2026-12-12T22:30:00+0000" title="Saturday closing remarks / open session" data-slug="sat-close"><title>Sat 5:20- 5:30 Saturday closing remarks / open session</title><rect x="686" y="20" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(697,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sat-close</text></g></a><a href="/2026/talks/community" data-start="2026-12-12T15:30:00+0000" data-end="2026-12-12T16:30:00+0000" title="[Panel] Improving the Emacs Community: Onboarding, Participation, and Growth" data-slug="community"><title>Sat 10:30-11:30 [Panel] Improving the Emacs Community: Onboarding, Participation, and Growth</title><rect x="123" y="75" opacity="0.5" width="82" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(203,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">community</text></g></a><a href="/2026/talks/portable" data-start="2026-12-12T18:00:00+0000" data-end="2026-12-12T18:15:00+0000" title="Emacs as my portable user space across operating platforms" data-slug="portable"><title>Sat 1:00- 1:15 Emacs as my portable user space across operating platforms</title><rect x="329" y="75" opacity="0.5" width="20" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(347,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">portable</text></g></a><a href="/2026/talks/os" data-start="2026-12-12T18:35:00+0000" data-end="2026-12-12T18:55:00+0000" title="Emacs everywhere: A fun romp through esoteric operating systems" data-slug="os"><title>Sat 1:35- 1:55 Emacs everywhere: A fun romp through esoteric operating systems</title><rect x="377" y="75" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(402,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">os</text></g></a><a href="/2026/talks/cadet" data-start="2026-12-12T19:15:00+0000" data-end="2026-12-12T19:25:00+0000" title="My Space Cadet Deck - an Android Stream Deck replacement with deep Emacs integration" data-slug="cadet"><title>Sat 2:15- 2:25 My Space Cadet Deck - an Android Stream Deck replacement with deep Emacs integration</title><rect x="432" y="75" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(443,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">cadet</text></g></a><a href="/2026/talks/remoto" data-start="2026-12-12T19:45:00+0000" data-end="2026-12-12T20:05:00+0000" title="El Remoto: browse any GitHub repos without cloning them" data-slug="remoto"><title>Sat 2:45- 3:05 El Remoto: browse any GitHub repos without cloning them</title><rect x="473" y="75" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(498,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">remoto</text></g></a><a href="/2026/talks/guile" data-start="2026-12-12T20:25:00+0000" data-end="2026-12-12T20:45:00+0000" title="æmacs: having a hoot with a guile emacs" data-slug="guile"><title>Sat 3:25- 3:45 æmacs: having a hoot with a guile emacs</title><rect x="528" y="75" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(553,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">guile</text></g></a><a href="/2026/talks/virus" data-start="2026-12-12T21:05:00+0000" data-end="2026-12-12T21:25:00+0000" title="It's Probably Not a Virus" data-slug="virus"><title>Sat 4:05- 4:25 It's Probably Not a Virus</title><rect x="583" y="75" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(608,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">virus</text></g></a><g transform="translate(0,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T14:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">9 AM EST</text></g><g transform="translate(82,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T15:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">10 AM EST</text></g><g transform="translate(164,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T16:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">11 AM EST</text></g><g transform="translate(247,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T17:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">12 PM EST</text></g><g transform="translate(329,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T18:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">1 PM EST</text></g><g transform="translate(411,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T19:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">2 PM EST</text></g><g transform="translate(494,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T20:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">3 PM EST</text></g><g transform="translate(576,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T21:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">4 PM EST</text></g><g transform="translate(658,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T22:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">5 PM EST</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 data-start="2026-12-12T14:00:00+0000" class="day-label" font-size="10" fill="black" y="17" x="3">Saturday</text><a href="/2026/talks/sat-open" data-start="2026-12-12T14:00:00+0000" data-end="2026-12-12T14:10:00+0000" title="Saturday opening remarks" data-slug="sat-open"><title>Sat 9:00- 9:10 Saturday opening remarks</title><rect x="0" y="20" opacity="0.5" width="13" height="54" 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="/2026/talks/planning" data-start="2026-12-12T14:10:00+0000" data-end="2026-12-12T14:30:00+0000" title="The Emacs Planning Habits of a Questionably Effective Person: My 40-year journey of planning with Emacs, Org Mode, paper journals, etc." data-slug="planning"><title>Sat 9:10- 9:30 The Emacs Planning Habits of a Questionably Effective Person: My 40-year journey of planning with Emacs, Org Mode, paper journals, etc.</title><rect x="13" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(38,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">planning</text></g></a><a href="/2026/talks/listen" data-start="2026-12-12T14:50:00+0000" data-end="2026-12-12T15:10:00+0000" title="Emacslisten: Controlling Emacs by voice" data-slug="listen"><title>Sat 9:50-10:10 Emacslisten: Controlling Emacs by voice</title><rect x="68" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(93,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">listen</text></g></a><a href="/2026/talks/emacspeak" data-start="2026-12-12T15:30:00+0000" data-end="2026-12-12T16:00:00+0000" title="Multi-dimensional information processing with Emacs and Emacspeak: a blind man's perspective" data-slug="emacspeak"><title>Sat 10:30-11:00 Multi-dimensional information processing with Emacs and Emacspeak: a blind man's perspective</title><rect x="123" y="20" opacity="0.5" width="41" height="54" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(162,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">emacspeak</text></g></a><a href="/2026/talks/ltx-talk" data-start="2026-12-12T16:10:00+0000" data-end="2026-12-12T16:30:00+0000" title="ltx-talk: Accessible presentations with ox-beamer" data-slug="ltx-talk"><title>Sat 11:10-11:30 ltx-talk: Accessible presentations with ox-beamer</title><rect stroke-width="3" x="178" y="20" opacity="0.8" width="27" height="54" 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)">ltx-talk</text></g></a><a href="/2026/talks/plots" data-start="2026-12-12T18:00:00+0000" data-end="2026-12-12T18:20:00+0000" title="Plots with ROOTs: Resilient data visualization with Emacs, Org and gnuplot" data-slug="plots"><title>Sat 1:00- 1:20 Plots with ROOTs: Resilient data visualization with Emacs, Org and gnuplot</title><rect x="329" y="20" opacity="0.5" width="27" height="54" 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)">plots</text></g></a><a href="/2026/talks/tasks" data-start="2026-12-12T18:40:00+0000" data-end="2026-12-12T19:00:00+0000" title="Personal task management under stress (with Org mode)" data-slug="tasks"><title>Sat 1:40- 2:00 Personal task management under stress (with Org mode)</title><rect x="384" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(409,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">tasks</text></g></a><a href="/2026/talks/mobile" data-start="2026-12-12T19:20:00+0000" data-end="2026-12-12T19:30:00+0000" title="How I solved Org Mode's biggest mobile and collaboration problems" data-slug="mobile"><title>Sat 2:20- 2:30 How I solved Org Mode's biggest mobile and collaboration problems</title><rect x="439" y="20" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(450,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">mobile</text></g></a><a href="/2026/talks/hyperbole" data-start="2026-12-12T19:50:00+0000" data-end="2026-12-12T20:10:00+0000" title="Hyperbole, My Dear Watson" data-slug="hyperbole"><title>Sat 2:50- 3:10 Hyperbole, My Dear Watson</title><rect x="480" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(505,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">hyperbole</text></g></a><a href="/2026/talks/koutliner" data-start="2026-12-12T20:30:00+0000" data-end="2026-12-12T20:50:00+0000" title="Hyperbole Koutliner: The Best Autonumbered, Hyperlinking Outliner for Emacs" data-slug="koutliner"><title>Sat 3:30- 3:50 Hyperbole Koutliner: The Best Autonumbered, Hyperlinking Outliner for Emacs</title><rect x="535" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(560,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">koutliner</text></g></a><a href="/2026/talks/writing" data-start="2026-12-12T21:10:00+0000" data-end="2026-12-12T21:30:00+0000" title="Close the writing accountability gap with Emacs" data-slug="writing"><title>Sat 4:10- 4:30 Close the writing accountability gap with Emacs</title><rect x="590" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(615,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">writing</text></g></a><a href="/2026/talks/sat-close" data-start="2026-12-12T21:50:00+0000" data-end="2026-12-12T22:00:00+0000" title="Saturday closing remarks / open session" data-slug="sat-close"><title>Sat 4:50- 5:00 Saturday closing remarks / open session</title><rect x="645" y="20" opacity="0.5" width="13" height="54" 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)">sat-close</text></g></a><a href="/2026/talks/community" data-start="2026-12-12T15:30:00+0000" data-end="2026-12-12T16:30:00+0000" title="[Panel] Improving the Emacs Community: Onboarding, Participation, and Growth" data-slug="community"><title>Sat 10:30-11:30 [Panel] Improving the Emacs Community: Onboarding, Participation, and Growth</title><rect x="123" y="75" opacity="0.5" width="82" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(203,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">community</text></g></a><a href="/2026/talks/portable" data-start="2026-12-12T18:00:00+0000" data-end="2026-12-12T18:15:00+0000" title="Emacs as my portable user space across operating platforms" data-slug="portable"><title>Sat 1:00- 1:15 Emacs as my portable user space across operating platforms</title><rect x="329" y="75" opacity="0.5" width="20" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(347,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">portable</text></g></a><a href="/2026/talks/os" data-start="2026-12-12T18:35:00+0000" data-end="2026-12-12T18:55:00+0000" title="Emacs everywhere: A fun romp through esoteric operating systems" data-slug="os"><title>Sat 1:35- 1:55 Emacs everywhere: A fun romp through esoteric operating systems</title><rect x="377" y="75" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(402,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">os</text></g></a><a href="/2026/talks/cadet" data-start="2026-12-12T19:15:00+0000" data-end="2026-12-12T19:25:00+0000" title="My Space Cadet Deck - an Android Stream Deck replacement with deep Emacs integration" data-slug="cadet"><title>Sat 2:15- 2:25 My Space Cadet Deck - an Android Stream Deck replacement with deep Emacs integration</title><rect x="432" y="75" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(443,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">cadet</text></g></a><a href="/2026/talks/remoto" data-start="2026-12-12T19:45:00+0000" data-end="2026-12-12T20:05:00+0000" title="El Remoto: browse any GitHub repos without cloning them" data-slug="remoto"><title>Sat 2:45- 3:05 El Remoto: browse any GitHub repos without cloning them</title><rect x="473" y="75" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(498,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">remoto</text></g></a><a href="/2026/talks/guile" data-start="2026-12-12T20:25:00+0000" data-end="2026-12-12T20:45:00+0000" title="æmacs: having a hoot with a guile emacs" data-slug="guile"><title>Sat 3:25- 3:45 æmacs: having a hoot with a guile emacs</title><rect x="528" y="75" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(553,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">guile</text></g></a><a href="/2026/talks/virus" data-start="2026-12-12T21:05:00+0000" data-end="2026-12-12T21:25:00+0000" title="It's Probably Not a Virus" data-slug="virus"><title>Sat 4:05- 4:25 It's Probably Not a Virus</title><rect x="583" y="75" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(608,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">virus</text></g></a><g transform="translate(0,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T14:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">9 AM EST</text></g><g transform="translate(82,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T15:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">10 AM EST</text></g><g transform="translate(164,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T16:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">11 AM EST</text></g><g transform="translate(247,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T17:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">12 PM EST</text></g><g transform="translate(329,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T18:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">1 PM EST</text></g><g transform="translate(411,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T19:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">2 PM EST</text></g><g transform="translate(494,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T20:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">3 PM EST</text></g><g transform="translate(576,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T21:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">4 PM EST</text></g><g transform="translate(658,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T22:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">5 PM EST</text></g></svg> </div> [[!toc ]] diff --git a/2026/info/mobile-before.md b/2026/info/mobile-before.md index 77f3a9f1..6293e76b 100644 --- a/2026/info/mobile-before.md +++ b/2026/info/mobile-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 2026-12-12. 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="mobile"> -<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 data-start="2026-12-12T14:00:00+0000" class="day-label" font-size="10" fill="black" y="17" x="3">Saturday</text><a href="/2026/talks/sat-open" data-start="2026-12-12T14:00:00+0000" data-end="2026-12-12T14:10:00+0000" title="Saturday opening remarks" data-slug="sat-open"><title>Sat 9:00- 9:10 Saturday opening remarks</title><rect x="0" y="20" opacity="0.5" width="13" height="54" 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="/2026/talks/planning" data-start="2026-12-12T14:10:00+0000" data-end="2026-12-12T14:30:00+0000" title="The Emacs Planning Habits of a Questionably Effective Person: My 40-year journey of planning with Emacs, Org Mode, paper journals, etc." data-slug="planning"><title>Sat 9:10- 9:30 The Emacs Planning Habits of a Questionably Effective Person: My 40-year journey of planning with Emacs, Org Mode, paper journals, etc.</title><rect x="13" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(38,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">planning</text></g></a><a href="/2026/talks/listen" data-start="2026-12-12T14:50:00+0000" data-end="2026-12-12T15:10:00+0000" title="Controlling Emacs by voice using Emacslisten" data-slug="listen"><title>Sat 9:50-10:10 Controlling Emacs by voice using Emacslisten</title><rect x="68" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(93,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">listen</text></g></a><a href="/2026/talks/emacspeak" data-start="2026-12-12T15:30:00+0000" data-end="2026-12-12T16:00:00+0000" title="Multi-dimensional information processing with Emacs and Emacspeak: a blind man's perspective" data-slug="emacspeak"><title>Sat 10:30-11:00 Multi-dimensional information processing with Emacs and Emacspeak: a blind man's perspective</title><rect x="123" y="20" opacity="0.5" width="41" height="54" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(162,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">emacspeak</text></g></a><a href="/2026/talks/ltx-talk" data-start="2026-12-12T16:10:00+0000" data-end="2026-12-12T16:30:00+0000" title="ltx-talk: Accessible presentations with ox-beamer" data-slug="ltx-talk"><title>Sat 11:10-11:30 ltx-talk: Accessible presentations with ox-beamer</title><rect x="178" y="20" opacity="0.5" width="27" height="54" 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)">ltx-talk</text></g></a><a href="/2026/talks/plots" data-start="2026-12-12T18:00:00+0000" data-end="2026-12-12T18:20:00+0000" title="Plots with ROOTs: Resilient data visualization with Emacs, Org and gnuplot" data-slug="plots"><title>Sat 1:00- 1:20 Plots with ROOTs: Resilient data visualization with Emacs, Org and gnuplot</title><rect x="329" y="20" opacity="0.5" width="27" height="54" 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)">plots</text></g></a><a href="/2026/talks/ffs" data-start="2026-12-12T18:40:00+0000" data-end="2026-12-12T19:00:00+0000" title="Plain text presentations in GNU Emacs with ffs" data-slug="ffs"><title>Sat 1:40- 2:00 Plain text presentations in GNU Emacs with ffs</title><rect x="384" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(409,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">ffs</text></g></a><a href="/2026/talks/mobile" data-start="2026-12-12T19:20:00+0000" data-end="2026-12-12T19:30:00+0000" title="How I solved Org Mode's biggest mobile and collaboration problems" data-slug="mobile"><title>Sat 2:20- 2:30 How I solved Org Mode's biggest mobile and collaboration problems</title><rect stroke-width="3" x="439" y="20" opacity="0.8" width="13" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(450,73)"><text font-weight="bold" fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">mobile</text></g></a><a href="/2026/talks/hyperbole" data-start="2026-12-12T19:50:00+0000" data-end="2026-12-12T20:10:00+0000" title="Hyperbole, My Dear Watson" data-slug="hyperbole"><title>Sat 2:50- 3:10 Hyperbole, My Dear Watson</title><rect x="480" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(505,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">hyperbole</text></g></a><a href="/2026/talks/koutliner" data-start="2026-12-12T20:30:00+0000" data-end="2026-12-12T20:50:00+0000" title="Hyperbole Koutliner: The Best Autonumbered, Hyperlinking Outliner for Emacs" data-slug="koutliner"><title>Sat 3:30- 3:50 Hyperbole Koutliner: The Best Autonumbered, Hyperlinking Outliner for Emacs</title><rect x="535" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(560,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">koutliner</text></g></a><a href="/2026/talks/writing" data-start="2026-12-12T21:10:00+0000" data-end="2026-12-12T21:30:00+0000" title="Close the writing accountability gap with Emacs" data-slug="writing"><title>Sat 4:10- 4:30 Close the writing accountability gap with Emacs</title><rect x="590" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(615,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">writing</text></g></a><a href="/2026/talks/android" data-start="2026-12-12T21:50:00+0000" data-end="2026-12-12T22:00:00+0000" title="Emacs on Android - Emacs for the next 40 years" data-slug="android"><title>Sat 4:50- 5:00 Emacs on Android - Emacs for the next 40 years</title><rect x="645" y="20" opacity="0.5" width="13" height="54" 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)">android</text></g></a><a href="/2026/talks/sat-close" data-start="2026-12-12T22:20:00+0000" data-end="2026-12-12T22:30:00+0000" title="Saturday closing remarks / open session" data-slug="sat-close"><title>Sat 5:20- 5:30 Saturday closing remarks / open session</title><rect x="686" y="20" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(697,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sat-close</text></g></a><a href="/2026/talks/community" data-start="2026-12-12T15:30:00+0000" data-end="2026-12-12T16:30:00+0000" title="[Panel] Improving the Emacs Community: Onboarding, Participation, and Growth" data-slug="community"><title>Sat 10:30-11:30 [Panel] Improving the Emacs Community: Onboarding, Participation, and Growth</title><rect x="123" y="75" opacity="0.5" width="82" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(203,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">community</text></g></a><a href="/2026/talks/portable" data-start="2026-12-12T18:00:00+0000" data-end="2026-12-12T18:15:00+0000" title="Emacs as my portable user space across operating platforms" data-slug="portable"><title>Sat 1:00- 1:15 Emacs as my portable user space across operating platforms</title><rect x="329" y="75" opacity="0.5" width="20" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(347,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">portable</text></g></a><a href="/2026/talks/os" data-start="2026-12-12T18:35:00+0000" data-end="2026-12-12T18:55:00+0000" title="Emacs everywhere: A fun romp through esoteric operating systems" data-slug="os"><title>Sat 1:35- 1:55 Emacs everywhere: A fun romp through esoteric operating systems</title><rect x="377" y="75" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(402,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">os</text></g></a><a href="/2026/talks/cadet" data-start="2026-12-12T19:15:00+0000" data-end="2026-12-12T19:25:00+0000" title="My Space Cadet Deck - an Android Stream Deck replacement with deep Emacs integration" data-slug="cadet"><title>Sat 2:15- 2:25 My Space Cadet Deck - an Android Stream Deck replacement with deep Emacs integration</title><rect x="432" y="75" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(443,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">cadet</text></g></a><a href="/2026/talks/remoto" data-start="2026-12-12T19:45:00+0000" data-end="2026-12-12T20:05:00+0000" title="El Remoto: browse any GitHub repos without cloning them" data-slug="remoto"><title>Sat 2:45- 3:05 El Remoto: browse any GitHub repos without cloning them</title><rect x="473" y="75" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(498,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">remoto</text></g></a><a href="/2026/talks/guile" data-start="2026-12-12T20:25:00+0000" data-end="2026-12-12T20:45:00+0000" title="æmacs: having a hoot with a guile emacs" data-slug="guile"><title>Sat 3:25- 3:45 æmacs: having a hoot with a guile emacs</title><rect x="528" y="75" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(553,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">guile</text></g></a><a href="/2026/talks/virus" data-start="2026-12-12T21:05:00+0000" data-end="2026-12-12T21:25:00+0000" title="It's Probably Not a Virus" data-slug="virus"><title>Sat 4:05- 4:25 It's Probably Not a Virus</title><rect x="583" y="75" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(608,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">virus</text></g></a><g transform="translate(0,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T14:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">9 AM EST</text></g><g transform="translate(82,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T15:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">10 AM EST</text></g><g transform="translate(164,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T16:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">11 AM EST</text></g><g transform="translate(247,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T17:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">12 PM EST</text></g><g transform="translate(329,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T18:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">1 PM EST</text></g><g transform="translate(411,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T19:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">2 PM EST</text></g><g transform="translate(494,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T20:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">3 PM EST</text></g><g transform="translate(576,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T21:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">4 PM EST</text></g><g transform="translate(658,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T22:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">5 PM EST</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 data-start="2026-12-12T14:00:00+0000" class="day-label" font-size="10" fill="black" y="17" x="3">Saturday</text><a href="/2026/talks/sat-open" data-start="2026-12-12T14:00:00+0000" data-end="2026-12-12T14:10:00+0000" title="Saturday opening remarks" data-slug="sat-open"><title>Sat 9:00- 9:10 Saturday opening remarks</title><rect x="0" y="20" opacity="0.5" width="13" height="54" 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="/2026/talks/planning" data-start="2026-12-12T14:10:00+0000" data-end="2026-12-12T14:30:00+0000" title="The Emacs Planning Habits of a Questionably Effective Person: My 40-year journey of planning with Emacs, Org Mode, paper journals, etc." data-slug="planning"><title>Sat 9:10- 9:30 The Emacs Planning Habits of a Questionably Effective Person: My 40-year journey of planning with Emacs, Org Mode, paper journals, etc.</title><rect x="13" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(38,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">planning</text></g></a><a href="/2026/talks/listen" data-start="2026-12-12T14:50:00+0000" data-end="2026-12-12T15:10:00+0000" title="Emacslisten: Controlling Emacs by voice" data-slug="listen"><title>Sat 9:50-10:10 Emacslisten: Controlling Emacs by voice</title><rect x="68" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(93,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">listen</text></g></a><a href="/2026/talks/emacspeak" data-start="2026-12-12T15:30:00+0000" data-end="2026-12-12T16:00:00+0000" title="Multi-dimensional information processing with Emacs and Emacspeak: a blind man's perspective" data-slug="emacspeak"><title>Sat 10:30-11:00 Multi-dimensional information processing with Emacs and Emacspeak: a blind man's perspective</title><rect x="123" y="20" opacity="0.5" width="41" height="54" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(162,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">emacspeak</text></g></a><a href="/2026/talks/ltx-talk" data-start="2026-12-12T16:10:00+0000" data-end="2026-12-12T16:30:00+0000" title="ltx-talk: Accessible presentations with ox-beamer" data-slug="ltx-talk"><title>Sat 11:10-11:30 ltx-talk: Accessible presentations with ox-beamer</title><rect x="178" y="20" opacity="0.5" width="27" height="54" 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)">ltx-talk</text></g></a><a href="/2026/talks/plots" data-start="2026-12-12T18:00:00+0000" data-end="2026-12-12T18:20:00+0000" title="Plots with ROOTs: Resilient data visualization with Emacs, Org and gnuplot" data-slug="plots"><title>Sat 1:00- 1:20 Plots with ROOTs: Resilient data visualization with Emacs, Org and gnuplot</title><rect x="329" y="20" opacity="0.5" width="27" height="54" 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)">plots</text></g></a><a href="/2026/talks/tasks" data-start="2026-12-12T18:40:00+0000" data-end="2026-12-12T19:00:00+0000" title="Personal task management under stress (with Org mode)" data-slug="tasks"><title>Sat 1:40- 2:00 Personal task management under stress (with Org mode)</title><rect x="384" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(409,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">tasks</text></g></a><a href="/2026/talks/mobile" data-start="2026-12-12T19:20:00+0000" data-end="2026-12-12T19:30:00+0000" title="How I solved Org Mode's biggest mobile and collaboration problems" data-slug="mobile"><title>Sat 2:20- 2:30 How I solved Org Mode's biggest mobile and collaboration problems</title><rect stroke-width="3" x="439" y="20" opacity="0.8" width="13" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(450,73)"><text font-weight="bold" fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">mobile</text></g></a><a href="/2026/talks/hyperbole" data-start="2026-12-12T19:50:00+0000" data-end="2026-12-12T20:10:00+0000" title="Hyperbole, My Dear Watson" data-slug="hyperbole"><title>Sat 2:50- 3:10 Hyperbole, My Dear Watson</title><rect x="480" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(505,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">hyperbole</text></g></a><a href="/2026/talks/koutliner" data-start="2026-12-12T20:30:00+0000" data-end="2026-12-12T20:50:00+0000" title="Hyperbole Koutliner: The Best Autonumbered, Hyperlinking Outliner for Emacs" data-slug="koutliner"><title>Sat 3:30- 3:50 Hyperbole Koutliner: The Best Autonumbered, Hyperlinking Outliner for Emacs</title><rect x="535" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(560,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">koutliner</text></g></a><a href="/2026/talks/writing" data-start="2026-12-12T21:10:00+0000" data-end="2026-12-12T21:30:00+0000" title="Close the writing accountability gap with Emacs" data-slug="writing"><title>Sat 4:10- 4:30 Close the writing accountability gap with Emacs</title><rect x="590" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(615,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">writing</text></g></a><a href="/2026/talks/sat-close" data-start="2026-12-12T21:50:00+0000" data-end="2026-12-12T22:00:00+0000" title="Saturday closing remarks / open session" data-slug="sat-close"><title>Sat 4:50- 5:00 Saturday closing remarks / open session</title><rect x="645" y="20" opacity="0.5" width="13" height="54" 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)">sat-close</text></g></a><a href="/2026/talks/community" data-start="2026-12-12T15:30:00+0000" data-end="2026-12-12T16:30:00+0000" title="[Panel] Improving the Emacs Community: Onboarding, Participation, and Growth" data-slug="community"><title>Sat 10:30-11:30 [Panel] Improving the Emacs Community: Onboarding, Participation, and Growth</title><rect x="123" y="75" opacity="0.5" width="82" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(203,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">community</text></g></a><a href="/2026/talks/portable" data-start="2026-12-12T18:00:00+0000" data-end="2026-12-12T18:15:00+0000" title="Emacs as my portable user space across operating platforms" data-slug="portable"><title>Sat 1:00- 1:15 Emacs as my portable user space across operating platforms</title><rect x="329" y="75" opacity="0.5" width="20" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(347,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">portable</text></g></a><a href="/2026/talks/os" data-start="2026-12-12T18:35:00+0000" data-end="2026-12-12T18:55:00+0000" title="Emacs everywhere: A fun romp through esoteric operating systems" data-slug="os"><title>Sat 1:35- 1:55 Emacs everywhere: A fun romp through esoteric operating systems</title><rect x="377" y="75" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(402,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">os</text></g></a><a href="/2026/talks/cadet" data-start="2026-12-12T19:15:00+0000" data-end="2026-12-12T19:25:00+0000" title="My Space Cadet Deck - an Android Stream Deck replacement with deep Emacs integration" data-slug="cadet"><title>Sat 2:15- 2:25 My Space Cadet Deck - an Android Stream Deck replacement with deep Emacs integration</title><rect x="432" y="75" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(443,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">cadet</text></g></a><a href="/2026/talks/remoto" data-start="2026-12-12T19:45:00+0000" data-end="2026-12-12T20:05:00+0000" title="El Remoto: browse any GitHub repos without cloning them" data-slug="remoto"><title>Sat 2:45- 3:05 El Remoto: browse any GitHub repos without cloning them</title><rect x="473" y="75" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(498,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">remoto</text></g></a><a href="/2026/talks/guile" data-start="2026-12-12T20:25:00+0000" data-end="2026-12-12T20:45:00+0000" title="æmacs: having a hoot with a guile emacs" data-slug="guile"><title>Sat 3:25- 3:45 æmacs: having a hoot with a guile emacs</title><rect x="528" y="75" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(553,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">guile</text></g></a><a href="/2026/talks/virus" data-start="2026-12-12T21:05:00+0000" data-end="2026-12-12T21:25:00+0000" title="It's Probably Not a Virus" data-slug="virus"><title>Sat 4:05- 4:25 It's Probably Not a Virus</title><rect x="583" y="75" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(608,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">virus</text></g></a><g transform="translate(0,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T14:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">9 AM EST</text></g><g transform="translate(82,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T15:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">10 AM EST</text></g><g transform="translate(164,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T16:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">11 AM EST</text></g><g transform="translate(247,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T17:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">12 PM EST</text></g><g transform="translate(329,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T18:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">1 PM EST</text></g><g transform="translate(411,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T19:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">2 PM EST</text></g><g transform="translate(494,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T20:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">3 PM EST</text></g><g transform="translate(576,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T21:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">4 PM EST</text></g><g transform="translate(658,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T22:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">5 PM EST</text></g></svg> </div> [[!toc ]] diff --git a/2026/info/os-before.md b/2026/info/os-before.md index a6431a73..32ca0e1b 100644 --- a/2026/info/os-before.md +++ b/2026/info/os-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 2026-12-12. 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="os"> -<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 data-start="2026-12-12T14:00:00+0000" class="day-label" font-size="10" fill="black" y="17" x="3">Saturday</text><a href="/2026/talks/sat-open" data-start="2026-12-12T14:00:00+0000" data-end="2026-12-12T14:10:00+0000" title="Saturday opening remarks" data-slug="sat-open"><title>Sat 9:00- 9:10 Saturday opening remarks</title><rect x="0" y="20" opacity="0.5" width="13" height="54" 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="/2026/talks/planning" data-start="2026-12-12T14:10:00+0000" data-end="2026-12-12T14:30:00+0000" title="The Emacs Planning Habits of a Questionably Effective Person: My 40-year journey of planning with Emacs, Org Mode, paper journals, etc." data-slug="planning"><title>Sat 9:10- 9:30 The Emacs Planning Habits of a Questionably Effective Person: My 40-year journey of planning with Emacs, Org Mode, paper journals, etc.</title><rect x="13" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(38,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">planning</text></g></a><a href="/2026/talks/listen" data-start="2026-12-12T14:50:00+0000" data-end="2026-12-12T15:10:00+0000" title="Controlling Emacs by voice using Emacslisten" data-slug="listen"><title>Sat 9:50-10:10 Controlling Emacs by voice using Emacslisten</title><rect x="68" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(93,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">listen</text></g></a><a href="/2026/talks/emacspeak" data-start="2026-12-12T15:30:00+0000" data-end="2026-12-12T16:00:00+0000" title="Multi-dimensional information processing with Emacs and Emacspeak: a blind man's perspective" data-slug="emacspeak"><title>Sat 10:30-11:00 Multi-dimensional information processing with Emacs and Emacspeak: a blind man's perspective</title><rect x="123" y="20" opacity="0.5" width="41" height="54" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(162,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">emacspeak</text></g></a><a href="/2026/talks/ltx-talk" data-start="2026-12-12T16:10:00+0000" data-end="2026-12-12T16:30:00+0000" title="ltx-talk: Accessible presentations with ox-beamer" data-slug="ltx-talk"><title>Sat 11:10-11:30 ltx-talk: Accessible presentations with ox-beamer</title><rect x="178" y="20" opacity="0.5" width="27" height="54" 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)">ltx-talk</text></g></a><a href="/2026/talks/plots" data-start="2026-12-12T18:00:00+0000" data-end="2026-12-12T18:20:00+0000" title="Plots with ROOTs: Resilient data visualization with Emacs, Org and gnuplot" data-slug="plots"><title>Sat 1:00- 1:20 Plots with ROOTs: Resilient data visualization with Emacs, Org and gnuplot</title><rect x="329" y="20" opacity="0.5" width="27" height="54" 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)">plots</text></g></a><a href="/2026/talks/ffs" data-start="2026-12-12T18:40:00+0000" data-end="2026-12-12T19:00:00+0000" title="Plain text presentations in GNU Emacs with ffs" data-slug="ffs"><title>Sat 1:40- 2:00 Plain text presentations in GNU Emacs with ffs</title><rect x="384" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(409,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">ffs</text></g></a><a href="/2026/talks/mobile" data-start="2026-12-12T19:20:00+0000" data-end="2026-12-12T19:30:00+0000" title="How I solved Org Mode's biggest mobile and collaboration problems" data-slug="mobile"><title>Sat 2:20- 2:30 How I solved Org Mode's biggest mobile and collaboration problems</title><rect x="439" y="20" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(450,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">mobile</text></g></a><a href="/2026/talks/hyperbole" data-start="2026-12-12T19:50:00+0000" data-end="2026-12-12T20:10:00+0000" title="Hyperbole, My Dear Watson" data-slug="hyperbole"><title>Sat 2:50- 3:10 Hyperbole, My Dear Watson</title><rect x="480" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(505,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">hyperbole</text></g></a><a href="/2026/talks/koutliner" data-start="2026-12-12T20:30:00+0000" data-end="2026-12-12T20:50:00+0000" title="Hyperbole Koutliner: The Best Autonumbered, Hyperlinking Outliner for Emacs" data-slug="koutliner"><title>Sat 3:30- 3:50 Hyperbole Koutliner: The Best Autonumbered, Hyperlinking Outliner for Emacs</title><rect x="535" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(560,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">koutliner</text></g></a><a href="/2026/talks/writing" data-start="2026-12-12T21:10:00+0000" data-end="2026-12-12T21:30:00+0000" title="Close the writing accountability gap with Emacs" data-slug="writing"><title>Sat 4:10- 4:30 Close the writing accountability gap with Emacs</title><rect x="590" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(615,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">writing</text></g></a><a href="/2026/talks/android" data-start="2026-12-12T21:50:00+0000" data-end="2026-12-12T22:00:00+0000" title="Emacs on Android - Emacs for the next 40 years" data-slug="android"><title>Sat 4:50- 5:00 Emacs on Android - Emacs for the next 40 years</title><rect x="645" y="20" opacity="0.5" width="13" height="54" 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)">android</text></g></a><a href="/2026/talks/sat-close" data-start="2026-12-12T22:20:00+0000" data-end="2026-12-12T22:30:00+0000" title="Saturday closing remarks / open session" data-slug="sat-close"><title>Sat 5:20- 5:30 Saturday closing remarks / open session</title><rect x="686" y="20" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(697,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sat-close</text></g></a><a href="/2026/talks/community" data-start="2026-12-12T15:30:00+0000" data-end="2026-12-12T16:30:00+0000" title="[Panel] Improving the Emacs Community: Onboarding, Participation, and Growth" data-slug="community"><title>Sat 10:30-11:30 [Panel] Improving the Emacs Community: Onboarding, Participation, and Growth</title><rect x="123" y="75" opacity="0.5" width="82" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(203,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">community</text></g></a><a href="/2026/talks/portable" data-start="2026-12-12T18:00:00+0000" data-end="2026-12-12T18:15:00+0000" title="Emacs as my portable user space across operating platforms" data-slug="portable"><title>Sat 1:00- 1:15 Emacs as my portable user space across operating platforms</title><rect x="329" y="75" opacity="0.5" width="20" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(347,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">portable</text></g></a><a href="/2026/talks/os" data-start="2026-12-12T18:35:00+0000" data-end="2026-12-12T18:55:00+0000" title="Emacs everywhere: A fun romp through esoteric operating systems" data-slug="os"><title>Sat 1:35- 1:55 Emacs everywhere: A fun romp through esoteric operating systems</title><rect stroke-width="3" x="377" y="75" opacity="0.8" width="27" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(402,128)"><text font-weight="bold" fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">os</text></g></a><a href="/2026/talks/cadet" data-start="2026-12-12T19:15:00+0000" data-end="2026-12-12T19:25:00+0000" title="My Space Cadet Deck - an Android Stream Deck replacement with deep Emacs integration" data-slug="cadet"><title>Sat 2:15- 2:25 My Space Cadet Deck - an Android Stream Deck replacement with deep Emacs integration</title><rect x="432" y="75" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(443,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">cadet</text></g></a><a href="/2026/talks/remoto" data-start="2026-12-12T19:45:00+0000" data-end="2026-12-12T20:05:00+0000" title="El Remoto: browse any GitHub repos without cloning them" data-slug="remoto"><title>Sat 2:45- 3:05 El Remoto: browse any GitHub repos without cloning them</title><rect x="473" y="75" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(498,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">remoto</text></g></a><a href="/2026/talks/guile" data-start="2026-12-12T20:25:00+0000" data-end="2026-12-12T20:45:00+0000" title="æmacs: having a hoot with a guile emacs" data-slug="guile"><title>Sat 3:25- 3:45 æmacs: having a hoot with a guile emacs</title><rect x="528" y="75" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(553,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">guile</text></g></a><a href="/2026/talks/virus" data-start="2026-12-12T21:05:00+0000" data-end="2026-12-12T21:25:00+0000" title="It's Probably Not a Virus" data-slug="virus"><title>Sat 4:05- 4:25 It's Probably Not a Virus</title><rect x="583" y="75" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(608,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">virus</text></g></a><g transform="translate(0,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T14:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">9 AM EST</text></g><g transform="translate(82,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T15:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">10 AM EST</text></g><g transform="translate(164,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T16:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">11 AM EST</text></g><g transform="translate(247,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T17:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">12 PM EST</text></g><g transform="translate(329,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T18:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">1 PM EST</text></g><g transform="translate(411,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T19:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">2 PM EST</text></g><g transform="translate(494,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T20:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">3 PM EST</text></g><g transform="translate(576,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T21:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">4 PM EST</text></g><g transform="translate(658,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T22:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">5 PM EST</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 data-start="2026-12-12T14:00:00+0000" class="day-label" font-size="10" fill="black" y="17" x="3">Saturday</text><a href="/2026/talks/sat-open" data-start="2026-12-12T14:00:00+0000" data-end="2026-12-12T14:10:00+0000" title="Saturday opening remarks" data-slug="sat-open"><title>Sat 9:00- 9:10 Saturday opening remarks</title><rect x="0" y="20" opacity="0.5" width="13" height="54" 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="/2026/talks/planning" data-start="2026-12-12T14:10:00+0000" data-end="2026-12-12T14:30:00+0000" title="The Emacs Planning Habits of a Questionably Effective Person: My 40-year journey of planning with Emacs, Org Mode, paper journals, etc." data-slug="planning"><title>Sat 9:10- 9:30 The Emacs Planning Habits of a Questionably Effective Person: My 40-year journey of planning with Emacs, Org Mode, paper journals, etc.</title><rect x="13" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(38,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">planning</text></g></a><a href="/2026/talks/listen" data-start="2026-12-12T14:50:00+0000" data-end="2026-12-12T15:10:00+0000" title="Emacslisten: Controlling Emacs by voice" data-slug="listen"><title>Sat 9:50-10:10 Emacslisten: Controlling Emacs by voice</title><rect x="68" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(93,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">listen</text></g></a><a href="/2026/talks/emacspeak" data-start="2026-12-12T15:30:00+0000" data-end="2026-12-12T16:00:00+0000" title="Multi-dimensional information processing with Emacs and Emacspeak: a blind man's perspective" data-slug="emacspeak"><title>Sat 10:30-11:00 Multi-dimensional information processing with Emacs and Emacspeak: a blind man's perspective</title><rect x="123" y="20" opacity="0.5" width="41" height="54" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(162,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">emacspeak</text></g></a><a href="/2026/talks/ltx-talk" data-start="2026-12-12T16:10:00+0000" data-end="2026-12-12T16:30:00+0000" title="ltx-talk: Accessible presentations with ox-beamer" data-slug="ltx-talk"><title>Sat 11:10-11:30 ltx-talk: Accessible presentations with ox-beamer</title><rect x="178" y="20" opacity="0.5" width="27" height="54" 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)">ltx-talk</text></g></a><a href="/2026/talks/plots" data-start="2026-12-12T18:00:00+0000" data-end="2026-12-12T18:20:00+0000" title="Plots with ROOTs: Resilient data visualization with Emacs, Org and gnuplot" data-slug="plots"><title>Sat 1:00- 1:20 Plots with ROOTs: Resilient data visualization with Emacs, Org and gnuplot</title><rect x="329" y="20" opacity="0.5" width="27" height="54" 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)">plots</text></g></a><a href="/2026/talks/tasks" data-start="2026-12-12T18:40:00+0000" data-end="2026-12-12T19:00:00+0000" title="Personal task management under stress (with Org mode)" data-slug="tasks"><title>Sat 1:40- 2:00 Personal task management under stress (with Org mode)</title><rect x="384" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(409,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">tasks</text></g></a><a href="/2026/talks/mobile" data-start="2026-12-12T19:20:00+0000" data-end="2026-12-12T19:30:00+0000" title="How I solved Org Mode's biggest mobile and collaboration problems" data-slug="mobile"><title>Sat 2:20- 2:30 How I solved Org Mode's biggest mobile and collaboration problems</title><rect x="439" y="20" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(450,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">mobile</text></g></a><a href="/2026/talks/hyperbole" data-start="2026-12-12T19:50:00+0000" data-end="2026-12-12T20:10:00+0000" title="Hyperbole, My Dear Watson" data-slug="hyperbole"><title>Sat 2:50- 3:10 Hyperbole, My Dear Watson</title><rect x="480" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(505,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">hyperbole</text></g></a><a href="/2026/talks/koutliner" data-start="2026-12-12T20:30:00+0000" data-end="2026-12-12T20:50:00+0000" title="Hyperbole Koutliner: The Best Autonumbered, Hyperlinking Outliner for Emacs" data-slug="koutliner"><title>Sat 3:30- 3:50 Hyperbole Koutliner: The Best Autonumbered, Hyperlinking Outliner for Emacs</title><rect x="535" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(560,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">koutliner</text></g></a><a href="/2026/talks/writing" data-start="2026-12-12T21:10:00+0000" data-end="2026-12-12T21:30:00+0000" title="Close the writing accountability gap with Emacs" data-slug="writing"><title>Sat 4:10- 4:30 Close the writing accountability gap with Emacs</title><rect x="590" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(615,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">writing</text></g></a><a href="/2026/talks/sat-close" data-start="2026-12-12T21:50:00+0000" data-end="2026-12-12T22:00:00+0000" title="Saturday closing remarks / open session" data-slug="sat-close"><title>Sat 4:50- 5:00 Saturday closing remarks / open session</title><rect x="645" y="20" opacity="0.5" width="13" height="54" 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)">sat-close</text></g></a><a href="/2026/talks/community" data-start="2026-12-12T15:30:00+0000" data-end="2026-12-12T16:30:00+0000" title="[Panel] Improving the Emacs Community: Onboarding, Participation, and Growth" data-slug="community"><title>Sat 10:30-11:30 [Panel] Improving the Emacs Community: Onboarding, Participation, and Growth</title><rect x="123" y="75" opacity="0.5" width="82" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(203,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">community</text></g></a><a href="/2026/talks/portable" data-start="2026-12-12T18:00:00+0000" data-end="2026-12-12T18:15:00+0000" title="Emacs as my portable user space across operating platforms" data-slug="portable"><title>Sat 1:00- 1:15 Emacs as my portable user space across operating platforms</title><rect x="329" y="75" opacity="0.5" width="20" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(347,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">portable</text></g></a><a href="/2026/talks/os" data-start="2026-12-12T18:35:00+0000" data-end="2026-12-12T18:55:00+0000" title="Emacs everywhere: A fun romp through esoteric operating systems" data-slug="os"><title>Sat 1:35- 1:55 Emacs everywhere: A fun romp through esoteric operating systems</title><rect stroke-width="3" x="377" y="75" opacity="0.8" width="27" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(402,128)"><text font-weight="bold" fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">os</text></g></a><a href="/2026/talks/cadet" data-start="2026-12-12T19:15:00+0000" data-end="2026-12-12T19:25:00+0000" title="My Space Cadet Deck - an Android Stream Deck replacement with deep Emacs integration" data-slug="cadet"><title>Sat 2:15- 2:25 My Space Cadet Deck - an Android Stream Deck replacement with deep Emacs integration</title><rect x="432" y="75" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(443,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">cadet</text></g></a><a href="/2026/talks/remoto" data-start="2026-12-12T19:45:00+0000" data-end="2026-12-12T20:05:00+0000" title="El Remoto: browse any GitHub repos without cloning them" data-slug="remoto"><title>Sat 2:45- 3:05 El Remoto: browse any GitHub repos without cloning them</title><rect x="473" y="75" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(498,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">remoto</text></g></a><a href="/2026/talks/guile" data-start="2026-12-12T20:25:00+0000" data-end="2026-12-12T20:45:00+0000" title="æmacs: having a hoot with a guile emacs" data-slug="guile"><title>Sat 3:25- 3:45 æmacs: having a hoot with a guile emacs</title><rect x="528" y="75" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(553,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">guile</text></g></a><a href="/2026/talks/virus" data-start="2026-12-12T21:05:00+0000" data-end="2026-12-12T21:25:00+0000" title="It's Probably Not a Virus" data-slug="virus"><title>Sat 4:05- 4:25 It's Probably Not a Virus</title><rect x="583" y="75" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(608,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">virus</text></g></a><g transform="translate(0,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T14:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">9 AM EST</text></g><g transform="translate(82,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T15:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">10 AM EST</text></g><g transform="translate(164,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T16:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">11 AM EST</text></g><g transform="translate(247,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T17:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">12 PM EST</text></g><g transform="translate(329,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T18:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">1 PM EST</text></g><g transform="translate(411,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T19:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">2 PM EST</text></g><g transform="translate(494,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T20:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">3 PM EST</text></g><g transform="translate(576,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T21:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">4 PM EST</text></g><g transform="translate(658,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T22:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">5 PM EST</text></g></svg> </div> [[!toc ]] diff --git a/2026/info/os-nav.md b/2026/info/os-nav.md index e87e33c0..713fab28 100644 --- a/2026/info/os-nav.md +++ b/2026/info/os-nav.md @@ -2,6 +2,6 @@ <div class="talk-nav"> Back to the [[talks]] Previous by time: <a href="/2026/talks/portable">Emacs as my portable user space across operating platforms</a> -Next by time: <a href="/2026/talks/ffs">Plain text presentations in GNU Emacs with ffs</a> +Next by time: <a href="/2026/talks/tasks">Personal task management under stress (with Org mode)</a> Track: <span class="sched-track Development">Development</span> - <strong><a href="https://emacsconf.org/2026/watch/dev">Watch</a></strong> </div> diff --git a/2026/info/planning-before.md b/2026/info/planning-before.md index e376cc49..becf3b19 100644 --- a/2026/info/planning-before.md +++ b/2026/info/planning-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 2026-12-12. 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="planning"> -<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 data-start="2026-12-12T14:00:00+0000" class="day-label" font-size="10" fill="black" y="17" x="3">Saturday</text><a href="/2026/talks/sat-open" data-start="2026-12-12T14:00:00+0000" data-end="2026-12-12T14:10:00+0000" title="Saturday opening remarks" data-slug="sat-open"><title>Sat 9:00- 9:10 Saturday opening remarks</title><rect x="0" y="20" opacity="0.5" width="13" height="54" 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="/2026/talks/planning" data-start="2026-12-12T14:10:00+0000" data-end="2026-12-12T14:30:00+0000" title="The Emacs Planning Habits of a Questionably Effective Person: My 40-year journey of planning with Emacs, Org Mode, paper journals, etc." data-slug="planning"><title>Sat 9:10- 9:30 The Emacs Planning Habits of a Questionably Effective Person: My 40-year journey of planning with Emacs, Org Mode, paper journals, etc.</title><rect stroke-width="3" x="13" y="20" opacity="0.8" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(38,73)"><text font-weight="bold" fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">planning</text></g></a><a href="/2026/talks/listen" data-start="2026-12-12T14:50:00+0000" data-end="2026-12-12T15:10:00+0000" title="Controlling Emacs by voice using Emacslisten" data-slug="listen"><title>Sat 9:50-10:10 Controlling Emacs by voice using Emacslisten</title><rect x="68" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(93,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">listen</text></g></a><a href="/2026/talks/emacspeak" data-start="2026-12-12T15:30:00+0000" data-end="2026-12-12T16:00:00+0000" title="Multi-dimensional information processing with Emacs and Emacspeak: a blind man's perspective" data-slug="emacspeak"><title>Sat 10:30-11:00 Multi-dimensional information processing with Emacs and Emacspeak: a blind man's perspective</title><rect x="123" y="20" opacity="0.5" width="41" height="54" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(162,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">emacspeak</text></g></a><a href="/2026/talks/ltx-talk" data-start="2026-12-12T16:10:00+0000" data-end="2026-12-12T16:30:00+0000" title="ltx-talk: Accessible presentations with ox-beamer" data-slug="ltx-talk"><title>Sat 11:10-11:30 ltx-talk: Accessible presentations with ox-beamer</title><rect x="178" y="20" opacity="0.5" width="27" height="54" 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)">ltx-talk</text></g></a><a href="/2026/talks/plots" data-start="2026-12-12T18:00:00+0000" data-end="2026-12-12T18:20:00+0000" title="Plots with ROOTs: Resilient data visualization with Emacs, Org and gnuplot" data-slug="plots"><title>Sat 1:00- 1:20 Plots with ROOTs: Resilient data visualization with Emacs, Org and gnuplot</title><rect x="329" y="20" opacity="0.5" width="27" height="54" 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)">plots</text></g></a><a href="/2026/talks/ffs" data-start="2026-12-12T18:40:00+0000" data-end="2026-12-12T19:00:00+0000" title="Plain text presentations in GNU Emacs with ffs" data-slug="ffs"><title>Sat 1:40- 2:00 Plain text presentations in GNU Emacs with ffs</title><rect x="384" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(409,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">ffs</text></g></a><a href="/2026/talks/mobile" data-start="2026-12-12T19:20:00+0000" data-end="2026-12-12T19:30:00+0000" title="How I solved Org Mode's biggest mobile and collaboration problems" data-slug="mobile"><title>Sat 2:20- 2:30 How I solved Org Mode's biggest mobile and collaboration problems</title><rect x="439" y="20" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(450,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">mobile</text></g></a><a href="/2026/talks/hyperbole" data-start="2026-12-12T19:50:00+0000" data-end="2026-12-12T20:10:00+0000" title="Hyperbole, My Dear Watson" data-slug="hyperbole"><title>Sat 2:50- 3:10 Hyperbole, My Dear Watson</title><rect x="480" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(505,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">hyperbole</text></g></a><a href="/2026/talks/koutliner" data-start="2026-12-12T20:30:00+0000" data-end="2026-12-12T20:50:00+0000" title="Hyperbole Koutliner: The Best Autonumbered, Hyperlinking Outliner for Emacs" data-slug="koutliner"><title>Sat 3:30- 3:50 Hyperbole Koutliner: The Best Autonumbered, Hyperlinking Outliner for Emacs</title><rect x="535" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(560,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">koutliner</text></g></a><a href="/2026/talks/writing" data-start="2026-12-12T21:10:00+0000" data-end="2026-12-12T21:30:00+0000" title="Close the writing accountability gap with Emacs" data-slug="writing"><title>Sat 4:10- 4:30 Close the writing accountability gap with Emacs</title><rect x="590" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(615,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">writing</text></g></a><a href="/2026/talks/android" data-start="2026-12-12T21:50:00+0000" data-end="2026-12-12T22:00:00+0000" title="Emacs on Android - Emacs for the next 40 years" data-slug="android"><title>Sat 4:50- 5:00 Emacs on Android - Emacs for the next 40 years</title><rect x="645" y="20" opacity="0.5" width="13" height="54" 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)">android</text></g></a><a href="/2026/talks/sat-close" data-start="2026-12-12T22:20:00+0000" data-end="2026-12-12T22:30:00+0000" title="Saturday closing remarks / open session" data-slug="sat-close"><title>Sat 5:20- 5:30 Saturday closing remarks / open session</title><rect x="686" y="20" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(697,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sat-close</text></g></a><a href="/2026/talks/community" data-start="2026-12-12T15:30:00+0000" data-end="2026-12-12T16:30:00+0000" title="[Panel] Improving the Emacs Community: Onboarding, Participation, and Growth" data-slug="community"><title>Sat 10:30-11:30 [Panel] Improving the Emacs Community: Onboarding, Participation, and Growth</title><rect x="123" y="75" opacity="0.5" width="82" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(203,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">community</text></g></a><a href="/2026/talks/portable" data-start="2026-12-12T18:00:00+0000" data-end="2026-12-12T18:15:00+0000" title="Emacs as my portable user space across operating platforms" data-slug="portable"><title>Sat 1:00- 1:15 Emacs as my portable user space across operating platforms</title><rect x="329" y="75" opacity="0.5" width="20" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(347,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">portable</text></g></a><a href="/2026/talks/os" data-start="2026-12-12T18:35:00+0000" data-end="2026-12-12T18:55:00+0000" title="Emacs everywhere: A fun romp through esoteric operating systems" data-slug="os"><title>Sat 1:35- 1:55 Emacs everywhere: A fun romp through esoteric operating systems</title><rect x="377" y="75" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(402,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">os</text></g></a><a href="/2026/talks/cadet" data-start="2026-12-12T19:15:00+0000" data-end="2026-12-12T19:25:00+0000" title="My Space Cadet Deck - an Android Stream Deck replacement with deep Emacs integration" data-slug="cadet"><title>Sat 2:15- 2:25 My Space Cadet Deck - an Android Stream Deck replacement with deep Emacs integration</title><rect x="432" y="75" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(443,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">cadet</text></g></a><a href="/2026/talks/remoto" data-start="2026-12-12T19:45:00+0000" data-end="2026-12-12T20:05:00+0000" title="El Remoto: browse any GitHub repos without cloning them" data-slug="remoto"><title>Sat 2:45- 3:05 El Remoto: browse any GitHub repos without cloning them</title><rect x="473" y="75" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(498,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">remoto</text></g></a><a href="/2026/talks/guile" data-start="2026-12-12T20:25:00+0000" data-end="2026-12-12T20:45:00+0000" title="æmacs: having a hoot with a guile emacs" data-slug="guile"><title>Sat 3:25- 3:45 æmacs: having a hoot with a guile emacs</title><rect x="528" y="75" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(553,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">guile</text></g></a><a href="/2026/talks/virus" data-start="2026-12-12T21:05:00+0000" data-end="2026-12-12T21:25:00+0000" title="It's Probably Not a Virus" data-slug="virus"><title>Sat 4:05- 4:25 It's Probably Not a Virus</title><rect x="583" y="75" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(608,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">virus</text></g></a><g transform="translate(0,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T14:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">9 AM EST</text></g><g transform="translate(82,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T15:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">10 AM EST</text></g><g transform="translate(164,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T16:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">11 AM EST</text></g><g transform="translate(247,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T17:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">12 PM EST</text></g><g transform="translate(329,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T18:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">1 PM EST</text></g><g transform="translate(411,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T19:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">2 PM EST</text></g><g transform="translate(494,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T20:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">3 PM EST</text></g><g transform="translate(576,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T21:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">4 PM EST</text></g><g transform="translate(658,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T22:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">5 PM EST</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 data-start="2026-12-12T14:00:00+0000" class="day-label" font-size="10" fill="black" y="17" x="3">Saturday</text><a href="/2026/talks/sat-open" data-start="2026-12-12T14:00:00+0000" data-end="2026-12-12T14:10:00+0000" title="Saturday opening remarks" data-slug="sat-open"><title>Sat 9:00- 9:10 Saturday opening remarks</title><rect x="0" y="20" opacity="0.5" width="13" height="54" 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="/2026/talks/planning" data-start="2026-12-12T14:10:00+0000" data-end="2026-12-12T14:30:00+0000" title="The Emacs Planning Habits of a Questionably Effective Person: My 40-year journey of planning with Emacs, Org Mode, paper journals, etc." data-slug="planning"><title>Sat 9:10- 9:30 The Emacs Planning Habits of a Questionably Effective Person: My 40-year journey of planning with Emacs, Org Mode, paper journals, etc.</title><rect stroke-width="3" x="13" y="20" opacity="0.8" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(38,73)"><text font-weight="bold" fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">planning</text></g></a><a href="/2026/talks/listen" data-start="2026-12-12T14:50:00+0000" data-end="2026-12-12T15:10:00+0000" title="Emacslisten: Controlling Emacs by voice" data-slug="listen"><title>Sat 9:50-10:10 Emacslisten: Controlling Emacs by voice</title><rect x="68" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(93,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">listen</text></g></a><a href="/2026/talks/emacspeak" data-start="2026-12-12T15:30:00+0000" data-end="2026-12-12T16:00:00+0000" title="Multi-dimensional information processing with Emacs and Emacspeak: a blind man's perspective" data-slug="emacspeak"><title>Sat 10:30-11:00 Multi-dimensional information processing with Emacs and Emacspeak: a blind man's perspective</title><rect x="123" y="20" opacity="0.5" width="41" height="54" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(162,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">emacspeak</text></g></a><a href="/2026/talks/ltx-talk" data-start="2026-12-12T16:10:00+0000" data-end="2026-12-12T16:30:00+0000" title="ltx-talk: Accessible presentations with ox-beamer" data-slug="ltx-talk"><title>Sat 11:10-11:30 ltx-talk: Accessible presentations with ox-beamer</title><rect x="178" y="20" opacity="0.5" width="27" height="54" 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)">ltx-talk</text></g></a><a href="/2026/talks/plots" data-start="2026-12-12T18:00:00+0000" data-end="2026-12-12T18:20:00+0000" title="Plots with ROOTs: Resilient data visualization with Emacs, Org and gnuplot" data-slug="plots"><title>Sat 1:00- 1:20 Plots with ROOTs: Resilient data visualization with Emacs, Org and gnuplot</title><rect x="329" y="20" opacity="0.5" width="27" height="54" 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)">plots</text></g></a><a href="/2026/talks/tasks" data-start="2026-12-12T18:40:00+0000" data-end="2026-12-12T19:00:00+0000" title="Personal task management under stress (with Org mode)" data-slug="tasks"><title>Sat 1:40- 2:00 Personal task management under stress (with Org mode)</title><rect x="384" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(409,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">tasks</text></g></a><a href="/2026/talks/mobile" data-start="2026-12-12T19:20:00+0000" data-end="2026-12-12T19:30:00+0000" title="How I solved Org Mode's biggest mobile and collaboration problems" data-slug="mobile"><title>Sat 2:20- 2:30 How I solved Org Mode's biggest mobile and collaboration problems</title><rect x="439" y="20" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(450,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">mobile</text></g></a><a href="/2026/talks/hyperbole" data-start="2026-12-12T19:50:00+0000" data-end="2026-12-12T20:10:00+0000" title="Hyperbole, My Dear Watson" data-slug="hyperbole"><title>Sat 2:50- 3:10 Hyperbole, My Dear Watson</title><rect x="480" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(505,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">hyperbole</text></g></a><a href="/2026/talks/koutliner" data-start="2026-12-12T20:30:00+0000" data-end="2026-12-12T20:50:00+0000" title="Hyperbole Koutliner: The Best Autonumbered, Hyperlinking Outliner for Emacs" data-slug="koutliner"><title>Sat 3:30- 3:50 Hyperbole Koutliner: The Best Autonumbered, Hyperlinking Outliner for Emacs</title><rect x="535" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(560,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">koutliner</text></g></a><a href="/2026/talks/writing" data-start="2026-12-12T21:10:00+0000" data-end="2026-12-12T21:30:00+0000" title="Close the writing accountability gap with Emacs" data-slug="writing"><title>Sat 4:10- 4:30 Close the writing accountability gap with Emacs</title><rect x="590" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(615,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">writing</text></g></a><a href="/2026/talks/sat-close" data-start="2026-12-12T21:50:00+0000" data-end="2026-12-12T22:00:00+0000" title="Saturday closing remarks / open session" data-slug="sat-close"><title>Sat 4:50- 5:00 Saturday closing remarks / open session</title><rect x="645" y="20" opacity="0.5" width="13" height="54" 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)">sat-close</text></g></a><a href="/2026/talks/community" data-start="2026-12-12T15:30:00+0000" data-end="2026-12-12T16:30:00+0000" title="[Panel] Improving the Emacs Community: Onboarding, Participation, and Growth" data-slug="community"><title>Sat 10:30-11:30 [Panel] Improving the Emacs Community: Onboarding, Participation, and Growth</title><rect x="123" y="75" opacity="0.5" width="82" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(203,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">community</text></g></a><a href="/2026/talks/portable" data-start="2026-12-12T18:00:00+0000" data-end="2026-12-12T18:15:00+0000" title="Emacs as my portable user space across operating platforms" data-slug="portable"><title>Sat 1:00- 1:15 Emacs as my portable user space across operating platforms</title><rect x="329" y="75" opacity="0.5" width="20" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(347,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">portable</text></g></a><a href="/2026/talks/os" data-start="2026-12-12T18:35:00+0000" data-end="2026-12-12T18:55:00+0000" title="Emacs everywhere: A fun romp through esoteric operating systems" data-slug="os"><title>Sat 1:35- 1:55 Emacs everywhere: A fun romp through esoteric operating systems</title><rect x="377" y="75" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(402,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">os</text></g></a><a href="/2026/talks/cadet" data-start="2026-12-12T19:15:00+0000" data-end="2026-12-12T19:25:00+0000" title="My Space Cadet Deck - an Android Stream Deck replacement with deep Emacs integration" data-slug="cadet"><title>Sat 2:15- 2:25 My Space Cadet Deck - an Android Stream Deck replacement with deep Emacs integration</title><rect x="432" y="75" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(443,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">cadet</text></g></a><a href="/2026/talks/remoto" data-start="2026-12-12T19:45:00+0000" data-end="2026-12-12T20:05:00+0000" title="El Remoto: browse any GitHub repos without cloning them" data-slug="remoto"><title>Sat 2:45- 3:05 El Remoto: browse any GitHub repos without cloning them</title><rect x="473" y="75" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(498,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">remoto</text></g></a><a href="/2026/talks/guile" data-start="2026-12-12T20:25:00+0000" data-end="2026-12-12T20:45:00+0000" title="æmacs: having a hoot with a guile emacs" data-slug="guile"><title>Sat 3:25- 3:45 æmacs: having a hoot with a guile emacs</title><rect x="528" y="75" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(553,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">guile</text></g></a><a href="/2026/talks/virus" data-start="2026-12-12T21:05:00+0000" data-end="2026-12-12T21:25:00+0000" title="It's Probably Not a Virus" data-slug="virus"><title>Sat 4:05- 4:25 It's Probably Not a Virus</title><rect x="583" y="75" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(608,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">virus</text></g></a><g transform="translate(0,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T14:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">9 AM EST</text></g><g transform="translate(82,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T15:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">10 AM EST</text></g><g transform="translate(164,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T16:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">11 AM EST</text></g><g transform="translate(247,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T17:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">12 PM EST</text></g><g transform="translate(329,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T18:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">1 PM EST</text></g><g transform="translate(411,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T19:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">2 PM EST</text></g><g transform="translate(494,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T20:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">3 PM EST</text></g><g transform="translate(576,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T21:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">4 PM EST</text></g><g transform="translate(658,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T22:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">5 PM EST</text></g></svg> </div> [[!toc ]] diff --git a/2026/info/planning-nav.md b/2026/info/planning-nav.md index f6370296..26792ca1 100644 --- a/2026/info/planning-nav.md +++ b/2026/info/planning-nav.md @@ -2,6 +2,6 @@ <div class="talk-nav"> Back to the [[talks]] Previous by time: <a href="/2026/talks/sat-open">Saturday opening remarks</a> -Next by time: <a href="/2026/talks/listen">Controlling Emacs by voice using Emacslisten</a> +Next by time: <a href="/2026/talks/listen">Emacslisten: Controlling Emacs by voice</a> Track: <span class="sched-track General">General</span> - <strong><a href="https://emacsconf.org/2026/watch/gen">Watch</a></strong> </div> diff --git a/2026/info/plots-before.md b/2026/info/plots-before.md index 0d648896..a74bd5e1 100644 --- a/2026/info/plots-before.md +++ b/2026/info/plots-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 2026-12-12. 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="plots"> -<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 data-start="2026-12-12T14:00:00+0000" class="day-label" font-size="10" fill="black" y="17" x="3">Saturday</text><a href="/2026/talks/sat-open" data-start="2026-12-12T14:00:00+0000" data-end="2026-12-12T14:10:00+0000" title="Saturday opening remarks" data-slug="sat-open"><title>Sat 9:00- 9:10 Saturday opening remarks</title><rect x="0" y="20" opacity="0.5" width="13" height="54" 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="/2026/talks/planning" data-start="2026-12-12T14:10:00+0000" data-end="2026-12-12T14:30:00+0000" title="The Emacs Planning Habits of a Questionably Effective Person: My 40-year journey of planning with Emacs, Org Mode, paper journals, etc." data-slug="planning"><title>Sat 9:10- 9:30 The Emacs Planning Habits of a Questionably Effective Person: My 40-year journey of planning with Emacs, Org Mode, paper journals, etc.</title><rect x="13" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(38,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">planning</text></g></a><a href="/2026/talks/listen" data-start="2026-12-12T14:50:00+0000" data-end="2026-12-12T15:10:00+0000" title="Controlling Emacs by voice using Emacslisten" data-slug="listen"><title>Sat 9:50-10:10 Controlling Emacs by voice using Emacslisten</title><rect x="68" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(93,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">listen</text></g></a><a href="/2026/talks/emacspeak" data-start="2026-12-12T15:30:00+0000" data-end="2026-12-12T16:00:00+0000" title="Multi-dimensional information processing with Emacs and Emacspeak: a blind man's perspective" data-slug="emacspeak"><title>Sat 10:30-11:00 Multi-dimensional information processing with Emacs and Emacspeak: a blind man's perspective</title><rect x="123" y="20" opacity="0.5" width="41" height="54" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(162,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">emacspeak</text></g></a><a href="/2026/talks/ltx-talk" data-start="2026-12-12T16:10:00+0000" data-end="2026-12-12T16:30:00+0000" title="ltx-talk: Accessible presentations with ox-beamer" data-slug="ltx-talk"><title>Sat 11:10-11:30 ltx-talk: Accessible presentations with ox-beamer</title><rect x="178" y="20" opacity="0.5" width="27" height="54" 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)">ltx-talk</text></g></a><a href="/2026/talks/plots" data-start="2026-12-12T18:00:00+0000" data-end="2026-12-12T18:20:00+0000" title="Plots with ROOTs: Resilient data visualization with Emacs, Org and gnuplot" data-slug="plots"><title>Sat 1:00- 1:20 Plots with ROOTs: Resilient data visualization with Emacs, Org and gnuplot</title><rect stroke-width="3" x="329" y="20" opacity="0.8" width="27" height="54" 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)">plots</text></g></a><a href="/2026/talks/ffs" data-start="2026-12-12T18:40:00+0000" data-end="2026-12-12T19:00:00+0000" title="Plain text presentations in GNU Emacs with ffs" data-slug="ffs"><title>Sat 1:40- 2:00 Plain text presentations in GNU Emacs with ffs</title><rect x="384" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(409,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">ffs</text></g></a><a href="/2026/talks/mobile" data-start="2026-12-12T19:20:00+0000" data-end="2026-12-12T19:30:00+0000" title="How I solved Org Mode's biggest mobile and collaboration problems" data-slug="mobile"><title>Sat 2:20- 2:30 How I solved Org Mode's biggest mobile and collaboration problems</title><rect x="439" y="20" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(450,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">mobile</text></g></a><a href="/2026/talks/hyperbole" data-start="2026-12-12T19:50:00+0000" data-end="2026-12-12T20:10:00+0000" title="Hyperbole, My Dear Watson" data-slug="hyperbole"><title>Sat 2:50- 3:10 Hyperbole, My Dear Watson</title><rect x="480" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(505,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">hyperbole</text></g></a><a href="/2026/talks/koutliner" data-start="2026-12-12T20:30:00+0000" data-end="2026-12-12T20:50:00+0000" title="Hyperbole Koutliner: The Best Autonumbered, Hyperlinking Outliner for Emacs" data-slug="koutliner"><title>Sat 3:30- 3:50 Hyperbole Koutliner: The Best Autonumbered, Hyperlinking Outliner for Emacs</title><rect x="535" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(560,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">koutliner</text></g></a><a href="/2026/talks/writing" data-start="2026-12-12T21:10:00+0000" data-end="2026-12-12T21:30:00+0000" title="Close the writing accountability gap with Emacs" data-slug="writing"><title>Sat 4:10- 4:30 Close the writing accountability gap with Emacs</title><rect x="590" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(615,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">writing</text></g></a><a href="/2026/talks/android" data-start="2026-12-12T21:50:00+0000" data-end="2026-12-12T22:00:00+0000" title="Emacs on Android - Emacs for the next 40 years" data-slug="android"><title>Sat 4:50- 5:00 Emacs on Android - Emacs for the next 40 years</title><rect x="645" y="20" opacity="0.5" width="13" height="54" 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)">android</text></g></a><a href="/2026/talks/sat-close" data-start="2026-12-12T22:20:00+0000" data-end="2026-12-12T22:30:00+0000" title="Saturday closing remarks / open session" data-slug="sat-close"><title>Sat 5:20- 5:30 Saturday closing remarks / open session</title><rect x="686" y="20" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(697,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sat-close</text></g></a><a href="/2026/talks/community" data-start="2026-12-12T15:30:00+0000" data-end="2026-12-12T16:30:00+0000" title="[Panel] Improving the Emacs Community: Onboarding, Participation, and Growth" data-slug="community"><title>Sat 10:30-11:30 [Panel] Improving the Emacs Community: Onboarding, Participation, and Growth</title><rect x="123" y="75" opacity="0.5" width="82" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(203,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">community</text></g></a><a href="/2026/talks/portable" data-start="2026-12-12T18:00:00+0000" data-end="2026-12-12T18:15:00+0000" title="Emacs as my portable user space across operating platforms" data-slug="portable"><title>Sat 1:00- 1:15 Emacs as my portable user space across operating platforms</title><rect x="329" y="75" opacity="0.5" width="20" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(347,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">portable</text></g></a><a href="/2026/talks/os" data-start="2026-12-12T18:35:00+0000" data-end="2026-12-12T18:55:00+0000" title="Emacs everywhere: A fun romp through esoteric operating systems" data-slug="os"><title>Sat 1:35- 1:55 Emacs everywhere: A fun romp through esoteric operating systems</title><rect x="377" y="75" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(402,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">os</text></g></a><a href="/2026/talks/cadet" data-start="2026-12-12T19:15:00+0000" data-end="2026-12-12T19:25:00+0000" title="My Space Cadet Deck - an Android Stream Deck replacement with deep Emacs integration" data-slug="cadet"><title>Sat 2:15- 2:25 My Space Cadet Deck - an Android Stream Deck replacement with deep Emacs integration</title><rect x="432" y="75" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(443,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">cadet</text></g></a><a href="/2026/talks/remoto" data-start="2026-12-12T19:45:00+0000" data-end="2026-12-12T20:05:00+0000" title="El Remoto: browse any GitHub repos without cloning them" data-slug="remoto"><title>Sat 2:45- 3:05 El Remoto: browse any GitHub repos without cloning them</title><rect x="473" y="75" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(498,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">remoto</text></g></a><a href="/2026/talks/guile" data-start="2026-12-12T20:25:00+0000" data-end="2026-12-12T20:45:00+0000" title="æmacs: having a hoot with a guile emacs" data-slug="guile"><title>Sat 3:25- 3:45 æmacs: having a hoot with a guile emacs</title><rect x="528" y="75" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(553,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">guile</text></g></a><a href="/2026/talks/virus" data-start="2026-12-12T21:05:00+0000" data-end="2026-12-12T21:25:00+0000" title="It's Probably Not a Virus" data-slug="virus"><title>Sat 4:05- 4:25 It's Probably Not a Virus</title><rect x="583" y="75" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(608,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">virus</text></g></a><g transform="translate(0,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T14:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">9 AM EST</text></g><g transform="translate(82,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T15:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">10 AM EST</text></g><g transform="translate(164,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T16:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">11 AM EST</text></g><g transform="translate(247,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T17:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">12 PM EST</text></g><g transform="translate(329,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T18:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">1 PM EST</text></g><g transform="translate(411,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T19:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">2 PM EST</text></g><g transform="translate(494,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T20:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">3 PM EST</text></g><g transform="translate(576,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T21:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">4 PM EST</text></g><g transform="translate(658,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T22:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">5 PM EST</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 data-start="2026-12-12T14:00:00+0000" class="day-label" font-size="10" fill="black" y="17" x="3">Saturday</text><a href="/2026/talks/sat-open" data-start="2026-12-12T14:00:00+0000" data-end="2026-12-12T14:10:00+0000" title="Saturday opening remarks" data-slug="sat-open"><title>Sat 9:00- 9:10 Saturday opening remarks</title><rect x="0" y="20" opacity="0.5" width="13" height="54" 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="/2026/talks/planning" data-start="2026-12-12T14:10:00+0000" data-end="2026-12-12T14:30:00+0000" title="The Emacs Planning Habits of a Questionably Effective Person: My 40-year journey of planning with Emacs, Org Mode, paper journals, etc." data-slug="planning"><title>Sat 9:10- 9:30 The Emacs Planning Habits of a Questionably Effective Person: My 40-year journey of planning with Emacs, Org Mode, paper journals, etc.</title><rect x="13" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(38,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">planning</text></g></a><a href="/2026/talks/listen" data-start="2026-12-12T14:50:00+0000" data-end="2026-12-12T15:10:00+0000" title="Emacslisten: Controlling Emacs by voice" data-slug="listen"><title>Sat 9:50-10:10 Emacslisten: Controlling Emacs by voice</title><rect x="68" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(93,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">listen</text></g></a><a href="/2026/talks/emacspeak" data-start="2026-12-12T15:30:00+0000" data-end="2026-12-12T16:00:00+0000" title="Multi-dimensional information processing with Emacs and Emacspeak: a blind man's perspective" data-slug="emacspeak"><title>Sat 10:30-11:00 Multi-dimensional information processing with Emacs and Emacspeak: a blind man's perspective</title><rect x="123" y="20" opacity="0.5" width="41" height="54" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(162,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">emacspeak</text></g></a><a href="/2026/talks/ltx-talk" data-start="2026-12-12T16:10:00+0000" data-end="2026-12-12T16:30:00+0000" title="ltx-talk: Accessible presentations with ox-beamer" data-slug="ltx-talk"><title>Sat 11:10-11:30 ltx-talk: Accessible presentations with ox-beamer</title><rect x="178" y="20" opacity="0.5" width="27" height="54" 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)">ltx-talk</text></g></a><a href="/2026/talks/plots" data-start="2026-12-12T18:00:00+0000" data-end="2026-12-12T18:20:00+0000" title="Plots with ROOTs: Resilient data visualization with Emacs, Org and gnuplot" data-slug="plots"><title>Sat 1:00- 1:20 Plots with ROOTs: Resilient data visualization with Emacs, Org and gnuplot</title><rect stroke-width="3" x="329" y="20" opacity="0.8" width="27" height="54" 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)">plots</text></g></a><a href="/2026/talks/tasks" data-start="2026-12-12T18:40:00+0000" data-end="2026-12-12T19:00:00+0000" title="Personal task management under stress (with Org mode)" data-slug="tasks"><title>Sat 1:40- 2:00 Personal task management under stress (with Org mode)</title><rect x="384" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(409,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">tasks</text></g></a><a href="/2026/talks/mobile" data-start="2026-12-12T19:20:00+0000" data-end="2026-12-12T19:30:00+0000" title="How I solved Org Mode's biggest mobile and collaboration problems" data-slug="mobile"><title>Sat 2:20- 2:30 How I solved Org Mode's biggest mobile and collaboration problems</title><rect x="439" y="20" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(450,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">mobile</text></g></a><a href="/2026/talks/hyperbole" data-start="2026-12-12T19:50:00+0000" data-end="2026-12-12T20:10:00+0000" title="Hyperbole, My Dear Watson" data-slug="hyperbole"><title>Sat 2:50- 3:10 Hyperbole, My Dear Watson</title><rect x="480" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(505,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">hyperbole</text></g></a><a href="/2026/talks/koutliner" data-start="2026-12-12T20:30:00+0000" data-end="2026-12-12T20:50:00+0000" title="Hyperbole Koutliner: The Best Autonumbered, Hyperlinking Outliner for Emacs" data-slug="koutliner"><title>Sat 3:30- 3:50 Hyperbole Koutliner: The Best Autonumbered, Hyperlinking Outliner for Emacs</title><rect x="535" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(560,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">koutliner</text></g></a><a href="/2026/talks/writing" data-start="2026-12-12T21:10:00+0000" data-end="2026-12-12T21:30:00+0000" title="Close the writing accountability gap with Emacs" data-slug="writing"><title>Sat 4:10- 4:30 Close the writing accountability gap with Emacs</title><rect x="590" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(615,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">writing</text></g></a><a href="/2026/talks/sat-close" data-start="2026-12-12T21:50:00+0000" data-end="2026-12-12T22:00:00+0000" title="Saturday closing remarks / open session" data-slug="sat-close"><title>Sat 4:50- 5:00 Saturday closing remarks / open session</title><rect x="645" y="20" opacity="0.5" width="13" height="54" 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)">sat-close</text></g></a><a href="/2026/talks/community" data-start="2026-12-12T15:30:00+0000" data-end="2026-12-12T16:30:00+0000" title="[Panel] Improving the Emacs Community: Onboarding, Participation, and Growth" data-slug="community"><title>Sat 10:30-11:30 [Panel] Improving the Emacs Community: Onboarding, Participation, and Growth</title><rect x="123" y="75" opacity="0.5" width="82" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(203,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">community</text></g></a><a href="/2026/talks/portable" data-start="2026-12-12T18:00:00+0000" data-end="2026-12-12T18:15:00+0000" title="Emacs as my portable user space across operating platforms" data-slug="portable"><title>Sat 1:00- 1:15 Emacs as my portable user space across operating platforms</title><rect x="329" y="75" opacity="0.5" width="20" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(347,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">portable</text></g></a><a href="/2026/talks/os" data-start="2026-12-12T18:35:00+0000" data-end="2026-12-12T18:55:00+0000" title="Emacs everywhere: A fun romp through esoteric operating systems" data-slug="os"><title>Sat 1:35- 1:55 Emacs everywhere: A fun romp through esoteric operating systems</title><rect x="377" y="75" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(402,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">os</text></g></a><a href="/2026/talks/cadet" data-start="2026-12-12T19:15:00+0000" data-end="2026-12-12T19:25:00+0000" title="My Space Cadet Deck - an Android Stream Deck replacement with deep Emacs integration" data-slug="cadet"><title>Sat 2:15- 2:25 My Space Cadet Deck - an Android Stream Deck replacement with deep Emacs integration</title><rect x="432" y="75" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(443,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">cadet</text></g></a><a href="/2026/talks/remoto" data-start="2026-12-12T19:45:00+0000" data-end="2026-12-12T20:05:00+0000" title="El Remoto: browse any GitHub repos without cloning them" data-slug="remoto"><title>Sat 2:45- 3:05 El Remoto: browse any GitHub repos without cloning them</title><rect x="473" y="75" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(498,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">remoto</text></g></a><a href="/2026/talks/guile" data-start="2026-12-12T20:25:00+0000" data-end="2026-12-12T20:45:00+0000" title="æmacs: having a hoot with a guile emacs" data-slug="guile"><title>Sat 3:25- 3:45 æmacs: having a hoot with a guile emacs</title><rect x="528" y="75" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(553,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">guile</text></g></a><a href="/2026/talks/virus" data-start="2026-12-12T21:05:00+0000" data-end="2026-12-12T21:25:00+0000" title="It's Probably Not a Virus" data-slug="virus"><title>Sat 4:05- 4:25 It's Probably Not a Virus</title><rect x="583" y="75" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(608,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">virus</text></g></a><g transform="translate(0,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T14:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">9 AM EST</text></g><g transform="translate(82,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T15:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">10 AM EST</text></g><g transform="translate(164,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T16:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">11 AM EST</text></g><g transform="translate(247,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T17:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">12 PM EST</text></g><g transform="translate(329,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T18:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">1 PM EST</text></g><g transform="translate(411,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T19:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">2 PM EST</text></g><g transform="translate(494,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T20:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">3 PM EST</text></g><g transform="translate(576,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T21:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">4 PM EST</text></g><g transform="translate(658,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T22:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">5 PM EST</text></g></svg> </div> [[!toc ]] diff --git a/2026/info/portable-before.md b/2026/info/portable-before.md index ab960275..7695353f 100644 --- a/2026/info/portable-before.md +++ b/2026/info/portable-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 2026-12-12. 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="portable"> -<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 data-start="2026-12-12T14:00:00+0000" class="day-label" font-size="10" fill="black" y="17" x="3">Saturday</text><a href="/2026/talks/sat-open" data-start="2026-12-12T14:00:00+0000" data-end="2026-12-12T14:10:00+0000" title="Saturday opening remarks" data-slug="sat-open"><title>Sat 9:00- 9:10 Saturday opening remarks</title><rect x="0" y="20" opacity="0.5" width="13" height="54" 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="/2026/talks/planning" data-start="2026-12-12T14:10:00+0000" data-end="2026-12-12T14:30:00+0000" title="The Emacs Planning Habits of a Questionably Effective Person: My 40-year journey of planning with Emacs, Org Mode, paper journals, etc." data-slug="planning"><title>Sat 9:10- 9:30 The Emacs Planning Habits of a Questionably Effective Person: My 40-year journey of planning with Emacs, Org Mode, paper journals, etc.</title><rect x="13" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(38,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">planning</text></g></a><a href="/2026/talks/listen" data-start="2026-12-12T14:50:00+0000" data-end="2026-12-12T15:10:00+0000" title="Controlling Emacs by voice using Emacslisten" data-slug="listen"><title>Sat 9:50-10:10 Controlling Emacs by voice using Emacslisten</title><rect x="68" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(93,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">listen</text></g></a><a href="/2026/talks/emacspeak" data-start="2026-12-12T15:30:00+0000" data-end="2026-12-12T16:00:00+0000" title="Multi-dimensional information processing with Emacs and Emacspeak: a blind man's perspective" data-slug="emacspeak"><title>Sat 10:30-11:00 Multi-dimensional information processing with Emacs and Emacspeak: a blind man's perspective</title><rect x="123" y="20" opacity="0.5" width="41" height="54" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(162,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">emacspeak</text></g></a><a href="/2026/talks/ltx-talk" data-start="2026-12-12T16:10:00+0000" data-end="2026-12-12T16:30:00+0000" title="ltx-talk: Accessible presentations with ox-beamer" data-slug="ltx-talk"><title>Sat 11:10-11:30 ltx-talk: Accessible presentations with ox-beamer</title><rect x="178" y="20" opacity="0.5" width="27" height="54" 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)">ltx-talk</text></g></a><a href="/2026/talks/plots" data-start="2026-12-12T18:00:00+0000" data-end="2026-12-12T18:20:00+0000" title="Plots with ROOTs: Resilient data visualization with Emacs, Org and gnuplot" data-slug="plots"><title>Sat 1:00- 1:20 Plots with ROOTs: Resilient data visualization with Emacs, Org and gnuplot</title><rect x="329" y="20" opacity="0.5" width="27" height="54" 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)">plots</text></g></a><a href="/2026/talks/ffs" data-start="2026-12-12T18:40:00+0000" data-end="2026-12-12T19:00:00+0000" title="Plain text presentations in GNU Emacs with ffs" data-slug="ffs"><title>Sat 1:40- 2:00 Plain text presentations in GNU Emacs with ffs</title><rect x="384" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(409,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">ffs</text></g></a><a href="/2026/talks/mobile" data-start="2026-12-12T19:20:00+0000" data-end="2026-12-12T19:30:00+0000" title="How I solved Org Mode's biggest mobile and collaboration problems" data-slug="mobile"><title>Sat 2:20- 2:30 How I solved Org Mode's biggest mobile and collaboration problems</title><rect x="439" y="20" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(450,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">mobile</text></g></a><a href="/2026/talks/hyperbole" data-start="2026-12-12T19:50:00+0000" data-end="2026-12-12T20:10:00+0000" title="Hyperbole, My Dear Watson" data-slug="hyperbole"><title>Sat 2:50- 3:10 Hyperbole, My Dear Watson</title><rect x="480" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(505,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">hyperbole</text></g></a><a href="/2026/talks/koutliner" data-start="2026-12-12T20:30:00+0000" data-end="2026-12-12T20:50:00+0000" title="Hyperbole Koutliner: The Best Autonumbered, Hyperlinking Outliner for Emacs" data-slug="koutliner"><title>Sat 3:30- 3:50 Hyperbole Koutliner: The Best Autonumbered, Hyperlinking Outliner for Emacs</title><rect x="535" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(560,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">koutliner</text></g></a><a href="/2026/talks/writing" data-start="2026-12-12T21:10:00+0000" data-end="2026-12-12T21:30:00+0000" title="Close the writing accountability gap with Emacs" data-slug="writing"><title>Sat 4:10- 4:30 Close the writing accountability gap with Emacs</title><rect x="590" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(615,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">writing</text></g></a><a href="/2026/talks/android" data-start="2026-12-12T21:50:00+0000" data-end="2026-12-12T22:00:00+0000" title="Emacs on Android - Emacs for the next 40 years" data-slug="android"><title>Sat 4:50- 5:00 Emacs on Android - Emacs for the next 40 years</title><rect x="645" y="20" opacity="0.5" width="13" height="54" 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)">android</text></g></a><a href="/2026/talks/sat-close" data-start="2026-12-12T22:20:00+0000" data-end="2026-12-12T22:30:00+0000" title="Saturday closing remarks / open session" data-slug="sat-close"><title>Sat 5:20- 5:30 Saturday closing remarks / open session</title><rect x="686" y="20" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(697,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sat-close</text></g></a><a href="/2026/talks/community" data-start="2026-12-12T15:30:00+0000" data-end="2026-12-12T16:30:00+0000" title="[Panel] Improving the Emacs Community: Onboarding, Participation, and Growth" data-slug="community"><title>Sat 10:30-11:30 [Panel] Improving the Emacs Community: Onboarding, Participation, and Growth</title><rect x="123" y="75" opacity="0.5" width="82" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(203,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">community</text></g></a><a href="/2026/talks/portable" data-start="2026-12-12T18:00:00+0000" data-end="2026-12-12T18:15:00+0000" title="Emacs as my portable user space across operating platforms" data-slug="portable"><title>Sat 1:00- 1:15 Emacs as my portable user space across operating platforms</title><rect stroke-width="3" x="329" y="75" opacity="0.8" width="20" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(347,128)"><text font-weight="bold" fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">portable</text></g></a><a href="/2026/talks/os" data-start="2026-12-12T18:35:00+0000" data-end="2026-12-12T18:55:00+0000" title="Emacs everywhere: A fun romp through esoteric operating systems" data-slug="os"><title>Sat 1:35- 1:55 Emacs everywhere: A fun romp through esoteric operating systems</title><rect x="377" y="75" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(402,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">os</text></g></a><a href="/2026/talks/cadet" data-start="2026-12-12T19:15:00+0000" data-end="2026-12-12T19:25:00+0000" title="My Space Cadet Deck - an Android Stream Deck replacement with deep Emacs integration" data-slug="cadet"><title>Sat 2:15- 2:25 My Space Cadet Deck - an Android Stream Deck replacement with deep Emacs integration</title><rect x="432" y="75" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(443,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">cadet</text></g></a><a href="/2026/talks/remoto" data-start="2026-12-12T19:45:00+0000" data-end="2026-12-12T20:05:00+0000" title="El Remoto: browse any GitHub repos without cloning them" data-slug="remoto"><title>Sat 2:45- 3:05 El Remoto: browse any GitHub repos without cloning them</title><rect x="473" y="75" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(498,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">remoto</text></g></a><a href="/2026/talks/guile" data-start="2026-12-12T20:25:00+0000" data-end="2026-12-12T20:45:00+0000" title="æmacs: having a hoot with a guile emacs" data-slug="guile"><title>Sat 3:25- 3:45 æmacs: having a hoot with a guile emacs</title><rect x="528" y="75" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(553,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">guile</text></g></a><a href="/2026/talks/virus" data-start="2026-12-12T21:05:00+0000" data-end="2026-12-12T21:25:00+0000" title="It's Probably Not a Virus" data-slug="virus"><title>Sat 4:05- 4:25 It's Probably Not a Virus</title><rect x="583" y="75" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(608,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">virus</text></g></a><g transform="translate(0,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T14:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">9 AM EST</text></g><g transform="translate(82,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T15:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">10 AM EST</text></g><g transform="translate(164,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T16:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">11 AM EST</text></g><g transform="translate(247,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T17:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">12 PM EST</text></g><g transform="translate(329,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T18:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">1 PM EST</text></g><g transform="translate(411,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T19:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">2 PM EST</text></g><g transform="translate(494,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T20:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">3 PM EST</text></g><g transform="translate(576,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T21:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">4 PM EST</text></g><g transform="translate(658,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T22:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">5 PM EST</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 data-start="2026-12-12T14:00:00+0000" class="day-label" font-size="10" fill="black" y="17" x="3">Saturday</text><a href="/2026/talks/sat-open" data-start="2026-12-12T14:00:00+0000" data-end="2026-12-12T14:10:00+0000" title="Saturday opening remarks" data-slug="sat-open"><title>Sat 9:00- 9:10 Saturday opening remarks</title><rect x="0" y="20" opacity="0.5" width="13" height="54" 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="/2026/talks/planning" data-start="2026-12-12T14:10:00+0000" data-end="2026-12-12T14:30:00+0000" title="The Emacs Planning Habits of a Questionably Effective Person: My 40-year journey of planning with Emacs, Org Mode, paper journals, etc." data-slug="planning"><title>Sat 9:10- 9:30 The Emacs Planning Habits of a Questionably Effective Person: My 40-year journey of planning with Emacs, Org Mode, paper journals, etc.</title><rect x="13" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(38,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">planning</text></g></a><a href="/2026/talks/listen" data-start="2026-12-12T14:50:00+0000" data-end="2026-12-12T15:10:00+0000" title="Emacslisten: Controlling Emacs by voice" data-slug="listen"><title>Sat 9:50-10:10 Emacslisten: Controlling Emacs by voice</title><rect x="68" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(93,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">listen</text></g></a><a href="/2026/talks/emacspeak" data-start="2026-12-12T15:30:00+0000" data-end="2026-12-12T16:00:00+0000" title="Multi-dimensional information processing with Emacs and Emacspeak: a blind man's perspective" data-slug="emacspeak"><title>Sat 10:30-11:00 Multi-dimensional information processing with Emacs and Emacspeak: a blind man's perspective</title><rect x="123" y="20" opacity="0.5" width="41" height="54" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(162,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">emacspeak</text></g></a><a href="/2026/talks/ltx-talk" data-start="2026-12-12T16:10:00+0000" data-end="2026-12-12T16:30:00+0000" title="ltx-talk: Accessible presentations with ox-beamer" data-slug="ltx-talk"><title>Sat 11:10-11:30 ltx-talk: Accessible presentations with ox-beamer</title><rect x="178" y="20" opacity="0.5" width="27" height="54" 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)">ltx-talk</text></g></a><a href="/2026/talks/plots" data-start="2026-12-12T18:00:00+0000" data-end="2026-12-12T18:20:00+0000" title="Plots with ROOTs: Resilient data visualization with Emacs, Org and gnuplot" data-slug="plots"><title>Sat 1:00- 1:20 Plots with ROOTs: Resilient data visualization with Emacs, Org and gnuplot</title><rect x="329" y="20" opacity="0.5" width="27" height="54" 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)">plots</text></g></a><a href="/2026/talks/tasks" data-start="2026-12-12T18:40:00+0000" data-end="2026-12-12T19:00:00+0000" title="Personal task management under stress (with Org mode)" data-slug="tasks"><title>Sat 1:40- 2:00 Personal task management under stress (with Org mode)</title><rect x="384" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(409,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">tasks</text></g></a><a href="/2026/talks/mobile" data-start="2026-12-12T19:20:00+0000" data-end="2026-12-12T19:30:00+0000" title="How I solved Org Mode's biggest mobile and collaboration problems" data-slug="mobile"><title>Sat 2:20- 2:30 How I solved Org Mode's biggest mobile and collaboration problems</title><rect x="439" y="20" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(450,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">mobile</text></g></a><a href="/2026/talks/hyperbole" data-start="2026-12-12T19:50:00+0000" data-end="2026-12-12T20:10:00+0000" title="Hyperbole, My Dear Watson" data-slug="hyperbole"><title>Sat 2:50- 3:10 Hyperbole, My Dear Watson</title><rect x="480" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(505,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">hyperbole</text></g></a><a href="/2026/talks/koutliner" data-start="2026-12-12T20:30:00+0000" data-end="2026-12-12T20:50:00+0000" title="Hyperbole Koutliner: The Best Autonumbered, Hyperlinking Outliner for Emacs" data-slug="koutliner"><title>Sat 3:30- 3:50 Hyperbole Koutliner: The Best Autonumbered, Hyperlinking Outliner for Emacs</title><rect x="535" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(560,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">koutliner</text></g></a><a href="/2026/talks/writing" data-start="2026-12-12T21:10:00+0000" data-end="2026-12-12T21:30:00+0000" title="Close the writing accountability gap with Emacs" data-slug="writing"><title>Sat 4:10- 4:30 Close the writing accountability gap with Emacs</title><rect x="590" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(615,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">writing</text></g></a><a href="/2026/talks/sat-close" data-start="2026-12-12T21:50:00+0000" data-end="2026-12-12T22:00:00+0000" title="Saturday closing remarks / open session" data-slug="sat-close"><title>Sat 4:50- 5:00 Saturday closing remarks / open session</title><rect x="645" y="20" opacity="0.5" width="13" height="54" 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)">sat-close</text></g></a><a href="/2026/talks/community" data-start="2026-12-12T15:30:00+0000" data-end="2026-12-12T16:30:00+0000" title="[Panel] Improving the Emacs Community: Onboarding, Participation, and Growth" data-slug="community"><title>Sat 10:30-11:30 [Panel] Improving the Emacs Community: Onboarding, Participation, and Growth</title><rect x="123" y="75" opacity="0.5" width="82" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(203,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">community</text></g></a><a href="/2026/talks/portable" data-start="2026-12-12T18:00:00+0000" data-end="2026-12-12T18:15:00+0000" title="Emacs as my portable user space across operating platforms" data-slug="portable"><title>Sat 1:00- 1:15 Emacs as my portable user space across operating platforms</title><rect stroke-width="3" x="329" y="75" opacity="0.8" width="20" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(347,128)"><text font-weight="bold" fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">portable</text></g></a><a href="/2026/talks/os" data-start="2026-12-12T18:35:00+0000" data-end="2026-12-12T18:55:00+0000" title="Emacs everywhere: A fun romp through esoteric operating systems" data-slug="os"><title>Sat 1:35- 1:55 Emacs everywhere: A fun romp through esoteric operating systems</title><rect x="377" y="75" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(402,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">os</text></g></a><a href="/2026/talks/cadet" data-start="2026-12-12T19:15:00+0000" data-end="2026-12-12T19:25:00+0000" title="My Space Cadet Deck - an Android Stream Deck replacement with deep Emacs integration" data-slug="cadet"><title>Sat 2:15- 2:25 My Space Cadet Deck - an Android Stream Deck replacement with deep Emacs integration</title><rect x="432" y="75" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(443,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">cadet</text></g></a><a href="/2026/talks/remoto" data-start="2026-12-12T19:45:00+0000" data-end="2026-12-12T20:05:00+0000" title="El Remoto: browse any GitHub repos without cloning them" data-slug="remoto"><title>Sat 2:45- 3:05 El Remoto: browse any GitHub repos without cloning them</title><rect x="473" y="75" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(498,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">remoto</text></g></a><a href="/2026/talks/guile" data-start="2026-12-12T20:25:00+0000" data-end="2026-12-12T20:45:00+0000" title="æmacs: having a hoot with a guile emacs" data-slug="guile"><title>Sat 3:25- 3:45 æmacs: having a hoot with a guile emacs</title><rect x="528" y="75" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(553,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">guile</text></g></a><a href="/2026/talks/virus" data-start="2026-12-12T21:05:00+0000" data-end="2026-12-12T21:25:00+0000" title="It's Probably Not a Virus" data-slug="virus"><title>Sat 4:05- 4:25 It's Probably Not a Virus</title><rect x="583" y="75" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(608,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">virus</text></g></a><g transform="translate(0,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T14:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">9 AM EST</text></g><g transform="translate(82,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T15:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">10 AM EST</text></g><g transform="translate(164,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T16:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">11 AM EST</text></g><g transform="translate(247,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T17:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">12 PM EST</text></g><g transform="translate(329,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T18:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">1 PM EST</text></g><g transform="translate(411,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T19:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">2 PM EST</text></g><g transform="translate(494,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T20:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">3 PM EST</text></g><g transform="translate(576,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T21:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">4 PM EST</text></g><g transform="translate(658,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T22:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">5 PM EST</text></g></svg> </div> [[!toc ]] diff --git a/2026/info/prefix-before.md b/2026/info/prefix-before.md index a6447b92..1de3451d 100644 --- a/2026/info/prefix-before.md +++ b/2026/info/prefix-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 Sun 2026-12-13. 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="prefix"> -<svg width="700" height="150" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><title>Schedule for Sunday</title><rect width="700" height="150" x="0" y="0" fill="white"></rect><text data-start="2026-12-13T14:00:00+0000" class="day-label" font-size="10" fill="black" y="17" x="3">Sunday</text><a href="/2026/talks/sun-open" data-start="2026-12-13T14:00:00+0000" data-end="2026-12-13T14:10:00+0000" title="Sunday opening remarks" data-slug="sun-open"><title>Sun 9:00- 9:10 Sunday opening remarks</title><rect x="0" y="20" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(11,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sun-open</text></g></a><a href="/2026/talks/bone" data-start="2026-12-13T14:10:00+0000" data-end="2026-12-13T14:20:00+0000" title="BONE and gnaw.el: tracking what matters" data-slug="bone"><title>Sun 9:10- 9:20 BONE and gnaw.el: tracking what matters</title><rect x="13" y="20" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(24,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">bone</text></g></a><a href="/2026/talks/local" data-start="2026-12-13T14:40:00+0000" data-end="2026-12-13T14:55:00+0000" title="Local file history possibilities in Emacs" data-slug="local"><title>Sun 9:40- 9:55 Local file history possibilities in Emacs</title><rect x="54" y="20" opacity="0.5" width="20" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(72,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">local</text></g></a><a href="/2026/talks/hutch" data-start="2026-12-13T15:15:00+0000" data-end="2026-12-13T15:25:00+0000" title="hutch: code reviews for the mildly disenfranchised" data-slug="hutch"><title>Sun 10:15-10:25 hutch: code reviews for the mildly disenfranchised</title><rect x="102" y="20" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(113,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">hutch</text></g></a><a href="/2026/talks/team" data-start="2026-12-13T15:35:00+0000" data-end="2026-12-13T15:55:00+0000" title="Beyond the Chatbot: Team-Oriented AI in Emacs" data-slug="team"><title>Sun 10:35-10:55 Beyond the Chatbot: Team-Oriented AI in Emacs</title><rect x="130" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(155,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">team</text></g></a><a href="/2026/talks/compile" data-start="2026-12-13T16:15:00+0000" data-end="2026-12-13T16:35:00+0000" title="Beyond shell history: Saving compilation output in Emacs" data-slug="compile"><title>Sun 11:15-11:35 Beyond shell history: Saving compilation output in Emacs</title><rect x="185" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(210,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">compile</text></g></a><a href="/2026/talks/dnd" data-start="2026-12-13T18:00:00+0000" data-end="2026-12-13T18:20:00+0000" title="DnD and Org Roam: Becoming a Better DM with Emacs" data-slug="dnd"><title>Sun 1:00- 1:20 DnD and Org Roam: Becoming a Better DM with Emacs</title><rect x="329" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(354,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">dnd</text></g></a><a href="/2026/talks/bible" data-start="2026-12-13T18:30:00+0000" data-end="2026-12-13T18:50:00+0000" title="bible-gateway: A Two-Edged Sword in Emacs" data-slug="bible"><title>Sun 1:30- 1:50 bible-gateway: A Two-Edged Sword in Emacs</title><rect x="370" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(395,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">bible</text></g></a><a href="/2026/talks/svg" data-start="2026-12-13T19:10:00+0000" data-end="2026-12-13T19:30:00+0000" title="A (sort of) REPL for learning SVG" data-slug="svg"><title>Sun 2:10- 2:30 A (sort of) REPL for learning SVG</title><rect x="425" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(450,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">svg</text></g></a><a href="/2026/talks/align" data-start="2026-12-13T19:50:00+0000" data-end="2026-12-13T20:10:00+0000" title="Column-aligning text in Emacs" data-slug="align"><title>Sun 2:50- 3:10 Column-aligning text in Emacs</title><rect x="480" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(505,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">align</text></g></a><a href="/2026/talks/anju" data-start="2026-12-13T20:30:00+0000" data-end="2026-12-13T20:50:00+0000" title="Revisiting Emacs Mouse Interactions with Anju" data-slug="anju"><title>Sun 3:30- 3:50 Revisiting Emacs Mouse Interactions with Anju</title><rect x="535" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(560,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">anju</text></g></a><a href="/2026/talks/ghostel" data-start="2026-12-13T21:00:00+0000" data-end="2026-12-13T21:20:00+0000" title="Ghost in the Shell: a libghostty powered terminal for Emacs" data-slug="ghostel"><title>Sun 4:00- 4:20 Ghost in the Shell: a libghostty powered terminal for Emacs</title><rect x="576" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(601,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">ghostel</text></g></a><a href="/2026/talks/sun-close" data-start="2026-12-13T21:40:00+0000" data-end="2026-12-13T21:50:00+0000" title="Sunday closing remarks" data-slug="sun-close"><title>Sun 4:40- 4:50 Sunday closing remarks</title><rect x="631" y="20" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(642,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sun-close</text></g></a><a href="/2026/talks/prefix" data-start="2026-12-13T15:00:00+0000" data-end="2026-12-13T15:10:00+0000" title="prefix-tab-groups" data-slug="prefix"><title>Sun 10:00-10:10 prefix-tab-groups</title><rect stroke-width="3" x="82" y="75" opacity="0.8" width="13" height="54" stroke="black" stroke-dasharray="5,5,5" fill="skyblue"></rect><g transform="translate(93,128)"><text font-weight="bold" fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">prefix</text></g></a><a href="/2026/talks/rau" data-start="2026-12-13T15:20:00+0000" data-end="2026-12-13T15:40:00+0000" title="Emacs as a Window Manager and concurrency" data-slug="rau"><title>Sun 10:20-10:40 Emacs as a Window Manager and concurrency</title><rect x="109" y="75" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(134,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">rau</text></g></a><a href="/2026/talks/babel" data-start="2026-12-13T16:00:00+0000" data-end="2026-12-13T16:10:00+0000" title="Org Babel everywhere" data-slug="babel"><title>Sun 11:00-11:10 Org Babel everywhere</title><rect x="164" y="75" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(175,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">babel</text></g></a><a href="/2026/talks/el-gpu" data-start="2026-12-13T16:30:00+0000" data-end="2026-12-13T16:50:00+0000" title="El-gpu and pix-el: GNU Emacs 2D and 3D game programming" data-slug="el-gpu"><title>Sun 11:30-11:50 El-gpu and pix-el: GNU Emacs 2D and 3D game programming</title><rect x="205" y="75" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(230,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">el-gpu</text></g></a><a href="/2026/talks/llms" data-start="2026-12-13T18:00:00+0000" data-end="2026-12-13T19:00:00+0000" title="[Panel] Emacs, LLMs, and Free Software" data-slug="llms"><title>Sun 1:00- 2:00 [Panel] Emacs, LLMs, and Free Software</title><rect x="329" y="75" opacity="0.5" width="82" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(409,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">llms</text></g></a><g transform="translate(0,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T14:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">9 AM EST</text></g><g transform="translate(82,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T15:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">10 AM EST</text></g><g transform="translate(164,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T16:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">11 AM EST</text></g><g transform="translate(247,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T17:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">12 PM EST</text></g><g transform="translate(329,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T18:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">1 PM EST</text></g><g transform="translate(411,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T19:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">2 PM EST</text></g><g transform="translate(494,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T20:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">3 PM EST</text></g><g transform="translate(576,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T21:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">4 PM EST</text></g><g transform="translate(658,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T22:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">5 PM EST</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 Sunday</title><rect width="700" height="150" x="0" y="0" fill="white"></rect><text data-start="2026-12-13T14:00:00+0000" class="day-label" font-size="10" fill="black" y="17" x="3">Sunday</text><a href="/2026/talks/sun-open" data-start="2026-12-13T14:00:00+0000" data-end="2026-12-13T14:10:00+0000" title="Sunday opening remarks" data-slug="sun-open"><title>Sun 9:00- 9:10 Sunday opening remarks</title><rect x="0" y="20" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(11,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sun-open</text></g></a><a href="/2026/talks/bone" data-start="2026-12-13T14:10:00+0000" data-end="2026-12-13T14:20:00+0000" title="BONE and gnaw.el: tracking what matters" data-slug="bone"><title>Sun 9:10- 9:20 BONE and gnaw.el: tracking what matters</title><rect x="13" y="20" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(24,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">bone</text></g></a><a href="/2026/talks/local" data-start="2026-12-13T14:40:00+0000" data-end="2026-12-13T14:55:00+0000" title="Local file history possibilities in Emacs" data-slug="local"><title>Sun 9:40- 9:55 Local file history possibilities in Emacs</title><rect x="54" y="20" opacity="0.5" width="20" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(72,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">local</text></g></a><a href="/2026/talks/hutch" data-start="2026-12-13T15:15:00+0000" data-end="2026-12-13T15:25:00+0000" title="hutch: code reviews for the mildly disenfranchised" data-slug="hutch"><title>Sun 10:15-10:25 hutch: code reviews for the mildly disenfranchised</title><rect x="102" y="20" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(113,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">hutch</text></g></a><a href="/2026/talks/team" data-start="2026-12-13T15:35:00+0000" data-end="2026-12-13T15:55:00+0000" title="Beyond the Chatbot: Team-Oriented AI in Emacs" data-slug="team"><title>Sun 10:35-10:55 Beyond the Chatbot: Team-Oriented AI in Emacs</title><rect x="130" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(155,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">team</text></g></a><a href="/2026/talks/compile" data-start="2026-12-13T16:15:00+0000" data-end="2026-12-13T16:35:00+0000" title="Beyond shell history: Saving compilation output in Emacs" data-slug="compile"><title>Sun 11:15-11:35 Beyond shell history: Saving compilation output in Emacs</title><rect x="185" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(210,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">compile</text></g></a><a href="/2026/talks/dnd" data-start="2026-12-13T18:00:00+0000" data-end="2026-12-13T18:20:00+0000" title="DnD and Org Roam: Becoming a Better DM with Emacs" data-slug="dnd"><title>Sun 1:00- 1:20 DnD and Org Roam: Becoming a Better DM with Emacs</title><rect x="329" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(354,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">dnd</text></g></a><a href="/2026/talks/bible" data-start="2026-12-13T18:30:00+0000" data-end="2026-12-13T18:50:00+0000" title="bible-gateway: A Two-Edged Sword in Emacs" data-slug="bible"><title>Sun 1:30- 1:50 bible-gateway: A Two-Edged Sword in Emacs</title><rect x="370" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(395,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">bible</text></g></a><a href="/2026/talks/ffs" data-start="2026-12-13T19:10:00+0000" data-end="2026-12-13T19:30:00+0000" title="Plain text presentations in GNU Emacs with ffs" data-slug="ffs"><title>Sun 2:10- 2:30 Plain text presentations in GNU Emacs with ffs</title><rect x="425" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(450,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">ffs</text></g></a><a href="/2026/talks/align" data-start="2026-12-13T19:50:00+0000" data-end="2026-12-13T20:10:00+0000" title="Column-aligning text in Emacs" data-slug="align"><title>Sun 2:50- 3:10 Column-aligning text in Emacs</title><rect x="480" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(505,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">align</text></g></a><a href="/2026/talks/anju" data-start="2026-12-13T20:30:00+0000" data-end="2026-12-13T20:50:00+0000" title="Revisiting Emacs Mouse Interactions with Anju" data-slug="anju"><title>Sun 3:30- 3:50 Revisiting Emacs Mouse Interactions with Anju</title><rect x="535" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(560,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">anju</text></g></a><a href="/2026/talks/android" data-start="2026-12-13T21:00:00+0000" data-end="2026-12-13T21:10:00+0000" title="Emacs on Android - Emacs for the next 40 years" data-slug="android"><title>Sun 4:00- 4:10 Emacs on Android - Emacs for the next 40 years</title><rect x="576" y="20" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(587,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">android</text></g></a><a href="/2026/talks/sun-close" data-start="2026-12-13T21:30:00+0000" data-end="2026-12-13T21:40:00+0000" title="Sunday closing remarks" data-slug="sun-close"><title>Sun 4:30- 4:40 Sunday closing remarks</title><rect x="617" y="20" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(628,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sun-close</text></g></a><a href="/2026/talks/prefix" data-start="2026-12-13T15:00:00+0000" data-end="2026-12-13T15:10:00+0000" title="prefix-tab-groups" data-slug="prefix"><title>Sun 10:00-10:10 prefix-tab-groups</title><rect stroke-width="3" x="82" y="75" opacity="0.8" width="13" height="54" stroke="black" stroke-dasharray="5,5,5" fill="skyblue"></rect><g transform="translate(93,128)"><text font-weight="bold" fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">prefix</text></g></a><a href="/2026/talks/rau" data-start="2026-12-13T15:20:00+0000" data-end="2026-12-13T15:40:00+0000" title="Emacs as a Window Manager and concurrency" data-slug="rau"><title>Sun 10:20-10:40 Emacs as a Window Manager and concurrency</title><rect x="109" y="75" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(134,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">rau</text></g></a><a href="/2026/talks/babel" data-start="2026-12-13T16:00:00+0000" data-end="2026-12-13T16:10:00+0000" title="Org Babel everywhere" data-slug="babel"><title>Sun 11:00-11:10 Org Babel everywhere</title><rect x="164" y="75" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(175,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">babel</text></g></a><a href="/2026/talks/el-gpu" data-start="2026-12-13T16:30:00+0000" data-end="2026-12-13T16:50:00+0000" title="El-gpu and pix-el: GNU Emacs 2D and 3D game programming" data-slug="el-gpu"><title>Sun 11:30-11:50 El-gpu and pix-el: GNU Emacs 2D and 3D game programming</title><rect x="205" y="75" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(230,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">el-gpu</text></g></a><a href="/2026/talks/llms" data-start="2026-12-13T18:00:00+0000" data-end="2026-12-13T19:00:00+0000" title="[Panel] Emacs, LLMs, and Free Software" data-slug="llms"><title>Sun 1:00- 2:00 [Panel] Emacs, LLMs, and Free Software</title><rect x="329" y="75" opacity="0.5" width="82" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(409,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">llms</text></g></a><a href="/2026/talks/ghostel" data-start="2026-12-13T19:20:00+0000" data-end="2026-12-13T19:40:00+0000" title="Ghost in the Shell: a libghostty powered terminal for Emacs" data-slug="ghostel"><title>Sun 2:20- 2:40 Ghost in the Shell: a libghostty powered terminal for Emacs</title><rect x="439" y="75" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(464,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">ghostel</text></g></a><a href="/2026/talks/svg" data-start="2026-12-13T20:00:00+0000" data-end="2026-12-13T20:20:00+0000" title="A (sort of) REPL for learning SVG" data-slug="svg"><title>Sun 3:00- 3:20 A (sort of) REPL for learning SVG</title><rect x="494" y="75" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(519,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">svg</text></g></a><g transform="translate(0,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T14:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">9 AM EST</text></g><g transform="translate(82,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T15:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">10 AM EST</text></g><g transform="translate(164,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T16:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">11 AM EST</text></g><g transform="translate(247,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T17:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">12 PM EST</text></g><g transform="translate(329,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T18:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">1 PM EST</text></g><g transform="translate(411,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T19:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">2 PM EST</text></g><g transform="translate(494,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T20:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">3 PM EST</text></g><g transform="translate(576,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T21:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">4 PM EST</text></g><g transform="translate(658,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T22:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">5 PM EST</text></g></svg> </div> [[!toc ]] diff --git a/2026/info/rau-before.md b/2026/info/rau-before.md index 851f0089..0ab0ddd9 100644 --- a/2026/info/rau-before.md +++ b/2026/info/rau-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 Sun 2026-12-13. 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="rau"> -<svg width="700" height="150" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><title>Schedule for Sunday</title><rect width="700" height="150" x="0" y="0" fill="white"></rect><text data-start="2026-12-13T14:00:00+0000" class="day-label" font-size="10" fill="black" y="17" x="3">Sunday</text><a href="/2026/talks/sun-open" data-start="2026-12-13T14:00:00+0000" data-end="2026-12-13T14:10:00+0000" title="Sunday opening remarks" data-slug="sun-open"><title>Sun 9:00- 9:10 Sunday opening remarks</title><rect x="0" y="20" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(11,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sun-open</text></g></a><a href="/2026/talks/bone" data-start="2026-12-13T14:10:00+0000" data-end="2026-12-13T14:20:00+0000" title="BONE and gnaw.el: tracking what matters" data-slug="bone"><title>Sun 9:10- 9:20 BONE and gnaw.el: tracking what matters</title><rect x="13" y="20" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(24,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">bone</text></g></a><a href="/2026/talks/local" data-start="2026-12-13T14:40:00+0000" data-end="2026-12-13T14:55:00+0000" title="Local file history possibilities in Emacs" data-slug="local"><title>Sun 9:40- 9:55 Local file history possibilities in Emacs</title><rect x="54" y="20" opacity="0.5" width="20" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(72,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">local</text></g></a><a href="/2026/talks/hutch" data-start="2026-12-13T15:15:00+0000" data-end="2026-12-13T15:25:00+0000" title="hutch: code reviews for the mildly disenfranchised" data-slug="hutch"><title>Sun 10:15-10:25 hutch: code reviews for the mildly disenfranchised</title><rect x="102" y="20" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(113,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">hutch</text></g></a><a href="/2026/talks/team" data-start="2026-12-13T15:35:00+0000" data-end="2026-12-13T15:55:00+0000" title="Beyond the Chatbot: Team-Oriented AI in Emacs" data-slug="team"><title>Sun 10:35-10:55 Beyond the Chatbot: Team-Oriented AI in Emacs</title><rect x="130" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(155,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">team</text></g></a><a href="/2026/talks/compile" data-start="2026-12-13T16:15:00+0000" data-end="2026-12-13T16:35:00+0000" title="Beyond shell history: Saving compilation output in Emacs" data-slug="compile"><title>Sun 11:15-11:35 Beyond shell history: Saving compilation output in Emacs</title><rect x="185" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(210,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">compile</text></g></a><a href="/2026/talks/dnd" data-start="2026-12-13T18:00:00+0000" data-end="2026-12-13T18:20:00+0000" title="DnD and Org Roam: Becoming a Better DM with Emacs" data-slug="dnd"><title>Sun 1:00- 1:20 DnD and Org Roam: Becoming a Better DM with Emacs</title><rect x="329" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(354,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">dnd</text></g></a><a href="/2026/talks/bible" data-start="2026-12-13T18:30:00+0000" data-end="2026-12-13T18:50:00+0000" title="bible-gateway: A Two-Edged Sword in Emacs" data-slug="bible"><title>Sun 1:30- 1:50 bible-gateway: A Two-Edged Sword in Emacs</title><rect x="370" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(395,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">bible</text></g></a><a href="/2026/talks/svg" data-start="2026-12-13T19:10:00+0000" data-end="2026-12-13T19:30:00+0000" title="A (sort of) REPL for learning SVG" data-slug="svg"><title>Sun 2:10- 2:30 A (sort of) REPL for learning SVG</title><rect x="425" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(450,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">svg</text></g></a><a href="/2026/talks/align" data-start="2026-12-13T19:50:00+0000" data-end="2026-12-13T20:10:00+0000" title="Column-aligning text in Emacs" data-slug="align"><title>Sun 2:50- 3:10 Column-aligning text in Emacs</title><rect x="480" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(505,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">align</text></g></a><a href="/2026/talks/anju" data-start="2026-12-13T20:30:00+0000" data-end="2026-12-13T20:50:00+0000" title="Revisiting Emacs Mouse Interactions with Anju" data-slug="anju"><title>Sun 3:30- 3:50 Revisiting Emacs Mouse Interactions with Anju</title><rect x="535" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(560,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">anju</text></g></a><a href="/2026/talks/ghostel" data-start="2026-12-13T21:00:00+0000" data-end="2026-12-13T21:20:00+0000" title="Ghost in the Shell: a libghostty powered terminal for Emacs" data-slug="ghostel"><title>Sun 4:00- 4:20 Ghost in the Shell: a libghostty powered terminal for Emacs</title><rect x="576" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(601,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">ghostel</text></g></a><a href="/2026/talks/sun-close" data-start="2026-12-13T21:40:00+0000" data-end="2026-12-13T21:50:00+0000" title="Sunday closing remarks" data-slug="sun-close"><title>Sun 4:40- 4:50 Sunday closing remarks</title><rect x="631" y="20" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(642,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sun-close</text></g></a><a href="/2026/talks/prefix" data-start="2026-12-13T15:00:00+0000" data-end="2026-12-13T15:10:00+0000" title="prefix-tab-groups" data-slug="prefix"><title>Sun 10:00-10:10 prefix-tab-groups</title><rect x="82" y="75" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="5,5,5" fill="skyblue"></rect><g transform="translate(93,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">prefix</text></g></a><a href="/2026/talks/rau" data-start="2026-12-13T15:20:00+0000" data-end="2026-12-13T15:40:00+0000" title="Emacs as a Window Manager and concurrency" data-slug="rau"><title>Sun 10:20-10:40 Emacs as a Window Manager and concurrency</title><rect stroke-width="3" x="109" y="75" opacity="0.8" width="27" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(134,128)"><text font-weight="bold" fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">rau</text></g></a><a href="/2026/talks/babel" data-start="2026-12-13T16:00:00+0000" data-end="2026-12-13T16:10:00+0000" title="Org Babel everywhere" data-slug="babel"><title>Sun 11:00-11:10 Org Babel everywhere</title><rect x="164" y="75" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(175,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">babel</text></g></a><a href="/2026/talks/el-gpu" data-start="2026-12-13T16:30:00+0000" data-end="2026-12-13T16:50:00+0000" title="El-gpu and pix-el: GNU Emacs 2D and 3D game programming" data-slug="el-gpu"><title>Sun 11:30-11:50 El-gpu and pix-el: GNU Emacs 2D and 3D game programming</title><rect x="205" y="75" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(230,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">el-gpu</text></g></a><a href="/2026/talks/llms" data-start="2026-12-13T18:00:00+0000" data-end="2026-12-13T19:00:00+0000" title="[Panel] Emacs, LLMs, and Free Software" data-slug="llms"><title>Sun 1:00- 2:00 [Panel] Emacs, LLMs, and Free Software</title><rect x="329" y="75" opacity="0.5" width="82" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(409,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">llms</text></g></a><g transform="translate(0,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T14:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">9 AM EST</text></g><g transform="translate(82,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T15:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">10 AM EST</text></g><g transform="translate(164,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T16:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">11 AM EST</text></g><g transform="translate(247,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T17:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">12 PM EST</text></g><g transform="translate(329,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T18:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">1 PM EST</text></g><g transform="translate(411,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T19:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">2 PM EST</text></g><g transform="translate(494,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T20:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">3 PM EST</text></g><g transform="translate(576,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T21:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">4 PM EST</text></g><g transform="translate(658,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T22:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">5 PM EST</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 Sunday</title><rect width="700" height="150" x="0" y="0" fill="white"></rect><text data-start="2026-12-13T14:00:00+0000" class="day-label" font-size="10" fill="black" y="17" x="3">Sunday</text><a href="/2026/talks/sun-open" data-start="2026-12-13T14:00:00+0000" data-end="2026-12-13T14:10:00+0000" title="Sunday opening remarks" data-slug="sun-open"><title>Sun 9:00- 9:10 Sunday opening remarks</title><rect x="0" y="20" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(11,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sun-open</text></g></a><a href="/2026/talks/bone" data-start="2026-12-13T14:10:00+0000" data-end="2026-12-13T14:20:00+0000" title="BONE and gnaw.el: tracking what matters" data-slug="bone"><title>Sun 9:10- 9:20 BONE and gnaw.el: tracking what matters</title><rect x="13" y="20" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(24,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">bone</text></g></a><a href="/2026/talks/local" data-start="2026-12-13T14:40:00+0000" data-end="2026-12-13T14:55:00+0000" title="Local file history possibilities in Emacs" data-slug="local"><title>Sun 9:40- 9:55 Local file history possibilities in Emacs</title><rect x="54" y="20" opacity="0.5" width="20" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(72,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">local</text></g></a><a href="/2026/talks/hutch" data-start="2026-12-13T15:15:00+0000" data-end="2026-12-13T15:25:00+0000" title="hutch: code reviews for the mildly disenfranchised" data-slug="hutch"><title>Sun 10:15-10:25 hutch: code reviews for the mildly disenfranchised</title><rect x="102" y="20" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(113,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">hutch</text></g></a><a href="/2026/talks/team" data-start="2026-12-13T15:35:00+0000" data-end="2026-12-13T15:55:00+0000" title="Beyond the Chatbot: Team-Oriented AI in Emacs" data-slug="team"><title>Sun 10:35-10:55 Beyond the Chatbot: Team-Oriented AI in Emacs</title><rect x="130" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(155,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">team</text></g></a><a href="/2026/talks/compile" data-start="2026-12-13T16:15:00+0000" data-end="2026-12-13T16:35:00+0000" title="Beyond shell history: Saving compilation output in Emacs" data-slug="compile"><title>Sun 11:15-11:35 Beyond shell history: Saving compilation output in Emacs</title><rect x="185" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(210,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">compile</text></g></a><a href="/2026/talks/dnd" data-start="2026-12-13T18:00:00+0000" data-end="2026-12-13T18:20:00+0000" title="DnD and Org Roam: Becoming a Better DM with Emacs" data-slug="dnd"><title>Sun 1:00- 1:20 DnD and Org Roam: Becoming a Better DM with Emacs</title><rect x="329" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(354,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">dnd</text></g></a><a href="/2026/talks/bible" data-start="2026-12-13T18:30:00+0000" data-end="2026-12-13T18:50:00+0000" title="bible-gateway: A Two-Edged Sword in Emacs" data-slug="bible"><title>Sun 1:30- 1:50 bible-gateway: A Two-Edged Sword in Emacs</title><rect x="370" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(395,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">bible</text></g></a><a href="/2026/talks/ffs" data-start="2026-12-13T19:10:00+0000" data-end="2026-12-13T19:30:00+0000" title="Plain text presentations in GNU Emacs with ffs" data-slug="ffs"><title>Sun 2:10- 2:30 Plain text presentations in GNU Emacs with ffs</title><rect x="425" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(450,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">ffs</text></g></a><a href="/2026/talks/align" data-start="2026-12-13T19:50:00+0000" data-end="2026-12-13T20:10:00+0000" title="Column-aligning text in Emacs" data-slug="align"><title>Sun 2:50- 3:10 Column-aligning text in Emacs</title><rect x="480" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(505,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">align</text></g></a><a href="/2026/talks/anju" data-start="2026-12-13T20:30:00+0000" data-end="2026-12-13T20:50:00+0000" title="Revisiting Emacs Mouse Interactions with Anju" data-slug="anju"><title>Sun 3:30- 3:50 Revisiting Emacs Mouse Interactions with Anju</title><rect x="535" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(560,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">anju</text></g></a><a href="/2026/talks/android" data-start="2026-12-13T21:00:00+0000" data-end="2026-12-13T21:10:00+0000" title="Emacs on Android - Emacs for the next 40 years" data-slug="android"><title>Sun 4:00- 4:10 Emacs on Android - Emacs for the next 40 years</title><rect x="576" y="20" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(587,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">android</text></g></a><a href="/2026/talks/sun-close" data-start="2026-12-13T21:30:00+0000" data-end="2026-12-13T21:40:00+0000" title="Sunday closing remarks" data-slug="sun-close"><title>Sun 4:30- 4:40 Sunday closing remarks</title><rect x="617" y="20" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(628,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sun-close</text></g></a><a href="/2026/talks/prefix" data-start="2026-12-13T15:00:00+0000" data-end="2026-12-13T15:10:00+0000" title="prefix-tab-groups" data-slug="prefix"><title>Sun 10:00-10:10 prefix-tab-groups</title><rect x="82" y="75" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="5,5,5" fill="skyblue"></rect><g transform="translate(93,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">prefix</text></g></a><a href="/2026/talks/rau" data-start="2026-12-13T15:20:00+0000" data-end="2026-12-13T15:40:00+0000" title="Emacs as a Window Manager and concurrency" data-slug="rau"><title>Sun 10:20-10:40 Emacs as a Window Manager and concurrency</title><rect stroke-width="3" x="109" y="75" opacity="0.8" width="27" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(134,128)"><text font-weight="bold" fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">rau</text></g></a><a href="/2026/talks/babel" data-start="2026-12-13T16:00:00+0000" data-end="2026-12-13T16:10:00+0000" title="Org Babel everywhere" data-slug="babel"><title>Sun 11:00-11:10 Org Babel everywhere</title><rect x="164" y="75" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(175,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">babel</text></g></a><a href="/2026/talks/el-gpu" data-start="2026-12-13T16:30:00+0000" data-end="2026-12-13T16:50:00+0000" title="El-gpu and pix-el: GNU Emacs 2D and 3D game programming" data-slug="el-gpu"><title>Sun 11:30-11:50 El-gpu and pix-el: GNU Emacs 2D and 3D game programming</title><rect x="205" y="75" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(230,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">el-gpu</text></g></a><a href="/2026/talks/llms" data-start="2026-12-13T18:00:00+0000" data-end="2026-12-13T19:00:00+0000" title="[Panel] Emacs, LLMs, and Free Software" data-slug="llms"><title>Sun 1:00- 2:00 [Panel] Emacs, LLMs, and Free Software</title><rect x="329" y="75" opacity="0.5" width="82" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(409,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">llms</text></g></a><a href="/2026/talks/ghostel" data-start="2026-12-13T19:20:00+0000" data-end="2026-12-13T19:40:00+0000" title="Ghost in the Shell: a libghostty powered terminal for Emacs" data-slug="ghostel"><title>Sun 2:20- 2:40 Ghost in the Shell: a libghostty powered terminal for Emacs</title><rect x="439" y="75" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(464,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">ghostel</text></g></a><a href="/2026/talks/svg" data-start="2026-12-13T20:00:00+0000" data-end="2026-12-13T20:20:00+0000" title="A (sort of) REPL for learning SVG" data-slug="svg"><title>Sun 3:00- 3:20 A (sort of) REPL for learning SVG</title><rect x="494" y="75" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(519,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">svg</text></g></a><g transform="translate(0,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T14:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">9 AM EST</text></g><g transform="translate(82,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T15:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">10 AM EST</text></g><g transform="translate(164,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T16:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">11 AM EST</text></g><g transform="translate(247,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T17:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">12 PM EST</text></g><g transform="translate(329,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T18:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">1 PM EST</text></g><g transform="translate(411,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T19:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">2 PM EST</text></g><g transform="translate(494,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T20:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">3 PM EST</text></g><g transform="translate(576,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T21:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">4 PM EST</text></g><g transform="translate(658,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T22:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">5 PM EST</text></g></svg> </div> [[!toc ]] diff --git a/2026/info/remoto-before.md b/2026/info/remoto-before.md index 9f6b9126..c5b34ccb 100644 --- a/2026/info/remoto-before.md +++ b/2026/info/remoto-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 2026-12-12. 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="remoto"> -<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 data-start="2026-12-12T14:00:00+0000" class="day-label" font-size="10" fill="black" y="17" x="3">Saturday</text><a href="/2026/talks/sat-open" data-start="2026-12-12T14:00:00+0000" data-end="2026-12-12T14:10:00+0000" title="Saturday opening remarks" data-slug="sat-open"><title>Sat 9:00- 9:10 Saturday opening remarks</title><rect x="0" y="20" opacity="0.5" width="13" height="54" 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="/2026/talks/planning" data-start="2026-12-12T14:10:00+0000" data-end="2026-12-12T14:30:00+0000" title="The Emacs Planning Habits of a Questionably Effective Person: My 40-year journey of planning with Emacs, Org Mode, paper journals, etc." data-slug="planning"><title>Sat 9:10- 9:30 The Emacs Planning Habits of a Questionably Effective Person: My 40-year journey of planning with Emacs, Org Mode, paper journals, etc.</title><rect x="13" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(38,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">planning</text></g></a><a href="/2026/talks/listen" data-start="2026-12-12T14:50:00+0000" data-end="2026-12-12T15:10:00+0000" title="Controlling Emacs by voice using Emacslisten" data-slug="listen"><title>Sat 9:50-10:10 Controlling Emacs by voice using Emacslisten</title><rect x="68" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(93,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">listen</text></g></a><a href="/2026/talks/emacspeak" data-start="2026-12-12T15:30:00+0000" data-end="2026-12-12T16:00:00+0000" title="Multi-dimensional information processing with Emacs and Emacspeak: a blind man's perspective" data-slug="emacspeak"><title>Sat 10:30-11:00 Multi-dimensional information processing with Emacs and Emacspeak: a blind man's perspective</title><rect x="123" y="20" opacity="0.5" width="41" height="54" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(162,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">emacspeak</text></g></a><a href="/2026/talks/ltx-talk" data-start="2026-12-12T16:10:00+0000" data-end="2026-12-12T16:30:00+0000" title="ltx-talk: Accessible presentations with ox-beamer" data-slug="ltx-talk"><title>Sat 11:10-11:30 ltx-talk: Accessible presentations with ox-beamer</title><rect x="178" y="20" opacity="0.5" width="27" height="54" 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)">ltx-talk</text></g></a><a href="/2026/talks/plots" data-start="2026-12-12T18:00:00+0000" data-end="2026-12-12T18:20:00+0000" title="Plots with ROOTs: Resilient data visualization with Emacs, Org and gnuplot" data-slug="plots"><title>Sat 1:00- 1:20 Plots with ROOTs: Resilient data visualization with Emacs, Org and gnuplot</title><rect x="329" y="20" opacity="0.5" width="27" height="54" 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)">plots</text></g></a><a href="/2026/talks/ffs" data-start="2026-12-12T18:40:00+0000" data-end="2026-12-12T19:00:00+0000" title="Plain text presentations in GNU Emacs with ffs" data-slug="ffs"><title>Sat 1:40- 2:00 Plain text presentations in GNU Emacs with ffs</title><rect x="384" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(409,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">ffs</text></g></a><a href="/2026/talks/mobile" data-start="2026-12-12T19:20:00+0000" data-end="2026-12-12T19:30:00+0000" title="How I solved Org Mode's biggest mobile and collaboration problems" data-slug="mobile"><title>Sat 2:20- 2:30 How I solved Org Mode's biggest mobile and collaboration problems</title><rect x="439" y="20" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(450,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">mobile</text></g></a><a href="/2026/talks/hyperbole" data-start="2026-12-12T19:50:00+0000" data-end="2026-12-12T20:10:00+0000" title="Hyperbole, My Dear Watson" data-slug="hyperbole"><title>Sat 2:50- 3:10 Hyperbole, My Dear Watson</title><rect x="480" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(505,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">hyperbole</text></g></a><a href="/2026/talks/koutliner" data-start="2026-12-12T20:30:00+0000" data-end="2026-12-12T20:50:00+0000" title="Hyperbole Koutliner: The Best Autonumbered, Hyperlinking Outliner for Emacs" data-slug="koutliner"><title>Sat 3:30- 3:50 Hyperbole Koutliner: The Best Autonumbered, Hyperlinking Outliner for Emacs</title><rect x="535" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(560,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">koutliner</text></g></a><a href="/2026/talks/writing" data-start="2026-12-12T21:10:00+0000" data-end="2026-12-12T21:30:00+0000" title="Close the writing accountability gap with Emacs" data-slug="writing"><title>Sat 4:10- 4:30 Close the writing accountability gap with Emacs</title><rect x="590" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(615,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">writing</text></g></a><a href="/2026/talks/android" data-start="2026-12-12T21:50:00+0000" data-end="2026-12-12T22:00:00+0000" title="Emacs on Android - Emacs for the next 40 years" data-slug="android"><title>Sat 4:50- 5:00 Emacs on Android - Emacs for the next 40 years</title><rect x="645" y="20" opacity="0.5" width="13" height="54" 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)">android</text></g></a><a href="/2026/talks/sat-close" data-start="2026-12-12T22:20:00+0000" data-end="2026-12-12T22:30:00+0000" title="Saturday closing remarks / open session" data-slug="sat-close"><title>Sat 5:20- 5:30 Saturday closing remarks / open session</title><rect x="686" y="20" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(697,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sat-close</text></g></a><a href="/2026/talks/community" data-start="2026-12-12T15:30:00+0000" data-end="2026-12-12T16:30:00+0000" title="[Panel] Improving the Emacs Community: Onboarding, Participation, and Growth" data-slug="community"><title>Sat 10:30-11:30 [Panel] Improving the Emacs Community: Onboarding, Participation, and Growth</title><rect x="123" y="75" opacity="0.5" width="82" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(203,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">community</text></g></a><a href="/2026/talks/portable" data-start="2026-12-12T18:00:00+0000" data-end="2026-12-12T18:15:00+0000" title="Emacs as my portable user space across operating platforms" data-slug="portable"><title>Sat 1:00- 1:15 Emacs as my portable user space across operating platforms</title><rect x="329" y="75" opacity="0.5" width="20" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(347,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">portable</text></g></a><a href="/2026/talks/os" data-start="2026-12-12T18:35:00+0000" data-end="2026-12-12T18:55:00+0000" title="Emacs everywhere: A fun romp through esoteric operating systems" data-slug="os"><title>Sat 1:35- 1:55 Emacs everywhere: A fun romp through esoteric operating systems</title><rect x="377" y="75" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(402,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">os</text></g></a><a href="/2026/talks/cadet" data-start="2026-12-12T19:15:00+0000" data-end="2026-12-12T19:25:00+0000" title="My Space Cadet Deck - an Android Stream Deck replacement with deep Emacs integration" data-slug="cadet"><title>Sat 2:15- 2:25 My Space Cadet Deck - an Android Stream Deck replacement with deep Emacs integration</title><rect x="432" y="75" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(443,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">cadet</text></g></a><a href="/2026/talks/remoto" data-start="2026-12-12T19:45:00+0000" data-end="2026-12-12T20:05:00+0000" title="El Remoto: browse any GitHub repos without cloning them" data-slug="remoto"><title>Sat 2:45- 3:05 El Remoto: browse any GitHub repos without cloning them</title><rect stroke-width="3" x="473" y="75" opacity="0.8" width="27" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(498,128)"><text font-weight="bold" fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">remoto</text></g></a><a href="/2026/talks/guile" data-start="2026-12-12T20:25:00+0000" data-end="2026-12-12T20:45:00+0000" title="æmacs: having a hoot with a guile emacs" data-slug="guile"><title>Sat 3:25- 3:45 æmacs: having a hoot with a guile emacs</title><rect x="528" y="75" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(553,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">guile</text></g></a><a href="/2026/talks/virus" data-start="2026-12-12T21:05:00+0000" data-end="2026-12-12T21:25:00+0000" title="It's Probably Not a Virus" data-slug="virus"><title>Sat 4:05- 4:25 It's Probably Not a Virus</title><rect x="583" y="75" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(608,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">virus</text></g></a><g transform="translate(0,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T14:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">9 AM EST</text></g><g transform="translate(82,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T15:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">10 AM EST</text></g><g transform="translate(164,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T16:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">11 AM EST</text></g><g transform="translate(247,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T17:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">12 PM EST</text></g><g transform="translate(329,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T18:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">1 PM EST</text></g><g transform="translate(411,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T19:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">2 PM EST</text></g><g transform="translate(494,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T20:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">3 PM EST</text></g><g transform="translate(576,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T21:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">4 PM EST</text></g><g transform="translate(658,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T22:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">5 PM EST</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 data-start="2026-12-12T14:00:00+0000" class="day-label" font-size="10" fill="black" y="17" x="3">Saturday</text><a href="/2026/talks/sat-open" data-start="2026-12-12T14:00:00+0000" data-end="2026-12-12T14:10:00+0000" title="Saturday opening remarks" data-slug="sat-open"><title>Sat 9:00- 9:10 Saturday opening remarks</title><rect x="0" y="20" opacity="0.5" width="13" height="54" 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="/2026/talks/planning" data-start="2026-12-12T14:10:00+0000" data-end="2026-12-12T14:30:00+0000" title="The Emacs Planning Habits of a Questionably Effective Person: My 40-year journey of planning with Emacs, Org Mode, paper journals, etc." data-slug="planning"><title>Sat 9:10- 9:30 The Emacs Planning Habits of a Questionably Effective Person: My 40-year journey of planning with Emacs, Org Mode, paper journals, etc.</title><rect x="13" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(38,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">planning</text></g></a><a href="/2026/talks/listen" data-start="2026-12-12T14:50:00+0000" data-end="2026-12-12T15:10:00+0000" title="Emacslisten: Controlling Emacs by voice" data-slug="listen"><title>Sat 9:50-10:10 Emacslisten: Controlling Emacs by voice</title><rect x="68" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(93,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">listen</text></g></a><a href="/2026/talks/emacspeak" data-start="2026-12-12T15:30:00+0000" data-end="2026-12-12T16:00:00+0000" title="Multi-dimensional information processing with Emacs and Emacspeak: a blind man's perspective" data-slug="emacspeak"><title>Sat 10:30-11:00 Multi-dimensional information processing with Emacs and Emacspeak: a blind man's perspective</title><rect x="123" y="20" opacity="0.5" width="41" height="54" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(162,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">emacspeak</text></g></a><a href="/2026/talks/ltx-talk" data-start="2026-12-12T16:10:00+0000" data-end="2026-12-12T16:30:00+0000" title="ltx-talk: Accessible presentations with ox-beamer" data-slug="ltx-talk"><title>Sat 11:10-11:30 ltx-talk: Accessible presentations with ox-beamer</title><rect x="178" y="20" opacity="0.5" width="27" height="54" 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)">ltx-talk</text></g></a><a href="/2026/talks/plots" data-start="2026-12-12T18:00:00+0000" data-end="2026-12-12T18:20:00+0000" title="Plots with ROOTs: Resilient data visualization with Emacs, Org and gnuplot" data-slug="plots"><title>Sat 1:00- 1:20 Plots with ROOTs: Resilient data visualization with Emacs, Org and gnuplot</title><rect x="329" y="20" opacity="0.5" width="27" height="54" 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)">plots</text></g></a><a href="/2026/talks/tasks" data-start="2026-12-12T18:40:00+0000" data-end="2026-12-12T19:00:00+0000" title="Personal task management under stress (with Org mode)" data-slug="tasks"><title>Sat 1:40- 2:00 Personal task management under stress (with Org mode)</title><rect x="384" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(409,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">tasks</text></g></a><a href="/2026/talks/mobile" data-start="2026-12-12T19:20:00+0000" data-end="2026-12-12T19:30:00+0000" title="How I solved Org Mode's biggest mobile and collaboration problems" data-slug="mobile"><title>Sat 2:20- 2:30 How I solved Org Mode's biggest mobile and collaboration problems</title><rect x="439" y="20" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(450,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">mobile</text></g></a><a href="/2026/talks/hyperbole" data-start="2026-12-12T19:50:00+0000" data-end="2026-12-12T20:10:00+0000" title="Hyperbole, My Dear Watson" data-slug="hyperbole"><title>Sat 2:50- 3:10 Hyperbole, My Dear Watson</title><rect x="480" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(505,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">hyperbole</text></g></a><a href="/2026/talks/koutliner" data-start="2026-12-12T20:30:00+0000" data-end="2026-12-12T20:50:00+0000" title="Hyperbole Koutliner: The Best Autonumbered, Hyperlinking Outliner for Emacs" data-slug="koutliner"><title>Sat 3:30- 3:50 Hyperbole Koutliner: The Best Autonumbered, Hyperlinking Outliner for Emacs</title><rect x="535" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(560,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">koutliner</text></g></a><a href="/2026/talks/writing" data-start="2026-12-12T21:10:00+0000" data-end="2026-12-12T21:30:00+0000" title="Close the writing accountability gap with Emacs" data-slug="writing"><title>Sat 4:10- 4:30 Close the writing accountability gap with Emacs</title><rect x="590" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(615,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">writing</text></g></a><a href="/2026/talks/sat-close" data-start="2026-12-12T21:50:00+0000" data-end="2026-12-12T22:00:00+0000" title="Saturday closing remarks / open session" data-slug="sat-close"><title>Sat 4:50- 5:00 Saturday closing remarks / open session</title><rect x="645" y="20" opacity="0.5" width="13" height="54" 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)">sat-close</text></g></a><a href="/2026/talks/community" data-start="2026-12-12T15:30:00+0000" data-end="2026-12-12T16:30:00+0000" title="[Panel] Improving the Emacs Community: Onboarding, Participation, and Growth" data-slug="community"><title>Sat 10:30-11:30 [Panel] Improving the Emacs Community: Onboarding, Participation, and Growth</title><rect x="123" y="75" opacity="0.5" width="82" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(203,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">community</text></g></a><a href="/2026/talks/portable" data-start="2026-12-12T18:00:00+0000" data-end="2026-12-12T18:15:00+0000" title="Emacs as my portable user space across operating platforms" data-slug="portable"><title>Sat 1:00- 1:15 Emacs as my portable user space across operating platforms</title><rect x="329" y="75" opacity="0.5" width="20" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(347,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">portable</text></g></a><a href="/2026/talks/os" data-start="2026-12-12T18:35:00+0000" data-end="2026-12-12T18:55:00+0000" title="Emacs everywhere: A fun romp through esoteric operating systems" data-slug="os"><title>Sat 1:35- 1:55 Emacs everywhere: A fun romp through esoteric operating systems</title><rect x="377" y="75" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(402,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">os</text></g></a><a href="/2026/talks/cadet" data-start="2026-12-12T19:15:00+0000" data-end="2026-12-12T19:25:00+0000" title="My Space Cadet Deck - an Android Stream Deck replacement with deep Emacs integration" data-slug="cadet"><title>Sat 2:15- 2:25 My Space Cadet Deck - an Android Stream Deck replacement with deep Emacs integration</title><rect x="432" y="75" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(443,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">cadet</text></g></a><a href="/2026/talks/remoto" data-start="2026-12-12T19:45:00+0000" data-end="2026-12-12T20:05:00+0000" title="El Remoto: browse any GitHub repos without cloning them" data-slug="remoto"><title>Sat 2:45- 3:05 El Remoto: browse any GitHub repos without cloning them</title><rect stroke-width="3" x="473" y="75" opacity="0.8" width="27" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(498,128)"><text font-weight="bold" fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">remoto</text></g></a><a href="/2026/talks/guile" data-start="2026-12-12T20:25:00+0000" data-end="2026-12-12T20:45:00+0000" title="æmacs: having a hoot with a guile emacs" data-slug="guile"><title>Sat 3:25- 3:45 æmacs: having a hoot with a guile emacs</title><rect x="528" y="75" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(553,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">guile</text></g></a><a href="/2026/talks/virus" data-start="2026-12-12T21:05:00+0000" data-end="2026-12-12T21:25:00+0000" title="It's Probably Not a Virus" data-slug="virus"><title>Sat 4:05- 4:25 It's Probably Not a Virus</title><rect x="583" y="75" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(608,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">virus</text></g></a><g transform="translate(0,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T14:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">9 AM EST</text></g><g transform="translate(82,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T15:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">10 AM EST</text></g><g transform="translate(164,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T16:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">11 AM EST</text></g><g transform="translate(247,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T17:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">12 PM EST</text></g><g transform="translate(329,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T18:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">1 PM EST</text></g><g transform="translate(411,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T19:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">2 PM EST</text></g><g transform="translate(494,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T20:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">3 PM EST</text></g><g transform="translate(576,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T21:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">4 PM EST</text></g><g transform="translate(658,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T22:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">5 PM EST</text></g></svg> </div> [[!toc ]] diff --git a/2026/info/sat-close-before.md b/2026/info/sat-close-before.md index 40ebb581..081657f1 100644 --- a/2026/info/sat-close-before.md +++ b/2026/info/sat-close-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 2026-12-12. 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 data-start="2026-12-12T14:00:00+0000" class="day-label" font-size="10" fill="black" y="17" x="3">Saturday</text><a href="/2026/talks/sat-open" data-start="2026-12-12T14:00:00+0000" data-end="2026-12-12T14:10:00+0000" title="Saturday opening remarks" data-slug="sat-open"><title>Sat 9:00- 9:10 Saturday opening remarks</title><rect x="0" y="20" opacity="0.5" width="13" height="54" 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="/2026/talks/planning" data-start="2026-12-12T14:10:00+0000" data-end="2026-12-12T14:30:00+0000" title="The Emacs Planning Habits of a Questionably Effective Person: My 40-year journey of planning with Emacs, Org Mode, paper journals, etc." data-slug="planning"><title>Sat 9:10- 9:30 The Emacs Planning Habits of a Questionably Effective Person: My 40-year journey of planning with Emacs, Org Mode, paper journals, etc.</title><rect x="13" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(38,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">planning</text></g></a><a href="/2026/talks/listen" data-start="2026-12-12T14:50:00+0000" data-end="2026-12-12T15:10:00+0000" title="Controlling Emacs by voice using Emacslisten" data-slug="listen"><title>Sat 9:50-10:10 Controlling Emacs by voice using Emacslisten</title><rect x="68" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(93,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">listen</text></g></a><a href="/2026/talks/emacspeak" data-start="2026-12-12T15:30:00+0000" data-end="2026-12-12T16:00:00+0000" title="Multi-dimensional information processing with Emacs and Emacspeak: a blind man's perspective" data-slug="emacspeak"><title>Sat 10:30-11:00 Multi-dimensional information processing with Emacs and Emacspeak: a blind man's perspective</title><rect x="123" y="20" opacity="0.5" width="41" height="54" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(162,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">emacspeak</text></g></a><a href="/2026/talks/ltx-talk" data-start="2026-12-12T16:10:00+0000" data-end="2026-12-12T16:30:00+0000" title="ltx-talk: Accessible presentations with ox-beamer" data-slug="ltx-talk"><title>Sat 11:10-11:30 ltx-talk: Accessible presentations with ox-beamer</title><rect x="178" y="20" opacity="0.5" width="27" height="54" 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)">ltx-talk</text></g></a><a href="/2026/talks/plots" data-start="2026-12-12T18:00:00+0000" data-end="2026-12-12T18:20:00+0000" title="Plots with ROOTs: Resilient data visualization with Emacs, Org and gnuplot" data-slug="plots"><title>Sat 1:00- 1:20 Plots with ROOTs: Resilient data visualization with Emacs, Org and gnuplot</title><rect x="329" y="20" opacity="0.5" width="27" height="54" 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)">plots</text></g></a><a href="/2026/talks/ffs" data-start="2026-12-12T18:40:00+0000" data-end="2026-12-12T19:00:00+0000" title="Plain text presentations in GNU Emacs with ffs" data-slug="ffs"><title>Sat 1:40- 2:00 Plain text presentations in GNU Emacs with ffs</title><rect x="384" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(409,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">ffs</text></g></a><a href="/2026/talks/mobile" data-start="2026-12-12T19:20:00+0000" data-end="2026-12-12T19:30:00+0000" title="How I solved Org Mode's biggest mobile and collaboration problems" data-slug="mobile"><title>Sat 2:20- 2:30 How I solved Org Mode's biggest mobile and collaboration problems</title><rect x="439" y="20" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(450,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">mobile</text></g></a><a href="/2026/talks/hyperbole" data-start="2026-12-12T19:50:00+0000" data-end="2026-12-12T20:10:00+0000" title="Hyperbole, My Dear Watson" data-slug="hyperbole"><title>Sat 2:50- 3:10 Hyperbole, My Dear Watson</title><rect x="480" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(505,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">hyperbole</text></g></a><a href="/2026/talks/koutliner" data-start="2026-12-12T20:30:00+0000" data-end="2026-12-12T20:50:00+0000" title="Hyperbole Koutliner: The Best Autonumbered, Hyperlinking Outliner for Emacs" data-slug="koutliner"><title>Sat 3:30- 3:50 Hyperbole Koutliner: The Best Autonumbered, Hyperlinking Outliner for Emacs</title><rect x="535" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(560,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">koutliner</text></g></a><a href="/2026/talks/writing" data-start="2026-12-12T21:10:00+0000" data-end="2026-12-12T21:30:00+0000" title="Close the writing accountability gap with Emacs" data-slug="writing"><title>Sat 4:10- 4:30 Close the writing accountability gap with Emacs</title><rect x="590" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(615,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">writing</text></g></a><a href="/2026/talks/android" data-start="2026-12-12T21:50:00+0000" data-end="2026-12-12T22:00:00+0000" title="Emacs on Android - Emacs for the next 40 years" data-slug="android"><title>Sat 4:50- 5:00 Emacs on Android - Emacs for the next 40 years</title><rect x="645" y="20" opacity="0.5" width="13" height="54" 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)">android</text></g></a><a href="/2026/talks/sat-close" data-start="2026-12-12T22:20:00+0000" data-end="2026-12-12T22:30:00+0000" title="Saturday closing remarks / open session" data-slug="sat-close"><title>Sat 5:20- 5:30 Saturday closing remarks / open session</title><rect stroke-width="3" x="686" y="20" opacity="0.8" width="13" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(697,73)"><text font-weight="bold" fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sat-close</text></g></a><a href="/2026/talks/community" data-start="2026-12-12T15:30:00+0000" data-end="2026-12-12T16:30:00+0000" title="[Panel] Improving the Emacs Community: Onboarding, Participation, and Growth" data-slug="community"><title>Sat 10:30-11:30 [Panel] Improving the Emacs Community: Onboarding, Participation, and Growth</title><rect x="123" y="75" opacity="0.5" width="82" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(203,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">community</text></g></a><a href="/2026/talks/portable" data-start="2026-12-12T18:00:00+0000" data-end="2026-12-12T18:15:00+0000" title="Emacs as my portable user space across operating platforms" data-slug="portable"><title>Sat 1:00- 1:15 Emacs as my portable user space across operating platforms</title><rect x="329" y="75" opacity="0.5" width="20" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(347,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">portable</text></g></a><a href="/2026/talks/os" data-start="2026-12-12T18:35:00+0000" data-end="2026-12-12T18:55:00+0000" title="Emacs everywhere: A fun romp through esoteric operating systems" data-slug="os"><title>Sat 1:35- 1:55 Emacs everywhere: A fun romp through esoteric operating systems</title><rect x="377" y="75" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(402,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">os</text></g></a><a href="/2026/talks/cadet" data-start="2026-12-12T19:15:00+0000" data-end="2026-12-12T19:25:00+0000" title="My Space Cadet Deck - an Android Stream Deck replacement with deep Emacs integration" data-slug="cadet"><title>Sat 2:15- 2:25 My Space Cadet Deck - an Android Stream Deck replacement with deep Emacs integration</title><rect x="432" y="75" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(443,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">cadet</text></g></a><a href="/2026/talks/remoto" data-start="2026-12-12T19:45:00+0000" data-end="2026-12-12T20:05:00+0000" title="El Remoto: browse any GitHub repos without cloning them" data-slug="remoto"><title>Sat 2:45- 3:05 El Remoto: browse any GitHub repos without cloning them</title><rect x="473" y="75" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(498,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">remoto</text></g></a><a href="/2026/talks/guile" data-start="2026-12-12T20:25:00+0000" data-end="2026-12-12T20:45:00+0000" title="æmacs: having a hoot with a guile emacs" data-slug="guile"><title>Sat 3:25- 3:45 æmacs: having a hoot with a guile emacs</title><rect x="528" y="75" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(553,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">guile</text></g></a><a href="/2026/talks/virus" data-start="2026-12-12T21:05:00+0000" data-end="2026-12-12T21:25:00+0000" title="It's Probably Not a Virus" data-slug="virus"><title>Sat 4:05- 4:25 It's Probably Not a Virus</title><rect x="583" y="75" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(608,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">virus</text></g></a><g transform="translate(0,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T14:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">9 AM EST</text></g><g transform="translate(82,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T15:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">10 AM EST</text></g><g transform="translate(164,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T16:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">11 AM EST</text></g><g transform="translate(247,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T17:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">12 PM EST</text></g><g transform="translate(329,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T18:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">1 PM EST</text></g><g transform="translate(411,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T19:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">2 PM EST</text></g><g transform="translate(494,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T20:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">3 PM EST</text></g><g transform="translate(576,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T21:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">4 PM EST</text></g><g transform="translate(658,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T22:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">5 PM EST</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 data-start="2026-12-12T14:00:00+0000" class="day-label" font-size="10" fill="black" y="17" x="3">Saturday</text><a href="/2026/talks/sat-open" data-start="2026-12-12T14:00:00+0000" data-end="2026-12-12T14:10:00+0000" title="Saturday opening remarks" data-slug="sat-open"><title>Sat 9:00- 9:10 Saturday opening remarks</title><rect x="0" y="20" opacity="0.5" width="13" height="54" 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="/2026/talks/planning" data-start="2026-12-12T14:10:00+0000" data-end="2026-12-12T14:30:00+0000" title="The Emacs Planning Habits of a Questionably Effective Person: My 40-year journey of planning with Emacs, Org Mode, paper journals, etc." data-slug="planning"><title>Sat 9:10- 9:30 The Emacs Planning Habits of a Questionably Effective Person: My 40-year journey of planning with Emacs, Org Mode, paper journals, etc.</title><rect x="13" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(38,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">planning</text></g></a><a href="/2026/talks/listen" data-start="2026-12-12T14:50:00+0000" data-end="2026-12-12T15:10:00+0000" title="Emacslisten: Controlling Emacs by voice" data-slug="listen"><title>Sat 9:50-10:10 Emacslisten: Controlling Emacs by voice</title><rect x="68" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(93,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">listen</text></g></a><a href="/2026/talks/emacspeak" data-start="2026-12-12T15:30:00+0000" data-end="2026-12-12T16:00:00+0000" title="Multi-dimensional information processing with Emacs and Emacspeak: a blind man's perspective" data-slug="emacspeak"><title>Sat 10:30-11:00 Multi-dimensional information processing with Emacs and Emacspeak: a blind man's perspective</title><rect x="123" y="20" opacity="0.5" width="41" height="54" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(162,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">emacspeak</text></g></a><a href="/2026/talks/ltx-talk" data-start="2026-12-12T16:10:00+0000" data-end="2026-12-12T16:30:00+0000" title="ltx-talk: Accessible presentations with ox-beamer" data-slug="ltx-talk"><title>Sat 11:10-11:30 ltx-talk: Accessible presentations with ox-beamer</title><rect x="178" y="20" opacity="0.5" width="27" height="54" 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)">ltx-talk</text></g></a><a href="/2026/talks/plots" data-start="2026-12-12T18:00:00+0000" data-end="2026-12-12T18:20:00+0000" title="Plots with ROOTs: Resilient data visualization with Emacs, Org and gnuplot" data-slug="plots"><title>Sat 1:00- 1:20 Plots with ROOTs: Resilient data visualization with Emacs, Org and gnuplot</title><rect x="329" y="20" opacity="0.5" width="27" height="54" 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)">plots</text></g></a><a href="/2026/talks/tasks" data-start="2026-12-12T18:40:00+0000" data-end="2026-12-12T19:00:00+0000" title="Personal task management under stress (with Org mode)" data-slug="tasks"><title>Sat 1:40- 2:00 Personal task management under stress (with Org mode)</title><rect x="384" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(409,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">tasks</text></g></a><a href="/2026/talks/mobile" data-start="2026-12-12T19:20:00+0000" data-end="2026-12-12T19:30:00+0000" title="How I solved Org Mode's biggest mobile and collaboration problems" data-slug="mobile"><title>Sat 2:20- 2:30 How I solved Org Mode's biggest mobile and collaboration problems</title><rect x="439" y="20" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(450,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">mobile</text></g></a><a href="/2026/talks/hyperbole" data-start="2026-12-12T19:50:00+0000" data-end="2026-12-12T20:10:00+0000" title="Hyperbole, My Dear Watson" data-slug="hyperbole"><title>Sat 2:50- 3:10 Hyperbole, My Dear Watson</title><rect x="480" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(505,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">hyperbole</text></g></a><a href="/2026/talks/koutliner" data-start="2026-12-12T20:30:00+0000" data-end="2026-12-12T20:50:00+0000" title="Hyperbole Koutliner: The Best Autonumbered, Hyperlinking Outliner for Emacs" data-slug="koutliner"><title>Sat 3:30- 3:50 Hyperbole Koutliner: The Best Autonumbered, Hyperlinking Outliner for Emacs</title><rect x="535" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(560,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">koutliner</text></g></a><a href="/2026/talks/writing" data-start="2026-12-12T21:10:00+0000" data-end="2026-12-12T21:30:00+0000" title="Close the writing accountability gap with Emacs" data-slug="writing"><title>Sat 4:10- 4:30 Close the writing accountability gap with Emacs</title><rect x="590" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(615,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">writing</text></g></a><a href="/2026/talks/sat-close" data-start="2026-12-12T21:50:00+0000" data-end="2026-12-12T22:00:00+0000" title="Saturday closing remarks / open session" data-slug="sat-close"><title>Sat 4:50- 5:00 Saturday closing remarks / open session</title><rect stroke-width="3" x="645" y="20" opacity="0.8" width="13" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(656,73)"><text font-weight="bold" fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sat-close</text></g></a><a href="/2026/talks/community" data-start="2026-12-12T15:30:00+0000" data-end="2026-12-12T16:30:00+0000" title="[Panel] Improving the Emacs Community: Onboarding, Participation, and Growth" data-slug="community"><title>Sat 10:30-11:30 [Panel] Improving the Emacs Community: Onboarding, Participation, and Growth</title><rect x="123" y="75" opacity="0.5" width="82" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(203,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">community</text></g></a><a href="/2026/talks/portable" data-start="2026-12-12T18:00:00+0000" data-end="2026-12-12T18:15:00+0000" title="Emacs as my portable user space across operating platforms" data-slug="portable"><title>Sat 1:00- 1:15 Emacs as my portable user space across operating platforms</title><rect x="329" y="75" opacity="0.5" width="20" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(347,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">portable</text></g></a><a href="/2026/talks/os" data-start="2026-12-12T18:35:00+0000" data-end="2026-12-12T18:55:00+0000" title="Emacs everywhere: A fun romp through esoteric operating systems" data-slug="os"><title>Sat 1:35- 1:55 Emacs everywhere: A fun romp through esoteric operating systems</title><rect x="377" y="75" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(402,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">os</text></g></a><a href="/2026/talks/cadet" data-start="2026-12-12T19:15:00+0000" data-end="2026-12-12T19:25:00+0000" title="My Space Cadet Deck - an Android Stream Deck replacement with deep Emacs integration" data-slug="cadet"><title>Sat 2:15- 2:25 My Space Cadet Deck - an Android Stream Deck replacement with deep Emacs integration</title><rect x="432" y="75" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(443,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">cadet</text></g></a><a href="/2026/talks/remoto" data-start="2026-12-12T19:45:00+0000" data-end="2026-12-12T20:05:00+0000" title="El Remoto: browse any GitHub repos without cloning them" data-slug="remoto"><title>Sat 2:45- 3:05 El Remoto: browse any GitHub repos without cloning them</title><rect x="473" y="75" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(498,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">remoto</text></g></a><a href="/2026/talks/guile" data-start="2026-12-12T20:25:00+0000" data-end="2026-12-12T20:45:00+0000" title="æmacs: having a hoot with a guile emacs" data-slug="guile"><title>Sat 3:25- 3:45 æmacs: having a hoot with a guile emacs</title><rect x="528" y="75" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(553,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">guile</text></g></a><a href="/2026/talks/virus" data-start="2026-12-12T21:05:00+0000" data-end="2026-12-12T21:25:00+0000" title="It's Probably Not a Virus" data-slug="virus"><title>Sat 4:05- 4:25 It's Probably Not a Virus</title><rect x="583" y="75" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(608,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">virus</text></g></a><g transform="translate(0,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T14:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">9 AM EST</text></g><g transform="translate(82,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T15:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">10 AM EST</text></g><g transform="translate(164,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T16:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">11 AM EST</text></g><g transform="translate(247,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T17:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">12 PM EST</text></g><g transform="translate(329,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T18:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">1 PM EST</text></g><g transform="translate(411,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T19:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">2 PM EST</text></g><g transform="translate(494,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T20:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">3 PM EST</text></g><g transform="translate(576,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T21:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">4 PM EST</text></g><g transform="translate(658,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T22:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">5 PM EST</text></g></svg> </div> [[!toc ]] @@ -9,7 +9,7 @@ Format: 10-min talk ; Q&A: BigBlueButton conference room <https://media.emacsc Etherpad: <https://pad.emacsconf.org/2026-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="2026-12-12T22:20:00Z" end="2026-12-12T22:30:00Z"><div class="conf-time">Saturday, Dec 12 2026, ~5:20 PM - 5:30 PM EST (US/Eastern)</div><div class="others"><div>which is the same as:</div>Saturday, Dec 12 2026, ~4:20 PM - 4:30 PM CST (US/Central)<br />Saturday, Dec 12 2026, ~3:20 PM - 3:30 PM MST (US/Mountain)<br />Saturday, Dec 12 2026, ~2:20 PM - 2:30 PM PST (US/Pacific)<br />Saturday, Dec 12 2026, ~10:20 PM - 10:30 PM UTC <br />Saturday, Dec 12 2026, ~11:20 PM - 11:30 PM CET (Europe/Paris)<br />Sunday, Dec 13 2026, ~12:20 AM - 12:30 AM EET (Europe/Athens)<br />Sunday, Dec 13 2026, ~3:50 AM - 4:00 AM IST (Asia/Kolkata)<br />Sunday, Dec 13 2026, ~6:20 AM - 6:30 AM +08 (Asia/Singapore)<br />Sunday, Dec 13 2026, ~7:20 AM - 7:30 AM JST (Asia/Tokyo)</div></div><div><strong><a href="/2026/watch/gen/">Find out how to watch and participate</a></strong></div> +<div>Times in different time zones:</div><div class="times" start="2026-12-12T21:50:00Z" end="2026-12-12T22:00:00Z"><div class="conf-time">Saturday, Dec 12 2026, ~4:50 PM - 5:00 PM EST (US/Eastern)</div><div class="others"><div>which is the same as:</div>Saturday, Dec 12 2026, ~3:50 PM - 4:00 PM CST (US/Central)<br />Saturday, Dec 12 2026, ~2:50 PM - 3:00 PM MST (US/Mountain)<br />Saturday, Dec 12 2026, ~1:50 PM - 2:00 PM PST (US/Pacific)<br />Saturday, Dec 12 2026, ~9:50 PM - 10:00 PM UTC <br />Saturday, Dec 12 2026, ~10:50 PM - 11:00 PM CET (Europe/Paris)<br />Saturday, Dec 12 2026, ~11:50 PM - 12:00 AM EET (Europe/Athens)<br />Sunday, Dec 13 2026, ~3:20 AM - 3:30 AM IST (Asia/Kolkata)<br />Sunday, Dec 13 2026, ~5:50 AM - 6:00 AM +08 (Asia/Singapore)<br />Sunday, Dec 13 2026, ~6:50 AM - 7:00 AM JST (Asia/Tokyo)</div></div><div><strong><a href="/2026/watch/gen/">Find out how to watch and participate</a></strong></div> diff --git a/2026/info/sat-close-nav.md b/2026/info/sat-close-nav.md index bb5bf51f..8b1c6bb4 100644 --- a/2026/info/sat-close-nav.md +++ b/2026/info/sat-close-nav.md @@ -1,7 +1,7 @@ <div class="talk-nav"> Back to the [[talks]] -Previous by time: <a href="/2026/talks/android">Emacs on Android - Emacs for the next 40 years</a> +Previous by time: <a href="/2026/talks/writing">Close the writing accountability gap with Emacs</a> Next by time: <a href="/2026/talks/sun-open">Sunday opening remarks</a> Track: <span class="sched-track General">General</span> - <strong><a href="https://emacsconf.org/2026/watch/gen">Watch</a></strong> </div> diff --git a/2026/info/sat-open-before.md b/2026/info/sat-open-before.md index cdf89ab6..eddca4dd 100644 --- a/2026/info/sat-open-before.md +++ b/2026/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 2026-12-12. 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 data-start="2026-12-12T14:00:00+0000" class="day-label" font-size="10" fill="black" y="17" x="3">Saturday</text><a href="/2026/talks/sat-open" data-start="2026-12-12T14:00:00+0000" data-end="2026-12-12T14:10:00+0000" title="Saturday opening remarks" data-slug="sat-open"><title>Sat 9:00- 9:10 Saturday opening remarks</title><rect stroke-width="3" x="0" y="20" opacity="0.8" width="13" height="54" 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="/2026/talks/planning" data-start="2026-12-12T14:10:00+0000" data-end="2026-12-12T14:30:00+0000" title="The Emacs Planning Habits of a Questionably Effective Person: My 40-year journey of planning with Emacs, Org Mode, paper journals, etc." data-slug="planning"><title>Sat 9:10- 9:30 The Emacs Planning Habits of a Questionably Effective Person: My 40-year journey of planning with Emacs, Org Mode, paper journals, etc.</title><rect x="13" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(38,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">planning</text></g></a><a href="/2026/talks/listen" data-start="2026-12-12T14:50:00+0000" data-end="2026-12-12T15:10:00+0000" title="Controlling Emacs by voice using Emacslisten" data-slug="listen"><title>Sat 9:50-10:10 Controlling Emacs by voice using Emacslisten</title><rect x="68" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(93,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">listen</text></g></a><a href="/2026/talks/emacspeak" data-start="2026-12-12T15:30:00+0000" data-end="2026-12-12T16:00:00+0000" title="Multi-dimensional information processing with Emacs and Emacspeak: a blind man's perspective" data-slug="emacspeak"><title>Sat 10:30-11:00 Multi-dimensional information processing with Emacs and Emacspeak: a blind man's perspective</title><rect x="123" y="20" opacity="0.5" width="41" height="54" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(162,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">emacspeak</text></g></a><a href="/2026/talks/ltx-talk" data-start="2026-12-12T16:10:00+0000" data-end="2026-12-12T16:30:00+0000" title="ltx-talk: Accessible presentations with ox-beamer" data-slug="ltx-talk"><title>Sat 11:10-11:30 ltx-talk: Accessible presentations with ox-beamer</title><rect x="178" y="20" opacity="0.5" width="27" height="54" 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)">ltx-talk</text></g></a><a href="/2026/talks/plots" data-start="2026-12-12T18:00:00+0000" data-end="2026-12-12T18:20:00+0000" title="Plots with ROOTs: Resilient data visualization with Emacs, Org and gnuplot" data-slug="plots"><title>Sat 1:00- 1:20 Plots with ROOTs: Resilient data visualization with Emacs, Org and gnuplot</title><rect x="329" y="20" opacity="0.5" width="27" height="54" 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)">plots</text></g></a><a href="/2026/talks/ffs" data-start="2026-12-12T18:40:00+0000" data-end="2026-12-12T19:00:00+0000" title="Plain text presentations in GNU Emacs with ffs" data-slug="ffs"><title>Sat 1:40- 2:00 Plain text presentations in GNU Emacs with ffs</title><rect x="384" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(409,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">ffs</text></g></a><a href="/2026/talks/mobile" data-start="2026-12-12T19:20:00+0000" data-end="2026-12-12T19:30:00+0000" title="How I solved Org Mode's biggest mobile and collaboration problems" data-slug="mobile"><title>Sat 2:20- 2:30 How I solved Org Mode's biggest mobile and collaboration problems</title><rect x="439" y="20" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(450,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">mobile</text></g></a><a href="/2026/talks/hyperbole" data-start="2026-12-12T19:50:00+0000" data-end="2026-12-12T20:10:00+0000" title="Hyperbole, My Dear Watson" data-slug="hyperbole"><title>Sat 2:50- 3:10 Hyperbole, My Dear Watson</title><rect x="480" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(505,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">hyperbole</text></g></a><a href="/2026/talks/koutliner" data-start="2026-12-12T20:30:00+0000" data-end="2026-12-12T20:50:00+0000" title="Hyperbole Koutliner: The Best Autonumbered, Hyperlinking Outliner for Emacs" data-slug="koutliner"><title>Sat 3:30- 3:50 Hyperbole Koutliner: The Best Autonumbered, Hyperlinking Outliner for Emacs</title><rect x="535" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(560,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">koutliner</text></g></a><a href="/2026/talks/writing" data-start="2026-12-12T21:10:00+0000" data-end="2026-12-12T21:30:00+0000" title="Close the writing accountability gap with Emacs" data-slug="writing"><title>Sat 4:10- 4:30 Close the writing accountability gap with Emacs</title><rect x="590" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(615,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">writing</text></g></a><a href="/2026/talks/android" data-start="2026-12-12T21:50:00+0000" data-end="2026-12-12T22:00:00+0000" title="Emacs on Android - Emacs for the next 40 years" data-slug="android"><title>Sat 4:50- 5:00 Emacs on Android - Emacs for the next 40 years</title><rect x="645" y="20" opacity="0.5" width="13" height="54" 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)">android</text></g></a><a href="/2026/talks/sat-close" data-start="2026-12-12T22:20:00+0000" data-end="2026-12-12T22:30:00+0000" title="Saturday closing remarks / open session" data-slug="sat-close"><title>Sat 5:20- 5:30 Saturday closing remarks / open session</title><rect x="686" y="20" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(697,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sat-close</text></g></a><a href="/2026/talks/community" data-start="2026-12-12T15:30:00+0000" data-end="2026-12-12T16:30:00+0000" title="[Panel] Improving the Emacs Community: Onboarding, Participation, and Growth" data-slug="community"><title>Sat 10:30-11:30 [Panel] Improving the Emacs Community: Onboarding, Participation, and Growth</title><rect x="123" y="75" opacity="0.5" width="82" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(203,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">community</text></g></a><a href="/2026/talks/portable" data-start="2026-12-12T18:00:00+0000" data-end="2026-12-12T18:15:00+0000" title="Emacs as my portable user space across operating platforms" data-slug="portable"><title>Sat 1:00- 1:15 Emacs as my portable user space across operating platforms</title><rect x="329" y="75" opacity="0.5" width="20" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(347,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">portable</text></g></a><a href="/2026/talks/os" data-start="2026-12-12T18:35:00+0000" data-end="2026-12-12T18:55:00+0000" title="Emacs everywhere: A fun romp through esoteric operating systems" data-slug="os"><title>Sat 1:35- 1:55 Emacs everywhere: A fun romp through esoteric operating systems</title><rect x="377" y="75" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(402,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">os</text></g></a><a href="/2026/talks/cadet" data-start="2026-12-12T19:15:00+0000" data-end="2026-12-12T19:25:00+0000" title="My Space Cadet Deck - an Android Stream Deck replacement with deep Emacs integration" data-slug="cadet"><title>Sat 2:15- 2:25 My Space Cadet Deck - an Android Stream Deck replacement with deep Emacs integration</title><rect x="432" y="75" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(443,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">cadet</text></g></a><a href="/2026/talks/remoto" data-start="2026-12-12T19:45:00+0000" data-end="2026-12-12T20:05:00+0000" title="El Remoto: browse any GitHub repos without cloning them" data-slug="remoto"><title>Sat 2:45- 3:05 El Remoto: browse any GitHub repos without cloning them</title><rect x="473" y="75" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(498,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">remoto</text></g></a><a href="/2026/talks/guile" data-start="2026-12-12T20:25:00+0000" data-end="2026-12-12T20:45:00+0000" title="æmacs: having a hoot with a guile emacs" data-slug="guile"><title>Sat 3:25- 3:45 æmacs: having a hoot with a guile emacs</title><rect x="528" y="75" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(553,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">guile</text></g></a><a href="/2026/talks/virus" data-start="2026-12-12T21:05:00+0000" data-end="2026-12-12T21:25:00+0000" title="It's Probably Not a Virus" data-slug="virus"><title>Sat 4:05- 4:25 It's Probably Not a Virus</title><rect x="583" y="75" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(608,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">virus</text></g></a><g transform="translate(0,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T14:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">9 AM EST</text></g><g transform="translate(82,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T15:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">10 AM EST</text></g><g transform="translate(164,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T16:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">11 AM EST</text></g><g transform="translate(247,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T17:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">12 PM EST</text></g><g transform="translate(329,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T18:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">1 PM EST</text></g><g transform="translate(411,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T19:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">2 PM EST</text></g><g transform="translate(494,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T20:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">3 PM EST</text></g><g transform="translate(576,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T21:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">4 PM EST</text></g><g transform="translate(658,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T22:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">5 PM EST</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 data-start="2026-12-12T14:00:00+0000" class="day-label" font-size="10" fill="black" y="17" x="3">Saturday</text><a href="/2026/talks/sat-open" data-start="2026-12-12T14:00:00+0000" data-end="2026-12-12T14:10:00+0000" title="Saturday opening remarks" data-slug="sat-open"><title>Sat 9:00- 9:10 Saturday opening remarks</title><rect stroke-width="3" x="0" y="20" opacity="0.8" width="13" height="54" 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="/2026/talks/planning" data-start="2026-12-12T14:10:00+0000" data-end="2026-12-12T14:30:00+0000" title="The Emacs Planning Habits of a Questionably Effective Person: My 40-year journey of planning with Emacs, Org Mode, paper journals, etc." data-slug="planning"><title>Sat 9:10- 9:30 The Emacs Planning Habits of a Questionably Effective Person: My 40-year journey of planning with Emacs, Org Mode, paper journals, etc.</title><rect x="13" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(38,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">planning</text></g></a><a href="/2026/talks/listen" data-start="2026-12-12T14:50:00+0000" data-end="2026-12-12T15:10:00+0000" title="Emacslisten: Controlling Emacs by voice" data-slug="listen"><title>Sat 9:50-10:10 Emacslisten: Controlling Emacs by voice</title><rect x="68" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(93,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">listen</text></g></a><a href="/2026/talks/emacspeak" data-start="2026-12-12T15:30:00+0000" data-end="2026-12-12T16:00:00+0000" title="Multi-dimensional information processing with Emacs and Emacspeak: a blind man's perspective" data-slug="emacspeak"><title>Sat 10:30-11:00 Multi-dimensional information processing with Emacs and Emacspeak: a blind man's perspective</title><rect x="123" y="20" opacity="0.5" width="41" height="54" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(162,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">emacspeak</text></g></a><a href="/2026/talks/ltx-talk" data-start="2026-12-12T16:10:00+0000" data-end="2026-12-12T16:30:00+0000" title="ltx-talk: Accessible presentations with ox-beamer" data-slug="ltx-talk"><title>Sat 11:10-11:30 ltx-talk: Accessible presentations with ox-beamer</title><rect x="178" y="20" opacity="0.5" width="27" height="54" 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)">ltx-talk</text></g></a><a href="/2026/talks/plots" data-start="2026-12-12T18:00:00+0000" data-end="2026-12-12T18:20:00+0000" title="Plots with ROOTs: Resilient data visualization with Emacs, Org and gnuplot" data-slug="plots"><title>Sat 1:00- 1:20 Plots with ROOTs: Resilient data visualization with Emacs, Org and gnuplot</title><rect x="329" y="20" opacity="0.5" width="27" height="54" 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)">plots</text></g></a><a href="/2026/talks/tasks" data-start="2026-12-12T18:40:00+0000" data-end="2026-12-12T19:00:00+0000" title="Personal task management under stress (with Org mode)" data-slug="tasks"><title>Sat 1:40- 2:00 Personal task management under stress (with Org mode)</title><rect x="384" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(409,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">tasks</text></g></a><a href="/2026/talks/mobile" data-start="2026-12-12T19:20:00+0000" data-end="2026-12-12T19:30:00+0000" title="How I solved Org Mode's biggest mobile and collaboration problems" data-slug="mobile"><title>Sat 2:20- 2:30 How I solved Org Mode's biggest mobile and collaboration problems</title><rect x="439" y="20" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(450,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">mobile</text></g></a><a href="/2026/talks/hyperbole" data-start="2026-12-12T19:50:00+0000" data-end="2026-12-12T20:10:00+0000" title="Hyperbole, My Dear Watson" data-slug="hyperbole"><title>Sat 2:50- 3:10 Hyperbole, My Dear Watson</title><rect x="480" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(505,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">hyperbole</text></g></a><a href="/2026/talks/koutliner" data-start="2026-12-12T20:30:00+0000" data-end="2026-12-12T20:50:00+0000" title="Hyperbole Koutliner: The Best Autonumbered, Hyperlinking Outliner for Emacs" data-slug="koutliner"><title>Sat 3:30- 3:50 Hyperbole Koutliner: The Best Autonumbered, Hyperlinking Outliner for Emacs</title><rect x="535" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(560,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">koutliner</text></g></a><a href="/2026/talks/writing" data-start="2026-12-12T21:10:00+0000" data-end="2026-12-12T21:30:00+0000" title="Close the writing accountability gap with Emacs" data-slug="writing"><title>Sat 4:10- 4:30 Close the writing accountability gap with Emacs</title><rect x="590" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(615,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">writing</text></g></a><a href="/2026/talks/sat-close" data-start="2026-12-12T21:50:00+0000" data-end="2026-12-12T22:00:00+0000" title="Saturday closing remarks / open session" data-slug="sat-close"><title>Sat 4:50- 5:00 Saturday closing remarks / open session</title><rect x="645" y="20" opacity="0.5" width="13" height="54" 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)">sat-close</text></g></a><a href="/2026/talks/community" data-start="2026-12-12T15:30:00+0000" data-end="2026-12-12T16:30:00+0000" title="[Panel] Improving the Emacs Community: Onboarding, Participation, and Growth" data-slug="community"><title>Sat 10:30-11:30 [Panel] Improving the Emacs Community: Onboarding, Participation, and Growth</title><rect x="123" y="75" opacity="0.5" width="82" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(203,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">community</text></g></a><a href="/2026/talks/portable" data-start="2026-12-12T18:00:00+0000" data-end="2026-12-12T18:15:00+0000" title="Emacs as my portable user space across operating platforms" data-slug="portable"><title>Sat 1:00- 1:15 Emacs as my portable user space across operating platforms</title><rect x="329" y="75" opacity="0.5" width="20" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(347,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">portable</text></g></a><a href="/2026/talks/os" data-start="2026-12-12T18:35:00+0000" data-end="2026-12-12T18:55:00+0000" title="Emacs everywhere: A fun romp through esoteric operating systems" data-slug="os"><title>Sat 1:35- 1:55 Emacs everywhere: A fun romp through esoteric operating systems</title><rect x="377" y="75" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(402,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">os</text></g></a><a href="/2026/talks/cadet" data-start="2026-12-12T19:15:00+0000" data-end="2026-12-12T19:25:00+0000" title="My Space Cadet Deck - an Android Stream Deck replacement with deep Emacs integration" data-slug="cadet"><title>Sat 2:15- 2:25 My Space Cadet Deck - an Android Stream Deck replacement with deep Emacs integration</title><rect x="432" y="75" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(443,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">cadet</text></g></a><a href="/2026/talks/remoto" data-start="2026-12-12T19:45:00+0000" data-end="2026-12-12T20:05:00+0000" title="El Remoto: browse any GitHub repos without cloning them" data-slug="remoto"><title>Sat 2:45- 3:05 El Remoto: browse any GitHub repos without cloning them</title><rect x="473" y="75" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(498,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">remoto</text></g></a><a href="/2026/talks/guile" data-start="2026-12-12T20:25:00+0000" data-end="2026-12-12T20:45:00+0000" title="æmacs: having a hoot with a guile emacs" data-slug="guile"><title>Sat 3:25- 3:45 æmacs: having a hoot with a guile emacs</title><rect x="528" y="75" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(553,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">guile</text></g></a><a href="/2026/talks/virus" data-start="2026-12-12T21:05:00+0000" data-end="2026-12-12T21:25:00+0000" title="It's Probably Not a Virus" data-slug="virus"><title>Sat 4:05- 4:25 It's Probably Not a Virus</title><rect x="583" y="75" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(608,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">virus</text></g></a><g transform="translate(0,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T14:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">9 AM EST</text></g><g transform="translate(82,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T15:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">10 AM EST</text></g><g transform="translate(164,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T16:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">11 AM EST</text></g><g transform="translate(247,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T17:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">12 PM EST</text></g><g transform="translate(329,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T18:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">1 PM EST</text></g><g transform="translate(411,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T19:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">2 PM EST</text></g><g transform="translate(494,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T20:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">3 PM EST</text></g><g transform="translate(576,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T21:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">4 PM EST</text></g><g transform="translate(658,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T22:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">5 PM EST</text></g></svg> </div> [[!toc ]] diff --git a/2026/info/sun-close-before.md b/2026/info/sun-close-before.md index c5a1299d..14311210 100644 --- a/2026/info/sun-close-before.md +++ b/2026/info/sun-close-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 Sun 2026-12-13. Solid lines show talks with Q&A via BigBlueButton. Dashed lines show talks with Q&A via IRC or Etherpad.<div class="schedule-in-context schedule-svg-container" data-slug="sun-close"> -<svg width="700" height="150" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><title>Schedule for Sunday</title><rect width="700" height="150" x="0" y="0" fill="white"></rect><text data-start="2026-12-13T14:00:00+0000" class="day-label" font-size="10" fill="black" y="17" x="3">Sunday</text><a href="/2026/talks/sun-open" data-start="2026-12-13T14:00:00+0000" data-end="2026-12-13T14:10:00+0000" title="Sunday opening remarks" data-slug="sun-open"><title>Sun 9:00- 9:10 Sunday opening remarks</title><rect x="0" y="20" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(11,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sun-open</text></g></a><a href="/2026/talks/bone" data-start="2026-12-13T14:10:00+0000" data-end="2026-12-13T14:20:00+0000" title="BONE and gnaw.el: tracking what matters" data-slug="bone"><title>Sun 9:10- 9:20 BONE and gnaw.el: tracking what matters</title><rect x="13" y="20" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(24,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">bone</text></g></a><a href="/2026/talks/local" data-start="2026-12-13T14:40:00+0000" data-end="2026-12-13T14:55:00+0000" title="Local file history possibilities in Emacs" data-slug="local"><title>Sun 9:40- 9:55 Local file history possibilities in Emacs</title><rect x="54" y="20" opacity="0.5" width="20" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(72,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">local</text></g></a><a href="/2026/talks/hutch" data-start="2026-12-13T15:15:00+0000" data-end="2026-12-13T15:25:00+0000" title="hutch: code reviews for the mildly disenfranchised" data-slug="hutch"><title>Sun 10:15-10:25 hutch: code reviews for the mildly disenfranchised</title><rect x="102" y="20" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(113,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">hutch</text></g></a><a href="/2026/talks/team" data-start="2026-12-13T15:35:00+0000" data-end="2026-12-13T15:55:00+0000" title="Beyond the Chatbot: Team-Oriented AI in Emacs" data-slug="team"><title>Sun 10:35-10:55 Beyond the Chatbot: Team-Oriented AI in Emacs</title><rect x="130" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(155,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">team</text></g></a><a href="/2026/talks/compile" data-start="2026-12-13T16:15:00+0000" data-end="2026-12-13T16:35:00+0000" title="Beyond shell history: Saving compilation output in Emacs" data-slug="compile"><title>Sun 11:15-11:35 Beyond shell history: Saving compilation output in Emacs</title><rect x="185" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(210,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">compile</text></g></a><a href="/2026/talks/dnd" data-start="2026-12-13T18:00:00+0000" data-end="2026-12-13T18:20:00+0000" title="DnD and Org Roam: Becoming a Better DM with Emacs" data-slug="dnd"><title>Sun 1:00- 1:20 DnD and Org Roam: Becoming a Better DM with Emacs</title><rect x="329" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(354,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">dnd</text></g></a><a href="/2026/talks/bible" data-start="2026-12-13T18:30:00+0000" data-end="2026-12-13T18:50:00+0000" title="bible-gateway: A Two-Edged Sword in Emacs" data-slug="bible"><title>Sun 1:30- 1:50 bible-gateway: A Two-Edged Sword in Emacs</title><rect x="370" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(395,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">bible</text></g></a><a href="/2026/talks/svg" data-start="2026-12-13T19:10:00+0000" data-end="2026-12-13T19:30:00+0000" title="A (sort of) REPL for learning SVG" data-slug="svg"><title>Sun 2:10- 2:30 A (sort of) REPL for learning SVG</title><rect x="425" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(450,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">svg</text></g></a><a href="/2026/talks/align" data-start="2026-12-13T19:50:00+0000" data-end="2026-12-13T20:10:00+0000" title="Column-aligning text in Emacs" data-slug="align"><title>Sun 2:50- 3:10 Column-aligning text in Emacs</title><rect x="480" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(505,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">align</text></g></a><a href="/2026/talks/anju" data-start="2026-12-13T20:30:00+0000" data-end="2026-12-13T20:50:00+0000" title="Revisiting Emacs Mouse Interactions with Anju" data-slug="anju"><title>Sun 3:30- 3:50 Revisiting Emacs Mouse Interactions with Anju</title><rect x="535" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(560,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">anju</text></g></a><a href="/2026/talks/ghostel" data-start="2026-12-13T21:00:00+0000" data-end="2026-12-13T21:20:00+0000" title="Ghost in the Shell: a libghostty powered terminal for Emacs" data-slug="ghostel"><title>Sun 4:00- 4:20 Ghost in the Shell: a libghostty powered terminal for Emacs</title><rect x="576" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(601,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">ghostel</text></g></a><a href="/2026/talks/sun-close" data-start="2026-12-13T21:40:00+0000" data-end="2026-12-13T21:50:00+0000" title="Sunday closing remarks" data-slug="sun-close"><title>Sun 4:40- 4:50 Sunday closing remarks</title><rect stroke-width="3" x="631" y="20" opacity="0.8" width="13" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(642,73)"><text font-weight="bold" fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sun-close</text></g></a><a href="/2026/talks/prefix" data-start="2026-12-13T15:00:00+0000" data-end="2026-12-13T15:10:00+0000" title="prefix-tab-groups" data-slug="prefix"><title>Sun 10:00-10:10 prefix-tab-groups</title><rect x="82" y="75" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="5,5,5" fill="skyblue"></rect><g transform="translate(93,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">prefix</text></g></a><a href="/2026/talks/rau" data-start="2026-12-13T15:20:00+0000" data-end="2026-12-13T15:40:00+0000" title="Emacs as a Window Manager and concurrency" data-slug="rau"><title>Sun 10:20-10:40 Emacs as a Window Manager and concurrency</title><rect x="109" y="75" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(134,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">rau</text></g></a><a href="/2026/talks/babel" data-start="2026-12-13T16:00:00+0000" data-end="2026-12-13T16:10:00+0000" title="Org Babel everywhere" data-slug="babel"><title>Sun 11:00-11:10 Org Babel everywhere</title><rect x="164" y="75" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(175,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">babel</text></g></a><a href="/2026/talks/el-gpu" data-start="2026-12-13T16:30:00+0000" data-end="2026-12-13T16:50:00+0000" title="El-gpu and pix-el: GNU Emacs 2D and 3D game programming" data-slug="el-gpu"><title>Sun 11:30-11:50 El-gpu and pix-el: GNU Emacs 2D and 3D game programming</title><rect x="205" y="75" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(230,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">el-gpu</text></g></a><a href="/2026/talks/llms" data-start="2026-12-13T18:00:00+0000" data-end="2026-12-13T19:00:00+0000" title="[Panel] Emacs, LLMs, and Free Software" data-slug="llms"><title>Sun 1:00- 2:00 [Panel] Emacs, LLMs, and Free Software</title><rect x="329" y="75" opacity="0.5" width="82" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(409,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">llms</text></g></a><g transform="translate(0,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T14:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">9 AM EST</text></g><g transform="translate(82,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T15:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">10 AM EST</text></g><g transform="translate(164,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T16:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">11 AM EST</text></g><g transform="translate(247,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T17:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">12 PM EST</text></g><g transform="translate(329,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T18:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">1 PM EST</text></g><g transform="translate(411,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T19:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">2 PM EST</text></g><g transform="translate(494,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T20:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">3 PM EST</text></g><g transform="translate(576,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T21:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">4 PM EST</text></g><g transform="translate(658,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T22:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">5 PM EST</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 Sunday</title><rect width="700" height="150" x="0" y="0" fill="white"></rect><text data-start="2026-12-13T14:00:00+0000" class="day-label" font-size="10" fill="black" y="17" x="3">Sunday</text><a href="/2026/talks/sun-open" data-start="2026-12-13T14:00:00+0000" data-end="2026-12-13T14:10:00+0000" title="Sunday opening remarks" data-slug="sun-open"><title>Sun 9:00- 9:10 Sunday opening remarks</title><rect x="0" y="20" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(11,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sun-open</text></g></a><a href="/2026/talks/bone" data-start="2026-12-13T14:10:00+0000" data-end="2026-12-13T14:20:00+0000" title="BONE and gnaw.el: tracking what matters" data-slug="bone"><title>Sun 9:10- 9:20 BONE and gnaw.el: tracking what matters</title><rect x="13" y="20" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(24,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">bone</text></g></a><a href="/2026/talks/local" data-start="2026-12-13T14:40:00+0000" data-end="2026-12-13T14:55:00+0000" title="Local file history possibilities in Emacs" data-slug="local"><title>Sun 9:40- 9:55 Local file history possibilities in Emacs</title><rect x="54" y="20" opacity="0.5" width="20" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(72,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">local</text></g></a><a href="/2026/talks/hutch" data-start="2026-12-13T15:15:00+0000" data-end="2026-12-13T15:25:00+0000" title="hutch: code reviews for the mildly disenfranchised" data-slug="hutch"><title>Sun 10:15-10:25 hutch: code reviews for the mildly disenfranchised</title><rect x="102" y="20" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(113,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">hutch</text></g></a><a href="/2026/talks/team" data-start="2026-12-13T15:35:00+0000" data-end="2026-12-13T15:55:00+0000" title="Beyond the Chatbot: Team-Oriented AI in Emacs" data-slug="team"><title>Sun 10:35-10:55 Beyond the Chatbot: Team-Oriented AI in Emacs</title><rect x="130" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(155,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">team</text></g></a><a href="/2026/talks/compile" data-start="2026-12-13T16:15:00+0000" data-end="2026-12-13T16:35:00+0000" title="Beyond shell history: Saving compilation output in Emacs" data-slug="compile"><title>Sun 11:15-11:35 Beyond shell history: Saving compilation output in Emacs</title><rect x="185" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(210,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">compile</text></g></a><a href="/2026/talks/dnd" data-start="2026-12-13T18:00:00+0000" data-end="2026-12-13T18:20:00+0000" title="DnD and Org Roam: Becoming a Better DM with Emacs" data-slug="dnd"><title>Sun 1:00- 1:20 DnD and Org Roam: Becoming a Better DM with Emacs</title><rect x="329" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(354,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">dnd</text></g></a><a href="/2026/talks/bible" data-start="2026-12-13T18:30:00+0000" data-end="2026-12-13T18:50:00+0000" title="bible-gateway: A Two-Edged Sword in Emacs" data-slug="bible"><title>Sun 1:30- 1:50 bible-gateway: A Two-Edged Sword in Emacs</title><rect x="370" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(395,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">bible</text></g></a><a href="/2026/talks/ffs" data-start="2026-12-13T19:10:00+0000" data-end="2026-12-13T19:30:00+0000" title="Plain text presentations in GNU Emacs with ffs" data-slug="ffs"><title>Sun 2:10- 2:30 Plain text presentations in GNU Emacs with ffs</title><rect x="425" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(450,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">ffs</text></g></a><a href="/2026/talks/align" data-start="2026-12-13T19:50:00+0000" data-end="2026-12-13T20:10:00+0000" title="Column-aligning text in Emacs" data-slug="align"><title>Sun 2:50- 3:10 Column-aligning text in Emacs</title><rect x="480" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(505,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">align</text></g></a><a href="/2026/talks/anju" data-start="2026-12-13T20:30:00+0000" data-end="2026-12-13T20:50:00+0000" title="Revisiting Emacs Mouse Interactions with Anju" data-slug="anju"><title>Sun 3:30- 3:50 Revisiting Emacs Mouse Interactions with Anju</title><rect x="535" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(560,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">anju</text></g></a><a href="/2026/talks/android" data-start="2026-12-13T21:00:00+0000" data-end="2026-12-13T21:10:00+0000" title="Emacs on Android - Emacs for the next 40 years" data-slug="android"><title>Sun 4:00- 4:10 Emacs on Android - Emacs for the next 40 years</title><rect x="576" y="20" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(587,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">android</text></g></a><a href="/2026/talks/sun-close" data-start="2026-12-13T21:30:00+0000" data-end="2026-12-13T21:40:00+0000" title="Sunday closing remarks" data-slug="sun-close"><title>Sun 4:30- 4:40 Sunday closing remarks</title><rect stroke-width="3" x="617" y="20" opacity="0.8" width="13" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(628,73)"><text font-weight="bold" fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sun-close</text></g></a><a href="/2026/talks/prefix" data-start="2026-12-13T15:00:00+0000" data-end="2026-12-13T15:10:00+0000" title="prefix-tab-groups" data-slug="prefix"><title>Sun 10:00-10:10 prefix-tab-groups</title><rect x="82" y="75" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="5,5,5" fill="skyblue"></rect><g transform="translate(93,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">prefix</text></g></a><a href="/2026/talks/rau" data-start="2026-12-13T15:20:00+0000" data-end="2026-12-13T15:40:00+0000" title="Emacs as a Window Manager and concurrency" data-slug="rau"><title>Sun 10:20-10:40 Emacs as a Window Manager and concurrency</title><rect x="109" y="75" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(134,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">rau</text></g></a><a href="/2026/talks/babel" data-start="2026-12-13T16:00:00+0000" data-end="2026-12-13T16:10:00+0000" title="Org Babel everywhere" data-slug="babel"><title>Sun 11:00-11:10 Org Babel everywhere</title><rect x="164" y="75" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(175,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">babel</text></g></a><a href="/2026/talks/el-gpu" data-start="2026-12-13T16:30:00+0000" data-end="2026-12-13T16:50:00+0000" title="El-gpu and pix-el: GNU Emacs 2D and 3D game programming" data-slug="el-gpu"><title>Sun 11:30-11:50 El-gpu and pix-el: GNU Emacs 2D and 3D game programming</title><rect x="205" y="75" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(230,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">el-gpu</text></g></a><a href="/2026/talks/llms" data-start="2026-12-13T18:00:00+0000" data-end="2026-12-13T19:00:00+0000" title="[Panel] Emacs, LLMs, and Free Software" data-slug="llms"><title>Sun 1:00- 2:00 [Panel] Emacs, LLMs, and Free Software</title><rect x="329" y="75" opacity="0.5" width="82" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(409,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">llms</text></g></a><a href="/2026/talks/ghostel" data-start="2026-12-13T19:20:00+0000" data-end="2026-12-13T19:40:00+0000" title="Ghost in the Shell: a libghostty powered terminal for Emacs" data-slug="ghostel"><title>Sun 2:20- 2:40 Ghost in the Shell: a libghostty powered terminal for Emacs</title><rect x="439" y="75" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(464,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">ghostel</text></g></a><a href="/2026/talks/svg" data-start="2026-12-13T20:00:00+0000" data-end="2026-12-13T20:20:00+0000" title="A (sort of) REPL for learning SVG" data-slug="svg"><title>Sun 3:00- 3:20 A (sort of) REPL for learning SVG</title><rect x="494" y="75" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(519,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">svg</text></g></a><g transform="translate(0,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T14:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">9 AM EST</text></g><g transform="translate(82,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T15:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">10 AM EST</text></g><g transform="translate(164,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T16:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">11 AM EST</text></g><g transform="translate(247,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T17:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">12 PM EST</text></g><g transform="translate(329,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T18:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">1 PM EST</text></g><g transform="translate(411,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T19:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">2 PM EST</text></g><g transform="translate(494,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T20:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">3 PM EST</text></g><g transform="translate(576,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T21:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">4 PM EST</text></g><g transform="translate(658,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T22:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">5 PM EST</text></g></svg> </div> [[!toc ]] @@ -9,7 +9,7 @@ Format: 10-min talk ; Q&A: BigBlueButton conference room <https://media.emacsc Etherpad: <https://pad.emacsconf.org/2026-sun-close> Discuss on IRC: [#emacsconf](https://chat.emacsconf.org/?join=emacsconf) Status: Ready to stream -<div>Times in different time zones:</div><div class="times" start="2026-12-13T21:40:00Z" end="2026-12-13T21:50:00Z"><div class="conf-time">Sunday, Dec 13 2026, ~4:40 PM - 4:50 PM EST (US/Eastern)</div><div class="others"><div>which is the same as:</div>Sunday, Dec 13 2026, ~3:40 PM - 3:50 PM CST (US/Central)<br />Sunday, Dec 13 2026, ~2:40 PM - 2:50 PM MST (US/Mountain)<br />Sunday, Dec 13 2026, ~1:40 PM - 1:50 PM PST (US/Pacific)<br />Sunday, Dec 13 2026, ~9:40 PM - 9:50 PM UTC <br />Sunday, Dec 13 2026, ~10:40 PM - 10:50 PM CET (Europe/Paris)<br />Sunday, Dec 13 2026, ~11:40 PM - 11:50 PM EET (Europe/Athens)<br />Monday, Dec 14 2026, ~3:10 AM - 3:20 AM IST (Asia/Kolkata)<br />Monday, Dec 14 2026, ~5:40 AM - 5:50 AM +08 (Asia/Singapore)<br />Monday, Dec 14 2026, ~6:40 AM - 6:50 AM JST (Asia/Tokyo)</div></div><div><strong><a href="/2026/watch/gen/">Find out how to watch and participate</a></strong></div> +<div>Times in different time zones:</div><div class="times" start="2026-12-13T21:30:00Z" end="2026-12-13T21:40:00Z"><div class="conf-time">Sunday, Dec 13 2026, ~4:30 PM - 4:40 PM EST (US/Eastern)</div><div class="others"><div>which is the same as:</div>Sunday, Dec 13 2026, ~3:30 PM - 3:40 PM CST (US/Central)<br />Sunday, Dec 13 2026, ~2:30 PM - 2:40 PM MST (US/Mountain)<br />Sunday, Dec 13 2026, ~1:30 PM - 1:40 PM PST (US/Pacific)<br />Sunday, Dec 13 2026, ~9:30 PM - 9:40 PM UTC <br />Sunday, Dec 13 2026, ~10:30 PM - 10:40 PM CET (Europe/Paris)<br />Sunday, Dec 13 2026, ~11:30 PM - 11:40 PM EET (Europe/Athens)<br />Monday, Dec 14 2026, ~3:00 AM - 3:10 AM IST (Asia/Kolkata)<br />Monday, Dec 14 2026, ~5:30 AM - 5:40 AM +08 (Asia/Singapore)<br />Monday, Dec 14 2026, ~6:30 AM - 6:40 AM JST (Asia/Tokyo)</div></div><div><strong><a href="/2026/watch/gen/">Find out how to watch and participate</a></strong></div> diff --git a/2026/info/sun-close-nav.md b/2026/info/sun-close-nav.md index cf769838..eb969a81 100644 --- a/2026/info/sun-close-nav.md +++ b/2026/info/sun-close-nav.md @@ -1,6 +1,6 @@ <div class="talk-nav"> Back to the [[talks]] -Previous by time: <a href="/2026/talks/ghostel">Ghost in the Shell: a libghostty powered terminal for Emacs</a> +Previous by time: <a href="/2026/talks/android">Emacs on Android - Emacs for the next 40 years</a> Track: <span class="sched-track General">General</span> - <strong><a href="https://emacsconf.org/2026/watch/gen">Watch</a></strong> </div> diff --git a/2026/info/sun-open-before.md b/2026/info/sun-open-before.md index be5b43ef..87a1ad0b 100644 --- a/2026/info/sun-open-before.md +++ b/2026/info/sun-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 Sun 2026-12-13. Solid lines show talks with Q&A via BigBlueButton. Dashed lines show talks with Q&A via IRC or Etherpad.<div class="schedule-in-context schedule-svg-container" data-slug="sun-open"> -<svg width="700" height="150" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><title>Schedule for Sunday</title><rect width="700" height="150" x="0" y="0" fill="white"></rect><text data-start="2026-12-13T14:00:00+0000" class="day-label" font-size="10" fill="black" y="17" x="3">Sunday</text><a href="/2026/talks/sun-open" data-start="2026-12-13T14:00:00+0000" data-end="2026-12-13T14:10:00+0000" title="Sunday opening remarks" data-slug="sun-open"><title>Sun 9:00- 9:10 Sunday opening remarks</title><rect stroke-width="3" x="0" y="20" opacity="0.8" width="13" height="54" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(11,73)"><text font-weight="bold" fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sun-open</text></g></a><a href="/2026/talks/bone" data-start="2026-12-13T14:10:00+0000" data-end="2026-12-13T14:20:00+0000" title="BONE and gnaw.el: tracking what matters" data-slug="bone"><title>Sun 9:10- 9:20 BONE and gnaw.el: tracking what matters</title><rect x="13" y="20" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(24,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">bone</text></g></a><a href="/2026/talks/local" data-start="2026-12-13T14:40:00+0000" data-end="2026-12-13T14:55:00+0000" title="Local file history possibilities in Emacs" data-slug="local"><title>Sun 9:40- 9:55 Local file history possibilities in Emacs</title><rect x="54" y="20" opacity="0.5" width="20" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(72,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">local</text></g></a><a href="/2026/talks/hutch" data-start="2026-12-13T15:15:00+0000" data-end="2026-12-13T15:25:00+0000" title="hutch: code reviews for the mildly disenfranchised" data-slug="hutch"><title>Sun 10:15-10:25 hutch: code reviews for the mildly disenfranchised</title><rect x="102" y="20" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(113,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">hutch</text></g></a><a href="/2026/talks/team" data-start="2026-12-13T15:35:00+0000" data-end="2026-12-13T15:55:00+0000" title="Beyond the Chatbot: Team-Oriented AI in Emacs" data-slug="team"><title>Sun 10:35-10:55 Beyond the Chatbot: Team-Oriented AI in Emacs</title><rect x="130" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(155,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">team</text></g></a><a href="/2026/talks/compile" data-start="2026-12-13T16:15:00+0000" data-end="2026-12-13T16:35:00+0000" title="Beyond shell history: Saving compilation output in Emacs" data-slug="compile"><title>Sun 11:15-11:35 Beyond shell history: Saving compilation output in Emacs</title><rect x="185" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(210,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">compile</text></g></a><a href="/2026/talks/dnd" data-start="2026-12-13T18:00:00+0000" data-end="2026-12-13T18:20:00+0000" title="DnD and Org Roam: Becoming a Better DM with Emacs" data-slug="dnd"><title>Sun 1:00- 1:20 DnD and Org Roam: Becoming a Better DM with Emacs</title><rect x="329" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(354,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">dnd</text></g></a><a href="/2026/talks/bible" data-start="2026-12-13T18:30:00+0000" data-end="2026-12-13T18:50:00+0000" title="bible-gateway: A Two-Edged Sword in Emacs" data-slug="bible"><title>Sun 1:30- 1:50 bible-gateway: A Two-Edged Sword in Emacs</title><rect x="370" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(395,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">bible</text></g></a><a href="/2026/talks/svg" data-start="2026-12-13T19:10:00+0000" data-end="2026-12-13T19:30:00+0000" title="A (sort of) REPL for learning SVG" data-slug="svg"><title>Sun 2:10- 2:30 A (sort of) REPL for learning SVG</title><rect x="425" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(450,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">svg</text></g></a><a href="/2026/talks/align" data-start="2026-12-13T19:50:00+0000" data-end="2026-12-13T20:10:00+0000" title="Column-aligning text in Emacs" data-slug="align"><title>Sun 2:50- 3:10 Column-aligning text in Emacs</title><rect x="480" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(505,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">align</text></g></a><a href="/2026/talks/anju" data-start="2026-12-13T20:30:00+0000" data-end="2026-12-13T20:50:00+0000" title="Revisiting Emacs Mouse Interactions with Anju" data-slug="anju"><title>Sun 3:30- 3:50 Revisiting Emacs Mouse Interactions with Anju</title><rect x="535" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(560,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">anju</text></g></a><a href="/2026/talks/ghostel" data-start="2026-12-13T21:00:00+0000" data-end="2026-12-13T21:20:00+0000" title="Ghost in the Shell: a libghostty powered terminal for Emacs" data-slug="ghostel"><title>Sun 4:00- 4:20 Ghost in the Shell: a libghostty powered terminal for Emacs</title><rect x="576" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(601,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">ghostel</text></g></a><a href="/2026/talks/sun-close" data-start="2026-12-13T21:40:00+0000" data-end="2026-12-13T21:50:00+0000" title="Sunday closing remarks" data-slug="sun-close"><title>Sun 4:40- 4:50 Sunday closing remarks</title><rect x="631" y="20" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(642,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sun-close</text></g></a><a href="/2026/talks/prefix" data-start="2026-12-13T15:00:00+0000" data-end="2026-12-13T15:10:00+0000" title="prefix-tab-groups" data-slug="prefix"><title>Sun 10:00-10:10 prefix-tab-groups</title><rect x="82" y="75" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="5,5,5" fill="skyblue"></rect><g transform="translate(93,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">prefix</text></g></a><a href="/2026/talks/rau" data-start="2026-12-13T15:20:00+0000" data-end="2026-12-13T15:40:00+0000" title="Emacs as a Window Manager and concurrency" data-slug="rau"><title>Sun 10:20-10:40 Emacs as a Window Manager and concurrency</title><rect x="109" y="75" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(134,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">rau</text></g></a><a href="/2026/talks/babel" data-start="2026-12-13T16:00:00+0000" data-end="2026-12-13T16:10:00+0000" title="Org Babel everywhere" data-slug="babel"><title>Sun 11:00-11:10 Org Babel everywhere</title><rect x="164" y="75" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(175,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">babel</text></g></a><a href="/2026/talks/el-gpu" data-start="2026-12-13T16:30:00+0000" data-end="2026-12-13T16:50:00+0000" title="El-gpu and pix-el: GNU Emacs 2D and 3D game programming" data-slug="el-gpu"><title>Sun 11:30-11:50 El-gpu and pix-el: GNU Emacs 2D and 3D game programming</title><rect x="205" y="75" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(230,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">el-gpu</text></g></a><a href="/2026/talks/llms" data-start="2026-12-13T18:00:00+0000" data-end="2026-12-13T19:00:00+0000" title="[Panel] Emacs, LLMs, and Free Software" data-slug="llms"><title>Sun 1:00- 2:00 [Panel] Emacs, LLMs, and Free Software</title><rect x="329" y="75" opacity="0.5" width="82" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(409,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">llms</text></g></a><g transform="translate(0,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T14:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">9 AM EST</text></g><g transform="translate(82,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T15:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">10 AM EST</text></g><g transform="translate(164,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T16:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">11 AM EST</text></g><g transform="translate(247,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T17:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">12 PM EST</text></g><g transform="translate(329,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T18:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">1 PM EST</text></g><g transform="translate(411,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T19:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">2 PM EST</text></g><g transform="translate(494,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T20:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">3 PM EST</text></g><g transform="translate(576,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T21:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">4 PM EST</text></g><g transform="translate(658,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T22:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">5 PM EST</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 Sunday</title><rect width="700" height="150" x="0" y="0" fill="white"></rect><text data-start="2026-12-13T14:00:00+0000" class="day-label" font-size="10" fill="black" y="17" x="3">Sunday</text><a href="/2026/talks/sun-open" data-start="2026-12-13T14:00:00+0000" data-end="2026-12-13T14:10:00+0000" title="Sunday opening remarks" data-slug="sun-open"><title>Sun 9:00- 9:10 Sunday opening remarks</title><rect stroke-width="3" x="0" y="20" opacity="0.8" width="13" height="54" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(11,73)"><text font-weight="bold" fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sun-open</text></g></a><a href="/2026/talks/bone" data-start="2026-12-13T14:10:00+0000" data-end="2026-12-13T14:20:00+0000" title="BONE and gnaw.el: tracking what matters" data-slug="bone"><title>Sun 9:10- 9:20 BONE and gnaw.el: tracking what matters</title><rect x="13" y="20" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(24,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">bone</text></g></a><a href="/2026/talks/local" data-start="2026-12-13T14:40:00+0000" data-end="2026-12-13T14:55:00+0000" title="Local file history possibilities in Emacs" data-slug="local"><title>Sun 9:40- 9:55 Local file history possibilities in Emacs</title><rect x="54" y="20" opacity="0.5" width="20" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(72,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">local</text></g></a><a href="/2026/talks/hutch" data-start="2026-12-13T15:15:00+0000" data-end="2026-12-13T15:25:00+0000" title="hutch: code reviews for the mildly disenfranchised" data-slug="hutch"><title>Sun 10:15-10:25 hutch: code reviews for the mildly disenfranchised</title><rect x="102" y="20" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(113,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">hutch</text></g></a><a href="/2026/talks/team" data-start="2026-12-13T15:35:00+0000" data-end="2026-12-13T15:55:00+0000" title="Beyond the Chatbot: Team-Oriented AI in Emacs" data-slug="team"><title>Sun 10:35-10:55 Beyond the Chatbot: Team-Oriented AI in Emacs</title><rect x="130" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(155,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">team</text></g></a><a href="/2026/talks/compile" data-start="2026-12-13T16:15:00+0000" data-end="2026-12-13T16:35:00+0000" title="Beyond shell history: Saving compilation output in Emacs" data-slug="compile"><title>Sun 11:15-11:35 Beyond shell history: Saving compilation output in Emacs</title><rect x="185" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(210,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">compile</text></g></a><a href="/2026/talks/dnd" data-start="2026-12-13T18:00:00+0000" data-end="2026-12-13T18:20:00+0000" title="DnD and Org Roam: Becoming a Better DM with Emacs" data-slug="dnd"><title>Sun 1:00- 1:20 DnD and Org Roam: Becoming a Better DM with Emacs</title><rect x="329" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(354,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">dnd</text></g></a><a href="/2026/talks/bible" data-start="2026-12-13T18:30:00+0000" data-end="2026-12-13T18:50:00+0000" title="bible-gateway: A Two-Edged Sword in Emacs" data-slug="bible"><title>Sun 1:30- 1:50 bible-gateway: A Two-Edged Sword in Emacs</title><rect x="370" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(395,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">bible</text></g></a><a href="/2026/talks/ffs" data-start="2026-12-13T19:10:00+0000" data-end="2026-12-13T19:30:00+0000" title="Plain text presentations in GNU Emacs with ffs" data-slug="ffs"><title>Sun 2:10- 2:30 Plain text presentations in GNU Emacs with ffs</title><rect x="425" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(450,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">ffs</text></g></a><a href="/2026/talks/align" data-start="2026-12-13T19:50:00+0000" data-end="2026-12-13T20:10:00+0000" title="Column-aligning text in Emacs" data-slug="align"><title>Sun 2:50- 3:10 Column-aligning text in Emacs</title><rect x="480" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(505,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">align</text></g></a><a href="/2026/talks/anju" data-start="2026-12-13T20:30:00+0000" data-end="2026-12-13T20:50:00+0000" title="Revisiting Emacs Mouse Interactions with Anju" data-slug="anju"><title>Sun 3:30- 3:50 Revisiting Emacs Mouse Interactions with Anju</title><rect x="535" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(560,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">anju</text></g></a><a href="/2026/talks/android" data-start="2026-12-13T21:00:00+0000" data-end="2026-12-13T21:10:00+0000" title="Emacs on Android - Emacs for the next 40 years" data-slug="android"><title>Sun 4:00- 4:10 Emacs on Android - Emacs for the next 40 years</title><rect x="576" y="20" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(587,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">android</text></g></a><a href="/2026/talks/sun-close" data-start="2026-12-13T21:30:00+0000" data-end="2026-12-13T21:40:00+0000" title="Sunday closing remarks" data-slug="sun-close"><title>Sun 4:30- 4:40 Sunday closing remarks</title><rect x="617" y="20" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(628,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sun-close</text></g></a><a href="/2026/talks/prefix" data-start="2026-12-13T15:00:00+0000" data-end="2026-12-13T15:10:00+0000" title="prefix-tab-groups" data-slug="prefix"><title>Sun 10:00-10:10 prefix-tab-groups</title><rect x="82" y="75" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="5,5,5" fill="skyblue"></rect><g transform="translate(93,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">prefix</text></g></a><a href="/2026/talks/rau" data-start="2026-12-13T15:20:00+0000" data-end="2026-12-13T15:40:00+0000" title="Emacs as a Window Manager and concurrency" data-slug="rau"><title>Sun 10:20-10:40 Emacs as a Window Manager and concurrency</title><rect x="109" y="75" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(134,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">rau</text></g></a><a href="/2026/talks/babel" data-start="2026-12-13T16:00:00+0000" data-end="2026-12-13T16:10:00+0000" title="Org Babel everywhere" data-slug="babel"><title>Sun 11:00-11:10 Org Babel everywhere</title><rect x="164" y="75" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(175,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">babel</text></g></a><a href="/2026/talks/el-gpu" data-start="2026-12-13T16:30:00+0000" data-end="2026-12-13T16:50:00+0000" title="El-gpu and pix-el: GNU Emacs 2D and 3D game programming" data-slug="el-gpu"><title>Sun 11:30-11:50 El-gpu and pix-el: GNU Emacs 2D and 3D game programming</title><rect x="205" y="75" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(230,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">el-gpu</text></g></a><a href="/2026/talks/llms" data-start="2026-12-13T18:00:00+0000" data-end="2026-12-13T19:00:00+0000" title="[Panel] Emacs, LLMs, and Free Software" data-slug="llms"><title>Sun 1:00- 2:00 [Panel] Emacs, LLMs, and Free Software</title><rect x="329" y="75" opacity="0.5" width="82" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(409,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">llms</text></g></a><a href="/2026/talks/ghostel" data-start="2026-12-13T19:20:00+0000" data-end="2026-12-13T19:40:00+0000" title="Ghost in the Shell: a libghostty powered terminal for Emacs" data-slug="ghostel"><title>Sun 2:20- 2:40 Ghost in the Shell: a libghostty powered terminal for Emacs</title><rect x="439" y="75" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(464,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">ghostel</text></g></a><a href="/2026/talks/svg" data-start="2026-12-13T20:00:00+0000" data-end="2026-12-13T20:20:00+0000" title="A (sort of) REPL for learning SVG" data-slug="svg"><title>Sun 3:00- 3:20 A (sort of) REPL for learning SVG</title><rect x="494" y="75" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(519,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">svg</text></g></a><g transform="translate(0,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T14:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">9 AM EST</text></g><g transform="translate(82,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T15:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">10 AM EST</text></g><g transform="translate(164,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T16:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">11 AM EST</text></g><g transform="translate(247,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T17:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">12 PM EST</text></g><g transform="translate(329,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T18:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">1 PM EST</text></g><g transform="translate(411,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T19:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">2 PM EST</text></g><g transform="translate(494,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T20:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">3 PM EST</text></g><g transform="translate(576,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T21:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">4 PM EST</text></g><g transform="translate(658,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T22:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">5 PM EST</text></g></svg> </div> [[!toc ]] diff --git a/2026/info/svg-before.md b/2026/info/svg-before.md index 3792be60..5d46d6ce 100644 --- a/2026/info/svg-before.md +++ b/2026/info/svg-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 Sun 2026-12-13. 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="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 Sunday</title><rect width="700" height="150" x="0" y="0" fill="white"></rect><text data-start="2026-12-13T14:00:00+0000" class="day-label" font-size="10" fill="black" y="17" x="3">Sunday</text><a href="/2026/talks/sun-open" data-start="2026-12-13T14:00:00+0000" data-end="2026-12-13T14:10:00+0000" title="Sunday opening remarks" data-slug="sun-open"><title>Sun 9:00- 9:10 Sunday opening remarks</title><rect x="0" y="20" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(11,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sun-open</text></g></a><a href="/2026/talks/bone" data-start="2026-12-13T14:10:00+0000" data-end="2026-12-13T14:20:00+0000" title="BONE and gnaw.el: tracking what matters" data-slug="bone"><title>Sun 9:10- 9:20 BONE and gnaw.el: tracking what matters</title><rect x="13" y="20" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(24,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">bone</text></g></a><a href="/2026/talks/local" data-start="2026-12-13T14:40:00+0000" data-end="2026-12-13T14:55:00+0000" title="Local file history possibilities in Emacs" data-slug="local"><title>Sun 9:40- 9:55 Local file history possibilities in Emacs</title><rect x="54" y="20" opacity="0.5" width="20" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(72,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">local</text></g></a><a href="/2026/talks/hutch" data-start="2026-12-13T15:15:00+0000" data-end="2026-12-13T15:25:00+0000" title="hutch: code reviews for the mildly disenfranchised" data-slug="hutch"><title>Sun 10:15-10:25 hutch: code reviews for the mildly disenfranchised</title><rect x="102" y="20" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(113,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">hutch</text></g></a><a href="/2026/talks/team" data-start="2026-12-13T15:35:00+0000" data-end="2026-12-13T15:55:00+0000" title="Beyond the Chatbot: Team-Oriented AI in Emacs" data-slug="team"><title>Sun 10:35-10:55 Beyond the Chatbot: Team-Oriented AI in Emacs</title><rect x="130" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(155,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">team</text></g></a><a href="/2026/talks/compile" data-start="2026-12-13T16:15:00+0000" data-end="2026-12-13T16:35:00+0000" title="Beyond shell history: Saving compilation output in Emacs" data-slug="compile"><title>Sun 11:15-11:35 Beyond shell history: Saving compilation output in Emacs</title><rect x="185" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(210,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">compile</text></g></a><a href="/2026/talks/dnd" data-start="2026-12-13T18:00:00+0000" data-end="2026-12-13T18:20:00+0000" title="DnD and Org Roam: Becoming a Better DM with Emacs" data-slug="dnd"><title>Sun 1:00- 1:20 DnD and Org Roam: Becoming a Better DM with Emacs</title><rect x="329" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(354,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">dnd</text></g></a><a href="/2026/talks/bible" data-start="2026-12-13T18:30:00+0000" data-end="2026-12-13T18:50:00+0000" title="bible-gateway: A Two-Edged Sword in Emacs" data-slug="bible"><title>Sun 1:30- 1:50 bible-gateway: A Two-Edged Sword in Emacs</title><rect x="370" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(395,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">bible</text></g></a><a href="/2026/talks/svg" data-start="2026-12-13T19:10:00+0000" data-end="2026-12-13T19:30:00+0000" title="A (sort of) REPL for learning SVG" data-slug="svg"><title>Sun 2:10- 2:30 A (sort of) REPL for learning SVG</title><rect stroke-width="3" x="425" y="20" opacity="0.8" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(450,73)"><text font-weight="bold" fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">svg</text></g></a><a href="/2026/talks/align" data-start="2026-12-13T19:50:00+0000" data-end="2026-12-13T20:10:00+0000" title="Column-aligning text in Emacs" data-slug="align"><title>Sun 2:50- 3:10 Column-aligning text in Emacs</title><rect x="480" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(505,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">align</text></g></a><a href="/2026/talks/anju" data-start="2026-12-13T20:30:00+0000" data-end="2026-12-13T20:50:00+0000" title="Revisiting Emacs Mouse Interactions with Anju" data-slug="anju"><title>Sun 3:30- 3:50 Revisiting Emacs Mouse Interactions with Anju</title><rect x="535" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(560,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">anju</text></g></a><a href="/2026/talks/ghostel" data-start="2026-12-13T21:00:00+0000" data-end="2026-12-13T21:20:00+0000" title="Ghost in the Shell: a libghostty powered terminal for Emacs" data-slug="ghostel"><title>Sun 4:00- 4:20 Ghost in the Shell: a libghostty powered terminal for Emacs</title><rect x="576" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(601,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">ghostel</text></g></a><a href="/2026/talks/sun-close" data-start="2026-12-13T21:40:00+0000" data-end="2026-12-13T21:50:00+0000" title="Sunday closing remarks" data-slug="sun-close"><title>Sun 4:40- 4:50 Sunday closing remarks</title><rect x="631" y="20" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(642,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sun-close</text></g></a><a href="/2026/talks/prefix" data-start="2026-12-13T15:00:00+0000" data-end="2026-12-13T15:10:00+0000" title="prefix-tab-groups" data-slug="prefix"><title>Sun 10:00-10:10 prefix-tab-groups</title><rect x="82" y="75" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="5,5,5" fill="skyblue"></rect><g transform="translate(93,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">prefix</text></g></a><a href="/2026/talks/rau" data-start="2026-12-13T15:20:00+0000" data-end="2026-12-13T15:40:00+0000" title="Emacs as a Window Manager and concurrency" data-slug="rau"><title>Sun 10:20-10:40 Emacs as a Window Manager and concurrency</title><rect x="109" y="75" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(134,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">rau</text></g></a><a href="/2026/talks/babel" data-start="2026-12-13T16:00:00+0000" data-end="2026-12-13T16:10:00+0000" title="Org Babel everywhere" data-slug="babel"><title>Sun 11:00-11:10 Org Babel everywhere</title><rect x="164" y="75" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(175,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">babel</text></g></a><a href="/2026/talks/el-gpu" data-start="2026-12-13T16:30:00+0000" data-end="2026-12-13T16:50:00+0000" title="El-gpu and pix-el: GNU Emacs 2D and 3D game programming" data-slug="el-gpu"><title>Sun 11:30-11:50 El-gpu and pix-el: GNU Emacs 2D and 3D game programming</title><rect x="205" y="75" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(230,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">el-gpu</text></g></a><a href="/2026/talks/llms" data-start="2026-12-13T18:00:00+0000" data-end="2026-12-13T19:00:00+0000" title="[Panel] Emacs, LLMs, and Free Software" data-slug="llms"><title>Sun 1:00- 2:00 [Panel] Emacs, LLMs, and Free Software</title><rect x="329" y="75" opacity="0.5" width="82" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(409,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">llms</text></g></a><g transform="translate(0,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T14:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">9 AM EST</text></g><g transform="translate(82,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T15:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">10 AM EST</text></g><g transform="translate(164,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T16:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">11 AM EST</text></g><g transform="translate(247,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T17:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">12 PM EST</text></g><g transform="translate(329,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T18:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">1 PM EST</text></g><g transform="translate(411,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T19:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">2 PM EST</text></g><g transform="translate(494,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T20:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">3 PM EST</text></g><g transform="translate(576,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T21:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">4 PM EST</text></g><g transform="translate(658,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T22:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">5 PM EST</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 Sunday</title><rect width="700" height="150" x="0" y="0" fill="white"></rect><text data-start="2026-12-13T14:00:00+0000" class="day-label" font-size="10" fill="black" y="17" x="3">Sunday</text><a href="/2026/talks/sun-open" data-start="2026-12-13T14:00:00+0000" data-end="2026-12-13T14:10:00+0000" title="Sunday opening remarks" data-slug="sun-open"><title>Sun 9:00- 9:10 Sunday opening remarks</title><rect x="0" y="20" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(11,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sun-open</text></g></a><a href="/2026/talks/bone" data-start="2026-12-13T14:10:00+0000" data-end="2026-12-13T14:20:00+0000" title="BONE and gnaw.el: tracking what matters" data-slug="bone"><title>Sun 9:10- 9:20 BONE and gnaw.el: tracking what matters</title><rect x="13" y="20" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(24,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">bone</text></g></a><a href="/2026/talks/local" data-start="2026-12-13T14:40:00+0000" data-end="2026-12-13T14:55:00+0000" title="Local file history possibilities in Emacs" data-slug="local"><title>Sun 9:40- 9:55 Local file history possibilities in Emacs</title><rect x="54" y="20" opacity="0.5" width="20" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(72,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">local</text></g></a><a href="/2026/talks/hutch" data-start="2026-12-13T15:15:00+0000" data-end="2026-12-13T15:25:00+0000" title="hutch: code reviews for the mildly disenfranchised" data-slug="hutch"><title>Sun 10:15-10:25 hutch: code reviews for the mildly disenfranchised</title><rect x="102" y="20" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(113,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">hutch</text></g></a><a href="/2026/talks/team" data-start="2026-12-13T15:35:00+0000" data-end="2026-12-13T15:55:00+0000" title="Beyond the Chatbot: Team-Oriented AI in Emacs" data-slug="team"><title>Sun 10:35-10:55 Beyond the Chatbot: Team-Oriented AI in Emacs</title><rect x="130" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(155,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">team</text></g></a><a href="/2026/talks/compile" data-start="2026-12-13T16:15:00+0000" data-end="2026-12-13T16:35:00+0000" title="Beyond shell history: Saving compilation output in Emacs" data-slug="compile"><title>Sun 11:15-11:35 Beyond shell history: Saving compilation output in Emacs</title><rect x="185" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(210,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">compile</text></g></a><a href="/2026/talks/dnd" data-start="2026-12-13T18:00:00+0000" data-end="2026-12-13T18:20:00+0000" title="DnD and Org Roam: Becoming a Better DM with Emacs" data-slug="dnd"><title>Sun 1:00- 1:20 DnD and Org Roam: Becoming a Better DM with Emacs</title><rect x="329" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(354,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">dnd</text></g></a><a href="/2026/talks/bible" data-start="2026-12-13T18:30:00+0000" data-end="2026-12-13T18:50:00+0000" title="bible-gateway: A Two-Edged Sword in Emacs" data-slug="bible"><title>Sun 1:30- 1:50 bible-gateway: A Two-Edged Sword in Emacs</title><rect x="370" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(395,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">bible</text></g></a><a href="/2026/talks/ffs" data-start="2026-12-13T19:10:00+0000" data-end="2026-12-13T19:30:00+0000" title="Plain text presentations in GNU Emacs with ffs" data-slug="ffs"><title>Sun 2:10- 2:30 Plain text presentations in GNU Emacs with ffs</title><rect x="425" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(450,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">ffs</text></g></a><a href="/2026/talks/align" data-start="2026-12-13T19:50:00+0000" data-end="2026-12-13T20:10:00+0000" title="Column-aligning text in Emacs" data-slug="align"><title>Sun 2:50- 3:10 Column-aligning text in Emacs</title><rect x="480" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(505,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">align</text></g></a><a href="/2026/talks/anju" data-start="2026-12-13T20:30:00+0000" data-end="2026-12-13T20:50:00+0000" title="Revisiting Emacs Mouse Interactions with Anju" data-slug="anju"><title>Sun 3:30- 3:50 Revisiting Emacs Mouse Interactions with Anju</title><rect x="535" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(560,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">anju</text></g></a><a href="/2026/talks/android" data-start="2026-12-13T21:00:00+0000" data-end="2026-12-13T21:10:00+0000" title="Emacs on Android - Emacs for the next 40 years" data-slug="android"><title>Sun 4:00- 4:10 Emacs on Android - Emacs for the next 40 years</title><rect x="576" y="20" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(587,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">android</text></g></a><a href="/2026/talks/sun-close" data-start="2026-12-13T21:30:00+0000" data-end="2026-12-13T21:40:00+0000" title="Sunday closing remarks" data-slug="sun-close"><title>Sun 4:30- 4:40 Sunday closing remarks</title><rect x="617" y="20" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(628,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sun-close</text></g></a><a href="/2026/talks/prefix" data-start="2026-12-13T15:00:00+0000" data-end="2026-12-13T15:10:00+0000" title="prefix-tab-groups" data-slug="prefix"><title>Sun 10:00-10:10 prefix-tab-groups</title><rect x="82" y="75" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="5,5,5" fill="skyblue"></rect><g transform="translate(93,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">prefix</text></g></a><a href="/2026/talks/rau" data-start="2026-12-13T15:20:00+0000" data-end="2026-12-13T15:40:00+0000" title="Emacs as a Window Manager and concurrency" data-slug="rau"><title>Sun 10:20-10:40 Emacs as a Window Manager and concurrency</title><rect x="109" y="75" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(134,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">rau</text></g></a><a href="/2026/talks/babel" data-start="2026-12-13T16:00:00+0000" data-end="2026-12-13T16:10:00+0000" title="Org Babel everywhere" data-slug="babel"><title>Sun 11:00-11:10 Org Babel everywhere</title><rect x="164" y="75" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(175,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">babel</text></g></a><a href="/2026/talks/el-gpu" data-start="2026-12-13T16:30:00+0000" data-end="2026-12-13T16:50:00+0000" title="El-gpu and pix-el: GNU Emacs 2D and 3D game programming" data-slug="el-gpu"><title>Sun 11:30-11:50 El-gpu and pix-el: GNU Emacs 2D and 3D game programming</title><rect x="205" y="75" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(230,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">el-gpu</text></g></a><a href="/2026/talks/llms" data-start="2026-12-13T18:00:00+0000" data-end="2026-12-13T19:00:00+0000" title="[Panel] Emacs, LLMs, and Free Software" data-slug="llms"><title>Sun 1:00- 2:00 [Panel] Emacs, LLMs, and Free Software</title><rect x="329" y="75" opacity="0.5" width="82" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(409,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">llms</text></g></a><a href="/2026/talks/ghostel" data-start="2026-12-13T19:20:00+0000" data-end="2026-12-13T19:40:00+0000" title="Ghost in the Shell: a libghostty powered terminal for Emacs" data-slug="ghostel"><title>Sun 2:20- 2:40 Ghost in the Shell: a libghostty powered terminal for Emacs</title><rect x="439" y="75" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(464,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">ghostel</text></g></a><a href="/2026/talks/svg" data-start="2026-12-13T20:00:00+0000" data-end="2026-12-13T20:20:00+0000" title="A (sort of) REPL for learning SVG" data-slug="svg"><title>Sun 3:00- 3:20 A (sort of) REPL for learning SVG</title><rect stroke-width="3" x="494" y="75" opacity="0.8" width="27" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(519,128)"><text font-weight="bold" fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">svg</text></g></a><g transform="translate(0,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T14:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">9 AM EST</text></g><g transform="translate(82,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T15:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">10 AM EST</text></g><g transform="translate(164,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T16:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">11 AM EST</text></g><g transform="translate(247,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T17:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">12 PM EST</text></g><g transform="translate(329,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T18:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">1 PM EST</text></g><g transform="translate(411,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T19:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">2 PM EST</text></g><g transform="translate(494,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T20:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">3 PM EST</text></g><g transform="translate(576,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T21:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">4 PM EST</text></g><g transform="translate(658,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T22:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">5 PM EST</text></g></svg> </div> [[!toc ]] @@ -9,7 +9,7 @@ Format: 20-min talk ; Q&A: ask questions via Etherpad/IRC; we'll e-mail the sp Etherpad: <https://pad.emacsconf.org/2026-svg> 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="2026-12-13T19:10:00Z" end="2026-12-13T19:30:00Z"><div class="conf-time">Sunday, Dec 13 2026, ~2:10 PM - 2:30 PM EST (US/Eastern)</div><div class="others"><div>which is the same as:</div>Sunday, Dec 13 2026, ~1:10 PM - 1:30 PM CST (US/Central)<br />Sunday, Dec 13 2026, ~12:10 PM - 12:30 PM MST (US/Mountain)<br />Sunday, Dec 13 2026, ~11:10 AM - 11:30 AM PST (US/Pacific)<br />Sunday, Dec 13 2026, ~7:10 PM - 7:30 PM UTC <br />Sunday, Dec 13 2026, ~8:10 PM - 8:30 PM CET (Europe/Paris)<br />Sunday, Dec 13 2026, ~9:10 PM - 9:30 PM EET (Europe/Athens)<br />Monday, Dec 14 2026, ~12:40 AM - 1:00 AM IST (Asia/Kolkata)<br />Monday, Dec 14 2026, ~3:10 AM - 3:30 AM +08 (Asia/Singapore)<br />Monday, Dec 14 2026, ~4:10 AM - 4:30 AM JST (Asia/Tokyo)</div></div><div><strong><a href="/2026/watch/gen/">Find out how to watch and participate</a></strong></div> +<div>Times in different time zones:</div><div class="times" start="2026-12-13T20:00:00Z" end="2026-12-13T20:20:00Z"><div class="conf-time">Sunday, Dec 13 2026, ~3:00 PM - 3:20 PM EST (US/Eastern)</div><div class="others"><div>which is the same as:</div>Sunday, Dec 13 2026, ~2:00 PM - 2:20 PM CST (US/Central)<br />Sunday, Dec 13 2026, ~1:00 PM - 1:20 PM MST (US/Mountain)<br />Sunday, Dec 13 2026, ~12:00 PM - 12:20 PM PST (US/Pacific)<br />Sunday, Dec 13 2026, ~8:00 PM - 8:20 PM UTC <br />Sunday, Dec 13 2026, ~9:00 PM - 9:20 PM CET (Europe/Paris)<br />Sunday, Dec 13 2026, ~10:00 PM - 10:20 PM EET (Europe/Athens)<br />Monday, Dec 14 2026, ~1:30 AM - 1:50 AM IST (Asia/Kolkata)<br />Monday, Dec 14 2026, ~4:00 AM - 4:20 AM +08 (Asia/Singapore)<br />Monday, Dec 14 2026, ~5:00 AM - 5:20 AM JST (Asia/Tokyo)</div></div><div><strong><a href="/2026/watch/dev/">Find out how to watch and participate</a></strong></div> diff --git a/2026/info/svg-nav.md b/2026/info/svg-nav.md index 92c56560..bbf1814f 100644 --- a/2026/info/svg-nav.md +++ b/2026/info/svg-nav.md @@ -1,7 +1,7 @@ <div class="talk-nav"> Back to the [[talks]] -Previous by time: <a href="/2026/talks/bible">bible-gateway: A Two-Edged Sword in Emacs</a> -Next by time: <a href="/2026/talks/align">Column-aligning text in Emacs</a> -Track: <span class="sched-track General">General</span> - <strong><a href="https://emacsconf.org/2026/watch/gen">Watch</a></strong> +Previous by time: <a href="/2026/talks/align">Column-aligning text in Emacs</a> +Next by time: <a href="/2026/talks/anju">Revisiting Emacs Mouse Interactions with Anju</a> +Track: <span class="sched-track Development">Development</span> - <strong><a href="https://emacsconf.org/2026/watch/gen">Watch</a></strong> </div> diff --git a/2026/info/tasks-after.md b/2026/info/tasks-after.md new file mode 100644 index 00000000..b11c9a9d --- /dev/null +++ b/2026/info/tasks-after.md @@ -0,0 +1,7 @@ +<!-- Automatically generated by emacsconf-publish-after-page --> + + +Questions or comments? Please e-mail [emacsconf-org-private@gnu.org](mailto:emacsconf-org-private@gnu.org?subject=Comment%20for%20EmacsConf%202023%20tasks%3A%20Personal%20task%20management%20under%20stress%20%28with%20Org%20mode%29) + + +<!-- End of emacsconf-publish-after-page --> diff --git a/2026/info/tasks-before.md b/2026/info/tasks-before.md new file mode 100644 index 00000000..a2d64536 --- /dev/null +++ b/2026/info/tasks-before.md @@ -0,0 +1,19 @@ +<!-- Automatically generated by emacsconf-publish-before-page --> + +The following image shows where the talk is in the schedule for Sat 2026-12-12. 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="tasks"> +<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 data-start="2026-12-12T14:00:00+0000" class="day-label" font-size="10" fill="black" y="17" x="3">Saturday</text><a href="/2026/talks/sat-open" data-start="2026-12-12T14:00:00+0000" data-end="2026-12-12T14:10:00+0000" title="Saturday opening remarks" data-slug="sat-open"><title>Sat 9:00- 9:10 Saturday opening remarks</title><rect x="0" y="20" opacity="0.5" width="13" height="54" 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="/2026/talks/planning" data-start="2026-12-12T14:10:00+0000" data-end="2026-12-12T14:30:00+0000" title="The Emacs Planning Habits of a Questionably Effective Person: My 40-year journey of planning with Emacs, Org Mode, paper journals, etc." data-slug="planning"><title>Sat 9:10- 9:30 The Emacs Planning Habits of a Questionably Effective Person: My 40-year journey of planning with Emacs, Org Mode, paper journals, etc.</title><rect x="13" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(38,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">planning</text></g></a><a href="/2026/talks/listen" data-start="2026-12-12T14:50:00+0000" data-end="2026-12-12T15:10:00+0000" title="Emacslisten: Controlling Emacs by voice" data-slug="listen"><title>Sat 9:50-10:10 Emacslisten: Controlling Emacs by voice</title><rect x="68" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(93,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">listen</text></g></a><a href="/2026/talks/emacspeak" data-start="2026-12-12T15:30:00+0000" data-end="2026-12-12T16:00:00+0000" title="Multi-dimensional information processing with Emacs and Emacspeak: a blind man's perspective" data-slug="emacspeak"><title>Sat 10:30-11:00 Multi-dimensional information processing with Emacs and Emacspeak: a blind man's perspective</title><rect x="123" y="20" opacity="0.5" width="41" height="54" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(162,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">emacspeak</text></g></a><a href="/2026/talks/ltx-talk" data-start="2026-12-12T16:10:00+0000" data-end="2026-12-12T16:30:00+0000" title="ltx-talk: Accessible presentations with ox-beamer" data-slug="ltx-talk"><title>Sat 11:10-11:30 ltx-talk: Accessible presentations with ox-beamer</title><rect x="178" y="20" opacity="0.5" width="27" height="54" 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)">ltx-talk</text></g></a><a href="/2026/talks/plots" data-start="2026-12-12T18:00:00+0000" data-end="2026-12-12T18:20:00+0000" title="Plots with ROOTs: Resilient data visualization with Emacs, Org and gnuplot" data-slug="plots"><title>Sat 1:00- 1:20 Plots with ROOTs: Resilient data visualization with Emacs, Org and gnuplot</title><rect x="329" y="20" opacity="0.5" width="27" height="54" 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)">plots</text></g></a><a href="/2026/talks/tasks" data-start="2026-12-12T18:40:00+0000" data-end="2026-12-12T19:00:00+0000" title="Personal task management under stress (with Org mode)" data-slug="tasks"><title>Sat 1:40- 2:00 Personal task management under stress (with Org mode)</title><rect stroke-width="3" x="384" y="20" opacity="0.8" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(409,73)"><text font-weight="bold" fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">tasks</text></g></a><a href="/2026/talks/mobile" data-start="2026-12-12T19:20:00+0000" data-end="2026-12-12T19:30:00+0000" title="How I solved Org Mode's biggest mobile and collaboration problems" data-slug="mobile"><title>Sat 2:20- 2:30 How I solved Org Mode's biggest mobile and collaboration problems</title><rect x="439" y="20" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(450,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">mobile</text></g></a><a href="/2026/talks/hyperbole" data-start="2026-12-12T19:50:00+0000" data-end="2026-12-12T20:10:00+0000" title="Hyperbole, My Dear Watson" data-slug="hyperbole"><title>Sat 2:50- 3:10 Hyperbole, My Dear Watson</title><rect x="480" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(505,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">hyperbole</text></g></a><a href="/2026/talks/koutliner" data-start="2026-12-12T20:30:00+0000" data-end="2026-12-12T20:50:00+0000" title="Hyperbole Koutliner: The Best Autonumbered, Hyperlinking Outliner for Emacs" data-slug="koutliner"><title>Sat 3:30- 3:50 Hyperbole Koutliner: The Best Autonumbered, Hyperlinking Outliner for Emacs</title><rect x="535" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(560,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">koutliner</text></g></a><a href="/2026/talks/writing" data-start="2026-12-12T21:10:00+0000" data-end="2026-12-12T21:30:00+0000" title="Close the writing accountability gap with Emacs" data-slug="writing"><title>Sat 4:10- 4:30 Close the writing accountability gap with Emacs</title><rect x="590" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(615,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">writing</text></g></a><a href="/2026/talks/sat-close" data-start="2026-12-12T21:50:00+0000" data-end="2026-12-12T22:00:00+0000" title="Saturday closing remarks / open session" data-slug="sat-close"><title>Sat 4:50- 5:00 Saturday closing remarks / open session</title><rect x="645" y="20" opacity="0.5" width="13" height="54" 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)">sat-close</text></g></a><a href="/2026/talks/community" data-start="2026-12-12T15:30:00+0000" data-end="2026-12-12T16:30:00+0000" title="[Panel] Improving the Emacs Community: Onboarding, Participation, and Growth" data-slug="community"><title>Sat 10:30-11:30 [Panel] Improving the Emacs Community: Onboarding, Participation, and Growth</title><rect x="123" y="75" opacity="0.5" width="82" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(203,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">community</text></g></a><a href="/2026/talks/portable" data-start="2026-12-12T18:00:00+0000" data-end="2026-12-12T18:15:00+0000" title="Emacs as my portable user space across operating platforms" data-slug="portable"><title>Sat 1:00- 1:15 Emacs as my portable user space across operating platforms</title><rect x="329" y="75" opacity="0.5" width="20" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(347,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">portable</text></g></a><a href="/2026/talks/os" data-start="2026-12-12T18:35:00+0000" data-end="2026-12-12T18:55:00+0000" title="Emacs everywhere: A fun romp through esoteric operating systems" data-slug="os"><title>Sat 1:35- 1:55 Emacs everywhere: A fun romp through esoteric operating systems</title><rect x="377" y="75" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(402,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">os</text></g></a><a href="/2026/talks/cadet" data-start="2026-12-12T19:15:00+0000" data-end="2026-12-12T19:25:00+0000" title="My Space Cadet Deck - an Android Stream Deck replacement with deep Emacs integration" data-slug="cadet"><title>Sat 2:15- 2:25 My Space Cadet Deck - an Android Stream Deck replacement with deep Emacs integration</title><rect x="432" y="75" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(443,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">cadet</text></g></a><a href="/2026/talks/remoto" data-start="2026-12-12T19:45:00+0000" data-end="2026-12-12T20:05:00+0000" title="El Remoto: browse any GitHub repos without cloning them" data-slug="remoto"><title>Sat 2:45- 3:05 El Remoto: browse any GitHub repos without cloning them</title><rect x="473" y="75" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(498,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">remoto</text></g></a><a href="/2026/talks/guile" data-start="2026-12-12T20:25:00+0000" data-end="2026-12-12T20:45:00+0000" title="æmacs: having a hoot with a guile emacs" data-slug="guile"><title>Sat 3:25- 3:45 æmacs: having a hoot with a guile emacs</title><rect x="528" y="75" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(553,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">guile</text></g></a><a href="/2026/talks/virus" data-start="2026-12-12T21:05:00+0000" data-end="2026-12-12T21:25:00+0000" title="It's Probably Not a Virus" data-slug="virus"><title>Sat 4:05- 4:25 It's Probably Not a Virus</title><rect x="583" y="75" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(608,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">virus</text></g></a><g transform="translate(0,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T14:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">9 AM EST</text></g><g transform="translate(82,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T15:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">10 AM EST</text></g><g transform="translate(164,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T16:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">11 AM EST</text></g><g transform="translate(247,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T17:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">12 PM EST</text></g><g transform="translate(329,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T18:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">1 PM EST</text></g><g transform="translate(411,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T19:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">2 PM EST</text></g><g transform="translate(494,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T20:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">3 PM EST</text></g><g transform="translate(576,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T21:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">4 PM EST</text></g><g transform="translate(658,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T22:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">5 PM EST</text></g></svg> +</div> + +[[!toc ]] +Format: 20-min talk ; Q&A: ask questions via Etherpad/IRC; we'll e-mail the speaker and post answers on this wiki page after the conference Etherpad: <https://pad.emacsconf.org/2026-tasks> +Etherpad: <https://pad.emacsconf.org/2026-tasks> +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="2026-12-12T18:40:00Z" end="2026-12-12T19:00:00Z"><div class="conf-time">Saturday, Dec 12 2026, ~1:40 PM - 2:00 PM EST (US/Eastern)</div><div class="others"><div>which is the same as:</div>Saturday, Dec 12 2026, ~12:40 PM - 1:00 PM CST (US/Central)<br />Saturday, Dec 12 2026, ~11:40 AM - 12:00 PM MST (US/Mountain)<br />Saturday, Dec 12 2026, ~10:40 AM - 11:00 AM PST (US/Pacific)<br />Saturday, Dec 12 2026, ~6:40 PM - 7:00 PM UTC <br />Saturday, Dec 12 2026, ~7:40 PM - 8:00 PM CET (Europe/Paris)<br />Saturday, Dec 12 2026, ~8:40 PM - 9:00 PM EET (Europe/Athens)<br />Sunday, Dec 13 2026, ~12:10 AM - 12:30 AM IST (Asia/Kolkata)<br />Sunday, Dec 13 2026, ~2:40 AM - 3:00 AM +08 (Asia/Singapore)<br />Sunday, Dec 13 2026, ~3:40 AM - 4:00 AM JST (Asia/Tokyo)</div></div><div><strong><a href="/2026/watch/gen/">Find out how to watch and participate</a></strong></div> + + + + + +# Description +<!-- End of emacsconf-publish-before-page -->
\ No newline at end of file diff --git a/2026/info/tasks-nav.md b/2026/info/tasks-nav.md new file mode 100644 index 00000000..9f595858 --- /dev/null +++ b/2026/info/tasks-nav.md @@ -0,0 +1,7 @@ + +<div class="talk-nav"> +Back to the [[talks]] +Previous by time: <a href="/2026/talks/os">Emacs everywhere: A fun romp through esoteric operating systems</a> +Next by time: <a href="/2026/talks/cadet">My Space Cadet Deck - an Android Stream Deck replacement with deep Emacs integration</a> +Track: <span class="sched-track General">General</span> - <strong><a href="https://emacsconf.org/2026/watch/gen">Watch</a></strong> +</div> diff --git a/2026/info/team-before.md b/2026/info/team-before.md index f5c382b7..4084553d 100644 --- a/2026/info/team-before.md +++ b/2026/info/team-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 Sun 2026-12-13. 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="team"> -<svg width="700" height="150" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><title>Schedule for Sunday</title><rect width="700" height="150" x="0" y="0" fill="white"></rect><text data-start="2026-12-13T14:00:00+0000" class="day-label" font-size="10" fill="black" y="17" x="3">Sunday</text><a href="/2026/talks/sun-open" data-start="2026-12-13T14:00:00+0000" data-end="2026-12-13T14:10:00+0000" title="Sunday opening remarks" data-slug="sun-open"><title>Sun 9:00- 9:10 Sunday opening remarks</title><rect x="0" y="20" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(11,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sun-open</text></g></a><a href="/2026/talks/bone" data-start="2026-12-13T14:10:00+0000" data-end="2026-12-13T14:20:00+0000" title="BONE and gnaw.el: tracking what matters" data-slug="bone"><title>Sun 9:10- 9:20 BONE and gnaw.el: tracking what matters</title><rect x="13" y="20" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(24,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">bone</text></g></a><a href="/2026/talks/local" data-start="2026-12-13T14:40:00+0000" data-end="2026-12-13T14:55:00+0000" title="Local file history possibilities in Emacs" data-slug="local"><title>Sun 9:40- 9:55 Local file history possibilities in Emacs</title><rect x="54" y="20" opacity="0.5" width="20" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(72,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">local</text></g></a><a href="/2026/talks/hutch" data-start="2026-12-13T15:15:00+0000" data-end="2026-12-13T15:25:00+0000" title="hutch: code reviews for the mildly disenfranchised" data-slug="hutch"><title>Sun 10:15-10:25 hutch: code reviews for the mildly disenfranchised</title><rect x="102" y="20" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(113,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">hutch</text></g></a><a href="/2026/talks/team" data-start="2026-12-13T15:35:00+0000" data-end="2026-12-13T15:55:00+0000" title="Beyond the Chatbot: Team-Oriented AI in Emacs" data-slug="team"><title>Sun 10:35-10:55 Beyond the Chatbot: Team-Oriented AI in Emacs</title><rect stroke-width="3" x="130" y="20" opacity="0.8" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(155,73)"><text font-weight="bold" fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">team</text></g></a><a href="/2026/talks/compile" data-start="2026-12-13T16:15:00+0000" data-end="2026-12-13T16:35:00+0000" title="Beyond shell history: Saving compilation output in Emacs" data-slug="compile"><title>Sun 11:15-11:35 Beyond shell history: Saving compilation output in Emacs</title><rect x="185" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(210,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">compile</text></g></a><a href="/2026/talks/dnd" data-start="2026-12-13T18:00:00+0000" data-end="2026-12-13T18:20:00+0000" title="DnD and Org Roam: Becoming a Better DM with Emacs" data-slug="dnd"><title>Sun 1:00- 1:20 DnD and Org Roam: Becoming a Better DM with Emacs</title><rect x="329" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(354,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">dnd</text></g></a><a href="/2026/talks/bible" data-start="2026-12-13T18:30:00+0000" data-end="2026-12-13T18:50:00+0000" title="bible-gateway: A Two-Edged Sword in Emacs" data-slug="bible"><title>Sun 1:30- 1:50 bible-gateway: A Two-Edged Sword in Emacs</title><rect x="370" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(395,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">bible</text></g></a><a href="/2026/talks/svg" data-start="2026-12-13T19:10:00+0000" data-end="2026-12-13T19:30:00+0000" title="A (sort of) REPL for learning SVG" data-slug="svg"><title>Sun 2:10- 2:30 A (sort of) REPL for learning SVG</title><rect x="425" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(450,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">svg</text></g></a><a href="/2026/talks/align" data-start="2026-12-13T19:50:00+0000" data-end="2026-12-13T20:10:00+0000" title="Column-aligning text in Emacs" data-slug="align"><title>Sun 2:50- 3:10 Column-aligning text in Emacs</title><rect x="480" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(505,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">align</text></g></a><a href="/2026/talks/anju" data-start="2026-12-13T20:30:00+0000" data-end="2026-12-13T20:50:00+0000" title="Revisiting Emacs Mouse Interactions with Anju" data-slug="anju"><title>Sun 3:30- 3:50 Revisiting Emacs Mouse Interactions with Anju</title><rect x="535" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(560,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">anju</text></g></a><a href="/2026/talks/ghostel" data-start="2026-12-13T21:00:00+0000" data-end="2026-12-13T21:20:00+0000" title="Ghost in the Shell: a libghostty powered terminal for Emacs" data-slug="ghostel"><title>Sun 4:00- 4:20 Ghost in the Shell: a libghostty powered terminal for Emacs</title><rect x="576" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(601,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">ghostel</text></g></a><a href="/2026/talks/sun-close" data-start="2026-12-13T21:40:00+0000" data-end="2026-12-13T21:50:00+0000" title="Sunday closing remarks" data-slug="sun-close"><title>Sun 4:40- 4:50 Sunday closing remarks</title><rect x="631" y="20" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(642,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sun-close</text></g></a><a href="/2026/talks/prefix" data-start="2026-12-13T15:00:00+0000" data-end="2026-12-13T15:10:00+0000" title="prefix-tab-groups" data-slug="prefix"><title>Sun 10:00-10:10 prefix-tab-groups</title><rect x="82" y="75" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="5,5,5" fill="skyblue"></rect><g transform="translate(93,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">prefix</text></g></a><a href="/2026/talks/rau" data-start="2026-12-13T15:20:00+0000" data-end="2026-12-13T15:40:00+0000" title="Emacs as a Window Manager and concurrency" data-slug="rau"><title>Sun 10:20-10:40 Emacs as a Window Manager and concurrency</title><rect x="109" y="75" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(134,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">rau</text></g></a><a href="/2026/talks/babel" data-start="2026-12-13T16:00:00+0000" data-end="2026-12-13T16:10:00+0000" title="Org Babel everywhere" data-slug="babel"><title>Sun 11:00-11:10 Org Babel everywhere</title><rect x="164" y="75" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(175,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">babel</text></g></a><a href="/2026/talks/el-gpu" data-start="2026-12-13T16:30:00+0000" data-end="2026-12-13T16:50:00+0000" title="El-gpu and pix-el: GNU Emacs 2D and 3D game programming" data-slug="el-gpu"><title>Sun 11:30-11:50 El-gpu and pix-el: GNU Emacs 2D and 3D game programming</title><rect x="205" y="75" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(230,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">el-gpu</text></g></a><a href="/2026/talks/llms" data-start="2026-12-13T18:00:00+0000" data-end="2026-12-13T19:00:00+0000" title="[Panel] Emacs, LLMs, and Free Software" data-slug="llms"><title>Sun 1:00- 2:00 [Panel] Emacs, LLMs, and Free Software</title><rect x="329" y="75" opacity="0.5" width="82" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(409,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">llms</text></g></a><g transform="translate(0,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T14:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">9 AM EST</text></g><g transform="translate(82,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T15:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">10 AM EST</text></g><g transform="translate(164,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T16:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">11 AM EST</text></g><g transform="translate(247,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T17:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">12 PM EST</text></g><g transform="translate(329,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T18:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">1 PM EST</text></g><g transform="translate(411,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T19:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">2 PM EST</text></g><g transform="translate(494,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T20:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">3 PM EST</text></g><g transform="translate(576,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T21:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">4 PM EST</text></g><g transform="translate(658,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T22:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">5 PM EST</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 Sunday</title><rect width="700" height="150" x="0" y="0" fill="white"></rect><text data-start="2026-12-13T14:00:00+0000" class="day-label" font-size="10" fill="black" y="17" x="3">Sunday</text><a href="/2026/talks/sun-open" data-start="2026-12-13T14:00:00+0000" data-end="2026-12-13T14:10:00+0000" title="Sunday opening remarks" data-slug="sun-open"><title>Sun 9:00- 9:10 Sunday opening remarks</title><rect x="0" y="20" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(11,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sun-open</text></g></a><a href="/2026/talks/bone" data-start="2026-12-13T14:10:00+0000" data-end="2026-12-13T14:20:00+0000" title="BONE and gnaw.el: tracking what matters" data-slug="bone"><title>Sun 9:10- 9:20 BONE and gnaw.el: tracking what matters</title><rect x="13" y="20" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(24,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">bone</text></g></a><a href="/2026/talks/local" data-start="2026-12-13T14:40:00+0000" data-end="2026-12-13T14:55:00+0000" title="Local file history possibilities in Emacs" data-slug="local"><title>Sun 9:40- 9:55 Local file history possibilities in Emacs</title><rect x="54" y="20" opacity="0.5" width="20" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(72,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">local</text></g></a><a href="/2026/talks/hutch" data-start="2026-12-13T15:15:00+0000" data-end="2026-12-13T15:25:00+0000" title="hutch: code reviews for the mildly disenfranchised" data-slug="hutch"><title>Sun 10:15-10:25 hutch: code reviews for the mildly disenfranchised</title><rect x="102" y="20" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(113,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">hutch</text></g></a><a href="/2026/talks/team" data-start="2026-12-13T15:35:00+0000" data-end="2026-12-13T15:55:00+0000" title="Beyond the Chatbot: Team-Oriented AI in Emacs" data-slug="team"><title>Sun 10:35-10:55 Beyond the Chatbot: Team-Oriented AI in Emacs</title><rect stroke-width="3" x="130" y="20" opacity="0.8" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(155,73)"><text font-weight="bold" fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">team</text></g></a><a href="/2026/talks/compile" data-start="2026-12-13T16:15:00+0000" data-end="2026-12-13T16:35:00+0000" title="Beyond shell history: Saving compilation output in Emacs" data-slug="compile"><title>Sun 11:15-11:35 Beyond shell history: Saving compilation output in Emacs</title><rect x="185" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(210,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">compile</text></g></a><a href="/2026/talks/dnd" data-start="2026-12-13T18:00:00+0000" data-end="2026-12-13T18:20:00+0000" title="DnD and Org Roam: Becoming a Better DM with Emacs" data-slug="dnd"><title>Sun 1:00- 1:20 DnD and Org Roam: Becoming a Better DM with Emacs</title><rect x="329" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(354,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">dnd</text></g></a><a href="/2026/talks/bible" data-start="2026-12-13T18:30:00+0000" data-end="2026-12-13T18:50:00+0000" title="bible-gateway: A Two-Edged Sword in Emacs" data-slug="bible"><title>Sun 1:30- 1:50 bible-gateway: A Two-Edged Sword in Emacs</title><rect x="370" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(395,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">bible</text></g></a><a href="/2026/talks/ffs" data-start="2026-12-13T19:10:00+0000" data-end="2026-12-13T19:30:00+0000" title="Plain text presentations in GNU Emacs with ffs" data-slug="ffs"><title>Sun 2:10- 2:30 Plain text presentations in GNU Emacs with ffs</title><rect x="425" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(450,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">ffs</text></g></a><a href="/2026/talks/align" data-start="2026-12-13T19:50:00+0000" data-end="2026-12-13T20:10:00+0000" title="Column-aligning text in Emacs" data-slug="align"><title>Sun 2:50- 3:10 Column-aligning text in Emacs</title><rect x="480" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(505,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">align</text></g></a><a href="/2026/talks/anju" data-start="2026-12-13T20:30:00+0000" data-end="2026-12-13T20:50:00+0000" title="Revisiting Emacs Mouse Interactions with Anju" data-slug="anju"><title>Sun 3:30- 3:50 Revisiting Emacs Mouse Interactions with Anju</title><rect x="535" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(560,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">anju</text></g></a><a href="/2026/talks/android" data-start="2026-12-13T21:00:00+0000" data-end="2026-12-13T21:10:00+0000" title="Emacs on Android - Emacs for the next 40 years" data-slug="android"><title>Sun 4:00- 4:10 Emacs on Android - Emacs for the next 40 years</title><rect x="576" y="20" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(587,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">android</text></g></a><a href="/2026/talks/sun-close" data-start="2026-12-13T21:30:00+0000" data-end="2026-12-13T21:40:00+0000" title="Sunday closing remarks" data-slug="sun-close"><title>Sun 4:30- 4:40 Sunday closing remarks</title><rect x="617" y="20" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(628,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sun-close</text></g></a><a href="/2026/talks/prefix" data-start="2026-12-13T15:00:00+0000" data-end="2026-12-13T15:10:00+0000" title="prefix-tab-groups" data-slug="prefix"><title>Sun 10:00-10:10 prefix-tab-groups</title><rect x="82" y="75" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="5,5,5" fill="skyblue"></rect><g transform="translate(93,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">prefix</text></g></a><a href="/2026/talks/rau" data-start="2026-12-13T15:20:00+0000" data-end="2026-12-13T15:40:00+0000" title="Emacs as a Window Manager and concurrency" data-slug="rau"><title>Sun 10:20-10:40 Emacs as a Window Manager and concurrency</title><rect x="109" y="75" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(134,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">rau</text></g></a><a href="/2026/talks/babel" data-start="2026-12-13T16:00:00+0000" data-end="2026-12-13T16:10:00+0000" title="Org Babel everywhere" data-slug="babel"><title>Sun 11:00-11:10 Org Babel everywhere</title><rect x="164" y="75" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(175,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">babel</text></g></a><a href="/2026/talks/el-gpu" data-start="2026-12-13T16:30:00+0000" data-end="2026-12-13T16:50:00+0000" title="El-gpu and pix-el: GNU Emacs 2D and 3D game programming" data-slug="el-gpu"><title>Sun 11:30-11:50 El-gpu and pix-el: GNU Emacs 2D and 3D game programming</title><rect x="205" y="75" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(230,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">el-gpu</text></g></a><a href="/2026/talks/llms" data-start="2026-12-13T18:00:00+0000" data-end="2026-12-13T19:00:00+0000" title="[Panel] Emacs, LLMs, and Free Software" data-slug="llms"><title>Sun 1:00- 2:00 [Panel] Emacs, LLMs, and Free Software</title><rect x="329" y="75" opacity="0.5" width="82" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(409,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">llms</text></g></a><a href="/2026/talks/ghostel" data-start="2026-12-13T19:20:00+0000" data-end="2026-12-13T19:40:00+0000" title="Ghost in the Shell: a libghostty powered terminal for Emacs" data-slug="ghostel"><title>Sun 2:20- 2:40 Ghost in the Shell: a libghostty powered terminal for Emacs</title><rect x="439" y="75" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(464,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">ghostel</text></g></a><a href="/2026/talks/svg" data-start="2026-12-13T20:00:00+0000" data-end="2026-12-13T20:20:00+0000" title="A (sort of) REPL for learning SVG" data-slug="svg"><title>Sun 3:00- 3:20 A (sort of) REPL for learning SVG</title><rect x="494" y="75" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(519,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">svg</text></g></a><g transform="translate(0,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T14:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">9 AM EST</text></g><g transform="translate(82,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T15:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">10 AM EST</text></g><g transform="translate(164,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T16:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">11 AM EST</text></g><g transform="translate(247,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T17:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">12 PM EST</text></g><g transform="translate(329,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T18:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">1 PM EST</text></g><g transform="translate(411,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T19:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">2 PM EST</text></g><g transform="translate(494,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T20:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">3 PM EST</text></g><g transform="translate(576,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T21:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">4 PM EST</text></g><g transform="translate(658,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T22:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">5 PM EST</text></g></svg> </div> [[!toc ]] diff --git a/2026/info/virus-before.md b/2026/info/virus-before.md index e6f605c3..89bcd6b7 100644 --- a/2026/info/virus-before.md +++ b/2026/info/virus-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 2026-12-12. 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="virus"> -<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 data-start="2026-12-12T14:00:00+0000" class="day-label" font-size="10" fill="black" y="17" x="3">Saturday</text><a href="/2026/talks/sat-open" data-start="2026-12-12T14:00:00+0000" data-end="2026-12-12T14:10:00+0000" title="Saturday opening remarks" data-slug="sat-open"><title>Sat 9:00- 9:10 Saturday opening remarks</title><rect x="0" y="20" opacity="0.5" width="13" height="54" 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="/2026/talks/planning" data-start="2026-12-12T14:10:00+0000" data-end="2026-12-12T14:30:00+0000" title="The Emacs Planning Habits of a Questionably Effective Person: My 40-year journey of planning with Emacs, Org Mode, paper journals, etc." data-slug="planning"><title>Sat 9:10- 9:30 The Emacs Planning Habits of a Questionably Effective Person: My 40-year journey of planning with Emacs, Org Mode, paper journals, etc.</title><rect x="13" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(38,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">planning</text></g></a><a href="/2026/talks/listen" data-start="2026-12-12T14:50:00+0000" data-end="2026-12-12T15:10:00+0000" title="Controlling Emacs by voice using Emacslisten" data-slug="listen"><title>Sat 9:50-10:10 Controlling Emacs by voice using Emacslisten</title><rect x="68" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(93,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">listen</text></g></a><a href="/2026/talks/emacspeak" data-start="2026-12-12T15:30:00+0000" data-end="2026-12-12T16:00:00+0000" title="Multi-dimensional information processing with Emacs and Emacspeak: a blind man's perspective" data-slug="emacspeak"><title>Sat 10:30-11:00 Multi-dimensional information processing with Emacs and Emacspeak: a blind man's perspective</title><rect x="123" y="20" opacity="0.5" width="41" height="54" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(162,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">emacspeak</text></g></a><a href="/2026/talks/ltx-talk" data-start="2026-12-12T16:10:00+0000" data-end="2026-12-12T16:30:00+0000" title="ltx-talk: Accessible presentations with ox-beamer" data-slug="ltx-talk"><title>Sat 11:10-11:30 ltx-talk: Accessible presentations with ox-beamer</title><rect x="178" y="20" opacity="0.5" width="27" height="54" 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)">ltx-talk</text></g></a><a href="/2026/talks/plots" data-start="2026-12-12T18:00:00+0000" data-end="2026-12-12T18:20:00+0000" title="Plots with ROOTs: Resilient data visualization with Emacs, Org and gnuplot" data-slug="plots"><title>Sat 1:00- 1:20 Plots with ROOTs: Resilient data visualization with Emacs, Org and gnuplot</title><rect x="329" y="20" opacity="0.5" width="27" height="54" 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)">plots</text></g></a><a href="/2026/talks/ffs" data-start="2026-12-12T18:40:00+0000" data-end="2026-12-12T19:00:00+0000" title="Plain text presentations in GNU Emacs with ffs" data-slug="ffs"><title>Sat 1:40- 2:00 Plain text presentations in GNU Emacs with ffs</title><rect x="384" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(409,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">ffs</text></g></a><a href="/2026/talks/mobile" data-start="2026-12-12T19:20:00+0000" data-end="2026-12-12T19:30:00+0000" title="How I solved Org Mode's biggest mobile and collaboration problems" data-slug="mobile"><title>Sat 2:20- 2:30 How I solved Org Mode's biggest mobile and collaboration problems</title><rect x="439" y="20" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(450,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">mobile</text></g></a><a href="/2026/talks/hyperbole" data-start="2026-12-12T19:50:00+0000" data-end="2026-12-12T20:10:00+0000" title="Hyperbole, My Dear Watson" data-slug="hyperbole"><title>Sat 2:50- 3:10 Hyperbole, My Dear Watson</title><rect x="480" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(505,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">hyperbole</text></g></a><a href="/2026/talks/koutliner" data-start="2026-12-12T20:30:00+0000" data-end="2026-12-12T20:50:00+0000" title="Hyperbole Koutliner: The Best Autonumbered, Hyperlinking Outliner for Emacs" data-slug="koutliner"><title>Sat 3:30- 3:50 Hyperbole Koutliner: The Best Autonumbered, Hyperlinking Outliner for Emacs</title><rect x="535" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(560,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">koutliner</text></g></a><a href="/2026/talks/writing" data-start="2026-12-12T21:10:00+0000" data-end="2026-12-12T21:30:00+0000" title="Close the writing accountability gap with Emacs" data-slug="writing"><title>Sat 4:10- 4:30 Close the writing accountability gap with Emacs</title><rect x="590" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(615,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">writing</text></g></a><a href="/2026/talks/android" data-start="2026-12-12T21:50:00+0000" data-end="2026-12-12T22:00:00+0000" title="Emacs on Android - Emacs for the next 40 years" data-slug="android"><title>Sat 4:50- 5:00 Emacs on Android - Emacs for the next 40 years</title><rect x="645" y="20" opacity="0.5" width="13" height="54" 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)">android</text></g></a><a href="/2026/talks/sat-close" data-start="2026-12-12T22:20:00+0000" data-end="2026-12-12T22:30:00+0000" title="Saturday closing remarks / open session" data-slug="sat-close"><title>Sat 5:20- 5:30 Saturday closing remarks / open session</title><rect x="686" y="20" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(697,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sat-close</text></g></a><a href="/2026/talks/community" data-start="2026-12-12T15:30:00+0000" data-end="2026-12-12T16:30:00+0000" title="[Panel] Improving the Emacs Community: Onboarding, Participation, and Growth" data-slug="community"><title>Sat 10:30-11:30 [Panel] Improving the Emacs Community: Onboarding, Participation, and Growth</title><rect x="123" y="75" opacity="0.5" width="82" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(203,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">community</text></g></a><a href="/2026/talks/portable" data-start="2026-12-12T18:00:00+0000" data-end="2026-12-12T18:15:00+0000" title="Emacs as my portable user space across operating platforms" data-slug="portable"><title>Sat 1:00- 1:15 Emacs as my portable user space across operating platforms</title><rect x="329" y="75" opacity="0.5" width="20" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(347,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">portable</text></g></a><a href="/2026/talks/os" data-start="2026-12-12T18:35:00+0000" data-end="2026-12-12T18:55:00+0000" title="Emacs everywhere: A fun romp through esoteric operating systems" data-slug="os"><title>Sat 1:35- 1:55 Emacs everywhere: A fun romp through esoteric operating systems</title><rect x="377" y="75" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(402,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">os</text></g></a><a href="/2026/talks/cadet" data-start="2026-12-12T19:15:00+0000" data-end="2026-12-12T19:25:00+0000" title="My Space Cadet Deck - an Android Stream Deck replacement with deep Emacs integration" data-slug="cadet"><title>Sat 2:15- 2:25 My Space Cadet Deck - an Android Stream Deck replacement with deep Emacs integration</title><rect x="432" y="75" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(443,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">cadet</text></g></a><a href="/2026/talks/remoto" data-start="2026-12-12T19:45:00+0000" data-end="2026-12-12T20:05:00+0000" title="El Remoto: browse any GitHub repos without cloning them" data-slug="remoto"><title>Sat 2:45- 3:05 El Remoto: browse any GitHub repos without cloning them</title><rect x="473" y="75" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(498,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">remoto</text></g></a><a href="/2026/talks/guile" data-start="2026-12-12T20:25:00+0000" data-end="2026-12-12T20:45:00+0000" title="æmacs: having a hoot with a guile emacs" data-slug="guile"><title>Sat 3:25- 3:45 æmacs: having a hoot with a guile emacs</title><rect x="528" y="75" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(553,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">guile</text></g></a><a href="/2026/talks/virus" data-start="2026-12-12T21:05:00+0000" data-end="2026-12-12T21:25:00+0000" title="It's Probably Not a Virus" data-slug="virus"><title>Sat 4:05- 4:25 It's Probably Not a Virus</title><rect stroke-width="3" x="583" y="75" opacity="0.8" width="27" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(608,128)"><text font-weight="bold" fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">virus</text></g></a><g transform="translate(0,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T14:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">9 AM EST</text></g><g transform="translate(82,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T15:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">10 AM EST</text></g><g transform="translate(164,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T16:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">11 AM EST</text></g><g transform="translate(247,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T17:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">12 PM EST</text></g><g transform="translate(329,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T18:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">1 PM EST</text></g><g transform="translate(411,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T19:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">2 PM EST</text></g><g transform="translate(494,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T20:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">3 PM EST</text></g><g transform="translate(576,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T21:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">4 PM EST</text></g><g transform="translate(658,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T22:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">5 PM EST</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 data-start="2026-12-12T14:00:00+0000" class="day-label" font-size="10" fill="black" y="17" x="3">Saturday</text><a href="/2026/talks/sat-open" data-start="2026-12-12T14:00:00+0000" data-end="2026-12-12T14:10:00+0000" title="Saturday opening remarks" data-slug="sat-open"><title>Sat 9:00- 9:10 Saturday opening remarks</title><rect x="0" y="20" opacity="0.5" width="13" height="54" 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="/2026/talks/planning" data-start="2026-12-12T14:10:00+0000" data-end="2026-12-12T14:30:00+0000" title="The Emacs Planning Habits of a Questionably Effective Person: My 40-year journey of planning with Emacs, Org Mode, paper journals, etc." data-slug="planning"><title>Sat 9:10- 9:30 The Emacs Planning Habits of a Questionably Effective Person: My 40-year journey of planning with Emacs, Org Mode, paper journals, etc.</title><rect x="13" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(38,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">planning</text></g></a><a href="/2026/talks/listen" data-start="2026-12-12T14:50:00+0000" data-end="2026-12-12T15:10:00+0000" title="Emacslisten: Controlling Emacs by voice" data-slug="listen"><title>Sat 9:50-10:10 Emacslisten: Controlling Emacs by voice</title><rect x="68" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(93,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">listen</text></g></a><a href="/2026/talks/emacspeak" data-start="2026-12-12T15:30:00+0000" data-end="2026-12-12T16:00:00+0000" title="Multi-dimensional information processing with Emacs and Emacspeak: a blind man's perspective" data-slug="emacspeak"><title>Sat 10:30-11:00 Multi-dimensional information processing with Emacs and Emacspeak: a blind man's perspective</title><rect x="123" y="20" opacity="0.5" width="41" height="54" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(162,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">emacspeak</text></g></a><a href="/2026/talks/ltx-talk" data-start="2026-12-12T16:10:00+0000" data-end="2026-12-12T16:30:00+0000" title="ltx-talk: Accessible presentations with ox-beamer" data-slug="ltx-talk"><title>Sat 11:10-11:30 ltx-talk: Accessible presentations with ox-beamer</title><rect x="178" y="20" opacity="0.5" width="27" height="54" 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)">ltx-talk</text></g></a><a href="/2026/talks/plots" data-start="2026-12-12T18:00:00+0000" data-end="2026-12-12T18:20:00+0000" title="Plots with ROOTs: Resilient data visualization with Emacs, Org and gnuplot" data-slug="plots"><title>Sat 1:00- 1:20 Plots with ROOTs: Resilient data visualization with Emacs, Org and gnuplot</title><rect x="329" y="20" opacity="0.5" width="27" height="54" 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)">plots</text></g></a><a href="/2026/talks/tasks" data-start="2026-12-12T18:40:00+0000" data-end="2026-12-12T19:00:00+0000" title="Personal task management under stress (with Org mode)" data-slug="tasks"><title>Sat 1:40- 2:00 Personal task management under stress (with Org mode)</title><rect x="384" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(409,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">tasks</text></g></a><a href="/2026/talks/mobile" data-start="2026-12-12T19:20:00+0000" data-end="2026-12-12T19:30:00+0000" title="How I solved Org Mode's biggest mobile and collaboration problems" data-slug="mobile"><title>Sat 2:20- 2:30 How I solved Org Mode's biggest mobile and collaboration problems</title><rect x="439" y="20" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(450,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">mobile</text></g></a><a href="/2026/talks/hyperbole" data-start="2026-12-12T19:50:00+0000" data-end="2026-12-12T20:10:00+0000" title="Hyperbole, My Dear Watson" data-slug="hyperbole"><title>Sat 2:50- 3:10 Hyperbole, My Dear Watson</title><rect x="480" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(505,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">hyperbole</text></g></a><a href="/2026/talks/koutliner" data-start="2026-12-12T20:30:00+0000" data-end="2026-12-12T20:50:00+0000" title="Hyperbole Koutliner: The Best Autonumbered, Hyperlinking Outliner for Emacs" data-slug="koutliner"><title>Sat 3:30- 3:50 Hyperbole Koutliner: The Best Autonumbered, Hyperlinking Outliner for Emacs</title><rect x="535" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(560,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">koutliner</text></g></a><a href="/2026/talks/writing" data-start="2026-12-12T21:10:00+0000" data-end="2026-12-12T21:30:00+0000" title="Close the writing accountability gap with Emacs" data-slug="writing"><title>Sat 4:10- 4:30 Close the writing accountability gap with Emacs</title><rect x="590" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(615,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">writing</text></g></a><a href="/2026/talks/sat-close" data-start="2026-12-12T21:50:00+0000" data-end="2026-12-12T22:00:00+0000" title="Saturday closing remarks / open session" data-slug="sat-close"><title>Sat 4:50- 5:00 Saturday closing remarks / open session</title><rect x="645" y="20" opacity="0.5" width="13" height="54" 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)">sat-close</text></g></a><a href="/2026/talks/community" data-start="2026-12-12T15:30:00+0000" data-end="2026-12-12T16:30:00+0000" title="[Panel] Improving the Emacs Community: Onboarding, Participation, and Growth" data-slug="community"><title>Sat 10:30-11:30 [Panel] Improving the Emacs Community: Onboarding, Participation, and Growth</title><rect x="123" y="75" opacity="0.5" width="82" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(203,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">community</text></g></a><a href="/2026/talks/portable" data-start="2026-12-12T18:00:00+0000" data-end="2026-12-12T18:15:00+0000" title="Emacs as my portable user space across operating platforms" data-slug="portable"><title>Sat 1:00- 1:15 Emacs as my portable user space across operating platforms</title><rect x="329" y="75" opacity="0.5" width="20" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(347,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">portable</text></g></a><a href="/2026/talks/os" data-start="2026-12-12T18:35:00+0000" data-end="2026-12-12T18:55:00+0000" title="Emacs everywhere: A fun romp through esoteric operating systems" data-slug="os"><title>Sat 1:35- 1:55 Emacs everywhere: A fun romp through esoteric operating systems</title><rect x="377" y="75" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(402,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">os</text></g></a><a href="/2026/talks/cadet" data-start="2026-12-12T19:15:00+0000" data-end="2026-12-12T19:25:00+0000" title="My Space Cadet Deck - an Android Stream Deck replacement with deep Emacs integration" data-slug="cadet"><title>Sat 2:15- 2:25 My Space Cadet Deck - an Android Stream Deck replacement with deep Emacs integration</title><rect x="432" y="75" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(443,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">cadet</text></g></a><a href="/2026/talks/remoto" data-start="2026-12-12T19:45:00+0000" data-end="2026-12-12T20:05:00+0000" title="El Remoto: browse any GitHub repos without cloning them" data-slug="remoto"><title>Sat 2:45- 3:05 El Remoto: browse any GitHub repos without cloning them</title><rect x="473" y="75" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(498,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">remoto</text></g></a><a href="/2026/talks/guile" data-start="2026-12-12T20:25:00+0000" data-end="2026-12-12T20:45:00+0000" title="æmacs: having a hoot with a guile emacs" data-slug="guile"><title>Sat 3:25- 3:45 æmacs: having a hoot with a guile emacs</title><rect x="528" y="75" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(553,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">guile</text></g></a><a href="/2026/talks/virus" data-start="2026-12-12T21:05:00+0000" data-end="2026-12-12T21:25:00+0000" title="It's Probably Not a Virus" data-slug="virus"><title>Sat 4:05- 4:25 It's Probably Not a Virus</title><rect stroke-width="3" x="583" y="75" opacity="0.8" width="27" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(608,128)"><text font-weight="bold" fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">virus</text></g></a><g transform="translate(0,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T14:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">9 AM EST</text></g><g transform="translate(82,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T15:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">10 AM EST</text></g><g transform="translate(164,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T16:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">11 AM EST</text></g><g transform="translate(247,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T17:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">12 PM EST</text></g><g transform="translate(329,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T18:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">1 PM EST</text></g><g transform="translate(411,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T19:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">2 PM EST</text></g><g transform="translate(494,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T20:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">3 PM EST</text></g><g transform="translate(576,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T21:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">4 PM EST</text></g><g transform="translate(658,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T22:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">5 PM EST</text></g></svg> </div> [[!toc ]] diff --git a/2026/info/writing-before.md b/2026/info/writing-before.md index 9dcf9aab..a46e4ce6 100644 --- a/2026/info/writing-before.md +++ b/2026/info/writing-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 2026-12-12. Solid lines show talks with Q&A via BigBlueButton. Dashed lines show talks with Q&A via IRC or Etherpad.<div class="schedule-in-context schedule-svg-container" data-slug="writing"> -<svg width="700" height="150" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><title>Schedule for Saturday</title><rect width="700" height="150" x="0" y="0" fill="white"></rect><text data-start="2026-12-12T14:00:00+0000" class="day-label" font-size="10" fill="black" y="17" x="3">Saturday</text><a href="/2026/talks/sat-open" data-start="2026-12-12T14:00:00+0000" data-end="2026-12-12T14:10:00+0000" title="Saturday opening remarks" data-slug="sat-open"><title>Sat 9:00- 9:10 Saturday opening remarks</title><rect x="0" y="20" opacity="0.5" width="13" height="54" 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="/2026/talks/planning" data-start="2026-12-12T14:10:00+0000" data-end="2026-12-12T14:30:00+0000" title="The Emacs Planning Habits of a Questionably Effective Person: My 40-year journey of planning with Emacs, Org Mode, paper journals, etc." data-slug="planning"><title>Sat 9:10- 9:30 The Emacs Planning Habits of a Questionably Effective Person: My 40-year journey of planning with Emacs, Org Mode, paper journals, etc.</title><rect x="13" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(38,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">planning</text></g></a><a href="/2026/talks/listen" data-start="2026-12-12T14:50:00+0000" data-end="2026-12-12T15:10:00+0000" title="Controlling Emacs by voice using Emacslisten" data-slug="listen"><title>Sat 9:50-10:10 Controlling Emacs by voice using Emacslisten</title><rect x="68" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(93,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">listen</text></g></a><a href="/2026/talks/emacspeak" data-start="2026-12-12T15:30:00+0000" data-end="2026-12-12T16:00:00+0000" title="Multi-dimensional information processing with Emacs and Emacspeak: a blind man's perspective" data-slug="emacspeak"><title>Sat 10:30-11:00 Multi-dimensional information processing with Emacs and Emacspeak: a blind man's perspective</title><rect x="123" y="20" opacity="0.5" width="41" height="54" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(162,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">emacspeak</text></g></a><a href="/2026/talks/ltx-talk" data-start="2026-12-12T16:10:00+0000" data-end="2026-12-12T16:30:00+0000" title="ltx-talk: Accessible presentations with ox-beamer" data-slug="ltx-talk"><title>Sat 11:10-11:30 ltx-talk: Accessible presentations with ox-beamer</title><rect x="178" y="20" opacity="0.5" width="27" height="54" 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)">ltx-talk</text></g></a><a href="/2026/talks/plots" data-start="2026-12-12T18:00:00+0000" data-end="2026-12-12T18:20:00+0000" title="Plots with ROOTs: Resilient data visualization with Emacs, Org and gnuplot" data-slug="plots"><title>Sat 1:00- 1:20 Plots with ROOTs: Resilient data visualization with Emacs, Org and gnuplot</title><rect x="329" y="20" opacity="0.5" width="27" height="54" 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)">plots</text></g></a><a href="/2026/talks/ffs" data-start="2026-12-12T18:40:00+0000" data-end="2026-12-12T19:00:00+0000" title="Plain text presentations in GNU Emacs with ffs" data-slug="ffs"><title>Sat 1:40- 2:00 Plain text presentations in GNU Emacs with ffs</title><rect x="384" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(409,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">ffs</text></g></a><a href="/2026/talks/mobile" data-start="2026-12-12T19:20:00+0000" data-end="2026-12-12T19:30:00+0000" title="How I solved Org Mode's biggest mobile and collaboration problems" data-slug="mobile"><title>Sat 2:20- 2:30 How I solved Org Mode's biggest mobile and collaboration problems</title><rect x="439" y="20" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(450,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">mobile</text></g></a><a href="/2026/talks/hyperbole" data-start="2026-12-12T19:50:00+0000" data-end="2026-12-12T20:10:00+0000" title="Hyperbole, My Dear Watson" data-slug="hyperbole"><title>Sat 2:50- 3:10 Hyperbole, My Dear Watson</title><rect x="480" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(505,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">hyperbole</text></g></a><a href="/2026/talks/koutliner" data-start="2026-12-12T20:30:00+0000" data-end="2026-12-12T20:50:00+0000" title="Hyperbole Koutliner: The Best Autonumbered, Hyperlinking Outliner for Emacs" data-slug="koutliner"><title>Sat 3:30- 3:50 Hyperbole Koutliner: The Best Autonumbered, Hyperlinking Outliner for Emacs</title><rect x="535" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(560,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">koutliner</text></g></a><a href="/2026/talks/writing" data-start="2026-12-12T21:10:00+0000" data-end="2026-12-12T21:30:00+0000" title="Close the writing accountability gap with Emacs" data-slug="writing"><title>Sat 4:10- 4:30 Close the writing accountability gap with Emacs</title><rect stroke-width="3" x="590" y="20" opacity="0.8" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(615,73)"><text font-weight="bold" fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">writing</text></g></a><a href="/2026/talks/android" data-start="2026-12-12T21:50:00+0000" data-end="2026-12-12T22:00:00+0000" title="Emacs on Android - Emacs for the next 40 years" data-slug="android"><title>Sat 4:50- 5:00 Emacs on Android - Emacs for the next 40 years</title><rect x="645" y="20" opacity="0.5" width="13" height="54" 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)">android</text></g></a><a href="/2026/talks/sat-close" data-start="2026-12-12T22:20:00+0000" data-end="2026-12-12T22:30:00+0000" title="Saturday closing remarks / open session" data-slug="sat-close"><title>Sat 5:20- 5:30 Saturday closing remarks / open session</title><rect x="686" y="20" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(697,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sat-close</text></g></a><a href="/2026/talks/community" data-start="2026-12-12T15:30:00+0000" data-end="2026-12-12T16:30:00+0000" title="[Panel] Improving the Emacs Community: Onboarding, Participation, and Growth" data-slug="community"><title>Sat 10:30-11:30 [Panel] Improving the Emacs Community: Onboarding, Participation, and Growth</title><rect x="123" y="75" opacity="0.5" width="82" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(203,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">community</text></g></a><a href="/2026/talks/portable" data-start="2026-12-12T18:00:00+0000" data-end="2026-12-12T18:15:00+0000" title="Emacs as my portable user space across operating platforms" data-slug="portable"><title>Sat 1:00- 1:15 Emacs as my portable user space across operating platforms</title><rect x="329" y="75" opacity="0.5" width="20" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(347,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">portable</text></g></a><a href="/2026/talks/os" data-start="2026-12-12T18:35:00+0000" data-end="2026-12-12T18:55:00+0000" title="Emacs everywhere: A fun romp through esoteric operating systems" data-slug="os"><title>Sat 1:35- 1:55 Emacs everywhere: A fun romp through esoteric operating systems</title><rect x="377" y="75" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(402,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">os</text></g></a><a href="/2026/talks/cadet" data-start="2026-12-12T19:15:00+0000" data-end="2026-12-12T19:25:00+0000" title="My Space Cadet Deck - an Android Stream Deck replacement with deep Emacs integration" data-slug="cadet"><title>Sat 2:15- 2:25 My Space Cadet Deck - an Android Stream Deck replacement with deep Emacs integration</title><rect x="432" y="75" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(443,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">cadet</text></g></a><a href="/2026/talks/remoto" data-start="2026-12-12T19:45:00+0000" data-end="2026-12-12T20:05:00+0000" title="El Remoto: browse any GitHub repos without cloning them" data-slug="remoto"><title>Sat 2:45- 3:05 El Remoto: browse any GitHub repos without cloning them</title><rect x="473" y="75" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(498,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">remoto</text></g></a><a href="/2026/talks/guile" data-start="2026-12-12T20:25:00+0000" data-end="2026-12-12T20:45:00+0000" title="æmacs: having a hoot with a guile emacs" data-slug="guile"><title>Sat 3:25- 3:45 æmacs: having a hoot with a guile emacs</title><rect x="528" y="75" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(553,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">guile</text></g></a><a href="/2026/talks/virus" data-start="2026-12-12T21:05:00+0000" data-end="2026-12-12T21:25:00+0000" title="It's Probably Not a Virus" data-slug="virus"><title>Sat 4:05- 4:25 It's Probably Not a Virus</title><rect x="583" y="75" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(608,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">virus</text></g></a><g transform="translate(0,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T14:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">9 AM EST</text></g><g transform="translate(82,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T15:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">10 AM EST</text></g><g transform="translate(164,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T16:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">11 AM EST</text></g><g transform="translate(247,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T17:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">12 PM EST</text></g><g transform="translate(329,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T18:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">1 PM EST</text></g><g transform="translate(411,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T19:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">2 PM EST</text></g><g transform="translate(494,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T20:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">3 PM EST</text></g><g transform="translate(576,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T21:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">4 PM EST</text></g><g transform="translate(658,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T22:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">5 PM EST</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 data-start="2026-12-12T14:00:00+0000" class="day-label" font-size="10" fill="black" y="17" x="3">Saturday</text><a href="/2026/talks/sat-open" data-start="2026-12-12T14:00:00+0000" data-end="2026-12-12T14:10:00+0000" title="Saturday opening remarks" data-slug="sat-open"><title>Sat 9:00- 9:10 Saturday opening remarks</title><rect x="0" y="20" opacity="0.5" width="13" height="54" 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="/2026/talks/planning" data-start="2026-12-12T14:10:00+0000" data-end="2026-12-12T14:30:00+0000" title="The Emacs Planning Habits of a Questionably Effective Person: My 40-year journey of planning with Emacs, Org Mode, paper journals, etc." data-slug="planning"><title>Sat 9:10- 9:30 The Emacs Planning Habits of a Questionably Effective Person: My 40-year journey of planning with Emacs, Org Mode, paper journals, etc.</title><rect x="13" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(38,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">planning</text></g></a><a href="/2026/talks/listen" data-start="2026-12-12T14:50:00+0000" data-end="2026-12-12T15:10:00+0000" title="Emacslisten: Controlling Emacs by voice" data-slug="listen"><title>Sat 9:50-10:10 Emacslisten: Controlling Emacs by voice</title><rect x="68" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(93,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">listen</text></g></a><a href="/2026/talks/emacspeak" data-start="2026-12-12T15:30:00+0000" data-end="2026-12-12T16:00:00+0000" title="Multi-dimensional information processing with Emacs and Emacspeak: a blind man's perspective" data-slug="emacspeak"><title>Sat 10:30-11:00 Multi-dimensional information processing with Emacs and Emacspeak: a blind man's perspective</title><rect x="123" y="20" opacity="0.5" width="41" height="54" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(162,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">emacspeak</text></g></a><a href="/2026/talks/ltx-talk" data-start="2026-12-12T16:10:00+0000" data-end="2026-12-12T16:30:00+0000" title="ltx-talk: Accessible presentations with ox-beamer" data-slug="ltx-talk"><title>Sat 11:10-11:30 ltx-talk: Accessible presentations with ox-beamer</title><rect x="178" y="20" opacity="0.5" width="27" height="54" 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)">ltx-talk</text></g></a><a href="/2026/talks/plots" data-start="2026-12-12T18:00:00+0000" data-end="2026-12-12T18:20:00+0000" title="Plots with ROOTs: Resilient data visualization with Emacs, Org and gnuplot" data-slug="plots"><title>Sat 1:00- 1:20 Plots with ROOTs: Resilient data visualization with Emacs, Org and gnuplot</title><rect x="329" y="20" opacity="0.5" width="27" height="54" 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)">plots</text></g></a><a href="/2026/talks/tasks" data-start="2026-12-12T18:40:00+0000" data-end="2026-12-12T19:00:00+0000" title="Personal task management under stress (with Org mode)" data-slug="tasks"><title>Sat 1:40- 2:00 Personal task management under stress (with Org mode)</title><rect x="384" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(409,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">tasks</text></g></a><a href="/2026/talks/mobile" data-start="2026-12-12T19:20:00+0000" data-end="2026-12-12T19:30:00+0000" title="How I solved Org Mode's biggest mobile and collaboration problems" data-slug="mobile"><title>Sat 2:20- 2:30 How I solved Org Mode's biggest mobile and collaboration problems</title><rect x="439" y="20" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(450,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">mobile</text></g></a><a href="/2026/talks/hyperbole" data-start="2026-12-12T19:50:00+0000" data-end="2026-12-12T20:10:00+0000" title="Hyperbole, My Dear Watson" data-slug="hyperbole"><title>Sat 2:50- 3:10 Hyperbole, My Dear Watson</title><rect x="480" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(505,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">hyperbole</text></g></a><a href="/2026/talks/koutliner" data-start="2026-12-12T20:30:00+0000" data-end="2026-12-12T20:50:00+0000" title="Hyperbole Koutliner: The Best Autonumbered, Hyperlinking Outliner for Emacs" data-slug="koutliner"><title>Sat 3:30- 3:50 Hyperbole Koutliner: The Best Autonumbered, Hyperlinking Outliner for Emacs</title><rect x="535" y="20" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(560,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">koutliner</text></g></a><a href="/2026/talks/writing" data-start="2026-12-12T21:10:00+0000" data-end="2026-12-12T21:30:00+0000" title="Close the writing accountability gap with Emacs" data-slug="writing"><title>Sat 4:10- 4:30 Close the writing accountability gap with Emacs</title><rect stroke-width="3" x="590" y="20" opacity="0.8" width="27" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(615,73)"><text font-weight="bold" fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">writing</text></g></a><a href="/2026/talks/sat-close" data-start="2026-12-12T21:50:00+0000" data-end="2026-12-12T22:00:00+0000" title="Saturday closing remarks / open session" data-slug="sat-close"><title>Sat 4:50- 5:00 Saturday closing remarks / open session</title><rect x="645" y="20" opacity="0.5" width="13" height="54" 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)">sat-close</text></g></a><a href="/2026/talks/community" data-start="2026-12-12T15:30:00+0000" data-end="2026-12-12T16:30:00+0000" title="[Panel] Improving the Emacs Community: Onboarding, Participation, and Growth" data-slug="community"><title>Sat 10:30-11:30 [Panel] Improving the Emacs Community: Onboarding, Participation, and Growth</title><rect x="123" y="75" opacity="0.5" width="82" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(203,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">community</text></g></a><a href="/2026/talks/portable" data-start="2026-12-12T18:00:00+0000" data-end="2026-12-12T18:15:00+0000" title="Emacs as my portable user space across operating platforms" data-slug="portable"><title>Sat 1:00- 1:15 Emacs as my portable user space across operating platforms</title><rect x="329" y="75" opacity="0.5" width="20" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(347,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">portable</text></g></a><a href="/2026/talks/os" data-start="2026-12-12T18:35:00+0000" data-end="2026-12-12T18:55:00+0000" title="Emacs everywhere: A fun romp through esoteric operating systems" data-slug="os"><title>Sat 1:35- 1:55 Emacs everywhere: A fun romp through esoteric operating systems</title><rect x="377" y="75" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(402,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">os</text></g></a><a href="/2026/talks/cadet" data-start="2026-12-12T19:15:00+0000" data-end="2026-12-12T19:25:00+0000" title="My Space Cadet Deck - an Android Stream Deck replacement with deep Emacs integration" data-slug="cadet"><title>Sat 2:15- 2:25 My Space Cadet Deck - an Android Stream Deck replacement with deep Emacs integration</title><rect x="432" y="75" opacity="0.5" width="13" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(443,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">cadet</text></g></a><a href="/2026/talks/remoto" data-start="2026-12-12T19:45:00+0000" data-end="2026-12-12T20:05:00+0000" title="El Remoto: browse any GitHub repos without cloning them" data-slug="remoto"><title>Sat 2:45- 3:05 El Remoto: browse any GitHub repos without cloning them</title><rect x="473" y="75" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(498,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">remoto</text></g></a><a href="/2026/talks/guile" data-start="2026-12-12T20:25:00+0000" data-end="2026-12-12T20:45:00+0000" title="æmacs: having a hoot with a guile emacs" data-slug="guile"><title>Sat 3:25- 3:45 æmacs: having a hoot with a guile emacs</title><rect x="528" y="75" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(553,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">guile</text></g></a><a href="/2026/talks/virus" data-start="2026-12-12T21:05:00+0000" data-end="2026-12-12T21:25:00+0000" title="It's Probably Not a Virus" data-slug="virus"><title>Sat 4:05- 4:25 It's Probably Not a Virus</title><rect x="583" y="75" opacity="0.5" width="27" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(608,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">virus</text></g></a><g transform="translate(0,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T14:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">9 AM EST</text></g><g transform="translate(82,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T15:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">10 AM EST</text></g><g transform="translate(164,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T16:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">11 AM EST</text></g><g transform="translate(247,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T17:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">12 PM EST</text></g><g transform="translate(329,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T18:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">1 PM EST</text></g><g transform="translate(411,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T19:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">2 PM EST</text></g><g transform="translate(494,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T20:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">3 PM EST</text></g><g transform="translate(576,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T21:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">4 PM EST</text></g><g transform="translate(658,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T22:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">5 PM EST</text></g></svg> </div> [[!toc ]] diff --git a/2026/info/writing-nav.md b/2026/info/writing-nav.md index 6abf5c95..acc3f760 100644 --- a/2026/info/writing-nav.md +++ b/2026/info/writing-nav.md @@ -2,6 +2,6 @@ <div class="talk-nav"> Back to the [[talks]] Previous by time: <a href="/2026/talks/virus">It's Probably Not a Virus</a> -Next by time: <a href="/2026/talks/android">Emacs on Android - Emacs for the next 40 years</a> +Next by time: <a href="/2026/talks/sat-close">Saturday closing remarks / open session</a> Track: <span class="sched-track General">General</span> - <strong><a href="https://emacsconf.org/2026/watch/gen">Watch</a></strong> </div> diff --git a/2026/schedule-2026-12-12.md b/2026/schedule-2026-12-12.md index 746fa7da..10f80701 100644 --- a/2026/schedule-2026-12-12.md +++ b/2026/schedule-2026-12-12.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 data-start="2026-12-12T14:00:00+0000" class="day-label" font-size="10" fill="black" y="17" x="3">Saturday</text><a href="/2026/talks/sat-open" data-start="2026-12-12T14:00:00+0000" data-end="2026-12-12T14:10:00+0000" title="Saturday opening remarks" data-slug="sat-open"><title>Sat 9:00- 9:10 Saturday opening remarks</title><rect x="0" y="20" opacity="0.8" width="15" height="54" 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="/2026/talks/planning" data-start="2026-12-12T14:10:00+0000" data-end="2026-12-12T14:30:00+0000" title="The Emacs Planning Habits of a Questionably Effective Person: My 40-year journey of planning with Emacs, Org Mode, paper journals, etc." data-slug="planning"><title>Sat 9:10- 9:30 The Emacs Planning Habits of a Questionably Effective Person: My 40-year journey of planning with Emacs, Org Mode, paper journals, etc.</title><rect x="15" y="20" opacity="0.8" width="31" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(44,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">planning</text></g></a><a href="/2026/talks/listen" data-start="2026-12-12T14:50:00+0000" data-end="2026-12-12T15:10:00+0000" title="Controlling Emacs by voice using Emacslisten" data-slug="listen"><title>Sat 9:50-10:10 Controlling Emacs by voice using Emacslisten</title><rect x="78" y="20" opacity="0.8" width="31" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(107,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">listen</text></g></a><a href="/2026/talks/emacspeak" data-start="2026-12-12T15:30:00+0000" data-end="2026-12-12T16:00:00+0000" title="Multi-dimensional information processing with Emacs and Emacspeak: a blind man's perspective" data-slug="emacspeak"><title>Sat 10:30-11:00 Multi-dimensional information processing with Emacs and Emacspeak: a blind man's perspective</title><rect x="141" y="20" opacity="0.8" width="47" height="54" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(186,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">emacspeak</text></g></a><a href="/2026/talks/ltx-talk" data-start="2026-12-12T16:10:00+0000" data-end="2026-12-12T16:30:00+0000" title="ltx-talk: Accessible presentations with ox-beamer" data-slug="ltx-talk"><title>Sat 11:10-11:30 ltx-talk: Accessible presentations with ox-beamer</title><rect x="203" y="20" opacity="0.8" width="31" height="54" 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)">ltx-talk</text></g></a><a href="/2026/talks/plots" data-start="2026-12-12T18:00:00+0000" data-end="2026-12-12T18:20:00+0000" title="Plots with ROOTs: Resilient data visualization with Emacs, Org and gnuplot" data-slug="plots"><title>Sat 1:00- 1:20 Plots with ROOTs: Resilient data visualization with Emacs, Org and gnuplot</title><rect x="376" y="20" opacity="0.8" width="31" height="54" 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)">plots</text></g></a><a href="/2026/talks/ffs" data-start="2026-12-12T18:40:00+0000" data-end="2026-12-12T19:00:00+0000" title="Plain text presentations in GNU Emacs with ffs" data-slug="ffs"><title>Sat 1:40- 2:00 Plain text presentations in GNU Emacs with ffs</title><rect x="439" y="20" opacity="0.8" width="31" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(468,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">ffs</text></g></a><a href="/2026/talks/mobile" data-start="2026-12-12T19:20:00+0000" data-end="2026-12-12T19:30:00+0000" title="How I solved Org Mode's biggest mobile and collaboration problems" data-slug="mobile"><title>Sat 2:20- 2:30 How I solved Org Mode's biggest mobile and collaboration problems</title><rect x="501" y="20" opacity="0.8" width="15" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(514,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">mobile</text></g></a><a href="/2026/talks/hyperbole" data-start="2026-12-12T19:50:00+0000" data-end="2026-12-12T20:10:00+0000" title="Hyperbole, My Dear Watson" data-slug="hyperbole"><title>Sat 2:50- 3:10 Hyperbole, My Dear Watson</title><rect x="549" y="20" opacity="0.8" width="31" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(578,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">hyperbole</text></g></a><a href="/2026/talks/koutliner" data-start="2026-12-12T20:30:00+0000" data-end="2026-12-12T20:50:00+0000" title="Hyperbole Koutliner: The Best Autonumbered, Hyperlinking Outliner for Emacs" data-slug="koutliner"><title>Sat 3:30- 3:50 Hyperbole Koutliner: The Best Autonumbered, Hyperlinking Outliner for Emacs</title><rect x="611" y="20" opacity="0.8" width="31" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(640,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">koutliner</text></g></a><a href="/2026/talks/writing" data-start="2026-12-12T21:10:00+0000" data-end="2026-12-12T21:30:00+0000" title="Close the writing accountability gap with Emacs" data-slug="writing"><title>Sat 4:10- 4:30 Close the writing accountability gap with Emacs</title><rect x="674" y="20" opacity="0.8" width="31" height="54" 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)">writing</text></g></a><a href="/2026/talks/android" data-start="2026-12-12T21:50:00+0000" data-end="2026-12-12T22:00:00+0000" title="Emacs on Android - Emacs for the next 40 years" data-slug="android"><title>Sat 4:50- 5:00 Emacs on Android - Emacs for the next 40 years</title><rect x="737" y="20" opacity="0.8" width="15" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(750,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">android</text></g></a><a href="/2026/talks/sat-close" data-start="2026-12-12T22:20:00+0000" data-end="2026-12-12T22:30:00+0000" title="Saturday closing remarks / open session" data-slug="sat-close"><title>Sat 5:20- 5:30 Saturday closing remarks / open session</title><rect x="784" y="20" opacity="0.8" width="15" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(797,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sat-close</text></g></a><a href="/2026/talks/community" data-start="2026-12-12T15:30:00+0000" data-end="2026-12-12T16:30:00+0000" title="[Panel] Improving the Emacs Community: Onboarding, Participation, and Growth" data-slug="community"><title>Sat 10:30-11:30 [Panel] Improving the Emacs Community: Onboarding, Participation, and Growth</title><rect x="141" y="75" opacity="0.8" width="94" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(233,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">community</text></g></a><a href="/2026/talks/portable" data-start="2026-12-12T18:00:00+0000" data-end="2026-12-12T18:15:00+0000" title="Emacs as my portable user space across operating platforms" data-slug="portable"><title>Sat 1:00- 1:15 Emacs as my portable user space across operating platforms</title><rect x="376" y="75" opacity="0.8" width="23" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(397,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">portable</text></g></a><a href="/2026/talks/os" data-start="2026-12-12T18:35:00+0000" data-end="2026-12-12T18:55:00+0000" title="Emacs everywhere: A fun romp through esoteric operating systems" data-slug="os"><title>Sat 1:35- 1:55 Emacs everywhere: A fun romp through esoteric operating systems</title><rect x="431" y="75" opacity="0.8" width="31" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(460,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">os</text></g></a><a href="/2026/talks/cadet" data-start="2026-12-12T19:15:00+0000" data-end="2026-12-12T19:25:00+0000" title="My Space Cadet Deck - an Android Stream Deck replacement with deep Emacs integration" data-slug="cadet"><title>Sat 2:15- 2:25 My Space Cadet Deck - an Android Stream Deck replacement with deep Emacs integration</title><rect x="494" y="75" opacity="0.8" width="15" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(507,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">cadet</text></g></a><a href="/2026/talks/remoto" data-start="2026-12-12T19:45:00+0000" data-end="2026-12-12T20:05:00+0000" title="El Remoto: browse any GitHub repos without cloning them" data-slug="remoto"><title>Sat 2:45- 3:05 El Remoto: browse any GitHub repos without cloning them</title><rect x="541" y="75" opacity="0.8" width="31" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(570,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">remoto</text></g></a><a href="/2026/talks/guile" data-start="2026-12-12T20:25:00+0000" data-end="2026-12-12T20:45:00+0000" title="æmacs: having a hoot with a guile emacs" data-slug="guile"><title>Sat 3:25- 3:45 æmacs: having a hoot with a guile emacs</title><rect x="603" y="75" opacity="0.8" width="31" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(632,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">guile</text></g></a><a href="/2026/talks/virus" data-start="2026-12-12T21:05:00+0000" data-end="2026-12-12T21:25:00+0000" title="It's Probably Not a Virus" data-slug="virus"><title>Sat 4:05- 4:25 It's Probably Not a Virus</title><rect x="666" y="75" opacity="0.8" width="31" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(695,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">virus</text></g></a><g transform="translate(0,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T14:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">9 AM EST</text></g><g transform="translate(94,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T15:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">10 AM EST</text></g><g transform="translate(188,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T16:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">11 AM EST</text></g><g transform="translate(282,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T17:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">12 PM EST</text></g><g transform="translate(376,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T18:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">1 PM EST</text></g><g transform="translate(470,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T19:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">2 PM EST</text></g><g transform="translate(564,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T20:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">3 PM EST</text></g><g transform="translate(658,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T21:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">4 PM EST</text></g><g transform="translate(752,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T22:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">5 PM EST</text></g></svg></div>
\ No newline at end of file +<div class="schedule-svg-container"><svg width="800" height="100" 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="100" x="0" y="0" fill="white"></rect><text data-start="2026-12-12T14:00:00+0000" class="day-label" font-size="10" fill="black" y="17" x="3">Saturday</text><a href="/2026/talks/sat-open" data-start="2026-12-12T14:00:00+0000" data-end="2026-12-12T14:10:00+0000" title="Saturday opening remarks" data-slug="sat-open"><title>Sat 9:00- 9:10 Saturday opening remarks</title><rect x="0" y="20" opacity="0.8" width="15" height="29" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(13,48)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sat-open</text></g></a><a href="/2026/talks/planning" data-start="2026-12-12T14:10:00+0000" data-end="2026-12-12T14:30:00+0000" title="The Emacs Planning Habits of a Questionably Effective Person: My 40-year journey of planning with Emacs, Org Mode, paper journals, etc." data-slug="planning"><title>Sat 9:10- 9:30 The Emacs Planning Habits of a Questionably Effective Person: My 40-year journey of planning with Emacs, Org Mode, paper journals, etc.</title><rect x="15" y="20" opacity="0.8" width="31" height="29" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(44,48)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">planning</text></g></a><a href="/2026/talks/listen" data-start="2026-12-12T14:50:00+0000" data-end="2026-12-12T15:10:00+0000" title="Emacslisten: Controlling Emacs by voice" data-slug="listen"><title>Sat 9:50-10:10 Emacslisten: Controlling Emacs by voice</title><rect x="78" y="20" opacity="0.8" width="31" height="29" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(107,48)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">listen</text></g></a><a href="/2026/talks/emacspeak" data-start="2026-12-12T15:30:00+0000" data-end="2026-12-12T16:00:00+0000" title="Multi-dimensional information processing with Emacs and Emacspeak: a blind man's perspective" data-slug="emacspeak"><title>Sat 10:30-11:00 Multi-dimensional information processing with Emacs and Emacspeak: a blind man's perspective</title><rect x="141" y="20" opacity="0.8" width="47" height="29" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(186,48)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">emacspeak</text></g></a><a href="/2026/talks/ltx-talk" data-start="2026-12-12T16:10:00+0000" data-end="2026-12-12T16:30:00+0000" title="ltx-talk: Accessible presentations with ox-beamer" data-slug="ltx-talk"><title>Sat 11:10-11:30 ltx-talk: Accessible presentations with ox-beamer</title><rect x="203" y="20" opacity="0.8" width="31" height="29" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(232,48)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">ltx-talk</text></g></a><a href="/2026/talks/plots" data-start="2026-12-12T18:00:00+0000" data-end="2026-12-12T18:20:00+0000" title="Plots with ROOTs: Resilient data visualization with Emacs, Org and gnuplot" data-slug="plots"><title>Sat 1:00- 1:20 Plots with ROOTs: Resilient data visualization with Emacs, Org and gnuplot</title><rect x="376" y="20" opacity="0.8" width="31" height="29" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(405,48)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">plots</text></g></a><a href="/2026/talks/ffs" data-start="2026-12-12T18:40:00+0000" data-end="2026-12-12T19:00:00+0000" title="Plain text presentations in GNU Emacs with ffs" data-slug="ffs"><title>Sat 1:40- 2:00 Plain text presentations in GNU Emacs with ffs</title><rect x="439" y="20" opacity="0.8" width="31" height="29" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(468,48)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">ffs</text></g></a><a href="/2026/talks/mobile" data-start="2026-12-12T19:20:00+0000" data-end="2026-12-12T19:30:00+0000" title="How I solved Org Mode's biggest mobile and collaboration problems" data-slug="mobile"><title>Sat 2:20- 2:30 How I solved Org Mode's biggest mobile and collaboration problems</title><rect x="501" y="20" opacity="0.8" width="15" height="29" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(514,48)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">mobile</text></g></a><a href="/2026/talks/hyperbole" data-start="2026-12-12T19:50:00+0000" data-end="2026-12-12T20:10:00+0000" title="Hyperbole, My Dear Watson" data-slug="hyperbole"><title>Sat 2:50- 3:10 Hyperbole, My Dear Watson</title><rect x="549" y="20" opacity="0.8" width="31" height="29" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(578,48)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">hyperbole</text></g></a><a href="/2026/talks/koutliner" data-start="2026-12-12T20:30:00+0000" data-end="2026-12-12T20:50:00+0000" title="Hyperbole Koutliner: The Best Autonumbered, Hyperlinking Outliner for Emacs" data-slug="koutliner"><title>Sat 3:30- 3:50 Hyperbole Koutliner: The Best Autonumbered, Hyperlinking Outliner for Emacs</title><rect x="611" y="20" opacity="0.8" width="31" height="29" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(640,48)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">koutliner</text></g></a><a href="/2026/talks/writing" data-start="2026-12-12T21:10:00+0000" data-end="2026-12-12T21:30:00+0000" title="Close the writing accountability gap with Emacs" data-slug="writing"><title>Sat 4:10- 4:30 Close the writing accountability gap with Emacs</title><rect x="674" y="20" opacity="0.8" width="31" height="29" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(703,48)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">writing</text></g></a><a href="/2026/talks/android" data-start="2026-12-12T21:50:00+0000" data-end="2026-12-12T22:00:00+0000" title="Emacs on Android - Emacs for the next 40 years" data-slug="android"><title>Sat 4:50- 5:00 Emacs on Android - Emacs for the next 40 years</title><rect x="737" y="20" opacity="0.8" width="15" height="29" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(750,48)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">android</text></g></a><a href="/2026/talks/sat-close" data-start="2026-12-12T22:20:00+0000" data-end="2026-12-12T22:30:00+0000" title="Saturday closing remarks / open session" data-slug="sat-close"><title>Sat 5:20- 5:30 Saturday closing remarks / open session</title><rect x="784" y="20" opacity="0.8" width="15" height="29" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(797,48)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sat-close</text></g></a><a href="/2026/talks/community" data-start="2026-12-12T15:30:00+0000" data-end="2026-12-12T16:30:00+0000" title="[Panel] Improving the Emacs Community: Onboarding, Participation, and Growth" data-slug="community"><title>Sat 10:30-11:30 [Panel] Improving the Emacs Community: Onboarding, Participation, and Growth</title><rect x="141" y="50" opacity="0.8" width="94" height="29" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(233,78)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">community</text></g></a><a href="/2026/talks/portable" data-start="2026-12-12T18:00:00+0000" data-end="2026-12-12T18:15:00+0000" title="Emacs as my portable user space across operating platforms" data-slug="portable"><title>Sat 1:00- 1:15 Emacs as my portable user space across operating platforms</title><rect x="376" y="50" opacity="0.8" width="23" height="29" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(397,78)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">portable</text></g></a><a href="/2026/talks/os" data-start="2026-12-12T18:35:00+0000" data-end="2026-12-12T18:55:00+0000" title="Emacs everywhere: A fun romp through esoteric operating systems" data-slug="os"><title>Sat 1:35- 1:55 Emacs everywhere: A fun romp through esoteric operating systems</title><rect x="431" y="50" opacity="0.8" width="31" height="29" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(460,78)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">os</text></g></a><a href="/2026/talks/cadet" data-start="2026-12-12T19:15:00+0000" data-end="2026-12-12T19:25:00+0000" title="My Space Cadet Deck - an Android Stream Deck replacement with deep Emacs integration" data-slug="cadet"><title>Sat 2:15- 2:25 My Space Cadet Deck - an Android Stream Deck replacement with deep Emacs integration</title><rect x="494" y="50" opacity="0.8" width="15" height="29" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(507,78)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">cadet</text></g></a><a href="/2026/talks/remoto" data-start="2026-12-12T19:45:00+0000" data-end="2026-12-12T20:05:00+0000" title="El Remoto: browse any GitHub repos without cloning them" data-slug="remoto"><title>Sat 2:45- 3:05 El Remoto: browse any GitHub repos without cloning them</title><rect x="541" y="50" opacity="0.8" width="31" height="29" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(570,78)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">remoto</text></g></a><a href="/2026/talks/guile" data-start="2026-12-12T20:25:00+0000" data-end="2026-12-12T20:45:00+0000" title="æmacs: having a hoot with a guile emacs" data-slug="guile"><title>Sat 3:25- 3:45 æmacs: having a hoot with a guile emacs</title><rect x="603" y="50" opacity="0.8" width="31" height="29" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(632,78)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">guile</text></g></a><a href="/2026/talks/virus" data-start="2026-12-12T21:05:00+0000" data-end="2026-12-12T21:25:00+0000" title="It's Probably Not a Virus" data-slug="virus"><title>Sat 4:05- 4:25 It's Probably Not a Virus</title><rect x="666" y="50" opacity="0.8" width="31" height="29" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(695,78)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">virus</text></g></a><g transform="translate(0,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="70"></line><text data-start="2026-12-12T14:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="90" font-size="10" text-anchor="left">9 AM EST</text></g><g transform="translate(94,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="70"></line><text data-start="2026-12-12T15:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="90" font-size="10" text-anchor="left">10 AM EST</text></g><g transform="translate(188,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="70"></line><text data-start="2026-12-12T16:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="90" font-size="10" text-anchor="left">11 AM EST</text></g><g transform="translate(282,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="70"></line><text data-start="2026-12-12T17:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="90" font-size="10" text-anchor="left">12 PM EST</text></g><g transform="translate(376,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="70"></line><text data-start="2026-12-12T18:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="90" font-size="10" text-anchor="left">1 PM EST</text></g><g transform="translate(470,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="70"></line><text data-start="2026-12-12T19:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="90" font-size="10" text-anchor="left">2 PM EST</text></g><g transform="translate(564,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="70"></line><text data-start="2026-12-12T20:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="90" font-size="10" text-anchor="left">3 PM EST</text></g><g transform="translate(658,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="70"></line><text data-start="2026-12-12T21:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="90" font-size="10" text-anchor="left">4 PM EST</text></g><g transform="translate(752,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="70"></line><text data-start="2026-12-12T22:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="90" font-size="10" text-anchor="left">5 PM EST</text></g></svg></div>
\ No newline at end of file diff --git a/2026/schedule-2026-12-13.md b/2026/schedule-2026-12-13.md index f6a1f042..acab3186 100644 --- a/2026/schedule-2026-12-13.md +++ b/2026/schedule-2026-12-13.md @@ -1 +1 @@ -<div class="schedule-svg-container"><svg width="800" height="150" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><title>Schedule for Sunday</title><rect width="800" height="150" x="0" y="0" fill="white"></rect><text data-start="2026-12-13T14:00:00+0000" class="day-label" font-size="10" fill="black" y="17" x="3">Sunday</text><a href="/2026/talks/sun-open" data-start="2026-12-13T14:00:00+0000" data-end="2026-12-13T14:10:00+0000" title="Sunday opening remarks" data-slug="sun-open"><title>Sun 9:00- 9:10 Sunday opening remarks</title><rect x="0" y="20" opacity="0.8" width="15" height="54" 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="/2026/talks/bone" data-start="2026-12-13T14:10:00+0000" data-end="2026-12-13T14:20:00+0000" title="BONE and gnaw.el: tracking what matters" data-slug="bone"><title>Sun 9:10- 9:20 BONE and gnaw.el: tracking what matters</title><rect x="15" y="20" opacity="0.8" width="15" height="54" 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)">bone</text></g></a><a href="/2026/talks/local" data-start="2026-12-13T14:40:00+0000" data-end="2026-12-13T14:55:00+0000" title="Local file history possibilities in Emacs" data-slug="local"><title>Sun 9:40- 9:55 Local file history possibilities in Emacs</title><rect x="62" y="20" opacity="0.8" width="23" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(83,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">local</text></g></a><a href="/2026/talks/hutch" data-start="2026-12-13T15:15:00+0000" data-end="2026-12-13T15:25:00+0000" title="hutch: code reviews for the mildly disenfranchised" data-slug="hutch"><title>Sun 10:15-10:25 hutch: code reviews for the mildly disenfranchised</title><rect x="117" y="20" opacity="0.8" width="15" height="54" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(130,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">hutch</text></g></a><a href="/2026/talks/team" data-start="2026-12-13T15:35:00+0000" data-end="2026-12-13T15:55:00+0000" title="Beyond the Chatbot: Team-Oriented AI in Emacs" data-slug="team"><title>Sun 10:35-10:55 Beyond the Chatbot: Team-Oriented AI in Emacs</title><rect x="149" y="20" opacity="0.8" width="31" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(178,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">team</text></g></a><a href="/2026/talks/compile" data-start="2026-12-13T16:15:00+0000" data-end="2026-12-13T16:35:00+0000" title="Beyond shell history: Saving compilation output in Emacs" data-slug="compile"><title>Sun 11:15-11:35 Beyond shell history: Saving compilation output in Emacs</title><rect x="211" y="20" opacity="0.8" width="31" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(240,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">compile</text></g></a><a href="/2026/talks/dnd" data-start="2026-12-13T18:00:00+0000" data-end="2026-12-13T18:20:00+0000" title="DnD and Org Roam: Becoming a Better DM with Emacs" data-slug="dnd"><title>Sun 1:00- 1:20 DnD and Org Roam: Becoming a Better DM with Emacs</title><rect x="376" y="20" opacity="0.8" width="31" height="54" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(405,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">dnd</text></g></a><a href="/2026/talks/bible" data-start="2026-12-13T18:30:00+0000" data-end="2026-12-13T18:50:00+0000" title="bible-gateway: A Two-Edged Sword in Emacs" data-slug="bible"><title>Sun 1:30- 1:50 bible-gateway: A Two-Edged Sword in Emacs</title><rect x="423" y="20" opacity="0.8" width="31" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(452,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">bible</text></g></a><a href="/2026/talks/svg" data-start="2026-12-13T19:10:00+0000" data-end="2026-12-13T19:30:00+0000" title="A (sort of) REPL for learning SVG" data-slug="svg"><title>Sun 2:10- 2:30 A (sort of) REPL for learning SVG</title><rect x="486" y="20" opacity="0.8" width="31" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(515,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">svg</text></g></a><a href="/2026/talks/align" data-start="2026-12-13T19:50:00+0000" data-end="2026-12-13T20:10:00+0000" title="Column-aligning text in Emacs" data-slug="align"><title>Sun 2:50- 3:10 Column-aligning text in Emacs</title><rect x="549" y="20" opacity="0.8" width="31" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(578,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">align</text></g></a><a href="/2026/talks/anju" data-start="2026-12-13T20:30:00+0000" data-end="2026-12-13T20:50:00+0000" title="Revisiting Emacs Mouse Interactions with Anju" data-slug="anju"><title>Sun 3:30- 3:50 Revisiting Emacs Mouse Interactions with Anju</title><rect x="611" y="20" opacity="0.8" width="31" height="54" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(640,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">anju</text></g></a><a href="/2026/talks/ghostel" data-start="2026-12-13T21:00:00+0000" data-end="2026-12-13T21:20:00+0000" title="Ghost in the Shell: a libghostty powered terminal for Emacs" data-slug="ghostel"><title>Sun 4:00- 4:20 Ghost in the Shell: a libghostty powered terminal for Emacs</title><rect x="658" y="20" opacity="0.8" width="31" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(687,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">ghostel</text></g></a><a href="/2026/talks/sun-close" data-start="2026-12-13T21:40:00+0000" data-end="2026-12-13T21:50:00+0000" title="Sunday closing remarks" data-slug="sun-close"><title>Sun 4:40- 4:50 Sunday closing remarks</title><rect x="721" y="20" opacity="0.8" width="15" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(734,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sun-close</text></g></a><a href="/2026/talks/prefix" data-start="2026-12-13T15:00:00+0000" data-end="2026-12-13T15:10:00+0000" title="prefix-tab-groups" data-slug="prefix"><title>Sun 10:00-10:10 prefix-tab-groups</title><rect x="94" y="75" opacity="0.8" width="15" height="54" stroke="black" stroke-dasharray="5,5,5" fill="skyblue"></rect><g transform="translate(107,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">prefix</text></g></a><a href="/2026/talks/rau" data-start="2026-12-13T15:20:00+0000" data-end="2026-12-13T15:40:00+0000" title="Emacs as a Window Manager and concurrency" data-slug="rau"><title>Sun 10:20-10:40 Emacs as a Window Manager and concurrency</title><rect x="125" y="75" opacity="0.8" width="31" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(154,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">rau</text></g></a><a href="/2026/talks/babel" data-start="2026-12-13T16:00:00+0000" data-end="2026-12-13T16:10:00+0000" title="Org Babel everywhere" data-slug="babel"><title>Sun 11:00-11:10 Org Babel everywhere</title><rect x="188" y="75" opacity="0.8" width="15" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(201,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">babel</text></g></a><a href="/2026/talks/el-gpu" data-start="2026-12-13T16:30:00+0000" data-end="2026-12-13T16:50:00+0000" title="El-gpu and pix-el: GNU Emacs 2D and 3D game programming" data-slug="el-gpu"><title>Sun 11:30-11:50 El-gpu and pix-el: GNU Emacs 2D and 3D game programming</title><rect x="235" y="75" opacity="0.8" width="31" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(264,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">el-gpu</text></g></a><a href="/2026/talks/llms" data-start="2026-12-13T18:00:00+0000" data-end="2026-12-13T19:00:00+0000" title="[Panel] Emacs, LLMs, and Free Software" data-slug="llms"><title>Sun 1:00- 2:00 [Panel] Emacs, LLMs, and Free Software</title><rect x="376" y="75" opacity="0.8" width="94" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(468,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">llms</text></g></a><g transform="translate(0,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T14:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">9 AM EST</text></g><g transform="translate(94,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T15:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">10 AM EST</text></g><g transform="translate(188,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T16:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">11 AM EST</text></g><g transform="translate(282,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T17:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">12 PM EST</text></g><g transform="translate(376,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T18:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">1 PM EST</text></g><g transform="translate(470,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T19:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">2 PM EST</text></g><g transform="translate(564,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T20:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">3 PM EST</text></g><g transform="translate(658,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T21:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">4 PM EST</text></g><g transform="translate(752,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T22:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">5 PM EST</text></g></svg></div>
\ No newline at end of file +<div class="schedule-svg-container"><svg width="800" height="100" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><title>Schedule for Sunday</title><rect width="800" height="100" x="0" y="0" fill="white"></rect><text data-start="2026-12-13T14:00:00+0000" class="day-label" font-size="10" fill="black" y="17" x="3">Sunday</text><a href="/2026/talks/sun-open" data-start="2026-12-13T14:00:00+0000" data-end="2026-12-13T14:10:00+0000" title="Sunday opening remarks" data-slug="sun-open"><title>Sun 9:00- 9:10 Sunday opening remarks</title><rect x="0" y="20" opacity="0.8" width="15" height="29" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(13,48)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sun-open</text></g></a><a href="/2026/talks/bone" data-start="2026-12-13T14:10:00+0000" data-end="2026-12-13T14:20:00+0000" title="BONE and gnaw.el: tracking what matters" data-slug="bone"><title>Sun 9:10- 9:20 BONE and gnaw.el: tracking what matters</title><rect x="15" y="20" opacity="0.8" width="15" height="29" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(28,48)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">bone</text></g></a><a href="/2026/talks/local" data-start="2026-12-13T14:40:00+0000" data-end="2026-12-13T14:55:00+0000" title="Local file history possibilities in Emacs" data-slug="local"><title>Sun 9:40- 9:55 Local file history possibilities in Emacs</title><rect x="62" y="20" opacity="0.8" width="23" height="29" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(83,48)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">local</text></g></a><a href="/2026/talks/hutch" data-start="2026-12-13T15:15:00+0000" data-end="2026-12-13T15:25:00+0000" title="hutch: code reviews for the mildly disenfranchised" data-slug="hutch"><title>Sun 10:15-10:25 hutch: code reviews for the mildly disenfranchised</title><rect x="117" y="20" opacity="0.8" width="15" height="29" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(130,48)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">hutch</text></g></a><a href="/2026/talks/team" data-start="2026-12-13T15:35:00+0000" data-end="2026-12-13T15:55:00+0000" title="Beyond the Chatbot: Team-Oriented AI in Emacs" data-slug="team"><title>Sun 10:35-10:55 Beyond the Chatbot: Team-Oriented AI in Emacs</title><rect x="149" y="20" opacity="0.8" width="31" height="29" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(178,48)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">team</text></g></a><a href="/2026/talks/compile" data-start="2026-12-13T16:15:00+0000" data-end="2026-12-13T16:35:00+0000" title="Beyond shell history: Saving compilation output in Emacs" data-slug="compile"><title>Sun 11:15-11:35 Beyond shell history: Saving compilation output in Emacs</title><rect x="211" y="20" opacity="0.8" width="31" height="29" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(240,48)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">compile</text></g></a><a href="/2026/talks/dnd" data-start="2026-12-13T18:00:00+0000" data-end="2026-12-13T18:20:00+0000" title="DnD and Org Roam: Becoming a Better DM with Emacs" data-slug="dnd"><title>Sun 1:00- 1:20 DnD and Org Roam: Becoming a Better DM with Emacs</title><rect x="376" y="20" opacity="0.8" width="31" height="29" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(405,48)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">dnd</text></g></a><a href="/2026/talks/bible" data-start="2026-12-13T18:30:00+0000" data-end="2026-12-13T18:50:00+0000" title="bible-gateway: A Two-Edged Sword in Emacs" data-slug="bible"><title>Sun 1:30- 1:50 bible-gateway: A Two-Edged Sword in Emacs</title><rect x="423" y="20" opacity="0.8" width="31" height="29" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(452,48)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">bible</text></g></a><a href="/2026/talks/svg" data-start="2026-12-13T19:10:00+0000" data-end="2026-12-13T19:30:00+0000" title="A (sort of) REPL for learning SVG" data-slug="svg"><title>Sun 2:10- 2:30 A (sort of) REPL for learning SVG</title><rect x="486" y="20" opacity="0.8" width="31" height="29" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(515,48)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">svg</text></g></a><a href="/2026/talks/align" data-start="2026-12-13T19:50:00+0000" data-end="2026-12-13T20:10:00+0000" title="Column-aligning text in Emacs" data-slug="align"><title>Sun 2:50- 3:10 Column-aligning text in Emacs</title><rect x="549" y="20" opacity="0.8" width="31" height="29" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(578,48)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">align</text></g></a><a href="/2026/talks/anju" data-start="2026-12-13T20:30:00+0000" data-end="2026-12-13T20:50:00+0000" title="Revisiting Emacs Mouse Interactions with Anju" data-slug="anju"><title>Sun 3:30- 3:50 Revisiting Emacs Mouse Interactions with Anju</title><rect x="611" y="20" opacity="0.8" width="31" height="29" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(640,48)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">anju</text></g></a><a href="/2026/talks/ghostel" data-start="2026-12-13T21:00:00+0000" data-end="2026-12-13T21:20:00+0000" title="Ghost in the Shell: a libghostty powered terminal for Emacs" data-slug="ghostel"><title>Sun 4:00- 4:20 Ghost in the Shell: a libghostty powered terminal for Emacs</title><rect x="658" y="20" opacity="0.8" width="31" height="29" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(687,48)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">ghostel</text></g></a><a href="/2026/talks/sun-close" data-start="2026-12-13T21:40:00+0000" data-end="2026-12-13T21:50:00+0000" title="Sunday closing remarks" data-slug="sun-close"><title>Sun 4:40- 4:50 Sunday closing remarks</title><rect x="721" y="20" opacity="0.8" width="15" height="29" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(734,48)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sun-close</text></g></a><a href="/2026/talks/prefix" data-start="2026-12-13T15:00:00+0000" data-end="2026-12-13T15:10:00+0000" title="prefix-tab-groups" data-slug="prefix"><title>Sun 10:00-10:10 prefix-tab-groups</title><rect x="94" y="50" opacity="0.8" width="15" height="29" stroke="black" stroke-dasharray="5,5,5" fill="skyblue"></rect><g transform="translate(107,78)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">prefix</text></g></a><a href="/2026/talks/rau" data-start="2026-12-13T15:20:00+0000" data-end="2026-12-13T15:40:00+0000" title="Emacs as a Window Manager and concurrency" data-slug="rau"><title>Sun 10:20-10:40 Emacs as a Window Manager and concurrency</title><rect x="125" y="50" opacity="0.8" width="31" height="29" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(154,78)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">rau</text></g></a><a href="/2026/talks/babel" data-start="2026-12-13T16:00:00+0000" data-end="2026-12-13T16:10:00+0000" title="Org Babel everywhere" data-slug="babel"><title>Sun 11:00-11:10 Org Babel everywhere</title><rect x="188" y="50" opacity="0.8" width="15" height="29" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(201,78)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">babel</text></g></a><a href="/2026/talks/el-gpu" data-start="2026-12-13T16:30:00+0000" data-end="2026-12-13T16:50:00+0000" title="El-gpu and pix-el: GNU Emacs 2D and 3D game programming" data-slug="el-gpu"><title>Sun 11:30-11:50 El-gpu and pix-el: GNU Emacs 2D and 3D game programming</title><rect x="235" y="50" opacity="0.8" width="31" height="29" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(264,78)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">el-gpu</text></g></a><a href="/2026/talks/llms" data-start="2026-12-13T18:00:00+0000" data-end="2026-12-13T19:00:00+0000" title="[Panel] Emacs, LLMs, and Free Software" data-slug="llms"><title>Sun 1:00- 2:00 [Panel] Emacs, LLMs, and Free Software</title><rect x="376" y="50" opacity="0.8" width="94" height="29" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(468,78)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">llms</text></g></a><g transform="translate(0,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="70"></line><text data-start="2026-12-13T14:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="90" font-size="10" text-anchor="left">9 AM EST</text></g><g transform="translate(94,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="70"></line><text data-start="2026-12-13T15:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="90" font-size="10" text-anchor="left">10 AM EST</text></g><g transform="translate(188,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="70"></line><text data-start="2026-12-13T16:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="90" font-size="10" text-anchor="left">11 AM EST</text></g><g transform="translate(282,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="70"></line><text data-start="2026-12-13T17:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="90" font-size="10" text-anchor="left">12 PM EST</text></g><g transform="translate(376,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="70"></line><text data-start="2026-12-13T18:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="90" font-size="10" text-anchor="left">1 PM EST</text></g><g transform="translate(470,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="70"></line><text data-start="2026-12-13T19:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="90" font-size="10" text-anchor="left">2 PM EST</text></g><g transform="translate(564,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="70"></line><text data-start="2026-12-13T20:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="90" font-size="10" text-anchor="left">3 PM EST</text></g><g transform="translate(658,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="70"></line><text data-start="2026-12-13T21:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="90" font-size="10" text-anchor="left">4 PM EST</text></g><g transform="translate(752,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="70"></line><text data-start="2026-12-13T22:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="90" font-size="10" text-anchor="left">5 PM EST</text></g></svg></div>
\ No newline at end of file diff --git a/2026/schedule-details.md b/2026/schedule-details.md index f87110e5..18f5f1b1 100644 --- a/2026/schedule-details.md +++ b/2026/schedule-details.md @@ -13,14 +13,14 @@ Jump to: <a href="#date-2026-12-12">Sat Dec 12</a> - <a href="#date-2026-12-13"> <div class="schedule" data-start="2026-12-12T14:00:00+0000" data-end="2026-12-12T22:30:00+0000" data-tracks="General,Development"> [[!template id=sched time="""10""" q-and-a="""<a href="https://pad.emacsconf.org/2026-sat-open">Etherpad</a>""" startutc="""2026-12-12T14:00:00+0000""" endutc="""2026-12-12T14:10:00+0000""" start="""9:00""" end="""9:10 EST""" title="""Saturday opening remarks""" url="""/2026/talks/sat-open""" speakers="""Sacha Chua""" track="""General""" watch="""https://emacsconf.org/2026/watch/gen""" slug="""sat-open""" note=""""""]] [[!template id=sched time="""20""" q-and-a="""<a href="https://media.emacsconf.org/2026/current/bbb-planning.html">BBB</a>""" pad="""https://pad.emacsconf.org/2026-planning""" startutc="""2026-12-12T14:10:00+0000""" endutc="""2026-12-12T14:30:00+0000""" start="""9:10""" end="""9:30 EST""" title="""The Emacs Planning Habits of a Questionably Effective Person: My 40-year journey of planning with Emacs, Org Mode, paper journals, etc.""" url="""/2026/talks/planning""" speakers="""George Jones""" track="""General""" watch="""https://emacsconf.org/2026/watch/gen""" slug="""planning""" note="""captioned, video: 19:20"""]] -[[!template id=sched time="""20""" q-and-a="""<a href="https://media.emacsconf.org/2026/current/bbb-listen.html">BBB</a>""" pad="""https://pad.emacsconf.org/2026-listen""" startutc="""2026-12-12T14:50:00+0000""" endutc="""2026-12-12T15:10:00+0000""" start="""9:50""" end="""10:10 EST""" title="""Controlling Emacs by voice using Emacslisten""" url="""/2026/talks/listen""" speakers="""Erik Präntare""" track="""General""" watch="""https://emacsconf.org/2026/watch/gen""" slug="""listen""" note=""""""]] +[[!template id=sched time="""20""" q-and-a="""<a href="https://media.emacsconf.org/2026/current/bbb-listen.html">BBB</a>""" pad="""https://pad.emacsconf.org/2026-listen""" startutc="""2026-12-12T14:50:00+0000""" endutc="""2026-12-12T15:10:00+0000""" start="""9:50""" end="""10:10 EST""" title="""Emacslisten: Controlling Emacs by voice""" url="""/2026/talks/listen""" speakers="""Erik Präntare""" track="""General""" watch="""https://emacsconf.org/2026/watch/gen""" slug="""listen""" note=""""""]] [[!template id=sched time="""30""" q-and-a="""<a href="https://chat.emacsconf.org/?join=emacsconf">#emacsconf</a>""" pad="""https://pad.emacsconf.org/2026-emacspeak""" startutc="""2026-12-12T15:30:00+0000""" endutc="""2026-12-12T16:00:00+0000""" start="""10:30""" end="""11:00 EST""" title="""Multi-dimensional information processing with Emacs and Emacspeak: a blind man's perspective""" url="""/2026/talks/emacspeak""" speakers="""Arkadiusz""" track="""General""" watch="""https://emacsconf.org/2026/watch/gen""" slug="""emacspeak""" note=""""""]] [[!template id=sched time="""60""" q-and-a="""<a href="https://media.emacsconf.org/2026/current/bbb-community.html">BBB</a>""" pad="""https://pad.emacsconf.org/2026-community""" startutc="""2026-12-12T15:30:00+0000""" endutc="""2026-12-12T16:30:00+0000""" start="""10:30""" end="""11:30 EST""" title="""[Panel] Improving the Emacs Community: Onboarding, Participation, and Growth""" url="""/2026/talks/community""" speakers="""Participants""" track="""Development""" watch="""https://emacsconf.org/2026/watch/dev""" slug="""community""" note=""""""]] [[!template id=sched time="""20""" q-and-a="""<a href="https://media.emacsconf.org/2026/current/bbb-ltx-talk.html">BBB</a>""" pad="""https://pad.emacsconf.org/2026-ltx-talk""" startutc="""2026-12-12T16:10:00+0000""" endutc="""2026-12-12T16:30:00+0000""" start="""11:10""" end="""11:30 EST""" title="""ltx-talk: Accessible presentations with ox-beamer""" url="""/2026/talks/ltx-talk""" speakers="""Pedro A. Aranda and Roger Schürch""" track="""General""" watch="""https://emacsconf.org/2026/watch/gen""" slug="""ltx-talk""" note=""""""]] [[!template id=sched time="""20""" q-and-a="""<a href="https://media.emacsconf.org/2026/current/bbb-plots.html">BBB</a>""" pad="""https://pad.emacsconf.org/2026-plots""" startutc="""2026-12-12T18:00:00+0000""" endutc="""2026-12-12T18:20:00+0000""" start="""1:00""" end="""1:20 EST""" title="""Plots with ROOTs: Resilient data visualization with Emacs, Org and gnuplot""" url="""/2026/talks/plots""" speakers="""Lukas C. Bossert""" track="""General""" watch="""https://emacsconf.org/2026/watch/gen""" slug="""plots""" note=""""""]] [[!template id=sched time="""15""" q-and-a="""""" pad="""https://pad.emacsconf.org/2026-portable""" startutc="""2026-12-12T18:00:00+0000""" endutc="""2026-12-12T18:15:00+0000""" start="""1:00""" end="""1:15 EST""" title="""Emacs as my portable user space across operating platforms""" url="""/2026/talks/portable""" speakers="""Mohammed Ismail Ansari (myTerminal)""" track="""Development""" watch="""https://emacsconf.org/2026/watch/dev""" slug="""portable""" note="""captioned, video: 11:32"""]] [[!template id=sched time="""20""" q-and-a="""<a href="https://media.emacsconf.org/2026/current/bbb-os.html">BBB</a>""" pad="""https://pad.emacsconf.org/2026-os""" startutc="""2026-12-12T18:35:00+0000""" endutc="""2026-12-12T18:55:00+0000""" start="""1:35""" end="""1:55 EST""" title="""Emacs everywhere: A fun romp through esoteric operating systems""" url="""/2026/talks/os""" speakers="""Aaron Grothe""" track="""Development""" watch="""https://emacsconf.org/2026/watch/dev""" slug="""os""" note=""""""]] -[[!template id=sched time="""20""" q-and-a="""<a href="https://media.emacsconf.org/2026/current/bbb-ffs.html">BBB</a>""" pad="""https://pad.emacsconf.org/2026-ffs""" startutc="""2026-12-12T18:40:00+0000""" endutc="""2026-12-12T19:00:00+0000""" start="""1:40""" end="""2:00 EST""" title="""Plain text presentations in GNU Emacs with ffs""" url="""/2026/talks/ffs""" speakers="""Amin Bandali""" track="""General""" watch="""https://emacsconf.org/2026/watch/gen""" slug="""ffs""" note=""""""]] +[[!template id=sched time="""20""" q-and-a="""""" pad="""https://pad.emacsconf.org/2026-tasks""" startutc="""2026-12-12T18:40:00+0000""" endutc="""2026-12-12T19:00:00+0000""" start="""1:40""" end="""2:00 EST""" title="""Personal task management under stress (with Org mode)""" url="""/2026/talks/tasks""" speakers="""Ihor Radchenko""" track="""General""" watch="""https://emacsconf.org/2026/watch/gen""" slug="""tasks""" note=""""""]] [[!template id=sched time="""10""" q-and-a="""<a href="https://media.emacsconf.org/2026/current/bbb-cadet.html">BBB</a>""" pad="""https://pad.emacsconf.org/2026-cadet""" startutc="""2026-12-12T19:15:00+0000""" endutc="""2026-12-12T19:25:00+0000""" start="""2:15""" end="""2:25 EST""" title="""My Space Cadet Deck - an Android Stream Deck replacement with deep Emacs integration""" url="""/2026/talks/cadet""" speakers="""Andy Drop""" track="""Development""" watch="""https://emacsconf.org/2026/watch/dev""" slug="""cadet""" note=""""""]] [[!template id=sched time="""10""" q-and-a="""<a href="https://media.emacsconf.org/2026/current/bbb-mobile.html">BBB</a>""" pad="""https://pad.emacsconf.org/2026-mobile""" startutc="""2026-12-12T19:20:00+0000""" endutc="""2026-12-12T19:30:00+0000""" start="""2:20""" end="""2:30 EST""" title="""How I solved Org Mode's biggest mobile and collaboration problems""" url="""/2026/talks/mobile""" speakers="""bashbunni""" track="""General""" watch="""https://emacsconf.org/2026/watch/gen""" slug="""mobile""" note=""""""]] [[!template id=sched time="""20""" q-and-a="""<a href="https://media.emacsconf.org/2026/current/bbb-remoto.html">BBB</a>""" pad="""https://pad.emacsconf.org/2026-remoto""" startutc="""2026-12-12T19:45:00+0000""" endutc="""2026-12-12T20:05:00+0000""" start="""2:45""" end="""3:05 EST""" title="""El Remoto: browse any GitHub repos without cloning them""" url="""/2026/talks/remoto""" speakers="""Ag""" track="""Development""" watch="""https://emacsconf.org/2026/watch/dev""" slug="""remoto""" note=""""""]] @@ -29,8 +29,7 @@ Jump to: <a href="#date-2026-12-12">Sat Dec 12</a> - <a href="#date-2026-12-13"> [[!template id=sched time="""20""" q-and-a="""<a href="https://media.emacsconf.org/2026/current/bbb-koutliner.html">BBB</a>""" pad="""https://pad.emacsconf.org/2026-koutliner""" startutc="""2026-12-12T20:30:00+0000""" endutc="""2026-12-12T20:50:00+0000""" start="""3:30""" end="""3:50 EST""" title="""Hyperbole Koutliner: The Best Autonumbered, Hyperlinking Outliner for Emacs""" url="""/2026/talks/koutliner""" speakers="""Bob Weiner""" track="""General""" watch="""https://emacsconf.org/2026/watch/gen""" slug="""koutliner""" note=""""""]] [[!template id=sched time="""20""" q-and-a="""<a href="https://media.emacsconf.org/2026/current/bbb-virus.html">BBB</a>""" pad="""https://pad.emacsconf.org/2026-virus""" startutc="""2026-12-12T21:05:00+0000""" endutc="""2026-12-12T21:25:00+0000""" start="""4:05""" end="""4:25 EST""" title="""It's Probably Not a Virus""" url="""/2026/talks/virus""" speakers="""Corwin Brust""" track="""Development""" watch="""https://emacsconf.org/2026/watch/dev""" slug="""virus""" note=""""""]] [[!template id=sched time="""20""" q-and-a="""<a href="https://media.emacsconf.org/2026/current/bbb-writing.html">BBB</a>""" pad="""https://pad.emacsconf.org/2026-writing""" startutc="""2026-12-12T21:10:00+0000""" endutc="""2026-12-12T21:30:00+0000""" start="""4:10""" end="""4:30 EST""" title="""Close the writing accountability gap with Emacs""" url="""/2026/talks/writing""" speakers="""Blaine Mooers""" track="""General""" watch="""https://emacsconf.org/2026/watch/gen""" slug="""writing""" note=""""""]] -[[!template id=sched time="""10""" q-and-a="""<a href="https://media.emacsconf.org/2026/current/bbb-android.html">BBB</a>""" pad="""https://pad.emacsconf.org/2026-android""" startutc="""2026-12-12T21:50:00+0000""" endutc="""2026-12-12T22:00:00+0000""" start="""4:50""" end="""5:00 EST""" title="""Emacs on Android - Emacs for the next 40 years""" url="""/2026/talks/android""" speakers="""Greg Silverstein""" track="""General""" watch="""https://emacsconf.org/2026/watch/gen""" slug="""android""" note=""""""]] -[[!template id=sched time="""10""" q-and-a="""<a href="https://media.emacsconf.org/2026/current/bbb-sat-close.html">BBB</a>""" pad="""https://pad.emacsconf.org/2026-sat-close""" startutc="""2026-12-12T22:20:00+0000""" endutc="""2026-12-12T22:30:00+0000""" start="""5:20""" end="""5:30 EST""" title="""Saturday closing remarks / open session""" url="""/2026/talks/sat-close""" track="""General""" watch="""https://emacsconf.org/2026/watch/gen""" slug="""sat-close""" note=""""""]]</div> +[[!template id=sched time="""10""" q-and-a="""<a href="https://media.emacsconf.org/2026/current/bbb-sat-close.html">BBB</a>""" pad="""https://pad.emacsconf.org/2026-sat-close""" startutc="""2026-12-12T21:50:00+0000""" endutc="""2026-12-12T22:00:00+0000""" start="""4:50""" end="""5:00 EST""" title="""Saturday closing remarks / open session""" url="""/2026/talks/sat-close""" track="""General""" watch="""https://emacsconf.org/2026/watch/gen""" slug="""sat-close""" note=""""""]]</div> Jump to: <a href="#date-2026-12-12">Sat Dec 12</a> - <a href="#date-2026-12-13">Sun Dec 13</a><a name="date-2026-12-13"></a> # Sunday Dec 13, 2026 @@ -50,8 +49,10 @@ Jump to: <a href="#date-2026-12-12">Sat Dec 12</a> - <a href="#date-2026-12-13"> [[!template id=sched time="""20""" q-and-a="""none""" pad="""https://pad.emacsconf.org/2026-dnd""" startutc="""2026-12-13T18:00:00+0000""" endutc="""2026-12-13T18:20:00+0000""" start="""1:00""" end="""1:20 EST""" title="""DnD and Org Roam: Becoming a Better DM with Emacs""" url="""/2026/talks/dnd""" speakers="""James R. Stoup""" track="""General""" watch="""https://emacsconf.org/2026/watch/gen""" slug="""dnd""" note="""captioned, video: 19:17"""]] [[!template id=sched time="""60""" q-and-a="""<a href="https://media.emacsconf.org/2026/current/bbb-llms.html">BBB</a>""" pad="""https://pad.emacsconf.org/2026-llms""" startutc="""2026-12-13T18:00:00+0000""" endutc="""2026-12-13T19:00:00+0000""" start="""1:00""" end="""2:00 EST""" title="""[Panel] Emacs, LLMs, and Free Software""" url="""/2026/talks/llms""" speakers="""Participants""" track="""Development""" watch="""https://emacsconf.org/2026/watch/dev""" slug="""llms""" note=""""""]] [[!template id=sched time="""20""" q-and-a="""<a href="https://media.emacsconf.org/2026/current/bbb-bible.html">BBB</a>""" pad="""https://pad.emacsconf.org/2026-bible""" startutc="""2026-12-13T18:30:00+0000""" endutc="""2026-12-13T18:50:00+0000""" start="""1:30""" end="""1:50 EST""" title="""bible-gateway: A Two-Edged Sword in Emacs""" url="""/2026/talks/bible""" speakers="""Kristjon Ciko""" track="""General""" watch="""https://emacsconf.org/2026/watch/gen""" slug="""bible""" note=""""""]] -[[!template id=sched time="""20""" q-and-a="""""" pad="""https://pad.emacsconf.org/2026-svg""" startutc="""2026-12-13T19:10:00+0000""" endutc="""2026-12-13T19:30:00+0000""" start="""2:10""" end="""2:30 EST""" title="""A (sort of) REPL for learning SVG""" url="""/2026/talks/svg""" speakers="""Eduardo Ochs""" track="""General""" watch="""https://emacsconf.org/2026/watch/gen""" slug="""svg""" note=""""""]] +[[!template id=sched time="""20""" q-and-a="""<a href="https://media.emacsconf.org/2026/current/bbb-ffs.html">BBB</a>""" pad="""https://pad.emacsconf.org/2026-ffs""" startutc="""2026-12-13T19:10:00+0000""" endutc="""2026-12-13T19:30:00+0000""" start="""2:10""" end="""2:30 EST""" title="""Plain text presentations in GNU Emacs with ffs""" url="""/2026/talks/ffs""" speakers="""Amin Bandali""" track="""General""" watch="""https://emacsconf.org/2026/watch/gen""" slug="""ffs""" note=""""""]] +[[!template id=sched time="""20""" q-and-a="""<a href="https://media.emacsconf.org/2026/current/bbb-ghostel.html">BBB</a>""" pad="""https://pad.emacsconf.org/2026-ghostel""" startutc="""2026-12-13T19:20:00+0000""" endutc="""2026-12-13T19:40:00+0000""" start="""2:20""" end="""2:40 EST""" title="""Ghost in the Shell: a libghostty powered terminal for Emacs""" url="""/2026/talks/ghostel""" speakers="""Daniel Kraus""" track="""Development""" watch="""https://emacsconf.org/2026/watch/gen""" slug="""ghostel""" note=""""""]] [[!template id=sched time="""20""" q-and-a="""<a href="https://media.emacsconf.org/2026/current/bbb-align.html">BBB</a>""" pad="""https://pad.emacsconf.org/2026-align""" startutc="""2026-12-13T19:50:00+0000""" endutc="""2026-12-13T20:10:00+0000""" start="""2:50""" end="""3:10 EST""" title="""Column-aligning text in Emacs""" url="""/2026/talks/align""" speakers="""Jeff Trull""" track="""General""" watch="""https://emacsconf.org/2026/watch/gen""" slug="""align""" note=""""""]] +[[!template id=sched time="""20""" q-and-a="""""" pad="""https://pad.emacsconf.org/2026-svg""" startutc="""2026-12-13T20:00:00+0000""" endutc="""2026-12-13T20:20:00+0000""" start="""3:00""" end="""3:20 EST""" title="""A (sort of) REPL for learning SVG""" url="""/2026/talks/svg""" speakers="""Eduardo Ochs""" track="""Development""" watch="""https://emacsconf.org/2026/watch/gen""" slug="""svg""" note=""""""]] [[!template id=sched time="""20""" q-and-a="""<a href="https://chat.emacsconf.org/?join=emacsconf">#emacsconf, speaker nick: kickingvegas</a>""" pad="""https://pad.emacsconf.org/2026-anju""" startutc="""2026-12-13T20:30:00+0000""" endutc="""2026-12-13T20:50:00+0000""" start="""3:30""" end="""3:50 EST""" title="""Revisiting Emacs Mouse Interactions with Anju""" url="""/2026/talks/anju""" speakers="""Charles Y. Choi""" track="""General""" watch="""https://emacsconf.org/2026/watch/gen""" slug="""anju""" note=""""""]] -[[!template id=sched time="""20""" q-and-a="""<a href="https://media.emacsconf.org/2026/current/bbb-ghostel.html">BBB</a>""" pad="""https://pad.emacsconf.org/2026-ghostel""" startutc="""2026-12-13T21:00:00+0000""" endutc="""2026-12-13T21:20:00+0000""" start="""4:00""" end="""4:20 EST""" title="""Ghost in the Shell: a libghostty powered terminal for Emacs""" url="""/2026/talks/ghostel""" speakers="""Daniel Kraus""" track="""General""" watch="""https://emacsconf.org/2026/watch/gen""" slug="""ghostel""" note=""""""]] -[[!template id=sched time="""10""" q-and-a="""<a href="https://media.emacsconf.org/2026/current/bbb-sun-close.html">BBB</a>""" pad="""https://pad.emacsconf.org/2026-sun-close""" startutc="""2026-12-13T21:40:00+0000""" endutc="""2026-12-13T21:50:00+0000""" start="""4:40""" end="""4:50 EST""" title="""Sunday closing remarks""" url="""/2026/talks/sun-close""" track="""General""" watch="""https://emacsconf.org/2026/watch/gen""" slug="""sun-close""" note=""""""]]</div>
\ No newline at end of file +[[!template id=sched time="""10""" q-and-a="""<a href="https://media.emacsconf.org/2026/current/bbb-android.html">BBB</a>""" pad="""https://pad.emacsconf.org/2026-android""" startutc="""2026-12-13T21:00:00+0000""" endutc="""2026-12-13T21:10:00+0000""" start="""4:00""" end="""4:10 EST""" title="""Emacs on Android - Emacs for the next 40 years""" url="""/2026/talks/android""" speakers="""Greg Silverstein""" track="""General""" watch="""https://emacsconf.org/2026/watch/gen""" slug="""android""" note=""""""]] +[[!template id=sched time="""10""" q-and-a="""<a href="https://media.emacsconf.org/2026/current/bbb-sun-close.html">BBB</a>""" pad="""https://pad.emacsconf.org/2026-sun-close""" startutc="""2026-12-13T21:30:00+0000""" endutc="""2026-12-13T21:40:00+0000""" start="""4:30""" end="""4:40 EST""" title="""Sunday closing remarks""" url="""/2026/talks/sun-close""" track="""General""" watch="""https://emacsconf.org/2026/watch/gen""" slug="""sun-close""" note=""""""]]</div>
\ No newline at end of file diff --git a/2026/schedule-image.md b/2026/schedule-image.md index c4616fe4..9047a7b9 100644 --- a/2026/schedule-image.md +++ b/2026/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" class="nil"><title>Graphical view of the schedule</title><g transform="translate(0,0)"><title>Schedule for Saturday Dec 12 (-0500)</title><rect width="800" height="150" x="0" y="0" fill="white"></rect><text data-start="2026-12-12T14:00:00+0000" class="day-label" font-size="10" fill="black" y="17" x="3">Saturday Dec 12 (-0500)</text><a href="/2026/talks/sat-open" data-start="2026-12-12T14:00:00+0000" data-end="2026-12-12T14:10:00+0000" title="Saturday opening remarks" data-slug="sat-open"><title>Sat 9:00- 9:10 Saturday opening remarks</title><rect x="0" y="20" opacity="0.8" width="15" height="54" 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="/2026/talks/planning" data-start="2026-12-12T14:10:00+0000" data-end="2026-12-12T14:30:00+0000" title="The Emacs Planning Habits of a Questionably Effective Person: My 40-year journey of planning with Emacs, Org Mode, paper journals, etc." data-slug="planning"><title>Sat 9:10- 9:30 The Emacs Planning Habits of a Questionably Effective Person: My 40-year journey of planning with Emacs, Org Mode, paper journals, etc.</title><rect x="15" y="20" opacity="0.8" width="31" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(44,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">planning</text></g></a><a href="/2026/talks/listen" data-start="2026-12-12T14:50:00+0000" data-end="2026-12-12T15:10:00+0000" title="Controlling Emacs by voice using Emacslisten" data-slug="listen"><title>Sat 9:50-10:10 Controlling Emacs by voice using Emacslisten</title><rect x="78" y="20" opacity="0.8" width="31" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(107,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">listen</text></g></a><a href="/2026/talks/emacspeak" data-start="2026-12-12T15:30:00+0000" data-end="2026-12-12T16:00:00+0000" title="Multi-dimensional information processing with Emacs and Emacspeak: a blind man's perspective" data-slug="emacspeak"><title>Sat 10:30-11:00 Multi-dimensional information processing with Emacs and Emacspeak: a blind man's perspective</title><rect x="141" y="20" opacity="0.8" width="47" height="54" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(186,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">emacspeak</text></g></a><a href="/2026/talks/ltx-talk" data-start="2026-12-12T16:10:00+0000" data-end="2026-12-12T16:30:00+0000" title="ltx-talk: Accessible presentations with ox-beamer" data-slug="ltx-talk"><title>Sat 11:10-11:30 ltx-talk: Accessible presentations with ox-beamer</title><rect x="203" y="20" opacity="0.8" width="31" height="54" 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)">ltx-talk</text></g></a><a href="/2026/talks/plots" data-start="2026-12-12T18:00:00+0000" data-end="2026-12-12T18:20:00+0000" title="Plots with ROOTs: Resilient data visualization with Emacs, Org and gnuplot" data-slug="plots"><title>Sat 1:00- 1:20 Plots with ROOTs: Resilient data visualization with Emacs, Org and gnuplot</title><rect x="376" y="20" opacity="0.8" width="31" height="54" 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)">plots</text></g></a><a href="/2026/talks/ffs" data-start="2026-12-12T18:40:00+0000" data-end="2026-12-12T19:00:00+0000" title="Plain text presentations in GNU Emacs with ffs" data-slug="ffs"><title>Sat 1:40- 2:00 Plain text presentations in GNU Emacs with ffs</title><rect x="439" y="20" opacity="0.8" width="31" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(468,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">ffs</text></g></a><a href="/2026/talks/mobile" data-start="2026-12-12T19:20:00+0000" data-end="2026-12-12T19:30:00+0000" title="How I solved Org Mode's biggest mobile and collaboration problems" data-slug="mobile"><title>Sat 2:20- 2:30 How I solved Org Mode's biggest mobile and collaboration problems</title><rect x="501" y="20" opacity="0.8" width="15" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(514,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">mobile</text></g></a><a href="/2026/talks/hyperbole" data-start="2026-12-12T19:50:00+0000" data-end="2026-12-12T20:10:00+0000" title="Hyperbole, My Dear Watson" data-slug="hyperbole"><title>Sat 2:50- 3:10 Hyperbole, My Dear Watson</title><rect x="549" y="20" opacity="0.8" width="31" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(578,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">hyperbole</text></g></a><a href="/2026/talks/koutliner" data-start="2026-12-12T20:30:00+0000" data-end="2026-12-12T20:50:00+0000" title="Hyperbole Koutliner: The Best Autonumbered, Hyperlinking Outliner for Emacs" data-slug="koutliner"><title>Sat 3:30- 3:50 Hyperbole Koutliner: The Best Autonumbered, Hyperlinking Outliner for Emacs</title><rect x="611" y="20" opacity="0.8" width="31" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(640,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">koutliner</text></g></a><a href="/2026/talks/writing" data-start="2026-12-12T21:10:00+0000" data-end="2026-12-12T21:30:00+0000" title="Close the writing accountability gap with Emacs" data-slug="writing"><title>Sat 4:10- 4:30 Close the writing accountability gap with Emacs</title><rect x="674" y="20" opacity="0.8" width="31" height="54" 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)">writing</text></g></a><a href="/2026/talks/android" data-start="2026-12-12T21:50:00+0000" data-end="2026-12-12T22:00:00+0000" title="Emacs on Android - Emacs for the next 40 years" data-slug="android"><title>Sat 4:50- 5:00 Emacs on Android - Emacs for the next 40 years</title><rect x="737" y="20" opacity="0.8" width="15" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(750,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">android</text></g></a><a href="/2026/talks/sat-close" data-start="2026-12-12T22:20:00+0000" data-end="2026-12-12T22:30:00+0000" title="Saturday closing remarks / open session" data-slug="sat-close"><title>Sat 5:20- 5:30 Saturday closing remarks / open session</title><rect x="784" y="20" opacity="0.8" width="15" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(797,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sat-close</text></g></a><a href="/2026/talks/community" data-start="2026-12-12T15:30:00+0000" data-end="2026-12-12T16:30:00+0000" title="[Panel] Improving the Emacs Community: Onboarding, Participation, and Growth" data-slug="community"><title>Sat 10:30-11:30 [Panel] Improving the Emacs Community: Onboarding, Participation, and Growth</title><rect x="141" y="75" opacity="0.8" width="94" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(233,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">community</text></g></a><a href="/2026/talks/portable" data-start="2026-12-12T18:00:00+0000" data-end="2026-12-12T18:15:00+0000" title="Emacs as my portable user space across operating platforms" data-slug="portable"><title>Sat 1:00- 1:15 Emacs as my portable user space across operating platforms</title><rect x="376" y="75" opacity="0.8" width="23" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(397,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">portable</text></g></a><a href="/2026/talks/os" data-start="2026-12-12T18:35:00+0000" data-end="2026-12-12T18:55:00+0000" title="Emacs everywhere: A fun romp through esoteric operating systems" data-slug="os"><title>Sat 1:35- 1:55 Emacs everywhere: A fun romp through esoteric operating systems</title><rect x="431" y="75" opacity="0.8" width="31" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(460,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">os</text></g></a><a href="/2026/talks/cadet" data-start="2026-12-12T19:15:00+0000" data-end="2026-12-12T19:25:00+0000" title="My Space Cadet Deck - an Android Stream Deck replacement with deep Emacs integration" data-slug="cadet"><title>Sat 2:15- 2:25 My Space Cadet Deck - an Android Stream Deck replacement with deep Emacs integration</title><rect x="494" y="75" opacity="0.8" width="15" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(507,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">cadet</text></g></a><a href="/2026/talks/remoto" data-start="2026-12-12T19:45:00+0000" data-end="2026-12-12T20:05:00+0000" title="El Remoto: browse any GitHub repos without cloning them" data-slug="remoto"><title>Sat 2:45- 3:05 El Remoto: browse any GitHub repos without cloning them</title><rect x="541" y="75" opacity="0.8" width="31" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(570,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">remoto</text></g></a><a href="/2026/talks/guile" data-start="2026-12-12T20:25:00+0000" data-end="2026-12-12T20:45:00+0000" title="æmacs: having a hoot with a guile emacs" data-slug="guile"><title>Sat 3:25- 3:45 æmacs: having a hoot with a guile emacs</title><rect x="603" y="75" opacity="0.8" width="31" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(632,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">guile</text></g></a><a href="/2026/talks/virus" data-start="2026-12-12T21:05:00+0000" data-end="2026-12-12T21:25:00+0000" title="It's Probably Not a Virus" data-slug="virus"><title>Sat 4:05- 4:25 It's Probably Not a Virus</title><rect x="666" y="75" opacity="0.8" width="31" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(695,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">virus</text></g></a><g transform="translate(0,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T14:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">9 AM EST</text></g><g transform="translate(94,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T15:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">10 AM EST</text></g><g transform="translate(188,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T16:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">11 AM EST</text></g><g transform="translate(282,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T17:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">12 PM EST</text></g><g transform="translate(376,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T18:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">1 PM EST</text></g><g transform="translate(470,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T19:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">2 PM EST</text></g><g transform="translate(564,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T20:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">3 PM EST</text></g><g transform="translate(658,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T21:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">4 PM EST</text></g><g transform="translate(752,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-12T22:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">5 PM EST</text></g></g><g transform="translate(0,150)"><title>Schedule for Sunday Dec 13 (-0500)</title><rect width="800" height="150" x="0" y="0" fill="white"></rect><text data-start="2026-12-13T14:00:00+0000" class="day-label" font-size="10" fill="black" y="17" x="3">Sunday Dec 13 (-0500)</text><a href="/2026/talks/sun-open" data-start="2026-12-13T14:00:00+0000" data-end="2026-12-13T14:10:00+0000" title="Sunday opening remarks" data-slug="sun-open"><title>Sun 9:00- 9:10 Sunday opening remarks</title><rect x="0" y="20" opacity="0.8" width="15" height="54" 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="/2026/talks/bone" data-start="2026-12-13T14:10:00+0000" data-end="2026-12-13T14:20:00+0000" title="BONE and gnaw.el: tracking what matters" data-slug="bone"><title>Sun 9:10- 9:20 BONE and gnaw.el: tracking what matters</title><rect x="15" y="20" opacity="0.8" width="15" height="54" 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)">bone</text></g></a><a href="/2026/talks/local" data-start="2026-12-13T14:40:00+0000" data-end="2026-12-13T14:55:00+0000" title="Local file history possibilities in Emacs" data-slug="local"><title>Sun 9:40- 9:55 Local file history possibilities in Emacs</title><rect x="62" y="20" opacity="0.8" width="23" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(83,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">local</text></g></a><a href="/2026/talks/hutch" data-start="2026-12-13T15:15:00+0000" data-end="2026-12-13T15:25:00+0000" title="hutch: code reviews for the mildly disenfranchised" data-slug="hutch"><title>Sun 10:15-10:25 hutch: code reviews for the mildly disenfranchised</title><rect x="117" y="20" opacity="0.8" width="15" height="54" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(130,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">hutch</text></g></a><a href="/2026/talks/team" data-start="2026-12-13T15:35:00+0000" data-end="2026-12-13T15:55:00+0000" title="Beyond the Chatbot: Team-Oriented AI in Emacs" data-slug="team"><title>Sun 10:35-10:55 Beyond the Chatbot: Team-Oriented AI in Emacs</title><rect x="149" y="20" opacity="0.8" width="31" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(178,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">team</text></g></a><a href="/2026/talks/compile" data-start="2026-12-13T16:15:00+0000" data-end="2026-12-13T16:35:00+0000" title="Beyond shell history: Saving compilation output in Emacs" data-slug="compile"><title>Sun 11:15-11:35 Beyond shell history: Saving compilation output in Emacs</title><rect x="211" y="20" opacity="0.8" width="31" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(240,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">compile</text></g></a><a href="/2026/talks/dnd" data-start="2026-12-13T18:00:00+0000" data-end="2026-12-13T18:20:00+0000" title="DnD and Org Roam: Becoming a Better DM with Emacs" data-slug="dnd"><title>Sun 1:00- 1:20 DnD and Org Roam: Becoming a Better DM with Emacs</title><rect x="376" y="20" opacity="0.8" width="31" height="54" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(405,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">dnd</text></g></a><a href="/2026/talks/bible" data-start="2026-12-13T18:30:00+0000" data-end="2026-12-13T18:50:00+0000" title="bible-gateway: A Two-Edged Sword in Emacs" data-slug="bible"><title>Sun 1:30- 1:50 bible-gateway: A Two-Edged Sword in Emacs</title><rect x="423" y="20" opacity="0.8" width="31" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(452,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">bible</text></g></a><a href="/2026/talks/svg" data-start="2026-12-13T19:10:00+0000" data-end="2026-12-13T19:30:00+0000" title="A (sort of) REPL for learning SVG" data-slug="svg"><title>Sun 2:10- 2:30 A (sort of) REPL for learning SVG</title><rect x="486" y="20" opacity="0.8" width="31" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(515,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">svg</text></g></a><a href="/2026/talks/align" data-start="2026-12-13T19:50:00+0000" data-end="2026-12-13T20:10:00+0000" title="Column-aligning text in Emacs" data-slug="align"><title>Sun 2:50- 3:10 Column-aligning text in Emacs</title><rect x="549" y="20" opacity="0.8" width="31" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(578,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">align</text></g></a><a href="/2026/talks/anju" data-start="2026-12-13T20:30:00+0000" data-end="2026-12-13T20:50:00+0000" title="Revisiting Emacs Mouse Interactions with Anju" data-slug="anju"><title>Sun 3:30- 3:50 Revisiting Emacs Mouse Interactions with Anju</title><rect x="611" y="20" opacity="0.8" width="31" height="54" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(640,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">anju</text></g></a><a href="/2026/talks/ghostel" data-start="2026-12-13T21:00:00+0000" data-end="2026-12-13T21:20:00+0000" title="Ghost in the Shell: a libghostty powered terminal for Emacs" data-slug="ghostel"><title>Sun 4:00- 4:20 Ghost in the Shell: a libghostty powered terminal for Emacs</title><rect x="658" y="20" opacity="0.8" width="31" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(687,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">ghostel</text></g></a><a href="/2026/talks/sun-close" data-start="2026-12-13T21:40:00+0000" data-end="2026-12-13T21:50:00+0000" title="Sunday closing remarks" data-slug="sun-close"><title>Sun 4:40- 4:50 Sunday closing remarks</title><rect x="721" y="20" opacity="0.8" width="15" height="54" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(734,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sun-close</text></g></a><a href="/2026/talks/prefix" data-start="2026-12-13T15:00:00+0000" data-end="2026-12-13T15:10:00+0000" title="prefix-tab-groups" data-slug="prefix"><title>Sun 10:00-10:10 prefix-tab-groups</title><rect x="94" y="75" opacity="0.8" width="15" height="54" stroke="black" stroke-dasharray="5,5,5" fill="skyblue"></rect><g transform="translate(107,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">prefix</text></g></a><a href="/2026/talks/rau" data-start="2026-12-13T15:20:00+0000" data-end="2026-12-13T15:40:00+0000" title="Emacs as a Window Manager and concurrency" data-slug="rau"><title>Sun 10:20-10:40 Emacs as a Window Manager and concurrency</title><rect x="125" y="75" opacity="0.8" width="31" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(154,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">rau</text></g></a><a href="/2026/talks/babel" data-start="2026-12-13T16:00:00+0000" data-end="2026-12-13T16:10:00+0000" title="Org Babel everywhere" data-slug="babel"><title>Sun 11:00-11:10 Org Babel everywhere</title><rect x="188" y="75" opacity="0.8" width="15" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(201,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">babel</text></g></a><a href="/2026/talks/el-gpu" data-start="2026-12-13T16:30:00+0000" data-end="2026-12-13T16:50:00+0000" title="El-gpu and pix-el: GNU Emacs 2D and 3D game programming" data-slug="el-gpu"><title>Sun 11:30-11:50 El-gpu and pix-el: GNU Emacs 2D and 3D game programming</title><rect x="235" y="75" opacity="0.8" width="31" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(264,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">el-gpu</text></g></a><a href="/2026/talks/llms" data-start="2026-12-13T18:00:00+0000" data-end="2026-12-13T19:00:00+0000" title="[Panel] Emacs, LLMs, and Free Software" data-slug="llms"><title>Sun 1:00- 2:00 [Panel] Emacs, LLMs, and Free Software</title><rect x="376" y="75" opacity="0.8" width="94" height="54" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(468,128)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">llms</text></g></a><g transform="translate(0,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T14:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">9 AM EST</text></g><g transform="translate(94,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T15:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">10 AM EST</text></g><g transform="translate(188,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T16:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">11 AM EST</text></g><g transform="translate(282,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T17:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">12 PM EST</text></g><g transform="translate(376,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T18:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">1 PM EST</text></g><g transform="translate(470,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T19:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">2 PM EST</text></g><g transform="translate(564,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T20:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">3 PM EST</text></g><g transform="translate(658,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T21:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">4 PM EST</text></g><g transform="translate(752,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text data-start="2026-12-13T22:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="140" font-size="10" text-anchor="left">5 PM EST</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" class="nil"><title>Graphical view of the schedule</title><g transform="translate(0,0)"><title>Schedule for Saturday Dec 12 (-0500)</title><rect width="800" height="100" x="0" y="0" fill="white"></rect><text data-start="2026-12-12T14:00:00+0000" class="day-label" font-size="10" fill="black" y="17" x="3">Saturday Dec 12 (-0500)</text><a href="/2026/talks/sat-open" data-start="2026-12-12T14:00:00+0000" data-end="2026-12-12T14:10:00+0000" title="Saturday opening remarks" data-slug="sat-open"><title>Sat 9:00- 9:10 Saturday opening remarks</title><rect x="0" y="20" opacity="0.8" width="15" height="29" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(13,48)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sat-open</text></g></a><a href="/2026/talks/planning" data-start="2026-12-12T14:10:00+0000" data-end="2026-12-12T14:30:00+0000" title="The Emacs Planning Habits of a Questionably Effective Person: My 40-year journey of planning with Emacs, Org Mode, paper journals, etc." data-slug="planning"><title>Sat 9:10- 9:30 The Emacs Planning Habits of a Questionably Effective Person: My 40-year journey of planning with Emacs, Org Mode, paper journals, etc.</title><rect x="15" y="20" opacity="0.8" width="31" height="29" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(44,48)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">planning</text></g></a><a href="/2026/talks/listen" data-start="2026-12-12T14:50:00+0000" data-end="2026-12-12T15:10:00+0000" title="Emacslisten: Controlling Emacs by voice" data-slug="listen"><title>Sat 9:50-10:10 Emacslisten: Controlling Emacs by voice</title><rect x="78" y="20" opacity="0.8" width="31" height="29" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(107,48)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">listen</text></g></a><a href="/2026/talks/emacspeak" data-start="2026-12-12T15:30:00+0000" data-end="2026-12-12T16:00:00+0000" title="Multi-dimensional information processing with Emacs and Emacspeak: a blind man's perspective" data-slug="emacspeak"><title>Sat 10:30-11:00 Multi-dimensional information processing with Emacs and Emacspeak: a blind man's perspective</title><rect x="141" y="20" opacity="0.8" width="47" height="29" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(186,48)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">emacspeak</text></g></a><a href="/2026/talks/ltx-talk" data-start="2026-12-12T16:10:00+0000" data-end="2026-12-12T16:30:00+0000" title="ltx-talk: Accessible presentations with ox-beamer" data-slug="ltx-talk"><title>Sat 11:10-11:30 ltx-talk: Accessible presentations with ox-beamer</title><rect x="203" y="20" opacity="0.8" width="31" height="29" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(232,48)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">ltx-talk</text></g></a><a href="/2026/talks/plots" data-start="2026-12-12T18:00:00+0000" data-end="2026-12-12T18:20:00+0000" title="Plots with ROOTs: Resilient data visualization with Emacs, Org and gnuplot" data-slug="plots"><title>Sat 1:00- 1:20 Plots with ROOTs: Resilient data visualization with Emacs, Org and gnuplot</title><rect x="376" y="20" opacity="0.8" width="31" height="29" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(405,48)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">plots</text></g></a><a href="/2026/talks/ffs" data-start="2026-12-12T18:40:00+0000" data-end="2026-12-12T19:00:00+0000" title="Plain text presentations in GNU Emacs with ffs" data-slug="ffs"><title>Sat 1:40- 2:00 Plain text presentations in GNU Emacs with ffs</title><rect x="439" y="20" opacity="0.8" width="31" height="29" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(468,48)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">ffs</text></g></a><a href="/2026/talks/mobile" data-start="2026-12-12T19:20:00+0000" data-end="2026-12-12T19:30:00+0000" title="How I solved Org Mode's biggest mobile and collaboration problems" data-slug="mobile"><title>Sat 2:20- 2:30 How I solved Org Mode's biggest mobile and collaboration problems</title><rect x="501" y="20" opacity="0.8" width="15" height="29" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(514,48)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">mobile</text></g></a><a href="/2026/talks/hyperbole" data-start="2026-12-12T19:50:00+0000" data-end="2026-12-12T20:10:00+0000" title="Hyperbole, My Dear Watson" data-slug="hyperbole"><title>Sat 2:50- 3:10 Hyperbole, My Dear Watson</title><rect x="549" y="20" opacity="0.8" width="31" height="29" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(578,48)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">hyperbole</text></g></a><a href="/2026/talks/koutliner" data-start="2026-12-12T20:30:00+0000" data-end="2026-12-12T20:50:00+0000" title="Hyperbole Koutliner: The Best Autonumbered, Hyperlinking Outliner for Emacs" data-slug="koutliner"><title>Sat 3:30- 3:50 Hyperbole Koutliner: The Best Autonumbered, Hyperlinking Outliner for Emacs</title><rect x="611" y="20" opacity="0.8" width="31" height="29" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(640,48)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">koutliner</text></g></a><a href="/2026/talks/writing" data-start="2026-12-12T21:10:00+0000" data-end="2026-12-12T21:30:00+0000" title="Close the writing accountability gap with Emacs" data-slug="writing"><title>Sat 4:10- 4:30 Close the writing accountability gap with Emacs</title><rect x="674" y="20" opacity="0.8" width="31" height="29" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(703,48)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">writing</text></g></a><a href="/2026/talks/android" data-start="2026-12-12T21:50:00+0000" data-end="2026-12-12T22:00:00+0000" title="Emacs on Android - Emacs for the next 40 years" data-slug="android"><title>Sat 4:50- 5:00 Emacs on Android - Emacs for the next 40 years</title><rect x="737" y="20" opacity="0.8" width="15" height="29" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(750,48)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">android</text></g></a><a href="/2026/talks/sat-close" data-start="2026-12-12T22:20:00+0000" data-end="2026-12-12T22:30:00+0000" title="Saturday closing remarks / open session" data-slug="sat-close"><title>Sat 5:20- 5:30 Saturday closing remarks / open session</title><rect x="784" y="20" opacity="0.8" width="15" height="29" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(797,48)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sat-close</text></g></a><a href="/2026/talks/community" data-start="2026-12-12T15:30:00+0000" data-end="2026-12-12T16:30:00+0000" title="[Panel] Improving the Emacs Community: Onboarding, Participation, and Growth" data-slug="community"><title>Sat 10:30-11:30 [Panel] Improving the Emacs Community: Onboarding, Participation, and Growth</title><rect x="141" y="50" opacity="0.8" width="94" height="29" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(233,78)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">community</text></g></a><a href="/2026/talks/portable" data-start="2026-12-12T18:00:00+0000" data-end="2026-12-12T18:15:00+0000" title="Emacs as my portable user space across operating platforms" data-slug="portable"><title>Sat 1:00- 1:15 Emacs as my portable user space across operating platforms</title><rect x="376" y="50" opacity="0.8" width="23" height="29" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(397,78)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">portable</text></g></a><a href="/2026/talks/os" data-start="2026-12-12T18:35:00+0000" data-end="2026-12-12T18:55:00+0000" title="Emacs everywhere: A fun romp through esoteric operating systems" data-slug="os"><title>Sat 1:35- 1:55 Emacs everywhere: A fun romp through esoteric operating systems</title><rect x="431" y="50" opacity="0.8" width="31" height="29" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(460,78)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">os</text></g></a><a href="/2026/talks/cadet" data-start="2026-12-12T19:15:00+0000" data-end="2026-12-12T19:25:00+0000" title="My Space Cadet Deck - an Android Stream Deck replacement with deep Emacs integration" data-slug="cadet"><title>Sat 2:15- 2:25 My Space Cadet Deck - an Android Stream Deck replacement with deep Emacs integration</title><rect x="494" y="50" opacity="0.8" width="15" height="29" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(507,78)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">cadet</text></g></a><a href="/2026/talks/remoto" data-start="2026-12-12T19:45:00+0000" data-end="2026-12-12T20:05:00+0000" title="El Remoto: browse any GitHub repos without cloning them" data-slug="remoto"><title>Sat 2:45- 3:05 El Remoto: browse any GitHub repos without cloning them</title><rect x="541" y="50" opacity="0.8" width="31" height="29" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(570,78)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">remoto</text></g></a><a href="/2026/talks/guile" data-start="2026-12-12T20:25:00+0000" data-end="2026-12-12T20:45:00+0000" title="æmacs: having a hoot with a guile emacs" data-slug="guile"><title>Sat 3:25- 3:45 æmacs: having a hoot with a guile emacs</title><rect x="603" y="50" opacity="0.8" width="31" height="29" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(632,78)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">guile</text></g></a><a href="/2026/talks/virus" data-start="2026-12-12T21:05:00+0000" data-end="2026-12-12T21:25:00+0000" title="It's Probably Not a Virus" data-slug="virus"><title>Sat 4:05- 4:25 It's Probably Not a Virus</title><rect x="666" y="50" opacity="0.8" width="31" height="29" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(695,78)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">virus</text></g></a><g transform="translate(0,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="70"></line><text data-start="2026-12-12T14:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="90" font-size="10" text-anchor="left">9 AM EST</text></g><g transform="translate(94,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="70"></line><text data-start="2026-12-12T15:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="90" font-size="10" text-anchor="left">10 AM EST</text></g><g transform="translate(188,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="70"></line><text data-start="2026-12-12T16:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="90" font-size="10" text-anchor="left">11 AM EST</text></g><g transform="translate(282,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="70"></line><text data-start="2026-12-12T17:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="90" font-size="10" text-anchor="left">12 PM EST</text></g><g transform="translate(376,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="70"></line><text data-start="2026-12-12T18:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="90" font-size="10" text-anchor="left">1 PM EST</text></g><g transform="translate(470,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="70"></line><text data-start="2026-12-12T19:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="90" font-size="10" text-anchor="left">2 PM EST</text></g><g transform="translate(564,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="70"></line><text data-start="2026-12-12T20:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="90" font-size="10" text-anchor="left">3 PM EST</text></g><g transform="translate(658,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="70"></line><text data-start="2026-12-12T21:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="90" font-size="10" text-anchor="left">4 PM EST</text></g><g transform="translate(752,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="70"></line><text data-start="2026-12-12T22:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="90" font-size="10" text-anchor="left">5 PM EST</text></g></g><g transform="translate(0,100)"><title>Schedule for Sunday Dec 13 (-0500)</title><rect width="800" height="100" x="0" y="0" fill="white"></rect><text data-start="2026-12-13T14:00:00+0000" class="day-label" font-size="10" fill="black" y="17" x="3">Sunday Dec 13 (-0500)</text><a href="/2026/talks/sun-open" data-start="2026-12-13T14:00:00+0000" data-end="2026-12-13T14:10:00+0000" title="Sunday opening remarks" data-slug="sun-open"><title>Sun 9:00- 9:10 Sunday opening remarks</title><rect x="0" y="20" opacity="0.8" width="15" height="29" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(13,48)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sun-open</text></g></a><a href="/2026/talks/bone" data-start="2026-12-13T14:10:00+0000" data-end="2026-12-13T14:20:00+0000" title="BONE and gnaw.el: tracking what matters" data-slug="bone"><title>Sun 9:10- 9:20 BONE and gnaw.el: tracking what matters</title><rect x="15" y="20" opacity="0.8" width="15" height="29" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(28,48)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">bone</text></g></a><a href="/2026/talks/local" data-start="2026-12-13T14:40:00+0000" data-end="2026-12-13T14:55:00+0000" title="Local file history possibilities in Emacs" data-slug="local"><title>Sun 9:40- 9:55 Local file history possibilities in Emacs</title><rect x="62" y="20" opacity="0.8" width="23" height="29" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(83,48)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">local</text></g></a><a href="/2026/talks/hutch" data-start="2026-12-13T15:15:00+0000" data-end="2026-12-13T15:25:00+0000" title="hutch: code reviews for the mildly disenfranchised" data-slug="hutch"><title>Sun 10:15-10:25 hutch: code reviews for the mildly disenfranchised</title><rect x="117" y="20" opacity="0.8" width="15" height="29" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(130,48)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">hutch</text></g></a><a href="/2026/talks/team" data-start="2026-12-13T15:35:00+0000" data-end="2026-12-13T15:55:00+0000" title="Beyond the Chatbot: Team-Oriented AI in Emacs" data-slug="team"><title>Sun 10:35-10:55 Beyond the Chatbot: Team-Oriented AI in Emacs</title><rect x="149" y="20" opacity="0.8" width="31" height="29" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(178,48)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">team</text></g></a><a href="/2026/talks/compile" data-start="2026-12-13T16:15:00+0000" data-end="2026-12-13T16:35:00+0000" title="Beyond shell history: Saving compilation output in Emacs" data-slug="compile"><title>Sun 11:15-11:35 Beyond shell history: Saving compilation output in Emacs</title><rect x="211" y="20" opacity="0.8" width="31" height="29" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(240,48)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">compile</text></g></a><a href="/2026/talks/dnd" data-start="2026-12-13T18:00:00+0000" data-end="2026-12-13T18:20:00+0000" title="DnD and Org Roam: Becoming a Better DM with Emacs" data-slug="dnd"><title>Sun 1:00- 1:20 DnD and Org Roam: Becoming a Better DM with Emacs</title><rect x="376" y="20" opacity="0.8" width="31" height="29" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(405,48)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">dnd</text></g></a><a href="/2026/talks/bible" data-start="2026-12-13T18:30:00+0000" data-end="2026-12-13T18:50:00+0000" title="bible-gateway: A Two-Edged Sword in Emacs" data-slug="bible"><title>Sun 1:30- 1:50 bible-gateway: A Two-Edged Sword in Emacs</title><rect x="423" y="20" opacity="0.8" width="31" height="29" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(452,48)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">bible</text></g></a><a href="/2026/talks/svg" data-start="2026-12-13T19:10:00+0000" data-end="2026-12-13T19:30:00+0000" title="A (sort of) REPL for learning SVG" data-slug="svg"><title>Sun 2:10- 2:30 A (sort of) REPL for learning SVG</title><rect x="486" y="20" opacity="0.8" width="31" height="29" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(515,48)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">svg</text></g></a><a href="/2026/talks/align" data-start="2026-12-13T19:50:00+0000" data-end="2026-12-13T20:10:00+0000" title="Column-aligning text in Emacs" data-slug="align"><title>Sun 2:50- 3:10 Column-aligning text in Emacs</title><rect x="549" y="20" opacity="0.8" width="31" height="29" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(578,48)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">align</text></g></a><a href="/2026/talks/anju" data-start="2026-12-13T20:30:00+0000" data-end="2026-12-13T20:50:00+0000" title="Revisiting Emacs Mouse Interactions with Anju" data-slug="anju"><title>Sun 3:30- 3:50 Revisiting Emacs Mouse Interactions with Anju</title><rect x="611" y="20" opacity="0.8" width="31" height="29" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(640,48)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">anju</text></g></a><a href="/2026/talks/ghostel" data-start="2026-12-13T21:00:00+0000" data-end="2026-12-13T21:20:00+0000" title="Ghost in the Shell: a libghostty powered terminal for Emacs" data-slug="ghostel"><title>Sun 4:00- 4:20 Ghost in the Shell: a libghostty powered terminal for Emacs</title><rect x="658" y="20" opacity="0.8" width="31" height="29" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(687,48)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">ghostel</text></g></a><a href="/2026/talks/sun-close" data-start="2026-12-13T21:40:00+0000" data-end="2026-12-13T21:50:00+0000" title="Sunday closing remarks" data-slug="sun-close"><title>Sun 4:40- 4:50 Sunday closing remarks</title><rect x="721" y="20" opacity="0.8" width="15" height="29" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(734,48)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sun-close</text></g></a><a href="/2026/talks/prefix" data-start="2026-12-13T15:00:00+0000" data-end="2026-12-13T15:10:00+0000" title="prefix-tab-groups" data-slug="prefix"><title>Sun 10:00-10:10 prefix-tab-groups</title><rect x="94" y="50" opacity="0.8" width="15" height="29" stroke="black" stroke-dasharray="5,5,5" fill="skyblue"></rect><g transform="translate(107,78)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">prefix</text></g></a><a href="/2026/talks/rau" data-start="2026-12-13T15:20:00+0000" data-end="2026-12-13T15:40:00+0000" title="Emacs as a Window Manager and concurrency" data-slug="rau"><title>Sun 10:20-10:40 Emacs as a Window Manager and concurrency</title><rect x="125" y="50" opacity="0.8" width="31" height="29" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(154,78)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">rau</text></g></a><a href="/2026/talks/babel" data-start="2026-12-13T16:00:00+0000" data-end="2026-12-13T16:10:00+0000" title="Org Babel everywhere" data-slug="babel"><title>Sun 11:00-11:10 Org Babel everywhere</title><rect x="188" y="50" opacity="0.8" width="15" height="29" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(201,78)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">babel</text></g></a><a href="/2026/talks/el-gpu" data-start="2026-12-13T16:30:00+0000" data-end="2026-12-13T16:50:00+0000" title="El-gpu and pix-el: GNU Emacs 2D and 3D game programming" data-slug="el-gpu"><title>Sun 11:30-11:50 El-gpu and pix-el: GNU Emacs 2D and 3D game programming</title><rect x="235" y="50" opacity="0.8" width="31" height="29" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(264,78)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">el-gpu</text></g></a><a href="/2026/talks/llms" data-start="2026-12-13T18:00:00+0000" data-end="2026-12-13T19:00:00+0000" title="[Panel] Emacs, LLMs, and Free Software" data-slug="llms"><title>Sun 1:00- 2:00 [Panel] Emacs, LLMs, and Free Software</title><rect x="376" y="50" opacity="0.8" width="94" height="29" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(468,78)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">llms</text></g></a><g transform="translate(0,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="70"></line><text data-start="2026-12-13T14:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="90" font-size="10" text-anchor="left">9 AM EST</text></g><g transform="translate(94,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="70"></line><text data-start="2026-12-13T15:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="90" font-size="10" text-anchor="left">10 AM EST</text></g><g transform="translate(188,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="70"></line><text data-start="2026-12-13T16:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="90" font-size="10" text-anchor="left">11 AM EST</text></g><g transform="translate(282,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="70"></line><text data-start="2026-12-13T17:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="90" font-size="10" text-anchor="left">12 PM EST</text></g><g transform="translate(376,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="70"></line><text data-start="2026-12-13T18:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="90" font-size="10" text-anchor="left">1 PM EST</text></g><g transform="translate(470,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="70"></line><text data-start="2026-12-13T19:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="90" font-size="10" text-anchor="left">2 PM EST</text></g><g transform="translate(564,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="70"></line><text data-start="2026-12-13T20:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="90" font-size="10" text-anchor="left">3 PM EST</text></g><g transform="translate(658,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="70"></line><text data-start="2026-12-13T21:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="90" font-size="10" text-anchor="left">4 PM EST</text></g><g transform="translate(752,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="70"></line><text data-start="2026-12-13T22:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="90" font-size="10" text-anchor="left">5 PM EST</text></g></g><g transform="translate(0,200)"><title>Schedule for Sunday Oct 25 (-0400)</title><rect width="800" height="100" x="0" y="0" fill="white"></rect><text data-start="2026-10-25T14:00:00+0000" class="day-label" font-size="10" fill="black" y="17" x="3">Sunday Oct 25 (-0400)</text><a href="/2026/talks/tasks" data-start="2026-10-25T21:24:38+0000" data-end="2026-10-25T21:24:38+0000" title="Personal task management under stress (with Org mode)" data-slug="tasks"><title>Sun 5:24- 5:24 Personal task management under stress (with Org mode)</title><rect x="697" y="20" opacity="0.8" width="0" height="29" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(695,48)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">tasks</text></g></a><g transform="translate(0,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="70"></line><text data-start="2026-10-25T14:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="90" font-size="10" text-anchor="left">10 AM EDT</text></g><g transform="translate(94,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="70"></line><text data-start="2026-10-25T15:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="90" font-size="10" text-anchor="left">11 AM EDT</text></g><g transform="translate(188,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="70"></line><text data-start="2026-10-25T16:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="90" font-size="10" text-anchor="left">12 PM EDT</text></g><g transform="translate(282,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="70"></line><text data-start="2026-10-25T17:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="90" font-size="10" text-anchor="left">1 PM EDT</text></g><g transform="translate(376,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="70"></line><text data-start="2026-10-25T18:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="90" font-size="10" text-anchor="left">2 PM EDT</text></g><g transform="translate(470,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="70"></line><text data-start="2026-10-25T19:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="90" font-size="10" text-anchor="left">3 PM EDT</text></g><g transform="translate(564,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="70"></line><text data-start="2026-10-25T20:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="90" font-size="10" text-anchor="left">4 PM EDT</text></g><g transform="translate(658,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="70"></line><text data-start="2026-10-25T21:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="90" font-size="10" text-anchor="left">5 PM EDT</text></g><g transform="translate(752,3)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="70"></line><text data-start="2026-10-25T22:00:00+0000" fill="black" x="0" class="hour-label" font-size="10" y="90" font-size="10" text-anchor="left">6 PM EDT</text></g></g></svg></div>
\ No newline at end of file diff --git a/2026/talks/tasks.md b/2026/talks/tasks.md new file mode 100644 index 00000000..90b01979 --- /dev/null +++ b/2026/talks/tasks.md @@ -0,0 +1,22 @@ +[[!meta title="Personal task management under stress (with Org mode)"]] +[[!meta copyright="Copyright © 2026 Ihor Radchenko"]] +[[!inline pages="internal(2026/info/tasks-nav)" raw="yes"]] + +<!-- Initially generated with emacsconf-publish-talk-page and then left alone for manual editing --> +<!-- You can manually edit this file to update the abstract, add links, etc. ---> + + +# Personal task management under stress (with Org mode) +Ihor Radchenko - IRC: yantar92 + +[[!inline pages="internal(2026/info/tasks-before)" raw="yes"]] + +Ever had tasks piling up at work, then family matters on top, all with critical deadlines you cannot miss? Such moments are often the entry point to exploring GTD, P.A.R.A., pomodoro, time blocking, time budgeting, and whatnot. However, fancy personal task management techniques often sound logical and appealing, but quickly fall apart in real life. Worse, they make your life more difficult because they encourage recording **even more tasks** that will never be completed and only pile up, diluting what really matters. The truth is – you cannot complete every possible task and explore every possible idea in your life. Not even in the short term, because emergencies do happen. To be useful, personal task management should handle failures, emergencies, and a plain lack of time and energy. In this talk, I will introduce the key principles that took me years of task management to discover; and that I wish I had known from the beginning. I will also show the detailed workflows I built for myself, with Org mode, for Org mode maintenance and for my real life job. This is not a package, but ideas, and workflows that can be personalized as much as anything in Emacs. + + + +[[!inline pages="internal(2026/info/tasks-after)" raw="yes"]] + +[[!inline pages="internal(2026/info/tasks-nav)" raw="yes"]] + + |
