summaryrefslogtreecommitdiffstats
path: root/2025/organizers-notebook
diff options
context:
space:
mode:
Diffstat (limited to '2025/organizers-notebook')
-rw-r--r--2025/organizers-notebook/index.org425
-rw-r--r--2025/organizers-notebook/schedule.svg2
2 files changed, 305 insertions, 122 deletions
diff --git a/2025/organizers-notebook/index.org b/2025/organizers-notebook/index.org
index bddb1079..2160b922 100644
--- a/2025/organizers-notebook/index.org
+++ b/2025/organizers-notebook/index.org
@@ -70,7 +70,7 @@ You might also like the [general organizers' notebook](/organizers-notebook) and
| CFP | [2025-06-27 Fri] | |
| CFP deadline | [2025-09-19 Fri] | 84 |
| Speaker notifications | [2025-09-26 Fri] | |
-| *Publish schedule* | [2025-10-24 Fri] | |
+| Publish schedule | [2025-10-24 Fri] | |
| Video submission deadline | [2025-10-31 Fri] | 42 |
| EmacsConf | [2025-12-06 Sat] | 36 |
#+TBLFM: @3$3=@3$2-@2$2::@6$3=@6$2-@3$2::@7$3=@7$2-@6$2
@@ -141,7 +141,8 @@ CLOSED: [2025-06-17 Tue 10:41]
- State "DONE" from "TODO" [2025-06-17 Tue 10:41]
:END:
-** TODO Draft CFP
+** DONE Draft CFP
+CLOSED: [2025-09-30 Tue 09:37]
:PROPERTIES:
:CUSTOM_ID: cfp
:END:
@@ -155,17 +156,40 @@ CLOSED: [2025-06-17 Tue 10:41]
- [X] submit page
- [X] year index
-**** TODO Check with other organizers
-DEADLINE: <2025-06-23 Mon>
+**** DONE Check with other organizers
+CLOSED: [2025-06-24 Tue 21:15] DEADLINE: <2025-06-23 Mon>
:PROPERTIES:
:CUSTOM_ID: phases-draft-cfp-check-with-other-organizers
:END:
-**** TODO Post CFP in the usual places
+**** DONE Update dates in emacsconf.el
+CLOSED: [2025-06-25 Wed 09:13]
+
+[[file:~/proj/emacsconf/lisp/emacsconf.el]]
+[[file:~/proj/emacsconf/lisp/emacsconf-erc.el]]
+**** DONE Update conf topic
+CLOSED: [2025-09-30 Tue 09:37]
+[[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: [2025-09-30 Tue 09:37]
+
+- [ ] cfp
+- [ ] submit
+
+**** DONE Post CFP in the usual places
+CLOSED: [2025-06-30 Mon 16:32] SCHEDULED: <2025-06-27 Fri>
:PROPERTIES:
:CUSTOM_ID: phases-draft-cfp-post-cfp-in-the-usual-places
:END:
-emacsconf-discuss, reddit.com/r/emacs, Emacs News, emacs-tangents, Mastodon, X
-** TODO Draft schedule
+- [ ] emacsconf-discuss
+- [ ] reddit.com/r/emacs
+- [ ] Emacs News
+- [ ] emacs-tangents or info-gnu-emacs
+- [ ] Mastodon
+- [ ] Bluesky
+- [ ] X
+
+** DONE Draft schedule
+CLOSED: [2025-11-04 Tue 12:05]
:PROPERTIES:
:CUSTOM_ID: draft-schedule
:END:
@@ -195,17 +219,44 @@ emacsconf-discuss, reddit.com/r/emacs, Emacs News, emacs-tangents, Mastodon, X
;; 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-no-duplicates
+ emacsconf-schedule-validate-videos-fit-in-time
+ )))
(setq emacsconf-schedule-plan
'(("GEN Saturday, Dec 6" :start "2025-12-06 09:00" :set-track "General")
sat-open
+ org-babel ; <= 10:30 EST
+ reference ; any; plan before bibliography talk
+ gmail ; <= 12:00 EST
+ gnus
+ latex ; >= 11:00 EST and <= 13:00 EST
(lunch :start "12:00")
- (sat-close :start "16:30")
- ("DEV Saturday, Dec 6" :start "2025-12-06 10:00" :set-track "Development")
+ calc ; >= 10:00 EST and <= 16:00 EST Saturday
+ blee-lcnt ; any
+ greader ; any time
+ open-mic
+ sat-close
+ ("DEV Saturday, Dec 6" :start "2025-12-06 9:30" :set-track "Development")
+ schemacs ; <= 11:00 EST
+ juicemacs ; <= 11:00 EST
+ swanky ; any
+ python ; <= 14:00 EST
(lunch :start "12:00")
+ llm ; >= 10:00 EST
+ private-ai ; any
+ commonlisp ; >= 14:00 EST
+ graphics
("GEN Sunday, Dec 7" :start "2025-12-07 09:00" :set-track "General")
sun-open
+ modern ; any
+ reader ; any
+ weights ; <= 15:00 EST
+ completion
(lunch :start "12:00" :start "16:30")
+ zettelkasten ; >= 12:00 EST
+ hyperboleqa ; >= 12:00 EST and <= 15:00 EST
+ gardening ; >= 11:00 EST
+ bookclub-tapas ; >= 13:00 EST
(sun-close)
))
(setq emacsconf-schedule-draft (emacsconf-schedule-prepare (emacsconf-schedule-inflate-sexp emacsconf-schedule-plan)))
@@ -215,17 +266,23 @@ emacsconf-discuss, reddit.com/r/emacs, Emacs News, emacs-tangents, Mastodon, X
;emacsconf-schedule-svg-color-by-status
)))
(with-temp-file (expand-file-name filename (file-name-directory emacsconf-org-file))
- (svg-print (emacsconf-schedule-svg 800 300 emacsconf-schedule-draft)))
+ (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 800 300 emacsconf-schedule-draft))))
+ (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:
-sunday closing remarks: Starts at 13:00 before 16:30
+saturday closing remarks: Starts at 16:00 before 16:30
+sunday closing remarks: Starts at 15:40 before 16:30
:end:
+#+ATTR_ORG: :width 500
[[file:schedule.svg]]
Legend:
@@ -236,109 +293,88 @@ Legend:
Notes:
-- Sun:
- - Sunday morning in 2023 had some packet loss issues at around 9:30, so we'll start with some talks that don't have BBB Q&A: emacsconf:students, emacsconf:links, emacsconf:regex
-
-** TODO Prepare shift calendar, ask people to sign up
-SCHEDULED: <2023-11-01 Wed>
-:PROPERTIES:
-:CUSTOM_ID: shifts
-: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 | | | | | | |
-| Gen PM | 13:00 | 17:00 | | | | | | |
-| Dev AM | 10:00 | 12:00 | | | | | | |
-| Dev PM | 13:00 | 17:00 | | | | | | |
-
-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 |
-| Gen PM | 13:00 | 17:00 |
-
-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-07")
- (list "sun" sun "2025-12-08"))))))
-
+- [2025-12-05 Fri] cancelled emacsconf:bibliography, moved emacsconf:zettelkasten to Saturday
+- [2025-12-03 Wed] moved emacsconf:gnus to Sat morning; added time to talks to accommodate actual video length
+- [2025-12-01 Mon] cancelled emacsconf:languages
+- [2025-11-27 Thu] cancelled emacsconf:authoring
+- [2025-11-24 Mon] uncancelled emacsconf:weights
+- [2025-11-22 Sat] emacsconf:weights and emacsconf:claude-code cancelled, moved emacsconf:gnus and emacsconf:gardening earlier for a lighter, earlier close. They're both async. Added emacsconf:graphics
+- [2025-11-11 Tue] emacsconf:n-angulator cancelled
+- [2025-11-01 Sat] emacsconf:life cancelled
+- [2025-10-31 Fri] emacsconf:writing cancelled
+- AI dev afternoon: emacsconf:llm, emacsconf:claude-code, emacsconf:private-ai feels like a good progression
+- I kinda like this spread-out combo of emacsconf:zettelkasten, emacsconf:gardening, emacsconf:writing, and emacsconf:bookclub-tapas on Sunday afternoon
+- I spread emacsconf:reference, emacsconf:latex, emacsconf:bibliography, emacsconf:authoring, and emacsconf:blee-lcnt in case people want to hang out in each other's Q&A sessions
+- I wanted to generally have live Q&A in between talks that don't have live Q&A.
+- It's okay to have a shorter day, since this is easier for people who are in Europe.
+- emacsconf:hyperboleqa is all Q&A.
+- We could have an open mic session or a panel before emacsconf:sat-close
+- Sunday morning in 2023 had some packet loss issues at around 9:30
+** 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
+
#+RESULTS:
:results:
-(setq emacsconf-shifts (list (list :id "sat-am-gen" :track "General" :start "2025-12-07T09:00:00-0500" :end "2025-12-07T12:00:00-0500") (list :id "sat-pm-gen" :track "General" :start "2025-12-07T13:00:00-0500" :end "2025-12-07T17:00:00-0500") (list :id "sat-am-dev" :track "Development" :start "2025-12-07T10:00:00-0500" :end "2025-12-07T12:00:00-0500") (list :id "sat-pm-dev" :track "Development" :start "2025-12-07T13:00:00-0500" :end "2025-12-07T17:00:00-0500") (list :id "sun-am-gen" :track "General" :start "2025-12-08T09:00:00-0500" :end "2025-12-08T12:00:00-0500") (list :id "sun-pm-gen" :track "General" :start "2025-12-08T13:00:00-0500" :end "2025-12-08T17:00:00-0500")))
+| schemacs | <2025-12-06 Sat 09:30-09:55> | 2025-12-06 Sat 09:30-09:45 | 0 |
+| reference | <2025-12-06 Sat 09:30-09:55> | 2025-12-06 Sat 09:30-09:50 | 0 |
+| gmail | <2025-12-06 Sat 10:15-10:40> | 2025-12-06 Sat 10:10-10:30 | -5 |
+| juicemacs | <2025-12-06 Sat 10:15-10:35> | 2025-12-06 Sat 10:05-10:25 | -10 |
+| python | <2025-12-06 Sat 11:20-11:40> | 2025-12-06 Sat 11:05-11:25 | -15 |
+| latex | <2025-12-06 Sat 11:25-11:45> | 2025-12-06 Sat 11:10-11:30 | -15 |
+| llm | <2025-12-06 Sat 13:00-13:25> | 2025-12-06 Sat 13:00-13:20 | 0 |
+| calc | <2025-12-06 Sat 13:40-14:05> | 2025-12-06 Sat 13:40-13:50 | 0 |
+| private-ai | <2025-12-06 Sat 13:45-14:05> | 2025-12-06 Sat 13:40-14:00 | -5 |
+| blee-lcnt | <2025-12-06 Sat 14:15-14:55> | 2025-12-06 Sat 14:00-14:20 | -15 |
+| commonlisp | <2025-12-06 Sat 14:25-14:45> | 2025-12-06 Sat 14:20-14:40 | -5 |
+| graphics | <2025-12-06 Sat 14:55-15:20> | 2025-12-06 Sat 14:50-15:10 | -5 |
+| greader | <2025-12-06 Sat 15:15-15:25> | 2025-12-06 Sat 14:40-14:50 | -35 |
+| completion | <2025-12-07 Sun 11:00-11:20> | 2025-12-07 Sun 11:20-11:40 | 20 |
+| zettelkasten | <2025-12-07 Sun 13:00-13:25> | 2025-12-07 Sun 13:00-13:20 | 0 |
+| hyperboleqa | <2025-12-07 Sun 13:45-14:15> | 2025-12-07 Sun 13:40-14:10 | -5 |
+| bookclub-tapas | <2025-12-07 Sun 14:45-15:20> | 2025-12-07 Sun 14:30-14:50 | -15 |
:end:
+** While speakers are working on their videos
+*** DONE Send draft schedule :email:
+CLOSED: [2025-10-03 Fri 11:07] SCHEDULED: <2025-10-03 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:
-** Record intros and opening remarks
+*** DONE Send backstage and upload instructions :email:
+CLOSED: [2025-10-14 Tue 18:31] SCHEDULED: <2025-10-10 Fri>
+:PROPERTIES:
+:CREATED: [2025-09-30 Tue 09:39]
+:END:
+*** TODO Record pronunciations
+*** DONE Post the schedule publicly
+CLOSED: [2025-11-04 Tue 12:05]
+** While volunteers are working on captions
+*** DONE E-mail speakers asking them to confirm the pronunciations :email:
+CLOSED: [2025-11-21 Fri 15:09] SCHEDULED: <2025-11-21 Fri>
+: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:
+**** TODO Record sat-open remarks :emacsconf:record:
:PROPERTIES:
:Effort: 0:30
:CUSTOM_ID: phases-record-intros-and-opening-remarks-record-sat-open-remarks
@@ -465,7 +501,7 @@ 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
+**** TODO Record sun-open remarks
:PROPERTIES:
:CUSTOM_ID: phases-record-intros-and-opening-remarks-record-sun-open-remarks
:END:
@@ -591,6 +627,110 @@ 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:
+*** DONE Ask libera.chat to increase IRC limit
+CLOSED: [2025-11-12 Wed 13:50]
+** After the conference
+*** TODO Send thanks and follow-up questions :email:
+** DONE Confirm shifts
+CLOSED: [2025-11-22 Sat 17:32] SCHEDULED: <2025-11-22 Sat>
+: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 :project:
:PROPERTIES:
@@ -618,7 +758,8 @@ Thanks for coming to EmacsConf 2025.
- 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
+*** DONE Create meeting rooms for each speaker
+CLOSED: [2025-11-12 Wed 13:50]
:PROPERTIES:
:CREATED: [2024-11-02 Sat 11:50]
:Effort: 0:30
@@ -640,15 +781,16 @@ SCHEDULED: <2025-12-13 Sat>
[[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
+*** DONE Set up moderator access codes for all the meeting rooms, and make it so people can start the meeting
+CLOSED: [2025-11-12 Wed 13:50]
: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
-SCHEDULED: <2025-11-21 Fri>
+*** DONE Check BBB audio from my phone
+CLOSED: [2025-11-21 Fri 15:10] SCHEDULED: <2025-11-21 Fri>
:PROPERTIES:
:CUSTOM_ID: check-emacsconf-infrastructure-bigbluebutton-check-bbb-audio-from-my-phone
:END:
@@ -692,7 +834,12 @@ https://docs.bigbluebutton.org/3.0/administration/customize/#enable-live-caption
:PROPERTIES:
:CUSTOM_ID: check-emacsconf-infrastructure-irc-web-client
:END:
-*** TODO Ask libera.chat to increase connections allowed from chat.emacsconf.org on Dec 6 and 7
+
+On front0:
+cd ~thelounge; sudo -u thelounge nohup node /usr/bin/thelounge start
+
+*** DONE Ask libera.chat to increase connections allowed from chat.emacsconf.org on Dec 6 and 7
+CLOSED: [2025-11-12 Wed 13:52]
: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:
@@ -714,8 +861,8 @@ https://docs.bigbluebutton.org/3.0/administration/customize/#enable-live-caption
:CUSTOM_ID: check-emacsconf-infrastructure-media
:END:
-*** TODO Switch public media to unprotected root before the conference
-SCHEDULED: <2025-11-29 Sat>
+*** DONE Switch public media to unprotected root before the conference
+CLOSED: [2025-11-30 Sun 16:51] SCHEDULED: <2025-11-29 Sat>
:PROPERTIES:
:CUSTOM_ID: check-emacsconf-infrastructure-media-switch-public-media-to-unprotected-root-before-the-conference
:END:
@@ -725,7 +872,8 @@ SCHEDULED: <2025-11-29 Sat>
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
+** DONE Publishing resources to the wiki
+CLOSED: [2025-11-30 Sun 16:51]
:PROPERTIES:
:CUSTOM_ID: check-emacsconf-infrastructure-publishing-resources-to-the-wiki
:END:
@@ -742,10 +890,14 @@ ansible-playbook -i inventory.yml prod-playbook.yml --tags publish
:CUSTOM_ID: check-emacsconf-infrastructure-playing-videos-switching-to-windows
:END:
-*** TODO Generate test videos for everything
+*** DONE Generate test videos for everything
+CLOSED: [2025-11-30 Sun 16:51]
: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
@@ -754,16 +906,39 @@ ansible-playbook -i inventory.yml prod-playbook.yml --tags publish
:PROPERTIES:
:CUSTOM_ID: check-emacsconf-infrastructure-etherpad
:END:
-*** TODO Generate pads for all the talks
+*** STARTED 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
-SCHEDULED: <2025-11-22 Sat>
+SCHEDULED: <2025-12-05 Fri>
:PROPERTIES:
:CUSTOM_ID: check-emacsconf-infrastructure-do-a-dry-run
:END:
@@ -772,10 +947,11 @@ SCHEDULED: <2025-11-22 Sat>
: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
-SCHEDULED: <2025-11-07 Fri>
+*** DONE Test connecting to VNC and streaming via OBS :emacsconf:
+CLOSED: [2025-11-15 Sat 15:18] SCHEDULED: <2025-11-14 Fri>
: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:
@@ -786,8 +962,8 @@ live0: 64GB
front0: 32GB
meet: 64GB
-*** TODO [#A] Resize nodes before production
-SCHEDULED: <2025-12-05 Fri>
+*** DONE [#A] Resize nodes before production
+CLOSED: [2025-12-05 Fri 21:07] SCHEDULED: <2025-12-05 Fri>
:PROPERTIES:
:CUSTOM_ID: check-emacsconf-infrastructure-resizing-resize-nodes-before-production
:END:
@@ -832,6 +1008,13 @@ 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:
diff --git a/2025/organizers-notebook/schedule.svg b/2025/organizers-notebook/schedule.svg
index a9842477..ffc2b64f 100644
--- a/2025/organizers-notebook/schedule.svg
+++ b/2025/organizers-notebook/schedule.svg
@@ -1 +1 @@
-<svg width="800" height="300" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><title>Graphical view of the schedule</title><g transform="translate(0,0)"><title>Schedule for Saturday</title><rect width="800" height="150" x="0" y="0" fill="white"></rect><text font-size="10" fill="black" y="12" x="3">Saturday</text><a href="https://emacsconf.org/2025/talks/sat-open" title="Saturday opening remarks" data-slug="sat-open"><title> 9:00- 9:10 Saturday opening remarks</title><rect x="0" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="5,5,5" fill="gray"></rect><g transform="translate(13,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sat-open</text></g></a><a href="https://emacsconf.org/2025/talks/sat-close" title="Saturday closing remarks" data-slug="sat-close"><title> 4:30- 4:40 Saturday closing remarks</title><rect x="705" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="5,5,5" fill="gray"></rect><g transform="translate(718,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sat-close</text></g></a><g transform="translate(0,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">9 AM</text></g><g transform="translate(94,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">10 AM</text></g><g transform="translate(188,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">11 AM</text></g><g transform="translate(282,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">12 PM</text></g><g transform="translate(376,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">1 PM</text></g><g transform="translate(470,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">2 PM</text></g><g transform="translate(564,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">3 PM</text></g><g transform="translate(658,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">4 PM</text></g><g transform="translate(752,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">5 PM</text></g></g><g transform="translate(0,150)"><title>Schedule for Sunday</title><rect width="800" height="150" x="0" y="0" fill="white"></rect><text font-size="10" fill="black" y="12" x="3">Sunday</text><a href="https://emacsconf.org/2025/talks/sun-open" title="Sunday opening remarks" data-slug="sun-open"><title> 9:00- 9:10 Sunday opening remarks</title><rect x="0" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="5,5,5" fill="gray"></rect><g transform="translate(13,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sun-open</text></g></a><a href="https://emacsconf.org/2025/talks/sun-close" title="Sunday closing remarks" data-slug="sun-close"><title> 1:00- 1:10 Sunday closing remarks</title><rect x="376" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="" fill="gray"></rect><g transform="translate(389,73)"><text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)">sun-close</text></g></a><g transform="translate(0,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">9 AM</text></g><g transform="translate(94,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">10 AM</text></g><g transform="translate(188,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">11 AM</text></g><g transform="translate(282,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">12 PM</text></g><g transform="translate(376,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">1 PM</text></g><g transform="translate(470,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">2 PM</text></g><g transform="translate(564,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">3 PM</text></g><g transform="translate(658,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">4 PM</text></g><g transform="translate(752,15)"><line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line><text fill="black" x="0" y="133" font-size="10" text-anchor="left">5 PM</text></g></g></svg> \ No newline at end of file
+<svg width="500" height="700" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><title>Graphical view of the schedule</title><g transform="translate(0,0)"><title>Schedule for Saturday</title><rect width="250" height="700" x="0" y="0" fill="white"></rect><text font-size="10" fill="black" y="30" x="3">Saturday</text><a href="https://emacsconf.org/2025/talks/sat-open" title="Saturday opening remarks" data-slug="sat-open"><title> 9:00- 9:10 Saturday opening remarks</title><rect x="40" y="40" opacity="0.8" width="84" height="13" stroke="black" stroke-dasharray="5,5,5" fill="gray"></rect><g transform="translate(40,51)"><text fill="black" x="0" y="0" font-size="10" transform="nil">sat-open</text></g></a><a href="https://emacsconf.org/2025/talks/org-babel" title="Making Org-Babel reactive" data-slug="org-babel"><title> 9:10- 9:20 Making Org-Babel reactive</title><rect x="40" y="53" opacity="0.8" width="84" height="13" stroke="black" stroke-dasharray="5,5,5" fill="lightblue"></rect><g transform="translate(40,64)"><text fill="black" x="0" y="0" font-size="10" transform="nil">org-babel</text></g></a><a href="https://emacsconf.org/2025/talks/reference" title="Emacs as a fully-fledged reference manager" data-slug="reference"><title> 9:30- 9:55 Emacs as a fully-fledged reference manager</title><rect x="40" y="81" opacity="0.8" width="84" height="34" stroke="black" stroke-dasharray="" fill="gray"></rect><g transform="translate(40,113)"><text fill="black" x="0" y="0" font-size="10" transform="nil">reference</text></g></a><a href="https://emacsconf.org/2025/talks/gmail" title="org-gmail: A deep integration of Gmail into your Org Mode" data-slug="gmail"><title>10:15-10:40 org-gmail: A deep integration of Gmail into your Org Mode</title><rect x="40" y="142" opacity="0.8" width="84" height="34" stroke="black" stroke-dasharray="" fill="lightblue"></rect><g transform="translate(40,174)"><text fill="black" x="0" y="0" font-size="10" transform="nil">gmail</text></g></a><a href="https://emacsconf.org/2025/talks/gnus" title="Reading and writing emails in GNU Emacs with Gnus" data-slug="gnus"><title>11:00-11:25 Reading and writing emails in GNU Emacs with Gnus</title><rect x="40" y="204" opacity="0.8" width="84" height="34" stroke="black" stroke-dasharray="" fill="gray"></rect><g transform="translate(40,236)"><text fill="black" x="0" y="0" font-size="10" transform="nil">gnus</text></g></a><a href="https://emacsconf.org/2025/talks/latex" title="LaTeX export in org-mode: the overhaul" data-slug="latex"><title>11:45-12:05 LaTeX export in org-mode: the overhaul</title><rect x="40" y="266" opacity="0.8" width="84" height="27" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(40,291)"><text fill="black" x="0" y="0" font-size="10" transform="nil">latex</text></g></a><a href="https://emacsconf.org/2025/talks/calc" title="Basic Calc functionality for engineering or electronics" data-slug="calc"><title> 1:00- 1:25 Basic Calc functionality for engineering or electronics</title><rect x="40" y="369" opacity="0.8" width="84" height="34" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(40,401)"><text fill="black" x="0" y="0" font-size="10" transform="nil">calc</text></g></a><a href="https://emacsconf.org/2025/talks/blee-lcnt" title="Blee-LCNT: An Emacs-centered content production and self-publication framework" data-slug="blee-lcnt"><title> 1:35- 2:15 Blee-LCNT: An Emacs-centered content production and self-publication framework</title><rect x="40" y="417" opacity="0.8" width="84" height="54" stroke="black" stroke-dasharray="" fill="gray"></rect><g transform="translate(40,469)"><text fill="black" x="0" y="0" font-size="10" transform="nil">blee-lcnt</text></g></a><a href="https://emacsconf.org/2025/talks/greader" title="GNU Emacs Greader (Gnamù Reader) mode is the best Emacs mode in existence" data-slug="greader"><title> 2:35- 2:40 GNU Emacs Greader (Gnamù Reader) mode is the best Emacs mode in existence</title><rect x="40" y="499" opacity="0.8" width="84" height="6" stroke="black" stroke-dasharray="5,5,5" fill="gray"></rect><g transform="translate(40,503)"><text fill="black" x="0" y="0" font-size="10" transform="nil">greader</text></g></a><a href="https://emacsconf.org/2025/talks/open-mic" title="Open session" data-slug="open-mic"><title> 2:50- 3:40 Open session</title><rect x="40" y="520" opacity="0.8" width="84" height="68" stroke="black" stroke-dasharray="" fill="gray"></rect><g transform="translate(40,586)"><text fill="black" x="0" y="0" font-size="10" transform="nil">open-mic</text></g></a><a href="https://emacsconf.org/2025/talks/sat-close" title="Saturday closing remarks / open session" data-slug="sat-close"><title> 4:00- 4:10 Saturday closing remarks / open session</title><rect x="40" y="616" opacity="0.8" width="84" height="13" stroke="black" stroke-dasharray="" fill="gray"></rect><g transform="translate(40,627)"><text fill="black" x="0" y="0" font-size="10" transform="nil">sat-close</text></g></a><a href="https://emacsconf.org/2025/talks/schemacs" title="One year progress update Schemacs (formerly Gypsum)" data-slug="schemacs"><title> 9:30- 9:55 One year progress update Schemacs (formerly Gypsum)</title><rect x="125" y="81" opacity="0.8" width="84" height="34" stroke="black" stroke-dasharray="" fill="lightblue"></rect><g transform="translate(125,113)"><text fill="black" x="0" y="0" font-size="10" transform="nil">schemacs</text></g></a><a href="https://emacsconf.org/2025/talks/juicemacs" title="Juicemacs: exploring speculative JIT compilation for ELisp in Java" data-slug="juicemacs"><title>10:15-10:35 Juicemacs: exploring speculative JIT compilation for ELisp in Java</title><rect x="125" y="142" opacity="0.8" width="84" height="27" stroke="black" stroke-dasharray="5,5,5" fill="lightblue"></rect><g transform="translate(125,167)"><text fill="black" x="0" y="0" font-size="10" transform="nil">juicemacs</text></g></a><a href="https://emacsconf.org/2025/talks/swanky" title="Swanky Python: Interactive development for Python" data-slug="swanky"><title>10:45-11:10 Swanky Python: Interactive development for Python</title><rect x="125" y="184" opacity="0.8" width="84" height="34" stroke="black" stroke-dasharray="5,5,5" fill="gray"></rect><g transform="translate(125,216)"><text fill="black" x="0" y="0" font-size="10" transform="nil">swanky</text></g></a><a href="https://emacsconf.org/2025/talks/python" title="Interactive Python programming in Emacs" data-slug="python"><title>11:20-11:40 Interactive Python programming in Emacs</title><rect x="125" y="232" opacity="0.8" width="84" height="27" stroke="black" stroke-dasharray="" fill="lightblue"></rect><g transform="translate(125,257)"><text fill="black" x="0" y="0" font-size="10" transform="nil">python</text></g></a><a href="https://emacsconf.org/2025/talks/llm" title="Emacs, editors, and LLM driven workflows" data-slug="llm"><title> 1:00- 1:25 Emacs, editors, and LLM driven workflows</title><rect x="125" y="369" opacity="0.8" width="84" height="34" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(125,401)"><text fill="black" x="0" y="0" font-size="10" transform="nil">llm</text></g></a><a href="https://emacsconf.org/2025/talks/private-ai" title="Emacs and private AI: a great match" data-slug="private-ai"><title> 1:45- 2:05 Emacs and private AI: a great match</title><rect x="125" y="431" opacity="0.8" width="84" height="27" stroke="black" stroke-dasharray="" fill="gray"></rect><g transform="translate(125,456)"><text fill="black" x="0" y="0" font-size="10" transform="nil">private-ai</text></g></a><a href="https://emacsconf.org/2025/talks/commonlisp" title="Common Lisp images communicating like-a-human through shared Emacs slime and eev" data-slug="commonlisp"><title> 2:25- 2:55 Common Lisp images communicating like-a-human through shared Emacs slime and eev</title><rect x="125" y="486" opacity="0.8" width="84" height="41" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(125,525)"><text fill="black" x="0" y="0" font-size="10" transform="nil">commonlisp</text></g></a><a href="https://emacsconf.org/2025/talks/graphics" title="Modern Emacs/Elisp hardware/software accelerated graphics" data-slug="graphics"><title> 3:05- 3:30 Modern Emacs/Elisp hardware/software accelerated graphics</title><rect x="125" y="540" opacity="0.8" width="84" height="34" stroke="black" stroke-dasharray="" fill="gray"></rect><g transform="translate(125,572)"><text fill="black" x="0" y="0" font-size="10" transform="nil">graphics</text></g></a><g transform="translate(3,40)"><line stroke="darkgray" x1="40" y1="0" x2="210" y2="0"></line><text fill="black" x="0" y="0" font-size="10" dy=".4em">9 AM</text></g><g transform="translate(3,122)"><line stroke="darkgray" x1="40" y1="0" x2="210" y2="0"></line><text fill="black" x="0" y="0" font-size="10" dy=".4em">10 AM</text></g><g transform="translate(3,204)"><line stroke="darkgray" x1="40" y1="0" x2="210" y2="0"></line><text fill="black" x="0" y="0" font-size="10" dy=".4em">11 AM</text></g><g transform="translate(3,287)"><line stroke="darkgray" x1="40" y1="0" x2="210" y2="0"></line><text fill="black" x="0" y="0" font-size="10" dy=".4em">12 PM</text></g><g transform="translate(3,369)"><line stroke="darkgray" x1="40" y1="0" x2="210" y2="0"></line><text fill="black" x="0" y="0" font-size="10" dy=".4em">1 PM</text></g><g transform="translate(3,451)"><line stroke="darkgray" x1="40" y1="0" x2="210" y2="0"></line><text fill="black" x="0" y="0" font-size="10" dy=".4em">2 PM</text></g><g transform="translate(3,534)"><line stroke="darkgray" x1="40" y1="0" x2="210" y2="0"></line><text fill="black" x="0" y="0" font-size="10" dy=".4em">3 PM</text></g><g transform="translate(3,616)"><line stroke="darkgray" x1="40" y1="0" x2="210" y2="0"></line><text fill="black" x="0" y="0" font-size="10" dy=".4em">4 PM</text></g><g transform="translate(3,698)"><line stroke="darkgray" x1="40" y1="0" x2="210" y2="0"></line><text fill="black" x="0" y="0" font-size="10" dy=".4em">5 PM</text></g></g><g transform="translate(250,0)"><title>Schedule for Sunday</title><rect width="250" height="700" x="0" y="0" fill="white"></rect><text font-size="10" fill="black" y="30" x="3">Sunday</text><a href="https://emacsconf.org/2025/talks/sun-open" title="Sunday opening remarks" data-slug="sun-open"><title> 9:00- 9:10 Sunday opening remarks</title><rect x="40" y="40" opacity="0.8" width="84" height="13" stroke="black" stroke-dasharray="5,5,5" fill="gray"></rect><g transform="translate(40,51)"><text fill="black" x="0" y="0" font-size="10" transform="nil">sun-open</text></g></a><a href="https://emacsconf.org/2025/talks/modern" title="Some problems of modernizing Emacs" data-slug="modern"><title> 9:10- 9:30 Some problems of modernizing Emacs</title><rect x="40" y="53" opacity="0.8" width="84" height="27" stroke="black" stroke-dasharray="5,5,5" fill="gray"></rect><g transform="translate(40,78)"><text fill="black" x="0" y="0" font-size="10" transform="nil">modern</text></g></a><a href="https://emacsconf.org/2025/talks/reader" title="An introduction to the Emacs Reader" data-slug="reader"><title> 9:40-10:15 An introduction to the Emacs Reader</title><rect x="40" y="94" opacity="0.8" width="84" height="48" stroke="black" stroke-dasharray="" fill="gray"></rect><g transform="translate(40,140)"><text fill="black" x="0" y="0" font-size="10" transform="nil">reader</text></g></a><a href="https://emacsconf.org/2025/talks/weights" title="Weightlifting tracking with Emacs on Android" data-slug="weights"><title>10:35-10:45 Weightlifting tracking with Emacs on Android</title><rect x="40" y="170" opacity="0.8" width="84" height="13" stroke="black" stroke-dasharray="" fill="lightblue"></rect><g transform="translate(40,181)"><text fill="black" x="0" y="0" font-size="10" transform="nil">weights</text></g></a><a href="https://emacsconf.org/2025/talks/completion" title="corfu+yasnippet: Easier than I thought" data-slug="completion"><title>11:05-11:30 corfu+yasnippet: Easier than I thought</title><rect x="40" y="211" opacity="0.8" width="84" height="34" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(40,243)"><text fill="black" x="0" y="0" font-size="10" transform="nil">completion</text></g></a><a href="https://emacsconf.org/2025/talks/zettelkasten" title="Zettelkasten for regular Emacs hackers" data-slug="zettelkasten"><title> 1:00- 1:25 Zettelkasten for regular Emacs hackers</title><rect x="40" y="369" opacity="0.8" width="84" height="34" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(40,401)"><text fill="black" x="0" y="0" font-size="10" transform="nil">zettelkasten</text></g></a><a href="https://emacsconf.org/2025/talks/hyperboleqa" title="Questions and answers to help you fly with Hyperbole" data-slug="hyperboleqa"><title> 1:45- 2:15 Questions and answers to help you fly with Hyperbole</title><rect x="40" y="431" opacity="0.8" width="84" height="41" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(40,470)"><text fill="black" x="0" y="0" font-size="10" transform="nil">hyperboleqa</text></g></a><a href="https://emacsconf.org/2025/talks/gardening" title="Gardening in Emacs: A Windows user's tale of tending, tweaking, and triumph" data-slug="gardening"><title> 2:15- 2:35 Gardening in Emacs: A Windows user's tale of tending, tweaking, and triumph</title><rect x="40" y="472" opacity="0.8" width="84" height="27" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(40,497)"><text fill="black" x="0" y="0" font-size="10" transform="nil">gardening</text></g></a><a href="https://emacsconf.org/2025/talks/bookclub-tapas" title="Bookclub tapas" data-slug="bookclub-tapas"><title> 2:45- 3:20 Bookclub tapas</title><rect x="40" y="513" opacity="0.8" width="84" height="48" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(40,559)"><text fill="black" x="0" y="0" font-size="10" transform="nil">bookclub-tapas</text></g></a><a href="https://emacsconf.org/2025/talks/sun-close" title="Sunday closing remarks" data-slug="sun-close"><title> 3:40- 3:50 Sunday closing remarks</title><rect x="40" y="589" opacity="0.8" width="84" height="13" stroke="black" stroke-dasharray="" fill="gray"></rect><g transform="translate(40,600)"><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="210" y2="0"></line><text fill="black" x="0" y="0" font-size="10" dy=".4em">9 AM</text></g><g transform="translate(3,122)"><line stroke="darkgray" x1="40" y1="0" x2="210" y2="0"></line><text fill="black" x="0" y="0" font-size="10" dy=".4em">10 AM</text></g><g transform="translate(3,204)"><line stroke="darkgray" x1="40" y1="0" x2="210" y2="0"></line><text fill="black" x="0" y="0" font-size="10" dy=".4em">11 AM</text></g><g transform="translate(3,287)"><line stroke="darkgray" x1="40" y1="0" x2="210" y2="0"></line><text fill="black" x="0" y="0" font-size="10" dy=".4em">12 PM</text></g><g transform="translate(3,369)"><line stroke="darkgray" x1="40" y1="0" x2="210" y2="0"></line><text fill="black" x="0" y="0" font-size="10" dy=".4em">1 PM</text></g><g transform="translate(3,451)"><line stroke="darkgray" x1="40" y1="0" x2="210" y2="0"></line><text fill="black" x="0" y="0" font-size="10" dy=".4em">2 PM</text></g><g transform="translate(3,534)"><line stroke="darkgray" x1="40" y1="0" x2="210" y2="0"></line><text fill="black" x="0" y="0" font-size="10" dy=".4em">3 PM</text></g><g transform="translate(3,616)"><line stroke="darkgray" x1="40" y1="0" x2="210" y2="0"></line><text fill="black" x="0" y="0" font-size="10" dy=".4em">4 PM</text></g><g transform="translate(3,698)"><line stroke="darkgray" x1="40" y1="0" x2="210" y2="0"></line><text fill="black" x="0" y="0" font-size="10" dy=".4em">5 PM</text></g></g></svg> \ No newline at end of file