diff options
Diffstat (limited to '')
48 files changed, 2474 insertions, 0 deletions
diff --git a/2026.md b/2026.md new file mode 100644 index 00000000..41d793ce --- /dev/null +++ b/2026.md @@ -0,0 +1,43 @@ +[[!meta copyright="Copyright © 2021-2026 Amin Bandali; 2023-2025 Sacha Chua"]] +[[!sidebar content=""]] + +<p class="center">EmacsConf 2026 | Online Conference<br /> +<b>December 12 and 13, 2026 (Sat-Sun)</b></p> + +<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">EmacsConf is the conference about the joy of +<a href="https://www.gnu.org/software/emacs/">GNU Emacs</a> and +Emacs Lisp.</p> + +We are busy putting things together for EmacsConf 2026, and we would +love to have *your* help to make EmacsConf 2026 amazing, much like the +previous EmacsConfs. See our [[**Call for Participation**|cfp]], get +involved, and help spread the word! + +We are holding EmacsConf 2026 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. + +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 +the +[emacsconf-org](https://lists.gnu.org/mailman/listinfo/emacsconf-org) +mailing list. You can email us publicly at +<mailto:emacsconf-org@gnu.org> or privately at +<mailto:emacsconf-org-private@gnu.org>. + +Come hang out with us in the `#emacsconf` channel on `irc.libera.chat` +([Libera.Chat][libera] IRC network). You can join the chat using +[your favourite IRC client][libera-emacsconf]. + +[freesw]: https://www.gnu.org/philosophy/free-sw.html +[libera]: https://libera.chat +[libera-emacsconf]: ircs://irc.libera.chat:6697/emacsconf +[chat]: https://chat.emacsconf.org diff --git a/2026/cfp.md b/2026/cfp.md new file mode 100644 index 00000000..63a341e4 --- /dev/null +++ b/2026/cfp.md @@ -0,0 +1,174 @@ +[[!meta title="Call for Participation"]] +[[!meta copyright="Copyright © 2020 Amin Bandali, Sacha Chua, +David Bremner<br /> +Copyright © 2021 Amin Bandali, Sacha Chua, Leo Vivier, +Sebastian Crane<br /> +Copyright © 2022-2026 Amin Bandali<br /> +Copyright © 2023-2026 Sacha Chua"]] +[[!tag blog]] +[[!date "2026-06-27"]] +<!-- cfp.md is exported from cfp.org, please modify that instead. --> + + +# Call for participation + +What have you found exciting about [Emacs](https://www.gnu.org/software/emacs/) lately? Have you figured out +a good workflow? Used Emacs for something interesting? Come share +what you've been learning at EmacsConf 2026 and meet other enthusiasts +along the way! All backgrounds and all levels of experience are +welcome. Emacs isn't just a text editor, it's a way of life! + +[EmacsConf 2026](https://emacsconf.org/2026/) will be a virtual conference on +**December 12 and 13, 2026 (Sat-Sun, 9AM-5PM UTC-5 America/Toronto, which is the same as 2PM-10PM UTC)**. +We hope to get your talk proposal by ****Friday, September 18, 2026.**** + +If there are similar proposals, we'll work with people so that the +talks can cover different facets. + +Wondering what to talk about? Check out this [list of ideas](https://emacsconf.org/ideas/) or the +[talks from previous conferences](https://emacsconf.org/talks/). Got an idea for a talk but not sure +if you're the right person to present it? Let us know at +[emacsconf-submit@gnu.org](mailto:emacsconf-submit@gnu.org?subject=EmacsConf idea&body=) and we can add it to the idea list. + + +# Important dates + +Here's an outline of important dates in the months leading up to the +conference: + +<table> + + +<colgroup> +<col class="org-left" /> + +<col class="org-left" /> +</colgroup> +<tbody> +<tr> +<td class="org-left">Call for Participation</td> +<td class="org-left">June 27, 2026 (Saturday)</td> +</tr> + +<tr> +<td class="org-left">Proposal submission deadline</td> +<td class="org-left">September 18, 2026 (Friday)</td> +</tr> + +<tr> +<td class="org-left">Prerecording submission deadline</td> +<td class="org-left">October 30, 2026 (Friday)</td> +</tr> + +<tr> +<td class="org-left">EmacsConf 2026!</td> +<td class="org-left">December 12 and 13, 2026 (Saturday and Sunday)</td> +</tr> +</tbody> +</table> + +Please note the deadlines are meant to be target dates we'd love to +get your proposal and prerecorded video by, rather than strict +deadlines. Don't stress out if life happens and you need more time, +just let us know! + + +# Talk formats + +Ideally, talks will be prerecorded so that you can script and edit +them as tightly as you want, and so that they can be captioned for +accessibility. Here are the talk options: + +- **5-10 minute lightning talk:** just the essentials! If you can + squeeze your prerecorded talk into 5-10 minutes by focusing on the + essentials (not by talking super quickly!), we might be able to + repeat it during the conference in order to fill gaps. + +- **20-minute talk:** short enough to keep people's attention, + long enough to get into some details. + +There will be time for questions and answers after your talk, so you +don't need to include that in your talk timing. Just like in previous +EmacsConf, you can answer questions via a live video conference, +IRC ([Internet Relay Chat](https://chat.emacsconf.org)), the Etherpad (a web-based collaborative +document), the wiki, or email (your choice). The stream will move on +to the next talk at the scheduled time, but interested people can keep +hanging out with you for a longer conversation. + +If you are not available during the conference itself but you have +a neat idea that you'd like to share, please propose it anyway! +You can always handle questions after the conference, and we might +even be able to coordinate with other Emacs meetups for events in +other time zones. + +We may have time for a few longer sessions. If you'd like to be +considered for a longer time slot, please include an outline for the +extra time in addition to your 20-minute proposal. Other session +formats such as tutorials, workshops, and hangouts are welcome as +well. + + +# Submitting your proposal + +[Send us your idea](https://emacsconf.org/2026/submit/) as soon as you can, so that you can have more time +to work on your talk. +(Proposal deadline: ****Friday, September 18, 2026****) + +If you need help, you can email us publicly at [emacsconf-org@gnu.org](mailto:emacsconf-org@gnu.org) +or privately at [emacsconf-org-private@gnu.org](mailto:emacsconf-org-private@gnu.org). You can also come and +say hi to us on our IRC channel `#emacsconf` on `irc.libera.chat` port +6697 (TLS) using [your favourite IRC client](ircs://irc.libera.chat:6697/emacsconf). + +Here's an Org TODO you can copy in case that's what you use to organize your tasks: + + * TODO Submit proposal to EmacsConf 2026 + DEADLINE: <2026-09-18 Fri> + + - Details: https://emacsconf.org/2026/cfp/ + - Submit: https://emacsconf.org/2026/submit/ + - Dates for conf: Dec 12 and 13, Sat-Sun, 9AM-5PM UTC-5 America/Toronto, which is the same as 2PM-10PM UTC + - Questions: + - public: mailto:emacsconf-org@gnu.org + - private: mailto:emacsconf-org-private@gnu.org + - IRC: irc.libera.chat + + Note: 2026-09-18 is a target date and we'd love to get your proposal + 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! + + +# Know someone who might have something to share? + +All kinds of people use Emacs for all kinds of things. We'd love it +if EmacsConf 2026 could highlight interesting perspectives and reflect +the diversity of our community. If you know someone who might have a +good idea for a talk, please reach out to them and encourage them to +submit a proposal. Many people (especially from underrepresented +groups such as women, people of colour, non-developers, etc.) might +not consider themselves proficient enough to share their thoughts. +If you let them know that you value their knowledge and experiences, +and maybe even suggest something that you think others would like to +hear about, they may realize that they do have something worth sharing +and that we would love to hear from them. + + +# Want to volunteer? + +If you would like to help with the conference (planning the sessions, +reviewing proposals, helping with infrastructure, making sessions +more accessible, editing video transcripts, checking in speakers, +reading questions out loud, organizing notes, etc.), please see our +[volunteer](https://emacsconf.org/volunteer/) page. Volunteers get early access to talks and learn lots +of things along the way. We'd really appreciate your help in making +EmacsConf 2026 the best one so far! + + +# Commitment to freedom + +We remain fully committed to freedom. You'll be able to participate +in EmacsConf using [free/libre software](https://www.gnu.org/philosophy/free-sw.html), and we use free/libre software +to organize and run the conference. You can find some notes about our +setup and process at <https://emacsconf.org/infra/>. + diff --git a/2026/cfp.org b/2026/cfp.org new file mode 100644 index 00000000..91c720a9 --- /dev/null +++ b/2026/cfp.org @@ -0,0 +1,220 @@ +# [[elisp:(org-md-export-to-markdown)][Export this file to Markdown]] +# [[elisp:(org-ascii-export-as-ascii)][Export this file to ASCII]] +#+title: EmacsConf 2026 Call for Participation +#+subtitle: Online Conference +#+date: December 12 and 13, 2026 +#+options: author:nil toc:nil + +#+begin_export md +[[!meta title="Call for Participation"]] +[[!meta copyright="Copyright © 2020 Amin Bandali, Sacha Chua, +David Bremner<br /> +Copyright © 2021 Amin Bandali, Sacha Chua, Leo Vivier, +Sebastian Crane<br /> +Copyright © 2022-2026 Amin Bandali<br /> +Copyright © 2023-2026 Sacha Chua"]] +[[!tag blog]] +[[!date "2026-06-27"]] +<!-- cfp.md is exported from cfp.org, please modify that instead. --> +#+end_export + +* COMMENT How to export this file :noexport: + +The =ircs= link type is not part of standard Org Mode, so Org will +throw an error if you try to export this file. + +To work around that, you can use something along the lines of the +Emacs Lisp code below by either adding it to your init file, or by +putting the point in the code block and hitting =C-c C-v e= (that is, +hold Ctrl, then hit c followed by v, then release Ctrl, and hit e) to +evaluate the code, working around the issue only for the current +session. + +#+begin_src emacs-lisp :results silent +(org-link-set-parameters + "ircs" + :export + (lambda (link description format) + "Export an ircs link. +See `org-link-parameters' for details about LINK, DESCRIPTION and +FORMAT." + (let ((desc (or description link))) + (pcase format + (`html (format "<a href=\"ircs:%s\">%s</a>" link desc)) + (`md (format "[%s](ircs:%s)" desc link)) + (_ nil))))) +#+end_src + +Other CFPs we can borrow ideas from: + +- https://debconf23.debconf.org/cfp/ - includes early submission timeline +- https://fosdem.org/2023/news/2022-11-13-call-for-presentations/ - mentions upload date, license +- https://www.fsf.org/blogs/community/libreplanet-2023-will-be-held-march-18-19-cfs-extended-to-november-23 +- https://www.reddit.com/r/scala/comments/103v6e5/scalar_2023_cfp_is_still_open/ - very short + +* Call for participation +:PROPERTIES: +:CUSTOM_ID: cfp +:END: + +What have you found exciting about [[https://www.gnu.org/software/emacs/][Emacs]] lately? Have you figured out +a good workflow? Used Emacs for something interesting? Come share +what you've been learning at EmacsConf 2026 and meet other enthusiasts +along the way! All backgrounds and all levels of experience are +welcome. Emacs isn't just a text editor, it's a way of life! + +[[https://emacsconf.org/2026/][EmacsConf 2026]] will be a virtual conference on +*December 12 and 13, 2026 (Sat-Sun, 9AM-5PM UTC-5 America/Toronto, which is the same as 2PM-10PM UTC)*. +We hope to get your talk proposal by **Friday, September 18, 2026.** + +If there are similar proposals, we'll work with people so that the +talks can cover different facets. + +Wondering what to talk about? Check out this [[https://emacsconf.org/ideas/][list of ideas]] or the +[[https://emacsconf.org/talks/][talks from previous conferences]]. Got an idea for a talk but not sure +if you're the right person to present it? Let us know at +[[mailto:emacsconf-submit@gnu.org?subject=EmacsConf idea&body=][emacsconf-submit@gnu.org]] and we can add it to the idea list. + +* Important dates +:PROPERTIES: +:CUSTOM_ID: dates +:END: + +Here's an outline of important dates in the months leading up to the +conference: + +| Call for Participation | June 27, 2026 (Saturday) | +| Proposal submission deadline | September 18, 2026 (Friday) | +| Prerecording submission deadline | October 30, 2026 (Friday) | +| EmacsConf 2026! | December 12 and 13, 2026 (Saturday and Sunday) | + +Please note the deadlines are meant to be target dates we'd love to +get your proposal and prerecorded video by, rather than strict +deadlines. Don't stress out if life happens and you need more time, +just let us know! + +* Talk formats +:PROPERTIES: +:CUSTOM_ID: formats +:END: + +Ideally, talks will be prerecorded so that you can script and edit +them as tightly as you want, and so that they can be captioned for +accessibility. Here are the talk options: + +- *5-10 minute lightning talk:* just the essentials! If you can + squeeze your prerecorded talk into 5-10 minutes by focusing on the + essentials (not by talking super quickly!), we might be able to + repeat it during the conference in order to fill gaps. + +- *20-minute talk:* short enough to keep people's attention, + long enough to get into some details. + +There will be time for questions and answers after your talk, so you +don't need to include that in your talk timing. Just like in previous +EmacsConf, you can answer questions via a live video conference, +IRC ([[https://chat.emacsconf.org][Internet Relay Chat]]), the Etherpad (a web-based collaborative +document), the wiki, or email (your choice). The stream will move on +to the next talk at the scheduled time, but interested people can keep +hanging out with you for a longer conversation. + +If you are not available during the conference itself but you have +a neat idea that you'd like to share, please propose it anyway! +You can always handle questions after the conference, and we might +even be able to coordinate with other Emacs meetups for events in +other time zones. + +We may have time for a few longer sessions. If you'd like to be +considered for a longer time slot, please include an outline for the +extra time in addition to your 20-minute proposal. Other session +formats such as tutorials, workshops, and hangouts are welcome as +well. + +* Submitting your proposal +:PROPERTIES: +:CUSTOM_ID: submitting +:END: + +[[https://emacsconf.org/2026/submit/][Send us your idea]] as soon as you can, so that you can have more time +to work on your talk. +(Proposal deadline: **Friday, September 18, 2026**) + +If you need help, you can email us publicly at [[mailto:emacsconf-org@gnu.org][emacsconf-org@gnu.org]] +or privately at [[mailto:emacsconf-org-private@gnu.org][emacsconf-org-private@gnu.org]]. You can also come and +say hi to us on our IRC channel =#emacsconf= on =irc.libera.chat= port +6697 (TLS) using [[ircs://irc.libera.chat:6697/emacsconf][your favourite IRC client]]. + +Here's an Org TODO you can copy in case that's what you use to organize your tasks: + +#+begin_src org +,* TODO Submit proposal to EmacsConf 2026 +DEADLINE: <2026-09-18 Fri> + +- Details: https://emacsconf.org/2026/cfp/ +- Submit: https://emacsconf.org/2026/submit/ +- Dates for conf: Dec 12 and 13, Sat-Sun, 9AM-5PM UTC-5 America/Toronto, which is the same as 2PM-10PM UTC +- Questions: + - public: mailto:emacsconf-org@gnu.org + - private: mailto:emacsconf-org-private@gnu.org + - IRC: irc.libera.chat + +Note: 2026-09-18 is a target date and we'd love to get your proposal +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! +#+end_src + +* Know someone who might have something to share? +:PROPERTIES: +:CUSTOM_ID: sharing +:END: + +All kinds of people use Emacs for all kinds of things. We'd love it +if EmacsConf 2026 could highlight interesting perspectives and reflect +the diversity of our community. If you know someone who might have a +good idea for a talk, please reach out to them and encourage them to +submit a proposal. Many people (especially from underrepresented +groups such as women, people of colour, non-developers, etc.) might +not consider themselves proficient enough to share their thoughts. +If you let them know that you value their knowledge and experiences, +and maybe even suggest something that you think others would like to +hear about, they may realize that they do have something worth sharing +and that we would love to hear from them. + +* Want to volunteer? +:PROPERTIES: +:CUSTOM_ID: volunteer +:END: + +If you would like to help with the conference (planning the sessions, +reviewing proposals, helping with infrastructure, making sessions +more accessible, editing video transcripts, checking in speakers, +reading questions out loud, organizing notes, etc.), please see our +[[https://emacsconf.org/volunteer/][volunteer]] page. Volunteers get early access to talks and learn lots +of things along the way. We'd really appreciate your help in making +EmacsConf 2026 the best one so far! + +* Commitment to freedom + +We remain fully committed to freedom. You'll be able to participate +in EmacsConf using [[https://www.gnu.org/philosophy/free-sw.html][free/libre software]], and we use free/libre software +to organize and run the conference. You can find some notes about our +setup and process at https://emacsconf.org/infra/. + +* COMMENT Copyright & License + +Copyright (c) 2020 Amin Bandali, Sacha Chua, David Bremner +Copyright (c) 2021 Amin Bandali, Sacha Chua, Leo Vivier, Sebastian Crane +Copyright (c) 2022-2026 Amin Bandali +Copyright (c) 2023-2026 Sacha Chua + +The EmacsConf 2026 Call for Participation is part of the EmacsConf +wiki, and is dual-licensed under the terms of the Creative Commons +Attribution-ShareAlike 4.0 International Public License; and the GNU +General Public License as published by the Free Software Foundation, +either version 3 of the License, or (at your option) any later +version. + +A copy of these two licenses is available on the EmacsConf wiki, in +the [[https://emacsconf.org/COPYING.CC-BY-SA][COPYING.CC-BY-SA]] and [[https://emacsconf.org/COPYING.GPL][COPYING.GPL]] files. diff --git a/2026/info/align-after.md b/2026/info/align-after.md new file mode 100644 index 00000000..35232ebe --- /dev/null +++ b/2026/info/align-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%20align%3A%20Column-aligning%20text%20in%20Emacs) + +---- +Got an idea for an EmacsConf talk or session? We'd love to hear from you! Check out the [[Call for Participation|/2026/cfp]] for details. + + +<!-- End of emacsconf-publish-after-page --> diff --git a/2026/info/align-before.md b/2026/info/align-before.md new file mode 100644 index 00000000..bfe09de8 --- /dev/null +++ b/2026/info/align-before.md @@ -0,0 +1,13 @@ +<!-- Automatically generated by emacsconf-publish-before-page --> +[[!toc ]] +Format: 20-min talk ; Q&A: BigBlueButton conference room Etherpad: <https://pad.emacsconf.org/2026-align> +Etherpad: <https://pad.emacsconf.org/2026-align> +Status: Waiting for video from speaker + + + + + + +# Description +<!-- End of emacsconf-publish-before-page -->
\ No newline at end of file diff --git a/2026/info/align-nav.md b/2026/info/align-nav.md new file mode 100644 index 00000000..460875b5 --- /dev/null +++ b/2026/info/align-nav.md @@ -0,0 +1,7 @@ + +<div class="talk-nav"> +Back to the [[talks]] +Previous by track: <a href="/2026/talks/emacspeak">Multi-dimensional information processing with Emacs and Emacspeak: a blind man's perspective</a> +Next by track: <a href="/2026/talks/cadet">My Space Cadet Deck - an Android Stream Deck replacement with deep Emacs integration</a> +Track: <span class="sched-track General">General</span> +</div> diff --git a/2026/info/cadet-after.md b/2026/info/cadet-after.md new file mode 100644 index 00000000..1fb13081 --- /dev/null +++ b/2026/info/cadet-after.md @@ -0,0 +1,10 @@ +<!-- Automatically generated by emacsconf-publish-after-page --> + + +Questions or comments? Please e-mail [SpaceCadet@plaindrops.de](mailto:SpaceCadet@plaindrops.de?subject=Comment%20for%20EmacsConf%202023%20cadet%3A%20My%20Space%20Cadet%20Deck%20-%20an%20Android%20Stream%20Deck%20replacement%20with%20deep%20Emacs%20integration) + +---- +Got an idea for an EmacsConf talk or session? We'd love to hear from you! Check out the [[Call for Participation|/2026/cfp]] for details. + + +<!-- End of emacsconf-publish-after-page --> diff --git a/2026/info/cadet-before.md b/2026/info/cadet-before.md new file mode 100644 index 00000000..281645ed --- /dev/null +++ b/2026/info/cadet-before.md @@ -0,0 +1,13 @@ +<!-- Automatically generated by emacsconf-publish-before-page --> +[[!toc ]] +Format: 10-min talk ; Q&A: BigBlueButton conference room Etherpad: <https://pad.emacsconf.org/2026-cadet> +Etherpad: <https://pad.emacsconf.org/2026-cadet> +Status: Waiting for video from speaker + + + + + + +# Description +<!-- End of emacsconf-publish-before-page -->
\ No newline at end of file diff --git a/2026/info/cadet-nav.md b/2026/info/cadet-nav.md new file mode 100644 index 00000000..e49b1027 --- /dev/null +++ b/2026/info/cadet-nav.md @@ -0,0 +1,7 @@ + +<div class="talk-nav"> +Back to the [[talks]] +Previous by track: <a href="/2026/talks/align">Column-aligning text in Emacs</a> +Next by track: <a href="/2026/talks/local">Local file history possibilities in Emacs</a> +Track: <span class="sched-track General">General</span> +</div> diff --git a/2026/info/emacspeak-after.md b/2026/info/emacspeak-after.md new file mode 100644 index 00000000..0ebb2bb4 --- /dev/null +++ b/2026/info/emacspeak-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%20emacspeak%3A%20Multi-dimensional%20information%20processing%20with%20Emacs%20and%20Emacspeak%3A%20a%20blind%20man%27s%20perspective) + +---- +Got an idea for an EmacsConf talk or session? We'd love to hear from you! Check out the [[Call for Participation|/2026/cfp]] for details. + + +<!-- End of emacsconf-publish-after-page --> diff --git a/2026/info/emacspeak-before.md b/2026/info/emacspeak-before.md new file mode 100644 index 00000000..3c643ce5 --- /dev/null +++ b/2026/info/emacspeak-before.md @@ -0,0 +1,13 @@ +<!-- Automatically generated by emacsconf-publish-before-page --> +[[!toc ]] +Format: 30-min talk ; Q&A: IRC Etherpad: <https://pad.emacsconf.org/2026-emacspeak> +Etherpad: <https://pad.emacsconf.org/2026-emacspeak> +Status: Waiting for video from speaker + + + + + + +# Description +<!-- End of emacsconf-publish-before-page -->
\ No newline at end of file diff --git a/2026/info/emacspeak-nav.md b/2026/info/emacspeak-nav.md new file mode 100644 index 00000000..923764c2 --- /dev/null +++ b/2026/info/emacspeak-nav.md @@ -0,0 +1,7 @@ + +<div class="talk-nav"> +Back to the [[talks]] +Previous by track: <a href="/2026/talks/sat-open">Saturday opening remarks</a> +Next by track: <a href="/2026/talks/align">Column-aligning text in Emacs</a> +Track: <span class="sched-track General">General</span> +</div> diff --git a/2026/info/local-after.md b/2026/info/local-after.md new file mode 100644 index 00000000..f2ae6933 --- /dev/null +++ b/2026/info/local-after.md @@ -0,0 +1,10 @@ +<!-- Automatically generated by emacsconf-publish-after-page --> + + +Questions or comments? Please e-mail [wouter@brainbaking.com](mailto:wouter@brainbaking.com?subject=Comment%20for%20EmacsConf%202023%20local%3A%20Local%20file%20history%20possibilities%20in%20Emacs) + +---- +Got an idea for an EmacsConf talk or session? We'd love to hear from you! Check out the [[Call for Participation|/2026/cfp]] for details. + + +<!-- End of emacsconf-publish-after-page --> diff --git a/2026/info/local-before.md b/2026/info/local-before.md new file mode 100644 index 00000000..1aa0b09f --- /dev/null +++ b/2026/info/local-before.md @@ -0,0 +1,13 @@ +<!-- Automatically generated by emacsconf-publish-before-page --> +[[!toc ]] +Format: 10-min talk ; Q&A: BigBlueButton conference room Etherpad: <https://pad.emacsconf.org/2026-local> +Etherpad: <https://pad.emacsconf.org/2026-local> +Status: Waiting for video from speaker + + + + + + +# Description +<!-- End of emacsconf-publish-before-page -->
\ No newline at end of file diff --git a/2026/info/local-nav.md b/2026/info/local-nav.md new file mode 100644 index 00000000..7afc0453 --- /dev/null +++ b/2026/info/local-nav.md @@ -0,0 +1,7 @@ + +<div class="talk-nav"> +Back to the [[talks]] +Previous by track: <a href="/2026/talks/cadet">My Space Cadet Deck - an Android Stream Deck replacement with deep Emacs integration</a> +Next by track: <a href="/2026/talks/sun-open">Sunday opening remarks</a> +Track: <span class="sched-track General">General</span> +</div> diff --git a/2026/info/open-mic-after.md b/2026/info/open-mic-after.md new file mode 100644 index 00000000..a1a2d49e --- /dev/null +++ b/2026/info/open-mic-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%20open-mic%3A%20Open%20session) + +---- +Got an idea for an EmacsConf talk or session? We'd love to hear from you! Check out the [[Call for Participation|/2026/cfp]] for details. + + +<!-- End of emacsconf-publish-after-page --> diff --git a/2026/info/open-mic-before.md b/2026/info/open-mic-before.md new file mode 100644 index 00000000..9ab12d84 --- /dev/null +++ b/2026/info/open-mic-before.md @@ -0,0 +1,13 @@ +<!-- Automatically generated by emacsconf-publish-before-page --> +[[!toc ]] +Format: -min talk ; Q&A: ask questions via Etherpad/IRC; we'll e-mail the speaker and post answers on this wiki page after the conference Etherpad: <https://pad.emacsconf.org/2026-open-mic> +Etherpad: <https://pad.emacsconf.org/2026-open-mic> +Status: Ready to stream + + + + + + +# Description +<!-- End of emacsconf-publish-before-page -->
\ No newline at end of file diff --git a/2026/info/open-mic-nav.md b/2026/info/open-mic-nav.md new file mode 100644 index 00000000..fa562705 --- /dev/null +++ b/2026/info/open-mic-nav.md @@ -0,0 +1,6 @@ + +<div class="talk-nav"> +Back to the [[talks]] +Next by track: <a href="/2026/talks/sat-open">Saturday opening remarks</a> +Track: <span class="sched-track General">General</span> +</div> diff --git a/2026/info/portable-after.md b/2026/info/portable-after.md new file mode 100644 index 00000000..78705fc3 --- /dev/null +++ b/2026/info/portable-after.md @@ -0,0 +1,10 @@ +<!-- Automatically generated by emacsconf-publish-after-page --> + + +Questions or comments? Please e-mail [mail@myterminal.me](mailto:mail@myterminal.me?subject=Comment%20for%20EmacsConf%202023%20portable%3A%20Emacs%20as%20my%20portable%20user%20space%20across%20operating%20platforms) + +---- +Got an idea for an EmacsConf talk or session? We'd love to hear from you! Check out the [[Call for Participation|/2026/cfp]] for details. + + +<!-- End of emacsconf-publish-after-page --> diff --git a/2026/info/portable-before.md b/2026/info/portable-before.md new file mode 100644 index 00000000..e138b6a1 --- /dev/null +++ b/2026/info/portable-before.md @@ -0,0 +1,13 @@ +<!-- Automatically generated by emacsconf-publish-before-page --> +[[!toc ]] +Format: 20-min talk ; Q&A: ask questions via Etherpad/IRC; we'll e-mail the speaker and post answers on this wiki page after the conference Etherpad: <https://pad.emacsconf.org/2026-portable> +Etherpad: <https://pad.emacsconf.org/2026-portable> +Status: Waiting for video from speaker + + + + + + +# Description +<!-- End of emacsconf-publish-before-page -->
\ No newline at end of file diff --git a/2026/info/sat-close-after.md b/2026/info/sat-close-after.md new file mode 100644 index 00000000..421a1bae --- /dev/null +++ b/2026/info/sat-close-after.md @@ -0,0 +1,10 @@ +<!-- Automatically generated by emacsconf-publish-after-page --> + + +Questions or comments? Please e-mail [emacsconf-org-private@gnu.org](mailto:emacsconf-org-private@gnu.org?subject=Comment%20for%20EmacsConf%202023%20sat-close%3A%20Saturday%20closing%20remarks%20%2F%20open%20session) + +---- +Got an idea for an EmacsConf talk or session? We'd love to hear from you! Check out the [[Call for Participation|/2026/cfp]] for details. + + +<!-- End of emacsconf-publish-after-page --> diff --git a/2026/info/sat-close-before.md b/2026/info/sat-close-before.md new file mode 100644 index 00000000..69d1c7fe --- /dev/null +++ b/2026/info/sat-close-before.md @@ -0,0 +1,13 @@ +<!-- Automatically generated by emacsconf-publish-before-page --> +[[!toc ]] +Format: 10-min talk ; Q&A: BigBlueButton conference room Etherpad: <https://pad.emacsconf.org/2026-sat-close> +Etherpad: <https://pad.emacsconf.org/2026-sat-close> +Status: Ready to stream + + + + + + +# Description +<!-- End of emacsconf-publish-before-page -->
\ No newline at end of file diff --git a/2026/info/sat-close-nav.md b/2026/info/sat-close-nav.md new file mode 100644 index 00000000..7c3dea3d --- /dev/null +++ b/2026/info/sat-close-nav.md @@ -0,0 +1,7 @@ + +<div class="talk-nav"> +Back to the [[talks]] +Previous by track: <a href="/2026/talks/sun-open">Sunday opening remarks</a> +Next by track: <a href="/2026/talks/sun-close">Sunday closing remarks</a> +Track: <span class="sched-track General">General</span> +</div> diff --git a/2026/info/sat-open-after.md b/2026/info/sat-open-after.md new file mode 100644 index 00000000..45d9363f --- /dev/null +++ b/2026/info/sat-open-after.md @@ -0,0 +1,10 @@ +<!-- Automatically generated by emacsconf-publish-after-page --> + + +Questions or comments? Please e-mail [emacsconf-org-private@gnu.org](mailto:emacsconf-org-private@gnu.org?subject=Comment%20for%20EmacsConf%202023%20sat-open%3A%20Saturday%20opening%20remarks) + +---- +Got an idea for an EmacsConf talk or session? We'd love to hear from you! Check out the [[Call for Participation|/2026/cfp]] for details. + + +<!-- End of emacsconf-publish-after-page --> diff --git a/2026/info/sat-open-before.md b/2026/info/sat-open-before.md new file mode 100644 index 00000000..5efa8e55 --- /dev/null +++ b/2026/info/sat-open-before.md @@ -0,0 +1,13 @@ +<!-- Automatically generated by emacsconf-publish-before-page --> +[[!toc ]] +Format: 10-min talk ; Q&A: Etherpad +Etherpad: <https://pad.emacsconf.org/2026-sat-open> +Status: Waiting for video from speaker + + + + + + +# Description +<!-- End of emacsconf-publish-before-page -->
\ No newline at end of file diff --git a/2026/info/sat-open-nav.md b/2026/info/sat-open-nav.md new file mode 100644 index 00000000..9cca63b6 --- /dev/null +++ b/2026/info/sat-open-nav.md @@ -0,0 +1,7 @@ + +<div class="talk-nav"> +Back to the [[talks]] +Previous by track: <a href="/2026/talks/open-mic">Open session</a> +Next by track: <a href="/2026/talks/emacspeak">Multi-dimensional information processing with Emacs and Emacspeak: a blind man's perspective</a> +Track: <span class="sched-track General">General</span> +</div> diff --git a/2026/info/sun-close-after.md b/2026/info/sun-close-after.md new file mode 100644 index 00000000..1d562979 --- /dev/null +++ b/2026/info/sun-close-after.md @@ -0,0 +1,10 @@ +<!-- Automatically generated by emacsconf-publish-after-page --> + + +Questions or comments? Please e-mail [emacsconf-org-private@gnu.org](mailto:emacsconf-org-private@gnu.org?subject=Comment%20for%20EmacsConf%202023%20sun-close%3A%20Sunday%20closing%20remarks) + +---- +Got an idea for an EmacsConf talk or session? We'd love to hear from you! Check out the [[Call for Participation|/2026/cfp]] for details. + + +<!-- End of emacsconf-publish-after-page --> diff --git a/2026/info/sun-close-before.md b/2026/info/sun-close-before.md new file mode 100644 index 00000000..44944f3a --- /dev/null +++ b/2026/info/sun-close-before.md @@ -0,0 +1,13 @@ +<!-- Automatically generated by emacsconf-publish-before-page --> +[[!toc ]] +Format: 10-min talk ; Q&A: BigBlueButton conference room Etherpad: <https://pad.emacsconf.org/2026-sun-close> +Etherpad: <https://pad.emacsconf.org/2026-sun-close> +Status: Ready to stream + + + + + + +# Description +<!-- End of emacsconf-publish-before-page -->
\ No newline at end of file diff --git a/2026/info/sun-close-nav.md b/2026/info/sun-close-nav.md new file mode 100644 index 00000000..423413cf --- /dev/null +++ b/2026/info/sun-close-nav.md @@ -0,0 +1,6 @@ + +<div class="talk-nav"> +Back to the [[talks]] +Previous by track: <a href="/2026/talks/sat-close">Saturday closing remarks / open session</a> +Track: <span class="sched-track General">General</span> +</div> diff --git a/2026/info/sun-open-after.md b/2026/info/sun-open-after.md new file mode 100644 index 00000000..02a6db8b --- /dev/null +++ b/2026/info/sun-open-after.md @@ -0,0 +1,10 @@ +<!-- Automatically generated by emacsconf-publish-after-page --> + + +Questions or comments? Please e-mail [emacsconf-org-private@gnu.org](mailto:emacsconf-org-private@gnu.org?subject=Comment%20for%20EmacsConf%202023%20sun-open%3A%20Sunday%20opening%20remarks) + +---- +Got an idea for an EmacsConf talk or session? We'd love to hear from you! Check out the [[Call for Participation|/2026/cfp]] for details. + + +<!-- End of emacsconf-publish-after-page --> diff --git a/2026/info/sun-open-before.md b/2026/info/sun-open-before.md new file mode 100644 index 00000000..eae28632 --- /dev/null +++ b/2026/info/sun-open-before.md @@ -0,0 +1,13 @@ +<!-- Automatically generated by emacsconf-publish-before-page --> +[[!toc ]] +Format: 10-min talk ; Q&A: Etherpad +Etherpad: <https://pad.emacsconf.org/2026-sun-open> +Status: Waiting for video from speaker + + + + + + +# Description +<!-- End of emacsconf-publish-before-page -->
\ No newline at end of file diff --git a/2026/info/sun-open-nav.md b/2026/info/sun-open-nav.md new file mode 100644 index 00000000..ed572a63 --- /dev/null +++ b/2026/info/sun-open-nav.md @@ -0,0 +1,7 @@ + +<div class="talk-nav"> +Back to the [[talks]] +Previous by track: <a href="/2026/talks/local">Local file history possibilities in Emacs</a> +Next by track: <a href="/2026/talks/sat-close">Saturday closing remarks / open session</a> +Track: <span class="sched-track General">General</span> +</div> diff --git a/2026/organizers-notebook/index.org b/2026/organizers-notebook/index.org new file mode 100644 index 00000000..d751dbb2 --- /dev/null +++ b/2026/organizers-notebook/index.org @@ -0,0 +1,1000 @@ +# [[elisp:(progn (memoize 'emacsconf-get-talk-info "5 seconds") (condition-case nil (org-md-export-to-markdown) (error nil)) (memoize-restore 'emacsconf-get-talk-info))][Export this file to Markdown]] +#+TAGS: emacsconf +# [[elisp:(memoize 'emacsconf-get-talk-info "5 seconds")][Memoize emacsconf-get-talk-info]] - [[elisp:(memoize-restore 'emacsconf-get-talk-info)][Unmemoize]] +#+todo: TODO(t) SOMEDAY STARTED INPROGRESS(i) WAITING(w) STANDBY(s) BLOCKED(b) | DONE(x) CANCELLED(c) +#+OPTIONS: h:6 toc:nil num:nil ':t +#+PROPERTY: header-args :results silent :exports code :tangle yes +#+EXPORT_FILE_NAME: ../organizers-notebook.md +#+PROPERTY: QUANTIFIED Emacs + +#+begin_export md +<!-- organizers-notebook.md is exported from organizers-notebook/index.org, please modify that instead. --> +[[!sidebar content=""]] + +This file is automatically exported from [/2026/organizers-notebook/index.org](/2026/organizers-notebook/index.org). You might prefer to navigate this as an Org file instead. To do so, [clone the wiki repository](https://emacsconf.org/edit/). + +You might also like the [general organizers' notebook](/organizers-notebook) and [the organizers' notebook from 2025](/2025/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 + (concat heading ":\n\n") + (string-join + (delq nil + (org-map-entries + (lambda () + (when (and (org-entry-is-todo-p) (not (org-entry-is-done-p))) + (format "- %s %s\n" + (org-link-make-string + (concat "#" (org-entry-get (point) "CUSTOM_ID")) + (org-entry-get (point) "ITEM")) + (emacsconf-surround + "(by " + (and (org-entry-get (point) "DEADLINE") + (replace-regexp-in-string "[<>]" "" (org-entry-get (point) "DEADLINE"))) + ")" + "")))) + match nil)) + "") +"" "") +#+end_src + +#+RESULTS: list-headings +:results: +:end: + +#+CALL: list-headings(heading="Decisions to make", match="decision") + +#+RESULTS: +:results: +:end: + + +#+TOC: headlines 2 +* COMMENT Shortcuts +:PROPERTIES: +:CUSTOM_ID: shortcuts +:END: + +[[file:~/proj/emacsconf/wiki/organizers-notebook/index.org][Common notebook]] + +* TODO Timeline +:PROPERTIES: +:CUSTOM_ID: timeline +:END: + +| | | Days since previous milestone | +| CFP | [2026-06-27 Sat] | | +| CFP deadline | [2026-09-18 Fri] | 83 | +| Speaker notifications | [2026-09-25 Fri] | | +| Publish schedule | [2026-10-23 Fri] | | +| Video submission deadline | [2026-10-30 Fri] | 42 | +| EmacsConf day 1 | [2026-12-12 Sat] | 43 | +| EmacsConf | [2026-12-13 Sun] | 36 | +#+TBLFM: @3$3=@3$2-@2$2::@6$3=@6$2-@3$2::@7$3=@7$2-@6$2 + +We like to have at least a month to work on audio +normalization and transcription, and we want +speakers to have at least a month to work on their +videos (considering early submissions will already +have gotten started on processing). + +* About this document +:PROPERTIES: +:CUSTOM_ID: about-this-doc +:END: + +Tags: +- =conforg=: Requires access to private conf.org repository + +* Communications plan +:PROPERTIES: +:CUSTOM_ID: comms +:END: + +Objectives: +- keep everyone in the loop without them feeling like they're overloaded + +Everyone: +- [X] Call for participation (speakers and volunteers) +- [ ] Reminder about CFP +- [ ] Last call + +Speakers: +- [ ] Send all speakers backstage access and upload instructions +- [ ] Send all speakers check-in instructions + +Volunteers: +- [ ] Send captioning volunteers the backstage info +- [ ] Send past captioning volunteers an invitation to participate - ask when there's a lot of load +- [ ] Ask for help with audio processing + +* Good/better/best +:PROPERTIES: +:CUSTOM_ID: good-better-best +:END: + +This table makes it easier to move the slider depending on who wants +to volunteer and how much we can get done. At some point, we'll figure +out how to track our current status so we know what we need to +scramble to do in order to get the conference off the ground. *bold* +is our current goal. Feel free to volunteer for anything that +interests you! + + | | Good | Better | Best | + | Streaming | Regular stream | + alternate streams on PeerTube | + alternate streams on YouTube | + | 480p | Same on live | Separate node | Ansible setup | + | Audio normalization | Core org handling it | Other volunteer | Multiple volunteers | + | Video resolution | Usual reminders | Extra reminders | Everyone remembering to use a large font size | + | Intros | Standard, recorded | Reviewed by speakers | More details/context | + | Pad | v1.9.7 | v2.x | | + +* Phases +:PROPERTIES: +:CUSTOM_ID: phases +:END: +** DONE Set up organizers notebook +CLOSED: [2026-07-02 Thu 11:35] +:LOGBOOK: +- State "DONE" from "TODO" [2025-06-17 Tue 10:41] +:END: + +** DONE Draft CFP +CLOSED: [2026-07-02 Thu 11:35] +:PROPERTIES: +:CUSTOM_ID: cfp +:END: + +**** Draft linked pages +:PROPERTIES: +:CUSTOM_ID: phases-draft-cfp-draft-linked-pages +:END: + +- [X] cfp +- [X] submit page +- [X] year index + +**** DONE Check with other organizers +CLOSED: [2026-07-02 Thu 11:35] +:PROPERTIES: +:CUSTOM_ID: phases-draft-cfp-check-with-other-organizers +:END: +**** DONE Update dates in emacsconf.el +CLOSED: [2026-07-02 Thu 11:35] + +[[file:~/proj/emacsconf/lisp/emacsconf.el]] +[[file:~/proj/emacsconf/lisp/emacsconf-erc.el]] +**** DONE Update conf topic +CLOSED: [2026-07-02 Thu 11:35] +[[file:~/proj/emacsconf/wiki/organizers-notebook/index.org::#phases-and-lessons-learned-draft-cfp-update-the-irc-topic][Update the IRC topic]] +**** DONE Remove draft marker +CLOSED: [2026-07-02 Thu 11:35] + +- [ ] cfp +- [ ] submit + +**** DONE Post CFP in the usual places +CLOSED: [2026-07-02 Thu 11:35] +:PROPERTIES: +:CUSTOM_ID: phases-draft-cfp-post-cfp-in-the-usual-places +:END: +- [ ] emacsconf-discuss +- [ ] reddit.com/r/emacs +- [ ] Emacs News +- [ ] emacs-tangents or info-gnu-emacs +- [ ] Mastodon +- [ ] Bluesky +- [ ] X + +** TODO Draft schedule +:PROPERTIES: +:CUSTOM_ID: draft-schedule +:END: + +#+NAME: schedule +#+begin_src emacs-lisp :results value replace :exports none :eval never-export :var filename="schedule.svg" +(require 'emacsconf) +(require 'emacsconf-schedule) +(setq emacsconf-schedule-tracks + '((:label "Saturday" + :start "2026-12-12 9:00" + :end "2026-12-12 18:00" + :tracks ("General" "Development")) + (:label "Sunday" + :start "2026-12-13 9:00" + :end "2026-12-13 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-no-cancelled-talks + emacsconf-schedule-validate-all-talks-present + emacsconf-schedule-validate-no-duplicates + emacsconf-schedule-validate-videos-fit-in-time + ))) + (setq emacsconf-schedule-plan + '(("GEN Saturday, Dec 6" :start "2026-12-12 09:00" :set-track "General") + sat-open + emacspeak + align + cadet + local + open-mic + (lunch :start "12:00") + portable + sat-close + ("DEV Saturday, Dec 6" :start "2026-12-12 9:30" :set-track "Development") + (lunch :start "12:00") + ("GEN Sunday, Dec 7" :start "2026-12-13 09:00" :set-track "General") + sun-open + (lunch :start "12:00" :start "16:30") + (sun-close) + )) + (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 500 700 emacsconf-schedule-draft 'vertical))) + (with-temp-file (expand-file-name filename (expand-file-name "organizers-notebook" (expand-file-name emacsconf-year emacsconf-directory))) + (svg-print (emacsconf-schedule-svg 500 700 emacsconf-schedule-draft 'vertical)))) + ;; (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: schedule +:results: +saturday closing remarks: Starts at 13:40 before 16:30 +sunday closing remarks: Starts at 13:00 before 16:30 +:end: + +#+ATTR_ORG: :width 500 +[[file:schedule.svg]] + +Legend: +- light blue: constraint is <= a time +- peach: constraint is >= a time +- solid line: Q&A will be through BigBlueButton web conference +- dashed line: Q&A will be IRC/Etherpad during the event or e-mail after the event + +Notes: + + +** Review rescheduled talks + +#+begin_src emacs-lisp :results table replace +(mapcar (lambda (o) + (list (plist-get o :slug) + (plist-get o :scheduled) + (plist-get o :emailed-schedule) + (emacsconf-schedule-difference-from-emailed o))) + (emacsconf-mail-rescheduled-talks)) +#+end_src + +For big changes, use emacsconf-mail-schedule-updates + + +** While speakers are working on their videos +*** TODO Send draft schedule :email: +SCHEDULED: <2026-09-25 Fri> +:PROPERTIES: +:CREATED: [2025-09-30 Tue 09:38] +:Effort: 0:30 +:END: +:LOGBOOK: +CLOCK: [2025-10-03 Fri 10:26]--[2025-10-03 Fri 11:07] => 0:41 +:END: + +*** TODO Send backstage and upload instructions :email: +:PROPERTIES: +:CREATED: [2025-09-30 Tue 09:39] +:END: +*** TODO Record pronunciations +*** TODO Post the schedule publicly +** While volunteers are working on captions +*** TODO E-mail speakers asking them to confirm the pronunciations :email: +SCHEDULED: <2026-12-01 Tue> +:PROPERTIES: +:CREATED: [2025-09-30 Tue 09:39] +:END: +*** Record intros and opening remarks +:PROPERTIES: +:CUSTOM_ID: intros +:END: + +**** TODO Record sat-open remarks :emacsconf:record: +:PROPERTIES: +:Effort: 0:30 +:CUSTOM_ID: phases-record-intros-and-opening-remarks-record-sat-open-remarks +:END: + +Welcome to EmacsConf 2025, where we have fun +exploring how much we can do with a text editor. +It's hard to give a general overview +of all the cool talks today and tomorrow, +so you can flip through the talks +and see what sparks your interests. +Don't feel limited to one track or another. +The best parts of EmacsConf are the conversations. +The wiki has a page on how to watch and participate, +and I'll give you a quick overview as well. +You can watch both streams at live.emacsconf.org +using free and open source software. +Using a streaming media player like mpv +seems to be the best way to watch in terms of performance +but there are also web-based players +just in case that's all you've got. +The schedule shows the General track on top +and the Development track on the bottom, +so you can see what else is going on. +As you're watching the talks, +you can refer to the schedule in another window. +Hover over the boxes to see the times and titles, +and click on the boxes in the schedule +to jump to the talk's page for more details. +You can also get the schedule as an iCalendar file +or as an Org file in different time zones. +Many talks will be followed by +live Q&A web conferences with the speaker, +which will be done in BigBlueButton or BBB. +These are indicated with a solid border on the schedule +and by Q&A: BBB on the schedule page. +You can join the web conference room +by clicking on the BBB link +on the schedule page or the talk's webpage. +Then you can ask your questions yourself when the Q&A starts. +To improve performance, please keep your webcam off +and stay muted until it's your turn to talk. +If you don't like Javascript, +you can still ask questions via IRC +and the hosts can read them out for you. +We're probably going to automatically switch +between talks and Q&A sessions, +so the transitions on the stream might be a little sudden. + +People in the BigBlueButton room +can continue the conversation +even after the talk moves off-stream. +and you can also reach out to the speakers +using the contact information on the talk page. + +Other talks will have Q&A via Etherpad or IRC, +depending on what the speakers prefer. +This is indicated in the schedule with a dashed border +and on the schedule page as well. +Some talks will have the Q&A after the event, +so you can add your questions to their Etherpad +or ask on IRC. +We'll e-mail the speakers afterwards +and update the talk pages when they answer. +The schedule pages and track pages have quick shortcuts +so that you can find out more about talks, open the Etherpads, +and join the Q&A sessions. The watch page has more tips +on how to make the most of Q&A. +If you can, please add notes and ask questions +in the Etherpad for the talk. That makes it easier +for everyone to share their notes, +and speakers and hosts can read the questions from there. +We'll copy the notes to the talk pages afterwards. +We have one pad for each talk, +so you can follow the links to get to the next one +or go back to the schedule and get the link from there. +If you have general feedback about +the conference itself, please put it in +pad.emacsconf.org/2025 , which is linked on each pad. +You can also use this as a general community message board +for things like Help Wanted. +Internet Relay Chat or IRC can be another great way +to be part of lots of conversations. +You can use chat.emacsconf.org to join the IRC channels +through your web browser. The tabs on the left can help you +switch between the different channels. +There's #emacsconf-gen for the General track +and #emacsconf-dev for the Development track. +If you need to reach us, you can join #emacsconf-org +or e-mail emacsconf-org-private@gnu.org. +You can use #emacsconf for hallway conversations. +Of course, you can join any of these channels +with your favourite IRC client. +You can connect to irc.libera.chat +port 6697 with TLS. +Once again, we're going to be streaming with open captions +for most of the talks this year, thanks to our speakers and +captioning volunteers. The captioned talks are indicated +on the schedule, and with any luck, we'll be posting +transcripts on talk pages shortly after the talks start. +If you need additional accommodations, +please let us know in #emacsconf-org +and we'll see if we can make things happen. +If something goes down, we'll update status.emacsconf.org. +If it doesn't look like we've noticed yet, +please let us know in the #emacsconf-org IRC channel, +where we will be quietly panicking. +In all of these conversations, please keep in mind +our guidelines for conduct. You can find them on the wiki, +They basically boil down to: please be nice. +If all goes well, the prerecorded talks and transcripts +should be available from the talk pages +shortly after they start playing, +and we'll post the recordings of live talks +and Q&A sessions within the next month or so. +If you'd like to get an update, you can subscribe to +the emacsconf-discuss mailing list. +All right, let's get going. +Leo is hosting the general track, +and Corwin hosting the development track. +The other volunteers and I will run around mostly backstage, +and you'll probably meet us in the closing remarks. +That's also where we get to thank +all the people and organizations +who make EmacsConf possible. +Thanks for coming to EmacsConf 2025. +**** TODO Record sun-open remarks +:PROPERTIES: +:CUSTOM_ID: phases-record-intros-and-opening-remarks-record-sun-open-remarks +:END: + +Welcome to the second day of EmacsConf 2025. +The best parts of EmacsConf are the conversations. +The wiki has a page on how to watch and participate, +and I'll give you a quick overview as well. +You can watch the stream at live.emacsconf.org +using free and open source software. +Using a streaming media player like mpv +seems to be the best way to watch in terms of performance +but there are also web-based players +just in case that's all you've got. +As you're watching the talks, +you can refer to the schedule in another window. +Hover over the boxes to see the times and titles, +and click on the boxes in the schedule +to jump to the talk's page for more details. +You can also get the schedule as an iCalendar file +or as an Org file in different time zones. + +Many talks will be followed by +live Q&A web conferences with the speaker, +which will be done in BigBlueButton or BBB. +These are indicated with a solid border on the schedule +and by Q&A: BBB on the schedule page. +You can join the web conference room +by clicking on the BBB link +on the schedule page or the talk's webpage. +Then you can ask your questions yourself when the Q&A starts. +To improve performance, please keep your webcam off +and stay muted until it's your turn to talk. +If you don't like Javascript, +you can still ask questions via IRC +and the hosts can read them out for you. + +We're probably going to automatically switch +between talks and Q&A sessions, +so the transitions on the stream might be a little sudden, +People in the BigBlueButton room +can continue the conversation +even after the talk moves off-stream, +and you can also reach out to the speakers +using the contact information on the talk page. + +Other talks will have Q&A via Etherpad or IRC, +depending on what the speakers prefer. +This is indicated in the schedule with a dashed border +and on the schedule page as well. +Please ask your questions in the recommended places +so that the speakers can easily see them. + +Some talks will have the Q&A after the event, +so you can add your questions to their Etherpad. +We'll e-mail the speakers afterwards +and update the talk pages when they answer. + +We're going to start Sunday morning +with more IRC/Etherpad Q&A +to try to get around +some of the bandwidth issues +that we noticed last year. + +The schedule pages and track pages have quick shortcuts +so that you can find out more about talks, open the Etherpads, +and join the Q&A sessions. The watch page has more tips +on how to make the most of Q&A. +If you can, please add notes and ask questions +in the Etherpad for the talk. That makes it easier +for everyone to share their notes, +and speakers and hosts can read the questions from there. +We'll copy the notes to the talk pages afterwards. +We have one pad for each talk, +so you can follow the links to get to the next one +or go back to the schedule and get the link from there. +If you have general feedback about +the conference itself, please put it in +pad.emacsconf.org/2025 , which is linked on each pad. +You can also use this as a general community message board +for things like Help Wanted. +Internet Relay Chat or IRC can be another great way +to be part of lots of conversations. +You can use chat.emacsconf.org to join the IRC channels +through your web browser. The tabs on the left can help you +switch between the different channels. +Most discussions will be in +#emacsconf-gen for the General track. +If you need to reach us, you can join #emacsconf-org +or e-mail emacsconf-org-private@gnu.org. +You can use #emacsconf for hallway conversations. +Of course, you can join any of these channels +with your favourite IRC client. +You can connect to irc.libera.chat +port 6697 with TLS. +Once again, we're going to be streaming with open captions +for most of the talks this year, thanks to our speakers and +captioning volunteers. The captioned talks are indicated +on the schedule, and with any luck, we'll be posting +transcripts on talk pages shortly after the talks start. +If you need additional accommodations, +please let us know in #emacsconf-org +and we'll see if we can make things happen. +If something goes down, we'll update status.emacsconf.org. +If it doesn't look like we've noticed yet, +please let us know in the #emacsconf-org IRC channel, +where we will be quietly panicking. +In all of these conversations, please keep in mind +our guidelines for conduct. You can find them on the wiki, +They basically boil down to: please be nice. +If all goes well, the prerecorded talks and transcripts +should be available from the talk pages +shortly after they start playing, +and we'll post the recordings of live talks +and Q&A sessions within the next month or so. +If you'd like to get an update, you can subscribe to +the emacsconf-discuss mailing list. +All right, let's get going. +Leo Vivier is hosting the general track again today. +The other volunteers and I will run around mostly backstage, +and you'll probably meet us in the closing remarks. +That's also where we get to thank +all the people and organizations +who make EmacsConf even possible. +Thanks for coming to EmacsConf 2025. +*** TODO Generate assets +*** TODO Send check-in details :email: +*** TODO Ask libera.chat to increase IRC limit +** After the conference +*** TODO Send thanks and follow-up questions :email: +** TODO Confirm shifts +SCHEDULED: <2026-12-01 Tue> +:PROPERTIES: +:CUSTOM_ID: shifts +:CREATED: [2025-11-15 Sat 15:20] +:END: +:LOGBOOK: +- Note taken on [2025-11-22 Sat 17:35] \\ + probably fine for this year +:END: + +#+BEGIN_EXPORT md +<a name="shifts"></a> +#+END_EXPORT + +AM: 9-12 PM EST, PM: 1-5 PM EST (plus a little extra for setup/transition) + +Saturday Dec 6 2025 + +#+NAME: saturday-shifts +| | Start | End | [[https://emacsconf.org/2023/volunteer/host/][Host]] | Streamer | [[https://emacsconf.org/2023/volunteer/checkin/][Checkin]] | [[https://emacsconf.org/2023/volunteer/irc/][IRC]] | [[https://emacsconf.org/2023/volunteer/pad/][Pad]] | Coord | +|--------+-------+-------+--------+----------+---------+-----+-----+--------| +| Gen AM | 09:00 | 12:00 | zaeph | sachac | sachac | | | sachac | +| Gen PM | 13:00 | 17:00 | zaeph | sachac | sachac | | | sachac | +| Dev AM | 10:00 | 12:00 | corwin | sachac | sachac | | | sachac | +| Dev PM | 13:00 | 17:00 | corwin | sachac | sachac | | | sachac | + +Sunday Dec 7 2025 + +#+NAME: sunday-shifts +| | Start | End | [[https://emacsconf.org/2023/volunteer/host/][Host]] | Streamer | [[https://emacsconf.org/2023/volunteer/checkin/][Checkin]] | [[https://emacsconf.org/2023/volunteer/irc/][IRC]] | [[https://emacsconf.org/2023/volunteer/pad/][Pad]] | Coord | +|--------+-------+-------+--------------+----------+---------+-----+-----+--------| +| Gen AM | 09:00 | 12:00 | zaeph/corwin | sachac | sachac | | | sachac | +| Gen PM | 13:00 | 17:00 | zaeph/corwin | sachac | sachac | | | sachac | + +Backups: +- dev host/streamer: +- gen host/streamer: +- checkin, IRC, pad: + +Interested in a shift? Please e-mail [[mailto:emacsconf-org-private@gnu.org]] and we'll help you figure out what you need to learn. + +#+begin_src emacs-lisp :var sat=saturday-shifts :var sun=sunday-shifts :rownames no :colnames no :results verbatim replace +`(setq emacsconf-shifts + (list + ,@(apply #'append + (mapcar + (lambda (day) + (let ((headers + (mapcar + (lambda (field) + (intern + (concat + ":" + (downcase + (if (string-match org-link-bracket-re field) + (match-string 2 field) + field))))) + (seq-drop (car (cadr day)) 3)))) + (mapcar + (lambda (row) + (apply #'append + (list 'list :id + (when (string-match "^\\([^ ]+\\) \\(AM\\|PM\\)" (car row)) + (format "%s-%s-%s" + (car day) + (downcase (match-string 2 (car row))) + (downcase (match-string 1 (car row))))) + :track + (if (string-match "^Gen" (car row)) "General" "Development") + :start + (format "%sT%s:00%s" + (elt day 2) + (elt row 1) + emacsconf-timezone-offset) + :end + (format "%sT%s:00%s" + (elt day 2) + (elt row 2) + emacsconf-timezone-offset)) + (seq-map-indexed + (lambda (value index) + (unless (string= value "") + (list (elt headers index) value))) + (seq-drop row 3)))) + (cdr (cadr day))) + )) + (list + (list "sat" sat "2025-12-06") + (list "sun" sun "2025-12-07")))))) + +#+end_src + +#+RESULTS: +:results: +(setq emacsconf-shifts (list (list :id "sat-am-gen" :track "General" :start "2025-12-06T09:00:00-0500" :end "2025-12-06T12:00:00-0500" :host "zaeph" :streamer "sachac" :checkin "sachac" :coord "sachac") (list :id "sat-pm-gen" :track "General" :start "2025-12-06T13:00:00-0500" :end "2025-12-06T17:00:00-0500" :host "zaeph" :streamer "sachac" :checkin "sachac" :coord "sachac") (list :id "sat-am-dev" :track "Development" :start "2025-12-06T10:00:00-0500" :end "2025-12-06T12:00:00-0500" :host "corwin" :streamer "sachac" :checkin "sachac" :coord "sachac") (list :id "sat-pm-dev" :track "Development" :start "2025-12-06T13:00:00-0500" :end "2025-12-06T17:00:00-0500" :host "corwin" :streamer "sachac" :checkin "sachac" :coord "sachac") (list :id "sun-am-gen" :track "General" :start "2025-12-07T09:00:00-0500" :end "2025-12-07T12:00:00-0500" :host "zaeph/corwin" :streamer "sachac" :checkin "sachac" :coord "sachac") (list :id "sun-pm-gen" :track "General" :start "2025-12-07T13:00:00-0500" :end "2025-12-07T17:00:00-0500" :host "zaeph/corwin" :streamer "sachac" :checkin "sachac" :coord "sachac"))) +:end: + + +* TODO [#A] Check EmacsConf infrastructure +SCHEDULED: <2026-10-01 Thu> +:PROPERTIES: +:CUSTOM_ID: check-emacsconf-infrastructure +:CREATED: [2026-05-13 Wed 11:08] +:END: + +- [ ] IRC +- [ ] Streaming assets +- [ ] Publishing to the wiki +- [ ] Web conference +- [ ] OBS +- [ ] Publishing to the media server +- [ ] Etherpad +- [ ] Streaming +- [ ] Toobnix +- [ ] YouTube +- [ ] Mumble: Can join from my phone, can speak on stream + +** BigBlueButton +:PROPERTIES: +:CREATED: [2024-11-02 Sat 11:38] +:CUSTOM_ID: check-emacsconf-infrastructure-bigbluebutton +:END: + +- Plan: Scale up the bbb.emacsverse.org on Sacha's Linode account +- [[https://emacsconf.org/2024/organizers-notebook/#check-emacsconf-infrastructure-bigbluebutton][Installation notes from last year]] + +*** TODO Create meeting rooms for each speaker +:PROPERTIES: +:CREATED: [2024-11-02 Sat 11:50] +:Effort: 0:30 +:CUSTOM_ID: create_rooms +:END: +:LOGBOOK: +CLOCK: [2024-11-28 Thu 10:00]--[2024-11-28 Thu 10:12] => 0:12 +CLOCK: [2024-11-20 Wed 10:48]--[2024-11-20 Wed 12:18] => 1:30 +:END: + +[[file:~/proj/emacsconf/wiki/organizers-notebook/index.org::#general-infrastructure-bigbluebutton-creating-talk-bbb-rooms][Creating talk BBB rooms]] + +*** TODO Back up after the conference +:PROPERTIES: +:CUSTOM_ID: check-emacsconf-infrastructure-bigbluebutton-notes-backing-up +:CREATED: [2025-06-17 Tue 10:34] +:END: + +[[file:~/proj/emacsconf/wiki/organizers-notebook/index.org::#general-infrastructure-bigbluebutton-backing-up-bbb][Backing up BBB]] + +*** TODO Set up moderator access codes for all the meeting rooms, and make it so people can start the meeting +:PROPERTIES: +:Effort: 0:30 +:CUSTOM_ID: check-emacsconf-infrastructure-bigbluebutton-set-up-moderator-access-codes-for-all-the-meeting-rooms-and-make-it-so-people-can-start-the-meeting +:END: + +[[file:~/proj/emacsconf/wiki/organizers-notebook/index.org::#general-infrastructure-bigbluebutton-setting-up-moderator-access-codes][Setting up moderator access codes]] +*** TODO Check BBB audio from my phone +:PROPERTIES: +:CUSTOM_ID: check-emacsconf-infrastructure-bigbluebutton-check-bbb-audio-from-my-phone +:END: +*** Customize BigBlueButton branding +**** TODO [#C] Change background presentation +:PROPERTIES: +:CUSTOM_ID: check-emacsconf-infrastructure-bigbluebutton-change-background-presentation +:END: +https://docs.bigbluebutton.org/3.0/administration/customize/#change-the-default-presentation +**** TODO [#C] Modify landing page +:PROPERTIES: +:CUSTOM_ID: check-emacsconf-infrastructure-bigbluebutton-modify-landing-page +:END: +/var/www/bigbluebutton-default/assets/index.html +keep backup copy as it will be overwritten when bbb-conf is called +**** TODO [#C] Change default welcome message +:PROPERTIES: +:Effort: 0:30 +:CUSTOM_ID: check-emacsconf-infrastructure-bigbluebutton-change-default-welcome-message +:END: +https://docs.bigbluebutton.org/3.0/administration/customize/#change-the-default-welcome-message +**** TODO [#C] Change html5 title +:PROPERTIES: +:CUSTOM_ID: check-emacsconf-infrastructure-bigbluebutton-change-html5-title +:END: +/usr/share/bigbluebutton/html5-client/private/config/settings.yml + +TARGET=/usr/share/bigbluebutton/html5-client/private/config/settings.yml +yq e -i ".public.app.clientTitle = \"EmacsConf\"" $TARGET +**** TODO [#C] Try live captions +:PROPERTIES: +:CUSTOM_ID: check-emacsconf-infrastructure-bigbluebutton-try-live-captions +:END: +https://docs.bigbluebutton.org/3.0/administration/customize/#enable-live-captions +**** TODO Explore meeting layout? Default to custom, hosts will need to drag people's webcam over if there's a share +:PROPERTIES: +:CUSTOM_ID: check-emacsconf-infrastructure-bigbluebutton-explore-meeting-layout-default-to-custom-hosts-will-need-to-drag-people-s-webcam-over-if-there-s-a-share +:END: + +** IRC web client +:PROPERTIES: +:CUSTOM_ID: check-emacsconf-infrastructure-irc-web-client +:END: + +On front0: +cd ~thelounge; sudo -u thelounge nohup node /usr/bin/thelounge start + +*** TODO Ask libera.chat to increase connections allowed from chat.emacsconf.org on Dec 6 and 7 +:PROPERTIES: +:CUSTOM_ID: check-emacsconf-infrastructure-irc-web-client-ask-libera-chat-to-increase-connections-allowed-from-chat-emacsconf-org-on-dec-7-and-8 +:END: +[[file:~/proj/emacsconf/wiki/organizers-notebook/index.org::#general-infrastructure-irc-web-client][IRC web client]] +** IRC announcements +:PROPERTIES: +:CUSTOM_ID: check-emacsconf-infrastructure-irc-announcements +:END: +*** TODO Confirm manual IRC announcements +:PROPERTIES: +:CUSTOM_ID: check-emacsconf-infrastructure-irc-announcements-confirm-manual-irc-announcements +:END: +*** TODO Confirm automated IRC announcements from res +:PROPERTIES: +:CUSTOM_ID: check-emacsconf-infrastructure-irc-announcements-confirm-automated-irc-announcements-from-res +:END: +** Media +:PROPERTIES: +:CUSTOM_ID: check-emacsconf-infrastructure-media +:END: + +*** TODO Switch public media to unprotected root before the conference +:PROPERTIES: +:CUSTOM_ID: check-emacsconf-infrastructure-media-switch-public-media-to-unprotected-root-before-the-conference +:END: + +1. Clear public media directory. +2. Set =media_protect_root= to false in Ansible =group_vars/all.yml=. +3. =ansible-playbook -i inventory.yml prod-playbook.yml --tags media= + +You can generate the index with =emacsconf-publish-update-media=. +** TODO Publishing resources to the wiki +:PROPERTIES: +:CUSTOM_ID: check-emacsconf-infrastructure-publishing-resources-to-the-wiki +:END: +ansible-playbook -i inventory.yml prod-playbook.yml --tags publish + + + +** TODO Publishing videos to the media server +:PROPERTIES: +:CUSTOM_ID: check-emacsconf-infrastructure-publishing-videos-to-the-media-server +:END: +** Playing videos, switching to windows +:PROPERTIES: +:CUSTOM_ID: check-emacsconf-infrastructure-playing-videos-switching-to-windows +:END: + +*** TODO Generate test videos for everything +:PROPERTIES: +:CUSTOM_ID: check-emacsconf-infrastructure-playing-videos-switching-to-windows-generate-test-videos-for-everything +:END: + +emacsconf-stream-generate-test-videos + +*** TODO Document how to get that set up again +:PROPERTIES: +:CUSTOM_ID: check-emacsconf-infrastructure-playing-videos-switching-to-windows-document-how-to-get-that-set-up-again +:END: +** Etherpad +:PROPERTIES: +:CUSTOM_ID: check-emacsconf-infrastructure-etherpad +:END: +*** TODO Try upgrading to 2.x +:PROPERTIES: +:Effort: 2:00 +:END: +:LOGBOOK: +CLOCK: [2025-09-22 Mon 12:46] +:END: + +https://galaxy.ansible.com/ui/repo/published/s3lph/pads/content/role/etherpad/ +[[emacsconf-ansible:roles/pad/tasks/main.yml]] + +nodemon -e yml -w ../../roles/pad/tasks/main.yml -x "vagrant up --provision" + +http://pad.emacsconf.org.vagrant/ + +Progress: +http://pad.emacsconf.org.vagrant:9001/p/2025-hyperboleqa works +http://pad.emacsconf.org.vagrant/p/2025-hyperboleqa works now that I passthrough .js + + +http://pad.emacsconf.org.vagrant/padbootstrap-rLLvrD2UOFI.min.js +*** Generate pads for all the talks +:PROPERTIES: +:CUSTOM_ID: check-emacsconf-infrastructure-etherpad-generate-pads-for-all-the-talks +:END: + + +*** TODO Generate the main index +:PROPERTIES: +:CUSTOM_ID: check-emacsconf-infrastructure-etherpad-generate-the-main-index +:END: +** TODO Do a dry run +:PROPERTIES: +:CUSTOM_ID: check-emacsconf-infrastructure-do-a-dry-run +:END: +*** TODO Generate all the test assets +:PROPERTIES: +:Effort: 0:15 +:CUSTOM_ID: check-emacsconf-infrastructure-do-a-dry-run-generate-all-the-test-assets +:END: +*** TODO Test connecting to VNC and streaming via OBS :emacsconf: +:PROPERTIES: +:CUSTOM_ID: check-emacsconf-infrastructure-do-a-dry-run-test-connecting-to-vnc-and-streaming-via-obs +:CREATED: [2025-11-07 Fri 13:52] +:END: +** Resizing +:PROPERTIES: +:CUSTOM_ID: check-emacsconf-infrastructure-resizing +:END: + +live0: 64GB +front0: 32GB +meet: 64GB + +*** TODO [#A] Resize nodes before production +SCHEDULED: <2026-12-11 Fri> +:PROPERTIES: +:CUSTOM_ID: check-emacsconf-infrastructure-resizing-resize-nodes-before-production +:CREATED: [2026-07-04 Sat 10:39] +:END: + +live0: 64GB +front0: 32GB +meet: 64GB + +*** TODO [#A] Resize nodes after production +SCHEDULED: <2026-12-13 Sun> +:PROPERTIES: +:CUSTOM_ID: check-emacsconf-infrastructure-resizing-resize-nodes-after-production +:CREATED: [2026-07-04 Sat 10:39] +:END: + +live0: nanode +front0: nanode +*** TODO [#A] Resize meet after production +SCHEDULED: <2026-12-13 Sun> +:PROPERTIES: +:CUSTOM_ID: check-emacsconf-infrastructure-resizing-resize-meet-after-production +:CREATED: [2026-07-04 Sat 10:39] +:END: +meet: nanode +* Processes and notes +:PROPERTIES: +:CUSTOM_ID: processes-and-notes +:END: +** Hosting +:PROPERTIES: +:CUSTOM_ID: processes-and-notes-hosting +:END: +*** TODO Finalize host for dev track +:PROPERTIES: +:CUSTOM_ID: processes-and-notes-hosting-finalize-host-for-dev-track +:END: +** ERC +:PROPERTIES: +:CUSTOM_ID: processes-and-notes-erc +:END: + +Some convenient commands are defined in emacsconf-el:emacsconf-erc.el. + +| /opall | Grant operator status in the Emacsconf channels | +| /deopall | Remove operator status in the Emacsconf channels | +| /conftopic | Set the first part of the topic | +** Uploading videos +*** YouTube + +emacsconf-publish-youtube-step-through-publishing + + +*** Toobnix + +* Decisions +:PROPERTIES: +:CUSTOM_ID: decisions +:END: +* Support code +:PROPERTIES: +:CUSTOM_ID: support-code +:END: + +#+begin_src emacs-lisp :results silent +(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 + +#+RESULTS: +:results: +my-org-md-link +:end: diff --git a/2026/organizers-notebook/schedule.svg b/2026/organizers-notebook/schedule.svg new file mode 100644 index 00000000..31e1d110 --- /dev/null +++ b/2026/organizers-notebook/schedule.svg @@ -0,0 +1 @@ +<svg width="500" height="700" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><title>Graphical view of the schedule</title><g transform="translate(0,0)"><title>Schedule for Saturday</title><rect width="166" height="700" x="0" y="0" fill="white"></rect><text font-size="10" fill="black" y="30" x="3">Saturday</text><a href="https://emacsconf.org/2026/talks/sat-open" title="Saturday opening remarks" data-slug="sat-open"><title> 9:00- 9:10 Saturday opening remarks</title><rect x="40" y="40" opacity="0.8" width="42" height="13" stroke="black" stroke-dasharray="5,5,5" fill="gray"></rect><g transform="translate(40,51)"><text fill="black" x="0" y="0" font-size="10" transform="nil">sat-open</text></g></a><a href="https://emacsconf.org/2026/talks/emacspeak" title="Multi-dimensional information processing with Emacs and Emacspeak: a blind man's perspective" data-slug="emacspeak"><title> 9:10- 9:40 Multi-dimensional information processing with Emacs and Emacspeak: a blind man's perspective</title><rect x="40" y="53" opacity="0.8" width="42" height="41" stroke="black" stroke-dasharray="5,5,5" fill="gray"></rect><g transform="translate(40,92)"><text fill="black" x="0" y="0" font-size="10" transform="nil">emacspeak</text></g></a><a href="https://emacsconf.org/2026/talks/align" title="Column-aligning text in Emacs" data-slug="align"><title> 9:50-10:10 Column-aligning text in Emacs</title><rect x="40" y="108" opacity="0.8" width="42" height="27" stroke="black" stroke-dasharray="" fill="gray"></rect><g transform="translate(40,133)"><text fill="black" x="0" y="0" font-size="10" transform="nil">align</text></g></a><a href="https://emacsconf.org/2026/talks/cadet" title="My Space Cadet Deck - an Android Stream Deck replacement with deep Emacs integration" data-slug="cadet"><title>10:30-10:40 My Space Cadet Deck - an Android Stream Deck replacement with deep Emacs integration</title><rect x="40" y="163" opacity="0.8" width="42" height="13" stroke="black" stroke-dasharray="" fill="gray"></rect><g transform="translate(40,174)"><text fill="black" x="0" y="0" font-size="10" transform="nil">cadet</text></g></a><a href="https://emacsconf.org/2026/talks/local" title="Local file history possibilities in Emacs" data-slug="local"><title>11:00-11:10 Local file history possibilities in Emacs</title><rect x="40" y="204" opacity="0.8" width="42" height="13" stroke="black" stroke-dasharray="" fill="lightblue"></rect><g transform="translate(40,215)"><text fill="black" x="0" y="0" font-size="10" transform="nil">local</text></g></a><a href="https://emacsconf.org/2026/talks/portable" title="Emacs as my portable user space across operating platforms" data-slug="portable"><title> 1:00- 1:20 Emacs as my portable user space across operating platforms</title><rect x="40" y="369" opacity="0.8" width="42" height="27" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(40,394)"><text fill="black" x="0" y="0" font-size="10" transform="nil">portable</text></g></a><a href="https://emacsconf.org/2026/talks/sat-close" title="Saturday closing remarks / open session" data-slug="sat-close"><title> 1:40- 1:50 Saturday closing remarks / open session</title><rect x="40" y="424" opacity="0.8" width="42" height="13" stroke="black" stroke-dasharray="" fill="gray"></rect><g transform="translate(40,435)"><text fill="black" x="0" y="0" font-size="10" transform="nil">sat-close</text></g></a><g transform="translate(3,40)"><line stroke="darkgray" x1="40" y1="0" x2="126" y2="0"></line><text fill="black" x="0" y="0" font-size="10" dy=".4em">9 AM</text></g><g transform="translate(3,122)"><line stroke="darkgray" x1="40" y1="0" x2="126" y2="0"></line><text fill="black" x="0" y="0" font-size="10" dy=".4em">10 AM</text></g><g transform="translate(3,204)"><line stroke="darkgray" x1="40" y1="0" x2="126" y2="0"></line><text fill="black" x="0" y="0" font-size="10" dy=".4em">11 AM</text></g><g transform="translate(3,287)"><line stroke="darkgray" x1="40" y1="0" x2="126" y2="0"></line><text fill="black" x="0" y="0" font-size="10" dy=".4em">12 PM</text></g><g transform="translate(3,369)"><line stroke="darkgray" x1="40" y1="0" x2="126" y2="0"></line><text fill="black" x="0" y="0" font-size="10" dy=".4em">1 PM</text></g><g transform="translate(3,451)"><line stroke="darkgray" x1="40" y1="0" x2="126" y2="0"></line><text fill="black" x="0" y="0" font-size="10" dy=".4em">2 PM</text></g><g transform="translate(3,534)"><line stroke="darkgray" x1="40" y1="0" x2="126" y2="0"></line><text fill="black" x="0" y="0" font-size="10" dy=".4em">3 PM</text></g><g transform="translate(3,616)"><line stroke="darkgray" x1="40" y1="0" x2="126" y2="0"></line><text fill="black" x="0" y="0" font-size="10" dy=".4em">4 PM</text></g><g transform="translate(3,698)"><line stroke="darkgray" x1="40" y1="0" x2="126" y2="0"></line><text fill="black" x="0" y="0" font-size="10" dy=".4em">5 PM</text></g></g><g transform="translate(166,0)"><title>Schedule for Sunday</title><rect width="166" height="700" x="0" y="0" fill="white"></rect><text font-size="10" fill="black" y="30" x="3">Sunday</text><a href="https://emacsconf.org/2026/talks/sun-open" title="Sunday opening remarks" data-slug="sun-open"><title> 9:00- 9:10 Sunday opening remarks</title><rect x="40" y="40" opacity="0.8" width="42" height="13" stroke="black" stroke-dasharray="5,5,5" fill="gray"></rect><g transform="translate(40,51)"><text fill="black" x="0" y="0" font-size="10" transform="nil">sun-open</text></g></a><a href="https://emacsconf.org/2026/talks/sun-close" title="Sunday closing remarks" data-slug="sun-close"><title> 1:00- 1:10 Sunday closing remarks</title><rect x="40" y="369" opacity="0.8" width="42" height="13" stroke="black" stroke-dasharray="" fill="gray"></rect><g transform="translate(40,380)"><text fill="black" x="0" y="0" font-size="10" transform="nil">sun-close</text></g></a><g transform="translate(3,40)"><line stroke="darkgray" x1="40" y1="0" x2="126" y2="0"></line><text fill="black" x="0" y="0" font-size="10" dy=".4em">9 AM</text></g><g transform="translate(3,122)"><line stroke="darkgray" x1="40" y1="0" x2="126" y2="0"></line><text fill="black" x="0" y="0" font-size="10" dy=".4em">10 AM</text></g><g transform="translate(3,204)"><line stroke="darkgray" x1="40" y1="0" x2="126" y2="0"></line><text fill="black" x="0" y="0" font-size="10" dy=".4em">11 AM</text></g><g transform="translate(3,287)"><line stroke="darkgray" x1="40" y1="0" x2="126" y2="0"></line><text fill="black" x="0" y="0" font-size="10" dy=".4em">12 PM</text></g><g transform="translate(3,369)"><line stroke="darkgray" x1="40" y1="0" x2="126" y2="0"></line><text fill="black" x="0" y="0" font-size="10" dy=".4em">1 PM</text></g><g transform="translate(3,451)"><line stroke="darkgray" x1="40" y1="0" x2="126" y2="0"></line><text fill="black" x="0" y="0" font-size="10" dy=".4em">2 PM</text></g><g transform="translate(3,534)"><line stroke="darkgray" x1="40" y1="0" x2="126" y2="0"></line><text fill="black" x="0" y="0" font-size="10" dy=".4em">3 PM</text></g><g transform="translate(3,616)"><line stroke="darkgray" x1="40" y1="0" x2="126" y2="0"></line><text fill="black" x="0" y="0" font-size="10" dy=".4em">4 PM</text></g><g transform="translate(3,698)"><line stroke="darkgray" x1="40" y1="0" x2="126" y2="0"></line><text fill="black" x="0" y="0" font-size="10" dy=".4em">5 PM</text></g></g><g transform="translate(332,0)"><title>Schedule for Sunday</title><rect width="166" height="700" x="0" y="0" fill="white"></rect><text font-size="10" fill="black" y="30" x="3">Sunday</text><a href="https://emacsconf.org/2026/talks/open-mic" title="Open session" data-slug="open-mic"><title>11:15-11:15 Open session</title><rect x="40" y="1132" opacity="0.8" width="42" height="0" stroke="black" stroke-dasharray="" fill="gray"></rect><g transform="translate(40,1130)"><text fill="black" x="0" y="0" font-size="10" transform="nil">open-mic</text></g></a><g transform="translate(3,40)"><line stroke="darkgray" x1="40" y1="0" x2="126" y2="0"></line><text fill="black" x="0" y="0" font-size="10" dy=".4em">10 AM</text></g><g transform="translate(3,122)"><line stroke="darkgray" x1="40" y1="0" x2="126" y2="0"></line><text fill="black" x="0" y="0" font-size="10" dy=".4em">11 AM</text></g><g transform="translate(3,204)"><line stroke="darkgray" x1="40" y1="0" x2="126" y2="0"></line><text fill="black" x="0" y="0" font-size="10" dy=".4em">12 PM</text></g><g transform="translate(3,287)"><line stroke="darkgray" x1="40" y1="0" x2="126" y2="0"></line><text fill="black" x="0" y="0" font-size="10" dy=".4em">1 PM</text></g><g transform="translate(3,369)"><line stroke="darkgray" x1="40" y1="0" x2="126" y2="0"></line><text fill="black" x="0" y="0" font-size="10" dy=".4em">2 PM</text></g><g transform="translate(3,451)"><line stroke="darkgray" x1="40" y1="0" x2="126" y2="0"></line><text fill="black" x="0" y="0" font-size="10" dy=".4em">3 PM</text></g><g transform="translate(3,534)"><line stroke="darkgray" x1="40" y1="0" x2="126" y2="0"></line><text fill="black" x="0" y="0" font-size="10" dy=".4em">4 PM</text></g><g transform="translate(3,616)"><line stroke="darkgray" x1="40" y1="0" x2="126" y2="0"></line><text fill="black" x="0" y="0" font-size="10" dy=".4em">5 PM</text></g><g transform="translate(3,698)"><line stroke="darkgray" x1="40" y1="0" x2="126" y2="0"></line><text fill="black" x="0" y="0" font-size="10" dy=".4em">6 PM</text></g></g></svg>
\ No newline at end of file diff --git a/2026/prepare.md b/2026/prepare.md new file mode 100644 index 00000000..1c68c08a --- /dev/null +++ b/2026/prepare.md @@ -0,0 +1,313 @@ +[[!meta title="Preparing your talk"]] +[[!meta copyright="Copyright © 2019, 2020 Amin Bandali; 2021, 2022 Amin Bandali, Sacha Chua, Leo Vivier; 2023-2026 Sacha Chua"]] + +This page contains tips for preparing your talk. (Target date: on or before +**October 30, 2026**) If you have any questions, concerns, or suggestions +please feel free to write to one of 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 2026 run smoothly, please prerecord your talk, and +plan to upload your video(s) by **October 30, 2026** 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 we'll send you a URL to your own +BigBlueButton room close to the conference. 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 2026! + +# 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/emacsattic/interaction-log) +(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: <2026-10-30 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/2026/prepare - tips and instructions + +Questions: +- public: mailto:emacsconf-org@gnu.org +- private: mailto:emacsconf-org-private@gnu.org + +Note: 2026-10-30 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 2026! + +<!-- <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/2026/schedule-details.md b/2026/schedule-details.md new file mode 100644 index 00000000..5c933930 --- /dev/null +++ b/2026/schedule-details.md @@ -0,0 +1,16 @@ +Jump to: <a href="#dev">Development</a> + +<h1 id="gen" class="sched-track General">General (9 talks)</h1> +[[!template id=sched title="""Open session""" url="""/2026/talks/open-mic""" speakers="""Participants""" watch="""https://emacsconf.org/2026/watch/gen""" slug="""open-mic""" note=""""""]] +[[!template id=sched title="""Saturday opening remarks""" url="""/2026/talks/sat-open""" speakers="""Sacha Chua""" watch="""https://emacsconf.org/2026/watch/gen""" slug="""sat-open""" note=""""""]] +[[!template id=sched title="""Multi-dimensional information processing with Emacs and Emacspeak: a blind man's perspective""" url="""/2026/talks/emacspeak""" speakers="""Arkadiusz""" watch="""https://emacsconf.org/2026/watch/gen""" slug="""emacspeak""" note=""""""]] +[[!template id=sched title="""Column-aligning text in Emacs""" url="""/2026/talks/align""" speakers="""Jeff Trull""" watch="""https://emacsconf.org/2026/watch/gen""" slug="""align""" note=""""""]] +[[!template id=sched title="""My Space Cadet Deck - an Android Stream Deck replacement with deep Emacs integration""" url="""/2026/talks/cadet""" speakers="""Andy Drop""" watch="""https://emacsconf.org/2026/watch/gen""" slug="""cadet""" note=""""""]] +[[!template id=sched title="""Local file history possibilities in Emacs""" url="""/2026/talks/local""" speakers="""Wouter Groeneveld""" watch="""https://emacsconf.org/2026/watch/gen""" slug="""local""" note=""""""]] +[[!template id=sched title="""Sunday opening remarks""" url="""/2026/talks/sun-open""" speakers="""Sacha Chua""" watch="""https://emacsconf.org/2026/watch/gen""" slug="""sun-open""" note=""""""]] +[[!template id=sched title="""Saturday closing remarks / open session""" url="""/2026/talks/sat-close""" watch="""https://emacsconf.org/2026/watch/gen""" slug="""sat-close""" note=""""""]] +[[!template id=sched title="""Sunday closing remarks""" url="""/2026/talks/sun-close""" watch="""https://emacsconf.org/2026/watch/gen""" slug="""sun-close""" note=""""""]] + +Jump to: <a href="#gen">General</a> + +<h1 id="dev" class="sched-track Development">Development (0 talks)</h1> diff --git a/2026/submit.md b/2026/submit.md new file mode 100644 index 00000000..19606fe1 --- /dev/null +++ b/2026/submit.md @@ -0,0 +1,81 @@ +[[!meta title="Submit a proposal"]] +[[!meta copyright="Copyright © 2019, 2020 Amin Bandali<br /> +Copyright 2021 Amin Bandali, Sacha Chua, Leo Vivier<br /> +Copyright 2022 Amin Bandali<br /> +Copyright 2023-2026 Sacha Chua"]] + +When you're ready to submit your proposal, send your submission via +email to <emacsconf-submit@gnu.org> by **Friday, September 18, 2026**. +All speakers will be notified by Friday, September 25 (or earlier) +regarding the status of their proposal. If you don't get a message, +please follow up with us. If your talk is accepted, please plan to put +together your prerecorded video by Friday, October 30, 2026 so that we +can normalize all the audio and see if we can transcribe the talk. + +If you put your talk title in your submission e-mail's subject line, +it'll be easier to keep track of the conversation. Please use the +following template for your submission email: + +``` +Talk title: + + +Talk description (<= 500 words): + + + + + + + + +Format (10 minutes, 20 minutes, description of other format) and outline: + +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 12-13; +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): + +Public contact information (IRC nick, e-mail, website, and/or social media): + +Private emergency contact information (phone number or messaging) in +case we need to reach you due to technical difficulties (optional): + +Please include this speaker release in order to indicate your agreement with it. + + By submitting this proposal, I agree that my presentation at + EmacsConf 2026 is subject to the following terms and conditions: + + The EmacsConf organizers may capture audio and video (a "Recording") + of my presentation and any associated materials, which may include + slides, notes, transcripts, and prerecording(s) of my presentation + that I provide to the EmacsConf organizers. + + I authorize the EmacsConf organizers to distribute, reproduce, + publicly display, and prepare derivative works of the Recording and + any derivative works of the Recording (the "Licensed Materials") + under the terms of the Creative Commons Attribution-ShareAlike 4.0 + International (CC BY-SA 4.0) license. + + I grant to the EmacsConf organizers permission to use my name, + likeness, and biographic information in association with their use + of the Licensed Materials under the above license. + + I represent that I have the authority to grant the above license to + the EmacsConf organizers. If my presentation incorporates any + material owned by third parties, I represent that the material is + sublicensable to the EmacsConf organizers or that my use of them is + fair use. +``` + +For other details, see the [[call for participation|cfp]]. + +You can subscribe to the +[emacsconf-discuss mailing list](https://lists.gnu.org/mailman/listinfo/emacsconf-discuss) +for discussions and announcements about EmacsConf 2026. + +We look forward to your ideas and submissions. Thank you! diff --git a/2026/talks.md b/2026/talks.md new file mode 100644 index 00000000..ab27161d --- /dev/null +++ b/2026/talks.md @@ -0,0 +1,12 @@ +We're getting ready for EmacsConf 2026. Want to propose a talk? +[[Check out our call for participation|/2026/cfp]] and submit your proposal +by Friday, September 18, 2026! + +Here are some of the talks we've accepted so far: + +[[!inline pages="internal(2026/schedule-details)" raw="yes"]] + +Want to help make EmacsConf even awesomer? [[Volunteer!|/volunteer]] + +We hope to see you all around on Dec 12-13 for EmacsConf 2026! + diff --git a/2026/talks/align.md b/2026/talks/align.md new file mode 100644 index 00000000..8a78d763 --- /dev/null +++ b/2026/talks/align.md @@ -0,0 +1,59 @@ +[[!meta title="Column-aligning text in Emacs"]] +[[!meta copyright="Copyright © 2026 Jeff Trull"]] +[[!inline pages="internal(2026/info/align-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. ---> + + +# Column-aligning text in Emacs +Jeff Trull (he/him) - Pronunciation: rhymes with "hull" and "dull", Mastodon: @jaafar@hachyderm.io Blog: <http://jefftrull.github.io/> Email: <mailto:edaskel@att.net> + +[[!inline pages="internal(2026/info/align-before)" raw="yes"]] + +Emacs has a rich set of features for manipulating ordinary text. The "fill" +features align text at the right or left edges of a paragraph, while +"indent" adds space at the start of a line based on the level within an +outline, or the depth of a block in code. + +Emacs also has a framework for lining up text **inside** a line to match +adjacent lines, creating the appearance of columns. For example, some +coders like to have equal signs in a series of assignment statements line +up, like this: + + apple = 12; + rambutan = 42; + +The [align.el family of functions](https://www.gnu.org/software/emacs/manual///html_node/emacs/Code-Alignment.html) provides functions like align, which is the entry point for mode-based code alignment, as well as align-regexp, which gives interactive, user-defined access to the same features. +The presenter will give a basic introduction to the user-facing features before diving into a technical explanation of how to use the framework at the Lisp level to create your own alignment rules and features. +The technical portion will touch on packages like rx and peg in addition to align.el. + +Format: **20 minutes** and outline: + +- Motivation: the uses of (column) alignment +- Built-in align: features you can use out-of-the-box in programming modes + +- Customizing built-in align + - align-regexp for interactive alignment + - customizing align-rules-list for modes +- align.el for the ELisp coder + - Readable regexp with rx + - Example: Creating org-mode tables from columns + - Example: peg parsers as an alternative to regexp + +About the speaker: + +Jeff is a long-time Emacs user working on improving his ELisp skills. +The dominance of VSCode makes him sad. + +He discovered the align.el framework while trying to improve Emacs +formatting support for a C++ library he uses, Boost.SML +<https://github.com/boost-ext/sml>. + + + +[[!inline pages="internal(2026/info/align-after)" raw="yes"]] + +[[!inline pages="internal(2026/info/align-nav)" raw="yes"]] + + diff --git a/2026/talks/cadet.md b/2026/talks/cadet.md new file mode 100644 index 00000000..44710960 --- /dev/null +++ b/2026/talks/cadet.md @@ -0,0 +1,51 @@ +[[!meta title="My Space Cadet Deck - an Android Stream Deck replacement with deep Emacs integration"]] +[[!meta copyright="Copyright © 2026 Andy Drop"]] +[[!inline pages="internal(2026/info/cadet-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 Space Cadet Deck - an Android Stream Deck replacement with deep Emacs integration +Andy Drop (he/him) - Web: <https://plaindrops.de> Fediverse: SpaceCadet@chaos.social, <mailto:SpaceCadet@plaindrops.de> + +[[!inline pages="internal(2026/info/cadet-before)" raw="yes"]] + +After spending more time configuring my original Stream Deck than +actually using it, I realized I’d rather build my own from scratch—just +to spend even more time configuring it. + +This talk is a love letter to over-engineering. I’ll walk you through +how I turned an old Android tablet into a programmable macro pad, +complete with custom Emacs keybindings, because why use a keyboard when +you can tap a screen like a caffeinated octopus? + +Expect: + +- *Software hacks* (SDD (Swearword Driven development), and questionable +life choices). +- *Emacs sorcery* (yes, it /does/ control my music, launch terminals, +and occasionally insult me). +- *Self-deprecating humor* (because if I can’t laugh at my own failures, +who can?). + +Warning: May cause sudden urges to automate everything. Side effects +include increased caffeine consumption, mild obsession with keyboards, +and the occasional existential crisis when you realize you’ve spent +three hours tweaking a button that saves you 10 seconds. + +About the speaker: + +I'm a passionate Emacs user and developer, tinkering with hardware to +integrate it with Emacs. My talk introduces the SpaceCadet Deck, my +Android-based Stream Deck alternative, and its deep integration with +Emacs. I'll share my intention of building this customizable input +device, highlighting its potential to enhance workflows. Expect live +demos and practical tips. + + +[[!inline pages="internal(2026/info/cadet-after)" raw="yes"]] + +[[!inline pages="internal(2026/info/cadet-nav)" raw="yes"]] + + diff --git a/2026/talks/emacspeak.md b/2026/talks/emacspeak.md new file mode 100644 index 00000000..c96fd0b5 --- /dev/null +++ b/2026/talks/emacspeak.md @@ -0,0 +1,30 @@ +[[!meta title="Multi-dimensional information processing with Emacs and Emacspeak: a blind man's perspective"]] +[[!meta copyright="Copyright © 2026 Arkadiusz"]] +[[!inline pages="internal(2026/info/emacspeak-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. ---> + + +# Multi-dimensional information processing with Emacs and Emacspeak: a blind man's perspective +Arkadiusz (Nuno) - <https://swietnicki.dev> + +[[!inline pages="internal(2026/info/emacspeak-before)" raw="yes"]] + +Emacs is a tool that is extremely suitable to be operated by a fully +blind person. In this talk I would like to demonstrate one of its +strongest features, which is audio font locking. Using this mechanism +the user can get information in two dimensions, that is: "Information +snippet" as well as its metadata, carried by the font. In this talk, I +would like to briefly compare how blind people retrieve information +versus how the sighted do it, then briefly compare Emacs to other +traditional tools. At the end I am going to showcase a couple of +practical points: messages management with Telega, file navigation with +Dired and retrieving contact data with BBDB, all while using only speech +and sounds. + +[[!inline pages="internal(2026/info/emacspeak-after)" raw="yes"]] + +[[!inline pages="internal(2026/info/emacspeak-nav)" raw="yes"]] + + diff --git a/2026/talks/local.md b/2026/talks/local.md new file mode 100644 index 00000000..158775d8 --- /dev/null +++ b/2026/talks/local.md @@ -0,0 +1,33 @@ +[[!meta title="Local File History Possibilities in Emacs"]] +[[!meta copyright="Copyright © 2026 Wouter Groeneveld"]] +[[!inline pages="internal(2026/info/local-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. ---> + + +# Local File History Possibilities in Emacs +Wouter Groeneveld - <https://brainbaking.com>, <mailto:wouter@brainbaking.com> + +[[!inline pages="internal(2026/info/local-before)" raw="yes"]] + +Emacs offers a myriad of ways to keep track of previous versions +of your document: through tilde-like backup files, auto-save +files, and of course the extensive built-in undo history +system. Navigating that can be a chore unless you install +something like vundo to visualize the undo tree. But with a huge +undo-limit, even vundo can become unwieldy. What if we can conjure +up a way to diff between the current document and the state it was +in ten or twenty minutes ago, not unlike IntelliJ's local history +system? Using a combination of Consult (preview) and diff-buff, +that can be easily done! In this lightning talk, we'll explore how +to quickly browse through diff history and roll back using +built-in Emacs tooling. + + + +[[!inline pages="internal(2026/info/local-after)" raw="yes"]] + +[[!inline pages="internal(2026/info/local-nav)" raw="yes"]] + + diff --git a/2026/talks/open-mic.md b/2026/talks/open-mic.md new file mode 100644 index 00000000..333909f2 --- /dev/null +++ b/2026/talks/open-mic.md @@ -0,0 +1,21 @@ +[[!meta title="Open session"]] +[[!meta copyright="Copyright © 2026 Participants"]] +[[!inline pages="internal(2026/info/open-mic-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. ---> + + +# Open session +Participants + +[[!inline pages="internal(2026/info/open-mic-before)" raw="yes"]] + + + + +[[!inline pages="internal(2026/info/open-mic-after)" raw="yes"]] + +[[!inline pages="internal(2026/info/open-mic-nav)" raw="yes"]] + + diff --git a/2026/talks/portable.md b/2026/talks/portable.md new file mode 100644 index 00000000..762b17be --- /dev/null +++ b/2026/talks/portable.md @@ -0,0 +1,45 @@ +[[!meta title="Emacs as my portable user space across operating platforms"]] +[[!meta copyright="Copyright © 2026 Mohammed Ismail Ansari"]] +[[!inline pages="internal(2026/info/portable-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 my portable user space across operating platforms +Mohammed Ismail Ansari - <https://myterminal.me>, <mailto:mail@myterminal.me> + +[[!inline pages="internal(2026/info/portable-before)" raw="yes"]] + +In the talk, I plan to cover my entry +into the world of Emacs, a high-level series of events that shaped my +experience and learning, and a few takeaways from someone coming from an +entire different toolset and mentality, eventually having a moment of +enlightenment to never go back again. The talk will revolve around how +it has been my companion across multiple operating platforms and will +remain to be one of the core elements of my computing toolset no matter +the environment or platform. I'll talk about a few highs and lows of my +attempts of inviting friends to Emacs, a few mentions of my +contributions to the community and hopefully some tips for inspiration +to newcomers and fellow Emacs-ers alike. Along with these, I'll also +walk through how and why I created super-emacs and why I think it can be +a reasonably easy starting point for someone getting into Emacs as their +daily driver. + +About the speaker: I, Mohammed Ismail Ansari (aka myTerminal), come +from an academic background in Electronics Engineering, and have been +working professionally as a software engineer since seventeen years. +I love to create and experimenting with all kinds of machines, not +just computers, enjoying the exploration and tinkering process. +In the recent years I've also discovered my interest in personal +productivity, and pairing them with some of the core elements within +my toolset, including Linux, Emacs, and many other open-source +software everything fits in place as if it was supposed to be. + + + +[[!inline pages="internal(2026/info/portable-after)" raw="yes"]] + +[[!inline pages="internal(2026/info/portable-nav)" raw="yes"]] + + diff --git a/2026/talks/sat-close.md b/2026/talks/sat-close.md new file mode 100644 index 00000000..12eeb9f2 --- /dev/null +++ b/2026/talks/sat-close.md @@ -0,0 +1,21 @@ +[[!meta title="Saturday closing remarks / open session"]] +[[!meta copyright="Copyright © 2026 ${speakers}"]] +[[!inline pages="internal(2026/info/sat-close-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. ---> + + +# Saturday closing remarks / open session + + +[[!inline pages="internal(2026/info/sat-close-before)" raw="yes"]] + + + + +[[!inline pages="internal(2026/info/sat-close-after)" raw="yes"]] + +[[!inline pages="internal(2026/info/sat-close-nav)" raw="yes"]] + + diff --git a/2026/talks/sat-open.md b/2026/talks/sat-open.md new file mode 100644 index 00000000..d67255b4 --- /dev/null +++ b/2026/talks/sat-open.md @@ -0,0 +1,21 @@ +[[!meta title="Saturday opening remarks"]] +[[!meta copyright="Copyright © 2026 Sacha Chua"]] +[[!inline pages="internal(2026/info/sat-open-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. ---> + + +# Saturday opening remarks +Sacha Chua + +[[!inline pages="internal(2026/info/sat-open-before)" raw="yes"]] + + + + +[[!inline pages="internal(2026/info/sat-open-after)" raw="yes"]] + +[[!inline pages="internal(2026/info/sat-open-nav)" raw="yes"]] + + diff --git a/2026/talks/sun-close.md b/2026/talks/sun-close.md new file mode 100644 index 00000000..3568cf20 --- /dev/null +++ b/2026/talks/sun-close.md @@ -0,0 +1,21 @@ +[[!meta title="Sunday closing remarks"]] +[[!meta copyright="Copyright © 2026 ${speakers}"]] +[[!inline pages="internal(2026/info/sun-close-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. ---> + + +# Sunday closing remarks + + +[[!inline pages="internal(2026/info/sun-close-before)" raw="yes"]] + + + + +[[!inline pages="internal(2026/info/sun-close-after)" raw="yes"]] + +[[!inline pages="internal(2026/info/sun-close-nav)" raw="yes"]] + + diff --git a/2026/talks/sun-open.md b/2026/talks/sun-open.md new file mode 100644 index 00000000..4a3dc64e --- /dev/null +++ b/2026/talks/sun-open.md @@ -0,0 +1,21 @@ +[[!meta title="Sunday opening remarks"]] +[[!meta copyright="Copyright © 2026 Sacha Chua"]] +[[!inline pages="internal(2026/info/sun-open-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. ---> + + +# Sunday opening remarks +Sacha Chua + +[[!inline pages="internal(2026/info/sun-open-before)" raw="yes"]] + + + + +[[!inline pages="internal(2026/info/sun-open-after)" raw="yes"]] + +[[!inline pages="internal(2026/info/sun-open-nav)" raw="yes"]] + + |
