From d63372493b06d0c04ae308ce7386f12e5d79698a Mon Sep 17 00:00:00 2001 From: Sacha Chua Date: Fri, 5 Dec 2025 21:37:09 -0500 Subject: schedule update --- organizers-notebook.md | 209 ++++++++++++++++++++++++++++++++++++++++--------- 1 file changed, 171 insertions(+), 38 deletions(-) (limited to 'organizers-notebook.md') diff --git a/organizers-notebook.md b/organizers-notebook.md index b3bd61c4..3cdcda26 100644 --- a/organizers-notebook.md +++ b/organizers-notebook.md @@ -39,29 +39,31 @@ This document is the general organizers' notebook that can be used as a starting - [Linode instance sizes](#general-infrastructure-linode-instance-sizes) - [File uploads](#upload) - [Media processing](#general-infrastructure-media-processing) - - [Wiki](#orgeaf5478) + - [Wiki](#org7f83d48) - [Icecast](#icecast) - [Watching pages](#watch) - [VNC](#vnc) - [Streaming with OBS](#obs) + - [Mumble](#org09cd092) - [Shell scripts](#general-infrastructure-shell-scripts) - [Backstage](#backstage) - - [IRC web client](#general-infrastructure-irc-web-client) + - [Thelounge IRC web client](#general-infrastructure-irc-web-client) - [Etherpad](#general-infrastructure-etherpad) - [Publishing media to the server and to the wiki](#media) + - [Automated publishing to the media server](#orgc40bf50) - [Automated IRC announcements](#general-infrastructure-automated-irc-announcements) - [BigBlueButton](#bbb) - [Manual IRC announcements](#general-infrastructure-manual-irc-announcements) + - [Check test crontab](#orgc7d6d2a) - [Confirm automated IRC announcements from res](#general-infrastructure-confirm-automated-irc-announcements-from-res) - [Low-res stream](#general-infrastructure-low-res-stream) - [Upload talks to YouTube](#general-infrastructure-upload-talks-to-youtube) - [Restream to YouTube](#general-infrastructure-restream-to-youtube) - - [Restream to Toobnix](#orgd102e79) + - [Restream to Toobnix](#orgdc911e7) + - [i3 window manager](#org692ea98) - [Other process notes](#other) - [Adding another user to BBB](#bbb-user) - - [When a talk is added after the schedule has already been drafted](#other-process-notes-when-a-talk-is-added-after-the-schedule-has-already-been-drafted) - - [When a talk is cancelled](#cancel-talk) - - [When a talk changes title](#other-process-notes-when-a-talk-changes-title) + - [Schedule changes](#org5f8f6b0) - [When a talk Q&A changes method](#change-talk-qa) - [To play the other stream](#other-process-notes-to-play-the-other-stream) - [When a system is down](#other-process-notes-when-a-system-is-down) @@ -479,25 +481,78 @@ Onboarding: -### STARTED Check in with speakers for cancellations, adjustments +### DONE Check in with speakers for cancellations, adjustments emacsconf-mail-intro-to-all -### TODO Send check-in details, schedule update, etc. :email: - +### TODO Record opening remarks -### Two days before the conference -Go through the :tminustwo: tags. +### TODO Send check-in details, schedule update, etc. :email: ### One day before the conference -Go through the :tminusone: tags. - -- Set `emacsconf-publishing-phase` to `conference`. -- Set emacsconf-publish-include-pads to t and republish the info pages. +- [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 +- [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] Start the VNC servers. + + #!/bin/bash + # SSH to both + cd ~/proj/emacsconf/emacsconf-ansible + + # Gen + export TRACK=gen; TRACK_PORT=5905; export SSH_PORT=46668 + ssh emacsconf-$TRACK@res.emacsconf.org -p $SSH_PORT /home/emacsconf-$TRACK/bin/track-vnc + sleep 5 + 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 & + + # Dev + export TRACK=dev; export TRACK_PORT=5906; export SSH_PORT=46668 + ssh emacsconf-$TRACK@res.emacsconf.org -p $SSH_PORT /home/emacsconf-$TRACK/bin/track-vnc + sleep 5 + 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 & +- [X] Confirm that we can use “Start Recording” to stream to gen. + - [X] play-with-intro sat-open + - [X] + - [X] mpv + - [X] play-with-intro sun-open (to check the overlays) + - [X] + - [X] mpv +- [X] Confirm that we can stream to dev. + - [X] play-with-intro sat-open + - [X] + - [X] mpv + - [X] play-with-intro sun-open (to check the overlays) + - [X] + - [X] mpv +- [X] 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] doesn’t have video + - [X] doesn’t have it + - orga@res: talk sat-open PLAYING + - [X] has video and transcript + - [X] has talk files + - [X] IRC announcement in #emacsconf-gen +- [X] Confirm icecast stats are available: (username: admin, password is in prod-vars.yml) @@ -523,6 +578,8 @@ dev: 226 peak + 79 peak lowres Sunday: gen: 89 peak + 10 peak lowres + (username: admin, password is in prod-vars.yml) + meet peak 409% CPU (100% is 1 CPU), average 69.4% front peak 70.66% CPU (100% is 1 CPU) live peak 552% CPU (100% is 1 CPU) average 144% @@ -797,14 +854,15 @@ After the conference: #!/bin/bash # export CONF_PUBLIC=1 - rsync -avzue ssh --exclude .lock-\* --exclude 'partial--*' res:~/cache/ ~/proj/emacsconf/2025/cache/ --exclude .git + rsync -avu ~/proj/emacsconf/2025/assets/intros/*--intro.* ~/proj/emacsconf/2025/cache/ + rsync -avzue ssh --exclude ffmpeg2pass* --exclude .lock-\* --exclude 'partial--*' res:~/cache/ ~/proj/emacsconf/2025/cache/ --exclude .git chmod ugo+r . -R - rsync -avzue ssh --exclude .lock-\* --exclude 'partial--*' res:~/cache/ ~/proj/emacsconf/2025/cache/ --exclude .git - rsync -avzue ssh --exclude 'partial--*' ~/proj/emacsconf/2025/cache/ res:~/cache/ $* --exclude .git + rsync -avzue ssh --exclude ffmpeg2pass* --exclude 'partial--*' ~/proj/emacsconf/2025/cache/ res:~/cache/ $* --exclude .git + rsync -avzue ssh --exclude ffmpeg2pass* --exclude 'partial--*' ~/proj/emacsconf/2025/cache/ orga@media:/var/www/media.emacsconf.org/2025/backstage/ $* --exclude .git ssh orga@media "cd ~/backstage; chmod ugo+r -- *" if [ ! -z "$CONF_PUBLIC" ]; then echo "Updating public media" - rsync -avzue ssh --exclude \*--original\* --exclude \*--reencoded\* ~/proj/emacsconf/2025/cache/ orga@media:/var/www/media.emacsconf.org/2025/ 3--exclude .git + rsync -avzue ssh --exclude \*--original\* --exclude ffmpeg2pass* --exclude \*--reencoded\* ~/proj/emacsconf/2025/cache/ orga@media:/var/www/media.emacsconf.org/2025/ 3--exclude .git fi rsync -avzue ssh ~/proj/emacsconf/2025/assets/ res:~/current/assets/ @@ -823,7 +881,7 @@ When a talk comes in: 9. `emacsconf-publish-backstage-index` - + ## Wiki @@ -990,6 +1048,30 @@ icecast is on live0.emacsconf.org and can be restarted with `/etc/init.d/emacsco so that the year is updated in the configuration. + + +## DONE Mumble + +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. + +mumble.emacsconf.org is hosted on front. Start it with: + + sudo /etc/init.d/mumble-server start + +It listens on port 64738 + +Logs are in `/var/log/mumble-server`. + +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 @@ -1106,15 +1188,20 @@ Other files might also have been uploaded by the speaker, such as slides or note -## IRC web client +## Thelounge IRC web client Success: +- [X] When the service is not running, the error page is displayed - [X] You can join from - [X] You can join from and the channels end up as the latest ones +ansible: lounge tag + On front: -sudo -u thelounge node /usr/bin/thelounge start + +- To start: sudo systemctl start thelounge +- To stop: sudo systemctl stop thelounge ### DONE Ask libera.chat to increase IRC limits @@ -1157,14 +1244,13 @@ Start of year: 2. `ansible-playbook -i inventory.yml prod-playbook.yml --tags media` 3. Generate the index with `emacsconf-publish-update-media` -Confirm by setting a submitted talk to `PLAYING` and testing with - . The public media +Confirm by using `talk sat-open PLAYING` on res. The public media directory should have the files and the entry should be in the index. Switching it back to `TO_STREAM` and calling should remove it. -### TODO Switch public media to unprotected root before the conference :tminustwo: +### DONE Switch public media to unprotected root before the conference :tminustwo: 1. Clear public media directory. 2. Set `media_protect_root` to false in Ansible `group_vars/all.yml`. @@ -1173,14 +1259,31 @@ Switching it back to `TO_STREAM` and calling You can generate the index with `emacsconf-publish-update-media`. + + +## Automated publishing to the media server + +`ansible-playbook -i inventory.yml prod-playbook.yml --tags publish,edit` + +On orga@res, in the screen session with the emacs server, make sure emacsconf-year and emacsconf-cache-dir refer to the current ones. + + -## Automated IRC announcements +## DONE Automated IRC announcements Success: - [ ] When a talk starts playing, it is announced in the relevant channel +How it works: On res: + +/usr/local/bin/handle-session sudos to the orga user and calls the `/usr/local/bin/talk` shell script, + +You will need the private repository checked out to `orga/emacsconf-2025-private`, which is set up by the ansible playbook `publish` tag. + +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. + @@ -1332,6 +1435,11 @@ Success: - [X] You can /opall, /conftopic, and /broadcast + + +## Check test crontab + + ## TODO Confirm automated IRC announcements from res @@ -1339,6 +1447,8 @@ Success: Success: - A test schedule can generate announcements. + + See C-u M-x emacsconf-stream-crontabs @@ -1419,17 +1529,27 @@ Need to have set up shifts first. use `ansible-playbook -i inventory.yml prod-playbook.yml --tags restream` to set up - + ## Restream to Toobnix -### STARTED Set up Toobnix restreaming events +### DONE Set up Toobnix restreaming events 1. , Publish, Permanent/recurring live 2. emacsconf-stream-toobnix-copy-livestream-description + + +## i3 window manager + +termit is the terminal + +- M-d: launcher +- M-1, M-2: change workspace + + # Other process notes @@ -1443,9 +1563,20 @@ Need to have set up shifts first. docker exec -it greenlight-v2 bundle exec rake user:create["USERNAME","EMAIL","PASSWORD","user"] - + + +## Schedule changes + +In general: -## When a talk is added after the schedule has already been drafted + (emacsconf-schedule-update-from-info) + (emacsconf-update-schedule) + (emacsconf-publish-watch-pages) + (emacsconf-publish-talks-json-to-files) + (emacsconf-publish-info-pages) + + +### When a talk is added after the schedule has already been drafted - [X] Add the talk to conf.org - [X] Add the talk ID to the draft schedule @@ -1463,21 +1594,23 @@ Need to have set up shifts first. - [ ] Record the intro - +### When a talk is cancelled -## When a talk is cancelled + 1. Update the status to CANCELLED. Update that specific talk with . 2. Rejig the schedule if needed, and update with -3. Update the published schedule with and push the wiki. -4. Regenerate the intros (before, after). , then use in the intros file. -5. Resync the cache directory. -6. Consider updating the screenshots for sat-open and sun-open. +3. Update the published schedule with . + +Manual steps: +1. Push the wiki. +2. Regenerate the intros (before, after). , then use in the intros file. +3. Resync the cache directory. +4. Consider updating the screenshots for sat-open and sun-open. - -## When a talk changes title +### When a talk changes title 1. Update the title in conf.org. 2. Delete the FILE\_PREFIX property. -- cgit v1.2.3