diff options
-rw-r--r-- | organizers-notebook.md | 240 | ||||
-rw-r--r-- | organizers-notebook/index.org | 12 |
2 files changed, 207 insertions, 45 deletions
diff --git a/organizers-notebook.md b/organizers-notebook.md index bcaa74f7..c7c68e28 100644 --- a/organizers-notebook.md +++ b/organizers-notebook.md @@ -20,36 +20,43 @@ This document is the general organizers' notebook that can be used as a starting - [Create the public organizers’ notebook in the wiki](#starting-up-the-conference-planning-process-create-the-public-organizers-notebook-in-the-wiki) - [Phases and lessons learned](#phases-and-lessons-learned) - [Draft CFP](#phases-and-lessons-learned-draft-cfp) - - [Announce](#org0e21b8c) - - [Process proposals](#org0b948ff) - - [Accept proposals](#org709c243) + - [Announce](#orgfbeb841) + - [Process proposals](#orgfe4f71e) + - [Accept proposals](#org576ce01) - [Draft schedule](#draft-schedule) - - [Set up backstage and upload](#orgdc12c78) - - [Post the schedule](#orgce4ff13) - - [Process uploaded files](#org6cdaa28) - - [Generate assets](#org3c7eeb9) - - [Prepare the infrastructure](#orgf502d28) - - [Getting ready for captions](#org00f1270) -- [General infrastructure](#orga2f2794) + - [Set up backstage and upload](#orgeb5f493) + - [Post the schedule](#org12c176d) + - [Process uploaded files](#org50e7b10) + - [Generate assets](#org7df66e5) + - [Prepare the infrastructure](#org62526de) + - [Getting ready for captions](#orgdf2206d) + - [Getting ready for the conference](#pre-conf) + - [During the conference](#conf) +- [General infrastructure](#orgc8215f3) - [Icecast](#icecast) - [Watching pages](#watch) - [VNC](#vnc) - [Streaming with OBS](#obs) - - [Shell scripts](#org93c38b4) + - [Shell scripts](#orgfa04f6d) - [Backstage](#backstage) - - [IRC web client](#org75fb0fd) - - [Etherpad](#orgadd3307) + - [IRC web client](#org4e4a2e5) + - [Etherpad](#org89c57f6) - [Publishing media to the server and to the wiki](#media) - - [Automated IRC announcements](#org0b45c02) - - [Manual IRC announcements](#orgf31a707) - - [Low-res stream](#org2b9c281) - - [Restream to YouTube](#org00999f1) - - [Restream to Toobnix](#org1d92e71) + - [Automated IRC announcements](#org53dc7b5) + - [BigBlueButton](#orgc02997b) + - [Manual IRC announcements](#orge215951) + - [Low-res stream](#orgd38bf1e) + - [Upload talks to YouTube](#orgc7b7ef7) + - [Restream to YouTube](#org759bcd0) - [Other process notes](#other) - [Adding another user to BBB](#bbb-user) + - [When a talk is added after the schedule has already been drafted](#org7972560) - [When a talk is cancelled](#cancel-talk) - [When a talk Q&A changes method](#change-talk-qa) - - [Ansible](#orge2b5368) + - [When a system is down](#org60241a7) + - [When we need to bring on a last-minute volunteer](#org1707a7f) + - [Checking people in](#org8465eac) + - [Ansible](#org1dfb09d) <a id="starting-up-the-conference-planning-process"></a> @@ -150,7 +157,7 @@ Put inside double square brackets: `!template id=pagedraft` - Put the speaker introduction right after the talk description for easier web page copying. -<a id="org0e21b8c"></a> +<a id="orgfbeb841"></a> ## Announce @@ -158,7 +165,7 @@ Put inside double square brackets: `!template id=pagedraft` - Submit to <https://foss.events/> -<a id="org0b948ff"></a> +<a id="orgfe4f71e"></a> ## Process proposals @@ -187,7 +194,7 @@ When proposals come in: PUBLIC\_EMAIL -<a id="org709c243"></a> +<a id="org576ce01"></a> ## Accept proposals @@ -220,7 +227,7 @@ For each talk: - Add missing items to plan -<a id="orgdc12c78"></a> +<a id="orgeb5f493"></a> ## Set up backstage and upload @@ -231,7 +238,7 @@ 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. -<a id="orgce4ff13"></a> +<a id="org12c176d"></a> ## Post the schedule @@ -242,7 +249,7 @@ Lessons learned: - Update talks.md to refer to watch.md as well -<a id="org6cdaa28"></a> +<a id="org50e7b10"></a> ## Process uploaded files @@ -267,7 +274,7 @@ Process: 3. <elisp:emacsconf-publish-backstage-index> -<a id="org3c7eeb9"></a> +<a id="org7df66e5"></a> ## Generate assets @@ -285,7 +292,7 @@ Process: - Splice together into a file that will be processed with subed-record-compile-video. -<a id="orgf502d28"></a> +<a id="org62526de"></a> ## Prepare the infrastructure @@ -307,7 +314,7 @@ Checklist: - [ ] Icecast -<a id="org00f1270"></a> +<a id="orgdf2206d"></a> ## Getting ready for captions @@ -318,7 +325,34 @@ Onboarding: - Send backstage information <elisp:emacsconf-mail-backstage-info-to-volunteer> . (Can be sent to all captioning volunteers with <elisp:emacsconf-mail-backstage-info-to-captioning-volunteers>) -<a id="orga2f2794"></a> +<a id="pre-conf"></a> + +## Getting ready for the conference + +<elisp:emacsconf-pad-prepopulate-shift-hyperlists> + + +### TODO Send check-in details, schedule update, etc. + + +### Two days before the conference + +Go through the :tminustwo: tags. + + +### One day before the conference + +Go through the :tminusone: tags. + + +<a id="conf"></a> + +## During the conference + +<elisp:emacsconf-pad-open-shift-hyperlist> + + +<a id="orgc8215f3"></a> # General infrastructure @@ -482,7 +516,7 @@ so that the year is updated in the configuration. This is on live.emacsconf.org and can be restarted with `/etc/init.d/emacsconf restart`. -<a id="org93c38b4"></a> +<a id="orgfa04f6d"></a> ## Shell scripts @@ -596,7 +630,7 @@ Explanation of files: Other files might also have been uploaded by the speaker, such as slides or notes. -<a id="org75fb0fd"></a> +<a id="org4e4a2e5"></a> ## IRC web client @@ -618,7 +652,7 @@ 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? -<a id="orgadd3307"></a> +<a id="org89c57f6"></a> ## Etherpad @@ -645,7 +679,7 @@ Switching it back to `TO_STREAM` and calling <elisp:emacsconf-publish-media-files-on-change> should remove it. -### TODO Switch public media to unprotected root before the conference +### TODO 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`. @@ -654,7 +688,7 @@ Switching it back to `TO_STREAM` and calling You can generate the index with `emacsconf-publish-update-media`. -<a id="org0b45c02"></a> +<a id="org53dc7b5"></a> ## Automated IRC announcements @@ -663,7 +697,36 @@ Success: - [ ] When a talk starts playing, it is announced in the relevant channel -<a id="orgf31a707"></a> +<a id="orgc02997b"></a> + +## BigBlueButton + +ssh orga@media.emacsconf.org “~/bin/bbb-before sat-open” +<https://media.emacsconf.org/2024/current/bbb-sat-open.html> + +ssh orga@media.emacsconf.org “~/bin/bbb-open sat-open” + +After restarting, and in case of “Firefox can’t establish a connection to the server at wss://bbb.emacsverse.org/graphql.” + +ssh root@bbb +cd greenlight-v3 +docker compose restart + +… do I need to worry about BBB? AAAAAAAAAH!! Does not work in Firefox private browsing? + + +### System audio limitations + +Sharing system audio by changing the audio device to “Built-in Audio Analog Stereo” is very choppy, only gets captured in the recording if I’m using Firefox (not Chrome) AND there’s at least one listener, and doesn’t allow simultaneous narration from the speaker. + +Using pulseaudio to change the app’s recording device to the audio monitor results in smoother audio (because it’s pretending to be the microphone), but still doesn’t allow simultaneous narration from the speaker. + +Combining microphone + system audio into a new virtual microphone source is probably more complicated than we want to walk speakers through. + +BBB says sharing system audio works only if you use Chrome on Mac OS X or Microsoft Windows (<https://support.bigbluebutton.org/hc/en-us/articles/1500005315642-Can-I-play-a-video-using-screen-sharing>). I tested it on Linux and sharing system audio is not an option. If you happen to know of any more elegant way to do this, I’d love to hear it. + + +<a id="orge215951"></a> ## Manual IRC announcements @@ -672,21 +735,58 @@ Success: - [X] You can /opall, /conftopic, and /broadcast -<a id="org2b9c281"></a> +<a id="orgd38bf1e"></a> ## Low-res stream - -<a id="org00999f1"></a> +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 + + +<a id="orgc7b7ef7"></a> + +## Upload talks to YouTube + +[Channel videos](https://studio.youtube.com/channel/UCwuyodzTl_KdEKNuJmeo99A/videos/upload?filter=%5B%5D&sort=%7B%22columnType%22%3A%22date%22%2C%22sortOrder%22%3A%22DESCENDING%22%7D) + + (seq-keep + (lambda (o) + (when (and (string= (plist-get o :status) "TO_STREAM") + (not (plist-get o :youtube))) + (list + (plist-get o :slug) + (org-link-make-string + (concat "copy:" + ) + "video file") + (org-link-make-string + (format "elisp:(emacsconf-publish-video-description \"%s\" t)" + (plist-get o :slug)) + "desc") + (if (emacsconf-talk-file o "--main.vtt") + (org-link-make-string + (concat "copy:" + (emacsconf-talk-file o "--main.vtt")) + "sub file") + "") + (org-link-make-string + (concat "elisp:(emacsconf-set-property-from-slug \"" + (plist-get o :slug) + "\" \"YOUTUBE\" (read-string \"YouTube URL: \"))" + ) + "save") + (plist-get o :scheduled)))) + (emacsconf-publish-prepare-for-display (emacsconf-get-talk-info))) + + +<a id="org759bcd0"></a> ## Restream to YouTube -<a id="org1d92e71"></a> - -## Restream to Toobnix - - <a id="other"></a> # Other process notes @@ -700,13 +800,33 @@ Success: docker exec -it greenlight-v2 bundle exec rake user:create["USERNAME","EMAIL","PASSWORD","user"] +<a id="org7972560"></a> + +## 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 +- [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 `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 +- [ ] Record the intro + + <a id="cancel-talk"></a> ## When a talk is cancelled 1. Update the status to CANCELLED. 2. Rejig the schedule if needed, and update with <elisp:emacsconf-schedule-update-from-info> -3. Update the published schedule with <elisp:emacsconf-update-schedule> +3. Update the published schedule with <elisp:emacsconf-update-schedule> and push the wiki. 4. Regenerate the intros (before, after). <elisp:emacsconf-stream-generate-in-between-pages>, then use <elisp:subed-record-compile-video> in the intros file. 5. Sync the new intros to the /data/emacsconf/shared/$YEAR/assets/intros directory. 6. Regenerate the pads: <elisp:emacsconf-pad-prepopulate-all-talks> @@ -724,7 +844,37 @@ Success: 6. Regenerate talks.json: <elisp:emacsconf-publish-talks-json-to-files> -<a id="orge2b5368"></a> +<a id="org60241a7"></a> + +## When a system is down + +Let people know in #emacsconf and #emacsconf-org + +Update the status page: + +<file://ssh:orga@front0.emacsconf.org:/var/www/status.emacsconf.org/index.html> + +/broadcast <message> may also be helpful + + +<a id="org1707a7f"></a> + +## When we need to bring on a last-minute volunteer + +/backstage nick + +will give them the backstage credentials and links to the index + + +<a id="org8465eac"></a> + +## Checking people in + +/checkin nick +/room nick (should be automatic if live, but there just in case) + + +<a id="org1dfb09d"></a> ## Ansible diff --git a/organizers-notebook/index.org b/organizers-notebook/index.org index 6e81d180..e7781005 100644 --- a/organizers-notebook/index.org +++ b/organizers-notebook/index.org @@ -556,6 +556,18 @@ cd greenlight-v3 docker compose restart ... do I need to worry about BBB? AAAAAAAAAH!! Does not work in Firefox private browsing? +*** System audio limitations +:PROPERTIES: +:CUSTOM_ID: bbb-audio-limitations +:END: + +Sharing system audio by changing the audio device to "Built-in Audio Analog Stereo" is very choppy, only gets captured in the recording if I'm using Firefox (not Chrome) AND there's at least one listener, and doesn't allow simultaneous narration from the speaker. + +Using pulseaudio to change the app's recording device to the audio monitor results in smoother audio (because it's pretending to be the microphone), but still doesn't allow simultaneous narration from the speaker. + +Combining microphone + system audio into a new virtual microphone source is probably more complicated than we want to walk speakers through. + +BBB says sharing system audio works only if you use Chrome on Mac OS X or Microsoft Windows (https://support.bigbluebutton.org/hc/en-us/articles/1500005315642-Can-I-play-a-video-using-screen-sharing). I tested it on Linux and sharing system audio is not an option. If you happen to know of any more elegant way to do this, I'd love to hear it. ** Manual IRC announcements |