diff options
| -rw-r--r-- | 2026/info/compile-after.md | 10 | ||||
| -rw-r--r-- | 2026/info/compile-before.md | 13 | ||||
| -rw-r--r-- | 2026/info/compile-nav.md | 7 | ||||
| -rw-r--r-- | 2026/info/dnd-nav.md | 2 | ||||
| -rw-r--r-- | 2026/info/team-nav.md | 2 | ||||
| -rw-r--r-- | 2026/organizers-notebook/schedule.svg | 2 | ||||
| -rw-r--r-- | 2026/schedule-details.md | 3 | ||||
| -rw-r--r-- | 2026/talks/compile.md | 46 |
8 files changed, 81 insertions, 4 deletions
diff --git a/2026/info/compile-after.md b/2026/info/compile-after.md new file mode 100644 index 00000000..22f4c1cf --- /dev/null +++ b/2026/info/compile-after.md @@ -0,0 +1,10 @@ +<!-- 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%20compile%3A%20Beyond%20shell%20history%3A%20Saving%20compilation%20output%20in%20Emacs) + +---- +Got an idea for an EmacsConf talk or session? We'd love to hear from you! Check out the [[Call for Participation|/2026/cfp]] for details. + + +<!-- End of emacsconf-publish-after-page --> diff --git a/2026/info/compile-before.md b/2026/info/compile-before.md new file mode 100644 index 00000000..87b9562b --- /dev/null +++ b/2026/info/compile-before.md @@ -0,0 +1,13 @@ +<!-- Automatically generated by emacsconf-publish-before-page --> +[[!toc ]] +Format: 20-min talk ; Q&A: BigBlueButton conference room Etherpad: <https://pad.emacsconf.org/2026-compile> +Etherpad: <https://pad.emacsconf.org/2026-compile> +Status: Waiting for video from speaker + + + + + + +# Description +<!-- End of emacsconf-publish-before-page -->
\ No newline at end of file diff --git a/2026/info/compile-nav.md b/2026/info/compile-nav.md new file mode 100644 index 00000000..321342f7 --- /dev/null +++ b/2026/info/compile-nav.md @@ -0,0 +1,7 @@ + +<div class="talk-nav"> +Back to the [[talks]] +Previous by track: <a href="/2026/talks/team">Beyond the Chatbot: Team-Oriented AI in Emacs</a> +Next by track: <a href="/2026/talks/dnd">DnD and Org Roam: Becoming a Better DM with Emacs</a> +Track: <span class="sched-track General">General</span> +</div> diff --git a/2026/info/dnd-nav.md b/2026/info/dnd-nav.md index 86bf8749..c69f2fc5 100644 --- a/2026/info/dnd-nav.md +++ b/2026/info/dnd-nav.md @@ -1,7 +1,7 @@ <div class="talk-nav"> Back to the [[talks]] -Previous by track: <a href="/2026/talks/team">Beyond the Chatbot: Team-Oriented AI in Emacs</a> +Previous by track: <a href="/2026/talks/compile">Beyond shell history: Saving compilation output in Emacs</a> Next by track: <a href="/2026/talks/bible">bible-gateway: A Two-Edged Sword in Emacs</a> Track: <span class="sched-track General">General</span> </div> diff --git a/2026/info/team-nav.md b/2026/info/team-nav.md index 41818cd7..40e7140d 100644 --- a/2026/info/team-nav.md +++ b/2026/info/team-nav.md @@ -2,6 +2,6 @@ <div class="talk-nav"> Back to the [[talks]] Previous by track: <a href="/2026/talks/hutch">hutch: code reviews for the mildly disenfranchised</a> -Next by track: <a href="/2026/talks/dnd">DnD and Org Roam: Becoming a Better DM with Emacs</a> +Next by track: <a href="/2026/talks/compile">Beyond shell history: Saving compilation output in Emacs</a> Track: <span class="sched-track General">General</span> </div> diff --git a/2026/organizers-notebook/schedule.svg b/2026/organizers-notebook/schedule.svg index 1b35c3f2..75569abb 100644 --- a/2026/organizers-notebook/schedule.svg +++ b/2026/organizers-notebook/schedule.svg @@ -1 +1 @@ -<svg width="500" height="700" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><title>Graphical view of the schedule</title><g transform="translate(0,0)"><title>Schedule for Saturday</title><rect width="250" height="700" x="0" y="0" fill="white"></rect><text font-size="10" fill="black" y="30" x="3">Saturday</text><a href="https://emacsconf.org/2026/talks/sat-open" title="Saturday opening remarks" data-slug="sat-open"><title> 9:00- 9:10 Saturday opening remarks</title><rect x="40" y="40" opacity="0.8" width="84" height="13" stroke="black" stroke-dasharray="5,5,5" fill="gray"></rect><g transform="translate(40,51)"><text fill="black" x="0" y="0" font-size="10" transform="nil">sat-open</text></g></a><a href="https://emacsconf.org/2026/talks/planning" 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> 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="40" y="53" opacity="0.8" width="84" height="27" stroke="black" stroke-dasharray="" fill="lightblue"></rect><g transform="translate(40,78)"><text fill="black" x="0" y="0" font-size="10" transform="nil">planning</text></g></a><a href="https://emacsconf.org/2026/talks/listen" title="Controlling Emacs by voice using Emacslisten" data-slug="listen"><title> 9:50-10:10 Controlling Emacs by voice using Emacslisten</title><rect x="40" y="108" opacity="0.8" width="84" height="27" stroke="black" stroke-dasharray="" fill="lightblue"></rect><g transform="translate(40,133)"><text fill="black" x="0" y="0" font-size="10" transform="nil">listen</text></g></a><a href="https://emacsconf.org/2026/talks/emacspeak" title="Multi-dimensional information processing with Emacs and Emacspeak: a blind man's perspective" data-slug="emacspeak"><title>10:30-11:00 Multi-dimensional information processing with Emacs and Emacspeak: a blind man's perspective</title><rect x="40" y="163" opacity="0.8" width="84" height="41" stroke="black" stroke-dasharray="5,5,5" fill="gray"></rect><g transform="translate(40,202)"><text fill="black" x="0" y="0" font-size="10" transform="nil">emacspeak</text></g></a><a href="https://emacsconf.org/2026/talks/ltx-talk" title="ltx-talk: Accessible presentations with ox-beamer" data-slug="ltx-talk"><title>11:10-11:30 ltx-talk: Accessible presentations with ox-beamer</title><rect x="40" y="218" opacity="0.8" width="84" height="27" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(40,243)"><text fill="black" x="0" y="0" font-size="10" transform="nil">ltx-talk</text></g></a><a href="https://emacsconf.org/2026/talks/plots" title="Plots with ROOTs: Resilient data visualization with Emacs, Org and gnuplot" data-slug="plots"><title> 1:00- 1:20 Plots with ROOTs: Resilient data visualization with Emacs, Org and gnuplot</title><rect x="40" y="369" opacity="0.8" width="84" height="27" stroke="black" stroke-dasharray="" fill="lightblue"></rect><g transform="translate(40,394)"><text fill="black" x="0" y="0" font-size="10" transform="nil">plots</text></g></a><a href="https://emacsconf.org/2026/talks/ffs" title="Plain text presentations in GNU Emacs with ffs" data-slug="ffs"><title> 1:40- 2:00 Plain text presentations in GNU Emacs with ffs</title><rect x="40" y="424" opacity="0.8" width="84" height="27" stroke="black" stroke-dasharray="" fill="gray"></rect><g transform="translate(40,449)"><text fill="black" x="0" y="0" font-size="10" transform="nil">ffs</text></g></a><a href="https://emacsconf.org/2026/talks/mobile" title="How I fixed Org Mode's biggest mobile and collaboration problems" data-slug="mobile"><title> 2:20- 2:30 How I fixed Org Mode's biggest mobile and collaboration problems</title><rect x="40" y="479" opacity="0.8" width="84" height="13" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(40,490)"><text fill="black" x="0" y="0" font-size="10" transform="nil">mobile</text></g></a><a href="https://emacsconf.org/2026/talks/writing" title="Close the writing accountability gap with Emacs" data-slug="writing"><title> 2:50- 3:10 Close the writing accountability gap with Emacs</title><rect x="40" y="520" opacity="0.8" width="84" height="27" stroke="black" stroke-dasharray="" fill="gray"></rect><g transform="translate(40,545)"><text fill="black" x="0" y="0" font-size="10" transform="nil">writing</text></g></a><a href="https://emacsconf.org/2026/talks/hyperbole" title="Hyperbole, My Dear Watson" data-slug="hyperbole"><title> 3:30- 3:50 Hyperbole, My Dear Watson</title><rect x="40" y="575" opacity="0.8" width="84" height="27" stroke="black" stroke-dasharray="" fill="gray"></rect><g transform="translate(40,600)"><text fill="black" x="0" y="0" font-size="10" transform="nil">hyperbole</text></g></a><a href="https://emacsconf.org/2026/talks/koutliner" title="Hyperbole Koutliner: The Best Autonumbered, Hyperlinking Outliner for Emacs" data-slug="koutliner"><title> 4:10- 4:30 Hyperbole Koutliner: The Best Autonumbered, Hyperlinking Outliner for Emacs</title><rect x="40" y="630" opacity="0.8" width="84" height="27" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(40,655)"><text fill="black" x="0" y="0" font-size="10" transform="nil">koutliner</text></g></a><a href="https://emacsconf.org/2026/talks/sat-close" title="Saturday closing remarks / open session" data-slug="sat-close"><title> 4:50- 5:00 Saturday closing remarks / open session</title><rect x="40" y="685" opacity="0.8" width="84" height="13" stroke="black" stroke-dasharray="" fill="gray"></rect><g transform="translate(40,696)"><text fill="black" x="0" y="0" font-size="10" transform="nil">sat-close</text></g></a><a href="https://emacsconf.org/2026/talks/community" title="Community brainstorming" data-slug="community"><title>10:30-11:30 Community brainstorming</title><rect x="125" y="163" opacity="0.8" width="84" height="82" stroke="black" stroke-dasharray="" fill="gray"></rect><g transform="translate(125,243)"><text fill="black" x="0" y="0" font-size="10" transform="nil">community</text></g></a><a href="https://emacsconf.org/2026/talks/portable" title="Emacs as my portable user space across operating platforms" data-slug="portable"><title> 1:00- 1:10 Emacs as my portable user space across operating platforms</title><rect x="125" y="369" opacity="0.8" width="84" height="13" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(125,380)"><text fill="black" x="0" y="0" font-size="10" transform="nil">portable</text></g></a><a href="https://emacsconf.org/2026/talks/os" title="Emacs everywhere: A fun romp through esoteric operating systems" data-slug="os"><title> 1:30- 1:50 Emacs everywhere: A fun romp through esoteric operating systems</title><rect x="125" y="410" opacity="0.8" width="84" height="27" stroke="black" stroke-dasharray="" fill="gray"></rect><g transform="translate(125,435)"><text fill="black" x="0" y="0" font-size="10" transform="nil">os</text></g></a><a href="https://emacsconf.org/2026/talks/cadet" title="My Space Cadet Deck - an Android Stream Deck replacement with deep Emacs integration" data-slug="cadet"><title> 2:10- 2:20 My Space Cadet Deck - an Android Stream Deck replacement with deep Emacs integration</title><rect x="125" y="465" opacity="0.8" width="84" height="13" stroke="black" stroke-dasharray="" fill="gray"></rect><g transform="translate(125,476)"><text fill="black" x="0" y="0" font-size="10" transform="nil">cadet</text></g></a><g transform="translate(3,40)"><line stroke="darkgray" x1="40" y1="0" x2="210" y2="0"></line><text fill="black" x="0" y="0" font-size="10" dy=".4em">9 AM</text></g><g transform="translate(3,122)"><line stroke="darkgray" x1="40" y1="0" x2="210" y2="0"></line><text fill="black" x="0" y="0" font-size="10" dy=".4em">10 AM</text></g><g transform="translate(3,204)"><line stroke="darkgray" x1="40" y1="0" x2="210" y2="0"></line><text fill="black" x="0" y="0" font-size="10" dy=".4em">11 AM</text></g><g transform="translate(3,287)"><line stroke="darkgray" x1="40" y1="0" x2="210" y2="0"></line><text fill="black" x="0" y="0" font-size="10" dy=".4em">12 PM</text></g><g transform="translate(3,369)"><line stroke="darkgray" x1="40" y1="0" x2="210" y2="0"></line><text fill="black" x="0" y="0" font-size="10" dy=".4em">1 PM</text></g><g transform="translate(3,451)"><line stroke="darkgray" x1="40" y1="0" x2="210" y2="0"></line><text fill="black" x="0" y="0" font-size="10" dy=".4em">2 PM</text></g><g transform="translate(3,534)"><line stroke="darkgray" x1="40" y1="0" x2="210" y2="0"></line><text fill="black" x="0" y="0" font-size="10" dy=".4em">3 PM</text></g><g transform="translate(3,616)"><line stroke="darkgray" x1="40" y1="0" x2="210" y2="0"></line><text fill="black" x="0" y="0" font-size="10" dy=".4em">4 PM</text></g><g transform="translate(3,698)"><line stroke="darkgray" x1="40" y1="0" x2="210" y2="0"></line><text fill="black" x="0" y="0" font-size="10" dy=".4em">5 PM</text></g></g><g transform="translate(250,0)"><title>Schedule for Sunday</title><rect width="250" height="700" x="0" y="0" fill="white"></rect><text font-size="10" fill="black" y="30" x="3">Sunday</text><a href="https://emacsconf.org/2026/talks/sun-open" title="Sunday opening remarks" data-slug="sun-open"><title> 9:00- 9:10 Sunday opening remarks</title><rect x="40" y="40" opacity="0.8" width="84" height="13" stroke="black" stroke-dasharray="5,5,5" fill="gray"></rect><g transform="translate(40,51)"><text fill="black" x="0" y="0" font-size="10" transform="nil">sun-open</text></g></a><a href="https://emacsconf.org/2026/talks/bone" title="BONE and gnaw.el: tracking what matters" data-slug="bone"><title> 9:10- 9:20 BONE and gnaw.el: tracking what matters</title><rect x="40" y="53" opacity="0.8" width="84" height="13" stroke="black" stroke-dasharray="" fill="lightblue"></rect><g transform="translate(40,64)"><text fill="black" x="0" y="0" font-size="10" transform="nil">bone</text></g></a><a href="https://emacsconf.org/2026/talks/local" title="Local file history possibilities in Emacs" data-slug="local"><title> 9:40- 9:50 Local file history possibilities in Emacs</title><rect x="40" y="94" opacity="0.8" width="84" height="13" stroke="black" stroke-dasharray="" fill="lightblue"></rect><g transform="translate(40,105)"><text fill="black" x="0" y="0" font-size="10" transform="nil">local</text></g></a><a href="https://emacsconf.org/2026/talks/hutch" title="hutch: code reviews for the mildly disenfranchised" data-slug="hutch"><title>10:10-10:20 hutch: code reviews for the mildly disenfranchised</title><rect x="40" y="136" opacity="0.8" width="84" height="13" stroke="black" stroke-dasharray="5,5,5" fill="lightblue"></rect><g transform="translate(40,147)"><text fill="black" x="0" y="0" font-size="10" transform="nil">hutch</text></g></a><a href="https://emacsconf.org/2026/talks/team" title="Beyond the Chatbot: Team-Oriented AI in Emacs" data-slug="team"><title>10:30-10:50 Beyond the Chatbot: Team-Oriented AI in Emacs</title><rect x="40" y="163" opacity="0.8" width="84" height="27" stroke="black" stroke-dasharray="" fill="gray"></rect><g transform="translate(40,188)"><text fill="black" x="0" y="0" font-size="10" transform="nil">team</text></g></a><a href="https://emacsconf.org/2026/talks/compile" title="Beyond Shell History: Saving Compilation Output in Emacs" data-slug="compile"><title>11:10-11:30 Beyond Shell History: Saving Compilation Output in Emacs</title><rect x="40" y="218" opacity="0.8" width="84" height="27" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(40,243)"><text fill="black" x="0" y="0" font-size="10" transform="nil">compile</text></g></a><a href="https://emacsconf.org/2026/talks/dnd" title="DnD and Org Roam: Becoming a Better DM with Emacs" data-slug="dnd"><title> 1:00- 1:10 DnD and Org Roam: Becoming a Better DM with Emacs</title><rect x="40" y="369" opacity="0.8" width="84" height="13" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(40,380)"><text fill="black" x="0" y="0" font-size="10" transform="nil">dnd</text></g></a><a href="https://emacsconf.org/2026/talks/bible" title="bible-gateway: A Two-Edged Sword in Emacs" data-slug="bible"><title> 1:30- 1:50 bible-gateway: A Two-Edged Sword in Emacs</title><rect x="40" y="410" opacity="0.8" width="84" height="27" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(40,435)"><text fill="black" x="0" y="0" font-size="10" transform="nil">bible</text></g></a><a href="https://emacsconf.org/2026/talks/svg" title="A (sort of) REPL for learning SVG" data-slug="svg"><title> 2:10- 2:30 A (sort of) REPL for learning SVG</title><rect x="40" y="465" opacity="0.8" width="84" height="27" stroke="black" stroke-dasharray="" fill="gray"></rect><g transform="translate(40,490)"><text fill="black" x="0" y="0" font-size="10" transform="nil">svg</text></g></a><a href="https://emacsconf.org/2026/talks/align" title="Column-aligning text in Emacs" data-slug="align"><title> 2:50- 3:10 Column-aligning text in Emacs</title><rect x="40" y="520" opacity="0.8" width="84" height="27" stroke="black" stroke-dasharray="" fill="gray"></rect><g transform="translate(40,545)"><text fill="black" x="0" y="0" font-size="10" transform="nil">align</text></g></a><a href="https://emacsconf.org/2026/talks/anju" title="Revisiting Emacs Mouse Interactions with Anju" data-slug="anju"><title> 3:30- 3:50 Revisiting Emacs Mouse Interactions with Anju</title><rect x="40" y="575" opacity="0.8" width="84" height="27" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(40,600)"><text fill="black" x="0" y="0" font-size="10" transform="nil">anju</text></g></a><a href="https://emacsconf.org/2026/talks/ghostel" title="Ghost in the Shell: a libghostty powered terminal for Emacs" data-slug="ghostel"><title> 4:00- 4:20 Ghost in the Shell: a libghostty powered terminal for Emacs</title><rect x="40" y="616" opacity="0.8" width="84" height="27" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(40,641)"><text fill="black" x="0" y="0" font-size="10" transform="nil">ghostel</text></g></a><a href="https://emacsconf.org/2026/talks/sun-close" title="Sunday closing remarks" data-slug="sun-close"><title> 4:40- 4:50 Sunday closing remarks</title><rect x="40" y="671" opacity="0.8" width="84" height="13" stroke="black" stroke-dasharray="" fill="gray"></rect><g transform="translate(40,682)"><text fill="black" x="0" y="0" font-size="10" transform="nil">sun-close</text></g></a><a href="https://emacsconf.org/2026/talks/prefix" title="prefix-tab-groups" data-slug="prefix"><title>10:00-10:10 prefix-tab-groups</title><rect x="125" y="122" opacity="0.8" width="84" height="13" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(125,133)"><text fill="black" x="0" y="0" font-size="10" transform="nil">prefix</text></g></a><a href="https://emacsconf.org/2026/talks/rau" title="Emacs as a Window Manager and concurrency" data-slug="rau"><title>10:20-10:40 Emacs as a Window Manager and concurrency</title><rect x="125" y="149" opacity="0.8" width="84" height="27" stroke="black" stroke-dasharray="" fill="lightblue"></rect><g transform="translate(125,174)"><text fill="black" x="0" y="0" font-size="10" transform="nil">rau</text></g></a><a href="https://emacsconf.org/2026/talks/llms" title="Meetup about LLMs" data-slug="llms"><title> 1:00- 2:00 Meetup about LLMs</title><rect x="125" y="369" opacity="0.8" width="84" height="82" stroke="black" stroke-dasharray="" fill="gray"></rect><g transform="translate(125,449)"><text fill="black" x="0" y="0" font-size="10" transform="nil">llms</text></g></a><g transform="translate(3,40)"><line stroke="darkgray" x1="40" y1="0" x2="210" y2="0"></line><text fill="black" x="0" y="0" font-size="10" dy=".4em">9 AM</text></g><g transform="translate(3,122)"><line stroke="darkgray" x1="40" y1="0" x2="210" y2="0"></line><text fill="black" x="0" y="0" font-size="10" dy=".4em">10 AM</text></g><g transform="translate(3,204)"><line stroke="darkgray" x1="40" y1="0" x2="210" y2="0"></line><text fill="black" x="0" y="0" font-size="10" dy=".4em">11 AM</text></g><g transform="translate(3,287)"><line stroke="darkgray" x1="40" y1="0" x2="210" y2="0"></line><text fill="black" x="0" y="0" font-size="10" dy=".4em">12 PM</text></g><g transform="translate(3,369)"><line stroke="darkgray" x1="40" y1="0" x2="210" y2="0"></line><text fill="black" x="0" y="0" font-size="10" dy=".4em">1 PM</text></g><g transform="translate(3,451)"><line stroke="darkgray" x1="40" y1="0" x2="210" y2="0"></line><text fill="black" x="0" y="0" font-size="10" dy=".4em">2 PM</text></g><g transform="translate(3,534)"><line stroke="darkgray" x1="40" y1="0" x2="210" y2="0"></line><text fill="black" x="0" y="0" font-size="10" dy=".4em">3 PM</text></g><g transform="translate(3,616)"><line stroke="darkgray" x1="40" y1="0" x2="210" y2="0"></line><text fill="black" x="0" y="0" font-size="10" dy=".4em">4 PM</text></g><g transform="translate(3,698)"><line stroke="darkgray" x1="40" y1="0" x2="210" y2="0"></line><text fill="black" x="0" y="0" font-size="10" dy=".4em">5 PM</text></g></g></svg>
\ No newline at end of file +<svg width="500" height="700" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><title>Graphical view of the schedule</title><g transform="translate(0,0)"><title>Schedule for Saturday</title><rect width="250" height="700" x="0" y="0" fill="white"></rect><text font-size="10" fill="black" y="30" x="3">Saturday</text><a href="https://emacsconf.org/2026/talks/sat-open" title="Saturday opening remarks" data-slug="sat-open"><title> 9:00- 9:10 Saturday opening remarks</title><rect x="40" y="40" opacity="0.8" width="84" height="13" stroke="black" stroke-dasharray="5,5,5" fill="gray"></rect><g transform="translate(40,51)"><text fill="black" x="0" y="0" font-size="10" transform="nil">sat-open</text></g></a><a href="https://emacsconf.org/2026/talks/planning" 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> 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="40" y="53" opacity="0.8" width="84" height="27" stroke="black" stroke-dasharray="" fill="lightblue"></rect><g transform="translate(40,78)"><text fill="black" x="0" y="0" font-size="10" transform="nil">planning</text></g></a><a href="https://emacsconf.org/2026/talks/listen" title="Controlling Emacs by voice using Emacslisten" data-slug="listen"><title> 9:50-10:10 Controlling Emacs by voice using Emacslisten</title><rect x="40" y="108" opacity="0.8" width="84" height="27" stroke="black" stroke-dasharray="" fill="lightblue"></rect><g transform="translate(40,133)"><text fill="black" x="0" y="0" font-size="10" transform="nil">listen</text></g></a><a href="https://emacsconf.org/2026/talks/emacspeak" title="Multi-dimensional information processing with Emacs and Emacspeak: a blind man's perspective" data-slug="emacspeak"><title>10:30-11:00 Multi-dimensional information processing with Emacs and Emacspeak: a blind man's perspective</title><rect x="40" y="163" opacity="0.8" width="84" height="41" stroke="black" stroke-dasharray="5,5,5" fill="gray"></rect><g transform="translate(40,202)"><text fill="black" x="0" y="0" font-size="10" transform="nil">emacspeak</text></g></a><a href="https://emacsconf.org/2026/talks/ltx-talk" title="ltx-talk: Accessible presentations with ox-beamer" data-slug="ltx-talk"><title>11:10-11:30 ltx-talk: Accessible presentations with ox-beamer</title><rect x="40" y="218" opacity="0.8" width="84" height="27" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(40,243)"><text fill="black" x="0" y="0" font-size="10" transform="nil">ltx-talk</text></g></a><a href="https://emacsconf.org/2026/talks/plots" title="Plots with ROOTs: Resilient data visualization with Emacs, Org and gnuplot" data-slug="plots"><title> 1:00- 1:20 Plots with ROOTs: Resilient data visualization with Emacs, Org and gnuplot</title><rect x="40" y="369" opacity="0.8" width="84" height="27" stroke="black" stroke-dasharray="" fill="lightblue"></rect><g transform="translate(40,394)"><text fill="black" x="0" y="0" font-size="10" transform="nil">plots</text></g></a><a href="https://emacsconf.org/2026/talks/ffs" title="Plain text presentations in GNU Emacs with ffs" data-slug="ffs"><title> 1:40- 2:00 Plain text presentations in GNU Emacs with ffs</title><rect x="40" y="424" opacity="0.8" width="84" height="27" stroke="black" stroke-dasharray="" fill="gray"></rect><g transform="translate(40,449)"><text fill="black" x="0" y="0" font-size="10" transform="nil">ffs</text></g></a><a href="https://emacsconf.org/2026/talks/mobile" title="How I fixed Org Mode's biggest mobile and collaboration problems" data-slug="mobile"><title> 2:20- 2:30 How I fixed Org Mode's biggest mobile and collaboration problems</title><rect x="40" y="479" opacity="0.8" width="84" height="13" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(40,490)"><text fill="black" x="0" y="0" font-size="10" transform="nil">mobile</text></g></a><a href="https://emacsconf.org/2026/talks/writing" title="Close the writing accountability gap with Emacs" data-slug="writing"><title> 2:50- 3:10 Close the writing accountability gap with Emacs</title><rect x="40" y="520" opacity="0.8" width="84" height="27" stroke="black" stroke-dasharray="" fill="gray"></rect><g transform="translate(40,545)"><text fill="black" x="0" y="0" font-size="10" transform="nil">writing</text></g></a><a href="https://emacsconf.org/2026/talks/hyperbole" title="Hyperbole, My Dear Watson" data-slug="hyperbole"><title> 3:30- 3:50 Hyperbole, My Dear Watson</title><rect x="40" y="575" opacity="0.8" width="84" height="27" stroke="black" stroke-dasharray="" fill="gray"></rect><g transform="translate(40,600)"><text fill="black" x="0" y="0" font-size="10" transform="nil">hyperbole</text></g></a><a href="https://emacsconf.org/2026/talks/koutliner" title="Hyperbole Koutliner: The Best Autonumbered, Hyperlinking Outliner for Emacs" data-slug="koutliner"><title> 4:10- 4:30 Hyperbole Koutliner: The Best Autonumbered, Hyperlinking Outliner for Emacs</title><rect x="40" y="630" opacity="0.8" width="84" height="27" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(40,655)"><text fill="black" x="0" y="0" font-size="10" transform="nil">koutliner</text></g></a><a href="https://emacsconf.org/2026/talks/sat-close" title="Saturday closing remarks / open session" data-slug="sat-close"><title> 4:50- 5:00 Saturday closing remarks / open session</title><rect x="40" y="685" opacity="0.8" width="84" height="13" stroke="black" stroke-dasharray="" fill="gray"></rect><g transform="translate(40,696)"><text fill="black" x="0" y="0" font-size="10" transform="nil">sat-close</text></g></a><a href="https://emacsconf.org/2026/talks/community" title="Community brainstorming" data-slug="community"><title>10:30-11:30 Community brainstorming</title><rect x="125" y="163" opacity="0.8" width="84" height="82" stroke="black" stroke-dasharray="" fill="gray"></rect><g transform="translate(125,243)"><text fill="black" x="0" y="0" font-size="10" transform="nil">community</text></g></a><a href="https://emacsconf.org/2026/talks/portable" title="Emacs as my portable user space across operating platforms" data-slug="portable"><title> 1:00- 1:10 Emacs as my portable user space across operating platforms</title><rect x="125" y="369" opacity="0.8" width="84" height="13" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(125,380)"><text fill="black" x="0" y="0" font-size="10" transform="nil">portable</text></g></a><a href="https://emacsconf.org/2026/talks/os" title="Emacs everywhere: A fun romp through esoteric operating systems" data-slug="os"><title> 1:30- 1:50 Emacs everywhere: A fun romp through esoteric operating systems</title><rect x="125" y="410" opacity="0.8" width="84" height="27" stroke="black" stroke-dasharray="" fill="gray"></rect><g transform="translate(125,435)"><text fill="black" x="0" y="0" font-size="10" transform="nil">os</text></g></a><a href="https://emacsconf.org/2026/talks/cadet" title="My Space Cadet Deck - an Android Stream Deck replacement with deep Emacs integration" data-slug="cadet"><title> 2:10- 2:20 My Space Cadet Deck - an Android Stream Deck replacement with deep Emacs integration</title><rect x="125" y="465" opacity="0.8" width="84" height="13" stroke="black" stroke-dasharray="" fill="gray"></rect><g transform="translate(125,476)"><text fill="black" x="0" y="0" font-size="10" transform="nil">cadet</text></g></a><g transform="translate(3,40)"><line stroke="darkgray" x1="40" y1="0" x2="210" y2="0"></line><text fill="black" x="0" y="0" font-size="10" dy=".4em">9 AM</text></g><g transform="translate(3,122)"><line stroke="darkgray" x1="40" y1="0" x2="210" y2="0"></line><text fill="black" x="0" y="0" font-size="10" dy=".4em">10 AM</text></g><g transform="translate(3,204)"><line stroke="darkgray" x1="40" y1="0" x2="210" y2="0"></line><text fill="black" x="0" y="0" font-size="10" dy=".4em">11 AM</text></g><g transform="translate(3,287)"><line stroke="darkgray" x1="40" y1="0" x2="210" y2="0"></line><text fill="black" x="0" y="0" font-size="10" dy=".4em">12 PM</text></g><g transform="translate(3,369)"><line stroke="darkgray" x1="40" y1="0" x2="210" y2="0"></line><text fill="black" x="0" y="0" font-size="10" dy=".4em">1 PM</text></g><g transform="translate(3,451)"><line stroke="darkgray" x1="40" y1="0" x2="210" y2="0"></line><text fill="black" x="0" y="0" font-size="10" dy=".4em">2 PM</text></g><g transform="translate(3,534)"><line stroke="darkgray" x1="40" y1="0" x2="210" y2="0"></line><text fill="black" x="0" y="0" font-size="10" dy=".4em">3 PM</text></g><g transform="translate(3,616)"><line stroke="darkgray" x1="40" y1="0" x2="210" y2="0"></line><text fill="black" x="0" y="0" font-size="10" dy=".4em">4 PM</text></g><g transform="translate(3,698)"><line stroke="darkgray" x1="40" y1="0" x2="210" y2="0"></line><text fill="black" x="0" y="0" font-size="10" dy=".4em">5 PM</text></g></g><g transform="translate(250,0)"><title>Schedule for Sunday</title><rect width="250" height="700" x="0" y="0" fill="white"></rect><text font-size="10" fill="black" y="30" x="3">Sunday</text><a href="https://emacsconf.org/2026/talks/sun-open" title="Sunday opening remarks" data-slug="sun-open"><title> 9:00- 9:10 Sunday opening remarks</title><rect x="40" y="40" opacity="0.8" width="84" height="13" stroke="black" stroke-dasharray="5,5,5" fill="gray"></rect><g transform="translate(40,51)"><text fill="black" x="0" y="0" font-size="10" transform="nil">sun-open</text></g></a><a href="https://emacsconf.org/2026/talks/bone" title="BONE and gnaw.el: tracking what matters" data-slug="bone"><title> 9:10- 9:20 BONE and gnaw.el: tracking what matters</title><rect x="40" y="53" opacity="0.8" width="84" height="13" stroke="black" stroke-dasharray="" fill="lightblue"></rect><g transform="translate(40,64)"><text fill="black" x="0" y="0" font-size="10" transform="nil">bone</text></g></a><a href="https://emacsconf.org/2026/talks/local" title="Local file history possibilities in Emacs" data-slug="local"><title> 9:40- 9:50 Local file history possibilities in Emacs</title><rect x="40" y="94" opacity="0.8" width="84" height="13" stroke="black" stroke-dasharray="" fill="lightblue"></rect><g transform="translate(40,105)"><text fill="black" x="0" y="0" font-size="10" transform="nil">local</text></g></a><a href="https://emacsconf.org/2026/talks/hutch" title="hutch: code reviews for the mildly disenfranchised" data-slug="hutch"><title>10:10-10:20 hutch: code reviews for the mildly disenfranchised</title><rect x="40" y="136" opacity="0.8" width="84" height="13" stroke="black" stroke-dasharray="5,5,5" fill="lightblue"></rect><g transform="translate(40,147)"><text fill="black" x="0" y="0" font-size="10" transform="nil">hutch</text></g></a><a href="https://emacsconf.org/2026/talks/team" title="Beyond the Chatbot: Team-Oriented AI in Emacs" data-slug="team"><title>10:30-10:50 Beyond the Chatbot: Team-Oriented AI in Emacs</title><rect x="40" y="163" opacity="0.8" width="84" height="27" stroke="black" stroke-dasharray="" fill="gray"></rect><g transform="translate(40,188)"><text fill="black" x="0" y="0" font-size="10" transform="nil">team</text></g></a><a href="https://emacsconf.org/2026/talks/compile" title="Beyond shell history: Saving compilation output in Emacs" data-slug="compile"><title>11:10-11:30 Beyond shell history: Saving compilation output in Emacs</title><rect x="40" y="218" opacity="0.8" width="84" height="27" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(40,243)"><text fill="black" x="0" y="0" font-size="10" transform="nil">compile</text></g></a><a href="https://emacsconf.org/2026/talks/dnd" title="DnD and Org Roam: Becoming a Better DM with Emacs" data-slug="dnd"><title> 1:00- 1:10 DnD and Org Roam: Becoming a Better DM with Emacs</title><rect x="40" y="369" opacity="0.8" width="84" height="13" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(40,380)"><text fill="black" x="0" y="0" font-size="10" transform="nil">dnd</text></g></a><a href="https://emacsconf.org/2026/talks/bible" title="bible-gateway: A Two-Edged Sword in Emacs" data-slug="bible"><title> 1:30- 1:50 bible-gateway: A Two-Edged Sword in Emacs</title><rect x="40" y="410" opacity="0.8" width="84" height="27" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(40,435)"><text fill="black" x="0" y="0" font-size="10" transform="nil">bible</text></g></a><a href="https://emacsconf.org/2026/talks/svg" title="A (sort of) REPL for learning SVG" data-slug="svg"><title> 2:10- 2:30 A (sort of) REPL for learning SVG</title><rect x="40" y="465" opacity="0.8" width="84" height="27" stroke="black" stroke-dasharray="" fill="gray"></rect><g transform="translate(40,490)"><text fill="black" x="0" y="0" font-size="10" transform="nil">svg</text></g></a><a href="https://emacsconf.org/2026/talks/align" title="Column-aligning text in Emacs" data-slug="align"><title> 2:50- 3:10 Column-aligning text in Emacs</title><rect x="40" y="520" opacity="0.8" width="84" height="27" stroke="black" stroke-dasharray="" fill="gray"></rect><g transform="translate(40,545)"><text fill="black" x="0" y="0" font-size="10" transform="nil">align</text></g></a><a href="https://emacsconf.org/2026/talks/anju" title="Revisiting Emacs Mouse Interactions with Anju" data-slug="anju"><title> 3:30- 3:50 Revisiting Emacs Mouse Interactions with Anju</title><rect x="40" y="575" opacity="0.8" width="84" height="27" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(40,600)"><text fill="black" x="0" y="0" font-size="10" transform="nil">anju</text></g></a><a href="https://emacsconf.org/2026/talks/ghostel" title="Ghost in the Shell: a libghostty powered terminal for Emacs" data-slug="ghostel"><title> 4:00- 4:20 Ghost in the Shell: a libghostty powered terminal for Emacs</title><rect x="40" y="616" opacity="0.8" width="84" height="27" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(40,641)"><text fill="black" x="0" y="0" font-size="10" transform="nil">ghostel</text></g></a><a href="https://emacsconf.org/2026/talks/sun-close" title="Sunday closing remarks" data-slug="sun-close"><title> 4:40- 4:50 Sunday closing remarks</title><rect x="40" y="671" opacity="0.8" width="84" height="13" stroke="black" stroke-dasharray="" fill="gray"></rect><g transform="translate(40,682)"><text fill="black" x="0" y="0" font-size="10" transform="nil">sun-close</text></g></a><a href="https://emacsconf.org/2026/talks/prefix" title="prefix-tab-groups" data-slug="prefix"><title>10:00-10:10 prefix-tab-groups</title><rect x="125" y="122" opacity="0.8" width="84" height="13" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(125,133)"><text fill="black" x="0" y="0" font-size="10" transform="nil">prefix</text></g></a><a href="https://emacsconf.org/2026/talks/rau" title="Emacs as a Window Manager and concurrency" data-slug="rau"><title>10:20-10:40 Emacs as a Window Manager and concurrency</title><rect x="125" y="149" opacity="0.8" width="84" height="27" stroke="black" stroke-dasharray="" fill="lightblue"></rect><g transform="translate(125,174)"><text fill="black" x="0" y="0" font-size="10" transform="nil">rau</text></g></a><a href="https://emacsconf.org/2026/talks/llms" title="Meetup about LLMs" data-slug="llms"><title> 1:00- 2:00 Meetup about LLMs</title><rect x="125" y="369" opacity="0.8" width="84" height="82" stroke="black" stroke-dasharray="" fill="gray"></rect><g transform="translate(125,449)"><text fill="black" x="0" y="0" font-size="10" transform="nil">llms</text></g></a><g transform="translate(3,40)"><line stroke="darkgray" x1="40" y1="0" x2="210" y2="0"></line><text fill="black" x="0" y="0" font-size="10" dy=".4em">9 AM</text></g><g transform="translate(3,122)"><line stroke="darkgray" x1="40" y1="0" x2="210" y2="0"></line><text fill="black" x="0" y="0" font-size="10" dy=".4em">10 AM</text></g><g transform="translate(3,204)"><line stroke="darkgray" x1="40" y1="0" x2="210" y2="0"></line><text fill="black" x="0" y="0" font-size="10" dy=".4em">11 AM</text></g><g transform="translate(3,287)"><line stroke="darkgray" x1="40" y1="0" x2="210" y2="0"></line><text fill="black" x="0" y="0" font-size="10" dy=".4em">12 PM</text></g><g transform="translate(3,369)"><line stroke="darkgray" x1="40" y1="0" x2="210" y2="0"></line><text fill="black" x="0" y="0" font-size="10" dy=".4em">1 PM</text></g><g transform="translate(3,451)"><line stroke="darkgray" x1="40" y1="0" x2="210" y2="0"></line><text fill="black" x="0" y="0" font-size="10" dy=".4em">2 PM</text></g><g transform="translate(3,534)"><line stroke="darkgray" x1="40" y1="0" x2="210" y2="0"></line><text fill="black" x="0" y="0" font-size="10" dy=".4em">3 PM</text></g><g transform="translate(3,616)"><line stroke="darkgray" x1="40" y1="0" x2="210" y2="0"></line><text fill="black" x="0" y="0" font-size="10" dy=".4em">4 PM</text></g><g transform="translate(3,698)"><line stroke="darkgray" x1="40" y1="0" x2="210" y2="0"></line><text fill="black" x="0" y="0" font-size="10" dy=".4em">5 PM</text></g></g></svg>
\ No newline at end of file diff --git a/2026/schedule-details.md b/2026/schedule-details.md index 9a1bbb2d..a35b5ccd 100644 --- a/2026/schedule-details.md +++ b/2026/schedule-details.md @@ -1,6 +1,6 @@ Jump to: <a href="#b">B</a> -<h1 id="gen" class="sched-track General">General (20 talks)</h1> +<h1 id="gen" class="sched-track General">General (21 talks)</h1> [[!template id=sched title="""Saturday opening remarks""" url="""/2026/talks/sat-open""" speakers="""Sacha Chua""" watch="""https://emacsconf.org/2026/watch/gen""" slug="""sat-open""" note=""""""]] [[!template id=sched title="""The Emacs Planning Habits of a Questionably Effective Person: My 40-year journey of planning with Emacs, Org Mode, paper journals, etc.""" url="""/2026/talks/planning""" speakers="""George Jones""" watch="""https://emacsconf.org/2026/watch/gen""" slug="""planning""" note=""""""]] [[!template id=sched title="""Controlling Emacs by voice using Emacslisten""" url="""/2026/talks/listen""" speakers="""Erik Präntare""" watch="""https://emacsconf.org/2026/watch/gen""" slug="""listen""" note=""""""]] @@ -15,6 +15,7 @@ Jump to: <a href="#b">B</a> [[!template id=sched title="""Local file history possibilities in Emacs""" url="""/2026/talks/local""" speakers="""Wouter Groeneveld""" watch="""https://emacsconf.org/2026/watch/gen""" slug="""local""" note=""""""]] [[!template id=sched title="""hutch: code reviews for the mildly disenfranchised""" url="""/2026/talks/hutch""" speakers="""Akshay Gupta""" watch="""https://emacsconf.org/2026/watch/gen""" slug="""hutch""" note=""""""]] [[!template id=sched title="""Beyond the Chatbot: Team-Oriented AI in Emacs""" url="""/2026/talks/team""" speakers="""Mohsen BANAN""" watch="""https://emacsconf.org/2026/watch/gen""" slug="""team""" note=""""""]] +[[!template id=sched title="""Beyond shell history: Saving compilation output in Emacs""" url="""/2026/talks/compile""" speakers="""Jonathan Otsuka""" watch="""https://emacsconf.org/2026/watch/gen""" slug="""compile""" note=""""""]] [[!template id=sched title="""DnD and Org Roam: Becoming a Better DM with Emacs""" url="""/2026/talks/dnd""" speakers="""James R. Stoup""" watch="""https://emacsconf.org/2026/watch/gen""" slug="""dnd""" note=""""""]] [[!template id=sched title="""bible-gateway: A Two-Edged Sword in Emacs""" url="""/2026/talks/bible""" speakers="""Kristjon Ciko""" watch="""https://emacsconf.org/2026/watch/gen""" slug="""bible""" note=""""""]] [[!template id=sched title="""Column-aligning text in Emacs""" url="""/2026/talks/align""" speakers="""Jeff Trull""" watch="""https://emacsconf.org/2026/watch/gen""" slug="""align""" note=""""""]] diff --git a/2026/talks/compile.md b/2026/talks/compile.md new file mode 100644 index 00000000..89e8fd1e --- /dev/null +++ b/2026/talks/compile.md @@ -0,0 +1,46 @@ +[[!meta title="Beyond Shell History: Saving Compilation Output in Emacs"]] +[[!meta copyright="Copyright © 2026 Jonathan Otsuka"]] +[[!inline pages="internal(2026/info/compile-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. ---> + + +# Beyond Shell History: Saving Compilation Output in Emacs +Jonathan Otsuka (he/him) - Pronunciation: O-tsu-ka, https://github.com/djgoku/compilation-history + +[[!inline pages="internal(2026/info/compile-before)" raw="yes"]] + +I often want to look up a command I ran earlier and see what it printed. +Shell history gives me the command, but not its output. Emacs compilation +buffers have both, but once the buffer is gone, I need somewhere else to look. + +I built `compilation-history` to save that information. It stores each +compilation in SQLite, including the command, output, exit code, timing, +working directory, and Git context. I can search previous runs, reopen their +output, and run a command again without having to piece it together from +memory or notes. + +I'll show how I use the package and how it saves and displays previous runs. +I'll also show how I use it with AI coding agents. You can use +`emacs-mcp-server` or just plain `emacsclient` to have an agent run commands +through `compilation-start`. Those commands end up in the same history as my own, +so I can go back and check what a test, build, or diagnostic command printed +after the agent session is over. + +About the speaker: + +Jonathan Otsuka is a software engineer who enjoys working with Emacs +Lisp and Elixir. His open-source projects include +\`compilation-history\`, \`sops\` for editing encrypted files in Emacs, +and, more recently, \`misemacs\`, a tool for creating reproducible, +self-contained Emacs builds. away from the keyboard, he enjoys +swimming and cycling. + + + +[[!inline pages="internal(2026/info/compile-after)" raw="yes"]] + +[[!inline pages="internal(2026/info/compile-nav)" raw="yes"]] + + |
