diff options
Diffstat (limited to '2025/organizers-notebook')
| -rw-r--r-- | 2025/organizers-notebook/index.org | 425 | ||||
| -rw-r--r-- | 2025/organizers-notebook/schedule.svg | 2 |
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 |
