summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSacha Chua <sacha@sachachua.com>2025-07-08 10:10:28 -0400
committerSacha Chua <sacha@sachachua.com>2025-07-08 10:10:44 -0400
commitba20b7297fcedf834bb98f7dbdfb219ddb65d1dd (patch)
treebd7b6ccd938912f6c2f76e225015c81f5e98dd4c
parent3cdb4fb88f69ab53428b581c0be7d5f707dea3c8 (diff)
downloademacsconf-wiki-ba20b7297fcedf834bb98f7dbdfb219ddb65d1dd.tar.xz
emacsconf-wiki-ba20b7297fcedf834bb98f7dbdfb219ddb65d1dd.zip
add bibliography, completion, juicemacs, python
-rw-r--r--2025/draft-schedule.md18
-rw-r--r--2025/info/completion-after.md10
-rw-r--r--2025/info/completion-before.md12
-rw-r--r--2025/info/completion-nav.md6
-rw-r--r--2025/info/python-after.md10
-rw-r--r--2025/info/python-before.md12
-rw-r--r--2025/info/python-nav.md7
-rw-r--r--2025/info/sat-close-after.md10
-rw-r--r--2025/info/sat-close-before.md12
-rw-r--r--2025/info/sat-close-nav.md7
-rw-r--r--2025/info/sat-open-after.md10
-rw-r--r--2025/info/sat-open-before.md12
-rw-r--r--2025/info/sat-open-nav.md7
-rw-r--r--2025/info/sun-close-after.md10
-rw-r--r--2025/info/sun-close-before.md12
-rw-r--r--2025/info/sun-close-nav.md6
-rw-r--r--2025/info/sun-open-after.md10
-rw-r--r--2025/info/sun-open-before.md12
-rw-r--r--2025/info/sun-open-nav.md7
-rw-r--r--2025/organizers-notebook/index.org9
-rw-r--r--2025/organizers-notebook/schedule.svg2
-rw-r--r--2025/schedule-2025-12-06.md1
-rw-r--r--2025/schedule-2025-12-07.md1
-rw-r--r--2025/schedule-details.md13
-rw-r--r--2025/schedule-image.md1
-rw-r--r--2025/talks/bibliography.md83
-rw-r--r--2025/talks/completion.md36
-rw-r--r--2025/talks/juicemacs.md106
-rw-r--r--2025/talks/python.md26
29 files changed, 465 insertions, 3 deletions
diff --git a/2025/draft-schedule.md b/2025/draft-schedule.md
new file mode 100644
index 00000000..ed5db428
--- /dev/null
+++ b/2025/draft-schedule.md
@@ -0,0 +1,18 @@
+[[!sidebar content=""]]
+
+This is a *DRAFT* schedule.
+Jump to: <a href="#date-2025-12-06">Sat Dec 6</a> - <a href="#date-2025-12-07">Sun Dec 7</a><a name="date-2025-12-06"></a>
+# Saturday Dec 6, 2025
+[[!inline pages="internal(2025/schedule-2025-12-06)" raw="yes"]]
+
+<div class="schedule" data-start="2025-12-06T14:00:00+0000" data-end="2025-12-06T22:30:00+0000" data-tracks="General,Development">
+[[!template id=sched time="""10""" q-and-a="""<a href="https://pad.emacsconf.org/2025-sat-open">Etherpad</a>""" startutc="""2025-12-06T14:00:00+0000""" endutc="""2025-12-06T14:10:00+0000""" start="""9:00""" end="""9:10""" title="""Saturday opening remarks""" url="""/2025/talks/sat-open""" track="""General""" watch="""https://emacsconf.org/2025/watch/gen""" slug="""sat-open""" note=""""""]]
+[[!template id=sched time="""10""" q-and-a="""<a href="https://pad.emacsconf.org/2025-sat-close">Etherpad</a>""" startutc="""2025-12-06T21:30:00+0000""" endutc="""2025-12-06T21:40:00+0000""" start="""4:30""" end="""4:40""" title="""Saturday closing remarks""" url="""/2025/talks/sat-close""" track="""General""" watch="""https://emacsconf.org/2025/watch/gen""" slug="""sat-close""" note=""""""]]</div>
+
+Jump to: <a href="#date-2025-12-06">Sat Dec 6</a> - <a href="#date-2025-12-07">Sun Dec 7</a><a name="date-2025-12-07"></a>
+# Sunday Dec 7, 2025
+[[!inline pages="internal(2025/schedule-2025-12-07)" raw="yes"]]
+
+<div class="schedule" data-start="2025-12-07T14:00:00+0000" data-end="2025-12-07T22:30:00+0000" data-tracks="General,Development">
+[[!template id=sched time="""10""" q-and-a="""<a href="https://pad.emacsconf.org/2025-sun-open">Etherpad</a>""" startutc="""2025-12-07T14:00:00+0000""" endutc="""2025-12-07T14:10:00+0000""" start="""9:00""" end="""9:10""" title="""Sunday opening remarks""" url="""/2025/talks/sun-open""" track="""General""" watch="""https://emacsconf.org/2025/watch/gen""" slug="""sun-open""" note=""""""]]
+[[!template id=sched time="""10""" q-and-a="""<a href="https://media.emacsconf.org/2025/current/bbb-sun-close.html">BBB</a>""" startutc="""2025-12-07T18:00:00+0000""" endutc="""2025-12-07T18:10:00+0000""" start="""1:00""" end="""1:10""" title="""Sunday closing remarks""" url="""/2025/talks/sun-close""" track="""General""" watch="""https://emacsconf.org/2025/watch/gen""" slug="""sun-close""" note=""""""]]</div> \ No newline at end of file
diff --git a/2025/info/completion-after.md b/2025/info/completion-after.md
new file mode 100644
index 00000000..886691d9
--- /dev/null
+++ b/2025/info/completion-after.md
@@ -0,0 +1,10 @@
+<!-- Automatically generated by emacsconf-publish-after-page -->
+
+
+Questions or comments? Please e-mail [paaguti@gmail.com](mailto:paaguti@gmail.com?subject=Comment%20for%20EmacsConf%202023%20completion%3A%20corfu%2Byasnippet%3A%20Easier%20than%20I%20thought)
+
+----
+Got an idea for an EmacsConf talk or session? We'd love to hear from you! Check out the [[Call for Participation|/2025/cfp]] for details.
+
+
+<!-- End of emacsconf-publish-after-page -->
diff --git a/2025/info/completion-before.md b/2025/info/completion-before.md
new file mode 100644
index 00000000..934ba044
--- /dev/null
+++ b/2025/info/completion-before.md
@@ -0,0 +1,12 @@
+<!-- Automatically generated by emacsconf-publish-before-page -->
+[[!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
+Status: Waiting for video from speaker
+
+
+
+
+
+
+# Description
+<!-- End of emacsconf-publish-before-page --> \ No newline at end of file
diff --git a/2025/info/completion-nav.md b/2025/info/completion-nav.md
new file mode 100644
index 00000000..f014b769
--- /dev/null
+++ b/2025/info/completion-nav.md
@@ -0,0 +1,6 @@
+
+<div class="talk-nav">
+Back to the [[talks]]
+Next by track: <a href="/2025/talks/python">Interactive Python development in Emacs</a>
+Track: <span class="sched-track General">General</span>
+</div>
diff --git a/2025/info/python-after.md b/2025/info/python-after.md
new file mode 100644
index 00000000..ff1ca050
--- /dev/null
+++ b/2025/info/python-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%20python%3A%20Interactive%20Python%20development%20in%20Emacs)
+
+----
+Got an idea for an EmacsConf talk or session? We'd love to hear from you! Check out the [[Call for Participation|/2025/cfp]] for details.
+
+
+<!-- End of emacsconf-publish-after-page -->
diff --git a/2025/info/python-before.md b/2025/info/python-before.md
new file mode 100644
index 00000000..a7914b81
--- /dev/null
+++ b/2025/info/python-before.md
@@ -0,0 +1,12 @@
+<!-- Automatically generated by emacsconf-publish-before-page -->
+[[!toc ]]
+Format: 20-min talk ; Q&A: BigBlueButton conference room
+Status: Waiting for video from speaker
+
+
+
+
+
+
+# Description
+<!-- End of emacsconf-publish-before-page --> \ No newline at end of file
diff --git a/2025/info/python-nav.md b/2025/info/python-nav.md
new file mode 100644
index 00000000..27d2b922
--- /dev/null
+++ b/2025/info/python-nav.md
@@ -0,0 +1,7 @@
+
+<div class="talk-nav">
+Back to the [[talks]]
+Previous by track: <a href="/2025/talks/completion">corfu+yasnippet: Easier than I thought</a>
+Next by track: <a href="/2025/talks/sat-open">Saturday opening remarks</a>
+Track: <span class="sched-track Development">Development</span>
+</div>
diff --git a/2025/info/sat-close-after.md b/2025/info/sat-close-after.md
new file mode 100644
index 00000000..7418bd5e
--- /dev/null
+++ b/2025/info/sat-close-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%20sat-close%3A%20Saturday%20closing%20remarks)
+
+----
+Got an idea for an EmacsConf talk or session? We'd love to hear from you! Check out the [[Call for Participation|/2025/cfp]] for details.
+
+
+<!-- End of emacsconf-publish-after-page -->
diff --git a/2025/info/sat-close-before.md b/2025/info/sat-close-before.md
new file mode 100644
index 00000000..70f31fd7
--- /dev/null
+++ b/2025/info/sat-close-before.md
@@ -0,0 +1,12 @@
+<!-- Automatically generated by emacsconf-publish-before-page -->
+[[!toc ]]
+Format: 10-min talk ; Q&A: Etherpad
+Status: Ready to stream
+
+
+
+
+
+
+# Description
+<!-- End of emacsconf-publish-before-page --> \ No newline at end of file
diff --git a/2025/info/sat-close-nav.md b/2025/info/sat-close-nav.md
new file mode 100644
index 00000000..af810350
--- /dev/null
+++ b/2025/info/sat-close-nav.md
@@ -0,0 +1,7 @@
+
+<div class="talk-nav">
+Back to the [[talks]]
+Previous by track: <a href="/2025/talks/sat-open">Saturday opening remarks</a>
+Next by track: <a href="/2025/talks/sun-open">Sunday opening remarks</a>
+Track: <span class="sched-track General">General</span>
+</div>
diff --git a/2025/info/sat-open-after.md b/2025/info/sat-open-after.md
new file mode 100644
index 00000000..bb35fb6a
--- /dev/null
+++ b/2025/info/sat-open-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%20sat-open%3A%20Saturday%20opening%20remarks)
+
+----
+Got an idea for an EmacsConf talk or session? We'd love to hear from you! Check out the [[Call for Participation|/2025/cfp]] for details.
+
+
+<!-- End of emacsconf-publish-after-page -->
diff --git a/2025/info/sat-open-before.md b/2025/info/sat-open-before.md
new file mode 100644
index 00000000..64226dc9
--- /dev/null
+++ b/2025/info/sat-open-before.md
@@ -0,0 +1,12 @@
+<!-- Automatically generated by emacsconf-publish-before-page -->
+[[!toc ]]
+Format: 10-min talk ; Q&A: Etherpad
+Status: Waiting for video from speaker
+
+
+
+
+
+
+# Description
+<!-- End of emacsconf-publish-before-page --> \ No newline at end of file
diff --git a/2025/info/sat-open-nav.md b/2025/info/sat-open-nav.md
new file mode 100644
index 00000000..54586e13
--- /dev/null
+++ b/2025/info/sat-open-nav.md
@@ -0,0 +1,7 @@
+
+<div class="talk-nav">
+Back to the [[talks]]
+Previous by track: <a href="/2025/talks/python">Interactive Python development in Emacs</a>
+Next by track: <a href="/2025/talks/sat-close">Saturday closing remarks</a>
+Track: <span class="sched-track General">General</span>
+</div>
diff --git a/2025/info/sun-close-after.md b/2025/info/sun-close-after.md
new file mode 100644
index 00000000..951d7071
--- /dev/null
+++ b/2025/info/sun-close-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%20sun-close%3A%20Sunday%20closing%20remarks)
+
+----
+Got an idea for an EmacsConf talk or session? We'd love to hear from you! Check out the [[Call for Participation|/2025/cfp]] for details.
+
+
+<!-- End of emacsconf-publish-after-page -->
diff --git a/2025/info/sun-close-before.md b/2025/info/sun-close-before.md
new file mode 100644
index 00000000..533c7115
--- /dev/null
+++ b/2025/info/sun-close-before.md
@@ -0,0 +1,12 @@
+<!-- Automatically generated by emacsconf-publish-before-page -->
+[[!toc ]]
+Format: 10-min talk ; Q&A: BigBlueButton conference room
+Status: Ready to stream
+
+
+
+
+
+
+# Description
+<!-- End of emacsconf-publish-before-page --> \ No newline at end of file
diff --git a/2025/info/sun-close-nav.md b/2025/info/sun-close-nav.md
new file mode 100644
index 00000000..fab7858b
--- /dev/null
+++ b/2025/info/sun-close-nav.md
@@ -0,0 +1,6 @@
+
+<div class="talk-nav">
+Back to the [[talks]]
+Previous by track: <a href="/2025/talks/sun-open">Sunday opening remarks</a>
+Track: <span class="sched-track General">General</span>
+</div>
diff --git a/2025/info/sun-open-after.md b/2025/info/sun-open-after.md
new file mode 100644
index 00000000..817a580e
--- /dev/null
+++ b/2025/info/sun-open-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%20sun-open%3A%20Sunday%20opening%20remarks)
+
+----
+Got an idea for an EmacsConf talk or session? We'd love to hear from you! Check out the [[Call for Participation|/2025/cfp]] for details.
+
+
+<!-- End of emacsconf-publish-after-page -->
diff --git a/2025/info/sun-open-before.md b/2025/info/sun-open-before.md
new file mode 100644
index 00000000..64226dc9
--- /dev/null
+++ b/2025/info/sun-open-before.md
@@ -0,0 +1,12 @@
+<!-- Automatically generated by emacsconf-publish-before-page -->
+[[!toc ]]
+Format: 10-min talk ; Q&A: Etherpad
+Status: Waiting for video from speaker
+
+
+
+
+
+
+# Description
+<!-- End of emacsconf-publish-before-page --> \ No newline at end of file
diff --git a/2025/info/sun-open-nav.md b/2025/info/sun-open-nav.md
new file mode 100644
index 00000000..e970e829
--- /dev/null
+++ b/2025/info/sun-open-nav.md
@@ -0,0 +1,7 @@
+
+<div class="talk-nav">
+Back to the [[talks]]
+Previous by track: <a href="/2025/talks/sat-close">Saturday closing remarks</a>
+Next by track: <a href="/2025/talks/sun-close">Sunday closing remarks</a>
+Track: <span class="sched-track General">General</span>
+</div>
diff --git a/2025/organizers-notebook/index.org b/2025/organizers-notebook/index.org
index 64d1a286..3272104e 100644
--- a/2025/organizers-notebook/index.org
+++ b/2025/organizers-notebook/index.org
@@ -172,8 +172,8 @@ CLOSED: [2025-06-25 Wed 09:13]
- [ ] cfp
- [ ] submit
-**** TODO Post CFP in the usual places
-SCHEDULED: <2025-06-27 Fri>
+**** DONE Post CFP in the usual places
+CLOSED: [2025-06-30 Mon 16:32] SCHEDULED: <2025-06-27 Fri>
:PROPERTIES:
:CUSTOM_ID: phases-draft-cfp-post-cfp-in-the-usual-places
:END:
@@ -218,9 +218,13 @@ SCHEDULED: <2025-06-27 Fri>
(setq emacsconf-schedule-plan
'(("GEN Saturday, Dec 6" :start "2025-12-06 09:00" :set-track "General")
sat-open
+ bibliography
+ completion
(lunch :start "12:00")
(sat-close :start "16:30")
("DEV Saturday, Dec 6" :start "2025-12-06 10:00" :set-track "Development")
+ python
+ juicemacs
(lunch :start "12:00")
("GEN Sunday, Dec 7" :start "2025-12-07 09:00" :set-track "General")
sun-open
@@ -243,6 +247,7 @@ SCHEDULED: <2025-06-27 Fri>
#+RESULTS: schedule
:results:
sunday closing remarks: Starts at 13:00 before 16:30
+completion: Starts at 09:50 before 11:00
:end:
[[file:schedule.svg]]
diff --git a/2025/organizers-notebook/schedule.svg b/2025/organizers-notebook/schedule.svg
index a9842477..9ae123df 100644
--- a/2025/organizers-notebook/schedule.svg
+++ b/2025/organizers-notebook/schedule.svg
@@ -1 +1 @@
-<svg width="800" height="300" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><title>Graphical view of the schedule</title><g transform="translate(0,0)"><title>Schedule for Saturday</title><rect width="800" height="150" x="0" y="0" fill="white"></rect><text font-size="10" fill="black" y="12" x="3">Saturday</text><a href="https://emacsconf.org/2025/talks/sat-open" title="Saturday opening remarks" data-slug="sat-open"><title> 9:00- 9:10 Saturday opening remarks</title><rect x="0" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="5,5,5" fill="gray"></rect><g transform="translate(13,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sat-open</text></g></a><a href="https://emacsconf.org/2025/talks/sat-close" title="Saturday closing remarks" data-slug="sat-close"><title> 4:30- 4:40 Saturday closing remarks</title><rect x="705" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="5,5,5" fill="gray"></rect><g transform="translate(718,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sat-close</text></g></a><g transform="translate(0,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">9 AM</text></g><g transform="translate(94,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">10 AM</text></g><g transform="translate(188,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">11 AM</text></g><g transform="translate(282,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">12 PM</text></g><g transform="translate(376,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">1 PM</text></g><g transform="translate(470,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">2 PM</text></g><g transform="translate(564,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">3 PM</text></g><g transform="translate(658,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">4 PM</text></g><g transform="translate(752,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">5 PM</text></g></g><g transform="translate(0,150)"><title>Schedule for Sunday</title><rect width="800" height="150" x="0" y="0" fill="white"></rect><text font-size="10" fill="black" y="12" x="3">Sunday</text><a href="https://emacsconf.org/2025/talks/sun-open" title="Sunday opening remarks" data-slug="sun-open"><title> 9:00- 9:10 Sunday opening remarks</title><rect x="0" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="5,5,5" fill="gray"></rect><g transform="translate(13,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sun-open</text></g></a><a href="https://emacsconf.org/2025/talks/sun-close" title="Sunday closing remarks" data-slug="sun-close"><title> 1:00- 1:10 Sunday closing remarks</title><rect x="376" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="" fill="gray"></rect><g transform="translate(389,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sun-close</text></g></a><g transform="translate(0,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">9 AM</text></g><g transform="translate(94,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">10 AM</text></g><g transform="translate(188,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">11 AM</text></g><g transform="translate(282,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">12 PM</text></g><g transform="translate(376,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">1 PM</text></g><g transform="translate(470,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">2 PM</text></g><g transform="translate(564,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">3 PM</text></g><g transform="translate(658,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">4 PM</text></g><g transform="translate(752,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">5 PM</text></g></g></svg> \ No newline at end of file
+<svg width="800" height="300" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><title>Graphical view of the schedule</title><g transform="translate(0,0)"><title>Schedule for Saturday</title><rect width="800" height="150" x="0" y="0" fill="white"></rect><text font-size="10" fill="black" y="12" x="3">Saturday</text><a href="https://emacsconf.org/2025/talks/sat-open" title="Saturday opening remarks" data-slug="sat-open"><title> 9:00- 9:10 Saturday opening remarks</title><rect x="0" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="5,5,5" fill="gray"></rect><g transform="translate(13,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sat-open</text></g></a><a href="https://emacsconf.org/2025/talks/bibliography" title="An enhanced bibliography in org-mode for scientific research and self-directed learning" data-slug="bibliography"><title> 9:10- 9:30 An enhanced bibliography in org-mode for scientific research and self-directed learning</title><rect x="15" y="15" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="gray"></rect><g transform="translate(44,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">bibliography</text></g></a><a href="https://emacsconf.org/2025/talks/completion" title="corfu+yasnippet: Easier than I thought" data-slug="completion"><title> 9:50-10:10 corfu+yasnippet: Easier than I thought</title><rect x="78" y="15" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(107,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">completion</text></g></a><a href="https://emacsconf.org/2025/talks/sat-close" title="Saturday closing remarks" data-slug="sat-close"><title> 4:30- 4:40 Saturday closing remarks</title><rect x="705" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="5,5,5" fill="gray"></rect><g transform="translate(718,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sat-close</text></g></a><a href="https://emacsconf.org/2025/talks/python" title="Interactive Python development in Emacs" data-slug="python"><title>10:00-10:20 Interactive Python development in Emacs</title><rect x="94" y="75" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="lightblue"></rect><g transform="translate(123,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">python</text></g></a><a href="https://emacsconf.org/2025/talks/juicemacs" title="Juicemacs: Exploring Speculative JIT Compilation for ELisp in Java" data-slug="juicemacs"><title>10:40-11:00 Juicemacs: Exploring Speculative JIT Compilation for ELisp in Java</title><rect x="156" y="75" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="5,5,5" fill="lightblue"></rect><g transform="translate(185,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">juicemacs</text></g></a><g transform="translate(0,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">9 AM</text></g><g transform="translate(94,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">10 AM</text></g><g transform="translate(188,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">11 AM</text></g><g transform="translate(282,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">12 PM</text></g><g transform="translate(376,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">1 PM</text></g><g transform="translate(470,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">2 PM</text></g><g transform="translate(564,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">3 PM</text></g><g transform="translate(658,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">4 PM</text></g><g transform="translate(752,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">5 PM</text></g></g><g transform="translate(0,150)"><title>Schedule for Sunday</title><rect width="800" height="150" x="0" y="0" fill="white"></rect><text font-size="10" fill="black" y="12" x="3">Sunday</text><a href="https://emacsconf.org/2025/talks/sun-open" title="Sunday opening remarks" data-slug="sun-open"><title> 9:00- 9:10 Sunday opening remarks</title><rect x="0" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="5,5,5" fill="gray"></rect><g transform="translate(13,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sun-open</text></g></a><a href="https://emacsconf.org/2025/talks/sun-close" title="Sunday closing remarks" data-slug="sun-close"><title> 1:00- 1:10 Sunday closing remarks</title><rect x="376" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="" fill="gray"></rect><g transform="translate(389,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sun-close</text></g></a><g transform="translate(0,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">9 AM</text></g><g transform="translate(94,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">10 AM</text></g><g transform="translate(188,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">11 AM</text></g><g transform="translate(282,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">12 PM</text></g><g transform="translate(376,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">1 PM</text></g><g transform="translate(470,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">2 PM</text></g><g transform="translate(564,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">3 PM</text></g><g transform="translate(658,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">4 PM</text></g><g transform="translate(752,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">5 PM</text></g></g></svg> \ No newline at end of file
diff --git a/2025/schedule-2025-12-06.md b/2025/schedule-2025-12-06.md
new file mode 100644
index 00000000..d0950f75
--- /dev/null
+++ b/2025/schedule-2025-12-06.md
@@ -0,0 +1 @@
+<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 font-size="10" fill="black" y="12" x="3">Saturday</text><a href="/2025/talks/sat-open" title="Saturday opening remarks" data-slug="sat-open"><title> 9:00- 9:10 Saturday opening remarks</title><rect x="0" y="15" opacity="0.8" width="15" height="34" 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="/2025/talks/sat-close" title="Saturday closing remarks" data-slug="sat-close"><title> 5:00- 5:10 Saturday closing remarks</title><rect x="752" y="15" opacity="0.8" width="15" height="34" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(765,48)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sat-close</text></g></a><g transform="translate(0,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="70"></line><text fill="black" x="0" y="83" font-size="10" text-anchor="left">9 AM</text></g><g transform="translate(94,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="70"></line><text fill="black" x="0" y="83" font-size="10" text-anchor="left">10 AM</text></g><g transform="translate(188,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="70"></line><text fill="black" x="0" y="83" font-size="10" text-anchor="left">11 AM</text></g><g transform="translate(282,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="70"></line><text fill="black" x="0" y="83" font-size="10" text-anchor="left">12 PM</text></g><g transform="translate(376,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="70"></line><text fill="black" x="0" y="83" font-size="10" text-anchor="left">1 PM</text></g><g transform="translate(470,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="70"></line><text fill="black" x="0" y="83" font-size="10" text-anchor="left">2 PM</text></g><g transform="translate(564,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="70"></line><text fill="black" x="0" y="83" font-size="10" text-anchor="left">3 PM</text></g><g transform="translate(658,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="70"></line><text fill="black" x="0" y="83" font-size="10" text-anchor="left">4 PM</text></g><g transform="translate(752,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="70"></line><text fill="black" x="0" y="83" font-size="10" text-anchor="left">5 PM</text></g></svg></div> \ No newline at end of file
diff --git a/2025/schedule-2025-12-07.md b/2025/schedule-2025-12-07.md
new file mode 100644
index 00000000..e53595d8
--- /dev/null
+++ b/2025/schedule-2025-12-07.md
@@ -0,0 +1 @@
+<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 font-size="10" fill="black" y="12" x="3">Sunday</text><a href="/2025/talks/sun-close" title="Sunday closing remarks" data-slug="sun-close"><title> 4:50- 5:00 Sunday closing remarks</title><rect x="737" y="15" opacity="0.8" width="15" height="34" 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)">sun-close</text></g></a><g transform="translate(0,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="70"></line><text fill="black" x="0" y="83" font-size="10" text-anchor="left">9 AM</text></g><g transform="translate(94,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="70"></line><text fill="black" x="0" y="83" font-size="10" text-anchor="left">10 AM</text></g><g transform="translate(188,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="70"></line><text fill="black" x="0" y="83" font-size="10" text-anchor="left">11 AM</text></g><g transform="translate(282,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="70"></line><text fill="black" x="0" y="83" font-size="10" text-anchor="left">12 PM</text></g><g transform="translate(376,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="70"></line><text fill="black" x="0" y="83" font-size="10" text-anchor="left">1 PM</text></g><g transform="translate(470,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="70"></line><text fill="black" x="0" y="83" font-size="10" text-anchor="left">2 PM</text></g><g transform="translate(564,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="70"></line><text fill="black" x="0" y="83" font-size="10" text-anchor="left">3 PM</text></g><g transform="translate(658,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="70"></line><text fill="black" x="0" y="83" font-size="10" text-anchor="left">4 PM</text></g><g transform="translate(752,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="70"></line><text fill="black" x="0" y="83" font-size="10" text-anchor="left">5 PM</text></g></svg></div> \ No newline at end of file
diff --git a/2025/schedule-details.md b/2025/schedule-details.md
new file mode 100644
index 00000000..e6dbdbbd
--- /dev/null
+++ b/2025/schedule-details.md
@@ -0,0 +1,13 @@
+Jump to: <a href="#dev">Development</a>
+
+<h1 id="gen" class="sched-track General">General (5 talks)</h1>
+[[!template id=sched title="""corfu+yasnippet: Easier than I thought""" url="""/2025/talks/completion""" speakers="""Pedro A. Aranda Gutiérrez""" watch="""https://emacsconf.org/2025/watch/gen""" slug="""completion""" note=""""""]]
+[[!template id=sched title="""Saturday opening remarks""" url="""/2025/talks/sat-open""" watch="""https://emacsconf.org/2025/watch/gen""" slug="""sat-open""" note=""""""]]
+[[!template id=sched title="""Saturday closing remarks""" url="""/2025/talks/sat-close""" watch="""https://emacsconf.org/2025/watch/gen""" slug="""sat-close""" note=""""""]]
+[[!template id=sched title="""Sunday opening remarks""" url="""/2025/talks/sun-open""" watch="""https://emacsconf.org/2025/watch/gen""" slug="""sun-open""" note=""""""]]
+[[!template id=sched title="""Sunday closing remarks""" url="""/2025/talks/sun-close""" watch="""https://emacsconf.org/2025/watch/gen""" slug="""sun-close""" note=""""""]]
+
+Jump to: <a href="#gen">General</a>
+
+<h1 id="dev" class="sched-track Development">Development (1 talk)</h1>
+[[!template id=sched title="""Interactive Python development in Emacs""" url="""/2025/talks/python""" speakers="""David Vujic""" watch="""https://emacsconf.org/2025/watch/dev""" slug="""python""" note=""""""]] \ No newline at end of file
diff --git a/2025/schedule-image.md b/2025/schedule-image.md
new file mode 100644
index 00000000..65d25be7
--- /dev/null
+++ b/2025/schedule-image.md
@@ -0,0 +1 @@
+<div class="schedule-svg-container"><svg width="800" height="300" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><title>Graphical view of the schedule</title><g transform="translate(0,0)"><title>Schedule for Saturday</title><rect width="800" height="100" x="0" y="0" fill="white"></rect><text font-size="10" fill="black" y="12" x="3">Saturday</text><a href="/2025/talks/sat-open" title="Saturday opening remarks" data-slug="sat-open"><title> 9:00- 9:10 Saturday opening remarks</title><rect x="0" y="15" opacity="0.8" width="15" height="34" 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="/2025/talks/sat-close" title="Saturday closing remarks" data-slug="sat-close"><title> 5:00- 5:10 Saturday closing remarks</title><rect x="752" y="15" opacity="0.8" width="15" height="34" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(765,48)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sat-close</text></g></a><g transform="translate(0,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="70"></line><text fill="black" x="0" y="83" font-size="10" text-anchor="left">9 AM</text></g><g transform="translate(94,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="70"></line><text fill="black" x="0" y="83" font-size="10" text-anchor="left">10 AM</text></g><g transform="translate(188,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="70"></line><text fill="black" x="0" y="83" font-size="10" text-anchor="left">11 AM</text></g><g transform="translate(282,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="70"></line><text fill="black" x="0" y="83" font-size="10" text-anchor="left">12 PM</text></g><g transform="translate(376,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="70"></line><text fill="black" x="0" y="83" font-size="10" text-anchor="left">1 PM</text></g><g transform="translate(470,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="70"></line><text fill="black" x="0" y="83" font-size="10" text-anchor="left">2 PM</text></g><g transform="translate(564,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="70"></line><text fill="black" x="0" y="83" font-size="10" text-anchor="left">3 PM</text></g><g transform="translate(658,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="70"></line><text fill="black" x="0" y="83" font-size="10" text-anchor="left">4 PM</text></g><g transform="translate(752,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="70"></line><text fill="black" x="0" y="83" font-size="10" text-anchor="left">5 PM</text></g></g><g transform="translate(0,100)"><title>Schedule for Sunday</title><rect width="800" height="100" x="0" y="0" fill="white"></rect><text font-size="10" fill="black" y="12" x="3">Sunday</text><a href="/2025/talks/sun-close" title="Sunday closing remarks" data-slug="sun-close"><title> 4:50- 5:00 Sunday closing remarks</title><rect x="737" y="15" opacity="0.8" width="15" height="34" 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)">sun-close</text></g></a><g transform="translate(0,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="70"></line><text fill="black" x="0" y="83" font-size="10" text-anchor="left">9 AM</text></g><g transform="translate(94,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="70"></line><text fill="black" x="0" y="83" font-size="10" text-anchor="left">10 AM</text></g><g transform="translate(188,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="70"></line><text fill="black" x="0" y="83" font-size="10" text-anchor="left">11 AM</text></g><g transform="translate(282,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="70"></line><text fill="black" x="0" y="83" font-size="10" text-anchor="left">12 PM</text></g><g transform="translate(376,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="70"></line><text fill="black" x="0" y="83" font-size="10" text-anchor="left">1 PM</text></g><g transform="translate(470,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="70"></line><text fill="black" x="0" y="83" font-size="10" text-anchor="left">2 PM</text></g><g transform="translate(564,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="70"></line><text fill="black" x="0" y="83" font-size="10" text-anchor="left">3 PM</text></g><g transform="translate(658,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="70"></line><text fill="black" x="0" y="83" font-size="10" text-anchor="left">4 PM</text></g><g transform="translate(752,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="70"></line><text fill="black" x="0" y="83" font-size="10" text-anchor="left">5 PM</text></g></g><g transform="translate(0,200)"><title>Schedule for Tuesday</title><rect width="800" height="100" x="0" y="0" fill="white"></rect><text font-size="10" fill="black" y="12" x="3">Tuesday</text><a href="/2025/talks/sun-open" title="Sunday opening remarks" data-slug="sun-open"><title>10:08-10:08 Sunday opening remarks</title><rect x="12" y="15" opacity="0.8" width="0" height="34" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(10,48)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sun-open</text></g></a><a href="/2025/talks/completion" title="corfu+yasnippet: Easier than I thought" data-slug="completion"><title>10:08-10:08 corfu+yasnippet: Easier than I thought</title><rect x="12" y="15" opacity="0.8" width="0" height="34" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(10,48)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">completion</text></g></a><a href="/2025/talks/python" title="Interactive Python development in Emacs" data-slug="python"><title>10:08-10:08 Interactive Python development in Emacs</title><rect x="12" y="50" opacity="0.8" width="0" height="34" stroke="black" stroke-dasharray="" fill="skyblue"></rect><g transform="translate(10,83)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">python</text></g></a><g transform="translate(0,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="70"></line><text fill="black" x="0" y="83" font-size="10" text-anchor="left">10 AM</text></g><g transform="translate(94,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="70"></line><text fill="black" x="0" y="83" font-size="10" text-anchor="left">11 AM</text></g><g transform="translate(188,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="70"></line><text fill="black" x="0" y="83" font-size="10" text-anchor="left">12 PM</text></g><g transform="translate(282,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="70"></line><text fill="black" x="0" y="83" font-size="10" text-anchor="left">1 PM</text></g><g transform="translate(376,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="70"></line><text fill="black" x="0" y="83" font-size="10" text-anchor="left">2 PM</text></g><g transform="translate(470,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="70"></line><text fill="black" x="0" y="83" font-size="10" text-anchor="left">3 PM</text></g><g transform="translate(564,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="70"></line><text fill="black" x="0" y="83" font-size="10" text-anchor="left">4 PM</text></g><g transform="translate(658,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="70"></line><text fill="black" x="0" y="83" font-size="10" text-anchor="left">5 PM</text></g><g transform="translate(752,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="70"></line><text fill="black" x="0" y="83" font-size="10" text-anchor="left">6 PM</text></g></g></svg></div> \ No newline at end of file
diff --git a/2025/talks/bibliography.md b/2025/talks/bibliography.md
new file mode 100644
index 00000000..18bdfd0c
--- /dev/null
+++ b/2025/talks/bibliography.md
@@ -0,0 +1,83 @@
+[[!meta title="An enhanced bibliography in org-mode for scientific research and self-directed learning"]]
+[[!meta copyright="Copyright &copy; 2025 Blaine Mooers"]]
+[[!inline pages="internal(2025/info/bibliography-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. --->
+
+
+# An enhanced bibliography in org-mode for scientific research and self-directed learning
+Blaine Mooers (he, him) - blaine-mooers@ouhsc.edu, <mailto:blaine-mooers@ouhsc.edu>
+
+[[!inline pages="internal(2025/info/bibliography-before)" raw="yes"]]
+
+This 20-minute talk introduces a modernized approach to creating annotated bibliographies using Org-mode.
+This new approach overcomes the limitations of traditional BibTeX-based methods.
+Unlike classical annotated bibliographies, this system supports rich content including text-wrapped figures, tables, code listings, equations, and appendices.
+These features transform static reference collections into visual knowledge repositories.
+
+The presentation will demonstrate how this system leverages Org-mode's unique capabilities, particularly literate programming, to enable real-time data transformation and visualization from cited papers.
+I introduce a modular architecture to overcome BibTeX's whitespace limitations in the annotation field, which stores notes for assembling annotated bibliographies in the classical approach.
+
+Key features of the new approach include:
+
+- A modular design that supports the reuse of annotation files between bibliographies and with literature notes in org-roam and denote
+- Support for including figures, tables, equations, code listings, and literature programming blocks
+- Citation key injection into subsection headings
+- Automated PDF downloading, relabeling, and storing
+- Property drawers for keywords, links to annotation note files to ease making further edits, and links to PDF documents
+- Specialized sorting function for bibliography organization (by author, year, or keywords)
+- Inclusion of a table of contents with hyperlinks
+- Specialized glossaries for acronyms, software packages, equations, and mathematical notation
+
+I will address how this approach complements, rather than replaces, modern personal knowledge management systems like org-roam and denote.
+This approach strengthens project-focused knowledge organization.
+I will discuss the practical benefits, including improved visual memory reinforcement through embedded figures and reduced context switching during in-depth academic work.
+
+I will share the implementation details of the Emacs Lisp functions that power this system (available as a package).
+The presentation will include demonstrations of how these functions streamline everyday tasks such as adding new entries, navigating between bibliography and source material, and preparing project-specific BibTeX files.
+These functions reduce the friction in the academic reading and writing workflow.
+
+For those interested in adopting this approach, I will discuss adaptations for various workflows and address practical considerations, such as copyright implications when sharing illustrated bibliographies.
+The talk will conclude with thoughts on how this system supports different reading styles (reference, survey, and deep reading) as identified by Stephen Heard in his 2022 book "A Scientist's Guide to Writing".
+This approach is particularly valuable for researchers, graduate students, and knowledge workers who need to maintain project-specific literature collections.
+The approach recognizes the reality that most scientists do not need access to their entire knowledge corpus when working on a specific paper.
+Instead, they need a visually reinforced understanding of a targeted subset of the literature.
+
+The format is a 20-minute talk presented as a narrated slideshow. The outline follows:
+
+- The role of the annotated bibliography in my three-pronged approach to scientific writing project management, which I introduced last year in my talk about writing logs.
+- My innovative use of a modular approach, along with numerous enhancements, promotes deep work.
+- Why make an annotated bibliography in the Age of Zettelkastens and Generative AI?
+- Why not assemble a notebook instead?
+- The classic annotated bibliography and its deficits (i.e., why I developed the enhanced bibliography).
+- The advantages of Org-mode for making this annotated bibliography.
+- Defining the scope of the enhanced bibliography: research program level versus writing project-specific.
+- Tour of the master org file that controls the assembly of the final PDF.
+- Project file tree and version control with helper functions.
+- The annotation file and accommodation of three levels of detail for reference, survey, and deep reading.
+- Demonstrations of creating an entry by wrapping a citar, org-ref, and org-cite citekeys.
+- Show how to use literature programming to carry out further analyses using data from a specific paper.
+- Show integration with Zettelkasten by including annotation org files in literature notes.
+- Feeding annotation files into generative AI for help with querying, brainstorming, planning, and synthesis.
+- How does working on an annotated bibliography fit into my weekly writing schedule?
+- Tour of the GitHub repository for this project.
+- Copyright of figures and limits on sharing the enhanced bibliography in public.
+- Summary
+- Acknowledgements
+
+About the speaker:
+
+Blaine Mooers is an associate professor of biochemistry at the University of Oklahoma Health Sciences, where he specializes in macromolecular crystallography. His research focuses on RNA structures and protein-drug complexes important in cancer.
+As an avid Emacs user for five years and LaTeX and Python user for 15 years, Dr. Mooers has developed tools to optimize scientific writing workflows.
+In this talk, he shares his system for managing academic literature using Org-mode, which he developed as a solution to his frustration with traditional annotated bibliographies.
+This new approach enhances scientific creativity and productivity by combining visual memory reinforcement with project-focused knowledge organization.
+This approach addresses the challenging reality of scientific research, where focus is often more valuable than breadth.
+
+
+
+[[!inline pages="internal(2025/info/bibliography-after)" raw="yes"]]
+
+[[!inline pages="internal(2025/info/bibliography-nav)" raw="yes"]]
+
+
diff --git a/2025/talks/completion.md b/2025/talks/completion.md
new file mode 100644
index 00000000..a074b568
--- /dev/null
+++ b/2025/talks/completion.md
@@ -0,0 +1,36 @@
+[[!meta title="corfu+yasnippet: Easier than I thought"]]
+[[!meta copyright="Copyright &copy; 2025 Pedro A. Aranda Gutiérrez"]]
+[[!inline pages="internal(2025/info/completion-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. --->
+
+
+# corfu+yasnippet: Easier than I thought
+Pedro A. Aranda Gutiérrez (he, him) - <mailto:paaguti@gmail.com>
+
+[[!inline pages="internal(2025/info/completion-before)" raw="yes"]]
+
+I describe my experience in "getting rid" of company-mode and
+transitioning to corfu. I now have yasnippets integrated with
+a couple lines Emacs Lisp. The main advantage is that with I
+need less packages and configuration, specially on master.
+The talk will include some code snippets that show it was
+easier than expectedand a life demo.
+
+20 minutes (with demo)
+
+About the speaker:
+
+After 30 years using Emacs, professionally and for my PhD, I'm currenly
+quite involved in org-mode, where I'm revamping the LaTeX backend.
+To do this, I needed a new approach to auto-completion because
+company-mode started requiring too much code and integration.
+
+
+
+[[!inline pages="internal(2025/info/completion-after)" raw="yes"]]
+
+[[!inline pages="internal(2025/info/completion-nav)" raw="yes"]]
+
+
diff --git a/2025/talks/juicemacs.md b/2025/talks/juicemacs.md
new file mode 100644
index 00000000..ba29b3f6
--- /dev/null
+++ b/2025/talks/juicemacs.md
@@ -0,0 +1,106 @@
+[[!meta title="Juicemacs: Exploring Speculative JIT Compilation for ELisp in Java"]]
+[[!meta copyright="Copyright &copy; 2025 Kana"]]
+[[!inline pages="internal(2025/info/juicemacs-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. --->
+
+
+# Juicemacs: Exploring Speculative JIT Compilation for ELisp in Java
+Kana (they/them) - IRC: kanakana, Blog: https://kyo.iroiro.party - ActivityPub: @kana@f.iroiro.party - Bluesky: @kana.iroiro.party, <mailto:kana@iroiro.party>
+
+[[!inline pages="internal(2025/info/juicemacs-before)" raw="yes"]]
+
+Just-in-time (JIT) compilation helps dynamic languages run fast, and
+speculative compilation makes them run faster, as has been showcased
+by JVMs, LuaJIT, JavaScript engines, and many more JIT runtimes.
+However, Emacs native-compilation, despite its JIT compilation
+(`native-comp-jit-compilation`), does not speculate about runtime
+execution, making it effectively a JIT-ish AOT (ahead-of-time)
+compiler. By introducing a speculative runtime for ELisp, we could
+potentially improve ELisp performance even further, with many new
+optimization opportunities.
+
+Juicemacs <sup><a id="fnr.juicemacs" class="footref" href="#fn.juicemacs" role="doc-backlink">1</a></sup> is my work-in-progress toy project
+re-implementing Emacs in Java. At its centre sits an ELisp JIT
+runtime powered by Graal Truffle, a JIT interpreter framework based
+on partial evaluation and Futamura projections. This talk will cover
+the following along with some demonstrations:
+
+- What is Juicemacs and its ambition? How compatible is it (or does
+ it plan to be) with GNU Emacs and how feature-complete is it now?
+
+- What is speculative compilation? How is it useful for an ELisp JIT
+ runtime?
+
+- What is Truffle and partial evaluation? What is needed if we are to
+ implement a speculative runtime in C without Truffle?
+
+- How many interpreters are there in Emacs? How does Juicemacs
+ implement them?
+
+- What JIT techniques does Juicemacs plan to explore? How can you
+ get involved?
+
+
+# Footnotes
+
+<sup><a id="fn.1" href="#fnr.1">1</a></sup> <https://codeberg.org/gudzpoz/Juicemacs>
+
+Outline:
+
+- Intro: Juicemacs
+ - Self-introduction
+ - Emacs `native-compile` versus modern JIT compilers
+ - Juicemacs: Yet another Emacs rewrite
+ - Demonstration: REPL, pbootstrap, pdump, elprop, ERT
+- Speculative compilation
+ - What we talk about when we talk about JIT compilers
+ - Tired: JIT versus AOT
+ - Wired: With or without runtime information
+ - Speculative compilation
+ - Example: arithmetics
+ - Example: boxing elimination
+ - Graal+Truffle: a meta-compiler by partial evaluation
+- ELisp JIT interpreters
+ - AST interpreter
+ - Macros
+ - Bytecode interpreter
+ - Regexp: slowish
+ - CCL: to be done
+ - Benchmarks
+ - Fun to be had (i.e., TODO & possible explorations)
+ - Transparent array-backed cons list
+ - Regexps
+ - Leaning on `native-compile` for LIMPLE IR
+ - Others
+ - GraalVM native image
+ - GUI
+ - Emacs dynamic module support
+ - How this could be implemented in C
+ - `transferToInterpreter`
+ - Bytecode approach
+ - Problems with the AST approach
+
+- Closing Words
+ - Future of Juicemacs
+ - Future of GNU Emacs Lisp JIT
+ - Ways to contribute
+
+About the speaker:
+
+Hello! This is Kana, an Emacs hobbyist and Java lover from China. A
+few years ago I discovered the Truffle JIT compilation framework and
+have since hoped to implement a JIT runtime myself. Last year I
+finally started implementing one for ELisp, called Juicemacs, and
+have made some progress. In this talk I will share what I've learned
+during the journey, including how three interpreters out of four (or
+more?) in Emacs are implemented in Juicemacs and how speculative
+compilation can make some optimizations possible.
+
+
+[[!inline pages="internal(2025/info/juicemacs-after)" raw="yes"]]
+
+[[!inline pages="internal(2025/info/juicemacs-nav)" raw="yes"]]
+
+
diff --git a/2025/talks/python.md b/2025/talks/python.md
new file mode 100644
index 00000000..7bed8de2
--- /dev/null
+++ b/2025/talks/python.md
@@ -0,0 +1,26 @@
+[[!meta title="Interactive Python development in Emacs"]]
+[[!meta copyright="Copyright &copy; 2025 David Vujic"]]
+[[!inline pages="internal(2025/info/python-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. --->
+
+
+# Interactive Python development in Emacs
+David Vujic (he/him) - Mastodon https://mastodon.nu/@davidvujic
+
+[[!inline pages="internal(2025/info/python-before)" raw="yes"]]
+
+Learning Lisp was an eye opener for me. The Interactive way of writing code is Amazing. Emacs has great support for this in general already. For Python, there's limitations and I have looked for ways to make Python development more interactive (and fun). Python is what I do at work and in Open Source projects. It has lead me to develop Emacs features specific for Python: evaluating code with visual feedback, modify a running Python app without restarts, and some LLM support. I will demo and talk about what I have developed to make Python development interactive and joyful.
+
+About the speaker:
+
+My name is David and I'm a software developer. Colleagues and friends may know me as an early adopter of agile ideas and test driven development. I am passionate about things like that, and share the things I learn to the community and the people I work with. My favorite programming languages are Python and Clojure. On my spare time I practice outdoor Parkour & contribute to Open Source.
+
+
+
+[[!inline pages="internal(2025/info/python-after)" raw="yes"]]
+
+[[!inline pages="internal(2025/info/python-nav)" raw="yes"]]
+
+