summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--2024.md10
-rw-r--r--2024/cfp.md7
-rw-r--r--2024/cfp.org7
-rw-r--r--2024/draft-schedule.md46
-rw-r--r--2024/info/blee-after.md10
-rw-r--r--2024/info/blee-before.md12
-rw-r--r--2024/info/blee-nav.md7
-rw-r--r--2024/info/casual-after.md10
-rw-r--r--2024/info/casual-before.md12
-rw-r--r--2024/info/casual-nav.md7
-rw-r--r--2024/info/color-after.md10
-rw-r--r--2024/info/color-before.md12
-rw-r--r--2024/info/color-nav.md7
-rw-r--r--2024/info/flp-after.md10
-rw-r--r--2024/info/flp-before.md12
-rw-r--r--2024/info/flp-nav.md7
-rw-r--r--2024/info/graph-after.md10
-rw-r--r--2024/info/graph-before.md12
-rw-r--r--2024/info/graph-nav.md7
-rw-r--r--2024/info/guile-after.md10
-rw-r--r--2024/info/guile-before.md12
-rw-r--r--2024/info/guile-nav.md7
-rw-r--r--2024/info/gypsum-after.md10
-rw-r--r--2024/info/gypsum-before.md12
-rw-r--r--2024/info/gypsum-nav.md7
-rw-r--r--2024/info/hyperbole-after.md10
-rw-r--r--2024/info/hyperbole-before.md12
-rw-r--r--2024/info/hyperbole-nav.md7
-rw-r--r--2024/info/hyperdrive-after.md10
-rw-r--r--2024/info/hyperdrive-before.md12
-rw-r--r--2024/info/hyperdrive-nav.md7
-rw-r--r--2024/info/hywiki-after.md10
-rw-r--r--2024/info/hywiki-before.md12
-rw-r--r--2024/info/hywiki-nav.md7
-rw-r--r--2024/info/julia-after.md10
-rw-r--r--2024/info/julia-before.md12
-rw-r--r--2024/info/julia-nav.md7
-rw-r--r--2024/info/language-after.md10
-rw-r--r--2024/info/language-before.md12
-rw-r--r--2024/info/language-nav.md7
-rw-r--r--2024/info/learning-after.md10
-rw-r--r--2024/info/learning-before.md12
-rw-r--r--2024/info/learning-nav.md7
-rw-r--r--2024/info/links-after.md10
-rw-r--r--2024/info/links-before.md12
-rw-r--r--2024/info/links-nav.md7
-rw-r--r--2024/info/literate-after.md10
-rw-r--r--2024/info/literate-before.md12
-rw-r--r--2024/info/literate-nav.md7
-rw-r--r--2024/info/mcclim-after.md10
-rw-r--r--2024/info/mcclim-before.md12
-rw-r--r--2024/info/mcclim-nav.md7
-rw-r--r--2024/info/org-teach-after.md10
-rw-r--r--2024/info/org-teach-before.md12
-rw-r--r--2024/info/org-teach-nav.md7
-rw-r--r--2024/info/p-search-after.md10
-rw-r--r--2024/info/p-search-before.md12
-rw-r--r--2024/info/p-search-nav.md7
-rw-r--r--2024/info/papers-after.md10
-rw-r--r--2024/info/papers-before.md12
-rw-r--r--2024/info/papers-nav.md6
-rw-r--r--2024/info/pgmacs-after.md10
-rw-r--r--2024/info/pgmacs-before.md12
-rw-r--r--2024/info/pgmacs-nav.md7
-rw-r--r--2024/info/project-after.md10
-rw-r--r--2024/info/project-before.md12
-rw-r--r--2024/info/project-nav.md7
-rw-r--r--2024/info/regex-after.md10
-rw-r--r--2024/info/regex-before.md12
-rw-r--r--2024/info/regex-nav.md7
-rw-r--r--2024/info/repro-after.md10
-rw-r--r--2024/info/repro-before.md12
-rw-r--r--2024/info/repro-nav.md7
-rw-r--r--2024/info/rust-after.md10
-rw-r--r--2024/info/rust-before.md12
-rw-r--r--2024/info/rust-nav.md7
-rw-r--r--2024/info/secrets-after.md10
-rw-r--r--2024/info/secrets-before.md12
-rw-r--r--2024/info/secrets-nav.md7
-rw-r--r--2024/info/sharing-after.md10
-rw-r--r--2024/info/sharing-before.md12
-rw-r--r--2024/info/sharing-nav.md7
-rw-r--r--2024/info/shell-after.md10
-rw-r--r--2024/info/shell-before.md12
-rw-r--r--2024/info/shell-nav.md7
-rw-r--r--2024/info/students-after.md10
-rw-r--r--2024/info/students-before.md12
-rw-r--r--2024/info/students-nav.md7
-rw-r--r--2024/info/theme-after.md10
-rw-r--r--2024/info/theme-before.md12
-rw-r--r--2024/info/theme-nav.md7
-rw-r--r--2024/info/transducers-after.md10
-rw-r--r--2024/info/transducers-before.md12
-rw-r--r--2024/info/transducers-nav.md6
-rw-r--r--2024/info/water-after.md10
-rw-r--r--2024/info/water-before.md12
-rw-r--r--2024/info/water-nav.md7
-rw-r--r--2024/info/writing-after.md10
-rw-r--r--2024/info/writing-before.md12
-rw-r--r--2024/info/writing-nav.md7
-rw-r--r--2024/organizers-notebook.md79
-rw-r--r--2024/organizers-notebook/index.org251
-rw-r--r--2024/organizers-notebook/schedule-1.5-tracks.svg1
-rw-r--r--2024/organizers-notebook/schedule-2-tracks.svg1
-rw-r--r--2024/organizers-notebook/schedule.svg1
-rw-r--r--2024/prepare.md311
-rw-r--r--2024/schedule-details.md39
-rw-r--r--2024/sidebar.md2
-rw-r--r--2024/submit.md2
-rw-r--r--2024/talks.md13
-rw-r--r--2024/talks/blee.md126
-rw-r--r--2024/talks/casual.md32
-rw-r--r--2024/talks/color.md50
-rw-r--r--2024/talks/flp.md68
-rw-r--r--2024/talks/graph.md40
-rw-r--r--2024/talks/guile.md63
-rw-r--r--2024/talks/gypsum.md89
-rw-r--r--2024/talks/hyperbole.md37
-rw-r--r--2024/talks/hyperdrive.md53
-rw-r--r--2024/talks/hywiki.md49
-rw-r--r--2024/talks/julia.md33
-rw-r--r--2024/talks/language.md44
-rw-r--r--2024/talks/learning.md68
-rw-r--r--2024/talks/links.md54
-rw-r--r--2024/talks/literate.md50
-rw-r--r--2024/talks/mcclim.md121
-rw-r--r--2024/talks/org-teach.md46
-rw-r--r--2024/talks/p-search.md61
-rw-r--r--2024/talks/papers.md53
-rw-r--r--2024/talks/pgmacs.md49
-rw-r--r--2024/talks/project.md64
-rw-r--r--2024/talks/regex.md37
-rw-r--r--2024/talks/repro.md36
-rw-r--r--2024/talks/rust.md34
-rw-r--r--2024/talks/secrets.md28
-rw-r--r--2024/talks/sharing.md39
-rw-r--r--2024/talks/shell.md35
-rw-r--r--2024/talks/students.md47
-rw-r--r--2024/talks/theme.md33
-rw-r--r--2024/talks/transducers.md47
-rw-r--r--2024/talks/water.md29
-rw-r--r--2024/talks/writing.md34
-rw-r--r--donate.md35
-rw-r--r--donors.md29
-rw-r--r--edit.md2
-rw-r--r--organizers-notebook.md81
-rw-r--r--organizers-notebook/index.org68
-rw-r--r--templates/page.tmpl3
148 files changed, 3533 insertions, 30 deletions
diff --git a/2024.md b/2024.md
index 8a397199..13b4bb47 100644
--- a/2024.md
+++ b/2024.md
@@ -6,8 +6,7 @@
<p class="center">[[!img /i/emacsconf-logo1-256.png
alt="EmacsConf logo"]]</p>
-<p class="center">[[<b>Call for Participation</b>|cfp]] | [[Ideas]] |
-[[Submit a Proposal|submit]] | [[Volunteer]] | [[Guidelines for Conduct|conduct]]</p>
+<p class="center">[[Talks]] | [[Volunteer]] | [[Guidelines for Conduct|conduct]]</p>
<p class="center">EmacsConf is the conference about the joy of
<a href="https://www.gnu.org/software/emacs/">GNU Emacs</a> and
@@ -15,14 +14,17 @@ Emacs Lisp.</p>
We are busy putting things together for EmacsConf 2024, and we would
love to have *your* help to make EmacsConf 2024 amazing, much like the
-previous EmacsConfs. See our [[**Call for Participation**|cfp]], get
-involved, and help spread the word!
+previous EmacsConfs. Missed the proposal deadline but got a great idea anyway? [[Let us know|/2024/cfp]] just in case we can still squeeze you in somehow.
We are holding EmacsConf 2024 as an online conference again this year.
We remain fully committed to freedom, and we will continue using our
infrastructure and streaming setup consisting entirely of [free
software][freesw], much like previous EmacsConf conferences.
+There is also a satellite event in
+[Lucerne, Switzerland](https://200ok.ch/posts/2024-09-16_announcing_emacsconf__official_swiss_satellite.html).
+Let us know if you want to organize one too!
+
For general EmacsConf discussions, join the
[emacsconf-discuss](https://lists.gnu.org/mailman/listinfo/emacsconf-discuss)
mailing list. For discussions related to organizing EmacsConf, join
diff --git a/2024/cfp.md b/2024/cfp.md
index 51d08ede..6b78caf3 100644
--- a/2024/cfp.md
+++ b/2024/cfp.md
@@ -21,12 +21,9 @@ started.
[EmacsConf 2024](https://emacsconf.org/2024/) will be a virtual conference on **December 7 and 8, 2024
(Sat-Sun, 9AM-5PM UTC-5 America/Toronto, which is the same as 2PM-10PM UTC)**.
-If you'd like to present at the conference, please **[submit your proposal](https://emacsconf.org/2024/cfp/)**
-by **September 20, 2024 (Friday)**. You can also take a look at
-[previous talks](https://emacsconf.org/talks) to see how your talk can add to other ideas!
+Missed the proposal deadline (Sept 20, 2024), but have a great idea? Let us know just in case we can still squeeze you in somehow!
-We'll send out rolling acceptances, so feel free to get the conversation
-started early! If there are similar proposals, we'll work with people so
+If there are similar proposals, we'll work with people so
that the talks can cover different facets.
diff --git a/2024/cfp.org b/2024/cfp.org
index 1ed2bc7a..21f637f2 100644
--- a/2024/cfp.org
+++ b/2024/cfp.org
@@ -67,12 +67,9 @@ started.
[[https://emacsconf.org/2024/][EmacsConf 2024]] will be a virtual conference on *December 7 and 8, 2024
(Sat-Sun, 9AM-5PM UTC-5 America/Toronto, which is the same as 2PM-10PM UTC)*.
-If you'd like to present at the conference, please *[[https://emacsconf.org/2024/cfp/][submit your proposal]]*
-by *September 20, 2024 (Friday)*. You can also take a look at
-[[https://emacsconf.org/talks][previous talks]] to see how your talk can add to other ideas!
+Missed the proposal deadline (Sept 20, 2024), but have a great idea? Let us know just in case we can still squeeze you in somehow!
-We'll send out rolling acceptances, so feel free to get the conversation
-started early! If there are similar proposals, we'll work with people so
+If there are similar proposals, we'll work with people so
that the talks can cover different facets.
* Talk formats
diff --git a/2024/draft-schedule.md b/2024/draft-schedule.md
new file mode 100644
index 00000000..09acae16
--- /dev/null
+++ b/2024/draft-schedule.md
@@ -0,0 +1,46 @@
+[[!sidebar content=""]]
+
+This is a *DRAFT* schedule.
+Jump to: <a href="#date-2024-12-07">Sat Dec 7</a> - <a href="#date-2024-12-08">Sun Dec 8</a><a name="date-2024-12-07"></a>
+# Saturday Dec 7, 2024
+[[!inline pages="internal(2024/schedule-2024-12-07)" raw="yes"]]
+
+<div class="schedule" data-start="2024-12-07T14:00:00+0000" data-end="2024-12-07T22:30:00+0000" data-tracks="General,Development">
+[[!template id=sched time="""10""" q-and-a="""<a href="https://media.emacsconf.org/2024/current/bbb-papers.html">BBB</a>""" startutc="""2024-12-07T14:10:00+0000""" endutc="""2024-12-07T14:20:00+0000""" start="""9:10""" end="""9:20""" title="""Writing academic papers in Org-Roam""" url="""/2024/talks/papers""" speakers="""Vincent Conus""" track="""General""" watch="""https://emacsconf.org/2024/watch/gen""" slug="""papers""" note=""""""]]
+[[!template id=sched time="""10""" q-and-a="""""" startutc="""2024-12-07T14:50:00+0000""" endutc="""2024-12-07T15:00:00+0000""" start="""9:50""" end="""10:00""" title="""Colour your Emacs with ease""" url="""/2024/talks/color""" speakers="""Ryota""" track="""General""" watch="""https://emacsconf.org/2024/watch/gen""" slug="""color""" note=""""""]]
+[[!template id=sched time="""20""" q-and-a="""<a href="https://media.emacsconf.org/2024/current/bbb-gypsum.html">BBB</a>""" startutc="""2024-12-07T15:00:00+0000""" endutc="""2024-12-07T15:20:00+0000""" start="""10:00""" end="""10:20""" title="""Gypsum: my clone of Emacs and ELisp written in Scheme""" url="""/2024/talks/gypsum""" speakers="""Ramin Honary""" track="""Development""" watch="""https://emacsconf.org/2024/watch/dev""" slug="""gypsum""" note=""""""]]
+[[!template id=sched time="""20""" q-and-a="""<a href="https://chat.emacsconf.org/?join=emacsconf">#emacsconf, speaker nick: aindilis</a>""" startutc="""2024-12-07T15:30:00+0000""" endutc="""2024-12-07T15:50:00+0000""" start="""10:30""" end="""10:50""" title="""The Free Life Planner: Empowering lives with Emacs-based AI""" url="""/2024/talks/flp""" speakers="""Andrew Dougherty""" track="""General""" watch="""https://emacsconf.org/2024/watch/gen""" slug="""flp""" note=""""""]]
+[[!template id=sched time="""20""" q-and-a="""<a href="https://media.emacsconf.org/2024/current/bbb-rust.html">BBB</a>""" startutc="""2024-12-07T15:50:00+0000""" endutc="""2024-12-07T16:10:00+0000""" start="""10:50""" end="""11:10""" title="""An experimental Emacs core in Rust""" url="""/2024/talks/rust""" speakers="""Troy Hinckley""" track="""Development""" watch="""https://emacsconf.org/2024/watch/dev""" slug="""rust""" note=""""""]]
+[[!template id=sched time="""20""" q-and-a="""<a href="https://media.emacsconf.org/2024/current/bbb-hyperdrive.html">BBB</a>""" startutc="""2024-12-07T16:10:00+0000""" endutc="""2024-12-07T16:30:00+0000""" start="""11:10""" end="""11:30""" title="""New in hyperdrive.el: org-transclusion, easy installation, and more!""" url="""/2024/talks/hyperdrive""" speakers="""Joseph Turner""" track="""General""" watch="""https://emacsconf.org/2024/watch/gen""" slug="""hyperdrive""" note=""""""]]
+[[!template id=sched time="""5""" q-and-a="""<a href="https://media.emacsconf.org/2024/current/bbb-julia.html">BBB</a>""" startutc="""2024-12-07T18:00:00+0000""" endutc="""2024-12-07T18:05:00+0000""" start="""1:00""" end="""1:05""" title="""Exploring shared philosophies in Julia and Emacs""" url="""/2024/talks/julia""" speakers="""Gabriele Bozzola""" track="""Development""" watch="""https://emacsconf.org/2024/watch/gen""" slug="""julia""" note=""""""]]
+[[!template id=sched time="""20""" q-and-a="""<a href="https://chat.emacsconf.org/?join=emacsconf">#emacsconf, speaker nick: robin</a>""" startutc="""2024-12-07T18:35:00+0000""" endutc="""2024-12-07T18:55:00+0000""" start="""1:35""" end="""1:55""" title="""Beguiling Emacs: Guile-Emacs relaunched!""" url="""/2024/talks/guile""" speakers="""Robin Templeton""" track="""Development""" watch="""https://emacsconf.org/2024/watch/gen""" slug="""guile""" note=""""""]]
+[[!template id=sched time="""10""" q-and-a="""<a href="https://media.emacsconf.org/2024/current/bbb-theme.html">BBB</a>""" startutc="""2024-12-07T18:50:00+0000""" endutc="""2024-12-07T19:00:00+0000""" start="""1:50""" end="""2:00""" title="""My journey of finding and creating the “perfect” Emacs theme""" url="""/2024/talks/theme""" speakers="""MetroWind""" track="""General""" watch="""https://emacsconf.org/2024/watch/gen""" slug="""theme""" note=""""""]]
+[[!template id=sched time="""60""" q-and-a="""<a href="https://media.emacsconf.org/2024/current/bbb-mcclim.html">BBB</a>""" startutc="""2024-12-07T19:15:00+0000""" endutc="""2024-12-07T20:15:00+0000""" start="""2:15""" end="""3:15""" title="""Elisp and McCLIM""" url="""/2024/talks/mcclim""" speakers="""screwlisp""" track="""Development""" watch="""https://emacsconf.org/2024/watch/gen""" slug="""mcclim""" note=""""""]]
+[[!template id=sched time="""10""" q-and-a="""<a href="https://chat.emacsconf.org/?join=emacsconf">#emacsconf, speaker nick: lispmacs</a>""" startutc="""2024-12-07T19:30:00+0000""" endutc="""2024-12-07T19:40:00+0000""" start="""2:30""" end="""2:40""" title="""Watering my (digital) plant with Emacs timers""" url="""/2024/talks/water""" speakers="""Christopher Howard""" track="""General""" watch="""https://emacsconf.org/2024/watch/gen""" slug="""water""" note=""""""]]
+[[!template id=sched time="""40""" q-and-a="""<a href="https://chat.emacsconf.org/?join=emacsconf">#emacsconf, speaker nick: lispmacs</a>""" startutc="""2024-12-07T20:00:00+0000""" endutc="""2024-12-07T20:40:00+0000""" start="""3:00""" end="""3:40""" title="""Emacs as a shell""" url="""/2024/talks/shell""" speakers="""Christopher Howard""" track="""General""" watch="""https://emacsconf.org/2024/watch/gen""" slug="""shell""" note=""""""]]
+[[!template id=sched time="""20""" q-and-a="""<a href="https://chat.emacsconf.org/?join=emacsconf">#emacsconf, speaker nick: cosmicexplorer</a>""" startutc="""2024-12-07T20:45:00+0000""" endutc="""2024-12-07T21:05:00+0000""" start="""3:45""" end="""4:05""" title="""Emacs regex compilation and future directions for expressive pattern matching""" url="""/2024/talks/regex""" speakers="""Danny McClanahan""" track="""Development""" watch="""https://emacsconf.org/2024/watch/dev""" slug="""regex""" note=""""""]]
+[[!template id=sched time="""10""" q-and-a="""<a href="https://chat.emacsconf.org/?join=emacsconf">#emacsconf, speaker nick: bardman</a>""" startutc="""2024-12-07T21:00:00+0000""" endutc="""2024-12-07T21:10:00+0000""" start="""4:00""" end="""4:10""" title="""An example of a cohesive student workflow in Emacs""" url="""/2024/talks/students""" speakers="""Daniel Pinkston""" track="""General""" watch="""https://emacsconf.org/2024/watch/gen""" slug="""students""" note=""""""]]
+[[!template id=sched time="""20""" q-and-a="""<a href="https://media.emacsconf.org/2024/current/bbb-repro.html">BBB</a>""" startutc="""2024-12-07T21:25:00+0000""" endutc="""2024-12-07T21:45:00+0000""" start="""4:25""" end="""4:45""" title="""Reproducibly building Emacs: “Hey your checksum is the same as mine!”""" url="""/2024/talks/repro""" speakers="""Aaron Grothe""" track="""Development""" watch="""https://emacsconf.org/2024/watch/dev""" slug="""repro""" note=""""""]]
+[[!template id=sched time="""10""" q-and-a="""none""" startutc="""2024-12-07T21:30:00+0000""" endutc="""2024-12-07T21:40:00+0000""" start="""4:30""" end="""4:40""" title="""Emacs Writing Studio""" url="""/2024/talks/writing""" speakers="""Peter Prevos""" track="""General""" watch="""https://emacsconf.org/2024/watch/gen""" slug="""writing""" note=""""""]]</div>
+
+Jump to: <a href="#date-2024-12-07">Sat Dec 7</a> - <a href="#date-2024-12-08">Sun Dec 8</a><a name="date-2024-12-08"></a>
+# Sunday Dec 8, 2024
+[[!inline pages="internal(2024/schedule-2024-12-08)" raw="yes"]]
+
+<div class="schedule" data-start="2024-12-08T14:00:00+0000" data-end="2024-12-08T22:30:00+0000" data-tracks="General,Development">
+[[!template id=sched time="""10""" q-and-a="""<a href="https://pad.emacsconf.org/2024-links">Etherpad</a>""" startutc="""2024-12-08T14:10:00+0000""" endutc="""2024-12-08T14:20:00+0000""" start="""9:10""" end="""9:20""" title="""Unlocking linked data: replacing specialized apps with an Org-based semantic wiki""" url="""/2024/talks/links""" speakers="""Abhinav Tushar""" track="""General""" watch="""https://emacsconf.org/2024/watch/gen""" slug="""links""" note=""""""]]
+[[!template id=sched time="""20""" q-and-a="""<a href="https://media.emacsconf.org/2024/current/bbb-org-teach.html">BBB</a>""" startutc="""2024-12-08T14:40:00+0000""" endutc="""2024-12-08T15:00:00+0000""" start="""9:40""" end="""10:00""" title="""org-teach: a minor mode for writing course materials in Emacs""" url="""/2024/talks/org-teach""" speakers="""James Endres Howell""" track="""General""" watch="""https://emacsconf.org/2024/watch/gen""" slug="""org-teach""" note=""""""]]
+[[!template id=sched time="""10""" q-and-a="""<a href="https://media.emacsconf.org/2024/current/bbb-pgmacs.html">BBB</a>""" startutc="""2024-12-08T15:00:00+0000""" endutc="""2024-12-08T15:10:00+0000""" start="""10:00""" end="""10:10""" title="""PGmacs: browsing and editing PostgreSQL databases from Emacs""" url="""/2024/talks/pgmacs""" speakers="""Eric Marsden""" track="""Development""" watch="""https://emacsconf.org/2024/watch/dev""" slug="""pgmacs""" note=""""""]]
+[[!template id=sched time="""10""" q-and-a="""<a href="https://media.emacsconf.org/2024/current/bbb-hyperbole.html">BBB</a>""" startutc="""2024-12-08T15:20:00+0000""" endutc="""2024-12-08T15:30:00+0000""" start="""10:20""" end="""10:30""" title="""Fun things with GNU Hyperbole""" url="""/2024/talks/hyperbole""" speakers="""Mats Lidell""" track="""General""" watch="""https://emacsconf.org/2024/watch/gen""" slug="""hyperbole""" note=""""""]]
+[[!template id=sched time="""20""" q-and-a="""<a href="https://media.emacsconf.org/2024/current/bbb-graph.html">BBB</a>""" startutc="""2024-12-08T15:40:00+0000""" endutc="""2024-12-08T16:00:00+0000""" start="""10:40""" end="""11:00""" title="""Graph mode: a major mode to create, edit and display discrete element graphs""" url="""/2024/talks/graph""" speakers="""John Darrington""" track="""Development""" watch="""https://emacsconf.org/2024/watch/dev""" slug="""graph""" note=""""""]]
+[[!template id=sched time="""20""" q-and-a="""<a href="https://media.emacsconf.org/2024/current/bbb-hywiki.html">BBB</a>""" startutc="""2024-12-08T15:50:00+0000""" endutc="""2024-12-08T16:10:00+0000""" start="""10:50""" end="""11:10""" title="""HyWiki: Fast, hyperlinked note-taking with no markup required""" url="""/2024/talks/hywiki""" speakers="""Bob Weiner""" track="""General""" watch="""https://emacsconf.org/2024/watch/gen""" slug="""hywiki""" note=""""""]]
+[[!template id=sched time="""10""" q-and-a="""<a href="https://pad.emacsconf.org/2024-language">Etherpad</a>""" startutc="""2024-12-08T16:30:00+0000""" endutc="""2024-12-08T16:40:00+0000""" start="""11:30""" end="""11:40""" title="""Immersive language learning with Emacs""" url="""/2024/talks/language""" speakers="""Sebastian Dümcke""" track="""General""" watch="""https://emacsconf.org/2024/watch/gen""" slug="""language""" note=""""""]]
+[[!template id=sched time="""20""" q-and-a="""<a href="https://media.emacsconf.org/2024/current/bbb-blee.html">BBB</a>""" startutc="""2024-12-08T18:00:00+0000""" endutc="""2024-12-08T18:20:00+0000""" start="""1:00""" end="""1:20""" title="""About Blee: towards an integrated Emacs environment for enveloping our own autonomy directed digital ecosystem""" url="""/2024/talks/blee""" speakers="""Mohsen BANAN""" track="""Development""" watch="""https://emacsconf.org/2024/watch/gen""" slug="""blee""" note=""""""]]
+[[!template id=sched time="""20""" q-and-a="""<a href="https://media.emacsconf.org/2024/current/bbb-literate.html">BBB</a>""" startutc="""2024-12-08T18:00:00+0000""" endutc="""2024-12-08T18:20:00+0000""" start="""1:00""" end="""1:20""" title="""Literate programming for the 21st Century""" url="""/2024/talks/literate""" speakers="""Howard Abrams""" track="""General""" watch="""https://emacsconf.org/2024/watch/dev""" slug="""literate""" note=""""""]]
+[[!template id=sched time="""20""" q-and-a="""<a href="https://media.emacsconf.org/2024/current/bbb-casual.html">BBB</a>""" startutc="""2024-12-08T18:50:00+0000""" endutc="""2024-12-08T19:10:00+0000""" start="""1:50""" end="""2:10""" title="""Re-imagining the Emacs user experience with Casual Suite""" url="""/2024/talks/casual""" speakers="""Charles Choi""" track="""General""" watch="""https://emacsconf.org/2024/watch/gen""" slug="""casual""" note=""""""]]
+[[!template id=sched time="""20""" q-and-a="""<a href="https://media.emacsconf.org/2024/current/bbb-p-search.html">BBB</a>""" startutc="""2024-12-08T18:50:00+0000""" endutc="""2024-12-08T19:10:00+0000""" start="""1:50""" end="""2:10""" title="""p-search: a local search engine in Emacs""" url="""/2024/talks/p-search""" speakers="""Zac Romero""" track="""Development""" watch="""https://emacsconf.org/2024/watch/gen""" slug="""p-search""" note=""""""]]
+[[!template id=sched time="""10""" q-and-a="""<a href="https://media.emacsconf.org/2024/current/bbb-secrets.html">BBB</a>""" startutc="""2024-12-08T19:40:00+0000""" endutc="""2024-12-08T19:50:00+0000""" start="""2:40""" end="""2:50""" title="""Committing secrets with git using sops-mode""" url="""/2024/talks/secrets""" speakers="""Jonathan Otsuka""" track="""Development""" watch="""https://emacsconf.org/2024/watch/gen""" slug="""secrets""" note=""""""]]
+[[!template id=sched time="""20""" q-and-a="""<a href="https://pad.emacsconf.org/2024-learning">Etherpad</a>""" startutc="""2024-12-08T19:40:00+0000""" endutc="""2024-12-08T20:00:00+0000""" start="""2:40""" end="""3:00""" title="""Survival of the skillest: Thriving in the learning jungle""" url="""/2024/talks/learning""" speakers="""Bala Ramadurai""" track="""General""" watch="""https://emacsconf.org/2024/watch/gen""" slug="""learning""" note=""""""]]
+[[!template id=sched time="""20""" q-and-a="""<a href="https://media.emacsconf.org/2024/current/bbb-project.html">BBB</a>""" startutc="""2024-12-08T20:20:00+0000""" endutc="""2024-12-08T20:40:00+0000""" start="""3:20""" end="""3:40""" title="""Managing writing project metadata with org-mode""" url="""/2024/talks/project""" speakers="""Blaine Mooers""" track="""General""" watch="""https://emacsconf.org/2024/watch/gen""" slug="""project""" note=""""""]]
+[[!template id=sched time="""30""" q-and-a="""<a href="https://media.emacsconf.org/2024/current/bbb-transducers.html">BBB</a>""" startutc="""2024-12-08T21:00:00+0000""" endutc="""2024-12-08T21:30:00+0000""" start="""4:00""" end="""4:30""" title="""Transducers: finally, ergonomic data processing for Emacs!""" url="""/2024/talks/transducers""" speakers="""Colin Woodbury""" track="""Development""" watch="""https://emacsconf.org/2024/watch/dev""" slug="""transducers""" note=""""""]]
+[[!template id=sched time="""20""" q-and-a="""<a href="https://pad.emacsconf.org/2024-sharing">Etherpad</a>""" startutc="""2024-12-08T21:10:00+0000""" endutc="""2024-12-08T21:30:00+0000""" start="""4:10""" end="""4:30""" title="""So you want to be an Emacs-fluencer?""" url="""/2024/talks/sharing""" speakers="""Gopar""" track="""General""" watch="""https://emacsconf.org/2024/watch/gen""" slug="""sharing""" note=""""""]]</div> \ No newline at end of file
diff --git a/2024/info/blee-after.md b/2024/info/blee-after.md
new file mode 100644
index 00000000..e24f508e
--- /dev/null
+++ b/2024/info/blee-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%20blee%3A%20About%20Blee%3A%20towards%20an%20integrated%20Emacs%20environment%20for%20enveloping%20our%20own%20autonomy%20directed%20digital%20ecosystem)
+
+----
+Got an idea for an EmacsConf talk or session? We'd love to hear from you! Check out the [[Call for Participation|/2024/cfp]] for details.
+
+
+<!-- End of emacsconf-publish-after-page -->
diff --git a/2024/info/blee-before.md b/2024/info/blee-before.md
new file mode 100644
index 00000000..7cb3e64d
--- /dev/null
+++ b/2024/info/blee-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/2024/info/blee-nav.md b/2024/info/blee-nav.md
new file mode 100644
index 00000000..12dc7932
--- /dev/null
+++ b/2024/info/blee-nav.md
@@ -0,0 +1,7 @@
+
+<div class="talk-nav">
+Back to the [[talks]]
+Previous by track: <a href="/2024/talks/graph">Graph mode: a major mode to create, edit and display discrete element graphs</a>
+Next by track: <a href="/2024/talks/p-search">p-search: a local search engine in Emacs</a>
+Track: <span class="sched-track Development">Development</span>
+</div>
diff --git a/2024/info/casual-after.md b/2024/info/casual-after.md
new file mode 100644
index 00000000..478c2e0f
--- /dev/null
+++ b/2024/info/casual-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%20casual%3A%20Re-imagining%20the%20Emacs%20user%20experience%20with%20Casual%20Suite)
+
+----
+Got an idea for an EmacsConf talk or session? We'd love to hear from you! Check out the [[Call for Participation|/2024/cfp]] for details.
+
+
+<!-- End of emacsconf-publish-after-page -->
diff --git a/2024/info/casual-before.md b/2024/info/casual-before.md
new file mode 100644
index 00000000..7cb3e64d
--- /dev/null
+++ b/2024/info/casual-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/2024/info/casual-nav.md b/2024/info/casual-nav.md
new file mode 100644
index 00000000..0d9cb38c
--- /dev/null
+++ b/2024/info/casual-nav.md
@@ -0,0 +1,7 @@
+
+<div class="talk-nav">
+Back to the [[talks]]
+Previous by track: <a href="/2024/talks/literate">Literate programming for the 21st Century</a>
+Next by track: <a href="/2024/talks/learning">Survival of the skillest: Thriving in the learning jungle</a>
+Track: <span class="sched-track General">General</span>
+</div>
diff --git a/2024/info/color-after.md b/2024/info/color-after.md
new file mode 100644
index 00000000..9bee72c6
--- /dev/null
+++ b/2024/info/color-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%20color%3A%20Colour%20your%20Emacs%20with%20ease)
+
+----
+Got an idea for an EmacsConf talk or session? We'd love to hear from you! Check out the [[Call for Participation|/2024/cfp]] for details.
+
+
+<!-- End of emacsconf-publish-after-page -->
diff --git a/2024/info/color-before.md b/2024/info/color-before.md
new file mode 100644
index 00000000..4f4824ed
--- /dev/null
+++ b/2024/info/color-before.md
@@ -0,0 +1,12 @@
+<!-- Automatically generated by emacsconf-publish-before-page -->
+[[!toc ]]
+Format: 10-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/2024/info/color-nav.md b/2024/info/color-nav.md
new file mode 100644
index 00000000..e6a0ed7a
--- /dev/null
+++ b/2024/info/color-nav.md
@@ -0,0 +1,7 @@
+
+<div class="talk-nav">
+Back to the [[talks]]
+Previous by track: <a href="/2024/talks/papers">Writing academic papers in Org-Roam</a>
+Next by track: <a href="/2024/talks/flp">The Free Life Planner: Empowering lives with Emacs-based AI</a>
+Track: <span class="sched-track General">General</span>
+</div>
diff --git a/2024/info/flp-after.md b/2024/info/flp-after.md
new file mode 100644
index 00000000..98388a5c
--- /dev/null
+++ b/2024/info/flp-after.md
@@ -0,0 +1,10 @@
+<!-- Automatically generated by emacsconf-publish-after-page -->
+
+
+Questions or comments? Please e-mail [adougher9@gmail.com](mailto:adougher9@gmail.com?subject=Comment%20for%20EmacsConf%202023%20flp%3A%20The%20Free%20Life%20Planner%3A%20Empowering%20lives%20with%20Emacs-based%20AI)
+
+----
+Got an idea for an EmacsConf talk or session? We'd love to hear from you! Check out the [[Call for Participation|/2024/cfp]] for details.
+
+
+<!-- End of emacsconf-publish-after-page -->
diff --git a/2024/info/flp-before.md b/2024/info/flp-before.md
new file mode 100644
index 00000000..49413c04
--- /dev/null
+++ b/2024/info/flp-before.md
@@ -0,0 +1,12 @@
+<!-- Automatically generated by emacsconf-publish-before-page -->
+[[!toc ]]
+Format: 20-min talk; Q&A: IRC
+Status: Waiting for video from speaker
+
+
+
+
+
+
+# Description
+<!-- End of emacsconf-publish-before-page --> \ No newline at end of file
diff --git a/2024/info/flp-nav.md b/2024/info/flp-nav.md
new file mode 100644
index 00000000..2df857c8
--- /dev/null
+++ b/2024/info/flp-nav.md
@@ -0,0 +1,7 @@
+
+<div class="talk-nav">
+Back to the [[talks]]
+Previous by track: <a href="/2024/talks/color">Colour your Emacs with ease</a>
+Next by track: <a href="/2024/talks/hyperdrive">New in hyperdrive.el: org-transclusion, easy installation, and more!</a>
+Track: <span class="sched-track General">General</span>
+</div>
diff --git a/2024/info/graph-after.md b/2024/info/graph-after.md
new file mode 100644
index 00000000..50313995
--- /dev/null
+++ b/2024/info/graph-after.md
@@ -0,0 +1,10 @@
+<!-- Automatically generated by emacsconf-publish-after-page -->
+
+
+Questions or comments? Please e-mail [john@cellform.com](mailto:john@cellform.com?subject=Comment%20for%20EmacsConf%202023%20graph%3A%20Graph%20mode%3A%20a%20major%20mode%20to%20create%2C%20edit%20and%20display%20discrete%20element%20graphs)
+
+----
+Got an idea for an EmacsConf talk or session? We'd love to hear from you! Check out the [[Call for Participation|/2024/cfp]] for details.
+
+
+<!-- End of emacsconf-publish-after-page -->
diff --git a/2024/info/graph-before.md b/2024/info/graph-before.md
new file mode 100644
index 00000000..7cb3e64d
--- /dev/null
+++ b/2024/info/graph-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/2024/info/graph-nav.md b/2024/info/graph-nav.md
new file mode 100644
index 00000000..d7481770
--- /dev/null
+++ b/2024/info/graph-nav.md
@@ -0,0 +1,7 @@
+
+<div class="talk-nav">
+Back to the [[talks]]
+Previous by track: <a href="/2024/talks/pgmacs">PGmacs: browsing and editing PostgreSQL databases from Emacs</a>
+Next by track: <a href="/2024/talks/blee">About Blee: towards an integrated Emacs environment for enveloping our own autonomy directed digital ecosystem</a>
+Track: <span class="sched-track Development">Development</span>
+</div>
diff --git a/2024/info/guile-after.md b/2024/info/guile-after.md
new file mode 100644
index 00000000..1ca4f8c0
--- /dev/null
+++ b/2024/info/guile-after.md
@@ -0,0 +1,10 @@
+<!-- Automatically generated by emacsconf-publish-after-page -->
+
+
+Questions or comments? Please e-mail [robin@terpri.org](mailto:robin@terpri.org?subject=Comment%20for%20EmacsConf%202023%20guile%3A%20Beguiling%20Emacs%3A%20Guile-Emacs%20relaunched%21)
+
+----
+Got an idea for an EmacsConf talk or session? We'd love to hear from you! Check out the [[Call for Participation|/2024/cfp]] for details.
+
+
+<!-- End of emacsconf-publish-after-page -->
diff --git a/2024/info/guile-before.md b/2024/info/guile-before.md
new file mode 100644
index 00000000..49413c04
--- /dev/null
+++ b/2024/info/guile-before.md
@@ -0,0 +1,12 @@
+<!-- Automatically generated by emacsconf-publish-before-page -->
+[[!toc ]]
+Format: 20-min talk; Q&A: IRC
+Status: Waiting for video from speaker
+
+
+
+
+
+
+# Description
+<!-- End of emacsconf-publish-before-page --> \ No newline at end of file
diff --git a/2024/info/guile-nav.md b/2024/info/guile-nav.md
new file mode 100644
index 00000000..64b99a0c
--- /dev/null
+++ b/2024/info/guile-nav.md
@@ -0,0 +1,7 @@
+
+<div class="talk-nav">
+Back to the [[talks]]
+Previous by track: <a href="/2024/talks/julia">Exploring shared philosophies in Julia and Emacs</a>
+Next by track: <a href="/2024/talks/mcclim">Elisp and McCLIM</a>
+Track: <span class="sched-track Development">Development</span>
+</div>
diff --git a/2024/info/gypsum-after.md b/2024/info/gypsum-after.md
new file mode 100644
index 00000000..177673d6
--- /dev/null
+++ b/2024/info/gypsum-after.md
@@ -0,0 +1,10 @@
+<!-- Automatically generated by emacsconf-publish-after-page -->
+
+
+Questions or comments? Please e-mail [ramin.honary@gmail.com](mailto:ramin.honary@gmail.com?subject=Comment%20for%20EmacsConf%202023%20gypsum%3A%20Gypsum%3A%20my%20clone%20of%20Emacs%20and%20ELisp%20written%20in%20Scheme)
+
+----
+Got an idea for an EmacsConf talk or session? We'd love to hear from you! Check out the [[Call for Participation|/2024/cfp]] for details.
+
+
+<!-- End of emacsconf-publish-after-page -->
diff --git a/2024/info/gypsum-before.md b/2024/info/gypsum-before.md
new file mode 100644
index 00000000..7cb3e64d
--- /dev/null
+++ b/2024/info/gypsum-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/2024/info/gypsum-nav.md b/2024/info/gypsum-nav.md
new file mode 100644
index 00000000..ccd3f0e3
--- /dev/null
+++ b/2024/info/gypsum-nav.md
@@ -0,0 +1,7 @@
+
+<div class="talk-nav">
+Back to the [[talks]]
+Previous by track: <a href="/2024/talks/sharing">So you want to be an Emacs-fluencer?</a>
+Next by track: <a href="/2024/talks/rust">An experimental Emacs core in Rust</a>
+Track: <span class="sched-track Development">Development</span>
+</div>
diff --git a/2024/info/hyperbole-after.md b/2024/info/hyperbole-after.md
new file mode 100644
index 00000000..fc47bf27
--- /dev/null
+++ b/2024/info/hyperbole-after.md
@@ -0,0 +1,10 @@
+<!-- Automatically generated by emacsconf-publish-after-page -->
+
+
+Questions or comments? Please e-mail [matsl@gnu.org](mailto:matsl@gnu.org?subject=Comment%20for%20EmacsConf%202023%20hyperbole%3A%20Fun%20things%20with%20GNU%20Hyperbole)
+
+----
+Got an idea for an EmacsConf talk or session? We'd love to hear from you! Check out the [[Call for Participation|/2024/cfp]] for details.
+
+
+<!-- End of emacsconf-publish-after-page -->
diff --git a/2024/info/hyperbole-before.md b/2024/info/hyperbole-before.md
new file mode 100644
index 00000000..b8e44d2c
--- /dev/null
+++ b/2024/info/hyperbole-before.md
@@ -0,0 +1,12 @@
+<!-- Automatically generated by emacsconf-publish-before-page -->
+[[!toc ]]
+Format: 10-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/2024/info/hyperbole-nav.md b/2024/info/hyperbole-nav.md
new file mode 100644
index 00000000..d090cb1a
--- /dev/null
+++ b/2024/info/hyperbole-nav.md
@@ -0,0 +1,7 @@
+
+<div class="talk-nav">
+Back to the [[talks]]
+Previous by track: <a href="/2024/talks/org-teach">org-teach: a minor mode for writing course materials in Emacs</a>
+Next by track: <a href="/2024/talks/hywiki">HyWiki: Fast, hyperlinked note-taking with no markup required</a>
+Track: <span class="sched-track General">General</span>
+</div>
diff --git a/2024/info/hyperdrive-after.md b/2024/info/hyperdrive-after.md
new file mode 100644
index 00000000..bdf58a40
--- /dev/null
+++ b/2024/info/hyperdrive-after.md
@@ -0,0 +1,10 @@
+<!-- Automatically generated by emacsconf-publish-after-page -->
+
+
+Questions or comments? Please e-mail [contact@ushin.org](mailto:contact@ushin.org?subject=Comment%20for%20EmacsConf%202023%20hyperdrive%3A%20New%20in%20hyperdrive.el%3A%20org-transclusion%2C%20easy%20installation%2C%20and%20more%21)
+
+----
+Got an idea for an EmacsConf talk or session? We'd love to hear from you! Check out the [[Call for Participation|/2024/cfp]] for details.
+
+
+<!-- End of emacsconf-publish-after-page -->
diff --git a/2024/info/hyperdrive-before.md b/2024/info/hyperdrive-before.md
new file mode 100644
index 00000000..7cb3e64d
--- /dev/null
+++ b/2024/info/hyperdrive-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/2024/info/hyperdrive-nav.md b/2024/info/hyperdrive-nav.md
new file mode 100644
index 00000000..89995499
--- /dev/null
+++ b/2024/info/hyperdrive-nav.md
@@ -0,0 +1,7 @@
+
+<div class="talk-nav">
+Back to the [[talks]]
+Previous by track: <a href="/2024/talks/flp">The Free Life Planner: Empowering lives with Emacs-based AI</a>
+Next by track: <a href="/2024/talks/theme">My journey of finding and creating the “perfect” Emacs theme</a>
+Track: <span class="sched-track General">General</span>
+</div>
diff --git a/2024/info/hywiki-after.md b/2024/info/hywiki-after.md
new file mode 100644
index 00000000..ad9f3653
--- /dev/null
+++ b/2024/info/hywiki-after.md
@@ -0,0 +1,10 @@
+<!-- Automatically generated by emacsconf-publish-after-page -->
+
+
+Questions or comments? Please e-mail [rsw@gnu.com](mailto:rsw@gnu.com?subject=Comment%20for%20EmacsConf%202023%20hywiki%3A%20HyWiki%3A%20Fast%2C%20hyperlinked%20note-taking%20with%20no%20markup%20required)
+
+----
+Got an idea for an EmacsConf talk or session? We'd love to hear from you! Check out the [[Call for Participation|/2024/cfp]] for details.
+
+
+<!-- End of emacsconf-publish-after-page -->
diff --git a/2024/info/hywiki-before.md b/2024/info/hywiki-before.md
new file mode 100644
index 00000000..7cb3e64d
--- /dev/null
+++ b/2024/info/hywiki-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/2024/info/hywiki-nav.md b/2024/info/hywiki-nav.md
new file mode 100644
index 00000000..4987c919
--- /dev/null
+++ b/2024/info/hywiki-nav.md
@@ -0,0 +1,7 @@
+
+<div class="talk-nav">
+Back to the [[talks]]
+Previous by track: <a href="/2024/talks/hyperbole">Fun things with GNU Hyperbole</a>
+Next by track: <a href="/2024/talks/language">Immersive language learning with Emacs</a>
+Track: <span class="sched-track General">General</span>
+</div>
diff --git a/2024/info/julia-after.md b/2024/info/julia-after.md
new file mode 100644
index 00000000..c22841e5
--- /dev/null
+++ b/2024/info/julia-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%20julia%3A%20Exploring%20shared%20philosophies%20in%20Julia%20and%20Emacs)
+
+----
+Got an idea for an EmacsConf talk or session? We'd love to hear from you! Check out the [[Call for Participation|/2024/cfp]] for details.
+
+
+<!-- End of emacsconf-publish-after-page -->
diff --git a/2024/info/julia-before.md b/2024/info/julia-before.md
new file mode 100644
index 00000000..719c2039
--- /dev/null
+++ b/2024/info/julia-before.md
@@ -0,0 +1,12 @@
+<!-- Automatically generated by emacsconf-publish-before-page -->
+[[!toc ]]
+Format: 5-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/2024/info/julia-nav.md b/2024/info/julia-nav.md
new file mode 100644
index 00000000..587dafcd
--- /dev/null
+++ b/2024/info/julia-nav.md
@@ -0,0 +1,7 @@
+
+<div class="talk-nav">
+Back to the [[talks]]
+Previous by track: <a href="/2024/talks/rust">An experimental Emacs core in Rust</a>
+Next by track: <a href="/2024/talks/guile">Beguiling Emacs: Guile-Emacs relaunched!</a>
+Track: <span class="sched-track Development">Development</span>
+</div>
diff --git a/2024/info/language-after.md b/2024/info/language-after.md
new file mode 100644
index 00000000..5e40221f
--- /dev/null
+++ b/2024/info/language-after.md
@@ -0,0 +1,10 @@
+<!-- Automatically generated by emacsconf-publish-after-page -->
+
+
+Questions or comments? Please e-mail [code@sam-d.com](mailto:code@sam-d.com?subject=Comment%20for%20EmacsConf%202023%20language%3A%20Immersive%20language%20learning%20with%20Emacs)
+
+----
+Got an idea for an EmacsConf talk or session? We'd love to hear from you! Check out the [[Call for Participation|/2024/cfp]] for details.
+
+
+<!-- End of emacsconf-publish-after-page -->
diff --git a/2024/info/language-before.md b/2024/info/language-before.md
new file mode 100644
index 00000000..576aea46
--- /dev/null
+++ b/2024/info/language-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/2024/info/language-nav.md b/2024/info/language-nav.md
new file mode 100644
index 00000000..3084db0e
--- /dev/null
+++ b/2024/info/language-nav.md
@@ -0,0 +1,7 @@
+
+<div class="talk-nav">
+Back to the [[talks]]
+Previous by track: <a href="/2024/talks/hywiki">HyWiki: Fast, hyperlinked note-taking with no markup required</a>
+Next by track: <a href="/2024/talks/literate">Literate programming for the 21st Century</a>
+Track: <span class="sched-track General">General</span>
+</div>
diff --git a/2024/info/learning-after.md b/2024/info/learning-after.md
new file mode 100644
index 00000000..2c677bf3
--- /dev/null
+++ b/2024/info/learning-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%20learning%3A%20Survival%20of%20the%20skillest%3A%20Thriving%20in%20the%20learning%20jungle)
+
+----
+Got an idea for an EmacsConf talk or session? We'd love to hear from you! Check out the [[Call for Participation|/2024/cfp]] for details.
+
+
+<!-- End of emacsconf-publish-after-page -->
diff --git a/2024/info/learning-before.md b/2024/info/learning-before.md
new file mode 100644
index 00000000..9939a45b
--- /dev/null
+++ b/2024/info/learning-before.md
@@ -0,0 +1,12 @@
+<!-- Automatically generated by emacsconf-publish-before-page -->
+[[!toc ]]
+Format: 20-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/2024/info/learning-nav.md b/2024/info/learning-nav.md
new file mode 100644
index 00000000..733e0f59
--- /dev/null
+++ b/2024/info/learning-nav.md
@@ -0,0 +1,7 @@
+
+<div class="talk-nav">
+Back to the [[talks]]
+Previous by track: <a href="/2024/talks/casual">Re-imagining the Emacs user experience with Casual Suite</a>
+Next by track: <a href="/2024/talks/project">Managing writing project metadata with org-mode</a>
+Track: <span class="sched-track General">General</span>
+</div>
diff --git a/2024/info/links-after.md b/2024/info/links-after.md
new file mode 100644
index 00000000..6b62c57d
--- /dev/null
+++ b/2024/info/links-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%20links%3A%20Unlocking%20linked%20data%3A%20replacing%20specialized%20apps%20with%20an%20Org-based%20semantic%20wiki)
+
+----
+Got an idea for an EmacsConf talk or session? We'd love to hear from you! Check out the [[Call for Participation|/2024/cfp]] for details.
+
+
+<!-- End of emacsconf-publish-after-page -->
diff --git a/2024/info/links-before.md b/2024/info/links-before.md
new file mode 100644
index 00000000..576aea46
--- /dev/null
+++ b/2024/info/links-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/2024/info/links-nav.md b/2024/info/links-nav.md
new file mode 100644
index 00000000..9e054233
--- /dev/null
+++ b/2024/info/links-nav.md
@@ -0,0 +1,7 @@
+
+<div class="talk-nav">
+Back to the [[talks]]
+Previous by track: <a href="/2024/talks/writing">Emacs Writing Studio</a>
+Next by track: <a href="/2024/talks/org-teach">org-teach: a minor mode for writing course materials in Emacs</a>
+Track: <span class="sched-track General">General</span>
+</div>
diff --git a/2024/info/literate-after.md b/2024/info/literate-after.md
new file mode 100644
index 00000000..d569874e
--- /dev/null
+++ b/2024/info/literate-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%20literate%3A%20Literate%20programming%20for%20the%2021st%20Century)
+
+----
+Got an idea for an EmacsConf talk or session? We'd love to hear from you! Check out the [[Call for Participation|/2024/cfp]] for details.
+
+
+<!-- End of emacsconf-publish-after-page -->
diff --git a/2024/info/literate-before.md b/2024/info/literate-before.md
new file mode 100644
index 00000000..7cb3e64d
--- /dev/null
+++ b/2024/info/literate-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/2024/info/literate-nav.md b/2024/info/literate-nav.md
new file mode 100644
index 00000000..2b37646c
--- /dev/null
+++ b/2024/info/literate-nav.md
@@ -0,0 +1,7 @@
+
+<div class="talk-nav">
+Back to the [[talks]]
+Previous by track: <a href="/2024/talks/language">Immersive language learning with Emacs</a>
+Next by track: <a href="/2024/talks/casual">Re-imagining the Emacs user experience with Casual Suite</a>
+Track: <span class="sched-track General">General</span>
+</div>
diff --git a/2024/info/mcclim-after.md b/2024/info/mcclim-after.md
new file mode 100644
index 00000000..797e6f23
--- /dev/null
+++ b/2024/info/mcclim-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%20mcclim%3A%20Elisp%20and%20McCLIM)
+
+----
+Got an idea for an EmacsConf talk or session? We'd love to hear from you! Check out the [[Call for Participation|/2024/cfp]] for details.
+
+
+<!-- End of emacsconf-publish-after-page -->
diff --git a/2024/info/mcclim-before.md b/2024/info/mcclim-before.md
new file mode 100644
index 00000000..f98a5a6a
--- /dev/null
+++ b/2024/info/mcclim-before.md
@@ -0,0 +1,12 @@
+<!-- Automatically generated by emacsconf-publish-before-page -->
+[[!toc ]]
+Format: 60-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/2024/info/mcclim-nav.md b/2024/info/mcclim-nav.md
new file mode 100644
index 00000000..8ce96c6f
--- /dev/null
+++ b/2024/info/mcclim-nav.md
@@ -0,0 +1,7 @@
+
+<div class="talk-nav">
+Back to the [[talks]]
+Previous by track: <a href="/2024/talks/guile">Beguiling Emacs: Guile-Emacs relaunched!</a>
+Next by track: <a href="/2024/talks/regex">Emacs regex compilation and future directions for expressive pattern matching</a>
+Track: <span class="sched-track Development">Development</span>
+</div>
diff --git a/2024/info/org-teach-after.md b/2024/info/org-teach-after.md
new file mode 100644
index 00000000..ef8639dc
--- /dev/null
+++ b/2024/info/org-teach-after.md
@@ -0,0 +1,10 @@
+<!-- Automatically generated by emacsconf-publish-after-page -->
+
+
+Questions or comments? Please e-mail [james@endres-howell.org](mailto:james@endres-howell.org?subject=Comment%20for%20EmacsConf%202023%20org-teach%3A%20org-teach%3A%20a%20minor%20mode%20for%20writing%20course%20materials%20in%20Emacs)
+
+----
+Got an idea for an EmacsConf talk or session? We'd love to hear from you! Check out the [[Call for Participation|/2024/cfp]] for details.
+
+
+<!-- End of emacsconf-publish-after-page -->
diff --git a/2024/info/org-teach-before.md b/2024/info/org-teach-before.md
new file mode 100644
index 00000000..7cb3e64d
--- /dev/null
+++ b/2024/info/org-teach-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/2024/info/org-teach-nav.md b/2024/info/org-teach-nav.md
new file mode 100644
index 00000000..0576ec40
--- /dev/null
+++ b/2024/info/org-teach-nav.md
@@ -0,0 +1,7 @@
+
+<div class="talk-nav">
+Back to the [[talks]]
+Previous by track: <a href="/2024/talks/links">Unlocking linked data: replacing specialized apps with an Org-based semantic wiki</a>
+Next by track: <a href="/2024/talks/hyperbole">Fun things with GNU Hyperbole</a>
+Track: <span class="sched-track General">General</span>
+</div>
diff --git a/2024/info/p-search-after.md b/2024/info/p-search-after.md
new file mode 100644
index 00000000..04999565
--- /dev/null
+++ b/2024/info/p-search-after.md
@@ -0,0 +1,10 @@
+<!-- Automatically generated by emacsconf-publish-after-page -->
+
+
+Questions or comments? Please e-mail [zacromero@posteo.com](mailto:zacromero@posteo.com?subject=Comment%20for%20EmacsConf%202023%20p-search%3A%20p-search%3A%20a%20local%20search%20engine%20in%20Emacs)
+
+----
+Got an idea for an EmacsConf talk or session? We'd love to hear from you! Check out the [[Call for Participation|/2024/cfp]] for details.
+
+
+<!-- End of emacsconf-publish-after-page -->
diff --git a/2024/info/p-search-before.md b/2024/info/p-search-before.md
new file mode 100644
index 00000000..7cb3e64d
--- /dev/null
+++ b/2024/info/p-search-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/2024/info/p-search-nav.md b/2024/info/p-search-nav.md
new file mode 100644
index 00000000..e6769c25
--- /dev/null
+++ b/2024/info/p-search-nav.md
@@ -0,0 +1,7 @@
+
+<div class="talk-nav">
+Back to the [[talks]]
+Previous by track: <a href="/2024/talks/blee">About Blee: towards an integrated Emacs environment for enveloping our own autonomy directed digital ecosystem</a>
+Next by track: <a href="/2024/talks/secrets">Committing secrets with git using sops-mode</a>
+Track: <span class="sched-track Development">Development</span>
+</div>
diff --git a/2024/info/papers-after.md b/2024/info/papers-after.md
new file mode 100644
index 00000000..3ac88ff7
--- /dev/null
+++ b/2024/info/papers-after.md
@@ -0,0 +1,10 @@
+<!-- Automatically generated by emacsconf-publish-after-page -->
+
+
+Questions or comments? Please e-mail [vincent.conus@pm.me](mailto:vincent.conus@pm.me?subject=Comment%20for%20EmacsConf%202023%20papers%3A%20Writing%20academic%20papers%20in%20Org-Roam)
+
+----
+Got an idea for an EmacsConf talk or session? We'd love to hear from you! Check out the [[Call for Participation|/2024/cfp]] for details.
+
+
+<!-- End of emacsconf-publish-after-page -->
diff --git a/2024/info/papers-before.md b/2024/info/papers-before.md
new file mode 100644
index 00000000..b8e44d2c
--- /dev/null
+++ b/2024/info/papers-before.md
@@ -0,0 +1,12 @@
+<!-- Automatically generated by emacsconf-publish-before-page -->
+[[!toc ]]
+Format: 10-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/2024/info/papers-nav.md b/2024/info/papers-nav.md
new file mode 100644
index 00000000..90c9ff91
--- /dev/null
+++ b/2024/info/papers-nav.md
@@ -0,0 +1,6 @@
+
+<div class="talk-nav">
+Back to the [[talks]]
+Next by track: <a href="/2024/talks/color">Colour your Emacs with ease</a>
+Track: <span class="sched-track General">General</span>
+</div>
diff --git a/2024/info/pgmacs-after.md b/2024/info/pgmacs-after.md
new file mode 100644
index 00000000..bd63ed38
--- /dev/null
+++ b/2024/info/pgmacs-after.md
@@ -0,0 +1,10 @@
+<!-- Automatically generated by emacsconf-publish-after-page -->
+
+
+Questions or comments? Please e-mail [eric.marsden@risk-engineering.org](mailto:eric.marsden@risk-engineering.org?subject=Comment%20for%20EmacsConf%202023%20pgmacs%3A%20PGmacs%3A%20browsing%20and%20editing%20PostgreSQL%20databases%20from%20Emacs)
+
+----
+Got an idea for an EmacsConf talk or session? We'd love to hear from you! Check out the [[Call for Participation|/2024/cfp]] for details.
+
+
+<!-- End of emacsconf-publish-after-page -->
diff --git a/2024/info/pgmacs-before.md b/2024/info/pgmacs-before.md
new file mode 100644
index 00000000..b8e44d2c
--- /dev/null
+++ b/2024/info/pgmacs-before.md
@@ -0,0 +1,12 @@
+<!-- Automatically generated by emacsconf-publish-before-page -->
+[[!toc ]]
+Format: 10-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/2024/info/pgmacs-nav.md b/2024/info/pgmacs-nav.md
new file mode 100644
index 00000000..52a405d8
--- /dev/null
+++ b/2024/info/pgmacs-nav.md
@@ -0,0 +1,7 @@
+
+<div class="talk-nav">
+Back to the [[talks]]
+Previous by track: <a href="/2024/talks/repro">Reproducibly building Emacs: “Hey your checksum is the same as mine!”</a>
+Next by track: <a href="/2024/talks/graph">Graph mode: a major mode to create, edit and display discrete element graphs</a>
+Track: <span class="sched-track Development">Development</span>
+</div>
diff --git a/2024/info/project-after.md b/2024/info/project-after.md
new file mode 100644
index 00000000..32ab8822
--- /dev/null
+++ b/2024/info/project-after.md
@@ -0,0 +1,10 @@
+<!-- Automatically generated by emacsconf-publish-after-page -->
+
+
+Questions or comments? Please e-mail [blaine-mooers@ouhsc.edu](mailto:blaine-mooers@ouhsc.edu?subject=Comment%20for%20EmacsConf%202023%20project%3A%20Managing%20writing%20project%20metadata%20with%20org-mode)
+
+----
+Got an idea for an EmacsConf talk or session? We'd love to hear from you! Check out the [[Call for Participation|/2024/cfp]] for details.
+
+
+<!-- End of emacsconf-publish-after-page -->
diff --git a/2024/info/project-before.md b/2024/info/project-before.md
new file mode 100644
index 00000000..7cb3e64d
--- /dev/null
+++ b/2024/info/project-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/2024/info/project-nav.md b/2024/info/project-nav.md
new file mode 100644
index 00000000..7885c759
--- /dev/null
+++ b/2024/info/project-nav.md
@@ -0,0 +1,7 @@
+
+<div class="talk-nav">
+Back to the [[talks]]
+Previous by track: <a href="/2024/talks/learning">Survival of the skillest: Thriving in the learning jungle</a>
+Next by track: <a href="/2024/talks/sharing">So you want to be an Emacs-fluencer?</a>
+Track: <span class="sched-track General">General</span>
+</div>
diff --git a/2024/info/regex-after.md b/2024/info/regex-after.md
new file mode 100644
index 00000000..b3a8da15
--- /dev/null
+++ b/2024/info/regex-after.md
@@ -0,0 +1,10 @@
+<!-- Automatically generated by emacsconf-publish-after-page -->
+
+
+Questions or comments? Please e-mail [dmcC2@hypnicjerk.ai](mailto:dmcC2@hypnicjerk.ai?subject=Comment%20for%20EmacsConf%202023%20regex%3A%20Emacs%20regex%20compilation%20and%20future%20directions%20for%20expressive%20pattern%20matching)
+
+----
+Got an idea for an EmacsConf talk or session? We'd love to hear from you! Check out the [[Call for Participation|/2024/cfp]] for details.
+
+
+<!-- End of emacsconf-publish-after-page -->
diff --git a/2024/info/regex-before.md b/2024/info/regex-before.md
new file mode 100644
index 00000000..49413c04
--- /dev/null
+++ b/2024/info/regex-before.md
@@ -0,0 +1,12 @@
+<!-- Automatically generated by emacsconf-publish-before-page -->
+[[!toc ]]
+Format: 20-min talk; Q&A: IRC
+Status: Waiting for video from speaker
+
+
+
+
+
+
+# Description
+<!-- End of emacsconf-publish-before-page --> \ No newline at end of file
diff --git a/2024/info/regex-nav.md b/2024/info/regex-nav.md
new file mode 100644
index 00000000..4c8b7cd5
--- /dev/null
+++ b/2024/info/regex-nav.md
@@ -0,0 +1,7 @@
+
+<div class="talk-nav">
+Back to the [[talks]]
+Previous by track: <a href="/2024/talks/mcclim">Elisp and McCLIM</a>
+Next by track: <a href="/2024/talks/repro">Reproducibly building Emacs: “Hey your checksum is the same as mine!”</a>
+Track: <span class="sched-track Development">Development</span>
+</div>
diff --git a/2024/info/repro-after.md b/2024/info/repro-after.md
new file mode 100644
index 00000000..5b2aa0ff
--- /dev/null
+++ b/2024/info/repro-after.md
@@ -0,0 +1,10 @@
+<!-- Automatically generated by emacsconf-publish-after-page -->
+
+
+Questions or comments? Please e-mail [ajgrothe@yahoo.com](mailto:ajgrothe@yahoo.com?subject=Comment%20for%20EmacsConf%202023%20repro%3A%20Reproducibly%20building%20Emacs%3A%20%E2%80%9CHey%20your%20checksum%20is%20the%20same%20as%20mine%21%E2%80%9D)
+
+----
+Got an idea for an EmacsConf talk or session? We'd love to hear from you! Check out the [[Call for Participation|/2024/cfp]] for details.
+
+
+<!-- End of emacsconf-publish-after-page -->
diff --git a/2024/info/repro-before.md b/2024/info/repro-before.md
new file mode 100644
index 00000000..7cb3e64d
--- /dev/null
+++ b/2024/info/repro-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/2024/info/repro-nav.md b/2024/info/repro-nav.md
new file mode 100644
index 00000000..c38f5b0e
--- /dev/null
+++ b/2024/info/repro-nav.md
@@ -0,0 +1,7 @@
+
+<div class="talk-nav">
+Back to the [[talks]]
+Previous by track: <a href="/2024/talks/regex">Emacs regex compilation and future directions for expressive pattern matching</a>
+Next by track: <a href="/2024/talks/pgmacs">PGmacs: browsing and editing PostgreSQL databases from Emacs</a>
+Track: <span class="sched-track Development">Development</span>
+</div>
diff --git a/2024/info/rust-after.md b/2024/info/rust-after.md
new file mode 100644
index 00000000..b0f5b13a
--- /dev/null
+++ b/2024/info/rust-after.md
@@ -0,0 +1,10 @@
+<!-- Automatically generated by emacsconf-publish-after-page -->
+
+
+Questions or comments? Please e-mail [troy@troyhinckley.com](mailto:troy@troyhinckley.com?subject=Comment%20for%20EmacsConf%202023%20rust%3A%20An%20experimental%20Emacs%20core%20in%20Rust)
+
+----
+Got an idea for an EmacsConf talk or session? We'd love to hear from you! Check out the [[Call for Participation|/2024/cfp]] for details.
+
+
+<!-- End of emacsconf-publish-after-page -->
diff --git a/2024/info/rust-before.md b/2024/info/rust-before.md
new file mode 100644
index 00000000..7cb3e64d
--- /dev/null
+++ b/2024/info/rust-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/2024/info/rust-nav.md b/2024/info/rust-nav.md
new file mode 100644
index 00000000..e83045c9
--- /dev/null
+++ b/2024/info/rust-nav.md
@@ -0,0 +1,7 @@
+
+<div class="talk-nav">
+Back to the [[talks]]
+Previous by track: <a href="/2024/talks/gypsum">Gypsum: my clone of Emacs and ELisp written in Scheme</a>
+Next by track: <a href="/2024/talks/julia">Exploring shared philosophies in Julia and Emacs</a>
+Track: <span class="sched-track Development">Development</span>
+</div>
diff --git a/2024/info/secrets-after.md b/2024/info/secrets-after.md
new file mode 100644
index 00000000..87a818f7
--- /dev/null
+++ b/2024/info/secrets-after.md
@@ -0,0 +1,10 @@
+<!-- Automatically generated by emacsconf-publish-after-page -->
+
+
+Questions or comments? Please e-mail [pitas.axioms0c@icloud.com](mailto:pitas.axioms0c@icloud.com?subject=Comment%20for%20EmacsConf%202023%20secrets%3A%20Committing%20secrets%20with%20git%20using%20sops-mode)
+
+----
+Got an idea for an EmacsConf talk or session? We'd love to hear from you! Check out the [[Call for Participation|/2024/cfp]] for details.
+
+
+<!-- End of emacsconf-publish-after-page -->
diff --git a/2024/info/secrets-before.md b/2024/info/secrets-before.md
new file mode 100644
index 00000000..b8e44d2c
--- /dev/null
+++ b/2024/info/secrets-before.md
@@ -0,0 +1,12 @@
+<!-- Automatically generated by emacsconf-publish-before-page -->
+[[!toc ]]
+Format: 10-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/2024/info/secrets-nav.md b/2024/info/secrets-nav.md
new file mode 100644
index 00000000..376d706a
--- /dev/null
+++ b/2024/info/secrets-nav.md
@@ -0,0 +1,7 @@
+
+<div class="talk-nav">
+Back to the [[talks]]
+Previous by track: <a href="/2024/talks/p-search">p-search: a local search engine in Emacs</a>
+Next by track: <a href="/2024/talks/transducers">Transducers: finally, ergonomic data processing for Emacs!</a>
+Track: <span class="sched-track Development">Development</span>
+</div>
diff --git a/2024/info/sharing-after.md b/2024/info/sharing-after.md
new file mode 100644
index 00000000..3b5cdc03
--- /dev/null
+++ b/2024/info/sharing-after.md
@@ -0,0 +1,10 @@
+<!-- Automatically generated by emacsconf-publish-after-page -->
+
+
+Questions or comments? Please e-mail [gopardaniel@gmail.com](mailto:gopardaniel@gmail.com?subject=Comment%20for%20EmacsConf%202023%20sharing%3A%20So%20you%20want%20to%20be%20an%20Emacs-fluencer%3F)
+
+----
+Got an idea for an EmacsConf talk or session? We'd love to hear from you! Check out the [[Call for Participation|/2024/cfp]] for details.
+
+
+<!-- End of emacsconf-publish-after-page -->
diff --git a/2024/info/sharing-before.md b/2024/info/sharing-before.md
new file mode 100644
index 00000000..9939a45b
--- /dev/null
+++ b/2024/info/sharing-before.md
@@ -0,0 +1,12 @@
+<!-- Automatically generated by emacsconf-publish-before-page -->
+[[!toc ]]
+Format: 20-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/2024/info/sharing-nav.md b/2024/info/sharing-nav.md
new file mode 100644
index 00000000..5a761276
--- /dev/null
+++ b/2024/info/sharing-nav.md
@@ -0,0 +1,7 @@
+
+<div class="talk-nav">
+Back to the [[talks]]
+Previous by track: <a href="/2024/talks/project">Managing writing project metadata with org-mode</a>
+Next by track: <a href="/2024/talks/gypsum">Gypsum: my clone of Emacs and ELisp written in Scheme</a>
+Track: <span class="sched-track General">General</span>
+</div>
diff --git a/2024/info/shell-after.md b/2024/info/shell-after.md
new file mode 100644
index 00000000..63b83f47
--- /dev/null
+++ b/2024/info/shell-after.md
@@ -0,0 +1,10 @@
+<!-- Automatically generated by emacsconf-publish-after-page -->
+
+
+Questions or comments? Please e-mail [christopher@librehacker.com](mailto:christopher@librehacker.com?subject=Comment%20for%20EmacsConf%202023%20shell%3A%20Emacs%20as%20a%20shell)
+
+----
+Got an idea for an EmacsConf talk or session? We'd love to hear from you! Check out the [[Call for Participation|/2024/cfp]] for details.
+
+
+<!-- End of emacsconf-publish-after-page -->
diff --git a/2024/info/shell-before.md b/2024/info/shell-before.md
new file mode 100644
index 00000000..d151e56f
--- /dev/null
+++ b/2024/info/shell-before.md
@@ -0,0 +1,12 @@
+<!-- Automatically generated by emacsconf-publish-before-page -->
+[[!toc ]]
+Format: 40-min talk; Q&A: IRC
+Status: Waiting for video from speaker
+
+
+
+
+
+
+# Description
+<!-- End of emacsconf-publish-before-page --> \ No newline at end of file
diff --git a/2024/info/shell-nav.md b/2024/info/shell-nav.md
new file mode 100644
index 00000000..9333a948
--- /dev/null
+++ b/2024/info/shell-nav.md
@@ -0,0 +1,7 @@
+
+<div class="talk-nav">
+Back to the [[talks]]
+Previous by track: <a href="/2024/talks/water">Watering my (digital) plant with Emacs timers</a>
+Next by track: <a href="/2024/talks/students">An example of a cohesive student workflow in Emacs</a>
+Track: <span class="sched-track General">General</span>
+</div>
diff --git a/2024/info/students-after.md b/2024/info/students-after.md
new file mode 100644
index 00000000..fe9d3a85
--- /dev/null
+++ b/2024/info/students-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%20students%3A%20An%20example%20of%20a%20cohesive%20student%20workflow%20in%20Emacs)
+
+----
+Got an idea for an EmacsConf talk or session? We'd love to hear from you! Check out the [[Call for Participation|/2024/cfp]] for details.
+
+
+<!-- End of emacsconf-publish-after-page -->
diff --git a/2024/info/students-before.md b/2024/info/students-before.md
new file mode 100644
index 00000000..74428663
--- /dev/null
+++ b/2024/info/students-before.md
@@ -0,0 +1,12 @@
+<!-- Automatically generated by emacsconf-publish-before-page -->
+[[!toc ]]
+Format: 10-min talk; Q&A: IRC
+Status: Waiting for video from speaker
+
+
+
+
+
+
+# Description
+<!-- End of emacsconf-publish-before-page --> \ No newline at end of file
diff --git a/2024/info/students-nav.md b/2024/info/students-nav.md
new file mode 100644
index 00000000..c87aa6a8
--- /dev/null
+++ b/2024/info/students-nav.md
@@ -0,0 +1,7 @@
+
+<div class="talk-nav">
+Back to the [[talks]]
+Previous by track: <a href="/2024/talks/shell">Emacs as a shell</a>
+Next by track: <a href="/2024/talks/writing">Emacs Writing Studio</a>
+Track: <span class="sched-track General">General</span>
+</div>
diff --git a/2024/info/theme-after.md b/2024/info/theme-after.md
new file mode 100644
index 00000000..c062f3a6
--- /dev/null
+++ b/2024/info/theme-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%20theme%3A%20My%20journey%20of%20finding%20and%20creating%20the%20%E2%80%9Cperfect%E2%80%9D%20Emacs%20theme)
+
+----
+Got an idea for an EmacsConf talk or session? We'd love to hear from you! Check out the [[Call for Participation|/2024/cfp]] for details.
+
+
+<!-- End of emacsconf-publish-after-page -->
diff --git a/2024/info/theme-before.md b/2024/info/theme-before.md
new file mode 100644
index 00000000..b8e44d2c
--- /dev/null
+++ b/2024/info/theme-before.md
@@ -0,0 +1,12 @@
+<!-- Automatically generated by emacsconf-publish-before-page -->
+[[!toc ]]
+Format: 10-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/2024/info/theme-nav.md b/2024/info/theme-nav.md
new file mode 100644
index 00000000..7513f0c6
--- /dev/null
+++ b/2024/info/theme-nav.md
@@ -0,0 +1,7 @@
+
+<div class="talk-nav">
+Back to the [[talks]]
+Previous by track: <a href="/2024/talks/hyperdrive">New in hyperdrive.el: org-transclusion, easy installation, and more!</a>
+Next by track: <a href="/2024/talks/water">Watering my (digital) plant with Emacs timers</a>
+Track: <span class="sched-track General">General</span>
+</div>
diff --git a/2024/info/transducers-after.md b/2024/info/transducers-after.md
new file mode 100644
index 00000000..8cbe1c26
--- /dev/null
+++ b/2024/info/transducers-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%20transducers%3A%20Transducers%3A%20finally%2C%20ergonomic%20data%20processing%20for%20Emacs%21)
+
+----
+Got an idea for an EmacsConf talk or session? We'd love to hear from you! Check out the [[Call for Participation|/2024/cfp]] for details.
+
+
+<!-- End of emacsconf-publish-after-page -->
diff --git a/2024/info/transducers-before.md b/2024/info/transducers-before.md
new file mode 100644
index 00000000..9c72a577
--- /dev/null
+++ b/2024/info/transducers-before.md
@@ -0,0 +1,12 @@
+<!-- Automatically generated by emacsconf-publish-before-page -->
+[[!toc ]]
+Format: 30-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/2024/info/transducers-nav.md b/2024/info/transducers-nav.md
new file mode 100644
index 00000000..3ca91b00
--- /dev/null
+++ b/2024/info/transducers-nav.md
@@ -0,0 +1,6 @@
+
+<div class="talk-nav">
+Back to the [[talks]]
+Previous by track: <a href="/2024/talks/secrets">Committing secrets with git using sops-mode</a>
+Track: <span class="sched-track Development">Development</span>
+</div>
diff --git a/2024/info/water-after.md b/2024/info/water-after.md
new file mode 100644
index 00000000..6a908d6a
--- /dev/null
+++ b/2024/info/water-after.md
@@ -0,0 +1,10 @@
+<!-- Automatically generated by emacsconf-publish-after-page -->
+
+
+Questions or comments? Please e-mail [christopher@librehacker.com](mailto:christopher@librehacker.com?subject=Comment%20for%20EmacsConf%202023%20water%3A%20Watering%20my%20%28digital%29%20plant%20with%20Emacs%20timers)
+
+----
+Got an idea for an EmacsConf talk or session? We'd love to hear from you! Check out the [[Call for Participation|/2024/cfp]] for details.
+
+
+<!-- End of emacsconf-publish-after-page -->
diff --git a/2024/info/water-before.md b/2024/info/water-before.md
new file mode 100644
index 00000000..74428663
--- /dev/null
+++ b/2024/info/water-before.md
@@ -0,0 +1,12 @@
+<!-- Automatically generated by emacsconf-publish-before-page -->
+[[!toc ]]
+Format: 10-min talk; Q&A: IRC
+Status: Waiting for video from speaker
+
+
+
+
+
+
+# Description
+<!-- End of emacsconf-publish-before-page --> \ No newline at end of file
diff --git a/2024/info/water-nav.md b/2024/info/water-nav.md
new file mode 100644
index 00000000..44bd696b
--- /dev/null
+++ b/2024/info/water-nav.md
@@ -0,0 +1,7 @@
+
+<div class="talk-nav">
+Back to the [[talks]]
+Previous by track: <a href="/2024/talks/theme">My journey of finding and creating the “perfect” Emacs theme</a>
+Next by track: <a href="/2024/talks/shell">Emacs as a shell</a>
+Track: <span class="sched-track General">General</span>
+</div>
diff --git a/2024/info/writing-after.md b/2024/info/writing-after.md
new file mode 100644
index 00000000..e9e4236b
--- /dev/null
+++ b/2024/info/writing-after.md
@@ -0,0 +1,10 @@
+<!-- Automatically generated by emacsconf-publish-after-page -->
+
+
+Questions or comments? Please e-mail [peter@prevos.net](mailto:peter@prevos.net?subject=Comment%20for%20EmacsConf%202023%20writing%3A%20Emacs%20Writing%20Studio)
+
+----
+Got an idea for an EmacsConf talk or session? We'd love to hear from you! Check out the [[Call for Participation|/2024/cfp]] for details.
+
+
+<!-- End of emacsconf-publish-after-page -->
diff --git a/2024/info/writing-before.md b/2024/info/writing-before.md
new file mode 100644
index 00000000..4f4824ed
--- /dev/null
+++ b/2024/info/writing-before.md
@@ -0,0 +1,12 @@
+<!-- Automatically generated by emacsconf-publish-before-page -->
+[[!toc ]]
+Format: 10-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/2024/info/writing-nav.md b/2024/info/writing-nav.md
new file mode 100644
index 00000000..41a95ee2
--- /dev/null
+++ b/2024/info/writing-nav.md
@@ -0,0 +1,7 @@
+
+<div class="talk-nav">
+Back to the [[talks]]
+Previous by track: <a href="/2024/talks/students">An example of a cohesive student workflow in Emacs</a>
+Next by track: <a href="/2024/talks/links">Unlocking linked data: replacing specialized apps with an Org-based semantic wiki</a>
+Track: <span class="sched-track General">General</span>
+</div>
diff --git a/2024/organizers-notebook.md b/2024/organizers-notebook.md
index 6df520e1..269fee82 100644
--- a/2024/organizers-notebook.md
+++ b/2024/organizers-notebook.md
@@ -12,13 +12,15 @@ You might also like the [general organizers' notebook](/organizers-notebook) and
- [About this document](#about-this-doc)
- [Communications plan](#comms)
- [Good/better/best](#good-better-best)
-- [Phases](#orge09db02)
+- [Phases](#phases)
- [Draft CFP](#cfp)
+ - [Draft schedule](#draft-schedule)
+- [Support code](#org83601b3)
<a id="timeline"></a>
-# Timeline
+# TODO Timeline
<table>
@@ -33,14 +35,14 @@ You might also like the [general organizers' notebook](/organizers-notebook) and
<tbody>
<tr>
<td class="org-left">CFP</td>
-<td class="org-left"><span class="timestamp-wrapper"><span class="timestamp">[2024-06-28 Fri]</span></span></td>
+<td class="org-left"><span class="timestamp-wrapper"><span class="timestamp">[2024-06-30 Sun]</span></span></td>
<td class="org-right">&#xa0;</td>
</tr>
<tr>
<td class="org-left">CFP deadline</td>
<td class="org-left"><span class="timestamp-wrapper"><span class="timestamp">[2024-09-20 Fri]</span></span></td>
-<td class="org-right">84</td>
+<td class="org-right">82</td>
</tr>
<tr>
@@ -180,14 +182,14 @@ interests you!
</table>
-<a id="orge09db02"></a>
+<a id="phases"></a>
# Phases
<a id="cfp"></a>
-## TODO Draft CFP
+## DONE Draft CFP
#### Draft linked pages
@@ -198,10 +200,71 @@ interests you!
- [X] volunteer page
-#### TODO Check with other organizers
+#### DONE Check with other organizers
-#### TODO Post CFP in the usual places
+#### DONE Post CFP in the usual places
emacsconf-discuss, reddit.com/r/emacs, Emacs News, emacs-tangents, Mastodon, X
+
+<a id="draft-schedule"></a>
+
+## Draft schedule
+
+
+
+### Option: 2 tracks
+
+<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/2024/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/2024/talks/papers" title="Writing academic papers in Org-Roam" data-slug="papers"><title> 9:10- 9:20 Writing academic papers in Org-Roam</title><rect x="15" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="" fill="lightblue"></rect><g transform="translate(28,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">papers</text></g></a><a href="https://emacsconf.org/2024/talks/color" title="Colour your Emacs with ease" data-slug="color"><title> 9:50-10:00 Colour your Emacs with ease</title><rect x="78" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="" fill="lightblue"></rect><g transform="translate(91,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">color</text></g></a><a href="https://emacsconf.org/2024/talks/flp" title="The Free Life Planner: Empowering lives with Emacs-based AI" data-slug="flp"><title>10:30-10:50 The Free Life Planner: Empowering lives with Emacs-based AI</title><rect x="141" y="15" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="5,5,5" fill="gray"></rect><g transform="translate(170,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">flp</text></g></a><a href="https://emacsconf.org/2024/talks/hyperdrive" title="New in hyperdrive.el: org-transclusion, easy installation, and more!" data-slug="hyperdrive"><title>11:10-11:30 New in hyperdrive.el: org-transclusion, easy installation, and more!</title><rect x="203" y="15" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(232,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">hyperdrive</text></g></a><a href="https://emacsconf.org/2024/talks/emacs30" title="Emacs 30 Highlights" data-slug="emacs30"><title> 1:00- 1:20 Emacs 30 Highlights</title><rect x="376" y="15" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="gray"></rect><g transform="translate(405,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">emacs30</text></g></a><a href="https://emacsconf.org/2024/talks/theme" title="My journey of finding and creating the “perfect” Emacs theme" data-slug="theme"><title> 1:50- 2:00 My journey of finding and creating the “perfect” Emacs theme</title><rect x="454" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(467,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">theme</text></g></a><a href="https://emacsconf.org/2024/talks/water" title="Watering my (digital) plant with Emacs timers" data-slug="water"><title> 2:30- 2:40 Watering my (digital) plant with Emacs timers</title><rect x="517" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="5,5,5" fill="gray"></rect><g transform="translate(530,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">water</text></g></a><a href="https://emacsconf.org/2024/talks/shell" title="Emacs as a shell" data-slug="shell"><title> 3:00- 3:40 Emacs as a shell</title><rect x="564" y="15" opacity="0.8" width="62" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(624,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">shell</text></g></a><a href="https://emacsconf.org/2024/talks/students" title="An example of a cohesive student workflow in Emacs" data-slug="students"><title> 4:00- 4:10 An example of a cohesive student workflow in Emacs</title><rect x="658" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(671,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">students</text></g></a><a href="https://emacsconf.org/2024/talks/writing" title="Emacs Writing Studio" data-slug="writing"><title> 4:30- 4:40 Emacs Writing Studio</title><rect x="705" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(718,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">writing</text></g></a><a href="https://emacsconf.org/2024/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="59" stroke="black" stroke-dasharray="5,5,5" fill="gray"></rect><g transform="translate(765,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sat-close</text></g></a><a href="https://emacsconf.org/2024/talks/gypsum" title="Gypsum: my clone of Emacs and ELisp written in Scheme" data-slug="gypsum"><title>10:00-10:20 Gypsum: my clone of Emacs and ELisp written in Scheme</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)">gypsum</text></g></a><a href="https://emacsconf.org/2024/talks/rust" title="An experimental Emacs core in Rust" data-slug="rust"><title>10:50-11:10 An experimental Emacs core in Rust</title><rect x="172" y="75" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="gray"></rect><g transform="translate(201,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">rust</text></g></a><a href="https://emacsconf.org/2024/talks/julia" title="Exploring shared philosophies in Julia and Emacs" data-slug="julia"><title> 1:00- 1:05 Exploring shared philosophies in Julia and Emacs</title><rect x="376" y="75" opacity="0.8" width="7" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(381,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">julia</text></g></a><a href="https://emacsconf.org/2024/talks/guile" title="Beguiling Emacs: Guile-Emacs relaunched!" data-slug="guile"><title> 1:35- 1:55 Beguiling Emacs: Guile-Emacs relaunched!</title><rect x="431" y="75" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(460,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">guile</text></g></a><a href="https://emacsconf.org/2024/talks/mcclim" title="Elisp and McCLIM" data-slug="mcclim"><title> 2:15- 3:15 Elisp and McCLIM</title><rect x="494" y="75" opacity="0.8" width="94" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(586,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">mcclim</text></g></a><a href="https://emacsconf.org/2024/talks/regex" title="Emacs regex compilation and future directions for expressive pattern matching" data-slug="regex"><title> 3:45- 4:05 Emacs regex compilation and future directions for expressive pattern matching</title><rect x="635" y="75" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="5,5,5" fill="lightblue"></rect><g transform="translate(664,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">regex</text></g></a><a href="https://emacsconf.org/2024/talks/repro" title="Reproducibly building Emacs: “Hey your checksum is the same as mine!”" data-slug="repro"><title> 4:25- 4:45 Reproducibly building Emacs: “Hey your checksum is the same as mine!”</title><rect x="698" y="75" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="gray"></rect><g transform="translate(727,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">repro</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/2024/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/2024/talks/links" title="Unlocking linked data: replacing specialized apps with an Org-based semantic wiki" data-slug="links"><title> 9:10- 9:20 Unlocking linked data: replacing specialized apps with an Org-based semantic wiki</title><rect x="15" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="5,5,5" fill="lightblue"></rect><g transform="translate(28,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">links</text></g></a><a href="https://emacsconf.org/2024/talks/org-teach" title="org-teach: a minor mode for writing course materials in Emacs" data-slug="org-teach"><title> 9:40-10:00 org-teach: a minor mode for writing course materials in Emacs</title><rect x="62" y="15" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="gray"></rect><g transform="translate(91,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">org-teach</text></g></a><a href="https://emacsconf.org/2024/talks/hyperbole" title="Fun things with GNU Hyperbole" data-slug="hyperbole"><title>10:20-10:30 Fun things with GNU Hyperbole</title><rect x="125" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="" fill="lightblue"></rect><g transform="translate(138,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">hyperbole</text></g></a><a href="https://emacsconf.org/2024/talks/hywiki" title="HyWiki: Fast, hyperlinked note-taking with no markup required" data-slug="hywiki"><title>10:50-11:10 HyWiki: Fast, hyperlinked note-taking with no markup required</title><rect x="172" y="15" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(201,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">hywiki</text></g></a><a href="https://emacsconf.org/2024/talks/language" title="Immersive language learning with Emacs" data-slug="language"><title>11:30-11:40 Immersive language learning with Emacs</title><rect x="235" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="5,5,5" fill="lightblue"></rect><g transform="translate(248,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">language</text></g></a><a href="https://emacsconf.org/2024/talks/literate" title="Literate programming for the 21st Century" data-slug="literate"><title> 1:00- 1:20 Literate programming for the 21st Century</title><rect x="376" y="15" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(405,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">literate</text></g></a><a href="https://emacsconf.org/2024/talks/casual" title="Re-imagining the Emacs user experience with Casual Suite" data-slug="casual"><title> 1:50- 2:10 Re-imagining the Emacs user experience with Casual Suite</title><rect x="454" y="15" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(483,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">casual</text></g></a><a href="https://emacsconf.org/2024/talks/learning" title="Survival of the skillest: Thriving in the learning jungle" data-slug="learning"><title> 2:40- 3:00 Survival of the skillest: Thriving in the learning jungle</title><rect x="533" y="15" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(562,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">learning</text></g></a><a href="https://emacsconf.org/2024/talks/project" title="Managing writing project metadata with org-mode" data-slug="project"><title> 3:20- 3:40 Managing writing project metadata with org-mode</title><rect x="596" y="15" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="gray"></rect><g transform="translate(625,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">project</text></g></a><a href="https://emacsconf.org/2024/talks/sharing" title="So you want to be an Emacs-fluencer?" data-slug="sharing"><title> 4:10- 4:30 So you want to be an Emacs-fluencer?</title><rect x="674" y="15" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(703,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sharing</text></g></a><a href="https://emacsconf.org/2024/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="59" stroke="black" stroke-dasharray="5,5,5" fill="gray"></rect><g transform="translate(750,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sun-close</text></g></a><a href="https://emacsconf.org/2024/talks/pgmacs" title="PGmacs: browsing and editing PostgreSQL databases from Emacs" data-slug="pgmacs"><title>10:00-10:10 PGmacs: browsing and editing PostgreSQL databases from Emacs</title><rect x="94" y="75" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="" fill="lightblue"></rect><g transform="translate(107,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">pgmacs</text></g></a><a href="https://emacsconf.org/2024/talks/graph" title="Graph mode: a major mode to create, edit and display discrete element graphs" data-slug="graph"><title>10:40-11:00 Graph mode: a major mode to create, edit and display discrete element graphs</title><rect x="156" y="75" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="gray"></rect><g transform="translate(185,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">graph</text></g></a><a href="https://emacsconf.org/2024/talks/blee" title="About Blee: towards an integrated Emacs environment for enveloping our own autonomy directed digital ecosystem" data-slug="blee"><title> 1:00- 1:20 About Blee: towards an integrated Emacs environment for enveloping our own autonomy directed digital ecosystem</title><rect x="376" y="75" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="gray"></rect><g transform="translate(405,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">blee</text></g></a><a href="https://emacsconf.org/2024/talks/p-search" title="p-search: a local search engine in Emacs" data-slug="p-search"><title> 1:50- 2:10 p-search: a local search engine in Emacs</title><rect x="454" y="75" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="gray"></rect><g transform="translate(483,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">p-search</text></g></a><a href="https://emacsconf.org/2024/talks/secrets" title="Committing secrets with git using sops-mode" data-slug="secrets"><title> 2:40- 2:50 Committing secrets with git using sops-mode</title><rect x="533" y="75" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(546,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">secrets</text></g></a><a href="https://emacsconf.org/2024/talks/transducers" title="Transducers: finally, ergonomic data processing for Emacs!" data-slug="transducers"><title> 4:00- 4:30 Transducers: finally, ergonomic data processing for Emacs!</title><rect x="658" y="75" opacity="0.8" width="47" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(703,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">transducers</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>
+
+Coloring by availability:
+
+- light blue: constraint is <= a time
+- peach: constraint is >= a time
+
+
+### Option: 1.5 tracks
+
+<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/2024/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/2024/talks/papers" title="Writing academic papers in Org-Roam" data-slug="papers"><title> 9:10- 9:20 Writing academic papers in Org-Roam</title><rect x="15" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="" fill="lightblue"></rect><g transform="translate(28,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">papers</text></g></a><a href="https://emacsconf.org/2024/talks/links" title="Unlocking linked data: replacing specialized apps with an Org-based semantic wiki" data-slug="links"><title> 9:40- 9:50 Unlocking linked data: replacing specialized apps with an Org-based semantic wiki</title><rect x="62" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="5,5,5" fill="lightblue"></rect><g transform="translate(75,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">links</text></g></a><a href="https://emacsconf.org/2024/talks/org-teach" title="org-teach: a minor mode for writing course materials in Emacs" data-slug="org-teach"><title>10:00-10:20 org-teach: a minor mode for writing course materials in Emacs</title><rect x="94" y="15" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="gray"></rect><g transform="translate(123,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">org-teach</text></g></a><a href="https://emacsconf.org/2024/talks/language" title="Immersive language learning with Emacs" data-slug="language"><title>10:40-10:50 Immersive language learning with Emacs</title><rect x="156" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="5,5,5" fill="lightblue"></rect><g transform="translate(169,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">language</text></g></a><a href="https://emacsconf.org/2024/talks/hyperdrive" title="New in hyperdrive.el: org-transclusion, easy installation, and more!" data-slug="hyperdrive"><title>11:00-11:20 New in hyperdrive.el: org-transclusion, easy installation, and more!</title><rect x="188" y="15" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(217,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">hyperdrive</text></g></a><a href="https://emacsconf.org/2024/talks/color" title="Colour your Emacs with ease" data-slug="color"><title>11:40-11:50 Colour your Emacs with ease</title><rect x="250" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="" fill="lightblue"></rect><g transform="translate(263,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">color</text></g></a><a href="https://emacsconf.org/2024/talks/emacs30" title="Emacs 30 Highlights" data-slug="emacs30"><title> 1:00- 1:20 Emacs 30 Highlights</title><rect x="376" y="15" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="gray"></rect><g transform="translate(405,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">emacs30</text></g></a><a href="https://emacsconf.org/2024/talks/water" title="Watering my (digital) plant with Emacs timers" data-slug="water"><title> 1:40- 1:50 Watering my (digital) plant with Emacs timers</title><rect x="439" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="5,5,5" fill="gray"></rect><g transform="translate(452,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">water</text></g></a><a href="https://emacsconf.org/2024/talks/shell" title="Emacs as a shell" data-slug="shell"><title> 2:00- 2:40 Emacs as a shell</title><rect x="470" y="15" opacity="0.8" width="62" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(530,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">shell</text></g></a><a href="https://emacsconf.org/2024/talks/theme" title="My journey of finding and creating the “perfect” Emacs theme" data-slug="theme"><title> 2:50- 3:00 My journey of finding and creating the “perfect” Emacs theme</title><rect x="549" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(562,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">theme</text></g></a><a href="https://emacsconf.org/2024/talks/flp" title="The Free Life Planner: Empowering lives with Emacs-based AI" data-slug="flp"><title> 3:20- 3:40 The Free Life Planner: Empowering lives with Emacs-based AI</title><rect x="596" y="15" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="5,5,5" fill="gray"></rect><g transform="translate(625,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">flp</text></g></a><a href="https://emacsconf.org/2024/talks/writing" title="Emacs Writing Studio" data-slug="writing"><title> 3:50- 4:00 Emacs Writing Studio</title><rect x="643" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(656,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">writing</text></g></a><a href="https://emacsconf.org/2024/talks/sat-close" title="Saturday closing remarks" data-slug="sat-close"><title> 4:50- 5:00 Saturday closing remarks</title><rect x="737" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="5,5,5" fill="gray"></rect><g transform="translate(750,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sat-close</text></g></a><a href="https://emacsconf.org/2024/talks/gypsum" title="Gypsum: my clone of Emacs and ELisp written in Scheme" data-slug="gypsum"><title>10:00-10:20 Gypsum: my clone of Emacs and ELisp written in Scheme</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)">gypsum</text></g></a><a href="https://emacsconf.org/2024/talks/rust" title="An experimental Emacs core in Rust" data-slug="rust"><title>10:40-11:00 An experimental Emacs core in Rust</title><rect x="156" y="75" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="gray"></rect><g transform="translate(185,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">rust</text></g></a><a href="https://emacsconf.org/2024/talks/graph" title="Graph mode: a major mode to create, edit and display discrete element graphs" data-slug="graph"><title>11:20-11:40 Graph mode: a major mode to create, edit and display discrete element graphs</title><rect x="219" y="75" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="gray"></rect><g transform="translate(248,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">graph</text></g></a><a href="https://emacsconf.org/2024/talks/julia" title="Exploring shared philosophies in Julia and Emacs" data-slug="julia"><title> 1:00- 1:05 Exploring shared philosophies in Julia and Emacs</title><rect x="376" y="75" opacity="0.8" width="7" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(381,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">julia</text></g></a><a href="https://emacsconf.org/2024/talks/guile" title="Beguiling Emacs: Guile-Emacs relaunched!" data-slug="guile"><title> 1:25- 1:45 Beguiling Emacs: Guile-Emacs relaunched!</title><rect x="415" y="75" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(444,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">guile</text></g></a><a href="https://emacsconf.org/2024/talks/regex" title="Emacs regex compilation and future directions for expressive pattern matching" data-slug="regex"><title> 1:55- 2:15 Emacs regex compilation and future directions for expressive pattern matching</title><rect x="462" y="75" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="5,5,5" fill="lightblue"></rect><g transform="translate(491,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">regex</text></g></a><a href="https://emacsconf.org/2024/talks/mcclim" title="Elisp and McCLIM" data-slug="mcclim"><title> 2:25- 3:25 Elisp and McCLIM</title><rect x="509" y="75" opacity="0.8" width="94" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(601,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">mcclim</text></g></a><a href="https://emacsconf.org/2024/talks/secrets" title="Committing secrets with git using sops-mode" data-slug="secrets"><title> 3:45- 3:55 Committing secrets with git using sops-mode</title><rect x="635" y="75" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(648,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">secrets</text></g></a><a href="https://emacsconf.org/2024/talks/repro" title="Reproducibly building Emacs: “Hey your checksum is the same as mine!”" data-slug="repro"><title> 4:15- 4:35 Reproducibly building Emacs: “Hey your checksum is the same as mine!”</title><rect x="682" y="75" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="gray"></rect><g transform="translate(711,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">repro</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/2024/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/2024/talks/pgmacs" title="PGmacs: browsing and editing PostgreSQL databases from Emacs" data-slug="pgmacs"><title> 9:10- 9:20 PGmacs: browsing and editing PostgreSQL databases from Emacs</title><rect x="15" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="" fill="lightblue"></rect><g transform="translate(28,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">pgmacs</text></g></a><a href="https://emacsconf.org/2024/talks/p-search" title="p-search: a local search engine in Emacs" data-slug="p-search"><title> 9:40-10:00 p-search: a local search engine in Emacs</title><rect x="62" y="15" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="gray"></rect><g transform="translate(91,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">p-search</text></g></a><a href="https://emacsconf.org/2024/talks/hyperbole" title="Fun things with GNU Hyperbole" data-slug="hyperbole"><title>10:20-10:30 Fun things with GNU Hyperbole</title><rect x="125" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="" fill="lightblue"></rect><g transform="translate(138,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">hyperbole</text></g></a><a href="https://emacsconf.org/2024/talks/hywiki" title="HyWiki: Fast, hyperlinked note-taking with no markup required" data-slug="hywiki"><title>10:50-11:10 HyWiki: Fast, hyperlinked note-taking with no markup required</title><rect x="172" y="15" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(201,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">hywiki</text></g></a><a href="https://emacsconf.org/2024/talks/project" title="Managing writing project metadata with org-mode" data-slug="project"><title>11:30-11:50 Managing writing project metadata with org-mode</title><rect x="235" y="15" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="gray"></rect><g transform="translate(264,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">project</text></g></a><a href="https://emacsconf.org/2024/talks/blee" title="About Blee: towards an integrated Emacs environment for enveloping our own autonomy directed digital ecosystem" data-slug="blee"><title>12:10-12:30 About Blee: towards an integrated Emacs environment for enveloping our own autonomy directed digital ecosystem</title><rect x="298" y="15" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="gray"></rect><g transform="translate(327,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">blee</text></g></a><a href="https://emacsconf.org/2024/talks/casual" title="Re-imagining the Emacs user experience with Casual Suite" data-slug="casual"><title> 1:00- 1:20 Re-imagining the Emacs user experience with Casual Suite</title><rect x="376" y="15" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(405,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">casual</text></g></a><a href="https://emacsconf.org/2024/talks/learning" title="Survival of the skillest: Thriving in the learning jungle" data-slug="learning"><title> 1:40- 2:00 Survival of the skillest: Thriving in the learning jungle</title><rect x="439" y="15" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(468,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">learning</text></g></a><a href="https://emacsconf.org/2024/talks/sharing" title="So you want to be an Emacs-fluencer?" data-slug="sharing"><title> 2:10- 2:30 So you want to be an Emacs-fluencer?</title><rect x="486" y="15" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(515,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sharing</text></g></a><a href="https://emacsconf.org/2024/talks/literate" title="Literate programming for the 21st Century" data-slug="literate"><title> 2:40- 3:00 Literate programming for the 21st Century</title><rect x="533" y="15" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(562,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">literate</text></g></a><a href="https://emacsconf.org/2024/talks/students" title="An example of a cohesive student workflow in Emacs" data-slug="students"><title> 3:20- 3:30 An example of a cohesive student workflow in Emacs</title><rect x="596" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(609,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">students</text></g></a><a href="https://emacsconf.org/2024/talks/transducers" title="Transducers: finally, ergonomic data processing for Emacs!" data-slug="transducers"><title> 4:00- 4:30 Transducers: finally, ergonomic data processing for Emacs!</title><rect x="658" y="15" opacity="0.8" width="47" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(703,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">transducers</text></g></a><a href="https://emacsconf.org/2024/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="59" stroke="black" stroke-dasharray="5,5,5" fill="gray"></rect><g transform="translate(750,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>
+
+Coloring by availability:
+
+- light blue: constraint is <= a time
+- peach: constraint is >= a time
+
+
+<a id="org83601b3"></a>
+
+# Support code
+
+ (defun my-ox-link-path (link _ info)
+ (let* ((raw-path (org-element-property :path link)))
+ (setq raw-path
+ (org-export-file-uri
+ (org-publish-file-relative-name raw-path info)))
+ ;; Possibly append `:html-link-home' to relative file
+ ;; name.
+ (let ((home (and (plist-get info :html-link-home)
+ (org-trim (plist-get info :html-link-home)))))
+ (when (and home
+ (plist-get info :html-link-use-abs-url)
+ (not (file-name-absolute-p raw-path)))
+ (setq raw-path (concat (file-name-as-directory home) raw-path))))
+ raw-path))
+
+ (defun my-org-md-link (link desc info)
+ (if (string= (org-element-property :type link) "file")
+ (let ((path (my-ox-link-path link desc info)))
+ (if (string= (file-name-extension path) "svg")
+ (with-temp-buffer
+ (insert-file-contents-literally path)
+ (buffer-string))
+ (org-md-link link desc info)))
+ (org-md-link link desc info)))
+
+ (with-eval-after-load 'ox-md
+ (setf
+ (alist-get 'link (org-export-backend-transcoders (org-export-get-backend 'md)))
+ 'my-org-md-link))
+
diff --git a/2024/organizers-notebook/index.org b/2024/organizers-notebook/index.org
index a8ee386a..1c70ff57 100644
--- a/2024/organizers-notebook/index.org
+++ b/2024/organizers-notebook/index.org
@@ -16,6 +16,8 @@ This file is automatically exported from [/2024/organizers-notebook/index.org](/
You might also like the [general organizers' notebook](/organizers-notebook) and [the organizers' notebook from 2023](/2023/organizers-notebook).
#+end_export
+
+
#+NAME: list-headings
#+begin_src emacs-lisp :results value replace :exports results :eval never-export :var heading="Help wanted" :var match="helpwanted"
(emacsconf-surround
@@ -52,14 +54,17 @@ You might also like the [general organizers' notebook](/organizers-notebook) and
#+TOC: headlines 2
+* COMMENT Shortcuts
-* Timeline
+[[file:~/proj/emacsconf/wiki/organizers-notebook/index.org][Common notebook]]
+
+* TODO Timeline
:PROPERTIES:
:CUSTOM_ID: timeline
:END:
-| CFP | [2024-06-28 Fri] | |
-| CFP deadline | [2024-09-20 Fri] | 84 |
+| CFP | [2024-06-30 Sun] | |
+| CFP deadline | [2024-09-20 Fri] | 82 |
| Speaker notifications | [2024-09-27 Fri] | |
| *Publish schedule* | [2024-10-25 Fri] | |
| Video submission deadline | [2024-11-08 Fri] | 49 |
@@ -125,7 +130,8 @@ interests you!
:PROPERTIES:
:CUSTOM_ID: phases
:END:
-** TODO Draft CFP
+** DONE Draft CFP
+CLOSED: [2024-09-17 Tue 16:45]
:PROPERTIES:
:CUSTOM_ID: cfp
:END:
@@ -141,5 +147,240 @@ CLOSED: [2024-06-11 Tue 19:21] DEADLINE: <2024-06-14 Fri>
:PROPERTIES:
:CREATED: [024-06-03 Mon 10:1]
:END:
-**** TODO Post CFP in the usual places
+**** DONE Post CFP in the usual places
+CLOSED: [2024-09-17 Tue 16:45]
emacsconf-discuss, reddit.com/r/emacs, Emacs News, emacs-tangents, Mastodon, X
+** Draft schedule
+:PROPERTIES:
+:CUSTOM_ID: draft-schedule
+:END:
+
+#+NAME: schedule
+
+*** Option: 2 tracks
+:PROPERTIES:
+:CUSTOM_ID: sched-2-tracks
+:END:
+#+begin_src emacs-lisp :results value replace :exports none :eval never-export :var filename="schedule-2-tracks.svg"
+(require 'emacsconf)
+(require 'emacsconf-schedule)
+(setq emacsconf-schedule-tracks
+ '((:label "Saturday"
+ :start "2024-12-07 9:00"
+ :end "2024-12-07 18:00"
+ :tracks ("General" "Development"))
+ (:label "Sunday"
+ :start "2024-12-08 9:00"
+ :end "2024-12-08 18:00"
+ :tracks ("General" "Development"))))
+(let ((emacsconf-schedule-default-buffer-minutes 20)
+ (emacsconf-schedule-default-buffer-minutes-for-live-q-and-a 30)
+ (emacsconf-schedule-break-time 10)
+ (emacsconf-schedule-lunch-time 60)
+ (emacsconf-use-absolute-url t)
+ (emacsconf-schedule-strategies '(emacsconf-schedule-allocate-buffer-time
+ emacsconf-schedule-copy-previous-track))
+ (emacsconf-schedule-validation-functions
+ '(emacsconf-schedule-validate-time-constraints
+ ;; emacsconf-schedule-validate-live-q-and-a-sessions-are-staggered
+ emacsconf-schedule-validate-all-talks-present
+ emacsconf-schedule-validate-no-duplicates)))
+ (setq emacsconf-schedule-plan
+ '(("GEN Saturday, Dec 7" :start "2024-12-07 09:00" :set-track "General")
+ sat-open
+ papers ; <= 10:00
+ color ; <= 12:00 sat pref
+ flp ; any, Sat pref
+ hyperdrive ; >= 11:00 Sat
+ (lunch :start "12:00")
+ emacs30 ; probably any
+ theme ; >= 12:30
+ water ; >= 13:00 Sat, same speaker as shell >= 10:00 EST Sat and <= 16:00 EST Sat
+ shell ; >= 13:00 Sat >= 10:00 EST Sat and <= 16:00 EST Sat
+ students
+ writing ; >= 15:30 Sat
+ sat-close
+ ("DEV Saturday, Dec 7" :start "2024-12-07 10:00" :set-track "Development")
+ gypsum ; <= 11:00
+ rust ; Dec 7
+ (lunch :start "12:00")
+ julia ; >= 13:00
+ guile ; >= 12:00
+ (mcclim :time 60) ; >= 14:00
+ regex ; <= 12:00 sun or >= 12:00 sat
+ repro ; any
+ ("GEN Sunday, Dec 8" :start "2024-12-08 09:00" :set-track "General")
+ sun-open
+ links ; <= 10:30
+ (org-teach :buffer 20) ; any
+ (hyperbole :buffer 20)
+ (hywiki :buffer 20) ; >= 10:00
+ language ; <= 12:00
+ (lunch :start "12:00")
+ literate ; >= 13:00
+ casual ; >= 13:00
+ learning ; any
+ project ; any
+ sharing ; any
+ (sun-close :start "16:50")
+ ("DEV Sunday, Dec 8" :start "2024-12-08 10:00" :set-track "Development")
+ pgmacs ; <= 15:00
+ graph ; <= 12:00
+ (lunch :start "12:00")
+ blee ; any
+ p-search ; any
+ secrets ; >= 13:00
+ (transducers :start "16:00") ; >= 16:00 sun
+ ))
+ (setq emacsconf-schedule-draft (emacsconf-schedule-prepare (emacsconf-schedule-inflate-sexp emacsconf-schedule-plan)))
+ (prog1 (string-join (emacsconf-schedule-validate emacsconf-schedule-draft) "\n")
+ (let ((emacsconf-schedule-svg-modify-functions
+ '(emacsconf-schedule-svg-color-by-availability
+ ;emacsconf-schedule-svg-color-by-status
+ )))
+ (with-temp-file (expand-file-name filename (file-name-directory emacsconf-org-file))
+ (svg-print (emacsconf-schedule-svg 800 300 emacsconf-schedule-draft)))
+ (with-temp-file (expand-file-name filename (expand-file-name "organizers-notebook" (expand-file-name emacsconf-year emacsconf-directory)))
+ (svg-print (emacsconf-schedule-svg 800 300 emacsconf-schedule-draft))))
+ (clear-image-cache)))
+#+end_src
+
+#+RESULTS:
+:results:
+:end:
+
+[[file:schedule-2-tracks.svg]]
+
+Coloring by availability:
+- light blue: constraint is <= a time
+- peach: constraint is >= a time
+
+*** Option: 1.5 tracks
+:PROPERTIES:
+:CUSTOM_ID: sched-1.5-tracks
+:END:
+
+#+begin_src emacs-lisp :results value replace :exports none :eval never-export :var filename="schedule-1.5-tracks.svg"
+(require 'emacsconf)
+(require 'emacsconf-schedule)
+(setq emacsconf-schedule-tracks
+ '((:label "Saturday"
+ :start "2024-12-07 9:00"
+ :end "2024-12-07 18:00"
+ :tracks ("General" "Development"))
+ (:label "Sunday"
+ :start "2024-12-08 9:00"
+ :end "2024-12-08 18:00"
+ :tracks ("General" "Development"))))
+(let ((emacsconf-schedule-default-buffer-minutes 10)
+ (emacsconf-schedule-default-buffer-minutes-for-live-q-and-a 20)
+ (emacsconf-schedule-break-time 10)
+ (emacsconf-schedule-lunch-time 60)
+ (emacsconf-use-absolute-url t)
+ (emacsconf-schedule-strategies '(emacsconf-schedule-allocate-buffer-time
+ emacsconf-schedule-copy-previous-track))
+ (emacsconf-schedule-validation-functions
+ '(emacsconf-schedule-validate-time-constraints
+ ;; emacsconf-schedule-validate-live-q-and-a-sessions-are-staggered
+ emacsconf-schedule-validate-all-talks-present
+ emacsconf-schedule-validate-no-duplicates)))
+ (setq emacsconf-schedule-plan
+ '(("GEN Saturday, Dec 7" :start "2024-12-07 09:00" :set-track "General")
+ sat-open
+ papers ; <= 10:00
+ links ; <= 10:30
+ org-teach ; any
+ language ; <= 12:00
+ hyperdrive ; >= 11:00 Sat
+ color ; <= 12:00 sat pref
+ (lunch :start "12:00")
+ emacs30 ; probably any
+ water ; >= 13:00 Sat, same speaker as shell
+ shell ; >= 13:00 Sat
+ theme ; >= 12:30
+ flp ; any, Sat pref
+ writing ; >= 15:30 Sat
+ (sat-close :start "16:50")
+ ("DEV Saturday, Dec 7" :start "2024-12-07 10:00" :set-track "Development")
+ gypsum ; <= 11:00
+ rust ; Dec 7
+ graph ; <= 12:00
+ (lunch :start "12:00")
+ julia ; >= 13:00
+ guile ; >= 12:00
+ regex ; <= 12:00 sun or >= 12:00 sat
+ (mcclim :time 60) ; >= 14:00
+ secrets ; >= 13:00
+ repro ; any
+ ("GEN Sunday, Dec 8" :start "2024-12-08 09:00" :set-track "General")
+ sun-open
+ pgmacs ; <= 15:00
+ p-search ; any
+ hyperbole
+ hywiki ; >= 10:00
+ project ; any
+ blee ; any
+ (lunch :start "12:00")
+ casual ; >= 13:00
+ learning ; >= 13:00
+ sharing ; any
+ literate ; >= 13:00
+ students
+ (transducers :start "16:00") ; >= 16:00 sun
+ (sun-close :start "16:50")
+ ))
+ (setq emacsconf-schedule-draft (emacsconf-schedule-prepare (emacsconf-schedule-inflate-sexp emacsconf-schedule-plan)))
+ (prog1 (string-join (emacsconf-schedule-validate emacsconf-schedule-draft) "\n")
+ (let ((emacsconf-schedule-svg-modify-functions
+ '(emacsconf-schedule-svg-color-by-availability
+ ;emacsconf-schedule-svg-color-by-status
+ )))
+ (with-temp-file (expand-file-name filename (file-name-directory emacsconf-org-file))
+ (svg-print (emacsconf-schedule-svg 800 300 emacsconf-schedule-draft)))
+ (with-temp-file (expand-file-name filename (expand-file-name "organizers-notebook" (expand-file-name emacsconf-year emacsconf-directory)))
+ (svg-print (emacsconf-schedule-svg 800 300 emacsconf-schedule-draft))))
+ (clear-image-cache)))
+#+end_src
+
+#+RESULTS:
+:results:
+:end:
+
+[[file:schedule-1.5-tracks.svg]]
+
+Coloring by availability:
+- light blue: constraint is <= a time
+- peach: constraint is >= a time
+* Support code
+
+#+begin_src emacs-lisp
+(defun my-ox-link-path (link _ info)
+ (let* ((raw-path (org-element-property :path link)))
+ (setq raw-path
+ (org-export-file-uri
+ (org-publish-file-relative-name raw-path info)))
+ ;; Possibly append `:html-link-home' to relative file
+ ;; name.
+ (let ((home (and (plist-get info :html-link-home)
+ (org-trim (plist-get info :html-link-home)))))
+ (when (and home
+ (plist-get info :html-link-use-abs-url)
+ (not (file-name-absolute-p raw-path)))
+ (setq raw-path (concat (file-name-as-directory home) raw-path))))
+ raw-path))
+
+(defun my-org-md-link (link desc info)
+ (if (string= (org-element-property :type link) "file")
+ (let ((path (my-ox-link-path link desc info)))
+ (if (string= (file-name-extension path) "svg")
+ (with-temp-buffer
+ (insert-file-contents-literally path)
+ (buffer-string))
+ (org-md-link link desc info)))
+ (org-md-link link desc info)))
+
+(with-eval-after-load 'ox-md
+ (setf
+ (alist-get 'link (org-export-backend-transcoders (org-export-get-backend 'md)))
+ 'my-org-md-link))
+#+end_src
diff --git a/2024/organizers-notebook/schedule-1.5-tracks.svg b/2024/organizers-notebook/schedule-1.5-tracks.svg
new file mode 100644
index 00000000..7a07d55e
--- /dev/null
+++ b/2024/organizers-notebook/schedule-1.5-tracks.svg
@@ -0,0 +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/2024/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/2024/talks/papers" title="Writing academic papers in Org-Roam" data-slug="papers"><title> 9:10- 9:20 Writing academic papers in Org-Roam</title><rect x="15" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="" fill="lightblue"></rect><g transform="translate(28,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">papers</text></g></a><a href="https://emacsconf.org/2024/talks/links" title="Unlocking linked data: replacing specialized apps with an Org-based semantic wiki" data-slug="links"><title> 9:40- 9:50 Unlocking linked data: replacing specialized apps with an Org-based semantic wiki</title><rect x="62" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="5,5,5" fill="lightblue"></rect><g transform="translate(75,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">links</text></g></a><a href="https://emacsconf.org/2024/talks/org-teach" title="org-teach: a minor mode for writing course materials in Emacs" data-slug="org-teach"><title>10:00-10:20 org-teach: a minor mode for writing course materials in Emacs</title><rect x="94" y="15" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="gray"></rect><g transform="translate(123,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">org-teach</text></g></a><a href="https://emacsconf.org/2024/talks/language" title="Immersive language learning with Emacs" data-slug="language"><title>10:40-10:50 Immersive language learning with Emacs</title><rect x="156" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="5,5,5" fill="lightblue"></rect><g transform="translate(169,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">language</text></g></a><a href="https://emacsconf.org/2024/talks/hyperdrive" title="New in hyperdrive.el: org-transclusion, easy installation, and more!" data-slug="hyperdrive"><title>11:00-11:20 New in hyperdrive.el: org-transclusion, easy installation, and more!</title><rect x="188" y="15" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(217,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">hyperdrive</text></g></a><a href="https://emacsconf.org/2024/talks/color" title="Colour your Emacs with ease" data-slug="color"><title>11:40-11:50 Colour your Emacs with ease</title><rect x="250" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="" fill="lightblue"></rect><g transform="translate(263,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">color</text></g></a><a href="https://emacsconf.org/2024/talks/emacs30" title="Emacs 30 Highlights" data-slug="emacs30"><title> 1:00- 1:20 Emacs 30 Highlights</title><rect x="376" y="15" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="gray"></rect><g transform="translate(405,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">emacs30</text></g></a><a href="https://emacsconf.org/2024/talks/water" title="Watering my (digital) plant with Emacs timers" data-slug="water"><title> 1:40- 1:50 Watering my (digital) plant with Emacs timers</title><rect x="439" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="5,5,5" fill="gray"></rect><g transform="translate(452,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">water</text></g></a><a href="https://emacsconf.org/2024/talks/shell" title="Emacs as a shell" data-slug="shell"><title> 2:00- 2:40 Emacs as a shell</title><rect x="470" y="15" opacity="0.8" width="62" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(530,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">shell</text></g></a><a href="https://emacsconf.org/2024/talks/theme" title="My journey of finding and creating the “perfect” Emacs theme" data-slug="theme"><title> 2:50- 3:00 My journey of finding and creating the “perfect” Emacs theme</title><rect x="549" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(562,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">theme</text></g></a><a href="https://emacsconf.org/2024/talks/flp" title="The Free Life Planner: Empowering lives with Emacs-based AI" data-slug="flp"><title> 3:20- 3:40 The Free Life Planner: Empowering lives with Emacs-based AI</title><rect x="596" y="15" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="5,5,5" fill="gray"></rect><g transform="translate(625,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">flp</text></g></a><a href="https://emacsconf.org/2024/talks/writing" title="Emacs Writing Studio" data-slug="writing"><title> 3:50- 4:00 Emacs Writing Studio</title><rect x="643" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(656,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">writing</text></g></a><a href="https://emacsconf.org/2024/talks/sat-close" title="Saturday closing remarks" data-slug="sat-close"><title> 4:50- 5:00 Saturday closing remarks</title><rect x="737" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="5,5,5" fill="gray"></rect><g transform="translate(750,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sat-close</text></g></a><a href="https://emacsconf.org/2024/talks/gypsum" title="Gypsum: my clone of Emacs and ELisp written in Scheme" data-slug="gypsum"><title>10:00-10:20 Gypsum: my clone of Emacs and ELisp written in Scheme</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)">gypsum</text></g></a><a href="https://emacsconf.org/2024/talks/rust" title="An experimental Emacs core in Rust" data-slug="rust"><title>10:40-11:00 An experimental Emacs core in Rust</title><rect x="156" y="75" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="gray"></rect><g transform="translate(185,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">rust</text></g></a><a href="https://emacsconf.org/2024/talks/graph" title="Graph mode: a major mode to create, edit and display discrete element graphs" data-slug="graph"><title>11:20-11:40 Graph mode: a major mode to create, edit and display discrete element graphs</title><rect x="219" y="75" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="gray"></rect><g transform="translate(248,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">graph</text></g></a><a href="https://emacsconf.org/2024/talks/julia" title="Exploring shared philosophies in Julia and Emacs" data-slug="julia"><title> 1:00- 1:05 Exploring shared philosophies in Julia and Emacs</title><rect x="376" y="75" opacity="0.8" width="7" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(381,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">julia</text></g></a><a href="https://emacsconf.org/2024/talks/guile" title="Beguiling Emacs: Guile-Emacs relaunched!" data-slug="guile"><title> 1:25- 1:45 Beguiling Emacs: Guile-Emacs relaunched!</title><rect x="415" y="75" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(444,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">guile</text></g></a><a href="https://emacsconf.org/2024/talks/regex" title="Emacs regex compilation and future directions for expressive pattern matching" data-slug="regex"><title> 1:55- 2:15 Emacs regex compilation and future directions for expressive pattern matching</title><rect x="462" y="75" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="5,5,5" fill="lightblue"></rect><g transform="translate(491,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">regex</text></g></a><a href="https://emacsconf.org/2024/talks/mcclim" title="Elisp and McCLIM" data-slug="mcclim"><title> 2:25- 3:25 Elisp and McCLIM</title><rect x="509" y="75" opacity="0.8" width="94" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(601,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">mcclim</text></g></a><a href="https://emacsconf.org/2024/talks/secrets" title="Committing secrets with git using sops-mode" data-slug="secrets"><title> 3:45- 3:55 Committing secrets with git using sops-mode</title><rect x="635" y="75" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(648,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">secrets</text></g></a><a href="https://emacsconf.org/2024/talks/repro" title="Reproducibly building Emacs: “Hey your checksum is the same as mine!”" data-slug="repro"><title> 4:15- 4:35 Reproducibly building Emacs: “Hey your checksum is the same as mine!”</title><rect x="682" y="75" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="gray"></rect><g transform="translate(711,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">repro</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/2024/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/2024/talks/pgmacs" title="PGmacs: browsing and editing PostgreSQL databases from Emacs" data-slug="pgmacs"><title> 9:10- 9:20 PGmacs: browsing and editing PostgreSQL databases from Emacs</title><rect x="15" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="" fill="lightblue"></rect><g transform="translate(28,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">pgmacs</text></g></a><a href="https://emacsconf.org/2024/talks/p-search" title="p-search: a local search engine in Emacs" data-slug="p-search"><title> 9:40-10:00 p-search: a local search engine in Emacs</title><rect x="62" y="15" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="gray"></rect><g transform="translate(91,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">p-search</text></g></a><a href="https://emacsconf.org/2024/talks/hyperbole" title="Fun things with GNU Hyperbole" data-slug="hyperbole"><title>10:20-10:30 Fun things with GNU Hyperbole</title><rect x="125" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="" fill="lightblue"></rect><g transform="translate(138,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">hyperbole</text></g></a><a href="https://emacsconf.org/2024/talks/hywiki" title="HyWiki: Fast, hyperlinked note-taking with no markup required" data-slug="hywiki"><title>10:50-11:10 HyWiki: Fast, hyperlinked note-taking with no markup required</title><rect x="172" y="15" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(201,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">hywiki</text></g></a><a href="https://emacsconf.org/2024/talks/project" title="Managing writing project metadata with org-mode" data-slug="project"><title>11:30-11:50 Managing writing project metadata with org-mode</title><rect x="235" y="15" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="gray"></rect><g transform="translate(264,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">project</text></g></a><a href="https://emacsconf.org/2024/talks/blee" title="About Blee: towards an integrated Emacs environment for enveloping our own autonomy directed digital ecosystem" data-slug="blee"><title>12:10-12:30 About Blee: towards an integrated Emacs environment for enveloping our own autonomy directed digital ecosystem</title><rect x="298" y="15" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="gray"></rect><g transform="translate(327,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">blee</text></g></a><a href="https://emacsconf.org/2024/talks/casual" title="Re-imagining the Emacs user experience with Casual Suite" data-slug="casual"><title> 1:00- 1:20 Re-imagining the Emacs user experience with Casual Suite</title><rect x="376" y="15" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(405,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">casual</text></g></a><a href="https://emacsconf.org/2024/talks/learning" title="Survival of the skillest: Thriving in the learning jungle" data-slug="learning"><title> 1:40- 2:00 Survival of the skillest: Thriving in the learning jungle</title><rect x="439" y="15" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(468,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">learning</text></g></a><a href="https://emacsconf.org/2024/talks/sharing" title="So you want to be an Emacs-fluencer?" data-slug="sharing"><title> 2:10- 2:30 So you want to be an Emacs-fluencer?</title><rect x="486" y="15" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(515,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sharing</text></g></a><a href="https://emacsconf.org/2024/talks/literate" title="Literate programming for the 21st Century" data-slug="literate"><title> 2:40- 3:00 Literate programming for the 21st Century</title><rect x="533" y="15" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(562,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">literate</text></g></a><a href="https://emacsconf.org/2024/talks/students" title="An example of a cohesive student workflow in Emacs" data-slug="students"><title> 3:20- 3:30 An example of a cohesive student workflow in Emacs</title><rect x="596" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(609,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">students</text></g></a><a href="https://emacsconf.org/2024/talks/transducers" title="Transducers: finally, ergonomic data processing for Emacs!" data-slug="transducers"><title> 4:00- 4:30 Transducers: finally, ergonomic data processing for Emacs!</title><rect x="658" y="15" opacity="0.8" width="47" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(703,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">transducers</text></g></a><a href="https://emacsconf.org/2024/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="59" stroke="black" stroke-dasharray="5,5,5" fill="gray"></rect><g transform="translate(750,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/2024/organizers-notebook/schedule-2-tracks.svg b/2024/organizers-notebook/schedule-2-tracks.svg
new file mode 100644
index 00000000..7727790a
--- /dev/null
+++ b/2024/organizers-notebook/schedule-2-tracks.svg
@@ -0,0 +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/2024/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/2024/talks/papers" title="Writing academic papers in Org-Roam" data-slug="papers"><title> 9:10- 9:20 Writing academic papers in Org-Roam</title><rect x="15" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="" fill="lightblue"></rect><g transform="translate(28,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">papers</text></g></a><a href="https://emacsconf.org/2024/talks/color" title="Colour your Emacs with ease" data-slug="color"><title> 9:50-10:00 Colour your Emacs with ease</title><rect x="78" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="" fill="lightblue"></rect><g transform="translate(91,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">color</text></g></a><a href="https://emacsconf.org/2024/talks/flp" title="The Free Life Planner: Empowering lives with Emacs-based AI" data-slug="flp"><title>10:30-10:50 The Free Life Planner: Empowering lives with Emacs-based AI</title><rect x="141" y="15" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="5,5,5" fill="gray"></rect><g transform="translate(170,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">flp</text></g></a><a href="https://emacsconf.org/2024/talks/hyperdrive" title="New in hyperdrive.el: org-transclusion, easy installation, and more!" data-slug="hyperdrive"><title>11:10-11:30 New in hyperdrive.el: org-transclusion, easy installation, and more!</title><rect x="203" y="15" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(232,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">hyperdrive</text></g></a><a href="https://emacsconf.org/2024/talks/emacs30" title="Emacs 30 Highlights" data-slug="emacs30"><title> 1:00- 1:20 Emacs 30 Highlights</title><rect x="376" y="15" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="gray"></rect><g transform="translate(405,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">emacs30</text></g></a><a href="https://emacsconf.org/2024/talks/theme" title="My journey of finding and creating the “perfect” Emacs theme" data-slug="theme"><title> 1:50- 2:00 My journey of finding and creating the “perfect” Emacs theme</title><rect x="454" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(467,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">theme</text></g></a><a href="https://emacsconf.org/2024/talks/water" title="Watering my (digital) plant with Emacs timers" data-slug="water"><title> 2:30- 2:40 Watering my (digital) plant with Emacs timers</title><rect x="517" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="5,5,5" fill="gray"></rect><g transform="translate(530,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">water</text></g></a><a href="https://emacsconf.org/2024/talks/shell" title="Emacs as a shell" data-slug="shell"><title> 3:00- 3:40 Emacs as a shell</title><rect x="564" y="15" opacity="0.8" width="62" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(624,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">shell</text></g></a><a href="https://emacsconf.org/2024/talks/students" title="An example of a cohesive student workflow in Emacs" data-slug="students"><title> 4:00- 4:10 An example of a cohesive student workflow in Emacs</title><rect x="658" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(671,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">students</text></g></a><a href="https://emacsconf.org/2024/talks/writing" title="Emacs Writing Studio" data-slug="writing"><title> 4:30- 4:40 Emacs Writing Studio</title><rect x="705" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(718,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">writing</text></g></a><a href="https://emacsconf.org/2024/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="59" stroke="black" stroke-dasharray="5,5,5" fill="gray"></rect><g transform="translate(765,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sat-close</text></g></a><a href="https://emacsconf.org/2024/talks/gypsum" title="Gypsum: my clone of Emacs and ELisp written in Scheme" data-slug="gypsum"><title>10:00-10:20 Gypsum: my clone of Emacs and ELisp written in Scheme</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)">gypsum</text></g></a><a href="https://emacsconf.org/2024/talks/rust" title="An experimental Emacs core in Rust" data-slug="rust"><title>10:50-11:10 An experimental Emacs core in Rust</title><rect x="172" y="75" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="gray"></rect><g transform="translate(201,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">rust</text></g></a><a href="https://emacsconf.org/2024/talks/julia" title="Exploring shared philosophies in Julia and Emacs" data-slug="julia"><title> 1:00- 1:05 Exploring shared philosophies in Julia and Emacs</title><rect x="376" y="75" opacity="0.8" width="7" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(381,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">julia</text></g></a><a href="https://emacsconf.org/2024/talks/guile" title="Beguiling Emacs: Guile-Emacs relaunched!" data-slug="guile"><title> 1:35- 1:55 Beguiling Emacs: Guile-Emacs relaunched!</title><rect x="431" y="75" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(460,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">guile</text></g></a><a href="https://emacsconf.org/2024/talks/mcclim" title="Elisp and McCLIM" data-slug="mcclim"><title> 2:15- 3:15 Elisp and McCLIM</title><rect x="494" y="75" opacity="0.8" width="94" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(586,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">mcclim</text></g></a><a href="https://emacsconf.org/2024/talks/regex" title="Emacs regex compilation and future directions for expressive pattern matching" data-slug="regex"><title> 3:45- 4:05 Emacs regex compilation and future directions for expressive pattern matching</title><rect x="635" y="75" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="5,5,5" fill="lightblue"></rect><g transform="translate(664,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">regex</text></g></a><a href="https://emacsconf.org/2024/talks/repro" title="Reproducibly building Emacs: “Hey your checksum is the same as mine!”" data-slug="repro"><title> 4:25- 4:45 Reproducibly building Emacs: “Hey your checksum is the same as mine!”</title><rect x="698" y="75" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="gray"></rect><g transform="translate(727,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">repro</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/2024/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/2024/talks/links" title="Unlocking linked data: replacing specialized apps with an Org-based semantic wiki" data-slug="links"><title> 9:10- 9:20 Unlocking linked data: replacing specialized apps with an Org-based semantic wiki</title><rect x="15" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="5,5,5" fill="lightblue"></rect><g transform="translate(28,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">links</text></g></a><a href="https://emacsconf.org/2024/talks/org-teach" title="org-teach: a minor mode for writing course materials in Emacs" data-slug="org-teach"><title> 9:40-10:00 org-teach: a minor mode for writing course materials in Emacs</title><rect x="62" y="15" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="gray"></rect><g transform="translate(91,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">org-teach</text></g></a><a href="https://emacsconf.org/2024/talks/hyperbole" title="Fun things with GNU Hyperbole" data-slug="hyperbole"><title>10:20-10:30 Fun things with GNU Hyperbole</title><rect x="125" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="" fill="lightblue"></rect><g transform="translate(138,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">hyperbole</text></g></a><a href="https://emacsconf.org/2024/talks/hywiki" title="HyWiki: Fast, hyperlinked note-taking with no markup required" data-slug="hywiki"><title>10:50-11:10 HyWiki: Fast, hyperlinked note-taking with no markup required</title><rect x="172" y="15" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(201,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">hywiki</text></g></a><a href="https://emacsconf.org/2024/talks/language" title="Immersive language learning with Emacs" data-slug="language"><title>11:30-11:40 Immersive language learning with Emacs</title><rect x="235" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="5,5,5" fill="lightblue"></rect><g transform="translate(248,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">language</text></g></a><a href="https://emacsconf.org/2024/talks/literate" title="Literate programming for the 21st Century" data-slug="literate"><title> 1:00- 1:20 Literate programming for the 21st Century</title><rect x="376" y="15" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(405,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">literate</text></g></a><a href="https://emacsconf.org/2024/talks/casual" title="Re-imagining the Emacs user experience with Casual Suite" data-slug="casual"><title> 1:50- 2:10 Re-imagining the Emacs user experience with Casual Suite</title><rect x="454" y="15" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(483,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">casual</text></g></a><a href="https://emacsconf.org/2024/talks/learning" title="Survival of the skillest: Thriving in the learning jungle" data-slug="learning"><title> 2:40- 3:00 Survival of the skillest: Thriving in the learning jungle</title><rect x="533" y="15" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(562,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">learning</text></g></a><a href="https://emacsconf.org/2024/talks/project" title="Managing writing project metadata with org-mode" data-slug="project"><title> 3:20- 3:40 Managing writing project metadata with org-mode</title><rect x="596" y="15" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="gray"></rect><g transform="translate(625,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">project</text></g></a><a href="https://emacsconf.org/2024/talks/sharing" title="So you want to be an Emacs-fluencer?" data-slug="sharing"><title> 4:10- 4:30 So you want to be an Emacs-fluencer?</title><rect x="674" y="15" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(703,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sharing</text></g></a><a href="https://emacsconf.org/2024/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="59" stroke="black" stroke-dasharray="5,5,5" fill="gray"></rect><g transform="translate(750,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sun-close</text></g></a><a href="https://emacsconf.org/2024/talks/pgmacs" title="PGmacs: browsing and editing PostgreSQL databases from Emacs" data-slug="pgmacs"><title>10:00-10:10 PGmacs: browsing and editing PostgreSQL databases from Emacs</title><rect x="94" y="75" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="" fill="lightblue"></rect><g transform="translate(107,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">pgmacs</text></g></a><a href="https://emacsconf.org/2024/talks/graph" title="Graph mode: a major mode to create, edit and display discrete element graphs" data-slug="graph"><title>10:40-11:00 Graph mode: a major mode to create, edit and display discrete element graphs</title><rect x="156" y="75" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="gray"></rect><g transform="translate(185,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">graph</text></g></a><a href="https://emacsconf.org/2024/talks/blee" title="About Blee: towards an integrated Emacs environment for enveloping our own autonomy directed digital ecosystem" data-slug="blee"><title> 1:00- 1:20 About Blee: towards an integrated Emacs environment for enveloping our own autonomy directed digital ecosystem</title><rect x="376" y="75" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="gray"></rect><g transform="translate(405,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">blee</text></g></a><a href="https://emacsconf.org/2024/talks/p-search" title="p-search: a local search engine in Emacs" data-slug="p-search"><title> 1:50- 2:10 p-search: a local search engine in Emacs</title><rect x="454" y="75" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="gray"></rect><g transform="translate(483,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">p-search</text></g></a><a href="https://emacsconf.org/2024/talks/secrets" title="Committing secrets with git using sops-mode" data-slug="secrets"><title> 2:40- 2:50 Committing secrets with git using sops-mode</title><rect x="533" y="75" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(546,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">secrets</text></g></a><a href="https://emacsconf.org/2024/talks/transducers" title="Transducers: finally, ergonomic data processing for Emacs!" data-slug="transducers"><title> 4:00- 4:30 Transducers: finally, ergonomic data processing for Emacs!</title><rect x="658" y="75" opacity="0.8" width="47" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(703,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">transducers</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/2024/organizers-notebook/schedule.svg b/2024/organizers-notebook/schedule.svg
new file mode 100644
index 00000000..46e655e4
--- /dev/null
+++ b/2024/organizers-notebook/schedule.svg
@@ -0,0 +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/2024/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/2024/talks/papers" title="Writing academic papers in Org-Roam" data-slug="papers"><title> 9:10- 9:20 Writing academic papers in Org-Roam</title><rect x="15" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="" fill="lightblue"></rect><g transform="translate(28,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">papers</text></g></a><a href="https://emacsconf.org/2024/talks/links" title="Unlocking Linked Data: Replacing Specialized Apps with an Org-Based" data-slug="links"><title> 9:40- 9:50 Unlocking Linked Data: Replacing Specialized Apps with an Org-Based</title><rect x="62" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="5,5,5" fill="lightblue"></rect><g transform="translate(75,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">links</text></g></a><a href="https://emacsconf.org/2024/talks/org-teach" title="org-teach: a minor mode for writing course materials in Emacs" data-slug="org-teach"><title>10:00-10:20 org-teach: a minor mode for writing course materials in Emacs</title><rect x="94" y="15" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="gray"></rect><g transform="translate(123,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">org-teach</text></g></a><a href="https://emacsconf.org/2024/talks/language" title="Immersive language learning with emacs" data-slug="language"><title>10:40-10:50 Immersive language learning with emacs</title><rect x="156" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="5,5,5" fill="lightblue"></rect><g transform="translate(169,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">language</text></g></a><a href="https://emacsconf.org/2024/talks/hyperdrive" title="New in hyperdrive.el: org-transclusion, easy installation, and more!" data-slug="hyperdrive"><title>11:00-11:20 New in hyperdrive.el: org-transclusion, easy installation, and more!</title><rect x="188" y="15" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(217,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">hyperdrive</text></g></a><a href="https://emacsconf.org/2024/talks/color" title="Colour Your Emacs with Ease" data-slug="color"><title>11:40-11:50 Colour Your Emacs with Ease</title><rect x="250" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="" fill="lightblue"></rect><g transform="translate(263,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">color</text></g></a><a href="https://emacsconf.org/2024/talks/emacs30" title="Emacs 30 Highlights" data-slug="emacs30"><title> 1:00- 1:20 Emacs 30 Highlights</title><rect x="376" y="15" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="gray"></rect><g transform="translate(405,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">emacs30</text></g></a><a href="https://emacsconf.org/2024/talks/theme" title="My journey of finding and creating the “perfect” Emacs theme" data-slug="theme"><title> 1:40- 1:50 My journey of finding and creating the “perfect” Emacs theme</title><rect x="439" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(452,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">theme</text></g></a><a href="https://emacsconf.org/2024/talks/water" title="Watering my (digital) plant with Emacs timers" data-slug="water"><title> 2:10- 2:20 Watering my (digital) plant with Emacs timers</title><rect x="486" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="5,5,5" fill="gray"></rect><g transform="translate(499,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">water</text></g></a><a href="https://emacsconf.org/2024/talks/shell" title="Emacs as a Shell" data-slug="shell"><title> 2:30- 3:10 Emacs as a Shell</title><rect x="517" y="15" opacity="0.8" width="62" height="59" stroke="black" stroke-dasharray="5,5,5" fill="gray"></rect><g transform="translate(577,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">shell</text></g></a><a href="https://emacsconf.org/2024/talks/literate" title="Literate Programming for the 21st Century" data-slug="literate"><title> 3:20- 3:40 Literate Programming for the 21st Century</title><rect x="596" y="15" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(625,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">literate</text></g></a><a href="https://emacsconf.org/2024/talks/writing" title="Emacs Writing Studio" data-slug="writing"><title> 4:00- 4:10 Emacs Writing Studio</title><rect x="658" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(671,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">writing</text></g></a><a href="https://emacsconf.org/2024/talks/sat-close" title="Saturday closing remarks" data-slug="sat-close"><title> 4:20- 4:30 Saturday closing remarks</title><rect x="690" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="5,5,5" fill="gray"></rect><g transform="translate(703,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sat-close</text></g></a><a href="https://emacsconf.org/2024/talks/gypsum" title="Gypsum: my clone of Emacs and ELisp written in Scheme" data-slug="gypsum"><title>10:00-10:20 Gypsum: my clone of Emacs and ELisp written in Scheme</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)">gypsum</text></g></a><a href="https://emacsconf.org/2024/talks/rust" title="An Experimental Emacs Core in Rust" data-slug="rust"><title>10:40-11:00 An Experimental Emacs Core in Rust</title><rect x="156" y="75" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="gray"></rect><g transform="translate(185,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">rust</text></g></a><a href="https://emacsconf.org/2024/talks/graph" title="Graph mode - A major mode to create, edit and display discrete element graphs." data-slug="graph"><title>11:20-11:40 Graph mode - A major mode to create, edit and display discrete element graphs.</title><rect x="219" y="75" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="gray"></rect><g transform="translate(248,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">graph</text></g></a><a href="https://emacsconf.org/2024/talks/julia" title="Exploring Shared Philosophies in Julia and Emacs" data-slug="julia"><title> 1:00- 1:05 Exploring Shared Philosophies in Julia and Emacs</title><rect x="376" y="75" opacity="0.8" width="7" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(381,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">julia</text></g></a><a href="https://emacsconf.org/2024/talks/mcclim" title="Elisp and McCLIM" data-slug="mcclim"><title> 1:25- 2:25 Elisp and McCLIM</title><rect x="415" y="75" opacity="0.8" width="94" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(507,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">mcclim</text></g></a><a href="https://emacsconf.org/2024/talks/regex" title="Emacs regex compilation and future directions for expressive pattern matching" data-slug="regex"><title> 2:45- 3:05 Emacs regex compilation and future directions for expressive pattern matching</title><rect x="541" y="75" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="5,5,5" fill="lightblue"></rect><g transform="translate(570,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">regex</text></g></a><a href="https://emacsconf.org/2024/talks/secrets" title="committing secrets with git using sops-mode" data-slug="secrets"><title> 3:15- 3:25 committing secrets with git using sops-mode</title><rect x="588" y="75" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(601,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">secrets</text></g></a><a href="https://emacsconf.org/2024/talks/repro" title="Reproducibly Building Emacs - “Hey Your Checksum is the Same as Mine!”" data-slug="repro"><title> 3:45- 4:05 Reproducibly Building Emacs - “Hey Your Checksum is the Same as Mine!”</title><rect x="635" y="75" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="gray"></rect><g transform="translate(664,133)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">repro</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/2024/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/2024/talks/flp" title="The Free Life Planner: Empowering Lives with Emacs-Based AI" data-slug="flp"><title> 9:10- 9:30 The Free Life Planner: Empowering Lives with Emacs-Based AI</title><rect x="15" y="15" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="5,5,5" fill="gray"></rect><g transform="translate(44,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">flp</text></g></a><a href="https://emacsconf.org/2024/talks/pgmacs" title="PGmacs: browsing and editing PostgreSQL databases from Emacs" data-slug="pgmacs"><title> 9:40- 9:50 PGmacs: browsing and editing PostgreSQL databases from Emacs</title><rect x="62" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="" fill="lightblue"></rect><g transform="translate(75,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">pgmacs</text></g></a><a href="https://emacsconf.org/2024/talks/hywiki" title="HyWiki: Fast, Hyperlinked Note-taking with No Markup Required" data-slug="hywiki"><title>10:10-10:30 HyWiki: Fast, Hyperlinked Note-taking with No Markup Required</title><rect x="109" y="15" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(138,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">hywiki</text></g></a><a href="https://emacsconf.org/2024/talks/p-search" title="p-search: a local search engine in Emacs" data-slug="p-search"><title>10:50-11:10 p-search: a local search engine in Emacs</title><rect x="172" y="15" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="gray"></rect><g transform="translate(201,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">p-search</text></g></a><a href="https://emacsconf.org/2024/talks/blee" title="About Blee: towards an integrated Emacs environment for enveloping our own autonomy directed digital ecosystem" data-slug="blee"><title>11:30-11:50 About Blee: towards an integrated Emacs environment for enveloping our own autonomy directed digital ecosystem</title><rect x="235" y="15" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="gray"></rect><g transform="translate(264,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">blee</text></g></a><a href="https://emacsconf.org/2024/talks/casual" title="Re-imagining the Emacs User Experience with Casual Suite" data-slug="casual"><title> 1:00- 1:20 Re-imagining the Emacs User Experience with Casual Suite</title><rect x="376" y="15" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(405,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">casual</text></g></a><a href="https://emacsconf.org/2024/talks/learning" title="Survival of the Skillest: Thriving in the Learning Jungle" data-slug="learning"><title> 1:40- 2:00 Survival of the Skillest: Thriving in the Learning Jungle</title><rect x="439" y="15" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(468,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">learning</text></g></a><a href="https://emacsconf.org/2024/talks/project" title="Managing writing project metadata with org-mode" data-slug="project"><title> 2:10- 2:30 Managing writing project metadata with org-mode</title><rect x="486" y="15" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="gray"></rect><g transform="translate(515,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">project</text></g></a><a href="https://emacsconf.org/2024/talks/sharing" title="So You Want To Be An Emacs-Fluencer?" data-slug="sharing"><title> 2:50- 3:10 So You Want To Be An Emacs-Fluencer?</title><rect x="549" y="15" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(578,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sharing</text></g></a><a href="https://emacsconf.org/2024/talks/transducers" title="Transducers: finally, ergonomic data processing for Emacs!" data-slug="transducers"><title> 4:00- 4:30 Transducers: finally, ergonomic data processing for Emacs!</title><rect x="658" y="15" opacity="0.8" width="47" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(703,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">transducers</text></g></a><a href="https://emacsconf.org/2024/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="59" stroke="black" stroke-dasharray="5,5,5" fill="gray"></rect><g transform="translate(750,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/2024/prepare.md b/2024/prepare.md
new file mode 100644
index 00000000..4b20d5ba
--- /dev/null
+++ b/2024/prepare.md
@@ -0,0 +1,311 @@
+[[!meta title="Preparing your talk"]]
+[[!meta copyright="Copyright &copy; 2019, 2020 Amin Bandali; 2021, 2022 Amin Bandali, Sacha Chua, Leo Vivier; 2023, 2024 Sacha Chua"]]
+
+This page contains tips for preparing your talk. (Target date: on or before
+**November 8, 2024**) If you have any questions, concerns, or suggestions
+please feel free to write to one our organizational mailing lists: the
+public <emacsconf-org@gnu.org> list, or the private
+<emacsconf-org-private@gnu.org> list, depending on the nature of the
+matter you would like to discuss.
+
+Note: being part of a wiki, this page is subject to change (including
+by you!); so please check back every now and again for any changes and
+updates.
+
+We'll bring up the web-based upload service at some point. Let us know
+at <emacsconf-org-private@gnu.org> if you're already ready to go!
+<!--[[Already done? Upload your video and other files|upload]]-->
+
+## Guidelines for conduct
+
+Please review our [[guidelines for conduct|conduct]] when preparing your
+talk to make sure we’re all on the same page and strive to make the
+event a great experience for all. If you’re not sure whether your talk
+or presentation style meets the guidelines laid out in the guidelines
+for conduct, we’d be happy to help. You can email Sacha Chua at
+<sacha@sachachua.com> to chat more about this.
+
+## Recording your talk
+
+To help EmacsConf 2024 run smoothly, please prerecord your talk, and
+plan to upload your video(s) by **November 8, 2024** to allow us enough time
+to do any needed processing (e.g. format or codec conversion) in
+preparation for the event. Please consider submitting a prerecording as
+early as possible so that we can see if volunteers can caption your
+video to make it more accessible and searchable.
+
+To make it easier for people to orient themselves
+when listening to lots of EmacsConf videos in the
+playlist, you may want to start your video with
+something along the lines of:
+
+"Hi! I’m ${NAME} and I’ll be talking about ${TOPIC}."
+
+We'll also try to record a brief introduction for
+your talk with enough time for you to review the
+pronunciation.
+
+### Appearance
+
+The talks will be broadcast with a resolution of **1280x720px**
+(720p), so it may help to switch to that size before you record.
+Please make sure your text will be easy to read.
+[You can change the font-size in your Emacs.](https://www.emacswiki.org/emacs/SetFonts#h5o-6)
+(Maybe `M-x customize-face default` and set the height to 150 or more, depending on your resolution?) If you
+are capturing a single window, you can also resize it before you
+record.
+
+We recommend using **dark text on a light background** for your
+recording, as this can be easier to see especially for people who are
+visually impaired. Themes with more contrast are easier to read than
+low-contrast ones. If you use a dark theme with your Emacs, you can
+change to a lighter one with `M-x customize-theme` (look for those
+with a `-light` suffix). The `modus-themes-load-operandi` command from
+the `modus-themes` package can be a good option.
+
+### Audio quality
+
+Audio quality can go a long way in making your talk enjoyable to
+watch. Consider the background noise in the room that you are using to
+record, and see if you can temporarily turn off things for your
+recording.
+
+You can help us try to denoise the audio by
+providing a recording of at least **5 seconds of
+quiet** in the same room in which you plan to do
+your main recording. You can listen to it to see
+how quiet things are, and figure out if there are
+other things you can turn off such as fans or
+other computers. We can try to use the noise
+profile from that recording to reduce the noise in
+your presentation.
+
+If you have an **external microphone or a
+headset**, try recording the audio through that so
+that you can reduce the sound of the computer
+itself. If you have a smartphone, that might also
+be a good way to record audio that you can then
+combine with your video afterwards.
+
+Many speakers prefer to record and edit the audio until they're happy
+with how it fits in the time, and then add the slides or videos
+afterwards. It might be easier than trying to do both the audio and
+the video in one go.
+
+### Tools
+
+You can use your favorite video recording tool. If you don't have one yet, you can try
+any of the following pieces of free software, depending on your needs:
+
+- [OBS](//obsproject.com)
+- [SimpleScreenRecorder](//www.maartenbaert.be/simplescreenrecorder/)
+- [vokoscreenNG](//linuxecke.volkoh.de/vokoscreen/vokoscreen.html)
+- [peek](//github.com/phw/peek)
+- [ffmpeg](//trac.ffmpeg.org/wiki/Capture/Desktop)
+
+If you decide to use OBS, please make sure to verify the window-capture
+options. Most notably, there is a “Swap red and blue” option that is
+necessary for some setups, and it's easy to miss it.
+
+You might find the following free software programs useful for editing
+your video recordings:
+
+- [Kdenlive](//kdenlive.org/en/)
+- [Blender](//www.blender.org)
+- [Pitivi](http://www.pitivi.org)
+
+Per GNU Project’s [Guide to
+Formats](//audio-video.gnu.org/docs/formatguide.html), we prefer to
+receive prerecorded videos in formats unencumbered by software patents,
+such as `video/webm` ([WebM](https://www.webmproject.org/)-encoded video
+files, with `.webm` file extension) and `video/ogg` (video files encoded
+with the Theora video codec, encapsulated in an Ogg transport layer,
+with `.ogg` or `.ogv` file extension). However, if for one reason or
+another you are unable to send us your prerecorded video in one of the
+above formats, you may submit them in other common formats, like MPEG-4
+(`.mp4`), and we will convert them to our preferred formats on your
+behalf.
+
+*Prepare recorded video in 720p (1280px by 720px) or higher, in the
+WebM format if possible.*
+
+
+# Compression
+
+If you would like to compress your video before uploading, the following shell script may be useful:
+
+ Q=32
+ CPU=8
+ ffmpeg -y -i "$1" -c:v libvpx-vp9 -b:v 0 -crf $Q -an -row-mt 1 -tile-columns 2 -tile-rows 2 -cpu-used $CPU -g 240 -pass 1 -f webm -threads $CPU /dev/null &&
+ ffmpeg -y -i "$1" -c:v libvpx-vp9 -b:v 0 -crf $Q -c:a libopus -row-mt 1 -tile-columns 2 -tile-rows 2 -cpu-used $CPU -pass 2 -g 240 -threads $CPU "$2"
+
+If you put it in a file called `compress-video.sh`, you can execute it
+from the command line with something like `sh compress-video.sh
+input-file.webm output-file.webm`. It will compress the file in two
+passes. During the first pass, the frame count will increase, but the
+speed will be 0. After the first pass, it will display proper progress
+information.
+
+<a name="tech-check"></a>
+# Tech-check
+
+We ask that speakers who plan to participate in live Q&A sessions schedule
+a short tech-check in the weeks leading to the conference; this is to ensure
+that you can perform all the common tasks you’d need such as sharing your
+screen or toggling your microphone.
+
+We use BigBlueButton for our video-conferencing needs, and a quick way
+to familiarize yourself with it is to run it in a test room:
+<https://test.bigbluebutton.org/> Tiling window managers and
+multi-monitor setups can be a little tricky, so it's good to figure
+out a setup that works for you. If there are things you'd like to
+confirm by having another person in the meeting, such as audio
+quality, please feel free to get in touch with us and we’ll sort
+things out together.
+
+Thank you so much for helping with EmacsConf 2024!
+
+# Frequently-asked questions
+
+## Can I present live?
+
+We’d prefer that all talks have prerecorded
+videos.
+
+- It's a lot less stressful for both
+presenters and organizers.
+- Videos can be immediately available for playback once your session starts.
+- We can work on getting the video captioned for better accessibility.
+
+If you really need or want to present live,
+though, let us know and we'll figure that out.
+
+There will also be time for live questions and
+answers, so if you can record a short video
+covering your main points, you might be able to go
+into more detail in live Q&A.
+
+## My presentation is over/under the time I proposed. Do I need to stress out about it?
+
+No need to stress out about it. If it's a little
+over or under, we'll adjust the Q&A accordingly.
+
+If you find that your talk is much shorter than
+anticipated, let us know and we can adjust the
+schedule.
+
+If there's so much you want to talk about and you
+can't decide what to squeeze in, maybe you can
+think of your video as a short teaser that can get
+people interested and point them to where they can
+find out more. You can email
+<emacsconf-submit@gnu.org> links and other notes
+to add to the wiki page for your talk. If you’d
+like to record a longer video *in addition* to the
+short one for the main conference, please feel
+free to send us that too.
+
+Additionally, even though it is tempting, please refrain from speaking
+super quickly or fast-forwarding your recording to make it fit within
+the format. Trimming out the silences and the filler words can help
+sometimes, but a better solution for you might be to condense your
+talk to the essentials, then write, record, and edit your voice-over.
+Once you've figured out how to use the time, you can record your video
+to go along with it. Don't sweat being a few minutes over or under,
+that's cool.
+
+Feel free to send some questions for the host to ask you during the
+Q&A so that you can address extra points that didn't make it into the
+video.
+
+## What if there are lots of great questions during Q&A and it's already time for the next talk?
+
+The stream will move on to the next talk, but people can join the
+BigBlueButton meeting room and keep chatting with you for as long as
+you want to keep going. You can also continue answering questions on
+the collaborative pad or IRC, and we’ll copy questions and answers
+onto the wiki page afterwards so that you can answer them in your own
+time after the event.
+
+## Do I need to follow some visual guidelines for the presentation?
+
+- Dark text on a light background is more legible than the opposite
+ (especially for people who are visually impaired), and more contrast
+ is better than a low-contrast theme. This stands for both your
+ slides and your Emacs theme.
+- If you think your fonts might be too small in your slides or in Emacs,
+ they might very well be. [You can change the font-size in your
+ Emacs](https://www.emacswiki.org/emacs/SetFonts#h5o-6), but you can
+ also play with the size of the captured window during your recording.
+- Try to minimize the screen-flashes that occur when you switch between
+ windows, especially if their themes do not cohere (light-to-dark and
+ the reverse). If you can edit your recording, fades and other
+ transitions are a neat solution to this problem.
+
+## How do I show my keystrokes on screen?
+
+In Emacs, you can use
+[interaction-log.el](https://github.com/michael-heerdegen/interaction-log.el)
+(in MELPA) to display the keystrokes and the commands they run in a separate
+buffer. For a system-wide solution, you can look into
+[screenkey](https://gitlab.com/screenkey/screenkey).
+
+## I’m not used to talking to myself. Can I present the talk to someone?
+
+We might be able to help you record your talk using the BigBlueButton
+web conferencing system before the conference. Please email
+<emacsconf-submit@gnu.org> with some times that might work for you and
+we’ll see if a volunteer can meet up with you to record it.
+
+## Can I see the other proposed talks?
+
+Once we’ve emailed the speakers about their acceptance, we’ll put
+up the talk wiki pages. That way, you can see what else is going on
+in the conference and maybe coordinate with other speakers in order to
+minimize overlap and maximize awesomeness.
+
+## Do you have an Org TODO I can just copy into my agenda file?
+
+Sure, modify this as needed:
+
+```
+* TODO Record presentation for EmacsConf: Title goes here
+DEADLINE: <2024-11-08 Fri>
+
+- 1280x720px
+- large text; ideally dark text on a light background
+- minimize background noise
+ - try to use an external microphone if possible (ex: backup audio recording with phone)
+ - consider recording ~5 seconds of silence in the room you're planning to record in
+
+https://emacsconf.org/2024/prepare - tips and instructions
+
+Questions:
+- public: mailto:emacsconf-org@gnu.org
+- private: mailto:emacsconf-org-private@gnu.org
+
+Note: 2024-11-08 is a target date and we'd love to
+get your video by then. It's not a *deadline*
+deadline, so don't stress out if life happens.
+Just let us know!
+
+Thanks for sharing what you're learning!
+```
+
+## More questions?
+
+Please email <emacsconf-submit@gnu.org>. We’d love to hear from you.
+
+Thanks for contributing to EmacsConf 2024!
+
+<!-- <a name="tech-checklist"></a> -->
+<!-- #### Tech checklist -->
+
+<!-- - Can you speak and be heard? Is there echo? -->
+<!-- - Can you hear the organizer? -->
+<!-- - Can you share your screen? Is the screen readable? -->
+<!-- - If you plan to show your keystrokes, is that display visible? -->
+<!-- - If you want to share your webcam (optional), can you enable it? Is it visible? Will there likely be distractions in the background? -->
+<!-- - Can you view the collaborative pad? Will you be comfortable reviewing questions on your own (perhaps by keeping it open beside your shared window), or will you need a volunteer to relay questions to you? -->
+<!-- - Can you share contact information (ex: phone number) so that we can get in touch with you in case of technical issues or scheduling changes? -->
+<!-- - Do you need help finding your way around IRC so that you can check into `#emacsconf-org`? What is your IRC nickname? -->
diff --git a/2024/schedule-details.md b/2024/schedule-details.md
new file mode 100644
index 00000000..9c87422f
--- /dev/null
+++ b/2024/schedule-details.md
@@ -0,0 +1,39 @@
+Jump to: <a href="#dev">Development</a>
+
+<h1 id="gen" class="sched-track General">General (19 talks)</h1>
+[[!template id=sched title="""Writing academic papers in Org-Roam""" url="""/2024/talks/papers""" speakers="""Vincent Conus""" watch="""https://emacsconf.org/2024/watch/gen""" slug="""papers""" note=""""""]]
+[[!template id=sched title="""Colour your Emacs with ease""" url="""/2024/talks/color""" speakers="""Ryota""" watch="""https://emacsconf.org/2024/watch/gen""" slug="""color""" note=""""""]]
+[[!template id=sched title="""The Free Life Planner: Empowering lives with Emacs-based AI""" url="""/2024/talks/flp""" speakers="""Andrew Dougherty""" watch="""https://emacsconf.org/2024/watch/gen""" slug="""flp""" note=""""""]]
+[[!template id=sched title="""New in hyperdrive.el: org-transclusion, easy installation, and more!""" url="""/2024/talks/hyperdrive""" speakers="""Joseph Turner""" watch="""https://emacsconf.org/2024/watch/gen""" slug="""hyperdrive""" note=""""""]]
+[[!template id=sched title="""My journey of finding and creating the “perfect” Emacs theme""" url="""/2024/talks/theme""" speakers="""MetroWind""" watch="""https://emacsconf.org/2024/watch/gen""" slug="""theme""" note=""""""]]
+[[!template id=sched title="""Watering my (digital) plant with Emacs timers""" url="""/2024/talks/water""" speakers="""Christopher Howard""" watch="""https://emacsconf.org/2024/watch/gen""" slug="""water""" note=""""""]]
+[[!template id=sched title="""Emacs as a shell""" url="""/2024/talks/shell""" speakers="""Christopher Howard""" watch="""https://emacsconf.org/2024/watch/gen""" slug="""shell""" note=""""""]]
+[[!template id=sched title="""An example of a cohesive student workflow in Emacs""" url="""/2024/talks/students""" speakers="""Daniel Pinkston""" watch="""https://emacsconf.org/2024/watch/gen""" slug="""students""" note=""""""]]
+[[!template id=sched title="""Emacs Writing Studio""" url="""/2024/talks/writing""" speakers="""Peter Prevos""" watch="""https://emacsconf.org/2024/watch/gen""" slug="""writing""" note=""""""]]
+[[!template id=sched title="""Unlocking linked data: replacing specialized apps with an Org-based semantic wiki""" url="""/2024/talks/links""" speakers="""Abhinav Tushar""" watch="""https://emacsconf.org/2024/watch/gen""" slug="""links""" note=""""""]]
+[[!template id=sched title="""org-teach: a minor mode for writing course materials in Emacs""" url="""/2024/talks/org-teach""" speakers="""James Endres Howell""" watch="""https://emacsconf.org/2024/watch/gen""" slug="""org-teach""" note=""""""]]
+[[!template id=sched title="""Fun things with GNU Hyperbole""" url="""/2024/talks/hyperbole""" speakers="""Mats Lidell""" watch="""https://emacsconf.org/2024/watch/gen""" slug="""hyperbole""" note=""""""]]
+[[!template id=sched title="""HyWiki: Fast, hyperlinked note-taking with no markup required""" url="""/2024/talks/hywiki""" speakers="""Bob Weiner""" watch="""https://emacsconf.org/2024/watch/gen""" slug="""hywiki""" note=""""""]]
+[[!template id=sched title="""Immersive language learning with Emacs""" url="""/2024/talks/language""" speakers="""Sebastian Dümcke""" watch="""https://emacsconf.org/2024/watch/gen""" slug="""language""" note=""""""]]
+[[!template id=sched title="""Literate programming for the 21st Century""" url="""/2024/talks/literate""" speakers="""Howard Abrams""" watch="""https://emacsconf.org/2024/watch/dev""" slug="""literate""" note=""""""]]
+[[!template id=sched title="""Re-imagining the Emacs user experience with Casual Suite""" url="""/2024/talks/casual""" speakers="""Charles Choi""" watch="""https://emacsconf.org/2024/watch/gen""" slug="""casual""" note=""""""]]
+[[!template id=sched title="""Survival of the skillest: Thriving in the learning jungle""" url="""/2024/talks/learning""" speakers="""Bala Ramadurai""" watch="""https://emacsconf.org/2024/watch/gen""" slug="""learning""" note=""""""]]
+[[!template id=sched title="""Managing writing project metadata with org-mode""" url="""/2024/talks/project""" speakers="""Blaine Mooers""" watch="""https://emacsconf.org/2024/watch/gen""" slug="""project""" note=""""""]]
+[[!template id=sched title="""So you want to be an Emacs-fluencer?""" url="""/2024/talks/sharing""" speakers="""Gopar""" watch="""https://emacsconf.org/2024/watch/gen""" slug="""sharing""" note=""""""]]
+
+Jump to: <a href="#gen">General</a>
+
+<h1 id="dev" class="sched-track Development">Development (13 talks)</h1>
+[[!template id=sched title="""Gypsum: my clone of Emacs and ELisp written in Scheme""" url="""/2024/talks/gypsum""" speakers="""Ramin Honary""" watch="""https://emacsconf.org/2024/watch/dev""" slug="""gypsum""" note=""""""]]
+[[!template id=sched title="""An experimental Emacs core in Rust""" url="""/2024/talks/rust""" speakers="""Troy Hinckley""" watch="""https://emacsconf.org/2024/watch/dev""" slug="""rust""" note=""""""]]
+[[!template id=sched title="""Exploring shared philosophies in Julia and Emacs""" url="""/2024/talks/julia""" speakers="""Gabriele Bozzola""" watch="""https://emacsconf.org/2024/watch/gen""" slug="""julia""" note=""""""]]
+[[!template id=sched title="""Beguiling Emacs: Guile-Emacs relaunched!""" url="""/2024/talks/guile""" speakers="""Robin Templeton""" watch="""https://emacsconf.org/2024/watch/gen""" slug="""guile""" note=""""""]]
+[[!template id=sched title="""Elisp and McCLIM""" url="""/2024/talks/mcclim""" speakers="""screwlisp""" watch="""https://emacsconf.org/2024/watch/gen""" slug="""mcclim""" note=""""""]]
+[[!template id=sched title="""Emacs regex compilation and future directions for expressive pattern matching""" url="""/2024/talks/regex""" speakers="""Danny McClanahan""" watch="""https://emacsconf.org/2024/watch/dev""" slug="""regex""" note=""""""]]
+[[!template id=sched title="""Reproducibly building Emacs: “Hey your checksum is the same as mine!”""" url="""/2024/talks/repro""" speakers="""Aaron Grothe""" watch="""https://emacsconf.org/2024/watch/dev""" slug="""repro""" note=""""""]]
+[[!template id=sched title="""PGmacs: browsing and editing PostgreSQL databases from Emacs""" url="""/2024/talks/pgmacs""" speakers="""Eric Marsden""" watch="""https://emacsconf.org/2024/watch/dev""" slug="""pgmacs""" note=""""""]]
+[[!template id=sched title="""Graph mode: a major mode to create, edit and display discrete element graphs""" url="""/2024/talks/graph""" speakers="""John Darrington""" watch="""https://emacsconf.org/2024/watch/dev""" slug="""graph""" note=""""""]]
+[[!template id=sched title="""About Blee: towards an integrated Emacs environment for enveloping our own autonomy directed digital ecosystem""" url="""/2024/talks/blee""" speakers="""Mohsen BANAN""" watch="""https://emacsconf.org/2024/watch/gen""" slug="""blee""" note=""""""]]
+[[!template id=sched title="""p-search: a local search engine in Emacs""" url="""/2024/talks/p-search""" speakers="""Zac Romero""" watch="""https://emacsconf.org/2024/watch/gen""" slug="""p-search""" note=""""""]]
+[[!template id=sched title="""Committing secrets with git using sops-mode""" url="""/2024/talks/secrets""" speakers="""Jonathan Otsuka""" watch="""https://emacsconf.org/2024/watch/gen""" slug="""secrets""" note=""""""]]
+[[!template id=sched title="""Transducers: finally, ergonomic data processing for Emacs!""" url="""/2024/talks/transducers""" speakers="""Colin Woodbury""" watch="""https://emacsconf.org/2024/watch/dev""" slug="""transducers""" note=""""""]] \ No newline at end of file
diff --git a/2024/sidebar.md b/2024/sidebar.md
index 12203883..ec441ca3 100644
--- a/2024/sidebar.md
+++ b/2024/sidebar.md
@@ -7,7 +7,9 @@
* [[**Call for Participation**|cfp]]
* [[Ideas]]
* [[Submit]]
+* [[Talks]]
* [[Volunteer]]
+* [[Prepare]]
* [[Planning]]
* [[Guidelines for Conduct|conduct]]
* [[Contact information|contact]]
diff --git a/2024/submit.md b/2024/submit.md
index e7f8ecd4..46620b44 100644
--- a/2024/submit.md
+++ b/2024/submit.md
@@ -34,7 +34,7 @@ Introduction for you and your talk (<= 100 words):
Speaker name (and optional pronunciation) and preferred pronouns:
-Speaker availability (times and time zones that you're available Dec 2-3;
+Speaker availability (times and time zones that you're available Dec 7-8;
ex: after 1pm America/Toronto both Sat and Sun):
Preferred Q&A approach (live web conference, IRC, pad, wiki, and/or e-mail questions after the event):
diff --git a/2024/talks.md b/2024/talks.md
new file mode 100644
index 00000000..102cca18
--- /dev/null
+++ b/2024/talks.md
@@ -0,0 +1,13 @@
+[[!meta title="Talks"]]
+[[!meta copyright="Copyright &copy; 2024 Sacha Chua"]]
+[[!sidebar content=""]]
+
+We're getting ready for EmacsConf 2024. Missed the proposal deadline but got a great idea anyway? [[Let us know|/2024/cfp]] just in case we can still squeeze you in somehow!
+
+Here are some of the talks we've accepted so far:
+
+[[!inline pages="internal(2024/schedule-details)" raw="yes"]]
+
+Want to help make EmacsConf even awesomer? [[Volunteer!|/volunteer]]
+
+We hope to see you all around on Dec 7-8 for EmacsConf 2024!
diff --git a/2024/talks/blee.md b/2024/talks/blee.md
new file mode 100644
index 00000000..5bee1b49
--- /dev/null
+++ b/2024/talks/blee.md
@@ -0,0 +1,126 @@
+[[!meta title="About Blee: towards an integrated Emacs environment for enveloping our own autonomy directed digital ecosystem"]]
+[[!meta copyright="Copyright &copy; 2024 Mohsen BANAN"]]
+[[!inline pages="internal(2024/info/blee-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. --->
+
+
+# About Blee: towards an integrated Emacs environment for enveloping our own autonomy directed digital ecosystem
+Mohsen BANAN (he/him) - Pronunciation: MO-HH-SS-EN
+
+[[!inline pages="internal(2024/info/blee-before)" raw="yes"]]
+
+Emacs has long been recognized as the ultimate integration platform, enabling
+the creation of an unparalleled user environment. In 2010, Tomohiro Matsuyama,
+captured this concept crisply:
+
+"The reason why Emacs platform is good is that it cooperates with OS,
+not because it is good by itself."
+
+Building on this idea, Blee (ByStar Libre-Halaal Emacs Environment) can be seen
+as yet another Emacs re-distribution, akin to Doom Emacs or Spacemacs. However,
+Blee is distinct. While Doom Emacs is multi-platform oriented, Blee is paired
+exclusively with Debian &#x2014; and on mobile, with Termux-Android. While Doom Emacs
+is Emacs-centric, Blee is digital ecosystem-centric.
+
+To further elucidate Blee, let’s break down the subtitle of this presentation:
+
+"Towards an Integrated Emacs Environment for Enveloping Our Own
+Autonomy Directed Digital Ecosystem."
+
+- **"Towards":** Blee is an ever-evolving, organic, and ongoing project &#x2014; just
+ like Emacs itself.
+
+- **"Enveloping":** Blee is designed to fully integrate and encapsulate usage of
+ an entire digital ecosystem.
+
+- **"Our Own Autonomy-Directed Digital Ecosystem":** In contrast to the
+ proprietary American ecosystems of Google, Microsoft, Meta, Apple, and Amazon,
+ Blee is part of *the Libre-Halaal ByStar Digital Ecosystem*. ByStar is ours.
+
+By\* challenges the existing proprietary American digital ecosystem while
+operating concurrently alongside it. ByStar's primary offerings are tangible
+autonomy and genuine privacy on a very large scale. ByStar represents a moral
+inversion of the proprietary American internet services model. By\* is about
+redecentralization of internet application services.
+
+Some might dismiss ByStar as an ambitious, utopian vision. In response, I’ve
+authored a book titled:
+
+Nature of Polyexistentials:
+Basis for Abolishment of the Western Intellectual Property Rights Regime
+And Introduction of the Libre-Halaal ByStar Digital Ecosystem
+
+- On Line US Edition: <https://github.com/bxplpc/120033>
+- On Line International Edition: <https://github.com/bxplpc/120074>
+- DOI: <https://doi.org/10.5281/zenodo.8003846>
+- US Edition Book Prints At Amazon: >
+- International Edition Book Prints in Iran: <https://jangal.com/fa/product/252689/nature-of-polyexistentials>
+
+Blee and Emacs are integral parts of ByStar.
+
+Analysis of digital ecosystems is inherently interdisciplinary, and so is my
+book. But, in this presenation, I won't be delving much into the philosophical,
+ethical, moral, societal, and social dimensions of the book. This presentation,
+focuses on the technical aspects of ByStar and Blee, specifically through the
+lens of Emacs users and developers.
+
+Blee’s approach to integration differs from traditional Emacs culture in three
+key ways:
+
+1. Avoiding the "Curse of Lisp": While Emacs culture emphasizes doing
+ everything in Lisp, Blee consciously avoids this pitfall.
+
+2. Cultivation of Best-of-Breeds: Emacs folklore tends to follow a laissez
+ faire approach, but Blee is disciplined around cultivation of selected best
+ of breeds.
+
+3. Digital Ecosystem Orientation: Unlike traditional Emacs, which is
+ component-focused, Blee is designed in the context of the entirety of our
+ own digital ecosystem.
+
+In ByStar, much of the integration occurs outside of Emacs, through a framework
+called BISOS (By\* Internet Services OS). BISOS builds on Debian to provide a
+unified platform for developing both internet services and software-service
+continuums. BISOS and Blee are intertwined.
+
+Now, in 2024, I am advancing Matsuyama concept with specificity:
+
+"The reason why Emacs platform is good is that it facilitates creation of
+ integrated usage environments like Blee, which cooperate with Debian, BISOS
+ and ByStar."
+
+An early version of BISOS and Blee is available for public use and
+experimentation. To get started with BISOS, Blee, and ByStar, visit
+<https://github.com/bxgenesis/start>. From a virgin Debian 12 installation
+("Fresh-Debian"), you can bootstrap BISOS and Blee in one step by running the
+raw-bisos.sh script. It produces "Raw-BISOS" which includes "Raw-Blee". You
+can then customize Raw-Blee to create different parts and aspects of your own
+ByStar DE.
+
+I welcome your thoughts and feedback, especially if you experiment with Blee,
+BISOS, ByStar, and the model and the concept of Libre-Halaal Polyexistentials.
+
+About the speaker:
+
+Mohsen Banan is a software and internet engineer.
+In this talk he describes how he has leveraged
+Emacs as an integration platform to create a
+comprehensive integrated usage environment. In his
+recent book "Nature of Polyexistentials", he
+introduces the Libre-Halaal ByStar Digital
+Ecosystem. Both in the book and this talk, he
+outlines a blueprint and presents initial
+implementations for BISOS (By\* Internet Services
+OS) and Blee (ByStar Libre Emacs Environment).
+Central to his presentation is the positioning of
+Emacs, as the core of Blee.
+
+See also: <https://emacsconf.org/2021/talks/bidi>
+
+[[!inline pages="internal(2024/info/blee-after)" raw="yes"]]
+
+[[!inline pages="internal(2024/info/blee-nav)" raw="yes"]]
+
+
diff --git a/2024/talks/casual.md b/2024/talks/casual.md
new file mode 100644
index 00000000..c64aec29
--- /dev/null
+++ b/2024/talks/casual.md
@@ -0,0 +1,32 @@
+[[!meta title="Re-imagining the Emacs User Experience with Casual Suite"]]
+[[!meta copyright="Copyright &copy; 2024 Charles Choi"]]
+[[!inline pages="internal(2024/info/casual-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. --->
+
+
+# Re-imagining the Emacs User Experience with Casual Suite
+Charles Choi (he/him) - Pronunciation: Che, IRC: kickingvegas, <http://yummymelon.com/devnull/> , Mastodon: <https://sfba.social/@kickingvegas>
+
+[[!inline pages="internal(2024/info/casual-before)" raw="yes"]]
+
+To date, the predominant interaction model for Emacs has been to use keybindings or the mini-buffer prompt to issue commands. These commands are drawn from a vast ecosystem of packages (both core and third party) designed to extend Emacs. When these commands are used in aggregate, the aforementioned interaction model places a high cognitive load on the user. It also sets a very steep learning curve for Emacs.
+
+The inclusion of the Transient model package in Emacs facilitates a different interaction model using keyboard-driven menu interfaces. Menu interfaces excel at discovery and recognition, neither of which are well supported with keybindings and a prompt. Menu interfaces also can be made contextual to allow the user to focus on a task at hand.
+
+Casual Suite is a personal effort to re-imagine the Emacs user experience by using keyboard-driven Transient menus as its primary interaction model.
+
+This talk describes Casual Suite, detailing its implementation and operation.
+
+About the speaker:
+
+Charles Choi has been an Emacs user since 1989 but did not get around to learning Elisp until 2022. He possesses formal knowledge of computers with a Ph.D. in Computer Engineering received from the University of Virginia in 1997. He is from and continues to live in San Francisco.
+
+
+
+[[!inline pages="internal(2024/info/casual-after)" raw="yes"]]
+
+[[!inline pages="internal(2024/info/casual-nav)" raw="yes"]]
+
+
diff --git a/2024/talks/color.md b/2024/talks/color.md
new file mode 100644
index 00000000..e302c691
--- /dev/null
+++ b/2024/talks/color.md
@@ -0,0 +1,50 @@
+[[!meta title="Colour your Emacs with ease"]]
+[[!meta copyright="Copyright &copy; 2024 Ryota"]]
+[[!inline pages="internal(2024/info/color-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. --->
+
+
+# Colour your Emacs with ease
+Ryota (he/him) - Pronunciation: Ree-yo-tah, https://hachyderm.io/@rytswd https://x.com/rytswd
+
+[[!inline pages="internal(2024/info/color-before)" raw="yes"]]
+
+Emacs comes with various themes to pick from, and there are myriad
+different themes out on the internet. Even when you choose a theme, from
+there, you can make your exact adjustments to add or remove certain
+colours. Emacs provides you so much control over how you work, write, code,
+and everything in between. You are certainly left equipped with all the
+controls for your theme as well.
+
+However, when it comes to colour, there is a bit of difficulty: RGB.
+Hexadecimal colour codes are ubiquitous and relatively easy to understand.
+Yet, they are difficult to work with, especially when you need to make
+different shades and variants. In recent years, CSS started to support not
+just sRGB (standard RGB), but other colour spaces such as HSL, Oklab, etc.
+With Emacs, we also have a great set of tools from color.el, as well as
+this amazing package called ct.el (<https://github.com/neeasade/ct.el>),
+
+In this talk, we will have a quick look at different colour spaces than
+sRGB, namely HSL and LCH. We will check out how ct.el can make a set of
+colour shades and variants at ease, and how they can help defining themes.
+Finally, Ryota will share his own theme called Hasliberg Theme, which is
+using the full power of LCH.
+
+About the speaker:
+
+Ryota started his Emacs journey more than a decade ago, but was forced to
+put it aside for work requirements soon after. A few years ago, he made a
+return to Emacs, and now is using Emacs almost exclusively for any sort of
+coding tasks. This talk focuses on the modern Emacs setup where he thinks
+his Emacs looks and works better than many other editors. He works for Civo
+as a Principal Engineer.
+
+
+
+[[!inline pages="internal(2024/info/color-after)" raw="yes"]]
+
+[[!inline pages="internal(2024/info/color-nav)" raw="yes"]]
+
+
diff --git a/2024/talks/flp.md b/2024/talks/flp.md
new file mode 100644
index 00000000..037f12e7
--- /dev/null
+++ b/2024/talks/flp.md
@@ -0,0 +1,68 @@
+[[!meta title="The Free Life Planner: Empowering Lives with Emacs-Based AI"]]
+[[!meta copyright="Copyright &copy; 2024 Andrew Dougherty"]]
+[[!inline pages="internal(2024/info/flp-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. --->
+
+
+# The Free Life Planner: Empowering Lives with Emacs-Based AI
+Andrew Dougherty (he/him) - Pronunciation: DOH-er-tee, IRC: aindilis, <https://frdcsa.org/> Facebook: <https://facebook.com/frdcsa>, <mailto:adougher9@gmail.com>
+
+[[!inline pages="internal(2024/info/flp-before)" raw="yes"]]
+
+The Free Life Planner (FLP) is an ambitious, Emacs-based artificial
+intelligence project aimed at creating a comprehensive life management
+system to address global challenges like poverty, hunger, and
+disease. This talk will provide a 5-year progress report on FLP,
+highlighting its integration with Emacs and its potential to serve as
+a virtual secondary social safety net.
+
+FLP leverages the power of free/libre software and AI to offer
+intelligent planning and decision support across various life
+domains. Key features include modules for finance, health, nutrition,
+and transportation, all accessible through an Emacs interface. The
+system employs advanced planning algorithms, machine learning, and
+natural language processing to provide personalized assistance
+tailored to individual needs.
+
+We'll explore how FLP uses Emacs as its central developer console,
+demonstrating how it can control Emacs through agentic software. The
+presentation will showcase practical applications of FLP, such as the
+Gourmet meal planner and the financial planning module, illustrating
+how these tools can improve quality of life and promote self-reliance.
+
+The talk will also address the challenges faced in developing FLP,
+including privacy concerns and the complexities of releasing such a
+comprehensive system. We'll discuss our commitment to free/libre
+software principles and our vision for FLP's future as a tool for
+social good.
+
+By attending this talk, you'll gain insights into:
+- How Emacs can serve as a platform for advanced AI applications
+- The potential of free/libre software to address global challenges
+- Practical applications of AI in daily life management
+- The intersection of technology and social responsibility
+
+Join us to explore how the Free Life Planner, powered by Emacs and AI,
+aims to transform lives and create a more equitable future for all.
+
+About the speaker:
+
+Andrew Dougherty is the creator of the Free Life Planner and the
+driving force behind the FRDCSA project. With over two decades of
+experience in AI and free software development, Andrew is passionate
+about leveraging technology to address social challenges. His work on
+FLP combines cutting-edge AI techniques with the extensibility of
+Emacs to create a comprehensive life management system. Today, Andrew
+will share insights from FLP's development over the past fifteen
+years, demonstrating how Emacs-based AI can be harnessed to empower
+individuals and communities worldwide.
+
+See also: [EmacsConf - 2019 - talks - A.I. that Helps Play the Game of Your Life - Andrew J. Dougherty](https://emacsconf.org/2019/talks/07/)
+
+[[!inline pages="internal(2024/info/flp-after)" raw="yes"]]
+
+[[!inline pages="internal(2024/info/flp-nav)" raw="yes"]]
+
+
diff --git a/2024/talks/graph.md b/2024/talks/graph.md
new file mode 100644
index 00000000..990372f8
--- /dev/null
+++ b/2024/talks/graph.md
@@ -0,0 +1,40 @@
+[[!meta title="Graph mode - A major mode to create, edit and display discrete element graphs."]]
+[[!meta copyright="Copyright &copy; 2024 John Darrington"]]
+[[!inline pages="internal(2024/info/graph-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. --->
+
+
+# Graph mode - A major mode to create, edit and display discrete element graphs.
+John Darrington (he/him) - IRC: jmd, <mailto:john@cellform.com>
+
+[[!inline pages="internal(2024/info/graph-before)" raw="yes"]]
+
+This project is a major mode to assist creation and editing of SVG
+images depicting discrete element graphs, optionally with presentational
+properties. The creation of such images may be of interest to
+engineers, pure mathematicians with an interest in graph theory,
+computer scientists, data administrators and others.
+
+The user specifies the topology and simple presentational attributes of the
+system and emacs takes care of the rest. Interaction is via conventional M-x
+interactive commands, or by keybindings/mouse movement.
+
+If desired, the SVG output may be edited using an external tool or by
+hand. Keeping the generated SVG readable and easy to edit is a design
+goal of the project.
+
+Example uses may include the creation of flow charts, entity-relationship
+diagrams, UML, block diagrams, and abstract graphs.
+
+This talk will demonstrate use of the mode, describe how it works, and
+discuss possible future direction.
+
+
+
+[[!inline pages="internal(2024/info/graph-after)" raw="yes"]]
+
+[[!inline pages="internal(2024/info/graph-nav)" raw="yes"]]
+
+
diff --git a/2024/talks/guile.md b/2024/talks/guile.md
new file mode 100644
index 00000000..e00b075a
--- /dev/null
+++ b/2024/talks/guile.md
@@ -0,0 +1,63 @@
+[[!meta title="Beguiling Emacs: Guile-Emacs relaunched!"]]
+[[!meta copyright="Copyright &copy; 2024 Robin Templeton"]]
+[[!inline pages="internal(2024/info/guile-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. --->
+
+
+# Beguiling Emacs: Guile-Emacs relaunched!
+Robin Templeton (they/them) - IRC: robin, - robin on libera.chat - Matrix: @terpri:matrix.org - Mastodon: @lispwitch@octodon.social - Website: <http://terpri.org/>, <mailto:robin@terpri.org>
+
+[[!inline pages="internal(2024/info/guile-before)" raw="yes"]]
+
+The Guile-Emacs project seeks to develop new foundations for Emacs to
+serve as the basis for the next forty years of development. It
+integrates Emacs and Guile by providing a new Elisp implementation based
+on Guile's Lisp-oriented compiler tower and runtime environment.
+Guile-Emacs is being developed by a new, publicly-funded democratic
+workers cooperative, founded to support development of Guile-Emacs
+itself and Free Software in general. We envision Guile and Emacs being
+co-developed in a sort of mutualism, along with other components of the
+GNU system, and for Emacs to become a central part of what we describe
+as "a Lisp machine for the 21st century", and to help fulfill the
+promised role of Lisp outlined in the original GNU Manifesto.
+
+In this talk, I'll cover:
+
+- What exactly is Guile-Emacs, in terms of its goals and general
+ architecture? What is it, and what is it not? Why is Guile in
+ particular well-suited to the goals of the project?
+- What is its history and current status? What can one already do with
+ Guile-Emacs?
+- What are the immediate tasks for Guile-Emacs development, and how will
+ they improve Guile-Emacs itself and Emacs in general?
+- How are our long-term goals for Guile-Emacs connected to the spirit of
+ Emacs and the GNU Project in general? What do we envision for the
+ future of GNU Emacs?
+- How can I get involved with and support this effort?
+
+Along the way, we'll show brief code samples and live demos of Guile's
+Elisp implementation and Guile-Emacs itself.
+
+About the speaker:
+
+Robin Templeton is a free software advocate who enjoys programming
+language design and exploring system architecture. Their fascination
+with Emacs and Lisp lead them to begin work on the then-hypothetical
+Guile-Emacs project during their university studies. If given the
+opportunity and interest, they will bless an interested listener with a
+treasure trove of obscure Lisp history.
+
+Guile-Emacs seeks to provide new foundations for Emacs, integrating
+Emacs and Guile via a new Elisp implementation. We envision a
+significant role for Emacs within the GNU Project, becoming a central
+part of a "Lisp machine for the 21st century".
+
+
+
+[[!inline pages="internal(2024/info/guile-after)" raw="yes"]]
+
+[[!inline pages="internal(2024/info/guile-nav)" raw="yes"]]
+
+
diff --git a/2024/talks/gypsum.md b/2024/talks/gypsum.md
new file mode 100644
index 00000000..02888492
--- /dev/null
+++ b/2024/talks/gypsum.md
@@ -0,0 +1,89 @@
+[[!meta title="Gypsum: my clone of Emacs and ELisp written in Scheme"]]
+[[!meta copyright="Copyright &copy; 2024 Ramin Honary"]]
+[[!inline pages="internal(2024/info/gypsum-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. --->
+
+
+# Gypsum: my clone of Emacs and ELisp written in Scheme
+Ramin Honary (he/him) - <mailto:ramin.honary@gmail.com>
+
+[[!inline pages="internal(2024/info/gypsum-before)" raw="yes"]]
+
+I would like to demonstrate an Emacs clone I have been
+writing in Guile Scheme for the past year, which I am
+tentatively calling "Gypsum". Unlike other editors which
+only clone the Emacs keybindings (Edwin, Jed, jEdit, Jove,
+Lem, MG, Yi, Zile), I hope my Emacs clone will also fully
+clone the Emacs Lisp programming language well enough that
+many of the packages in ELPA, Non-GNU ELPA, and perhaps even
+MELPA, can be used in "Gypsum" without any modification. I
+would also like to talk a little bit about the how I am
+implementing it (the software architecture), and invite
+others to contribute.
+
+I think my project is of interest to many Emacs users
+because, firstly, I have personally spoken with a relatively
+large number of people who have expressed interest in making
+Emacs programmable in Scheme. Secondly, there is a good
+amount of prior art for Scheme implementations of
+Emacs. There are even builds of Emacs that link to Guile
+which provides a "scheme-eval" built-in function that
+translates between Elisp data types and Scheme data
+types. The Guile compiler itself ships with an Emacs Lisp
+compiler as well, although it does not provide enough of
+Emacs's built-in functions to be of much use.
+
+So by using Guile, we can make use of a lot of the prior
+art, in fact I am currently using the tokenizer and reader
+used in Guile's built-in Elisp interpreter to implement
+"Gypsum's" Elisp interpreter. That said, I have gone out of
+my way to make my code fully R7RS compliant, so I hope I can
+port it to other Scheme implementations like MIT Scheme,
+Gambit, Stklos, and perhaps Chez Scheme with Gwen Weinholt's
+R7-to-R6RS translator. I consider the Guile version of
+Gypsum to be the reference implementation of what I hope
+will become a fully cross-platform programming language and
+text editor written in portable R7RS Scheme.
+
+The reference implementation of "Gypsum" is a GUI
+application based on Gtk using a library called
+"Guile-GI". Guile-GI uses the GObject Introspection
+framework to automatically generate Scheme language bindings
+to libraries like Gtk and Glib which are written in the C
+programming language. There is not yet any terminal-emulator
+version of "Gypsum."
+
+The next step of the project will be to implement enough of
+Elisp that we can run tests written in the Emacs Regression
+Testing (ERT) framework. We can then incorporate the
+original GNU Emacs regression test suite into Gypsum. Any
+new API added to Gypsum Elisp will most likely already have
+regression tests we can use to make sure it is working in a
+way that is compatible with GNU Emacs Lisp. I would like to
+make it as easy as possible for people to contribute to this
+project, and having a list of APIs to be implemented each
+with a set of regression tests the APIs are expected to
+pass, is a very good way to do that.
+
+About the speaker:
+
+My name is Ramin Honary, I have been a professional software
+engineer of 16 years, lately mostly doing full-stack
+software development. I have always been fascinated with
+programming languages, and especially functional languages
+like Lisp and Haskell. I have been using Emacs
+since 2017. But lately it is with Scheme that I have been
+spending most of my free time. I am only a Scheme
+programming enthusiast, I am not involved with Scheme
+professionally.
+
+You may also like another talk by this speaker:
+[EmacsConf - 2022 - talks - Build a Zettelkasten with the Hyperbole Rolodex](https://emacsconf.org/2022/talks/rolodex/)
+
+[[!inline pages="internal(2024/info/gypsum-after)" raw="yes"]]
+
+[[!inline pages="internal(2024/info/gypsum-nav)" raw="yes"]]
+
+
diff --git a/2024/talks/hyperbole.md b/2024/talks/hyperbole.md
new file mode 100644
index 00000000..198ad712
--- /dev/null
+++ b/2024/talks/hyperbole.md
@@ -0,0 +1,37 @@
+[[!meta title="Fun things With GNU Hyperbole"]]
+[[!meta copyright="Copyright &copy; 2024 Mats Lidell"]]
+[[!inline pages="internal(2024/info/hyperbole-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. --->
+
+
+# Fun things With GNU Hyperbole
+@matsl@mastodon.acc.sunet.se, <mailto:matsl@gnu.org>
+
+[[!inline pages="internal(2024/info/hyperbole-before)" raw="yes"]]
+
+This talk will focus on a few small fun things you can do with Hyperbole
+with less focus on going into details.
+
+GNU Hyperbole is described as the Everyday Hypertextual
+Information Manager which point in the direction of hypertext with
+some inter linkage. It has all that but it also contains other
+small and useful things. This talk will focus on the other
+supported features and demo a sample of them.
+
+About the speaker:
+
+I'm Mats Lidell. Co-maintainer of GNU Hyperbole together with the
+author Bob Weiner.
+
+See also:
+
+- [EmacsConf - 2023 - talks - What I learned by writing test cases for GNU Hyperbole](https://emacsconf.org/2023/talks/test)
+- [[!taglink CategoryHyperbole]]
+
+[[!inline pages="internal(2024/info/hyperbole-after)" raw="yes"]]
+
+[[!inline pages="internal(2024/info/hyperbole-nav)" raw="yes"]]
+
+
diff --git a/2024/talks/hyperdrive.md b/2024/talks/hyperdrive.md
new file mode 100644
index 00000000..4c900c3c
--- /dev/null
+++ b/2024/talks/hyperdrive.md
@@ -0,0 +1,53 @@
+[[!meta title="New in hyperdrive.el: org-transclusion, easy installation, and more!"]]
+[[!meta copyright="Copyright &copy; 2024 Joseph Turner"]]
+[[!inline pages="internal(2024/info/hyperdrive-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. --->
+
+
+# New in hyperdrive.el: org-transclusion, easy installation, and more!
+Joseph Turner - <https://ushin.org> xmpp:discuss@conference.ushin.org (XMPP MUC for USHIN discussion), <mailto:contact@ushin.org>
+
+[[!inline pages="internal(2024/info/hyperdrive-before)" raw="yes"]]
+
+In case it's been a while since you checked out `hyperdrive.el`,
+here's a refresher: [hyperdrive.el](https://ushin.org/hyperdrive/hyperdrive-manual.html) is an Emacs interface to [hyperdrive](https://docs.holepunch.to/building-blocks/hyperdrive),
+a mutable, versioned, peer-to-peer shared filesystem. Among other
+things, hyperdrive.el has these features: Share unlimited files of
+unlimited size; Explore file history with built-in versioning; Stream
+video and audio; No signup or account creation; Free as in Freedom!
+
+Since [last year's EmacsConf talk](https://emacsconf.org/2023/talks/hyperdrive), `hyperdrive.el` grew some new
+features, most notably the ability to [transclude hyperdrive content](https://ushin.org/hyperdrive/hyperdrive-manual.html#Org_002dtransclusion-integration)
+with `org-transclusion`! Getting started with `hyperdrive.el` is much
+easier now with `M-x hyperdrive-install`.
+
+This talk will show off these new `hyperdrive.el` features in action!
+
+Feel free to join our public XMPP chat room!
+
+- xmpp:discuss@conference.ushin.org
+
+([Join anonymously from your browser](https://anonymous.cheogram.com/discuss@conference.ushin.org))
+
+- \#\_bifrost\_discuss\_conference.ushin.org:aria-net.org (Matrix bridge)
+
+Bugs can be submitted to the [ushin issue tracker](https://todo.sr.ht/~ushin/ushin). Patches, comments or
+questions can be submitted to the [ushin public inbox](https://lists.sr.ht/~ushin/ushin).
+
+About the speaker:
+
+I'm Joseph Turner. I enjoy fiddle, Aikido, peer-to-peer networks,
+Emacs, and swimming in cold water. I work with
+[USHIN](https://ushin.org/), a tiny educational US nonprofit whose
+mission is to promote personal, community, and global health through
+free and open universal shared information for everybody.
+
+See also: [EmacsConf - 2023 - talks - hyperdrive.el: Peer-to-peer filesystem in Emacs](https://emacsconf.org/2023/talks/hyperdrive/)
+
+[[!inline pages="internal(2024/info/hyperdrive-after)" raw="yes"]]
+
+[[!inline pages="internal(2024/info/hyperdrive-nav)" raw="yes"]]
+
+
diff --git a/2024/talks/hywiki.md b/2024/talks/hywiki.md
new file mode 100644
index 00000000..bfe11461
--- /dev/null
+++ b/2024/talks/hywiki.md
@@ -0,0 +1,49 @@
+[[!meta title="HyWiki: Fast, hyperlinked note-taking with no markup required"]]
+[[!meta copyright="Copyright &copy; 2024 Bob Weiner"]]
+[[!inline pages="internal(2024/info/hywiki-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. --->
+
+
+# HyWiki: Fast, Hyperlinked Note-taking with No Markup Required
+Bob Weiner - Pronunciation: wine-er, <mailto:rsw@gnu.com>
+
+[[!inline pages="internal(2024/info/hywiki-before)" raw="yes"]]
+
+This talk will demonstrate HyWiki, Hyperbole's new markup-free, personal
+Wiki system for note-taking. HyWiki utilizes Org format and its publishing
+framework.
+
+With the press of a key, HyWiki lets you:
+
+- create a new HyWiki page when on a WikiWord
+- create a highlighted hyperlink to a Wiki page
+- jump to an existing page or section therein
+- publish an entire HyWiki to the web with numbered sections
+
+We'll demonstrate how you can efficiently take notes and have them
+automatically interlinked without having to master Org link syntax or any
+syntax at all.
+
+HyWiki is quick, simple and efficient. It has been tested to perform well
+with 10,000 WikiWords and requires no database nor configuration. Install
+the Hyperbole package and you are ready to go.
+
+About the speaker:
+
+Bob Weiner has been molding Emacs to his will for most of his life. His
+mega-Hyperbole package aims to simplify all kinds of information management
+across Emacs modes. HyWiki is his take on fast hyperlinked note-taking.
+Let's see if he has something interesting to show us.
+
+See also:
+
+- [EmacsConf - 2023 - talks - Top 10 ways Hyperbole amps up Emacs](https://emacsconf.org/2023/talks/hyperamp)
+- [[!taglink CategoryHyperbole]]
+
+[[!inline pages="internal(2024/info/hywiki-after)" raw="yes"]]
+
+[[!inline pages="internal(2024/info/hywiki-nav)" raw="yes"]]
+
+
diff --git a/2024/talks/julia.md b/2024/talks/julia.md
new file mode 100644
index 00000000..f2914ad9
--- /dev/null
+++ b/2024/talks/julia.md
@@ -0,0 +1,33 @@
+[[!meta title="Exploring shared philosophies in Julia and Emacs"]]
+[[!meta copyright="Copyright &copy; 2024 Gabriele Bozzola"]]
+[[!inline pages="internal(2024/info/julia-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. --->
+
+
+# Exploring shared philosophies in Julia and Emacs
+Gabriele Bozzola (he/him/his) - GitHub: @sbozzolo Website: <https://sbozzolo.github.io> LinkedIn: gabrielebozzola
+
+[[!inline pages="internal(2024/info/julia-before)" raw="yes"]]
+
+While seemingly disparate, the Julia programming language and Emacs share a
+surprising kinship. This talk delves into the common design principles and
+philosophies that unite these powerful tools, focusing on their shared
+emphasis
+on extensibility, customization, and interactive development. I'll explore
+how
+both Julia and Emacs empower users to tailor their experience through
+powerful
+metaprogramming and a rich ecosystem of extensions. I'll discuss the
+REPL-driven workflows that foster exploration and experimentation in both
+environments. Furthermore, I'll examine how their active and passionate
+communities drive innovation.
+
+
+
+[[!inline pages="internal(2024/info/julia-after)" raw="yes"]]
+
+[[!inline pages="internal(2024/info/julia-nav)" raw="yes"]]
+
+
diff --git a/2024/talks/language.md b/2024/talks/language.md
new file mode 100644
index 00000000..fb8cb935
--- /dev/null
+++ b/2024/talks/language.md
@@ -0,0 +1,44 @@
+[[!meta title="Immersive language learning with Emacs"]]
+[[!meta copyright="Copyright &copy; 2024 Sebastian Dümcke"]]
+[[!inline pages="internal(2024/info/language-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. --->
+
+
+# Immersive language learning with Emacs
+Sebastian Dümcke (he/him) - <https://sam-d.com>, <mailto:code@sam-d.com>
+
+[[!inline pages="internal(2024/info/language-before)" raw="yes"]]
+
+Immersive language learning helps acquiring a new language by
+surrounding oneself in environments where the target language is used
+naturally, rather than learning through traditional instruction or
+translation methods. Short of travelling to places where the language is
+native, one can also emulate this digitally: Watching movies, listening
+to music, podcasts, or radio shows, and reading books, newspapers, or
+websites in the target language.
+
+I will present a framework in Emacs to achieve the typical tasks in
+language learning: increase vocabulary and comprehension (both written
+and aural) to achieve faster fluency, better retention and ideally
+cultural competence. We will investigate how to read written documents
+and websites, watch movies and listen to music/learn lyrics all while
+collecting new vocabulary and concepts. Then we will present a spaced
+repetition framework for improving retention of these concepts.
+
+About the speaker:
+
+I am a curious person, interested to learn. I started using Emacs as a
+project management tool through org-mode 8 years ago. I has really
+helped my stay on top of things while starting my own company. Now my
+use of Emacs is slowly expanding. I was always interested in learning
+new languages: I believe they are the key to other cultures.
+
+
+
+[[!inline pages="internal(2024/info/language-after)" raw="yes"]]
+
+[[!inline pages="internal(2024/info/language-nav)" raw="yes"]]
+
+
diff --git a/2024/talks/learning.md b/2024/talks/learning.md
new file mode 100644
index 00000000..f0259706
--- /dev/null
+++ b/2024/talks/learning.md
@@ -0,0 +1,68 @@
+[[!meta title="Survival of the Skillest: Thriving in the Learning Jungle"]]
+[[!meta copyright="Copyright &copy; 2024 Bala Ramadurai"]]
+[[!inline pages="internal(2024/info/learning-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. --->
+
+
+# Survival of the Skillest: Thriving in the Learning Jungle
+Bala Ramadurai (his/him) - https://balaramadurai.net
+
+[[!inline pages="internal(2024/info/learning-before)" raw="yes"]]
+
+In today's fast-paced world, the need to learn new skills is more crucial
+than ever. The ability to adapt and evolve not only enhances your
+employability but also empowers you to navigate life's challenges more
+effectively. By acquiring new skills, you stay relevant, innovative, and
+capable of seizing opportunities that come your way.
+
+The session will begin with an engaging discussion on the necessity of
+learning new skills, emphasizing that the ability to adapt and evolve is
+crucial. Using the metaphor of "emptying your teacup," you will explore the
+concept of approaching learning with an open mind, ready to absorb new
+knowledge and skills.
+
+Next, you'll dive into actionable techniques for managing your tasks and
+projects efficiently. Bala will introduce the PARA method—Projects, Areas,
+Resources, and Archives—a structured approach to organizing your work and
+life. You will learn how to categorize your tasks, set clear goals, and
+maintain a balanced workflow.
+
+Furthermore, the talk will highlight the importance of regular reviews.
+Weekly, quarterly, and yearly reviews will help you stay on track, reflect
+on your progress, and plan for the future. Through these reviews, you'll be
+encouraged to ask big life questions, such as your financial goals, the
+impact you've had on others, and your work-life balance.
+
+Finally, you'll be introduced to the 9-windows framework, a powerful tool
+for future career planning. Join us and take the first step towards
+mastering the art and developing the mindset of skillful survival in the
+fast-paced ever changing learning jungle.
+
+About the speaker:
+
+Dr. Bala Ramadurai is an author, coach, consultant, podcaster and
+professor. He has authored a book on Design Thinking called Karmic Design
+Thinking (<https://dt.balaramadurai.net>). He has 3 patents to his credit and
+10+ publications in international research journals. He co-founded TRIZ
+Innovation India (<https://trizindia.org>) and is an Adjunct Professor at
+Symbiosis Institute of Business Management (India), Universidad
+Panamericana (Mexico), Symbiosis Institute of Management Studies and
+National Programme on Technology Enhanced Learning (NPTEL). He is also a
+board member in the Board of Studies for Symbiosis International University.
+
+In this talk, you'll discover the importance of continuous skill
+development and learn practical strategies to manage your personal and
+professional growth effectively using Emacs org-mode, Getting Things Done
+(David Allen's GTD), PARA (Tiego Forte's Projects-Areas-Resources-Archives)
+and system operator (or 9-windows). Bala will guide you through a
+transformative journey of self-improvement and productivity.
+
+See also:
+
+[[!inline pages="internal(2024/info/learning-after)" raw="yes"]]
+
+[[!inline pages="internal(2024/info/learning-nav)" raw="yes"]]
+
+
diff --git a/2024/talks/links.md b/2024/talks/links.md
new file mode 100644
index 00000000..37ce2df1
--- /dev/null
+++ b/2024/talks/links.md
@@ -0,0 +1,54 @@
+[[!meta title="Unlocking linked data: replacing specialized apps with an Org-based semantic wiki"]]
+[[!meta copyright="Copyright &copy; 2024 Abhinav Tushar"]]
+[[!inline pages="internal(2024/info/links-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. --->
+
+
+# Unlocking linked data: replacing specialized apps with an Org-based semantic wiki
+Abhinav Tushar (he/him) - abhinav@lepisma.xyz, https://lepisma.xyz, @lepisma@mathstodon.xyz
+
+[[!inline pages="internal(2024/info/links-before)" raw="yes"]]
+
+I try to maintain a lot of personal information, annotations, etc. in Org files
+but have historically switched back to purpose built apps for different kinds of
+data. There are recipe managers for recipes, personal CRM tools for people
+related notes, bookmark managers for managing web links, etc. While these apps
+do good with the kind of data they work on, they don't operate well together in
+the sense that they don't treat *links* between entities as first class citizen. I
+believe this gap is where a lot of *personal information* live. As an example,
+consider the chain of links that tells 'person a' gave me 'this recipe' on 'my
+anniversary'.
+
+After using zettlekasten via Org-roam for some time, I came to realize the power
+of links that we (can) form between data of different kinds. For me, these links
+offset the loss that comes with leaving specialized apps. With this, I have
+again gone back to Org files, but this time deriving good value from links
+between notes. Of course there are tons of other benefits of using Org files
+like better longevity, portability, versioning, and developer accessibility.
+
+In this talk, I will cover my workflow of creating and managing different kinds
+of notes in Org mode based Semantic Wiki and the link types they tend to have. I
+will also show my workflow outside of Emacs, where I use small tools that sit on
+top of Org files to deliver missing features of niche apps (like availability on
+mobile devices, smart cross data-type queries, etc.).
+
+About the speaker:
+
+I am a Programmer and Machine Learning Engineer, and I love working with
+computers primary because of the early experiences of infinite extensibility
+that Emacs gave me. For this talk I will cover my journey of using Org files
+for notes, then leaving for specialized applications, and finally coming back to
+Org to unlock the benefits of linked data.
+
+---
+Another talk by this speaker:
+
+- [EmacsConf - 2023 - talks - MatplotLLM, iterative natural language data visualization in org-babel](https://emacsconf.org/2023/talks/matplotllm/)
+
+[[!inline pages="internal(2024/info/links-after)" raw="yes"]]
+
+[[!inline pages="internal(2024/info/links-nav)" raw="yes"]]
+
+
diff --git a/2024/talks/literate.md b/2024/talks/literate.md
new file mode 100644
index 00000000..0fb0a0de
--- /dev/null
+++ b/2024/talks/literate.md
@@ -0,0 +1,50 @@
+[[!meta title="Literate Programming for the 21st Century"]]
+[[!meta copyright="Copyright &copy; 2024 Howard Abrams"]]
+[[!inline pages="internal(2024/info/literate-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. --->
+
+
+# Literate Programming for the 21st Century
+Howard Abrams (he/him) - @howard@emacs.ch , <https://www.howardism.org>
+
+[[!inline pages="internal(2024/info/literate-before)" raw="yes"]]
+
+Donald Knuth’s idea of *literate programming* in the 80’s and 90’s was
+interesting, but he didn’t realize what Emacs and Org can do in this
+century. In this talk, I would like to go back your initial *dabblings*
+with Org `src` blocks to show how you can program *literately* as quickly
+as you can in any other mode.
+
+Some of the tips and tricks include:
+
+- Automatically keeping your lit code sync’d
+- Easier code generation
+- Jumping to Org headers to help organize code
+- Jumping to code definitions with the xref interface
+
+At the end of this talk, I hope to inspire you to try it again, as my
+personal “go to” is *programming literately*.
+
+I will be following the format and outline in my essay:
+<https://howardism.org/Technical/Emacs/literate-writ-large.html>
+
+About the speaker:
+
+About ten years ago, I gave a talk I called *literate devops* and people
+still ask me if I still use those techniques. For all my personal
+projects, I do. Even projects that I share with others, I often *start*
+programming with an Org file.
+
+I will admit, programming within Org blocks has some burrs, but over
+the years, I’ve filed them off with helper functions, snippets and
+other features. Thought I would share these.
+
+
+
+[[!inline pages="internal(2024/info/literate-after)" raw="yes"]]
+
+[[!inline pages="internal(2024/info/literate-nav)" raw="yes"]]
+
+
diff --git a/2024/talks/mcclim.md b/2024/talks/mcclim.md
new file mode 100644
index 00000000..432a0180
--- /dev/null
+++ b/2024/talks/mcclim.md
@@ -0,0 +1,121 @@
+[[!meta title="Elisp and McCLIM"]]
+[[!meta copyright="Copyright &copy; 2024 screwlisp"]]
+[[!inline pages="internal(2024/info/mcclim-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. --->
+
+
+# Elisp and McCLIM
+he or e/em/eir (Spivak, male and neuter pronouns are fine) - IRC: screwlisp, Mastodon: @screwtape@mastodon.sdf.org liberachat: screwlisp MOO: lambda.moo.mud.org Name: screwtape Moo mail preferred
+
+[[!inline pages="internal(2024/info/mcclim-before)" raw="yes"]]
+
+The gist is demoing using McCLIM common lisp interface manager
+implementation to make Sandewall 1978's lisp iconic example
+scheduler app, but to drive it to and from emacs lisp via slime
+and swank.
+
+To start with, a beginner walkthrough on getting slime and
+common lisp and mcclim, and configuring and using them with
+emacs org-mode.
+
+The default clim application-frame is made and its interactor
+used.
+
+A CLIM command is then defined to refer the default describe to
+emacs lisp rather than the inferior lisp.
+
+CLIM useage with no gui via slime / org-mode is demoed.
+
+This is then used via emacs lisp.
+
+CLIM's accepting-values is used to generate an anonymous gui
+that accepts a value **into elisp**.
+
+A small final discussion on integrating the clim scheduler back
+and forth into org-agenda.
+
+Bib:
+
+```
+ @article{sandewall1978programming,
+ title={Programming in an Interactive Environment:
+ the``Lisp''Experience},
+ author={Sandewall, Erik},
+ journal={ACM Computing Surveys (CSUR)},
+ volume={10},
+ number={1},
+ pages={35--71},
+ year={1978},
+ publisher={ACM New York, NY, USA}
+ }
+
+ @inproceedings{strandh2002free,
+ title={A free implementation of clim},
+ author={Strandh, Robert and Moore, Timothy},
+ booktitle={International Lisp Conference Proceedings},
+ year={2002}
+ }
+
+ @article{fruhwirth2006guided,
+ title={A Guided Tour of CLIM, Common Lisp Interface Manager},
+ author={Fruhwirth, Clemens},
+ journal={Lisp Pointers},
+ year={2006}
+ }
+
+ @article{kochmanskimcclim,
+ title={McCLIM Demonstration},
+ author={Kochmanski, Daniel}
+ }
+
+ @inproceedings{kochmanski2020ecl,
+ title={On ECL, the Embeddable Common Lisp (ELS keynote).},
+ author={Kochmanski, Daniel},
+ booktitle={ELS},
+ year={2020}
+ }
+
+ @misc{beane2012quicklisp,
+ title={Quicklisp},
+ author={Beane, Zach},
+ year={2012}
+ }
+
+ @misc{marsden2003slime,
+ title={SLIME: The superior lisp interaction mode for emacs},
+ author={Marsden, Eric and Gorrie, Luke and Eller, Helmut and others},
+ year={2003},
+ publisher={URL: https://common-lisp. net/project/slime/(visited on
+ 05/19/2017)}
+ }
+
+ @article{dominik2004org,
+ title={Org mode manual},
+ author={Dominik, Carsten},
+ year={2004}
+ }
+```
+
+About the speaker:
+
+I'm screwlisp from the lispy gopher climate, a weekly Wednesday
+000UTC podcast (non-radio show) on aNONradio.net powered by sdf.org;
+(also the lesser-known Friday 1400UTC show, Zhen House Zhen Bonkwave.
+
+We are fortunate to have many great people in our live chat that
+happens in LambdaMOO during the shows. Last week, we shared Rog's
+new writing on his current personal emacs modes with his decades
+of emacs useage. (Roger Crew). That's not what this talk is about
+though, though we often deal with emacs and McCLIM, which **are** what
+this talk is about. I have many friends who picked those up in some
+small part thanks to the show.
+
+
+
+[[!inline pages="internal(2024/info/mcclim-after)" raw="yes"]]
+
+[[!inline pages="internal(2024/info/mcclim-nav)" raw="yes"]]
+
+
diff --git a/2024/talks/org-teach.md b/2024/talks/org-teach.md
new file mode 100644
index 00000000..5cb22c24
--- /dev/null
+++ b/2024/talks/org-teach.md
@@ -0,0 +1,46 @@
+[[!meta title="org-teach: a minor mode for writing course materials in Emacs"]]
+[[!meta copyright="Copyright &copy; 2024 James Endres Howell"]]
+[[!inline pages="internal(2024/info/org-teach-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. --->
+
+
+# org-teach: a minor mode for writing course materials in Emacs
+James Endres Howell (he/him) - <mailto:james@endres-howell.org>
+
+[[!inline pages="internal(2024/info/org-teach-before)" raw="yes"]]
+
+I will demonstrate how I used Emacs to produce all the materials for teaching an undergraduate
+molecular and cell biology course at a very large university. My org-teach package
+(<https://git.sr.ht/~jamesendreshowell/org-teach/>) is a collection of Org macros that customize export
+to LaTeX and Beamer in order to produce (1) textbook-style handouts, (2) slides for classroom
+presentation, and (3) quiz and exam questions, all from a single Org source document. It also
+provides a simple minor mode that facilitates authoring such source documents. We will discuss the
+benefits of producing course materials as plain-text outlines, and of exploiting the power of Emacs
+and Org mode for writing and managing book-length teaching materials.
+
+Last year at EmacsConf 2023, I presented some aspects of an earlier version of org-teach
+(<https://git.sr.ht/~jamesendreshowell/org-teach-EmacsConf2023>). This talk will provide more
+background, more details, and some exciting new features.
+
+About the speaker:
+
+James Endres Howell has taught Molecular and Cell
+Biology, Biochemistry, Microbiology, Immunology,
+Toxicology, and Molecular Medicine at Penn State
+since 2006. Recently Dr. Howell has developed
+popular courses for non-science majors in
+Genetics, Ecology and Evolution; Science in
+Literature; and Science in Media. He has used
+Emacs daily since 1988.
+
+Another talk by this speaker:
+
+- [EmacsConf - 2023 - talks - Authoring and presenting university courses with Emacs and a full libre software stack](https://emacsconf.org/2023/talks/uni/)
+
+[[!inline pages="internal(2024/info/org-teach-after)" raw="yes"]]
+
+[[!inline pages="internal(2024/info/org-teach-nav)" raw="yes"]]
+
+
diff --git a/2024/talks/p-search.md b/2024/talks/p-search.md
new file mode 100644
index 00000000..01e8aed7
--- /dev/null
+++ b/2024/talks/p-search.md
@@ -0,0 +1,61 @@
+[[!meta title="p-search: a local search engine in Emacs"]]
+[[!meta copyright="Copyright &copy; 2024 Zac Romero"]]
+[[!inline pages="internal(2024/info/p-search-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. --->
+
+
+# p-search: a local search engine in Emacs
+Zac Romero - <mailto:zacromero@posteo.com>
+
+[[!inline pages="internal(2024/info/p-search-before)" raw="yes"]]
+
+Search is an essential part of any digital work. Despite this
+importance, most tools don't go beyond simple string/regex matching.
+Oftentimes, a user knows more about what they're looking for: who
+authored the file, how often it's modified, as well as search terms that
+the user is only slightly confident exist.
+
+p-search is a search-engine designed to combine the various prior
+knowledge about the search target, presenting it to the user in a
+systematic way. In this talk, I will present this package as well as go
+over the fundamentals of inforation retrieval.
+
+Details:
+
+In this talk, I will go over the p-search. p-search is a search-engine
+to assist users in finding things, with a focus on flexibility and
+customizablity.
+
+The talk will begin by going over concepts from the field of information
+retrieval such as indexing, querying, ranking, and evaluating. This
+will provide the necessary background to describe the workings of
+p-search.
+
+Next, an overview of the p-search package and its features will be
+given. p-search utilizes a probabilistic framework to rank documents
+according to prior beliefs as to what the file is. So for example, a
+user might know for sure that the file contains a particular string,
+might have a strong feeling that it should contain another word, and
+things that some other words it may contain. The user knows the file
+extension, the subdirectory, and has known that a particular person
+works on this file a lot. p-search allows the user to express all of
+these predicates at once, and ranks documents accordingly.
+
+The talk will then progress to discuss assorted topics concerting the
+project, such as design considerations and future directions.
+
+The aim of the talk is to expand the listeners' understanding of search
+as well as inspire creativity concerning the possibilities of search
+tools.
+
+Code: <https://github.com/zkry/p-search>
+
+
+
+[[!inline pages="internal(2024/info/p-search-after)" raw="yes"]]
+
+[[!inline pages="internal(2024/info/p-search-nav)" raw="yes"]]
+
+
diff --git a/2024/talks/papers.md b/2024/talks/papers.md
new file mode 100644
index 00000000..c4c457c7
--- /dev/null
+++ b/2024/talks/papers.md
@@ -0,0 +1,53 @@
+[[!meta title="Writing academic papers in Org-Roam"]]
+[[!meta copyright="Copyright &copy; 2024 Vincent Conus"]]
+[[!inline pages="internal(2024/info/papers-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. --->
+
+
+# Writing academic papers in Org-Roam
+Vincent Conus (he/him) - Pronunciation: vɪnsᵊnt koʊnᵊs, IRC: sunoc, Mastodon: @sunoc@social.linux.pizza, <mailto:vincent.conus@pm.me>
+
+[[!inline pages="internal(2024/info/papers-before)" raw="yes"]]
+
+Org-mode and more so org-roam are making for a fantastic note-taking system
+inside Emacs. Combining the note-taking of org-mode, the capability to export
+a note to LaTeX and PDF directly, the spectacular org-roam-bibtex package
+and the flexibility of the elisp configuration of Emacs, it become possible
+to use a org-roam note as the main document for write academic papers, even
+when exotic templates are provided.
+
+In this presentation, I want to talk about the way I am using org-roam to write
+LaTeX documents, the benefits of it but also the various pitfalls and
+difficulties encountered in this journey.
+
+The key benefits being:
+
+- The integration with other org-roam notes.
+- Bibliography integration and links directly to PDF.
+- Org-mode literate programming capabilities.
+- Direct export to PDF.
+
+The main challenges are:
+
+- Dealing with strangely formatted LaTeX templates.
+- Related, having to use other LaTeX compilers.
+- These two points can make citation of references, in particular, challenging.
+
+About the speaker:
+
+A PhD student in robotics at
+Nanzan University, Japan. I have been using Linux for around 10 years at that
+point, eventually moving many of my work and personal stuff to Emacs over the
+years, including academic writing.
+
+See also:
+
+[[!taglink CategoryOrgMode]]
+[[!taglink CategoryRoam]]
+
+[[!inline pages="internal(2024/info/papers-after)" raw="yes"]]
+
+[[!inline pages="internal(2024/info/papers-nav)" raw="yes"]]
+
diff --git a/2024/talks/pgmacs.md b/2024/talks/pgmacs.md
new file mode 100644
index 00000000..232294ac
--- /dev/null
+++ b/2024/talks/pgmacs.md
@@ -0,0 +1,49 @@
+[[!meta title="PGmacs: browsing and editing PostgreSQL databases from Emacs"]]
+[[!meta copyright="Copyright &copy; 2024 Eric Marsden"]]
+[[!inline pages="internal(2024/info/pgmacs-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. --->
+
+
+# PGmacs: browsing and editing PostgreSQL databases from Emacs
+Eric Marsden (he/him) - <mailto:eric.marsden@risk-engineering.org>
+
+[[!inline pages="internal(2024/info/pgmacs-before)" raw="yes"]]
+
+PGmacs provides an Emacs-based browsing and
+editing interface for the PostgreSQL DBMS. It
+allows you to browse the contents of database
+tables, in paginated mode for large tables, to
+edit column values in the minibuffer or using a
+widget-based interface, to delete, copy and insert
+new rows, and to save the contents of a table in
+CSV or JSON format. You can run shell commands on
+column values. You can also rename tables and
+columns, add SQL comments, and generate SchemaSpy
+diagrams.
+
+PGmacs works both in the terminal and in GUI mode.
+It uses the pg-el library, which implements the
+PostgreSQL wire protocol, to connect to PostgreSQL
+over the network or over a Unix socket.
+
+The talk will provide an overview of the functionality of PGmacs, then show how it can be easily
+extended to display images stored as database BLOBs inlined in a row-list buffer.
+
+About the speaker:
+
+Eric Marsden developed his first Emacs packages
+pg-el, coffee.el (an implementation of the
+essential Hyper Text Coffee Pot Control Protocol)
+and ipp.el as a procrastination exercise to avoid
+working on his PhD. He continues to use Emacs Lisp
+in his spare time.
+
+
+
+[[!inline pages="internal(2024/info/pgmacs-after)" raw="yes"]]
+
+[[!inline pages="internal(2024/info/pgmacs-nav)" raw="yes"]]
+
+
diff --git a/2024/talks/project.md b/2024/talks/project.md
new file mode 100644
index 00000000..65c33ac1
--- /dev/null
+++ b/2024/talks/project.md
@@ -0,0 +1,64 @@
+[[!meta title="Managing writing project metadata with org-mode"]]
+[[!meta copyright="Copyright &copy; 2024 Blaine Mooers"]]
+[[!inline pages="internal(2024/info/project-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. --->
+
+
+# Managing writing project metadata with org-mode
+Blaine Mooers (he/him) - Pronunciation: Blane Moors, <mailto:blaine-mooers@ouhsc.edu>
+
+[[!inline pages="internal(2024/info/project-before)" raw="yes"]]
+
+The planning and writing of a scientific manuscript is an intricate process that requires focused effort.
+Scientists must make many decisions about what to include and exclude from the paper, often capturing these decisions in notes in the margins, appended notes, or external files.
+This ad hoc approach becomes unmanageable when the notes exceed the length of the manuscript, which is often the case.
+Nonetheless, these notes can be vital when responding to reviewers' critiques.
+
+Great scientists like Linus Pauling effectively utilized laboratory notebooks to store metadata on his manuscripts.
+His cross-referencing system resembled that of Niklas Luhmann in his physical zettelkasten.
+These paper-based approaches have pros and cons, but they are no longer popular because of the hard work required to make them work well.
+In comparison, the org-roam-ui view of my zettelkasten provides a garden of endlessly forking paths I can wander in all day.
+
+I sought a more focused approach to managing my attention and the metadata for one writing project.
+I developed a project-specific writing log for this purpose about a decade ago.
+The writing log helps me manage anxieties about forgetting where I left off on an interrupted project (Fear of Forgetting, FoF).
+In this talk, I will highlight the features of my writing log template in org-mode.
+
+The first section supports gathering the initial thoughts about the project needed to assemble a central hypothesis around which to build the paper.
+Subsections support listing the experiments required to address the central hypothesis and the key discussion points.
+These subsections include plans for graphical items like images, data plots, tables, equations, and code blocks.
+Of course, this section will evolve as the results accumulate.
+When largely completed, this section supports drafting a quarter to a third of a manuscript on day one of the project.
+
+The following two sections support project administration and assessment.
+The administration section includes plans to apply for funding and approvals for the work.
+The assessment section supports periodic checks of the project's current state, what holds the manuscript from submission today, and what is missing that makes a larger impact.
+This section includes a timeline and milestones to finish the project promptly.
+These can be displayed in tables that org-mode so strongly supports.
+
+The central section of the template contains daily accounts of accomplishments, decisions, and correspondence about the project.
+I read this section after a hiatus to resume work on the project quickly.
+An open-ended to-do list and a section for collecting ideas for future projects follow the daily log.
+The last section contains protocols and guidelines for the various tasks involved in completing the project.
+
+Here, context switching between the writing log and the manuscript is fine because it usually happens only at the beginning and the end of the writing session. My project-specific approach keeps my mind focused on the project at hand and my FoF under control.
+I share my writing log template in org-mode on GitHub.
+
+About the speaker:
+
+Blaine Mooers is an associate professor of Biochemistry and Physiology at the University of Oklahoma.
+He uses X-ray diffraction to study the molecular structure of proteins and RNAs important in disease.
+He writes grant applications, progress reports, manuscripts, lectures, seminars, and talks each year in Emacs.
+To control his fear of forgetting (FoF), he uses an external document, the **writing log**, to store metadata about each writing project.
+He switched from using LaTeX to Org-mode recently.
+He will discuss the features of the writing log and the joys of editing it in Org-mode.
+
+
+
+[[!inline pages="internal(2024/info/project-after)" raw="yes"]]
+
+[[!inline pages="internal(2024/info/project-nav)" raw="yes"]]
+
+
diff --git a/2024/talks/regex.md b/2024/talks/regex.md
new file mode 100644
index 00000000..32ea74f5
--- /dev/null
+++ b/2024/talks/regex.md
@@ -0,0 +1,37 @@
+[[!meta title="Emacs regex compilation and future directions for expressive pattern matching"]]
+[[!meta copyright="Copyright &copy; 2024 Danny McClanahan"]]
+[[!inline pages="internal(2024/info/regex-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. --->
+
+
+# Emacs regex compilation and future directions for expressive pattern matching
+Danny McClanahan (they/them) - Pronunciation: məˈklænəˌhæn / mk-CLAN-uh-han, han like "hand", IRC: cosmicexplorer, @hipsterelectron@circumstances.run on mastodon - @hipsterelectron on twitter - @cosmicexplorer on github - @cosmicexplorer in #emacsconf on irc.libera.chat, <mailto:dmcC2@hypnicjerk.ai>
+
+[[!inline pages="internal(2024/info/regex-before)" raw="yes"]]
+
+Emacs is a delightful case study for the capabilities of regular expressions, because Emacs forms user interfaces via text, which retains the expressivity of a GUI with the user-level interactivity of written language. Because we use text for both input and output, regexps in Emacs form part of a user-level grammar for human thought. As a result, Emacs and Emacs users have a rich intuitive grasp of regular expressions, which provides a unique vantage point to consider how they may be improved in general.
+
+When I began my investigation, I assumed that Emacs would be able to use an existing off-the-shelf regex engine, that this would be more performant than regex-emacs.c, and that the greatest challenge would be providing a sufficiently robust build process (see emacs-devel: <https://lists.gnu.org/archive/html/emacs-devel/2024-04/msg00142.html>). However, I quickly found that Emacs (as usual) is far more configurable than alternatives (see rust regex discussion: <https://github.com/rust-lang/regex/discussions/1167#discussioncomment-8585027>). Now don't get this twisted: emacs-devel was open to deprecating functionality that hampered optimization! But the biggest challenge by far is that regex-emacs.c is categorically more powerful than alternatives: it can match against <span class="underline">non-contiguous input</span> (across both halves of the gap buffer), as well as non-UTF8 text with its fantastic multibyte encoding (see <https://www.gnu.org/software/emacs/manual/html_node/elisp/Text-Representations.html>).
+
+So a more complex picture begins to emerge: Emacs actually uses regexps far more widely and deeply than anywhere else, and its regex engine requirements aren't "legacy", but the result of caring more deeply about language than anywhere else. While regex engines have historically been known to introduce functionality not backed by formal theory that's later found to be hard to optimize, Emacs instead charts a path for other engines to follow. Formalizing backrefs is state-of-the-art, but possible (see <https://jamiejennings.com/posts/2021-09-23-dont-look-back-2/>), and I believe the same can be achieved for the other affordances Emacs users have come to expect. Subsequently, I have focused on identifying where we can constrain the problem space to improve performance without losing those affordances, such as explicit precompilation in lisp code (see <https://lists.gnu.org/archive/html/emacs-devel/2024-08/msg00108.html>).
+
+There are many branching paths here. With the libgccjit native compiler, we can now implement regex matching in lisp itself. While \`rx' can compose patterns to an extent, we could provide a more powerful primitive than regular expressions alone for complex parsing tasks. And while many regex engines employ complex optimization heuristics, we can instead introduce specific functionality for e.g. SIMD literal search into lisp code, allowing lisp users to intelligently select for themselves how and when to employ less-powerful but more-performant search routines.
+
+We don't need to backtrack! We can try all these paths at once.
+
+About the speaker:
+
+Me: Typing free software to break the shoulders of giants from golden handcuffs.
+Work: Composeable build tools, parsing frameworks, and cryptographic messaging. All of these are misused to subjugate and oppress, but I build infrastructure for positive liberties.
+
+This talk will cover my train of thought over the course of this year on how regex engines in general may be improved, and the discussions with emacs-devel that have helped me along. I hope this talk will convince people of the boundless future directions in text search. My PhD research will be inspired by the expressivity and power of Emacs.
+
+
+
+[[!inline pages="internal(2024/info/regex-after)" raw="yes"]]
+
+[[!inline pages="internal(2024/info/regex-nav)" raw="yes"]]
+
+
diff --git a/2024/talks/repro.md b/2024/talks/repro.md
new file mode 100644
index 00000000..41712957
--- /dev/null
+++ b/2024/talks/repro.md
@@ -0,0 +1,36 @@
+[[!meta title="Reproducibly building Emacs: “Hey your checksum is the same as mine!”"]]
+[[!meta copyright="Copyright &copy; 2024 Aaron Grothe"]]
+[[!inline pages="internal(2024/info/repro-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. --->
+
+
+# Reproducibly building Emacs: “Hey your checksum is the same as mine!”
+Aaron Grothe (he/him) - Pronunciation: Err-In Growth-e, <https://www.grothe.us> LinkedIn: <https://www.linkedin.com/in/aaron-grothe/>, <mailto:ajgrothe@yahoo.com>
+
+[[!inline pages="internal(2024/info/repro-before)" raw="yes"]]
+
+The idea of a reproducible build is that you can build a package and I can build a package and we both produce the same executable.  There are security benefits to being able to create a reproducible build ensuring the integrity and reliability of the build.  There are also benefits in the world of debugging/testing as you can confirm that the end user has the same executable as the developer.
+
+The Debian project has been making huge strides with this.  With a goal to have the next Debian release “Trixie” only having 256 non-reproducible packages.  Unfortunately as of September 19, 2024 GNU Emacs is one of them.  GNU Emacs is currently in the dreaded FTBFS (Fails To Build From Source) section for reproducible builds.   Other Linux distributions including Arch and NixOS are working towards the same goal.
+
+This talk will be an overview of what is/was preventing us from producing a reproducible build for GNU Emacs and what it will take to get GNU Emacs to join this August club.   
+
+The talk will also contrast the difference between reproducible builds and the OpenBSD projects approach of randomized executables.
+
+We’ll be doing a high level overview of the Reproducible Builds - <https://reproducible-builds.org/> project and the tools, procedures, techniques they’ve put together for making the entire procedure reproducible 🙂
+
+About the speaker:
+
+Aaron Grothe has been a developer for many years. He is a two-time winner of the International Obfuscated C Code Contest <https://www.ioccc.org> and has a couple of small pieces of code in the Linux kernel. He has been published several times in 2600 magazine.  He is interested in code correctness and how we can write safer code as we head into the future. 
+
+Currently (September 19, 2024) GNU Emacs is not generating a reproducible build for GNU Debian.  This talk is a quick introduction to reproducible builds and what it will take to get GNU Emacs to generate a reproducible build.
+
+
+
+[[!inline pages="internal(2024/info/repro-after)" raw="yes"]]
+
+[[!inline pages="internal(2024/info/repro-nav)" raw="yes"]]
+
+
diff --git a/2024/talks/rust.md b/2024/talks/rust.md
new file mode 100644
index 00000000..e994d28f
--- /dev/null
+++ b/2024/talks/rust.md
@@ -0,0 +1,34 @@
+[[!meta title="An Experimental Emacs Core in Rust"]]
+[[!meta copyright="Copyright &copy; 2024 Troy Hinckley"]]
+[[!inline pages="internal(2024/info/rust-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 Experimental Emacs Core in Rust
+Troy Hinckley - <https://coredumped.dev>, <mailto:troy@troyhinckley.com>
+
+[[!inline pages="internal(2024/info/rust-before)" raw="yes"]]
+
+An overview and discussion and early prototype of a new Emacs core written in Rust. The talk covers some of the interesting design choices in the GNU Emacs C core, as well as some of the trade-offs made in the Rust core. <https://github.com/CeleritasCelery/rune>
+
+- What is the Emacs core?
+- How has the core evolved?
+- Design trade-offs
+ - multi-threading
+ - Precise GC
+- Being bug compatible with GNU Emacs
+- Comparison
+
+About the speaker:
+
+Hardware Engineer with interest in low-level programming and the hardware-software boundary.
+
+
+
+[[!inline pages="internal(2024/info/rust-after)" raw="yes"]]
+
+[[!inline pages="internal(2024/info/rust-nav)" raw="yes"]]
+
+
diff --git a/2024/talks/secrets.md b/2024/talks/secrets.md
new file mode 100644
index 00000000..ebe75187
--- /dev/null
+++ b/2024/talks/secrets.md
@@ -0,0 +1,28 @@
+[[!meta title="Committing secrets with git using sops-mode"]]
+[[!meta copyright="Copyright &copy; 2024 Jonathan Otsuka"]]
+[[!inline pages="internal(2024/info/secrets-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. --->
+
+
+# Committing secrets with git using sops-mode
+Jonathan Otsuka - Pronunciation: O-tsu-ka, <https://github.com/djgoku/sops>, <mailto:pitas.axioms0c@icloud.com>
+
+[[!inline pages="internal(2024/info/secrets-before)" raw="yes"]]
+
+This is my first Emacs mode, and it was primarily driven by necessity. The process was manual prior. I wanted to encrypt and decrypt all operations within my current Emacs instance. Currently, I have some notes on how to quickly decrypt and encrypt using AWS KMS. However, it works seamlessly with GPG. I need to add some notes on the age and GCP KMS.
+
+<https://github.com/djgoku/sops>
+
+About the speaker:
+
+My name is Jonathan Otsuka. I have a background in software development and SRE/DevOps. In my free time, I enjoy optimizing my workflow, contributing to open-source projects I use, and engaging in swimming and cycling.
+
+
+
+[[!inline pages="internal(2024/info/secrets-after)" raw="yes"]]
+
+[[!inline pages="internal(2024/info/secrets-nav)" raw="yes"]]
+
+
diff --git a/2024/talks/sharing.md b/2024/talks/sharing.md
new file mode 100644
index 00000000..4c71a925
--- /dev/null
+++ b/2024/talks/sharing.md
@@ -0,0 +1,39 @@
+[[!meta title="So You Want To Be An Emacs-Fluencer?"]]
+[[!meta copyright="Copyright &copy; 2024 Gopar"]]
+[[!inline pages="internal(2024/info/sharing-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. --->
+
+
+# So You Want To Be An Emacs-Fluencer?
+Gopar - IRC: gopar, <https://www.youtube.com/@goparism/> , <mailto:gopardaniel@gmail.com>
+
+[[!inline pages="internal(2024/info/sharing-before)" raw="yes"]]
+
+Ever thought about sharing your Emacs knowledge? Starting a YouTube
+channel, blog, podcast, or even smoke signals to share those tidbits? If
+you’ve answered "No", then I'd like to change your mind. And if you said
+"Yes", then you're already on the right path.
+
+In this talk, I will share what I've learned from my journey as an Emacs
+advocate, including tips, setups (both current and past), and various
+alternatives to get your works out there. Most importantly, I'll discuss
+why your story and perspective matter, even if you think otherwise. Your
+unique experience can inspire and help others in the Emacs community.
+
+About the speaker:
+
+Gopar, a fellow Emacs user and advocate, will be sharing insights on how
+everyone can become the Emacs Influencer they never knew they wanted to be.
+
+From starting a YouTube channel to writing blogs, Gopar will provide
+practical tips and share personal experiences to help you embark on your
+journey of sharing Emacs knowledge.
+
+
+[[!inline pages="internal(2024/info/sharing-after)" raw="yes"]]
+
+[[!inline pages="internal(2024/info/sharing-nav)" raw="yes"]]
+
+
diff --git a/2024/talks/shell.md b/2024/talks/shell.md
new file mode 100644
index 00000000..69e8575a
--- /dev/null
+++ b/2024/talks/shell.md
@@ -0,0 +1,35 @@
+[[!meta title="Emacs as a Shell"]]
+[[!meta copyright="Copyright &copy; 2024 Christopher Howard"]]
+[[!inline pages="internal(2024/info/shell-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. --->
+
+
+# Emacs as a Shell
+Christopher Howard (he/him) - IRC: lispmacs, <mailto:christopher@librehacker.com>
+
+[[!inline pages="internal(2024/info/shell-before)" raw="yes"]]
+
+A shell, such as Bash, is fundamentally an
+interface to your operating system. It allows you
+to run programs, direct I/O, manage processes, and
+interact with the file system, as well as script
+such activities. Allowing for a few caveats, we
+can see that Emacs is capable of doing all these
+things, and therefore Emacs can be used a
+practical replacement for the traditional shell.
+This talk aims to explain this philosophy, to
+explore Emacs' basic shell functionality, and to
+address various caveats.
+
+See also these other talks by the same speaker:
+
+- [EmacsConf - 2024 - talks - Watering my (digital) plant with Emacs timers](https://emacsconf.org/2024/talks/water/)
+- [EmacsConf - 2023 - talks - Org-Mode Workflow: Informal Reference Tracking](https://emacsconf.org/2023/talks/ref/)
+
+[[!inline pages="internal(2024/info/shell-after)" raw="yes"]]
+
+[[!inline pages="internal(2024/info/shell-nav)" raw="yes"]]
+
+
diff --git a/2024/talks/students.md b/2024/talks/students.md
new file mode 100644
index 00000000..7a6168ba
--- /dev/null
+++ b/2024/talks/students.md
@@ -0,0 +1,47 @@
+[[!meta title="An example of a cohesive student workflow in Emacs"]]
+[[!meta copyright="Copyright &copy; 2024 Daniel Pinkston"]]
+[[!inline pages="internal(2024/info/students-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 example of a cohesive student workflow in Emacs
+Daniel Pinkston (he/him) - IRC: bardman, develop dot bard at-symbol gmail dot com
+
+[[!inline pages="internal(2024/info/students-before)" raw="yes"]]
+
+Most successful students have a go-to system for staying organized. It
+might be Notion, Obsidian, a bullet journal, or a simple paper planner.
+ The key is finding what fits your personal needs and style. Here's an
+interesting option some students might not have considered: Emacs.
+It's a tool that's popular with Linux people, but possibly overlooked by
+others. For the right person, it could be a game-changer in managing
+academic life.
+
+This talk is meant to showcase how different Emacs tools integrate with
+each other to create a cohesive work environment for students.
+
+Links:
+
+- Denote <https://github.com/protesilaos/denote> - the keystone package for my preferred note taking method
+- Logos <https://github.com/protesilaos/logos> - a focus-mode tool for writing
+- PDF-tools <https://github.com/vedang/pdf-tools> - pdf viewer
+- Anki-editor <https://github.com/louietan/anki-editor> - my favorite package for making flashcards in Emacs
+- Org-fragtog <https://github.com/io12/org-fragtog> - auto toggles LaTeX fragments in my org documents
+- Org-download <https://github.com/abo-abo/org-download> - facilitates quick image addition to org documents
+- My Emacs configuration <https://github.com/BardofSprites/.emacs.d> - includes not only writing, but programming
+
+About the speaker:
+
+I am Daniel Pinkston, a high school student (grade 12) interested in Emacs,
+Linux, programming, and customizable/libre software. I have been using
+Emacs since 2022, starting with DOOM Emacs.
+
+
+
+[[!inline pages="internal(2024/info/students-after)" raw="yes"]]
+
+[[!inline pages="internal(2024/info/students-nav)" raw="yes"]]
+
+
diff --git a/2024/talks/theme.md b/2024/talks/theme.md
new file mode 100644
index 00000000..9df68c8b
--- /dev/null
+++ b/2024/talks/theme.md
@@ -0,0 +1,33 @@
+[[!meta title="My journey of finding and creating the “perfect” Emacs theme"]]
+[[!meta copyright="Copyright &copy; 2024 MetroWind"]]
+[[!inline pages="internal(2024/info/theme-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. --->
+
+
+# My journey of finding and creating the “perfect” Emacs theme
+MetroWind (he/him) - IRC: MetroWind, Fediverse (pleroma): mw@pleroma.xeno.darksair.org - Matrix: @mw:darksair.org
+
+[[!inline pages="internal(2024/info/theme-before)" raw="yes"]]
+
+In this talk I will share my experience of finding and creating the
+“perfect” Emacs theme. I will go through the five themes I have
+created and discuss the motivations and ideas behind them, which will
+also introduce various color spaces. And I will look into the future
+to see if there is hope to find the "perfect" theme.
+
+About the speaker:
+
+I'm a long time Emacs user (since Emacs 21). I don't write a lot of
+elisp but I'm spend vast majority of my screen time with Emacs, and
+I'm picky about how it looks. This talk shows how may hoops I'm
+willing to jump through to make it look "right".
+
+
+
+[[!inline pages="internal(2024/info/theme-after)" raw="yes"]]
+
+[[!inline pages="internal(2024/info/theme-nav)" raw="yes"]]
+
+
diff --git a/2024/talks/transducers.md b/2024/talks/transducers.md
new file mode 100644
index 00000000..5abe4371
--- /dev/null
+++ b/2024/talks/transducers.md
@@ -0,0 +1,47 @@
+[[!meta title="Transducers: finally, ergonomic data processing for Emacs!"]]
+[[!meta copyright="Copyright &copy; 2024 Colin Woodbury"]]
+[[!inline pages="internal(2024/info/transducers-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. --->
+
+
+# Transducers: finally, ergonomic data processing for Emacs!
+Colin Woodbury (he) - <https://x.com/@fosskers> , @fosskers@m.fosskers.ca on Mastodon, <https://www.fosskers.ca>
+
+[[!inline pages="internal(2024/info/transducers-before)" raw="yes"]]
+
+Transducers are an ergonomic and extremely memory-efficient way to process a
+data source. Here "data source" means simple collections like Lists or
+Vectors,
+but also potentially large files or generators of infinite data.
+
+Transducers&#x2026;
+
+- allow the chaining of operations like map and filter without allocating memory between each step.
+- aren't tied to any specific data type; they need only be implemented once.
+- vastly simplify "data transformation code".
+- have nothing to do with "lazy evaluation".
+- are a joy to use!
+
+In this talk, Colin will introduce Transducers, show how to use them, and
+demonstrate some Emacs-specific workflows that make live processing of large
+data sets in JSON and CSV a breeze.
+
+About the speaker:
+
+Colin has been active in the FOSS world since 2011, publishing libraries and
+applications primarily in Haskell and Rust. Since 2023 he has been using
+Lisps
+more and more, and after falling in love with Transducers from Clojure has
+ported the pattern to three other Lisps.
+
+Colin is originally from Canada and lives in Japan.
+
+
+
+[[!inline pages="internal(2024/info/transducers-after)" raw="yes"]]
+
+[[!inline pages="internal(2024/info/transducers-nav)" raw="yes"]]
+
+
diff --git a/2024/talks/water.md b/2024/talks/water.md
new file mode 100644
index 00000000..10454db7
--- /dev/null
+++ b/2024/talks/water.md
@@ -0,0 +1,29 @@
+[[!meta title="Watering my (digital) plant with Emacs timers"]]
+[[!meta copyright="Copyright &copy; 2024 Christopher Howard"]]
+[[!inline pages="internal(2024/info/water-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. --->
+
+
+# Watering my (digital) plant with Emacs timers
+Christopher Howard (he/him) - IRC: lispmacs, http://gem.librehacker.com, <mailto:christopher@librehacker.com>
+
+[[!inline pages="internal(2024/info/water-before)" raw="yes"]]
+
+This talk gives a brief introduction to Emacs timer functionality. I explain how I used Emacs timers to water and harvest my flower on the gemini Astrobotany service.
+
+About the speaker:
+
+Christopher Howard is a simulator technican and free software ethusiast living in Fairbanks, Alaska. Christopher explains how he uses Emacs timers to automatically water and harvest his flower on the Astrobotany gemini service.
+
+See also these other talks by the same speaker:
+
+- [EmacsConf - 2024 - talks - Emacs as a Shell](https://emacsconf.org/2024/talks/shell/)
+- [EmacsConf - 2023 - talks - Org-Mode Workflow: Informal Reference Tracking](https://emacsconf.org/2023/talks/ref/)
+
+[[!inline pages="internal(2024/info/water-after)" raw="yes"]]
+
+[[!inline pages="internal(2024/info/water-nav)" raw="yes"]]
+
+
diff --git a/2024/talks/writing.md b/2024/talks/writing.md
new file mode 100644
index 00000000..d05af940
--- /dev/null
+++ b/2024/talks/writing.md
@@ -0,0 +1,34 @@
+[[!meta title="Emacs Writing Studio"]]
+[[!meta copyright="Copyright &copy; 2024 Peter Prevos"]]
+[[!inline pages="internal(2024/info/writing-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. --->
+
+
+# Emacs Writing Studio
+Peter Prevos (he) - <mailto:peter@prevos.net> , <https://peterprevos.com> , @danderzei@aus.social
+
+[[!inline pages="internal(2024/info/writing-before)" raw="yes"]]
+
+Emacs Writing Studio is a comprehensive guide and configuration
+for authors using Emacs. The book covers everything from
+organising ideas and writing distraction-free to publishing in
+multiple formats. The book itself was fully written and published
+with the configuration it describes. This talk outlines the proces
+of developing this configuration and the book and some
+perspectives on using Emacs as a tool to write for humans.
+
+About the speaker:
+
+Peter Prevos is a water engineer and social scientist. In this
+talk Peter introduces Emacs Writing Studio, a starter kit and
+associated manual for authors with no Emacs experience.
+
+
+
+[[!inline pages="internal(2024/info/writing-after)" raw="yes"]]
+
+[[!inline pages="internal(2024/info/writing-nav)" raw="yes"]]
+
+
diff --git a/donate.md b/donate.md
new file mode 100644
index 00000000..3bdefd11
--- /dev/null
+++ b/donate.md
@@ -0,0 +1,35 @@
+[[!meta title="Donate"]]
+[[!meta copyright="Copyright &copy; 2024 Amin Bandali"]]
+
+[[!template id=pagedraft]]
+
+EmacsConf is a volunteer-run conference organized by a group of people
+passionate about GNU Emacs and Emacs Lisp just like you! :-)
+
+Your donations will help cover the costs for various parts of our
+infrastructure, and help support and sustain EmacsConf year after
+year.[*]
+
+<p class="center"><a href="https://my.fsf.org/civicrm/contribute/transact?reset=1&id=70">❤️ Donate</a></p>
+
+Your donations to EmacsConf are collected and held by our fiscal
+sponsor the Free Software Foundation, a 501(c)(3) nonprofit
+organization with a worldwide mission to promote computer user
+freedom, and are therefore tax-deductible in the United States.
+
+We would like to acknowledge our donors by listing their names
+on our **[[donors]]** page.
+
+---
+
+[*] Don't fret, EmacsConf is not in any financial trouble. :-)
+Our costs have consistently been fairly low and paid out of pocket by
+one of the organizers each year. EmacsConf's main source of strength
+has been our wonderful community, including our amazing volunteers
+without whom EmacsConf would not have been as successful as it has
+been. Monetary donations are merely an additional avenue for folks
+who feel extra generous and so inclined to help cover our
+infrastructure costs and expenses, and we plan on brainstorming and
+asking the community for suggestions and feedback for how to best
+spend any excess funds we may collect to further give back to the
+community.
diff --git a/donors.md b/donors.md
new file mode 100644
index 00000000..a8921a7b
--- /dev/null
+++ b/donors.md
@@ -0,0 +1,29 @@
+[[!meta title="Donors"]]
+
+[[!template id=pagedraft]]
+
+## Thank you!
+
+We are deeply grateful for all the generous donations from our donors.
+
+Below is a list of all of the donations we have received since
+November 2023 when [EmacsConf joined the Free Software Foundation
+fiscal sponsorship program][fsf-emacsconf-announce], the [Working
+Together for Free Software Fund][fsf-working-together-fund].
+
+Donors who agreed to be thanked publicly are listed in alphabetical
+order, and those who chose not to are instead listed as 'Anonymous'.
+
+## 2024
+
+- Jeremy Roe
+
+## 2023
+
+- Anonymous (4)
+- Jan Prunk
+- Scott Randby
+
+
+[fsf-emacsconf-announce]: https://www.fsf.org/news/emacsconf-joins-free-software-foundation-fiscal-sponsorship-program
+[fsf-working-together-fund]: https://www.fsf.org/working-together/fund
diff --git a/edit.md b/edit.md
index 507feca3..dccf7106 100644
--- a/edit.md
+++ b/edit.md
@@ -13,7 +13,7 @@ To edit the wiki, you need to install `git` if it is not installed on
your machine already. After you do the first-time SSH setup below,
you can clone the sources from any one of the following addresses:
- anon@git.emacsconf.org:pub/emacsconf-wiki
+ anon@git.emacsconf.org:emacsconf-wiki
git://git.emacsconf.org/emacsconf-wiki
https://git.emacsconf.org/emacsconf-wiki
diff --git a/organizers-notebook.md b/organizers-notebook.md
index 9589cf57..f5d6206b 100644
--- a/organizers-notebook.md
+++ b/organizers-notebook.md
@@ -20,6 +20,11 @@ This document is the general organizers' notebook that can be used as a starting
- [Create the public organizers&rsquo; notebook in the wiki](#starting-up-the-conference-planning-process-create-the-public-organizers-notebook-in-the-wiki)
- [Phases and lessons learned](#phases-and-lessons-learned)
- [Draft CFP](#phases-and-lessons-learned-draft-cfp)
+ - [Process proposals](#orge2fe34a)
+ - [Accept proposals](#orgac059dd)
+ - [Draft schedule](#draft-schedule)
+- [Other process notes](#other)
+ - [Adding another user to BBB](#bbb-user)
<a id="starting-up-the-conference-planning-process"></a>
@@ -117,4 +122,80 @@ Put inside double square brackets: `!template id=pagedraft`
- It’s easier for us to extend beyond 5pm than to go before 9am
(especially for Pacific time). Extending beyond 5pm puts strain on
European organizers and volunteers, though.
+- Put the speaker introduction right after the talk description for easier web page copying.
+
+
+<a id="orge2fe34a"></a>
+
+## Process proposals
+
+1. In the private repository, create a conf.org.
+2. Set `emacsconf-org-file` to its location.
+3. Create a heading for Submissions and set `CUSTOM_ID` to `submissions`.
+4. Prepare the `prepare` and `submit` pages on the wiki.
+
+When proposals come in:
+
+1. Acknowledge with an e-mail along the lines of:
+
+ Hello, ....!
+
+ <feedback> We'll wait another week in case anyone else wants to
+ chime in before I add it to the wiki and send further notes. :) Thanks for
+ submitting this!
+
+2. Use `emacsconf-mail-add-submission` if it works, or create the entry and paste it in.
+ `org-toggle-item` can help convert Org-style headings into a nested list.
+3. Set the following fields (`my/org-set-property`
+ can be helpful): EMERGENCY, Q\_AND\_A,
+ AVAILABILITY, NAME, PRONOUNS, TIME,
+ SLUG, EMAIL, NAME\_SHORT, CUSTOM\_ID,
+ TRACK, TIMEZONE, CATEGORY, DATE\_SUBMITTED,
+ PUBLIC\_EMAIL
+
+
+<a id="orgac059dd"></a>
+
+## Accept proposals
+
+Setup:
+
+1. Create YYYY/talks.md.
+
+For each talk:
+
+1. Set up &ldquo;Talk abstract&rdquo; and &ldquo;Talk details&rdquo; sections in the conf.org talk subtree.
+2. Change status to `TO_CONFIRM`.
+3. Create wiki page with `emacsconf-publish-add-talk`.
+4. Use `emacsconf-publish-info-pages` and `emacsconf-publish-schedule` as needed.
+5. Send acceptance e-mail with `emacsconf-mail-accept-talk`
+
+
+<a id="draft-schedule"></a>
+
+## Draft schedule
+
+- Create entries for opening and closing remarks
+ - FIXED: t
+ - SCHEDULED
+ - TIME: 10
+ - BUFFER: 0
+ - CUSTOM\_ID:
+ - SLUG:
+ - Q\_AND\_A: pad
+- Create draft-schedule section in the public organizers notebook for the year
+- Add missing items to plan
+
+
+<a id="other"></a>
+
+# Other process notes
+
+
+<a id="bbb-user"></a>
+
+## Adding another user to BBB
+
+ ssh bbb.emacsverse.org
+ docker exec -it greenlight-v2 bundle exec rake user:create["USERNAME","EMAIL","PASSWORD","user"]
diff --git a/organizers-notebook/index.org b/organizers-notebook/index.org
index 358c0108..47c45691 100644
--- a/organizers-notebook/index.org
+++ b/organizers-notebook/index.org
@@ -119,3 +119,71 @@ Put inside double square brackets: =!template id=pagedraft=
- It’s easier for us to extend beyond 5pm than to go before 9am
(especially for Pacific time). Extending beyond 5pm puts strain on
European organizers and volunteers, though.
+- Put the speaker introduction right after the talk description for easier web page copying.
+** Process proposals
+
+1. In the private repository, create a conf.org.
+2. Set ~emacsconf-org-file~ to its location.
+3. Create a heading for Submissions and set ~CUSTOM_ID~ to ~submissions~.
+4. Prepare the ~prepare~ and ~submit~ pages on the wiki.
+
+When proposals come in:
+
+ 1. Acknowledge with an e-mail along the lines of:
+
+ #+begin_example
+ Hello, ....!
+
+ <feedback> We'll wait another week in case anyone else wants to
+ chime in before I add it to the wiki and send further notes. :) Thanks for
+ submitting this!
+ #+end_example
+
+ 2. Use ~emacsconf-mail-add-submission~ if it works, or create the entry and paste it in.
+ ~org-toggle-item~ can help convert Org-style headings into a nested list.
+ 3. Set the following fields (~my/org-set-property~
+ can be helpful): EMERGENCY, Q_AND_A,
+ AVAILABILITY, NAME, PRONOUNS, TIME,
+ SLUG, EMAIL, NAME_SHORT, CUSTOM_ID,
+ TRACK, TIMEZONE, CATEGORY, DATE_SUBMITTED,
+ PUBLIC_EMAIL
+** Accept proposals
+
+Setup:
+
+1. Create YYYY/talks.md.
+
+For each talk:
+
+1. Set up "Talk abstract" and "Talk details" sections in the conf.org talk subtree.
+2. Change status to ~TO_CONFIRM~.
+3. Create wiki page with ~emacsconf-publish-add-talk~.
+4. Use ~emacsconf-publish-info-pages~ and ~emacsconf-publish-schedule~ as needed.
+5. Send acceptance e-mail with ~emacsconf-mail-accept-talk~
+** Draft schedule
+:PROPERTIES:
+:CUSTOM_ID: draft-schedule
+:END:
+- Create entries for opening and closing remarks
+ - FIXED: t
+ - SCHEDULED
+ - TIME: 10
+ - BUFFER: 0
+ - CUSTOM_ID:
+ - SLUG:
+ - Q_AND_A: pad
+- Create draft-schedule section in the public organizers notebook for the year
+- Add missing items to plan
+* Other process notes
+:PROPERTIES:
+:CUSTOM_ID: other
+:END:
+** Adding another user to BBB
+:PROPERTIES:
+:CUSTOM_ID: bbb-user
+:END:
+
+#+begin_src ssh :eval no
+ssh bbb.emacsverse.org
+docker exec -it greenlight-v2 bundle exec rake user:create["USERNAME","EMAIL","PASSWORD","user"]
+#+end_src
diff --git a/templates/page.tmpl b/templates/page.tmpl
index 1f40aa66..20c3dd31 100644
--- a/templates/page.tmpl
+++ b/templates/page.tmpl
@@ -142,10 +142,11 @@
<TMPL_IF HAVE_ACTIONS>
<TMPL_IF HTML5><nav class="actions"><TMPL_ELSE><div class="actions"></TMPL_IF>
<ul>
+<!-- <li><a href="<TMPL_VAR BASEURL>donate/">❤️ Donate</a></li> -->
<TMPL_IF EDITURL>
<li><a href="<TMPL_VAR EDITURL>" rel="nofollow">Edit</a></li>
<TMPL_ELSE>
-<li><a href="/edit/">Edit <span class="muted">(how to)</span></a></li>
+<li><a href="<TMPL_VAR BASEURL>edit/">Edit <span class="muted">(how to)</span></a></li>
</TMPL_IF>
<TMPL_IF RECENTCHANGESURL>
<li><a href="<TMPL_VAR RECENTCHANGESURL>">Recent Changes</a></li>