summaryrefslogtreecommitdiffstats
path: root/organizers-notebook/index.org
diff options
context:
space:
mode:
authorSacha Chua <sacha@sachachua.com>2026-11-04 13:05:55 -0500
committerSacha Chua <sacha@sachachua.com>2026-11-04 13:06:02 -0500
commit959778067bb650e5e5fbdc30a91566b2930786aa (patch)
treedc51fab26e566bc38b85f331aa33bbcd617326c8 /organizers-notebook/index.org
parent0cc4469195438b7d53eee9a16d0eb2a2379985ab (diff)
downloademacsconf-wiki-959778067bb650e5e5fbdc30a91566b2930786aa.tar.xz
emacsconf-wiki-959778067bb650e5e5fbdc30a91566b2930786aa.zip
update bible schedHEADmaster
Diffstat (limited to '')
-rw-r--r--organizers-notebook/index.org518
1 files changed, 300 insertions, 218 deletions
diff --git a/organizers-notebook/index.org b/organizers-notebook/index.org
index e0565dd1..cf31eb2b 100644
--- a/organizers-notebook/index.org
+++ b/organizers-notebook/index.org
@@ -338,9 +338,11 @@ After the CFP ends:
- Q_AND_A: pad
- Create draft-schedule section in the public organizers notebook for the year
- Add missing items to plan
-*** TODO Send draft schedule to speakers :email:
+*** TODO Send draft schedule to speakers :email:
+SCHEDULED: <2027-10-02 Sat>
:PROPERTIES:
:CUSTOM_ID: phases-and-lessons-learned-draft-schedule-send-draft-schedule-to-speakers
+:CREATED: [2026-11-02 Mon 07:26]
:END:
1. Evaluate the draft schedule we want to use.
@@ -362,10 +364,11 @@ See [[emacsconf-ansible:README.org]].
Lessons learned:
- Next year, let's get upload.emacsconf.org in place as the domain name so that people don't try to FTP files to it.
-*** DONE Send backstage and upload instructions :email:
-CLOSED: [2025-11-12 Wed 13:48]
+*** TODO Send backstage and upload instructions :email:
+SCHEDULED: <2027-11-02 Tue>
:PROPERTIES:
:CUSTOM_ID: phases-and-lessons-learned-set-up-backstage-and-upload-send-backstage-and-upload-instructions
+:CREATED: [2026-11-02 Mon 07:26]
:END:
** Post the schedule
:PROPERTIES:
@@ -406,13 +409,15 @@ Process:
:PROPERTIES:
:CUSTOM_ID: phases-and-lessons-learned-generate-assets
:END:
-*** In-between pages
+*** TODO In-between pages
+SCHEDULED: <2027-11-02 Tue +1y>
:PROPERTIES:
:CUSTOM_ID: phases-and-lessons-learned-generate-assets-in-between-pages
+:CREATED: [2026-11-02 Mon 07:25]
:END:
- Make the $year/assets/in-between directory and copy the template.svg from the previous year.
- elisp:emacsconf-stream-generate-in-between-pages
-*** Intros
+*** TODO Intros
:PROPERTIES:
:CUSTOM_ID: phases-and-lessons-learned-generate-assets-intros
:END:
@@ -420,19 +425,33 @@ Process:
- Record the audio and get captions
- Splice together into a file that will be processed with subed-record-compile-video.
*** TODO Test videos
+SCHEDULED: <2027-11-02 Tue>
:PROPERTIES:
:CUSTOM_ID: phases-and-lessons-learned-generate-assets-test-videos
+:CREATED: [2026-11-02 Mon 07:25]
:END:
+:LOGBOOK:
+- Note taken on [2026-11-02 Mon 07:26] \\
+ created
+:END:
+
+#+begin_src sh
+mkdir -p /home/sacha/proj/emacsconf/2026/assets/test/
+cp /home/sacha/proj/emacsconf/2025/assets/test/template.webm assets/test
+#+end_src
+
elisp:emacsconf-stream-generate-test-videos
+elisp:emacsconf-stream-generate-test-subtitles
** Record pronunciations
:PROPERTIES:
:CUSTOM_ID: phases-and-lessons-learned-record-pronunciations
:END:
-*** DONE Record pronunciations
-CLOSED: [2025-11-22 Sat 17:41]
+*** TODO Record pronunciations
+SCHEDULED: <2026-11-10 Tue +1y>
:PROPERTIES:
:CUSTOM_ID: phases-and-lessons-learned-record-pronunciations-record-pronunciations
:Effort: 2:00
+:CREATED: [2026-11-02 Mon 07:17]
:END:
:LOGBOOK:
CLOCK: [2025-11-21 Fri 12:58]--[2025-11-21 Fri 15:10] => 2:12
@@ -447,10 +466,11 @@ CLOCK: [2025-11-21 Fri 12:58]--[2025-11-21 Fri 15:10] => 2:12
7. Split the lines for nicer subtitles.
8. Use elisp:subed-record-compile
-*** DONE E-mail speakers asking them to confirm the pronunciations
-CLOSED: [2025-11-22 Sat 17:41]
+*** TODO E-mail speakers asking them to confirm the pronunciations
+SCHEDULED: <2026-11-17 Tue +1y>
:PROPERTIES:
:CUSTOM_ID: phases-and-lessons-learned-record-pronunciations-e-mail-speakers-asking-them-to-confirm-the-pronunciations
+:CREATED: [2026-11-02 Mon 07:17]
:END:
** Prepare the infrastructure
:PROPERTIES:
@@ -459,15 +479,15 @@ CLOSED: [2025-11-22 Sat 17:41]
Checklist:
-- [ ] IRC
- - [ ] Manual announcements
- - [ ] Automated announcements
+- [X] [[#vnc][VNC]]
+- [ ] OBS
+- [X] IRC
+ - [X] [[file:~/proj/emacsconf/wiki/organizers-notebook/index.org::#general-infrastructure-manual-irc-announcements][Manual announcements]]
+ - [X] [[#general-infrastructure-automated-irc-announcements][Automated announcements]]
- [ ] Web conference
- [ ] Streaming assets
- [ ] Overlays
- [ ] Intros
-- [ ] OBS
-- [ ] VNC
- [ ] Publishing to the wiki
- [ ] Publishing to the media server
- [ ] Etherpad
@@ -490,48 +510,52 @@ Onboarding:
:END:
elisp:emacsconf-pad-prepopulate-shift-hyperlists
-*** DONE Check in with speakers for cancellations, adjustments
-CLOSED: [2025-11-28 Fri 21:32]
+*** TODO Check in with speakers for cancellations, adjustments
+SCHEDULED: <2026-11-21 Sat +1y>
:PROPERTIES:
:Effort: 1:00
:CUSTOM_ID: phases-and-lessons-learned-getting-ready-for-the-conference-check-in-with-speakers-for-cancellations-adjustments
+:CREATED: [2026-11-02 Mon 07:17]
:END:
:LOGBOOK:
CLOCK: [2025-11-21 Fri 11:12]--[2025-11-21 Fri 11:14] => 0:02
:END:
emacsconf-mail-intro-to-all
-*** DONE Record opening remarks
-CLOSED: [2025-12-08 Mon 21:37] SCHEDULED: <2025-12-02 Tue>
+*** TODO Record opening remarks
+SCHEDULED: <2026-11-28 Sat +1y>
:PROPERTIES:
:CREATED: [2025-11-28 Fri 21:32]
:CUSTOM_ID: phases-and-lessons-learned-getting-ready-for-the-conference-record-opening-remarks
:END:
*** TODO Send check-in details, schedule update, etc. :email:
+SCHEDULED: <2026-12-08 Tue>
:PROPERTIES:
:CREATED: [2024-11-27 Wed 17:34]
:CUSTOM_ID: phases-and-lessons-learned-getting-ready-for-the-conference-send-check-in-details-schedule-update-etc
:END:
*** One day before the conference
+SCHEDULED: <2026-12-11 Fri>
:PROPERTIES:
:CUSTOM_ID: phases-and-lessons-learned-getting-ready-for-the-conference-one-day-before-the-conference
-:END:
-
-- [X] Set ~emacsconf-publishing-phase~ to ~conference~.
-- [X] Set emacsconf-publish-include-pads to t.
-- [X] Republish the schedule and the info pages.
-- [X] Update the conf.org and the wiki on res. (~/emacsconf-2025-private, ~/emacsconf-wiki)
-- [X] Resize the BBB server to production levels with bbb-prod: 16 GB $0.1440/hour 6 CPUs. MANUALLY CHECK DISK SIZE.
-- [X] Send check-in details and last-minute schedule updates.
-- [X] Start thelounge on front0: systemctl start thelounge.
-- [X] Confirm I can connect to Mumble.
-- [X] Resize front0 to production: front0 shared Linode 32GB 8 CPUs 640GB $0.2880/hour
-- [X] Resize live0 to production: shared Linode 64GB 16 CPUs $0.5760/hour
- - [X] CONFIRM DISK SIZE
-- [X] Resize BBB to production
- - [X] CONFIRM DISK SIZE
-- [X] Start the VNC servers.
+:CREATED: [2026-11-02 Mon 07:18]
+:END:
+
+- [ ] Set ~emacsconf-publishing-phase~ to ~conference~.
+- [ ] Set emacsconf-publish-include-pads to t.
+- [ ] Republish the schedule and the info pages.
+- [ ] Update the conf.org and the wiki on res. (~/emacsconf-2025-private, ~/emacsconf-wiki)
+- [ ] Resize the BBB server to production levels with bbb-prod: 16 GB $0.1440/hour 6 CPUs. MANUALLY CHECK DISK SIZE.
+- [ ] Send check-in details and last-minute schedule updates.
+- [ ] Start thelounge on front0: systemctl start thelounge.
+- [ ] Confirm I can connect to Mumble.
+- [ ] Resize front0 to production: front0 shared Linode 32GB 8 CPUs 640GB $0.2880/hour
+- [ ] Resize live0 to production: shared Linode 64GB 16 CPUs $0.5760/hour
+ - [ ] CONFIRM DISK SIZE
+- [ ] Resize BBB to production
+ - [ ] CONFIRM DISK SIZE
+- [ ] Start the VNC servers.
#+begin_src sh :tangle emacsconf-set-up-tracks.sh
#!/bin/bash
# SSH to both
@@ -551,38 +575,38 @@ CLOSED: [2025-12-08 Mon 21:37] SCHEDULED: <2025-12-02 Tue>
ssh emacsconf-$TRACK@res.emacsconf.org -N -L $TRACK_PORT:127.0.0.1:$TRACK_PORT -p $SSH_PORT &
xvncviewer 127.0.0.1:$TRACK_PORT -shared -geometry 1280x720 -passwd vnc-passwd-$TRACK &
#+end_src
-- [X] Confirm that we can use "Start Recording" to stream to gen.
- - [X] play-with-intro sat-open
- - [X] https://live.emacsconf.org/2025/watch/gen/
- - [X] mpv https://live0.emacsconf.org/gen.webm
- - [X] play-with-intro sun-open (to check the overlays)
- - [X] https://live.emacsconf.org/2025/watch/gen-480p/
- - [X] mpv https://live0.emacsconf.org/gen-480p.webm
-- [X] Confirm that we can stream to dev.
- - [X] play-with-intro sat-open
- - [X] https://live.emacsconf.org/2025/watch/dev/
- - [X] mpv https://live0.emacsconf.org/dev.webm
- - [X] play-with-intro sun-open (to check the overlays)
- - [X] https://live.emacsconf.org/2025/watch/dev-480p/
- - [X] mpv https://live0.emacsconf.org/dev-480p.webm
-- [X] Confirm that I can restream to YouTube.
+- [ ] Confirm that we can use "Start Recording" to stream to gen.
+ - [ ] play-with-intro sat-open
+ - [ ] https://live.emacsconf.org/2025/watch/gen/
+ - [ ] mpv https://live0.emacsconf.org/gen.webm
+ - [ ] play-with-intro sun-open (to check the overlays)
+ - [ ] https://live.emacsconf.org/2025/watch/gen-480p/
+ - [ ] mpv https://live0.emacsconf.org/gen-480p.webm
+- [ ] Confirm that we can stream to dev.
+ - [ ] play-with-intro sat-open
+ - [ ] https://live.emacsconf.org/2025/watch/dev/
+ - [ ] mpv https://live0.emacsconf.org/dev.webm
+ - [ ] play-with-intro sun-open (to check the overlays)
+ - [ ] https://live.emacsconf.org/2025/watch/dev-480p/
+ - [ ] mpv https://live0.emacsconf.org/dev-480p.webm
+- [ ] Confirm that I can restream to YouTube.
- Settings - Stream, paste in the RTMP key for the relevant event, then Start Streaming.
- - [X] gen
- - [X] dev
-- [X] Confirm that I can restream to Toobnix
- - [X] live0: restream-gen-toobnix
- - [X] live0: restream-dev-toobnix
-- [X] Check automated announcements and publishing
- - [X] orga@res: talk sat-open TO_STREAM
- - [X] https://emacsconf.org/2025/talks/sat-open/ doesn't have video
- - [X] https://media.emacsconf.org/2025 doesn't have it
+ - [ ] gen
+ - [ ] dev
+- [ ] Confirm that I can restream to Toobnix
+ - [ ] live0: restream-gen-toobnix
+ - [ ] live0: restream-dev-toobnix
+- [ ] Check automated announcements and publishing
+ - [ ] orga@res: talk sat-open TO_STREAM
+ - [ ] https://emacsconf.org/2025/talks/sat-open/ doesn't have video
+ - [ ] https://media.emacsconf.org/2025 doesn't have it
- orga@res: talk sat-open PLAYING
- - [X] https://emacsconf.org/2025/talks/sat-open/ has video and transcript
- - [X] https://media.emacsconf.org/2025 has talk files
- - [X] IRC announcement in #emacsconf-gen
-- [X] Confirm icecast stats are available: http://live0.emacsconf.org/admin/stats (username: admin, password is in prod-vars.yml)
-- [X] Generate and check all the crontabs elisp:emacsconf-stream-crontabs
-- [X] Generate all the hyperlists
+ - [ ] https://emacsconf.org/2025/talks/sat-open/ has video and transcript
+ - [ ] https://media.emacsconf.org/2025 has talk files
+ - [ ] IRC announcement in #emacsconf-gen
+- [ ] Confirm icecast stats are available: http://live0.emacsconf.org/admin/stats (username: admin, password is in prod-vars.yml)
+- [ ] Generate and check all the crontabs elisp:emacsconf-stream-crontabs
+- [ ] Generate all the hyperlists
** During the conference
:PROPERTIES:
@@ -623,10 +647,11 @@ elisp:emacsconf-pad-open-shift-hyperlist
:PROPERTIES:
:CUSTOM_ID: phases-and-lessons-learned-after-the-conference
:END:
-*** DONE Capture stats
-CLOSED: [2025-12-07 Sun 17:26]
+*** TODO Capture stats
+SCHEDULED: <2026-12-12 Sat>
:PROPERTIES:
:CUSTOM_ID: phases-and-lessons-learned-after-the-conference-capture-stats
+:CREATED: [2026-11-02 Mon 07:19]
:END:
http://live0.emacsconf.org:8001/status.xsl
**** 2025 stats
@@ -675,8 +700,7 @@ live peak 552% CPU (100% is 1 CPU) average 144%
res peak 81.54% total CPU (each OBS ~250%), mem 7GB used
so far we have used 1.2TB of transfer this month
-*** DONE Back up the data
-CLOSED: [2025-12-07 Sun 17:26]
+*** TODO Back up the data
:PROPERTIES:
:CUSTOM_ID: phases-and-lessons-learned-after-the-conference-back-up-the-data
:END:
@@ -743,29 +767,27 @@ cd test
#+end_src
- Copy IRC logs to cache and therefore to backstage: (ex: 2024-12-07-emacsconf-gen.txt)
-*** DONE Resize the server disks
-CLOSED: [2025-12-07 Sun 17:26]
+*** TODO Resize the server disks
:PROPERTIES:
:CUSTOM_ID: phases-and-lessons-learned-after-the-conference-resize-the-server-disks
:END:
SSH and use df to check first. Needs to fit under these limits:
- [X] front0: 25 GB
- - [X] disk
- - [X] server resized to Nanode 1 GB
-- [X] live0: 25 GB
- - [X] disk
- - [X] server resized to Nanode 1 GB
-- [X] bbb: 25 GB
- - [X] disk
- - [X] server resized to Nanode 1 GB
+ - [ ] disk
+ - [ ] server resized to Nanode 1 GB
+- [ ] live0: 25 GB
+ - [ ] disk
+ - [ ] server resized to Nanode 1 GB
+- [ ] bbb: 25 GB
+ - [ ] disk
+ - [ ] server resized to Nanode 1 GB
Shut down the servers after backing up.
1. In the Linode console, click on the linode.
2. Go to Storage.
3. Use the 3-dot menu on Debian 10 disk to reisze.
-*** DONE Process the Q&A recordings and live presentations; upload to YouTube
-CLOSED: [2025-12-30 Tue 12:33]
+*** TODO Process the Q&A recordings and live presentations; upload to YouTube
:PROPERTIES:
:CUSTOM_ID: phases-and-lessons-learned-after-the-conference-process-the-q-a-recordings-and-live-presentations
:END:
@@ -805,8 +827,7 @@ Add the video to the playlist.
Set the ~QA_YOUTUBE_URL~ property.
Play the preview and jump around to different points in the video to check if there are encoding errors.
-*** DONE Upload videos and Q&A sessions to Toobnix
-CLOSED: [2025-12-28 Sun 21:27]
+*** TODO Upload videos and Q&A sessions to Toobnix
:PROPERTIES:
:CUSTOM_ID: phases-and-lessons-learned-after-the-conference-upload-videos-and-q-a-sessions-to-toobnix
:END:
@@ -833,13 +854,11 @@ Manually add to and reorganize the playlist as needed. (Automate this someday?)
(when (plist-get talk :qa-toobnix-url)
(org-entry-put (point) "QA_TOOBNIX_URL" (emacsconf-extract-toobnix-latest-video-url (emacsconf-publish-answers-video-properties talk 'toobnix)))))))
#+end_src
-*** DONE Copy the Q&A from the pad and add them to the wiki
-CLOSED: [2025-12-28 Sun 19:34]
+*** TODO Copy the Q&A from the pad and add them to the wiki
:PROPERTIES:
:CUSTOM_ID: phases-and-lessons-learned-after-the-conference-combine-the-irc-logs-and-the-pads-and-add-them-to-the-wiki
:END:
-*** DONE Copy interesting questions and remarks from IRC to the wiki
-CLOSED: [2025-12-28 Sun 19:34]
+*** TODO Copy interesting questions and remarks from IRC to the wiki
:PROPERTIES:
:CUSTOM_ID: phases-and-lessons-learned-after-the-conference-copy-interesting-questions-and-remarks-from-irc-to-the-wiki
:END:
@@ -865,8 +884,7 @@ Then review each log. For each talk:
- c: add the line to the other window
-*** DONE Index the Q&A
-CLOSED: [2025-12-28 Sun 19:34]
+*** TODO Index the Q&A
:PROPERTIES:
:CUSTOM_ID: phases-and-lessons-learned-after-the-conference-index-the-q-a
:END:
@@ -882,8 +900,8 @@ For each talk with a live Q&A session:
7. Use ~emacsconf-publish-answers-description~ to get the updated description. Paste it into the YouTube description.
8. Use ~emacsconf-publish-info-pages-for-talk~ to update the wiki pages for that talk.
-*** DONE Send thank-you emails to the speakers :email:
-CLOSED: [2025-12-30 Tue 12:33] SCHEDULED: <2025-12-29 Mon>
+*** TODO Send thank-you emails to the speakers :email:
+SCHEDULED: <2026-12-14 Mon>
:PROPERTIES:
:CUSTOM_ID: phases-and-lessons-learned-after-the-conference-send-thank-you-emails-to-the-speakers
:CREATED: [2025-12-28 Sun 21:27]
@@ -891,8 +909,7 @@ CLOSED: [2025-12-30 Tue 12:33] SCHEDULED: <2025-12-29 Mon>
-*** CANCELLED Copy the Youtube comments to the wiki pages?
-CLOSED: [2025-12-28 Sun 21:27]
+*** TODO Copy the Youtube comments to the wiki pages?
:PROPERTIES:
:CUSTOM_ID: phases-and-lessons-learned-after-the-conference-copy-the-youtube-comments-to-the-wiki-pages
:END:
@@ -902,7 +919,7 @@ emacsconf-extract-youtube-comments-by-talk
Better to direct the speakers to the YouTube videos so that they can discuss things directly.
-*** Write a report
+*** TODO Write a report
:PROPERTIES:
:CUSTOM_ID: phases-and-lessons-learned-after-the-conference-write-a-report
:END:
@@ -914,8 +931,8 @@ A shorter version goes on the wiki:
- https://emacsconf.org/2024/report/
- https://emacsconf.org/2023/report/
-*** DONE Notify emacsconf-discuss@gnu.org that the Q&A is up
-CLOSED: [2026-01-03 Sat 11:02] SCHEDULED: <2025-12-29 Mon>
+*** TODO Notify emacsconf-discuss@gnu.org that the Q&A is up
+SCHEDULED: <2026-12-15 Tue>
:PROPERTIES:
:CUSTOM_ID: phases-and-lessons-learned-after-the-conference-notify-emacs-discuss-that-the-q-a-is-up
:CREATED: [2025-12-28 Sun 21:27]
@@ -948,14 +965,14 @@ Enjoy!
Sacha
#+end_example
-*** Send thank-you emails to the volunteers :email:
+*** TODO Send thank-you emails to the volunteers :email:
:PROPERTIES:
:CUSTOM_ID: phases-and-lessons-learned-after-the-conference-send-thank-you-emails-to-the-volunteers
:END:
emacsconf-mail-template-ask-volunteer-for-mailing-address
-*** Process the lessons learned
+*** TODO Process the lessons learned
:PROPERTIES:
:CUSTOM_ID: phases-and-lessons-learned-after-the-conference-process-the-lessons-learned
:END:
@@ -1142,21 +1159,24 @@ ssh front0.emacsconf.org
sudo -iu ikiwiki -- ikiwiki --setup ~ikiwiki/emacsconf.setup
#+end_example
-** DONE Icecast
-CLOSED: [2025-11-15 Sat 15:05]
+** TODO Icecast
+SCHEDULED: <2027-11-03 Wed>
:PROPERTIES:
:CUSTOM_ID: icecast
:Effort: 0:30
+:CREATED: [2026-11-03 Tue 14:52]
:END:
:LOGBOOK:
+- Note taken on [2026-11-03 Tue 14:52] \\
+ okay for 2026
- Note taken on [2025-11-15 Sat 15:05] \\
okay for 2025
CLOCK: [2025-11-15 Sat 14:43]--[2025-11-15 Sat 15:05] => 0:22
:END:
Success: You can send a stream to Icecast and the results can be viewed by mpv.
-- [X] Gen
-- [X] Dev
+- [ ] Gen
+- [ ] Dev
Also, recordings are available in /data.
See also: [[#obs-instructions][Use OBS+VNC to record]]
@@ -1165,7 +1185,7 @@ New year:
1. Reprovision with
#+begin_src sh :eval no
- ansible-playbook -i inventory.yml prod-playbook.yml --tags stream
+ ansible-playbook -i inventory.yml prod-playbook.yml --tags streambut then.
#+end_src
so that the year is updated in the configuration.
2. SSH to live0.emacsconf.org and run ~/etc/init.d/emacsconf stop~. Confirm that icecast has stopped with ~ps | grep emacsconf~; if not, kill the process.
@@ -1195,31 +1215,15 @@ ffmpeg -y -f lavfi -i testsrc=size=1280x720:rate=10 -i background-music.opus \
ssh live0.emacsconf.org
sudo /etc/init.d/emacsconf stop
-** DONE Watching pages
-CLOSED: [2025-11-15 Sat 14:57]
-:PROPERTIES:
-:CUSTOM_ID: watch
-:END:
-
-Success: You can watch at https://live.emacsconf.org.
-- [X] https://live.emacsconf.org goes to the current year's page.
-- [X] gen stream works in the browser
-- [X] dev stream works in the browser
-- [X] Schedule is correct
-
-New year:
-1. ~ansible-playbook -i inventory.yml prod-playbook.yml --tags live~
-2. Republish with elisp:emacsconf-publish-watch-pages.
-3. Update front:/var/www/live.emacsconf.org.
-
-Set up test streams (see ffmpeg instructions from [[#icecast][Icecast]]) and then:
-
-** DONE VNC
-CLOSED: [2025-11-15 Sat 15:02]
+** TODO VNC
+SCHEDULED: <2027-11-03 Wed +1y>
:PROPERTIES:
:CUSTOM_ID: vnc
+:CREATED: [2026-11-03 Tue 13:00]
:END:
:LOGBOOK:
+- Note taken on [2026-11-03 Tue 13:00] \\
+ OK for 2026
- Note taken on [2025-11-15 Sat 15:02] \\
Okay for 2025
:END:
@@ -1230,6 +1234,8 @@ Success:
- [X] Confirm that you can connect to emacsconf-gen via VNC
- [X] Confirm that you can connect to emacsconf-dev via VNC
+When VNC connects, it runs =~/.vnc/xstartup=.
+
*** Instructions
:PROPERTIES:
:CUSTOM_ID: vnc-instructions
@@ -1286,13 +1292,26 @@ xvncviewer 127.0.0.1:$TRACK_PORT -shared -geometry 1280x720 -passwd vnc-passwd-$
ssh sachac@res
sudo killall Xtigervnc
+** TODO Pulseaudio on emacsconf-gen and -dev
+SCHEDULED: <2027-11-03 Wed +1y>
+:PROPERTIES:
+:CUSTOM_ID: general-infrastructure-pulseaudio-on-emacsconf-gen-and-dev
+:CREATED: [2026-11-03 Tue 14:56]
+:END:
+
+This should be set up by ~/.config/pulse/default.pa.
+If =pactl list sinks short= does not show =vid=, =qa=, and =mumble=:
+=systemctl --user restart pulseaudio=
-** DONE Streaming with OBS
-CLOSED: [2025-11-15 Sat 15:04]
+** TODO Streaming with OBS
+SCHEDULED: <2027-11-03 Wed +1y>
:PROPERTIES:
:CUSTOM_ID: obs
+:CREATED: [2026-11-03 Tue 13:00]
:END:
:LOGBOOK:
+- Note taken on [2026-11-03 Tue 13:00] \\
+ okay for 2026
- Note taken on [2025-11-15 Sat 15:04] \\
Okay for 2025
:END:
@@ -1327,20 +1346,25 @@ icecast is on live0.emacsconf.org and can be restarted with =/etc/init.d/emacsco
#+end_example
so that the year is updated in the configuration.
-** DONE Mumble
-CLOSED: [2025-12-01 Mon 12:49]
+** TODO Mumble
+SCHEDULED: <2027-11-03 Wed>
:PROPERTIES:
:Effort: 1:00
:CUSTOM_ID: general-infrastructure-mumble
+:CREATED: [2026-11-03 Tue 14:48]
:END:
:LOGBOOK:
+- Note taken on [2026-11-03 Tue 14:45] \\
+ Confirmed that I can broadcast to dev
+- Note taken on [2026-11-03 Tue 13:34] \\
+ Confirmed that I can broadcast to gen
CLOCK: [2025-12-01 Mon 11:25]--[2025-12-01 Mon 12:49] => 1:24
:END:
Success:
-- [X] You can connect to Mumble on your preferred device(s).
-- [X] You can broadcast to the emacsconf-gen channel.
-- [X] You can broadcast to the emacsconf-dev channel.
+- [ ] You can connect to Mumble on your preferred device(s).
+- [ ] You can broadcast to the emacsconf-gen channel.
+- [ ] You can broadcast to the emacsconf-dev channel.
mumble.emacsconf.org is hosted on front. Start it with:
@@ -1348,28 +1372,35 @@ mumble.emacsconf.org is hosted on front. Start it with:
sudo /etc/init.d/mumble-server start
#+end_src
-It listens on port 64738
+It listens on port 64738.
Logs are in ~/var/log/mumble-server~.
+If the OBS doesn't pick up Mumble or the different devices, it might be that [[file:~/proj/emacsconf/wiki/organizers-notebook/index.org::#general-infrastructure-pulseaudio-on-emacsconf-gen-and-dev][PulseAudio]] needs to be restarted.
To add a new account:
- After they log in, register their user.
- Right-click on the server name. Edit - Groups. Add them to the org group.
-** Shell scripts
+** TODO Shell scripts
+SCHEDULED: <2027-11-03 Wed>
:PROPERTIES:
:CUSTOM_ID: general-infrastructure-shell-scripts
+:CREATED: [2026-11-03 Tue 14:52]
+:END:
+:LOGBOOK:
+- Note taken on [2026-11-03 Tue 14:52] \\
+ okay for 2026
:END:
Success: From the commandline, hosts can:
-- [X] play just the intro: intro $SLUG
-- [X] play a file without an intro: play $SLUG
-- [X] play a file with an intro: play-with-intro $SLUG (hmm, this didn't show the subtitles)
+- [ ] play just the intro: intro $SLUG
+- [ ] play a file without an intro: play $SLUG
+- [ ] play a file with an intro: play-with-intro $SLUG (hmm, this didn't show the subtitles)
ah, it's because the intros need to be in the cache dir?
-- [X] open the Q&A for a talk: handle-qa $SLUG
- - [X] open the pad: pad $SLUG
- - [X] open BBB: bbb $SLUG
+- [ ] open the Q&A for a talk: handle-qa $SLUG
+ - [ ] open the pad: pad $SLUG
+ - [ ] open BBB: bbb $SLUG
- [ ] do the whole thing: handle-session $SLUG
- [ ] rebroadcast the other stream:
- rebroadcast gen
@@ -1380,43 +1411,47 @@ Setup:
- OBS must be streaming from the stream you're testing. [[#obs][Streaming with OBS]]
- You may want to generate test assets and copy them over to the assets/stream directory.
- Generate all the overlays and copy them to assets/overlays
-- Set up the assets/music directory
-** Backstage
+- Set up the /data/emacsconf/shared/YYYY/assets/music directory
+** TODO Watching pages
+SCHEDULED: <2027-11-03 Wed>
:PROPERTIES:
-:CUSTOM_ID: backstage
+:CUSTOM_ID: watch
+:CREATED: [2026-11-03 Tue 14:55]
+:END:
+:LOGBOOK:
+- Note taken on [2026-11-03 Tue 14:55] \\
+ okay for 2026
:END:
-Update this with elisp:emacsconf-publish-backstage-index
-
-Explanation of files:
+Success: You can watch at https://live.emacsconf.org.
+- [ ] https://live.emacsconf.org goes to the current year's page.
+- [ ] gen stream works in the browser
+- [ ] dev stream works in the browser
+- [ ] Schedule is correct
-| ~--original.mp4/mov/webm~ | original file as uploaded by the speaker |
-| ~--silence.mp4/mov/webm~ | silence sample if uploaded by speaker |
-| ~--reencoded.webm~ | converted to .webm format and compressed |
-| ~--reencoded.opus~ | audio only |
-| ~--normalized.opus~ | normalized audio |
-| ~--reencoded.vtt~ | WhisperX captions, WebVTT format |
-| ~--reencoded.json~ | WhisperX word data |
-| ~--reencoded.srt~ | WhisperX captions, SRT format |
-| ~--reencoded.txt~ | WhisperX captions, plain text |
-| ~--main.vtt~ | edited captions |
-| ~--main--chapters.vtt~ | chapter markers |
-| ~--main.txt~ | captions as text (optional) |
-| ~--main.webm~ | version for streaming based on the most recent resources |
+New year:
+1. ~ansible-playbook -i inventory.yml prod-playbook.yml --tags live~
+2. Republish with elisp:emacsconf-publish-watch-pages.
-Other files might also have been uploaded by the speaker, such as slides or notes.
+Set up test streams (see ffmpeg instructions from [[#icecast][Icecast]]) and then:
-** Thelounge IRC web client
+** TODO Thelounge IRC web client
+SCHEDULED: <2027-11-03 Wed>
:PROPERTIES:
:CUSTOM_ID: general-infrastructure-irc-web-client
+:CREATED: [2026-11-03 Tue 15:06]
+:END:
+:LOGBOOK:
+- Note taken on [2026-11-03 Tue 15:05] \\
+ okay for 2026
:END:
Success:
-- [X] When the service is not running, the error page is displayed
-- [X] You can join from https://chat.emacsconf.org
-- [X] You can join from https://live.emacsconf.org and the channels end up as the latest ones
+- [ ] When the service is not running, the error page is displayed
+- [ ] You can join from https://chat.emacsconf.org
+- [ ] You can join from https://live.emacsconf.org and the channels end up as the latest ones
-ansible: lounge tag
+ansible: ansible-playbook -i inventory.yml prod-playbook.yml --tags lounge
On front:
- To start: sudo systemctl start thelounge
@@ -1425,17 +1460,48 @@ On front:
backup:
sudo -u thelounge /usr/bin/thelounge start
-*** DONE Ask libera.chat to increase IRC limits
-CLOSED: [2025-11-12 Wed 13:50]
+
+*** TODO Ask libera.chat to increase IRC limits
+SCHEDULED: <2027-11-03 Wed .+1y>
:PROPERTIES:
:CUSTOM_ID: general-infrastructure-irc-web-client-ask-libera-chat-to-increase-irc-limits
+:CREATED: [2026-11-03 Tue 14:57]
+:END:
+:LOGBOOK:
+- Note taken on [2026-11-03 Tue 14:57] \\
+ sent e-mail
:END:
Remember to schedule a task to ask libera.chat to increase the number of users it will accept from chat.emacsconf.org to avoid connection exhaustion errors.
Message I've posted to support@libera.chat:
-Thank you for running libera.chat. We're looking forward to using IRC (#emacsconf, #emacsconf-gen, #emacsconf-dev, #emacsconf-org) for the discussions for the upcoming EmacsConf (Dec 6-7, https://emacsconf.org). In the past, we've needed to coordinate with Libera staff to increase the number of connections allowed from chat.emacsconf.org during conference days in order to avoid connection exhaustion errors. Is that something we can plan now or would you like me to bring it up a few days before the conference?
+Thank you for running libera.chat. We're looking forward to using IRC (#emacsconf, #emacsconf-gen, #emacsconf-dev, #emacsconf-org) for the discussions for the upcoming EmacsConf (Dec 6-7, https://emacsconf.org). In the past, we've needed to coordinate with Libera staff to increase the number of connections allowed from chat.emacsconf.org (IP: 172.104.16.64) during conference days in order to avoid connection exhaustion errors. Is that something we can plan now or would you like me to bring it up a few days before the conference?
+** Backstage
+:PROPERTIES:
+:CUSTOM_ID: backstage
+:END:
+
+Update this with elisp:emacsconf-publish-backstage-index
+
+Explanation of files:
+
+| ~--original.mp4/mov/webm~ | original file as uploaded by the speaker |
+| ~--silence.mp4/mov/webm~ | silence sample if uploaded by speaker |
+| ~--reencoded.webm~ | converted to .webm format and compressed |
+| ~--reencoded.opus~ | audio only |
+| ~--normalized.opus~ | normalized audio |
+| ~--reencoded.vtt~ | WhisperX captions, WebVTT format |
+| ~--reencoded.json~ | WhisperX word data |
+| ~--reencoded.srt~ | WhisperX captions, SRT format |
+| ~--reencoded.txt~ | WhisperX captions, plain text |
+| ~--main.vtt~ | edited captions |
+| ~--main--chapters.vtt~ | chapter markers |
+| ~--main.txt~ | captions as text (optional) |
+| ~--main.webm~ | version for streaming based on the most recent resources |
+
+Other files might also have been uploaded by the speaker, such as slides or notes.
+
** Etherpad
:PROPERTIES:
:CUSTOM_ID: general-infrastructure-etherpad
@@ -1443,10 +1509,13 @@ Thank you for running libera.chat. We're looking forward to using IRC (#emacscon
Success:
-- [X] pad.emacsconf.org redirects to this year's entry
-- [X] Each talk has its own Etherpad
+- [ ] pad.emacsconf.org redirects to this year's entry
+- [ ] Each talk has its own Etherpad
How:
+
+ansible-playbook -i inventory.yml prod-playbook.yml --tags pad,proxy
+
elisp:emacsconf-pad-prepopulate-all-talks
Lessons learned:
@@ -1486,8 +1555,7 @@ rsync -avzue ssh /var/www/media.emacsconf.org/ yang:~/public_html/media.emacscon
-*** DONE Switch public media to unprotected root before the conference :tminustwo:
-CLOSED: [2025-11-30 Sun 16:52]
+*** TODO Switch public media to unprotected root before the conference :tminustwo:
:PROPERTIES:
:CUSTOM_ID: general-infrastructure-publishing-media-to-the-server-and-to-the-wiki-switch-public-media-to-unprotected-root-before-the-conference
:END:
@@ -1506,11 +1574,12 @@ You can generate the index with =emacsconf-publish-update-media=.
On orga@res, in the screen session with the emacs server, make sure emacsconf-year and emacsconf-cache-dir refer to the current ones.
-** DONE Automated IRC announcements
-CLOSED: [2025-11-30 Sun 16:52]
+** TODO Automated IRC announcements
+SCHEDULED: <2026-11-04 Wed +1y>
:PROPERTIES:
:CUSTOM_ID: general-infrastructure-automated-irc-announcements
:Effort: 1:00
+:CREATED: [2026-11-03 Tue 09:59]
:END:
:LOGBOOK:
CLOCK: [2025-11-27 Thu 14:31]--[2025-11-28 Fri 15:10] => 24:39
@@ -1520,14 +1589,21 @@ Success:
- [ ] When a talk starts playing, it is announced in the relevant channel
-How it works: On res:
+Steps:
-/usr/local/bin/handle-session sudos to the orga user and calls the ~/usr/local/bin/talk~ shell script,
+1. Update =~/emacsconf-el= in emacsconf-gen and emacsconf-dev as needed.
+2. =ansible-playbook -i inventory.yml prod-playbook.yml --tags publish=
+3. As the ~orga~ user on ~res~, start a screen session and start ~emacs~. This starts the Emacs server that emacsclient connects to.
+4. Use ~C-u M-x emacsconf-stream-crontabs~ to generate testing crontabs for emacsconf-gen and emacsconf-dev.
-You will need the private repository checked out to ~orga/emacsconf-2025-private~, which is set up by the ansible playbook ~publish~ tag.
+How it works:
-This is by ~/usr/local/bin/talk~ on res, which connects to a running Emacs with emacsclient. Make sure the emacs thing has the right year.
+~/usr/local/bin/handle-session~ sudos to the orga user and calls the ~/usr/local/bin/talk~ shell script to update the talk status,
+which triggers the announcement to IRC, the publication to the wiki, and so forth.
+You will need the private repository checked out to ~orga/emacsconf-2026-private~, which is set up by the ansible playbook ~publish~ tag.
+
++ If you need to cancel the automated IRC announcements and other things that happen for the automatic talk transitions, use ~emacsconf-stream-cancel-all-crontabs~.
** BigBlueButton
:PROPERTIES:
:CUSTOM_ID: bbb
@@ -1623,8 +1699,7 @@ BBB says sharing system audio works only if you use Chrome on Mac OS X or Micros
Related: https://github.com/bigbluebutton/bigbluebutton/issues/8632
-*** DONE Create meeting rooms for each speaker
-CLOSED: [2025-11-12 Wed 13:51]
+*** TODO Create meeting rooms for each speaker
:PROPERTIES:
:CUSTOM_ID: general-infrastructure-bigbluebutton-creating-talk-bbb-rooms
:END:
@@ -1649,8 +1724,7 @@ Room.where("name LIKE 'EC26%'").each { |x| puts x.friendly_id + " " + x.name };
It's possible to change the friendly_id and then use ~x.save!~.
-*** DONE Set up moderator access codes
-CLOSED: [2025-11-12 Wed 13:51]
+*** TODO Set up moderator access codes
:PROPERTIES:
:CUSTOM_ID: general-infrastructure-bigbluebutton-setting-up-moderator-access-codes
:END:
@@ -1678,8 +1752,7 @@ bbb-record --rebuild e5fceca22f037945fb7183e118599cf37598936c-1765131855663
derp, no space left on the device, that's why, adding to checklist
-*** DONE Backing up BBB :backup:
-CLOSED: [2025-12-07 Sun 16:48]
+*** TODO Backing up BBB :backup:
:PROPERTIES:
:CUSTOM_ID: general-infrastructure-bigbluebutton-backing-up-bbb
:END:
@@ -1743,29 +1816,28 @@ The bbb.emacsverse.org server also hosts a few other meetups throughout the year
Meetup hosts use a moderator code to log in.
** TODO Manual IRC announcements
+SCHEDULED: <2027-11-03 Wed +1y>
:PROPERTIES:
:CUSTOM_ID: general-infrastructure-manual-irc-announcements
+:CREATED: [2026-11-03 Tue 09:54]
+:END:
+:LOGBOOK:
+- Note taken on [2026-11-03 Tue 09:54] \\
+ works for 2026
:END:
Success:
-- [X] You can /opall, /conftopic, and /broadcast
+- [ ] You can /opall, /conftopic, and /broadcast
+
+See also: [[file:~/proj/emacsconf/wiki/organizers-notebook/index.org::#general-infrastructure-automated-irc-announcements]]
+
** Check test crontab
:PROPERTIES:
:CUSTOM_ID: general-infrastructure-check-test-crontab
:END:
-** DONE Confirm automated IRC announcements from res
-CLOSED: [2025-12-08 Mon 21:36] SCHEDULED: <2025-11-27 Thu>
-:PROPERTIES:
-:CUSTOM_ID: general-infrastructure-confirm-automated-irc-announcements-from-res
-:CREATED: [2025-11-26 Wed 15:04]
-:END:
-
-Success:
-- A test schedule can generate announcements.
-
- See C-u M-x emacsconf-stream-crontabs
+You can generate a test crontab with ~C-u M-x emacsconf-stream-crontabs~.
** Low-res stream
:PROPERTIES:
@@ -1775,8 +1847,8 @@ Should be automatic, handled by Icecast
backup on live:
- /usr/local/bin/emacsconf-lowres-gen-on-connect
- /usr/local/bin/emacsconf-lowres-dev-on-connect
-** DONE Upload talks to YouTube
-CLOSED: [2025-12-20 Sat 16:10] SCHEDULED: <2025-12-16 Tue>
+** TODO Upload talks to YouTube
+SCHEDULED: <2026-12-08 Tue>
:PROPERTIES:
:CREATED: [2024-11-27 Wed 17:33]
:CUSTOM_ID: general-infrastructure-upload-talks-to-youtube
@@ -1842,13 +1914,13 @@ Need to have set up shifts first.
1. Switch to the EmacsConf account.
2. Go to https://studio.youtube.com/channel/UCwuyodzTl_KdEKNuJmeo99A
3. Create > Go live > Schedule stream.
- - [X] Gen - Sat AM
- - [X] Gen - Sat PM
- - [X] Dev - Sat AM
- - [X] Dev - Sat PM
- - [X] Gen - Sun AM
- - [X] Gen - Sun PM
- - [X] Test
+ - [ ] Gen - Sat AM
+ - [ ] Gen - Sat PM
+ - [ ] Dev - Sat AM
+ - [ ] Dev - Sat PM
+ - [ ] Gen - Sun AM
+ - [ ] Gen - Sun PM
+ - [ ] Test
emacsconf-stream-copy-livestream-description
emacsconf-stream-toobnix-copy-livestream-description
@@ -1865,8 +1937,7 @@ Need to have set up shifts first.
:PROPERTIES:
:CUSTOM_ID: general-infrastructure-restream-to-toobnix
:END:
-*** DONE Set up Toobnix restreaming events
-CLOSED: [2025-12-05 Fri 18:54]
+*** TODO Set up Toobnix restreaming events
:PROPERTIES:
:Effort: 0:30
:CUSTOM_ID: general-infrastructure-restream-to-toobnix-set-up-toobnix-restreaming-events
@@ -1918,22 +1989,25 @@ In general:
:PROPERTIES:
:CUSTOM_ID: other-process-notes-when-a-talk-is-added-after-the-schedule-has-already-been-drafted
:END:
-- [X] Add the talk to conf.org
-- [X] Add the talk ID to the draft schedule
-- [X] Run the draft schedule block
-- [X] elisp:emacsconf-schedule-update-from-info
-- [X] elisp:emacsconf-publish-talks-json-to-files
-- [X] Generate pads with ~uv run ansible-playbook -i inventory.yml prod-playbook.yml --tags pad~
-- [X] elisp:emacsconf-set-file-prefixes
-- [X] elisp:emacsconf-update-schedule
-- [X] elisp:emacsconf-stream-generate-overlays
-- [X] elisp:emacsconf-stream-generate-test-videos
-- [X] ~rsync -avze ssh ~/proj/emacsconf/2024/assets/ res:/data/emacsconf/shared/2024/assets/~
-- [X] Send the upload instructions
-- [X] Generate the intro text
+- [ ] Add the talk to conf.org
+- [ ] Add the talk ID to the draft schedule
+- [ ] Run the draft schedule block
+- [ ] elisp:emacsconf-schedule-update-from-info
+- [ ] elisp:emacsconf-publish-talks-json-to-files
+- [ ] Generate pads with ~uv run ansible-playbook -i inventory.yml prod-playbook.yml --tags pad~
+- [ ] elisp:emacsconf-set-file-prefixes
+- [ ] elisp:emacsconf-update-schedule
+- [ ] elisp:emacsconf-stream-generate-overlays
+- [ ] elisp:emacsconf-stream-generate-test-videos
+- [ ] ~rsync -avze ssh ~/proj/emacsconf/2024/assets/ res:/data/emacsconf/shared/2024/assets/~
+- [ ] Send the upload instructions
+- [ ] Generate the intro text
- [ ] Record the intro
- [ ] elisp:emacsconf-mail-draft-schedule
** When I may need to tell people about reschedules
+:PROPERTIES:
+:CUSTOM_ID: other-process-notes-when-i-may-need-to-tell-people-about-reschedules
+:END:
- elisp:emacsconf-schedule-update-from-info to save the changes to the submission subtrees
- elisp:emacsconf-rescheduled-talks lists the changes
@@ -2035,3 +2109,11 @@ git clone git@git.emacsconf.org:pub/emacsconf-ansible
:END:
emacsconf-publish-update-transcript
+* Local shell scripts
+:PROPERTIES:
+:CUSTOM_ID: local-shell-scripts
+:END:
+
+- [[file:~/bin/conf-track]] gen/dev: set up the VNC and MPV
+- [[file:~/bin/mpv-track]] gen/dev: play the MPV for a track, set up the environment variables
+-