diff options
author | Sacha Chua <sacha@sachachua.com> | 2022-11-20 08:23:24 -0500 |
---|---|---|
committer | Sacha Chua <sacha@sachachua.com> | 2022-11-20 08:23:37 -0500 |
commit | a4af4244f03b0e7b9a70f2cae0578b04386e12d5 (patch) | |
tree | bd8f706993818a98c9052bb27f95bc3ba0454bf4 | |
parent | c5eabc98a08cc961eefc142bbffb4e13f2d713dc (diff) | |
download | emacsconf-wiki-a4af4244f03b0e7b9a70f2cae0578b04386e12d5.tar.xz emacsconf-wiki-a4af4244f03b0e7b9a70f2cae0578b04386e12d5.zip |
Update emergency schedule to try to alternate gen and dev talks
-rw-r--r-- | 2022/organizers-notebook.md | 2371 | ||||
-rw-r--r-- | 2022/organizers-notebook/emergency-back-to-one-sat-pm.svg | 1 | ||||
-rw-r--r-- | 2022/organizers-notebook/emergency-back-to-one-sun-am.svg | 1 | ||||
-rw-r--r-- | 2022/organizers-notebook/emergency-back-to-one-sun-pm.svg | 1 | ||||
-rw-r--r-- | 2022/organizers-notebook/index.org | 91 |
5 files changed, 1355 insertions, 1110 deletions
diff --git a/2022/organizers-notebook.md b/2022/organizers-notebook.md index eff251c5..332d6bd3 100644 --- a/2022/organizers-notebook.md +++ b/2022/organizers-notebook.md @@ -21,37 +21,29 @@ This file is automatically exported from [/2022/organizers-notebook/index.org](/ Projects and tasks: -- [Record intro/outro for day-1 and day-2](#rec-intro):zaeph: -- [Write speaker e-mail for people who have already submitted their talks](#speaker-after-video) -- [Prepare intros for the hosts to read](#host-intros):zaeph: +- [Prepare intros for the hosts to read](#host-intros):sachac: - [Write check-in email](#check-in-email):sachac: +- [Review the submissions for encoding issues](#review-submissions):zaeph: - [Plan in-case-of-emergency schedule for dropping back to one track after Saturday morning](#one-track):sachac: -- [Satellite events](#satellite) -- [Draft e-mail to send speakers who may need to do it live](#live-speakers) -- [Prepare for prerecs](#prepare-prerec-process):zaeph: -- [Work on the OBS scenes](#obs-scenes):zaeph:corwin:sachac: -- [Make something to display between talks](#intro):akshay196: - [Create protocol for live Q&A](#live-protocol):zaeph: -- [Find volunteers for tech-checks](#tech-checks):zaeph: - [Update viewing instructions and watch pages](#write-viewing):sachac: - [Prepare to handle talk state changes](#publish-live):sachac:publish: -- [Move conf.org management to orga@res.emacsconf.org](#conforg):sachac: - [Set up stream events on Toobnix and YouTube](#other-streams):sachac:stream: - [Set up talks on Toobnix and YouTube](#video-platforms):sachac:yt:toobnix: -- [Ask speakers for bios or support nudges to include on their talk pages](#speaker-bio):wiki: -- [Do a dry run](#dry-run) -- [Smoothen captioning workflow](#caption-workflow):sachac: -- [Add category tags and possibly links between talks across 2022 and all previous years](#link-pages):quiliro:wiki: +- [Do another run](#dry-run) - [Turn off file upload service on media.emacsconf.org](#upload-off):sachac:infra: -- [JS/CSS enhancement](#watch-css):emacsconf: -- [Build up the ansible playbook](#ansible):sachac:opal: -- [Plan Etherpad use and hosting](#etherpad):sachac:ansible: -- [Set up BBB rooms and update conf.org](#create-bbb):sachac: -- [Coordinate and help volunteers](#coordinate-volunteers):sachac: -- [Investigate streaming options, maybe OBS in the cloud](#streaming):sachac: +- [Review notebook for tasks, priorities, and scheduling](#review) - [Use Mumble for backchannel coordination and also on-stage](#mumble) +- [Satellite events](#satellite) - [Volunteer update](#volunteer-2022-11-14) - [Make a linear hyperlist for managing EmacsConf](#hyperlist):sachac: +- [Record intro/outro for day-1 and day-2](#rec-intro):zaeph: +- [Add category tags and possibly links between talks across 2022 and all previous years](#link-pages):quiliro:wiki: +- [JS/CSS enhancement](#watch-css):emacsconf: +- [Build up the ansible playbook](#ansible):sachac:opal: +- [Consider breakout rooms for lunch break](#breakouts) +- [Work on the OBS scenes](#obs-scenes):zaeph:corwin:sachac: +- [Plan Etherpad use and hosting](#etherpad):sachac:ansible: Schedule by status: (gray: waiting, light yellow: processing, yellow: to assign, light green: captioning, green: captioned and ready) - Updated by conf.org and the wiki repository @@ -99,7 +91,7 @@ Schedule by status: (gray: waiting, light yellow: processing, yellow: to assign, <td class="org-left"><span class="timestamp-wrapper"><span class="timestamp">[2022-10-09 Sun]</span></span></td> <td class="org-left"> </td> <td class="org-left"><a href="#check-sched">schedule, reply if not okay</a></td> -<td class="org-left"><a href="#volunteer-2022-10-09">overall priorities</a></td> +<td class="org-left"><a href="#overall">overall priorities</a></td> <td class="org-left"> </td> </tr> @@ -203,14 +195,6 @@ interests you! <tbody> <tr> -<td class="org-left"><a href="#intro">intro and exit</a></td> -<td class="org-left"><b>text on screen</b></td> -<td class="org-left">per-talk video, recorded voiceover</td> -<td class="org-left">Emacs thing so we can display info, countdowns, IRC</td> -</tr> - - -<tr> <td class="org-left"><a href="#conforg">conf.org management</a></td> <td class="org-left">on sachac’s laptop</td> <td class="org-left">S: on res.emacsconf.org</td> @@ -299,6 +283,14 @@ interests you! <tr> +<td class="org-left">BBB Q&A start</td> +<td class="org-left">awkward silence while waiting</td> +<td class="org-left"><b>speaker can demo a little</b></td> +<td class="org-left">host has prepared questions just in case no one shows up</td> +</tr> + + +<tr> <td class="org-left"><a href="#write-viewing">watch page</a></td> <td class="org-left">tracks</td> <td class="org-left">+ IRC</td> @@ -376,6 +368,14 @@ interests you! <td class="org-left"><b>DONE S: some automation</b></td> <td class="org-left">comprehensive, can also work against containers</td> </tr> + + +<tr> +<td class="org-left"><a href="#intro">intro and exit</a></td> +<td class="org-left"><b>DONE: slide on screen, host on Mumble</b></td> +<td class="org-left">per-talk video, recorded voiceover</td> +<td class="org-left">Emacs thing so we can display info, countdowns, IRC</td> +</tr> </tbody> </table> @@ -384,186 +384,41 @@ interests you! # Projects and other long-running tasks -- [Record intro/outro for day-1 and day-2](#rec-intro):zaeph: -- [Write speaker e-mail for people who have already submitted their talks](#speaker-after-video) -- [Prepare intros for the hosts to read](#host-intros):zaeph: +- [Prepare intros for the hosts to read](#host-intros):sachac: - [Write check-in email](#check-in-email):sachac: +- [Review the submissions for encoding issues](#review-submissions):zaeph: - [Plan in-case-of-emergency schedule for dropping back to one track after Saturday morning](#one-track):sachac: -- [Satellite events](#satellite) -- [Draft e-mail to send speakers who may need to do it live](#live-speakers) -- [Prepare for prerecs](#prepare-prerec-process):zaeph: -- [Work on the OBS scenes](#obs-scenes):zaeph:corwin:sachac: -- [Make something to display between talks](#intro):akshay196: - [Create protocol for live Q&A](#live-protocol):zaeph: -- [Find volunteers for tech-checks](#tech-checks):zaeph: - [Update viewing instructions and watch pages](#write-viewing):sachac: - [Prepare to handle talk state changes](#publish-live):sachac:publish: -- [Move conf.org management to orga@res.emacsconf.org](#conforg):sachac: - [Set up stream events on Toobnix and YouTube](#other-streams):sachac:stream: - [Set up talks on Toobnix and YouTube](#video-platforms):sachac:yt:toobnix: -- [Ask speakers for bios or support nudges to include on their talk pages](#speaker-bio):wiki: -- [Do a dry run](#dry-run) -- [Smoothen captioning workflow](#caption-workflow):sachac: -- [Add category tags and possibly links between talks across 2022 and all previous years](#link-pages):quiliro:wiki: +- [Do another run](#dry-run) - [Turn off file upload service on media.emacsconf.org](#upload-off):sachac:infra: -- [JS/CSS enhancement](#watch-css):emacsconf: -- [Build up the ansible playbook](#ansible):sachac:opal: -- [Plan Etherpad use and hosting](#etherpad):sachac:ansible: -- [Set up BBB rooms and update conf.org](#create-bbb):sachac: -- [Coordinate and help volunteers](#coordinate-volunteers):sachac: -- [Investigate streaming options, maybe OBS in the cloud](#streaming):sachac: +- [Review notebook for tasks, priorities, and scheduling](#review) - [Use Mumble for backchannel coordination and also on-stage](#mumble) +- [Satellite events](#satellite) - [Volunteer update](#volunteer-2022-11-14) - [Make a linear hyperlist for managing EmacsConf](#hyperlist):sachac: - -Roughly ordered by importance. - - -<a id="rec-intro"></a> - -## TODO Record intro/outro for day-1 and day-2 :zaeph: - -- Opening remarks - - Schedule overview - - How to participate - -- Closing remarks Sat - - Thanks - - Come back tomorrow -- Closing remarks Sun - - Thanks - - - - -<a id="speaker-after-video"></a> - -## DONE Write speaker e-mail for people who have already submitted their talks - -To: speakers who have already submitted their talks (so that we don’t distract people who are still working on their talks) - - (defun emacsconf-mail-speaker-after-video (group &optional template) - (interactive (list (emacsconf-mail-complete-email-group - (seq-filter (lambda (o) (plist-get o :intro-note)) - (emacsconf-active-talks (emacsconf-get-talk-info)))))) - (setq template (or template (emacsconf-mail-merge-get-template "speaker-after-video"))) - (let ((talks (cdr group))) - (emacsconf-mail-prepare - template - (car group) - (list :speakers-short (plist-get (cadr group) :speakers-short) - :plural (if (= (length (cdr group)) 1) "" "s") - :email (plist-get (cadr group) :email) - :in-between (mapconcat (lambda (talk) - (emacsconf-surround "<https://media.emacsconf.org/2022/in-between/" (plist-get talk :slug) ".png>" "")) - (cdr group) - ", ") - :intro - (mapconcat (lambda (talk) - (string-join (org-wrap (emacsconf-surround "- " (plist-get talk :intro-note) "\n" "") 70) "\n")) - (cdr group) - "") - :chapters - (mapconcat (lambda (talk) - (format "<https://media.emacsconf.org/2022/backstage/#%s>:\n%s" - (plist-get talk :slug) - (mapconcat - (lambda (chapter) - (concat (format-seconds "%.2h:%z%.2m:%.2s" - (floor (/ (elt chapter 1) 1000))) - " " - (elt chapter 3) "\n")) - (subed-parse-file - (expand-file-name (concat (plist-get talk :video-slug) "--main--chapters.vtt") emacsconf-cache-dir))))) - (cdr group) - "\n\n") - :caption-note - (if (seq-find (lambda (o) (not (string= (plist-get o :status) "TO_STREAM"))) (cdr group)) - " The captions haven't been fully edited yet, so please ignore any errors in the captions themselves." - "") - :urls - (mapconcat (lambda (o) (concat "<" emacsconf-base-url (plist-get o :url) ">")) - (cdr group) " , ") - :tech-check-note - (if (string-match "live" (or (mapconcat (lambda (o) (or (plist-get o :q-and-a) "")) (cdr group) " ") "")) - (format - "*Tech check* - - Since you're planning to do a live Q&A session, you may want to - connect to the test BBB room at <%s> to make sure you can share - your audio, your window or screen, and your webcam (optional). Sharing - system audio or multi-monitor setups can sometimes be tricky, so - please let us know if you need help figuring things out. You can - double-check by connecting with a separate device, or you can arrange - to meet with one of the tech-check volunteers - (<https://emacsconf.org/2022/prepare/#tech-check>).${wrap} - - " emacsconf-test-bbb-room) ""))) - (add-hook 'message-sent-hook - `(lambda () - (mapc (lambda (o) - (emacsconf-add-to-talk-logbook o "Sent speaker-after-video email")) - (list - ,@(mapcar (lambda (talk) (plist-get talk :slug)) talks)))) - nil t))) - - (defun emacsconf-mail-speakers-after-videos () - (interactive) - (let* ((info (seq-filter (lambda (o) (plist-get o :intro-note)) - (emacsconf-active-talks (emacsconf-get-talk-info)))) - (grouped (seq-group-by (lambda (o) (plist-get o :email)) info)) - (template (emacsconf-mail-merge-get-template "speaker-after-video"))) - (mapc (lambda (group) - (emacsconf-mail-speaker-after-video group template)) - grouped))) - - -### Template - -Hi, ${speakers-short}! - -Thank you for uploading your video early! Let’s get a few more things -sorted out for a smooth EmacsConf 2022. - -${tech-check-note}\*Intro\* - -I’ve written a brief (and possibly inaccurate! =) ) intro that the -host can read out before your talk while the in-between slide -(${in-between}) is being displayed: - -${intro} - -Would you like to tweak it to better reflect your talk? - -**Chapter markers** - -I’ve added chapter markers to your video in the backstage area to help -with navigation. You can click on them in the backstage area if you -want to easily jump around, or review the list that I’ve included for -your convenience: - -${chapters} -If you prefer other headings or timestamps, please let me know!${caption-note} - -**Bio, community support links** - -People often want to learn more about speakers and show their -appreciation. If you’d like to include an author bio and any -social/support links to your talk page${plural} (${urls}), please -e-mail us the text that you’d like to include. You can also follow the -instructions at <https://emacsconf.org/edit/> to edit your talk -page${plural} directly yourself, if you want to.${wrap} - -Thanks again for all your contributions! - -Sacha +- [Record intro/outro for day-1 and day-2](#rec-intro):zaeph: +- [Add category tags and possibly links between talks across 2022 and all previous years](#link-pages):quiliro:wiki: +- [JS/CSS enhancement](#watch-css):emacsconf: +- [Build up the ansible playbook](#ansible):sachac:opal: +- [Consider breakout rooms for lunch break](#breakouts) +- [Work on the OBS scenes](#obs-scenes):zaeph:corwin:sachac: +- [Plan Etherpad use and hosting](#etherpad):sachac:ansible: <a id="host-intros"></a> -## TODO Prepare intros for the hosts to read :zaeph: +## TODO Prepare intros for the hosts to read :sachac: + +<https://pad.emacsconf.org/intros> +also in :INTRO\_NOTE: in conf.org so that we can plop it into the hyperlists +Doublecheck: -### TODO Set up Etherpad with the talks and see if we can involve the speakers and captioning volunteers :sachac: +### DONE Set up Etherpad with the talks and see if we can involve the speakers and captioning volunteers :sachac: <a id="check-in-email"></a> @@ -571,158 +426,50 @@ Sacha ## TODO Write check-in email :sachac: -<a id="one-track"></a> - -## TODO Plan in-case-of-emergency schedule for dropping back to one track after Saturday morning :sachac: - - -<a id="satellite"></a> - -## Satellite events - - -### Zurich - - -#### TODO Link to them on the wiki :zaeph: - -<https://200ok.ch/posts/2022-11-01_emacsconf__with_a_new_physical_venue.html> - - -#### TODO announce on the emacsconf-discuss mailing list :zaeph: - - -<a id="live-speakers"></a> - -## TODO Draft e-mail to send speakers who may need to do it live - - -<a id="prepare-prerec-process"></a> - -## DONE Prepare for prerecs :zaeph: - - -### DONE Optimize ffmpeg incantation - -Remember to update <../prepare.md> with the new incantation. - - -#### Incantation from last year - - Q=32 - ffmpeg -y -i "$1" -c:v libvpx-vp9 -b:v 0 -crf $Q -aq-mode 2 -an -tile-columns 0 -tile-rows 0 -frame-parallel 0 -cpu-used 8 -auto-alt-ref 1 -lag-in-frames 25 -g 240 -pass 1 -f webm -threads 8 /dev/null && - ffmpeg -y -i "$1" -c:v libvpx-vp9 -b:v 0 -crf $Q -c:a copy -tile-columns 2 -tile-rows 2 -frame-parallel 0 -cpu-used -5 -auto-alt-ref 1 -lag-in-frames 25 -pass 2 -g 240 -threads 8 "$2" - - -#### New candidate - -Changelog: - -- Disable adaptive quantization by setting aq-mode to 0 (TODO: compare samples) -- Add `-row-mt 1` needed to support `tile-rows` (2×2 is enough for 720p) -- Also use tiles for first pass -- Remove `-frame-parallel 0` because it’s disabled by default (see [Notes on encoding settings · Kagami/webm.py Wiki](https://github.com/Kagami/webm.py/wiki/Notes-on-encoding-settings)) -- Put number of CPU in variable and use it for `cpu-used` and `threads` -- Stick to default for `auto-alt-ref` -- Stick to default for `lag-in-frames` - - Q=32 - CPU=8 - ffmpeg -y -i "$1" -c:v libvpx-vp9 -b:v 0 -crf $Q -an -row-mt 1 -tile-columns 2 -tile-rows 2 -cpu-used $CPU -g 240 -pass 1 -f webm -threads $CPU /dev/null && - ffmpeg -y -i "$1" -c:v libvpx-vp9 -b:v 0 -crf $Q -c:a copy -row-mt 1 -tile-columns 2 -tile-rows 2 -cpu-used $CPU -pass 2 -g 240 -threads $CPU "$2" - -Other considerations: - -- We might want to tweak the time before keyframes (`-g`). - - -### DONE Figure out workflow for handling submitted prerecs - -We need time after the prerecs get submitted to: - -- convert the videos and check that they’ve been reencoded properly by watching the re-encoded ones all the way to the end -- caption videos -- capture any extra info -- follow up with missing prerecs - -Make changes in [As prerecorded talks come in](#prerec-process) - - -<a id="obs-scenes"></a> +### TODO Draft e-mail to send speakers who may need to do it live -## INPROGRESS Work on the OBS scenes :zaeph:corwin:sachac: -- [ ] corwin is out from Nov 11-20, and we should start working on them before then. +<a id="review-submissions"></a> +## TODO Review the submissions for encoding issues :zaeph: -<a id="intro"></a> +so that we don’t get surprised by missing or corrupted videos -## DONE Make something to display between talks :akshay196: -Goals: +<a id="one-track"></a> -- Reassure people that they’re in the right stream for the talk that they’re looking for -- Direct them to the pad and Q&A for the talk +## TODO Plan in-case-of-emergency schedule for dropping back to one track after Saturday morning :sachac: -What to show in between talks: +We might be able to do it on a modular basis (Saturday afternoon, Sunday morning, or Sunday afternoon). +We need a quick way to notify the affected speakers, and we should give them a heads-up as well. +We also need a quick way to update the schedule. -- Previous talk: title, speaker, pronouns, talk page, Q&A information (if still live) -- Next talk: title, speaker, pronouns, talk page, Q&A information, countdown -<https://media.emacsconf.org/2022/backstage/gen-in-between.pdf> -<https://media.emacsconf.org/2022/backstage/dev-in-between.pdf> +### STARTED Update conf.org and the wiki based on the selected schedule -- Good: Static image, maybe created with LaTeX -- Better: Video with unobtrusive sound so people can doublecheck that their audio works -- Best: Emacs thing so that we can have a dynamic timer and last-minute announcements, and so that it’s Emacs =) -- Even better than that: A compact view that can be overlaid on the Q&A session using OBS -See break commercials -<https://www.collabmagazine.com/organizing-a-multi-track-virtual-conference-with-microsoft-teams-live-events-a-technical-playbook-and-lessons-learned/> +### TODO Give speakers a heads-up regarding schedule tweaks and the potential for bigger schedule changes -OBS scenes (maybe?): -- splash-screen when we’re on break -- scene when broadcasting a talk (where we might want a logo and a bar or surrounding to broadcast messages like time left in - recording); and -- Q&A scene with host-webcam, optional speaker-webcam, and pad with questions. -- Q&A scene focusing on shared screen from speaker -- Q&A scene with IRC and pad +### TODO Draft the code for mailing all the affected speakers -Nothing is urgent, blocking it, or being blocked by it, so you can -play around with ideas. -We’re experimenting with two tracks this year, so we expect that some -people will join midway through a talk or Q&A session and -would like to reorient themselves. Some Q&A sessions may end -early, so we would like to reassure people that they’re in -the right spot for the next talk. Most Q&As will be done -live, but some Q&As will be done over IRC, so we need to -point people to the right place. +### Saturday afternoon -and if there’s room for a little extra info like public e-mail -addresses or pronouns, that can help people when they discuss -things. That info will be in the pad and IRC, though, so it’s -also okay to omit it +- ![img](emergency-back-to-one-sat-pm.svg) -We can programmatically replace strings in -SVG from Emacs, so we can easily use that as an overlay. -<zaeph> …Or, if you just want to focus on the look of -things, we can think of the content on our own. +### Sunday morning -<sachac> oh yeah, totally, you can just focus on the design and use -placeholder text +- ![img](emergency-back-to-one-sun-am.svg) -Overlay considerations: -- talk videos will likely have subtitles; no subtitles for Q&A -- zaeph doesn’t like vertical text +### Sunday afternoon +- ![img](emergency-back-to-one-sun-pm.svg) -### DONE Generate talk banners :sachac: -![img](https://gitlab.com/akshay196/emacsconf-artwork/-/blob/main/2022/talk-banner/sample.svg) +### TODO Get the emergency schedule sorted out so that we can easily switch to it <a id="live-protocol"></a> @@ -738,38 +485,9 @@ Comments: - It would be nice to have a protocol with speakers to tell us that they’re uncomfortable with a question, just so that we can find a smooth way to skip it. -<a id="tech-checks"></a> - -## INPROGRESS Find volunteers for tech-checks :zaeph: - - -### DONE Add entry in 2022/volunteer.md - - -### INPROGRESS Write protocol for adding tech-checker volunteer - -- Invite volunteer to BBB (ask core organizers) -- Update <prepare.md> with new tech-checker info -- Coach tech-checker on the protocol - - -### INPROGRESS Write the tech-checking protocol (formerly referred to as “tech-checklist”) - -From previous years: - -> - Can you speak and be heard? Is there echo? -> - Can you hear the organizer? -> - Can you share your screen? Is the screen readable? -> - If you plan to show your keystrokes, is that display visible? -> - If you want to share your webcam (optional), can you enable it? Is it visible? Will there likely be distractions in the background? -> - Can you view the collaborative pad? Will you be comfortable reviewing questions on your own (perhaps by keeping it open beside your shared window), or will you need a volunteer to relay questions to you? -> - Can you share contact information (ex: phone number) so that we can get in touch with you in case of technical issues or scheduling changes? -> - Do you need help finding your way around IRC so that you can check into \`#emacsconf-org\`? What is your IRC nickname? - - <a id="write-viewing"></a> -## DONE Update viewing instructions and watch pages :sachac: +## TODO Update viewing instructions and watch pages :sachac: Extra stuff to consider adding: @@ -785,7 +503,7 @@ Also add to watch page ### DONE Add Q&A distinction to SVG schedule -### TODO Make it easy to get to recent/current/next talk information while watching +### CANCELLED Make it easy to get to recent/current/next talk information while watching Maybe links to the current shift’s pads @@ -837,7 +555,7 @@ Other things that aren’t tracked by todo status: - **CHECK\_IN: t:** once the speaker has been checked into the BBB room or IRC -##### TODO Prerec publishing +#### TODO Prerec publishing Move to public directory and create a link from the backstage directory Update the wiki page @@ -859,43 +577,74 @@ emacsconf-erc.el in the emacsconf-el repo - announcement can include talk page, pad, IRC nick, pronouns -<a id="conforg"></a> +<a id="other-streams"></a> -## DONE Move conf.org management to orga@res.emacsconf.org :sachac: +## STARTED Set up stream events on Toobnix and YouTube :sachac:stream: -so that more people can work with it during the conference -See the publish role in the ansible playbook +so that people on other platforms can come across EmacsConf -<a id="other-streams"></a> +### TODO Write the restreaming shell scripts -## TODO Set up stream events on Toobnix and YouTube :sachac:stream: -so that people on other platforms can come across EmacsConf +#### TODO Restream-gen-youtube + + +### DONE Create the events and save the keys :sachac: + +[Other platforms](file:///home/sacha/proj/emacsconf/private/conf.md) + +$1 is of the form rtmp://…/stream\_key MOUNT=$1 while true; do ffmpeg -loglevel 24 -i http://localhost:8000/main.webm -cluster_size_limit 2M -cluster_time_limit 5100 -b:v 1M -crf 30 -g 125 -deadline good -threads 4 -vcodec libx264 -acodec libmp3lame -f flv $MOUNT; done +Creating the events -<a id="video-platforms"></a> +- YouTube: Create - Go Live - Schedule Stream - Streaming Software +- Toobnix: Publish - Go live + - max live is 5 hours -## BLOCKED Set up talks on Toobnix and YouTube :sachac:yt:toobnix: -so that people can find the videos on other video platforms -waiting for prerecs +##### EmacsConf 2022 - General track +This is for the general track of EmacsConf, the conference about the joy of Emacs and Emacs Lisp. -<a id="speaker-bio"></a> +Watch using free/open source software: <https://live.emacsconf.org/2022/watch/gen/> +Conference info: <https://emacsconf.org/2022/> +Schedule: <https://emacsconf.org/2022/talks/> +Chat on #emacsconf-dev via <https://chat.emacsconf.org> or irc.libera.chat +Etherpad: <https://pad.emacsconf.org/2022> -## TODO Ask speakers for bios or support nudges to include on their talk pages :wiki: +Videos are shared under the terms of the Creative Commons Attribution-ShareAlike 4.0 +International (CC BY-SA 4.0) license. Please observe the guidelines for conduct: <https://emacsconf.org/conduct/> -maybe after we get the prerecs -ex: liberapay, patreon, anyone looking for a job, etc. + +##### EmacsConf 2022 - Development track + +This is for the development track of EmacsConf, the conference about the joy of Emacs and Emacs Lisp. + +Watch using free/open source software: <https://live.emacsconf.org/2022/watch/dev/> +Conference info: <https://emacsconf.org/2022/> +Schedule: <https://emacsconf.org/2022/talks/> +Chat on #emacsconf-dev via <https://chat.emacsconf.org> or irc.libera.chat +Etherpad: <https://pad.emacsconf.org/2022> + +Videos are shared under the terms of the Creative Commons Attribution-ShareAlike 4.0 +International (CC BY-SA 4.0) license. Please observe the guidelines for conduct: <https://emacsconf.org/conduct/> + + +<a id="video-platforms"></a> + +## TODO Set up talks on Toobnix and YouTube :sachac:yt:toobnix: + +so that people can find the videos on other video platforms +waiting for prerecs <a id="dry-run"></a> -## DONE Do a dry run +## TODO Do another run Summary: @@ -967,36 +716,80 @@ videotestsrc num\_buffers=2450 ! video/x-raw,width=400,height=300,framerate=10/1 1251,/home/sacha/proj/emacsconf/private/assets/titles% find -name community-title.svg -exec inkscape –export-type=png –export-width=1280 –export-height=720 –export-background-opacity=0 {} \\; -<a id="caption-workflow"></a> +### DONE Do mini dry run -## TODO Smoothen captioning workflow :sachac: -It looks like OpenAPI needs a little less editing in terms of -capitalization and punctuation, but it produces longer captions -(likely a 30-second sliding window). I’ll try to upload both YT and -OpenAPI captions so that people can decide what they like. +#### DONE Revisit OBS and streaming setup to prepare for the dry run next weekend -### DONE Figure out why it’s choking on SRV2 +<a id="upload-off"></a> -Can I use aeneas for alignment instead? +## TODO Turn off file upload service on media.emacsconf.org :sachac:infra: -Reflow the .txt file and reupload to res if needed -call ../run-aeneas.sh from the directory with the opus or ogg and the txt file +so that nginx can have more memory and we don’t risk slowdowns -sachac@res-https://emacsconf.org/2022/talks/~/current/meetups$ python3 -m aeneas.tools.execute\_task emacsconf-2022-meetups–attending-and-organizing-emacs-meetups–bhavin-gandhi–main.opus reflowed.srt “task\_language=eng|os\_task\_file\_format=json|is\_text\_type=subtitles” output.json -I might try out lhotse and torchaudio someday, but it’s low priority. aeneas seems to do a reasonable job of +<a id="review"></a> +## STARTED Review notebook for tasks, priorities, and scheduling -### TODO Move publishing the backstage index to res so that we can trigger it after the files are uploaded +<a id="mumble"></a> -### DONE Compare large, medium, and small models +## INPROGRESS Use Mumble for backchannel coordination and also on-stage -12 threads +<span class="timestamp-wrapper"><span class="timestamp">[2022-11-19 Sat] </span></span> sachac: Confirmed that you can join the emacsconf-dev or emacsconf-gen channel if you have access, and you can speak on air in just that channel -Original file: 21:16 21 minutes + +### DONE Update the Mumble setup :bandali: + +- [X] Add emacsconf-gen and emacsconf-dev channels +- [X] Give the emacsconf-gen and emacsconf-dev users access to them +- [X] Give the other organizers access to emacsconf-gen, emacsconf-dev, and org-private +- [X] Get emacsconf-gen and -dev to join the right channels + + +### DONE E-mail volunteers and help them get on Mumble :bandali: + + +#### Template + +We plan to use Mumble as a virtual walkie-talkie during the conference +so that we can quickly talk to each other as needed. It can also be a +way for us to add our audio to the streams. Please set up your system +as follows: + +1. Install a Mumble client on the device you want to use to connect to + the voice channel. It can be your computer or phone. You can choose + the username that you would like to log in with. +2. Create and backup your certificate. (This is part of the wizard for + the desktop client, and it might be automatic on a phone client.) +3. Connect to mumble.emacsconf.org with your desired username. +4. Register your account on the server using the `Self > Register` + command. This reserves your username using your certificate and + allows me to add you to ACLs. +5. Let me know (sachac on #emacsconf-org in IRC or + sacha@sachachua.com) when you’ve registered so that I can add you + to the access control lists for the private channels. If I’m around + on mumble (sachac), you can say hi to me there and confirm that + it’s working. + +You can enter a channel by double-clicking on it. (On Mumla for +Android, entering a channel is instead done by clicking on the arrow +to the right of the channel.) Then your audio will go to that channel, +and you can hear audio from that channel. We can use the +`emacsconf-gen` and `emacsconf-dev` channels to speak on air, and we +can use the `backstage` channel for coordination. + +Looking forward to hearing from you! + +Sacha + + +### DONE Generate certificates, add them to conf.org, and register the users :sachac: + + +### WAITING Set up Mumble and bring the volunteers on board <table border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides"> @@ -1004,172 +797,134 @@ Original file: 21:16 21 minutes <colgroup> <col class="org-left" /> -<col class="org-right" /> - -<col class="org-right" /> +<col class="org-left" /> <col class="org-left" /> </colgroup> -<tbody> +<thead> <tr> -<td class="org-left"> </td> -<td class="org-right">Hours</td> -<td class="org-right">Mult</td> -<td class="org-left">Notes</td> +<th scope="col" class="org-left"> </th> +<th scope="col" class="org-left">Emailed</th> +<th scope="col" class="org-left">Onboarded</th> </tr> +</thead> - +<tbody> <tr> -<td class="org-left"><a href="https://media.emacsconf.org/2022/backstage/emacsconf-2022-sqlite--using-sqlite-as-a-data-source-a-framework-and-an-example--andrew-hyatt--large.vtt">Large</a></td> -<td class="org-right">2:49</td> -<td class="org-right">8</td> -<td class="org-left"> </td> +<td class="org-left">FlowyCoder</td> +<td class="org-left">X</td> +<td class="org-left"><span class="timestamp-wrapper"><span class="timestamp">[2022-11-19 Sat] </span></span> access granted, briefed</td> </tr> <tr> -<td class="org-left"><a href="https://media.emacsconf.org/2022/backstage/emacsconf-2022-sqlite--using-sqlite-as-a-data-source-a-framework-and-an-example--andrew-hyatt--medium.vtt">Medium</a></td> -<td class="org-right">2:03</td> -<td class="org-right">5.9</td> +<td class="org-left">jman</td> +<td class="org-left">X</td> <td class="org-left"> </td> </tr> <tr> -<td class="org-left"><a href="https://media.emacsconf.org/2022/backstage/emacsconf-2022-sqlite--using-sqlite-as-a-data-source-a-framework-and-an-example--andrew-hyatt--small.vtt">Small</a></td> -<td class="org-right">0:40</td> -<td class="org-right">2</td> -<td class="org-left">More run-on sentences</td> +<td class="org-left">vetrivln</td> +<td class="org-left">X</td> +<td class="org-left"><span class="timestamp-wrapper"><span class="timestamp">[2022-11-19 Sat] </span></span> access granted, needs to figure out audio</td> </tr> </tbody> </table> -Large and medium might do better on a system with a GPU. I’ll default to the small model for now. +<a id="satellite"></a> -### DONE Commit subed-tsv so that people can try a cleaner output +## Satellite events -### DONE Investigate more granular timestamps for the output from OpenAPI Whisper +### Zurich -<https://git.emacsconf.org/emacsconf-ansible/tree/roles/caption/templates> +#### TODO Link to them on the wiki :bandali: -### DONE Upload srv2 from YouTube for word-level +<https://200ok.ch/posts/2022-11-01_emacsconf__with_a_new_physical_venue.html> -### CANCELLED Compare with Google Cloud Speech API +#### TODO announce on the emacsconf-discuss mailing list :bandali: -~/code/speech +<a id="volunteer-2022-11-14"></a> -### DONE E-mail for bringing new captioning volunteers onboard +## Volunteer update - (defun emacsconf-mail-backstage-intro (volunteer &optional template) - (interactive (list (emacsconf-complete-volunteer))) - (emacsconf-mail-prepare - (or template (emacsconf-mail-merge-get-template "backstage-intro")) - (assoc-default "EMAIL" volunteer 'string=) - (list - :backstage "https://media.emacsconf.org/2022/backstage/" - :backstage-user "emacsconf" - :backstage-password emacsconf-backstage-password - :conf-name emacsconf-name - :year emacsconf-year - :name (assoc-default "NAME_SHORT" volunteer 'string=) - :email (assoc-default "EMAIL" volunteer 'string=)))) +- talk banners, akshay -#### Template +<a id="hyperlist"></a> -Hi ${name}! +## TODO Make a linear hyperlist for managing EmacsConf :sachac: -Thank you for volunteering for ${conf-name} ${year}! +Goal: -We’ve set up ${backstage} as the backstage area where you can view the -videos and resources uploaded so far. You can access it with the -username "${backstage-user}“ and the password ”${backstage-password}“. -Please keep the backstage password and other speakers’ talk resources -secret. +- Volunteers should be able to coordinate everything by stepping through a linear list of things to do +- The hyperlist will primarily live on orga@res.emacsconf.org and be accessed through emacsclient. (Maybe sat.org and sun.org) +- Volunteers should be able to take breaks as needed -For some ideas on ways to help, you can check out -<https://emacsconf.org/2022/volunteer/> . You can also suggest other -things you might be interested in. +- 9:05 Journalism + - [ ] Check ${name} into <span class="underline">BBB room</span> + - [X] [Start talk]((emacsconf-update-talk-status "journalism" "." "PLAYING")) + - [X] [Start closed Q&A]((emacsconf-update-talk-status "journalism" "." "CLOSED_Q")) + - [ ] [Open Q&A]((emacsconf-update-talk-status "journalism" "." "OPEN_Q")) + - [ ] [Mark Q&A as unstreamed]((emacsconf-update-talk-status "journalism" "." "UNSTREAMED_Q")) + - [ ] [Finish talk]((emacsconf-update-talk-status "journalism" "." "TO_ARCHIVE")) +- 9:40 Handwritten + - [ ] [Start talk]((emacsconf-update-talk-status "handwritten" "." "PLAYING")) + - [ ] [Start closed Q&A]((emacsconf-update-talk-status "handwritten" "." "CLOSED_Q")) + - [ ] [Open Q&A]((emacsconf-update-talk-status "handwritten" "." "OPEN_Q")) + - [ ] [Mark Q&A as unstreamed]((emacsconf-update-talk-status "handwritten" "." "UNSTREAMED_Q")) + - [ ] [Finish talk]((emacsconf-update-talk-status "handwritten" "." "TO_ARCHIVE")) -You can ask questions or chat with other volunteers by e-mailing the -mailing list at emacsconf-org@gnu.org or dropping by #emacsconf on the -libera.chat IRC network. You can also e-mail me or -emacsconf-org-private@gnu.org if you have private questions. +See sat.org and sun.org in the conf private repo -Thank you again for your help! =) +Try them in an Etherpad -Sacha Chua +<https://media.emacsconf.org/2022/backstage/index-gen.html> +<https://media.emacsconf.org/2022/backstage/index-dev.html> +<https://media.emacsconf.org/2022/backstage/hyperlists/> +[How do we want to coordinate during the conference itself?](#coordination) -### DONE E-mail for bringing new captioning volunteers onboard - (defun emacsconf-mail-captioning-intro (volunteer &optional template) - (interactive (list (emacsconf-complete-volunteer) - (emacsconf-mail-merge-get-template "captioning-intro"))) - (emacsconf-mail-prepare - (or template (emacsconf-mail-merge-get-template "captioning-intro")) - (assoc-default "EMAIL" volunteer 'string=) - (list - :backstage "https://media.emacsconf.org/2022/backstage/" - :backstage-user "emacsconf" - :backstage-password emacsconf-backstage-password - :conf-name emacsconf-name - :year emacsconf-year - :name (assoc-default "NAME_SHORT" volunteer 'string=) - :email (assoc-default "EMAIL" volunteer 'string=)))) +### DONE Try writing it to an Etherpad -#### Template +### TODO Revisit the hyperlists to make sure they make sense -Hi ${name}! -Thank you for volunteering to help with the captions for ${conf-name} -${year}! Last year, we were able to get almost all the talks captioned -in time for streaming. Participants found them very useful for -understanding different technical terms, names, accents, and so on. -We’d love to be able to pull that off again this year, and it would be -great to have you on board. +### TODO Add intro notes and specific talk notes to the hyperlist -We’ve set up ${backstage} as the backstage area where you can view the -videos and resources uploaded so far. You can access it with the -username "${backstage-user}“ and the password ”${backstage-password}“. -Please keep the backstage password and resources secret. If you see a -talk that you’d like to caption, you can e-mail me at -sacha@sachachua.com and I can reserve it for you. Then you can correct -any misrecognized words, fix capitalizations, remove filler words as -needed, and so on. -You’ll probably want to work with either the VTT or the TXT versions -(VTT is WebVTT format and has timestamps), but you can check the other -talk resources in case the speaker has posted scripts or other useful -things. Both VTT and TXT are plain text, so feel free to use your -favourite text or subtitle editor. I’ve posted a brief demo of how I -edit captions at -<https://media.emacsconf.org/2022/backstage/editing-captions.html> , and -you can find more captioning tips at <https://emacsconf.org/captioning/> -. You can convert it to whatever format you like. If you prefer to -work with plain text, we can figure out the timestamps afterwards. +### TODO Make a hyperlist for checking people in for easier copying and pasting -Let me know if you want to reserve a talk for captioning or if you have -any questions or suggestions. We’re also in the #emacsconf-org channel -on the libera.chat IRC network, which you can connect to with your -favourite IRC client or through the web-based interface at -<https://chat.emacsconf.org/> . -Sacha Chua +### TODO Send FlowyCoder hyperlist for checking people in +[Use Mumble for backchannel coordination and also on-stage](file:///home/sacha/proj/emacsconf/wiki/2022/organizers-notebook/index.md) -### DONE Support cue IDs in subed-vtt.el +### TODO Make backstage redirects for pad and qa so that hosts and streamers can have an easier time -### TODO jiwer · PyPI - measure error rate -<https://pypi.org/project/jiwer/> +<a id="rec-intro"></a> + +## TODO Record intro/outro for day-1 and day-2 :zaeph: + +- Opening remarks + - Schedule overview + - How to participate + +- Closing remarks Sat + - Thanks + - Come back tomorrow +- Closing remarks Sun + - Thanks + - <a id="link-pages"></a> @@ -1188,11 +943,6 @@ Sacha Chua You can make a new heading called `# Related talks` -<a id="upload-off"></a> - -## TODO Turn off file upload service on media.emacsconf.org :sachac:infra: - - <a id="watch-css"></a> ## TODO JS/CSS enhancement :emacsconf: @@ -1220,6 +970,8 @@ in prod or docker container ### TODO restreamers on live0 +[Set up stream events on Toobnix and YouTube](#other-streams) + ### DONE icecast on live0 @@ -1229,7 +981,7 @@ in prod or docker container #### DONE Set up watch/gen-480p -### TODO publishing environment +### DONE publishing environment ### DONE Get ansible to run against a clean docker @@ -1238,6 +990,18 @@ in prod or docker container ### DONE Set up Etherpad with MySQL +<a id="breakouts"></a> + +## SOMEDAY Consider breakout rooms for lunch break + + +<a id="obs-scenes"></a> + +## INPROGRESS Work on the OBS scenes :zaeph:corwin:sachac: + +- [ ] corwin is out from Nov 11-20, and we should start working on them before then. + + <a id="etherpad"></a> ## INPROGRESS Plan Etherpad use and hosting :sachac:ansible: @@ -1349,475 +1113,12 @@ if we can get the anchor plugin `emacsconf-pad-export-initial-content-for-all-talks` -<a id="create-bbb"></a> - -## TODO Set up BBB rooms and update conf.org :sachac: - -1. Log on to bbb.emacsverse.org as an admin. -2. Create a room. Enable **Mute users when they join**. - - The code below doesn’t quite work, but might be a good starting point for future automation. - - (setq list (seq-drop (emacsconf-bbb-room-title-list) 3)) ; skip some if needed - (progn - (setq name (pop list)) - (kill-new (format "name=\"%s\";$('#create-room-block').click();$('#create-room-name').val(name);$('#room_mute_on_join').click();$('.create-room-button').click();\n" - name)) - (sleep-for 1) - (shell-command "xdotool key alt+Tab sleep 3 key ctrl+v sleep 1 key Return")) - -console.log(JSON.stringify([…document.querySelectorAll(’.delete-room’)].map((o) => { return { name: o.getAttribute(’data-name’), path: o.getAttribute(’data-path’) }}).filter((o) => o.name.match(*^ec22*)))) - -see conf.org for the rest of the process - - -### DONE Add volunteers to the BBB rooms - -- vetrivln: sat-am-dev, sun-am-dev -- FlowyCoder: sat-pm-gen, sun-pm-gen -- jman: sun-pm-gen - - -<a id="coordinate-volunteers"></a> - -## INPROGRESS Coordinate and help volunteers :sachac: - -- <../volunteer> -- Figure out what information volunteers need in order to feel - comfortable signing up for tasks. ex: - <https://wiki.debian.org/DebConf/21/VideoVolunteering> -- Encourage people to sign up for [Shifts](#shifts) - - -### TODO Plan training session(s), Q&A availability, recordings - - -### BLOCKED Hold Q&A session with volunteers - - -<a id="streaming"></a> - -## DONE Investigate streaming options, maybe OBS in the cloud :sachac: - -Current status: - -- res.emacsconf.org seems to be able to handle 2x (OBS + TigerVNC + MPV, should test with Firefox as well) -- corwin and jman will stream gen from OBS on res -- bandali will stream dev from his laptop -- let sachac know if you want manual control or more autopilot for the gen stream - -Goals: - -- [X] Be able to start a VNC server with OBS, MPV, and Firefox, connect to it, and stream -- [X] Have another session with the sound isolated -- [-] Split the audio so that we can join the Q&A room before the MPV ends - handled by automatic scene switcher detecting mpv, but we can’t share just a window, so we might as well just wait -- [X] Control MPV from the commandline: track-mpv appears in the correct display, and it can also be controlled via the socket like this: echo ’{ “command”: [“loadfile”, “test2.webm”] }’ | socat - ~/mpv-socket-emacsconf-dev -- [ ] Share the window instead of the desktop? - -Prerequisites: - -- You need to be able to SSH out to res.emacsconf.org on port 46668 - and forward ports, so one of the main organizers needs to add your - SSH public key to the authorized\_keys file. Please e-mail your SSH - public key to sacha@sachachua.com and test that port 46668 is not - blocked. -- For streaming from OBS in VNC, you will need a VNC viewer like - tigervnc-viewer. -- For streaming from your local computer, you will need OBS and FFmpeg. - -During the conference, you will: - -- play the talk video (unless it’s automatically managed by the agenda) and update the overlays -- display intro/intermission information as needed -- open the Q&A windows, like the pad and the BBB room/IRC (unless it’s automatically managed by the agenda) -- adjust the volume if needed -- arrange windows and focus the BBB room on the speaker’s webcam if needed -- if you like, you can be responsible for managing the track from conf.org on orga@res.emacsconf.org - -Dry run checklist: - -- [ ] Connect to the server - ssh orga@res.emacsconf.org -p 46668 - emacsconf # runs emacsclient -c -a emacs -- [ ] Forward ports and connect via VNC -- [ ] Find the OBS or start it if it is not running -- [ ] Start recording -- [ ] Play a video -- [ ] Open two Firefox windows and arrange them -- [ ] Manage windows on the workspace -- [ ] Adjust the volume in OBS -- [ ] SSH to the server and play a video off-screen -- [ ] SSH to the server with X forwarding and adjust the volume off-screen - - -### Broadcasting from local OBS (option A) - -- You can copy the profile from your track or look inside it for the icecast mount point details: - - Gen: rsync -avze ’ssh -p 46668’ emacsconf-gen@res.emacsconf.org:~/.config/obs-studio/basic/profiles/ ~/.config/obs-studio/basic/profiles/ - - Dev: rsync -avze ’ssh -p 46668’ emacsconf-dev@res.emacsconf.org:~/.config/obs-studio/basic/profiles/ ~/.config/obs-studio/basic/profiles/ - -- Sacha will turn off the OBS recordings on res so that you can test streaming from your computer - - If you’re doing this independently, you can jump ahead to “Connecting to VNC” in order to stop the recording yourself - -- Verify with MPV: - - mpv https://live0.emacsconf.org/emacsconf/gen.webm - mpv https://live0.emacsconf.org/emacsconf/dev.webm - -- With luck, the 480p streams will be up automatically as well - - mpv https://live0.emacsconf.org/emacsconf/gen-480p.webm - mpv https://live0.emacsconf.org/emacsconf/dev-480p.webm - - -### Connecting to VNC (option B) - -1. Stop broadcasting locally if you were testing local OBS. - -2. Install a VNC viewer on your system (ex: tigervnc-viewer). - -3. Set up your local environment: - - gen: export TRACK=gen; export TRACK\_PORT=5905; export SSH\_PORT=46668 - - dev: export TRACK=dev; export TRACK\_PORT=5906; export SSH\_PORT=46668 - -4. Copy the password: - - scp emacsconf-$TRACK@res.emacsconf.org:~/.vnc/passwd vnc-passwd-$TRACK -p $SSH\_PORT - -5. Forward your local ports and connect via VNC viewer to the - appropriate forwarded port from your laptop: - - ssh emacsconf-$TRACK@res.emacsconf.org -N -L $TRACK_PORT:127.0.0.1:$TRACK_PORT -p $SSH_PORT & - sleep 5 # Give it time to establish the tunnels - xvncviewer 127.0.0.1:$TRACK_PORT -shared -geometry 1280x720 -passwd vnc-passwd-$TRACK & - - (If this doesn’t find a VNC server to connect to, you can start it with `ssh emacsconf-$TRACK@res.emacsconf.org -p $SSH_PORT /home/emacsconf-$TRACK/bin/track-vnc`) - -6. Start **recording** (not streaming). If you don’t see OBS when you connect, it’s probably on workspace 2, so you can switch with Alt-2. If you still don’t see it there, you can open a terminal with Alt-Enter and then run `track-obs`. After you start recording, confirm that it is now broadcasting to the stream. - -7. Verify with MPV on your local system: - - mpv https://live0.emacsconf.org/emacsconf/$TRACK.webm & - -8. With luck, the 480p streams will be up automatically as well. On your local system: - - mpv https://live0.emacsconf.org/emacsconf/$TRACK-480p.webm & - -9. Play a video. It should display the video and update the overlays. If you need to update the overlays manually, you can copy files from `/data/emacsconf/overlays` onto `$HOME/other.png` and `$HOME/video.png`. - - You can play a video with `play video-id` (ex: `play meetups`), or you can specify the filename (ex: ~play ~/stream/emacsconf-2022-meetups\*.webm). - - termit: Ctrl-Shift-t makes a new tab - - i3 cheat sheet: - - - Alt-Enter creates a terminal - - Alt-d runs a command - - Alt-e toggles horizontal/vertical split - - Alt-f toggles full-screen - - Alt-w switches to tabbed view - - Alt-1 switches to workspace 1, Alt-2 switches to workspace 2 - - Alt-Shift-2 moves things to workspace 2 - - Alt-Shift-Left moves the current window to the left - - Alt-Shift-Right moves the current window to the right - -10. Test Q&A. You can either wait for the video to finish or quit it with “q”. - You can paste in the URLs or use - `firefox /data/emacsconf/2022/index-$TRACK.html` - -11. Test adjusting the audio - - `ssh emacsconf-$TRACK@res.emacsconf.org -p 46668` - - Then use `qa-louder`, `qa-quieter`, or `qa-vol vol%` (ex: `qa-vol 90%`) - -Other notes and tips: - -- You can use Emacs for emergency or ad-hoc announcements. -- Use OBS or `pavucontrol` to adjust the volume of BBB as needed. You might be able to manage `pavucontrol` off-screen with `ssh emacsconf-$TRACK@res.emacsconf.org -X -p $SSH_PORT pavucontrol`. -- You can also `ssh emacsconf-$TRACK@res.emasconf.org -p 46668` and start new processes from the command-line, such as using `track-mpv`. If you specify commands when you call SSH instead of using an interactive shell, you may need to also specify DISPLAY=:5 (for the gen track) or DISPLAY=:6 (for the dev track), since ssh won’t pick up the variables from `.bashrc`. -- If you have a Wayland-only desktop without any X11 compatibility layer (example: [Sway](https://swaywm.org) with `xwayland disable`) the suggested software (`tigervnc`) might no work. You can use instead for example `gnome-remote-desktop`. The password for the VNC connection can be retrieved from the file `vnc-passwd-$TRACK` (3DES encrypted). - - -### Managing the stream from the agenda (option B2) - -ssh orga@res.emacsconf.org -p $SSH\_PORT -emacsconf # runs emacsclient -c -a emacs - -You can then use - -- emacsconf-stream-play-video -- emacsconf-stream-open-qa-windows-on-change -- emacsconf-agenda-by-track -- emacsconf-agenda - -If things are going well, you can use C-c C-t on the agenda view to change a talk to PLAYING, CLOSED\_Q, or OPEN\_Q, and various things should happen in the background. If they don’t happen in the background, use emacsconf-add-org-after-todo-state-change-hook to add the todo state change hook, then try again. - -Task state shortcuts for C-c C-t: - -- **m (mpv):** PLAYING - -stream-play-video, emacsconf-stream-set-talk-info, publish the files to the media directory -- **q (Q&A):** CLOSED\_Q -- **o (open):** update the BBB redirect URLs to let people into the room -- u (unstreamed) -- r (to archive) - -You can leave the emacsclient with `C-x 5 0` - - -#### Do Q&A - -From the emacsclient on orga@res.emacsconf.org, you can open various talk-related things: - -- emacsconf-stream-open-pad -- emacsconf-stream-join-qa -- emacsconf-stream-join-chat - -Alternatively, you can switch to the VNC viewer and use the links in -<file:///data/emacsconf/2022/index-gen.html> or -<file:///data/emacsconf/2022/index-dev.html> . - -For Q&A, you may want to have the Etherpad on the left, the BBB Q&A or -IRC chat on the right, and the terminal and OBS windows on -workspace 2. - - -### Other tasks as needed - - -#### Display emergency news / announcements - -M-x emacsconf-stream-broadcast to send a message to both streams -or M-x emacsconf-stream-set-news to send a message to one stream. - -If that doesn’t work, edit the news file directly with: -`ssh emacsconf-$TRACK@res.emacsconf.org > ~/news.txt` - -If that doesn’t work, use the VNC session to switch to an Emacs window -and type your message in. - - -#### Kill the VNC server: - -ssh emacsconf-$TRACK@res.emacsconf.org “vncserver -kill” - -<table border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides"> - - -<colgroup> -<col class="org-left" /> - -<col class="org-left" /> -</colgroup> -<tbody> -<tr> -<td class="org-left">~/bin/track-obs</td> -<td class="org-left">start OBS with the track’s profile and scene collection</td> -</tr> - - -<tr> -<td class="org-left">~/bin/track-mpv file.webm</td> -<td class="org-left">play the file using the track’s sink</td> -</tr> -</tbody> -</table> - - -#### Making OBS scenes - -Making OBS scenes is pretty straightforward as you can move the -different blocks on your scene in the preview window. However, it’s -important to make sure that your video-captures and your overlays are -snapping properly to the edges of the view-port. To do this, make sure -to right-click on the block inside the preview window, and try the -different fitting options (fit by width, height, etc.) until you find -one that works best. - -We’ll probably be streaming at 720p, but since we’re also considering -a 1080p update, try to create your overlays in a format or a resolution -that would support resizing. - - -### Other notes - -There are sockets in the home directory for MPV control if you want to keep that process. -echo ’{ “command”: [“loadfile”, “test2.webm”] }’ | socat - ~/mpv-socket-emacsconf-dev - - -### TODO Test and document command-line way of managing audio :sachac: - - -### DONE Move my conf.org setup to res so that we can control everything from there - - -### DONE Set timers for changing todo state - - (defun emacsconf-schedule-test-buffer (info) - (mapcar (lambda (o) (plist-put o :buffer "1") o) info)) - (let ((emacsconf-schedule-strategies '(emacsconf-schedule-test-buffer))) - (emacsconf-stream-schedule-timers (emacsconf-schedule-prepare - (emacsconf-schedule-inflate-sexp - `(("Test gen" :start ,(format-time-string "%Y-%m-%d %H:%M" - (time-add (current-time) (seconds-to-time 60)))) - (journalism :time "1") - (school :time "2") - (handwritten :time "1") - ("Test dev" :start ,(format-time-string "%Y-%m-%d %H:%M" - (time-add (current-time) (seconds-to-time 60)))) - (treesitter :time "2") - (lspbridge :time "1") - (asmblox :time "1")))))) - -the dev one worked, but the gen one gets -Couldn’t find local shell prompt for /bin/sh -Tramp: Opening connection **Async Shell Command** for emacsconf-gen@res.emacsconf.org using ssh…failed - -Maybe I need to stagger them, or maybe I need to use a shell command. -Changed to call ssh directly instead of using tramp. - - -### DONE Figure out how to work with the layout - -<https://i3wm.org/docs/layout-saving.html> - - -### DONE Allow per-track configuration of todo hooks :sachac: - -emacsconf-todo-hooks - - -### CANCELLED Use xdotool to automate joining BBB in Firefox (signing in, clicking on listen only) - - -### CANCELLED Experiment with sharing part of the screen so that there’s space for us to work a little off-screen - -We might just have to rely on xdotool to move windows the way we want them -Window fixes that didn’t work - -- <https://obsproject.com/forum/threads/solved-window-capture-black-screen.47082/> -- <https://www.reddit.com/r/obs/comments/kas5ka/obs_window_capture_xcomposite_black_screen/> - - -### DONE Set up scenes and try them - - -### DONE Set up text source for URL - - -### DONE Create Ansible tasks for setting up sinks for MPV and Firefox for the streams, and adding the scenes appropriately - - -### DONE See if I can even Ansible-up the rest of the tasks - -like starting up Firefox and mpv and everything - - -### TODO obs-websocket control of OBS on the server - -so that the streamer can adjust volume offscreen? - - -### TODO document such that someone else could use/fix it - - -### Other notes - -- bandali doesn’t have much cognitive bandwidth at the moment, so we can keep things simple with OBS on laptops - -- Issue: zaeph was dropping frames and couldn’t pay attention to as many things as he wanted -- Issue: corwin needs assistance to not be locked in his chair for the whole conf. Premptively, zaeph can do it by broadcasting OBS scenes via the rtmp (instead of just his webcam). -- With a long day, we may want to be able to schedule hosts/streamers/publishers in shifts -- Ideal: Easy reproducible setup to spin up an OBS VM with scenes set up, allowing multiple users to connect to it at the same time. Maybe x2go or vnc? VMs with 8 vCPUs and a vGPU cost more, so it would be good to figure out what’s needed, spin it down, and then spin it up maybe the day before or something like that. -- Plus points if we can control the OBS via password-protected websocket so we can tell it to switch scenes (and even more points if we do so from Emacs, maybe via that obs-websocket.el ;) ). MPV is also controllable via IPC, so we can use the same MPV player and then switch videos around. Maybe mpvc? <https://unix.stackexchange.com/questions/664728/how-can-i-control-mpv-in-command-line> -- Probably Linode’s Dedicated 32 GB + RTX6000 GPU x1 at $1.50 an hour for 2-3 days + dev time, since live.emacsconf.org is in Linode as well -- We should also look into normalization across the board, especially if we have BBB participants. pipewire + easyeffects on the box might be the easiest way to do it. - -- <https://docs.vdo.ninja/> -- Live Streaming using low configuration vps <https://www.youtube.com/watch?v=3iBYYgkG1eM&t=953> -- <https://snowmix.sourceforge.io/Examples/input.html> -- <https://www.google.com/url?sa=t&source=web&rct=j&url=https://m.youtube.com/watch%3Fv%3D1y-DUYiECWQ&ved=2ahUKEwjPru_TqOv6AhVMkokEHXL9Dm4QtwJ6BAgqEAI&usg=AOvVaw17mbCEiFL6dGVY4YEBufcy> -- [OBS Studio 26.0 | Hacker News](https://news.ycombinator.com/item?id=24633139) -- <https://github.com/mviereck/x11docker#sound> -- <https://vcs.fsf.org/?p=streamdesktop.git;a=tree> -- <https://opensource.com/article/20/5/conference-free-software> -- <https://github.com/soonum/hubangl> -- <https://obsproject.com/forum/threads/run-obs-on-vm-in-the-cloud.122543/> - - -### TODO recruit at least one more person to help operate the “video bouncer” - - -<a id="mumble"></a> - -## TODO Use Mumble for backchannel coordination and also on-stage - - -### TODO E-mail volunteers and help them get on Mumble :bandali: - -- [ ] FlowyCoder -- [ ] jman -- [ ] vetrivln - - -### TODO Update the Mumble setup :bandali: - -- [ ] Add emacsconf-gen and emacsconf-dev channels -- [ ] Give the emacsconf-gen and emacsconf-dev users access to them -- [ ] Give the other organizers access to emacsconf-gen, emacsconf-dev, and org-private - - -### DONE Generate certificates, add them to conf.org, and register the users :sachac: - - -<a id="volunteer-2022-11-14"></a> - -## Volunteer update - -- talk banners, akshay - - -<a id="hyperlist"></a> - -## DONE Make a linear hyperlist for managing EmacsConf :sachac: - -Goal: - -- Volunteers should be able to coordinate everything by stepping through a linear list of things to do -- The hyperlist will primarily live on orga@res.emacsconf.org and be accessed through emacsclient. (Maybe sat.org and sun.org) -- Volunteers should be able to take breaks as needed - -- 9:05 Journalism - - [ ] Check ${name} into <span class="underline">BBB room</span> - - [X] [Start talk]((emacsconf-update-talk-status "journalism" "." "PLAYING")) - - [X] [Start closed Q&A]((emacsconf-update-talk-status "journalism" "." "CLOSED_Q")) - - [ ] [Open Q&A]((emacsconf-update-talk-status "journalism" "." "OPEN_Q")) - - [ ] [Mark Q&A as unstreamed]((emacsconf-update-talk-status "journalism" "." "UNSTREAMED_Q")) - - [ ] [Finish talk]((emacsconf-update-talk-status "journalism" "." "TO_ARCHIVE")) -- 9:40 Handwritten - - [ ] [Start talk]((emacsconf-update-talk-status "handwritten" "." "PLAYING")) - - [ ] [Start closed Q&A]((emacsconf-update-talk-status "handwritten" "." "CLOSED_Q")) - - [ ] [Open Q&A]((emacsconf-update-talk-status "handwritten" "." "OPEN_Q")) - - [ ] [Mark Q&A as unstreamed]((emacsconf-update-talk-status "handwritten" "." "UNSTREAMED_Q")) - - [ ] [Finish talk]((emacsconf-update-talk-status "handwritten" "." "TO_ARCHIVE")) - -See sat.org and sun.org in the conf private repo - -Try them in an Etherpad - -<https://media.emacsconf.org/2022/backstage/index-gen.html> -<https://media.emacsconf.org/2022/backstage/index-dev.html> -<https://media.emacsconf.org/2022/backstage/hyperlists/> - -[How do we want to coordinate during the conference itself?](#coordination) - - -### DONE Try writing it to an Etherpad - - <a id="maybe-projects"></a> # Projects to bear in mind but which are not actual -## STANDBY Find a way to accommodate a specific return-speaker +## DONE Find a way to accommodate a specific return-speaker We’re not sure if we’re going to get a presentation or a prerec for them this year, but we need to keep this at the back of our minds. @@ -1833,15 +1134,11 @@ Note on how DebConf handled incidents: - [How do we want to coordinate during the conference itself?](#coordination) - [How do we want to make the full schedule more manageable?](#sched-decision) - [How much do we want to enrich the wiki with JS?](#wiki-design) -- [What ideas do we want to borrow from other conferences?](#other-confs) -- [Do we want to make the ikiwiki web-editable?](#cgi) - [How do we want to make better use of Etherpad?](#pad-decision) - [Can we nudge people to ask IRC questions in a way that will make it easier for us to follow them?](#irc-markers) -- [How many BBB rooms do we want to set up?](#bbb-rooms) -- [How easy do we want to make it to join the BBB session?](#bbb-join) -- [How do we want to name the BBB rooms?](#bbb-name) - [Do we want people to advertise any openings with their companies or any work that they’re looking for?](#advertising) - [Decision archive](#decision-archive) +- [Think about what to do with schedule gaps due to cancelled talks](#schedule-gaps):thoughts: <a id="coordination"></a> @@ -1925,60 +1222,22 @@ Ideas to consider: - Improve the video player (resolution switching? chapter markers?) - <https://github.com/sampotts/plyr> for video? -### BLOCKED ?: Figure out JS and CSS niceties that will make organizers-notebook more enjoyable to browse through :css:js: +### SOMEDAY ?: Figure out JS and CSS niceties that will make organizers-notebook more enjoyable to browse through :css:js: - TODO/DONE/etc. keyword highlighting? - Collapsible sections? -### BLOCKED ?: Find a way to add JS libraries to the wiki but shield them from anon editing :js: +### SOMEDAY ?: Find a way to add JS libraries to the wiki but shield them from anon editing :js: gitolite should have some options to do this -### BLOCKED ?: Beautify video players :js:css: +### SOMEDAY ?: Beautify video players :js:css: Might not be necessary. -<a id="other-confs"></a> - -## What ideas do we want to borrow from other conferences? - -- FOSDEM had a conference track - - <https://archive.fosdem.org/2022/schedule/track/conference_organisation/> -- DebConf - - Thorough documentation at <https://debconf-video-team.pages.debian.net/docs/> - - <https://debconf-video-team.pages.debian.net/docs/online_volunteer_roles.html> - - Ansible: <https://salsa.debian.org/debconf-video-team/ansible> , <https://debconf-video-team.pages.debian.net/ansible> - - SReview for cutting videos? - - <https://wiki.debian.org/Teams/DebConf/Video/Subtitles> - - Pentabarf <https://lists.debian.org/debconf-team/2008/08/msg00147.html> - - Schedule shows local time and DebConf time: <https://debconf21.debconf.org/schedule/> -- LibrePlanet <https://libreplanet.org/2022/> - - - libreadventure, minetest? - - - <https://www.collabmagazine.com/organizing-a-multi-track-virtual-conference-with-microsoft-teams-live-events-a-technical-playbook-and-lessons-learned/> : 4-person team, post-prod, break commercials - - -<a id="cgi"></a> - -## Do we want to make the ikiwiki web-editable? - -Pain points: - -- Speakers usually ended up going through us - -Options: - -- Web-editable: - - Speakers and general public will be able to edit it more easily -- Git: (current) - - Haven’t had a problem with spam - - Reduces merge conflict potential - - <a id="pad-decision"></a> ## How do we want to make better use of Etherpad? @@ -2052,9 +1311,67 @@ Ideas: - Maybe a volunteer can have an ERC command that copies a question into a buffer, or even into the Etherpad -<a id="bbb-rooms"></a> +<a id="advertising"></a> + +## Do we want people to advertise any openings with their companies or any work that they’re looking for? + +- Speakers on their page? +- General audience on a wiki page somewhere? + + +<a id="decision-archive"></a> + +## Decision archive + -## How many BBB rooms do we want to set up? +### Where should volunteers e-mail? + +- **Default to emacsconf-org and offer emacsconf-org-private as an option** +- emacsconf-org-private + - less public, e.g. if for whatever reason we might have to decline an offer of help + - Also, some people want to volunteer but do not want to be in the public’s eye. +- emacsconf-org + - If you’re thinking about the enticement factor of having people + volunteer publicly, we’ll still have a well-furnished list of people + helping us run the conf somewhere on the wiki. [11:22] + - i would think if someone doesn’t want to do it publicly, they could + opt to write to -org-private instead, but otherwise the defacto + should be public (-org) + - i just think most folks would want to do this publicly unless for + specific reasons, rather than the other way around + + +### CANCELLED Do we want to do alt-stream the same way again this year? + +Superseded by decision to have multiple tracks + +- Alt stream joins the current session and then continues with it until the Q&A finishes; people join the BBB room if they want to ask questions + - Nice and convivial, Q&A still gets captured + - Inertia means most people get the main message +- Multiple streams with more space between talks, people choose which stream they want to watch + - How other conferences do it + - Speakers can attend related talks more easily + + +### DONE Shall we put a generic e-mail address for sending feedback, maybe with different mailtos? + +Pain points: + +- Many talk pages don’t have public e-mail addresses, so it takes a + little extra work (or is sometimes impossible) for people to follow + up if they have questions + +Options: + +- Do nothing (current) +- Add a mailto link to emacsconf-discuss that prepopulates the subject +- Add a mailto link to emacsconf-org + - Wider discussion +- **Add a mailto to emacsconf-org-private** + - Private feedback that can be forwarded to the speaker + + +### DONE How many BBB rooms do we want to set up? - One per talk - We can send speakers a direct link to their room and they can check into it themselves @@ -2066,9 +1383,7 @@ Ideas: - Worked fine last time -<a id="bbb-join"></a> - -## How easy do we want to make it to join the BBB session? +### DONE How easy do we want to make it to join the BBB session? Considerations: @@ -2098,14 +1413,12 @@ M-x emacsconf-publish-bbb-redirect to update the redirect for a single talk M-x emacsconf-publish-bbb-redirect-all updates all the redirects -### TODO Add nginx redirect from emacsconf.org +#### DONE Add nginx redirect from emacsconf.org /ssh:front|sudo::/etc/nginx/sites-available/emacsconf.org -<a id="bbb-name"></a> - -## DONE How do we want to name the BBB rooms? +### DONE How do we want to name the BBB rooms? Needs to be easy to: @@ -2118,64 +1431,49 @@ Needs to be easy to: ec22-sat-am-dev Speaker Name (slugs) -<a id="advertising"></a> - -## Do we want people to advertise any openings with their companies or any work that they’re looking for? - -- Speakers on their page? -- General audience on a wiki page somewhere? - - -<a id="decision-archive"></a> - -## Decision archive +### SOMEDAY Do we want to make the ikiwiki web-editable? +Pain points: -### Where should volunteers e-mail? +- Speakers usually ended up going through us -- **Default to emacsconf-org and offer emacsconf-org-private as an option** -- emacsconf-org-private - - less public, e.g. if for whatever reason we might have to decline an offer of help - - Also, some people want to volunteer but do not want to be in the public’s eye. -- emacsconf-org - - If you’re thinking about the enticement factor of having people - volunteer publicly, we’ll still have a well-furnished list of people - helping us run the conf somewhere on the wiki. [11:22] - - i would think if someone doesn’t want to do it publicly, they could - opt to write to -org-private instead, but otherwise the defacto - should be public (-org) - - i just think most folks would want to do this publicly unless for - specific reasons, rather than the other way around +Options: +- Web-editable: + - Speakers and general public will be able to edit it more easily +- Git: (current) + - Haven’t had a problem with spam + - Reduces merge conflict potential -### CANCELLED Do we want to do alt-stream the same way again this year? -Superseded by decision to have multiple tracks +### DONE What ideas do we want to borrow from other conferences? -- Alt stream joins the current session and then continues with it until the Q&A finishes; people join the BBB room if they want to ask questions - - Nice and convivial, Q&A still gets captured - - Inertia means most people get the main message -- Multiple streams with more space between talks, people choose which stream they want to watch - - How other conferences do it - - Speakers can attend related talks more easily +- FOSDEM had a conference track + - <https://archive.fosdem.org/2022/schedule/track/conference_organisation/> +- DebConf + - Thorough documentation at <https://debconf-video-team.pages.debian.net/docs/> + - <https://debconf-video-team.pages.debian.net/docs/online_volunteer_roles.html> + - Ansible: <https://salsa.debian.org/debconf-video-team/ansible> , <https://debconf-video-team.pages.debian.net/ansible> + - SReview for cutting videos? + - <https://wiki.debian.org/Teams/DebConf/Video/Subtitles> + - Pentabarf <https://lists.debian.org/debconf-team/2008/08/msg00147.html> + - Schedule shows local time and DebConf time: <https://debconf21.debconf.org/schedule/> +- LibrePlanet <https://libreplanet.org/2022/> + + - libreadventure, minetest? + + - <https://www.collabmagazine.com/organizing-a-multi-track-virtual-conference-with-microsoft-teams-live-events-a-technical-playbook-and-lessons-learned/> : 4-person team, post-prod, break commercials -### DONE Shall we put a generic e-mail address for sending feedback, maybe with different mailtos? +<a id="schedule-gaps"></a> -Pain points: +## SOMEDAY Think about what to do with schedule gaps due to cancelled talks :thoughts: -- Many talk pages don’t have public e-mail addresses, so it takes a - little extra work (or is sometimes impossible) for people to follow - up if they have questions +- just leave it on the in-between slide: no extra effort required +- host breakout rooms -Options: -- Do nothing (current) -- Add a mailto link to emacsconf-discuss that prepopulates the subject -- Add a mailto link to emacsconf-org - - Wider discussion -- **Add a mailto to emacsconf-org-private** - - Private feedback that can be forwarded to the speaker +### SOMEDAY Consider fillers covering conference stuff :thoughts: <a id="roles"></a> @@ -2280,7 +1578,7 @@ AM: 9-12 PM EST, PM: 1-5 PM EST (plus a little extra for setup/transition) Saturday Dec 3 -<table id="org213d4fb" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides"> +<table id="org12e0313" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides"> <colgroup> @@ -2353,7 +1651,7 @@ publicvoit - pad until 4pm on Sat, until 2pm on Sun Sunday Dec 4 -<table id="org38317d3" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides"> +<table id="org206cfa6" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides"> <colgroup> @@ -2701,7 +1999,7 @@ We tried using q56 before, but it was a little too aggressive. Q=32 is the defau ### Confirmation e-mail -#### TODO Make sure all submissions have been acknowledged +#### DONE Make sure all submissions have been acknowledged - [X] sibi - [X] vidianos @@ -2712,8 +2010,8 @@ We tried using q56 before, but it was a little too aggressive. Q=32 is the defau - [X] andrew - [X] zachary for asmblox (reception confirmed by zaeph, and no problem with video) -- [ ] ramin (ack’d by zaeph) -- [ ] abin (meain, ack’d by zaeph) +- [X] ramin (ack’d by zaeph) +- [X] abin (meain, ack’d by zaeph) <a id="ack-prerec"></a> @@ -3175,6 +2473,18 @@ Exception: [CHECK is unavailable](#check-gone) - wiki page for talk +#### TODO Make sure VTTs only get published when they’re edited + + +##### publishing + + +##### webm + + +##### media directory + + ### Handle Q&A Exceptions: @@ -3399,7 +2709,7 @@ Probably focus on grabbing the audio first and seeing what’s worth keeping Make a table of the form -<table id="org11cfc34" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides"> +<table id="orgc90a9b8" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides"> <colgroup> @@ -3499,6 +2809,19 @@ Make a table of the form sudo -iu ikiwiki – ikiwiki –setup ~ikiwiki/emacsconf.setup +### Cancelled talk + +1. Update conf.org to mark the talk as cancelled. +2. Update the `schedule-choices` block to fix the time for the following talk, or recalculate all the schedules. Check for any validation errors in the `:results:` block. +3. When you’re happy with the schedule, run the `draft-schedule` block. +4. Update the talk page to add CANCELLED to the title. +5. Publish the wiki and doublecheck it. + - Talk gone from the schedule? + - Talk listed among the cancelled talks? + - Talk page has cancelled info? +6. Remove the talk from the [one-track emergency schedule](#one-track) + + ### Last-minute prerecording submission - CHECK will copy it from the FTP upload server to ${protected} and name it appropriately. @@ -4108,8 +3431,6 @@ you and you want me to fix it) Sacha -<a id="volunteer-2022-10-09"></a> - ## DONE Volunteer communications: E-mail update for Oct 9, 2022 :email:volunteers: Add your news and requests to this. @@ -4790,6 +4111,888 @@ chatter in the other lists cc’d in this message; thank you. ## DONE Flesh out prepare.md for audio-recording tips before the prerec-deadline :zaeph: +## DONE Write speaker e-mail for people who have already submitted their talks + +To: speakers who have already submitted their talks (so that we don’t distract people who are still working on their talks) + + (defun emacsconf-mail-speaker-after-video (group &optional template) + (interactive (list (emacsconf-mail-complete-email-group + (seq-filter (lambda (o) (plist-get o :intro-note)) + (emacsconf-active-talks (emacsconf-get-talk-info)))))) + (setq template (or template (emacsconf-mail-merge-get-template "speaker-after-video"))) + (let ((talks (cdr group))) + (emacsconf-mail-prepare + template + (car group) + (list :speakers-short (plist-get (cadr group) :speakers-short) + :plural (if (= (length (cdr group)) 1) "" "s") + :email (plist-get (cadr group) :email) + :in-between (mapconcat (lambda (talk) + (emacsconf-surround "<https://media.emacsconf.org/2022/in-between/" (plist-get talk :slug) ".png>" "")) + (cdr group) + ", ") + :intro + (mapconcat (lambda (talk) + (string-join (org-wrap (emacsconf-surround "- " (plist-get talk :intro-note) "\n" "") 70) "\n")) + (cdr group) + "") + :chapters + (mapconcat (lambda (talk) + (format "<https://media.emacsconf.org/2022/backstage/#%s>:\n%s" + (plist-get talk :slug) + (mapconcat + (lambda (chapter) + (concat (format-seconds "%.2h:%z%.2m:%.2s" + (floor (/ (elt chapter 1) 1000))) + " " + (elt chapter 3) "\n")) + (subed-parse-file + (expand-file-name (concat (plist-get talk :video-slug) "--main--chapters.vtt") emacsconf-cache-dir))))) + (cdr group) + "\n\n") + :caption-note + (if (seq-find (lambda (o) (not (string= (plist-get o :status) "TO_STREAM"))) (cdr group)) + " The captions haven't been fully edited yet, so please ignore any errors in the captions themselves." + "") + :urls + (mapconcat (lambda (o) (concat "<" emacsconf-base-url (plist-get o :url) ">")) + (cdr group) " , ") + :tech-check-note + (if (string-match "live" (or (mapconcat (lambda (o) (or (plist-get o :q-and-a) "")) (cdr group) " ") "")) + (format + "*Tech check* + + Since you're planning to do a live Q&A session, you may want to + connect to the test BBB room at <%s> to make sure you can share + your audio, your window or screen, and your webcam (optional). Sharing + system audio or multi-monitor setups can sometimes be tricky, so + please let us know if you need help figuring things out. You can + double-check by connecting with a separate device, or you can arrange + to meet with one of the tech-check volunteers + (<https://emacsconf.org/2022/prepare/#tech-check>).${wrap} + + " emacsconf-test-bbb-room) ""))) + (add-hook 'message-sent-hook + `(lambda () + (mapc (lambda (o) + (emacsconf-add-to-talk-logbook o "Sent speaker-after-video email")) + (list + ,@(mapcar (lambda (talk) (plist-get talk :slug)) talks)))) + nil t))) + + (defun emacsconf-mail-speakers-after-videos () + (interactive) + (let* ((info (seq-filter (lambda (o) (plist-get o :intro-note)) + (emacsconf-active-talks (emacsconf-get-talk-info)))) + (grouped (seq-group-by (lambda (o) (plist-get o :email)) info)) + (template (emacsconf-mail-merge-get-template "speaker-after-video"))) + (mapc (lambda (group) + (emacsconf-mail-speaker-after-video group template)) + grouped))) + + +### Template + +Hi, ${speakers-short}! + +Thank you for uploading your video early! Let’s get a few more things +sorted out for a smooth EmacsConf 2022. + +${tech-check-note}\*Intro\* + +I’ve written a brief (and possibly inaccurate! =) ) intro that the +host can read out before your talk while the in-between slide +(${in-between}) is being displayed: + +${intro} + +Would you like to tweak it to better reflect your talk? + +**Chapter markers** + +I’ve added chapter markers to your video in the backstage area to help +with navigation. You can click on them in the backstage area if you +want to easily jump around, or review the list that I’ve included for +your convenience: + +${chapters} +If you prefer other headings or timestamps, please let me know!${caption-note} + +**Bio, community support links** + +People often want to learn more about speakers and show their +appreciation. If you’d like to include an author bio and any +social/support links to your talk page${plural} (${urls}), please +e-mail us the text that you’d like to include. You can also follow the +instructions at <https://emacsconf.org/edit/> to edit your talk +page${plural} directly yourself, if you want to.${wrap} + +Thanks again for all your contributions! + +Sacha + + +<a id="prepare-prerec-process"></a> + +## DONE Prepare for prerecs :zaeph: + + +### DONE Optimize ffmpeg incantation + +Remember to update <../prepare.md> with the new incantation. + + +#### Incantation from last year + + Q=32 + ffmpeg -y -i "$1" -c:v libvpx-vp9 -b:v 0 -crf $Q -aq-mode 2 -an -tile-columns 0 -tile-rows 0 -frame-parallel 0 -cpu-used 8 -auto-alt-ref 1 -lag-in-frames 25 -g 240 -pass 1 -f webm -threads 8 /dev/null && + ffmpeg -y -i "$1" -c:v libvpx-vp9 -b:v 0 -crf $Q -c:a copy -tile-columns 2 -tile-rows 2 -frame-parallel 0 -cpu-used -5 -auto-alt-ref 1 -lag-in-frames 25 -pass 2 -g 240 -threads 8 "$2" + + +#### New candidate + +Changelog: + +- Disable adaptive quantization by setting aq-mode to 0 (TODO: compare samples) +- Add `-row-mt 1` needed to support `tile-rows` (2×2 is enough for 720p) +- Also use tiles for first pass +- Remove `-frame-parallel 0` because it’s disabled by default (see [Notes on encoding settings · Kagami/webm.py Wiki](https://github.com/Kagami/webm.py/wiki/Notes-on-encoding-settings)) +- Put number of CPU in variable and use it for `cpu-used` and `threads` +- Stick to default for `auto-alt-ref` +- Stick to default for `lag-in-frames` + + Q=32 + CPU=8 + ffmpeg -y -i "$1" -c:v libvpx-vp9 -b:v 0 -crf $Q -an -row-mt 1 -tile-columns 2 -tile-rows 2 -cpu-used $CPU -g 240 -pass 1 -f webm -threads $CPU /dev/null && + ffmpeg -y -i "$1" -c:v libvpx-vp9 -b:v 0 -crf $Q -c:a copy -row-mt 1 -tile-columns 2 -tile-rows 2 -cpu-used $CPU -pass 2 -g 240 -threads $CPU "$2" + +Other considerations: + +- We might want to tweak the time before keyframes (`-g`). + + +### DONE Figure out workflow for handling submitted prerecs + +We need time after the prerecs get submitted to: + +- convert the videos and check that they’ve been reencoded properly by watching the re-encoded ones all the way to the end +- caption videos +- capture any extra info +- follow up with missing prerecs + +Make changes in [As prerecorded talks come in](#prerec-process) + + +<a id="intro"></a> + +## DONE Make something to display between talks :akshay196: + +Goals: + +- Reassure people that they’re in the right stream for the talk that they’re looking for +- Direct them to the pad and Q&A for the talk + +What to show in between talks: + +- Previous talk: title, speaker, pronouns, talk page, Q&A information (if still live) +- Next talk: title, speaker, pronouns, talk page, Q&A information, countdown + +<https://media.emacsconf.org/2022/backstage/gen-in-between.pdf> +<https://media.emacsconf.org/2022/backstage/dev-in-between.pdf> + +- Good: Static image, maybe created with LaTeX +- Better: Video with unobtrusive sound so people can doublecheck that their audio works +- Best: Emacs thing so that we can have a dynamic timer and last-minute announcements, and so that it’s Emacs =) +- Even better than that: A compact view that can be overlaid on the Q&A session using OBS + +See break commercials +<https://www.collabmagazine.com/organizing-a-multi-track-virtual-conference-with-microsoft-teams-live-events-a-technical-playbook-and-lessons-learned/> + +OBS scenes (maybe?): + +- splash-screen when we’re on break +- scene when broadcasting a talk (where we might want a logo and a bar or surrounding to broadcast messages like time left in + recording); and +- Q&A scene with host-webcam, optional speaker-webcam, and pad with questions. +- Q&A scene focusing on shared screen from speaker +- Q&A scene with IRC and pad + +Nothing is urgent, blocking it, or being blocked by it, so you can +play around with ideas. + +We’re experimenting with two tracks this year, so we expect that some +people will join midway through a talk or Q&A session and +would like to reorient themselves. Some Q&A sessions may end +early, so we would like to reassure people that they’re in +the right spot for the next talk. Most Q&As will be done +live, but some Q&As will be done over IRC, so we need to +point people to the right place. + +and if there’s room for a little extra info like public e-mail +addresses or pronouns, that can help people when they discuss +things. That info will be in the pad and IRC, though, so it’s +also okay to omit it + +We can programmatically replace strings in +SVG from Emacs, so we can easily use that as an overlay. + +<zaeph> …Or, if you just want to focus on the look of +things, we can think of the content on our own. + +<sachac> oh yeah, totally, you can just focus on the design and use +placeholder text + +Overlay considerations: + +- talk videos will likely have subtitles; no subtitles for Q&A +- zaeph doesn’t like vertical text + + +### DONE Generate talk banners :sachac: + +![img](https://gitlab.com/akshay196/emacsconf-artwork/-/blob/main/2022/talk-banner/sample.svg) + + +## DONE Find volunteers for tech-checks :zaeph: + + +### DONE Add entry in 2022/volunteer.md + + +### DONE Write protocol for adding tech-checker volunteer + +- Invite volunteer to BBB (ask core organizers) +- Update <prepare.md> with new tech-checker info +- Coach tech-checker on the protocol + + +### DONE Write the tech-checking protocol (formerly referred to as “tech-checklist”) + +From previous years: + +> - Can you speak and be heard? Is there echo? +> - Can you hear the organizer? +> - Can you share your screen? Is the screen readable? +> - If you plan to show your keystrokes, is that display visible? +> - If you want to share your webcam (optional), can you enable it? Is it visible? Will there likely be distractions in the background? +> - Can you view the collaborative pad? Will you be comfortable reviewing questions on your own (perhaps by keeping it open beside your shared window), or will you need a volunteer to relay questions to you? +> - Can you share contact information (ex: phone number) so that we can get in touch with you in case of technical issues or scheduling changes? +> - Do you need help finding your way around IRC so that you can check into \`#emacsconf-org\`? What is your IRC nickname? + + +<a id="conforg"></a> + +## DONE Move conf.org management to orga@res.emacsconf.org :sachac: + +so that more people can work with it during the conference +See the publish role in the ansible playbook + + +## DONE Ask speakers for bios or support nudges to include on their talk pages :wiki: + +maybe after we get the prerecs +ex: liberapay, patreon, anyone looking for a job, etc. + + +## DONE Set up BBB rooms and update conf.org :sachac: + +1. Log on to bbb.emacsverse.org as an admin. +2. Create a room. Enable **Mute users when they join**. + + The code below doesn’t quite work, but might be a good starting point for future automation. + + (setq list (seq-drop (emacsconf-bbb-room-title-list) 3)) ; skip some if needed + (progn + (setq name (pop list)) + (kill-new (format "name=\"%s\";$('#create-room-block').click();$('#create-room-name').val(name);$('#room_mute_on_join').click();$('.create-room-button').click();\n" + name)) + (sleep-for 1) + (shell-command "xdotool key alt+Tab sleep 3 key ctrl+v sleep 1 key Return")) + +console.log(JSON.stringify([…document.querySelectorAll(’.delete-room’)].map((o) => { return { name: o.getAttribute(’data-name’), path: o.getAttribute(’data-path’) }}).filter((o) => o.name.match(*^ec22*)))) + +see conf.org for the rest of the process + + +### DONE Add volunteers to the BBB rooms + +- vetrivln: sat-am-dev, sun-am-dev +- FlowyCoder: sat-pm-gen, sun-pm-gen +- jman: sun-pm-gen + + +<a id="coordinate-volunteers"></a> + +## DONE Coordinate and help volunteers :sachac: + +- <../volunteer> +- Figure out what information volunteers need in order to feel + comfortable signing up for tasks. ex: + <https://wiki.debian.org/DebConf/21/VideoVolunteering> +- Encourage people to sign up for [Shifts](#shifts) + + +### DONE Plan training session(s), Q&A availability, recordings + + +### CANCELLED Hold Q&A session with volunteers + + +<a id="streaming"></a> + +## DONE Investigate streaming options, maybe OBS in the cloud :sachac: + +Current status: + +- res.emacsconf.org seems to be able to handle 2x (OBS + TigerVNC + MPV, should test with Firefox as well) +- corwin and jman will stream gen from OBS on res +- bandali will stream dev from his laptop +- let sachac know if you want manual control or more autopilot for the gen stream + +Goals: + +- [X] Be able to start a VNC server with OBS, MPV, and Firefox, connect to it, and stream +- [X] Have another session with the sound isolated +- [-] Split the audio so that we can join the Q&A room before the MPV ends - handled by automatic scene switcher detecting mpv, but we can’t share just a window, so we might as well just wait +- [X] Control MPV from the commandline: track-mpv appears in the correct display, and it can also be controlled via the socket like this: echo ’{ “command”: [“loadfile”, “test2.webm”] }’ | socat - ~/mpv-socket-emacsconf-dev +- [ ] Share the window instead of the desktop? + +Prerequisites: + +- You need to be able to SSH out to res.emacsconf.org on port 46668 + and forward ports, so one of the main organizers needs to add your + SSH public key to the authorized\_keys file. Please e-mail your SSH + public key to sacha@sachachua.com and test that port 46668 is not + blocked. +- For streaming from OBS in VNC, you will need a VNC viewer like + tigervnc-viewer. +- For streaming from your local computer, you will need OBS and FFmpeg. + +During the conference, you will: + +- play the talk video (unless it’s automatically managed by the agenda) and update the overlays +- display intro/intermission information as needed +- open the Q&A windows, like the pad and the BBB room/IRC (unless it’s automatically managed by the agenda) +- adjust the volume if needed +- arrange windows and focus the BBB room on the speaker’s webcam if needed +- if you like, you can be responsible for managing the track from conf.org on orga@res.emacsconf.org + +Dry run checklist: + +- [ ] Connect to the server + ssh orga@res.emacsconf.org -p 46668 + emacsconf # runs emacsclient -c -a emacs +- [ ] Forward ports and connect via VNC +- [ ] Find the OBS or start it if it is not running +- [ ] Start recording +- [ ] Play a video +- [ ] Open two Firefox windows and arrange them +- [ ] Manage windows on the workspace +- [ ] Adjust the volume in OBS +- [ ] SSH to the server and play a video off-screen +- [ ] SSH to the server with X forwarding and adjust the volume off-screen + + +### Broadcasting from local OBS (option A) + +- You can copy the profile from your track or look inside it for the icecast mount point details: + - Gen: rsync -avze ’ssh -p 46668’ emacsconf-gen@res.emacsconf.org:~/.config/obs-studio/basic/profiles/ ~/.config/obs-studio/basic/profiles/ + - Dev: rsync -avze ’ssh -p 46668’ emacsconf-dev@res.emacsconf.org:~/.config/obs-studio/basic/profiles/ ~/.config/obs-studio/basic/profiles/ + +- Sacha will turn off the OBS recordings on res so that you can test streaming from your computer + - If you’re doing this independently, you can jump ahead to “Connecting to VNC” in order to stop the recording yourself + +- Verify with MPV: + + mpv https://live0.emacsconf.org/emacsconf/gen.webm + mpv https://live0.emacsconf.org/emacsconf/dev.webm + +- With luck, the 480p streams will be up automatically as well + + mpv https://live0.emacsconf.org/emacsconf/gen-480p.webm + mpv https://live0.emacsconf.org/emacsconf/dev-480p.webm + + +### Connecting to VNC (option B) + +1. Stop broadcasting locally if you were testing local OBS. + +2. Install a VNC viewer on your system (ex: tigervnc-viewer). + +3. Set up your local environment: + - gen: export TRACK=gen; export TRACK\_PORT=5905; export SSH\_PORT=46668 + - dev: export TRACK=dev; export TRACK\_PORT=5906; export SSH\_PORT=46668 + +4. Copy the password: + + scp emacsconf-$TRACK@res.emacsconf.org:~/.vnc/passwd vnc-passwd-$TRACK -p $SSH\_PORT + +5. Forward your local ports and connect via VNC viewer to the + appropriate forwarded port from your laptop: + + ssh emacsconf-$TRACK@res.emacsconf.org -N -L $TRACK_PORT:127.0.0.1:$TRACK_PORT -p $SSH_PORT & + sleep 5 # Give it time to establish the tunnels + xvncviewer 127.0.0.1:$TRACK_PORT -shared -geometry 1280x720 -passwd vnc-passwd-$TRACK & + + (If this doesn’t find a VNC server to connect to, you can start it with `ssh emacsconf-$TRACK@res.emacsconf.org -p $SSH_PORT /home/emacsconf-$TRACK/bin/track-vnc`) + +6. Start **recording** (not streaming). If you don’t see OBS when you connect, it’s probably on workspace 2, so you can switch with Alt-2. If you still don’t see it there, you can open a terminal with Alt-Enter and then run `track-obs`. After you start recording, confirm that it is now broadcasting to the stream. + +7. Verify with MPV on your local system: + + mpv https://live0.emacsconf.org/emacsconf/$TRACK.webm & + +8. With luck, the 480p streams will be up automatically as well. On your local system: + + mpv https://live0.emacsconf.org/emacsconf/$TRACK-480p.webm & + +9. Play a video. It should display the video and update the overlays. If you need to update the overlays manually, you can copy files from `/data/emacsconf/overlays` onto `$HOME/other.png` and `$HOME/video.png`. + + You can play a video with `play video-id` (ex: `play meetups`), or you can specify the filename (ex: ~play ~/stream/emacsconf-2022-meetups\*.webm). + + termit: Ctrl-Shift-t makes a new tab + + i3 cheat sheet: + + - Alt-Enter creates a terminal + - Alt-d runs a command + - Alt-e toggles horizontal/vertical split + - Alt-f toggles full-screen + - Alt-w switches to tabbed view + - Alt-1 switches to workspace 1, Alt-2 switches to workspace 2 + - Alt-Shift-2 moves things to workspace 2 + - Alt-Shift-Left moves the current window to the left + - Alt-Shift-Right moves the current window to the right + +10. Test Q&A. You can either wait for the video to finish or quit it with “q”. + You can paste in the URLs or use + `firefox /data/emacsconf/2022/index-$TRACK.html` + +11. Test adjusting the audio + - `ssh emacsconf-$TRACK@res.emacsconf.org -p 46668` + - Then use `qa-louder`, `qa-quieter`, or `qa-vol vol%` (ex: `qa-vol 90%`) + +Other notes and tips: + +- You can use Emacs for emergency or ad-hoc announcements. +- Use OBS or `pavucontrol` to adjust the volume of BBB as needed. You might be able to manage `pavucontrol` off-screen with `ssh emacsconf-$TRACK@res.emacsconf.org -X -p $SSH_PORT pavucontrol`. +- You can also `ssh emacsconf-$TRACK@res.emasconf.org -p 46668` and start new processes from the command-line, such as using `track-mpv`. If you specify commands when you call SSH instead of using an interactive shell, you may need to also specify DISPLAY=:5 (for the gen track) or DISPLAY=:6 (for the dev track), since ssh won’t pick up the variables from `.bashrc`. +- If you have a Wayland-only desktop without any X11 compatibility layer (example: [Sway](https://swaywm.org) with `xwayland disable`) the suggested software (`tigervnc`) might no work. You can use instead for example `gnome-remote-desktop`. The password for the VNC connection can be retrieved from the file `vnc-passwd-$TRACK` (3DES encrypted). + + +### Managing the stream from the agenda (option B2) + +ssh orga@res.emacsconf.org -p $SSH\_PORT +emacsconf # runs emacsclient -c -a emacs + +You can then use + +- emacsconf-stream-play-video +- emacsconf-stream-open-qa-windows-on-change +- emacsconf-agenda-by-track +- emacsconf-agenda + +If things are going well, you can use C-c C-t on the agenda view to change a talk to PLAYING, CLOSED\_Q, or OPEN\_Q, and various things should happen in the background. If they don’t happen in the background, use emacsconf-add-org-after-todo-state-change-hook to add the todo state change hook, then try again. + +Task state shortcuts for C-c C-t: + +- **m (mpv):** PLAYING - -stream-play-video, emacsconf-stream-set-talk-info, publish the files to the media directory +- **q (Q&A):** CLOSED\_Q +- **o (open):** update the BBB redirect URLs to let people into the room +- u (unstreamed) +- r (to archive) + +You can leave the emacsclient with `C-x 5 0` + + +#### Do Q&A + +From the emacsclient on orga@res.emacsconf.org, you can open various talk-related things: + +- emacsconf-stream-open-pad +- emacsconf-stream-join-qa +- emacsconf-stream-join-chat + +Alternatively, you can switch to the VNC viewer and use the links in +<file:///data/emacsconf/2022/index-gen.html> or +<file:///data/emacsconf/2022/index-dev.html> . + +For Q&A, you may want to have the Etherpad on the left, the BBB Q&A or +IRC chat on the right, and the terminal and OBS windows on +workspace 2. + + +### Other tasks as needed + + +#### Display emergency news / announcements + +M-x emacsconf-stream-broadcast to send a message to both streams +or M-x emacsconf-stream-set-news to send a message to one stream. + +If that doesn’t work, edit the news file directly with: +`ssh emacsconf-$TRACK@res.emacsconf.org > ~/news.txt` + +If that doesn’t work, use the VNC session to switch to an Emacs window +and type your message in. + + +#### Kill the VNC server: + +ssh emacsconf-$TRACK@res.emacsconf.org “vncserver -kill” + +<table border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides"> + + +<colgroup> +<col class="org-left" /> + +<col class="org-left" /> +</colgroup> +<tbody> +<tr> +<td class="org-left">~/bin/track-obs</td> +<td class="org-left">start OBS with the track’s profile and scene collection</td> +</tr> + + +<tr> +<td class="org-left">~/bin/track-mpv file.webm</td> +<td class="org-left">play the file using the track’s sink</td> +</tr> +</tbody> +</table> + + +#### Making OBS scenes + +Making OBS scenes is pretty straightforward as you can move the +different blocks on your scene in the preview window. However, it’s +important to make sure that your video-captures and your overlays are +snapping properly to the edges of the view-port. To do this, make sure +to right-click on the block inside the preview window, and try the +different fitting options (fit by width, height, etc.) until you find +one that works best. + +We’ll probably be streaming at 720p, but since we’re also considering +a 1080p update, try to create your overlays in a format or a resolution +that would support resizing. + + +### Other notes + +There are sockets in the home directory for MPV control if you want to keep that process. +echo ’{ “command”: [“loadfile”, “test2.webm”] }’ | socat - ~/mpv-socket-emacsconf-dev + + +### DONE Test and document command-line way of managing audio :sachac: + + +### DONE Move my conf.org setup to res so that we can control everything from there + + +### DONE Set timers for changing todo state + + (defun emacsconf-schedule-test-buffer (info) + (mapcar (lambda (o) (plist-put o :buffer "1") o) info)) + (let ((emacsconf-schedule-strategies '(emacsconf-schedule-test-buffer))) + (emacsconf-stream-schedule-timers (emacsconf-schedule-prepare + (emacsconf-schedule-inflate-sexp + `(("Test gen" :start ,(format-time-string "%Y-%m-%d %H:%M" + (time-add (current-time) (seconds-to-time 60)))) + (journalism :time "1") + (school :time "2") + (handwritten :time "1") + ("Test dev" :start ,(format-time-string "%Y-%m-%d %H:%M" + (time-add (current-time) (seconds-to-time 60)))) + (treesitter :time "2") + (lspbridge :time "1") + (asmblox :time "1")))))) + +the dev one worked, but the gen one gets +Couldn’t find local shell prompt for /bin/sh +Tramp: Opening connection **Async Shell Command** for emacsconf-gen@res.emacsconf.org using ssh…failed + +Maybe I need to stagger them, or maybe I need to use a shell command. +Changed to call ssh directly instead of using tramp. + + +### DONE Figure out how to work with the layout + +<https://i3wm.org/docs/layout-saving.html> + + +### DONE Allow per-track configuration of todo hooks :sachac: + +emacsconf-todo-hooks + + +### CANCELLED Use xdotool to automate joining BBB in Firefox (signing in, clicking on listen only) + + +### CANCELLED Experiment with sharing part of the screen so that there’s space for us to work a little off-screen + +We might just have to rely on xdotool to move windows the way we want them +Window fixes that didn’t work + +- <https://obsproject.com/forum/threads/solved-window-capture-black-screen.47082/> +- <https://www.reddit.com/r/obs/comments/kas5ka/obs_window_capture_xcomposite_black_screen/> + + +### DONE Set up scenes and try them + + +### DONE Set up text source for URL + + +### DONE Create Ansible tasks for setting up sinks for MPV and Firefox for the streams, and adding the scenes appropriately + + +### DONE See if I can even Ansible-up the rest of the tasks + +like starting up Firefox and mpv and everything + + +### CANCELLED obs-websocket control of OBS on the server + +so that the streamer can adjust volume offscreen? + + +### DONE document such that someone else could use/fix it + + +### DONE recruit at least one more person to help operate the “video bouncer” + + +### Other notes + +- bandali doesn’t have much cognitive bandwidth at the moment, so we can keep things simple with OBS on laptops + +- Issue: zaeph was dropping frames and couldn’t pay attention to as many things as he wanted +- Issue: corwin needs assistance to not be locked in his chair for the whole conf. Premptively, zaeph can do it by broadcasting OBS scenes via the rtmp (instead of just his webcam). +- With a long day, we may want to be able to schedule hosts/streamers/publishers in shifts +- Ideal: Easy reproducible setup to spin up an OBS VM with scenes set up, allowing multiple users to connect to it at the same time. Maybe x2go or vnc? VMs with 8 vCPUs and a vGPU cost more, so it would be good to figure out what’s needed, spin it down, and then spin it up maybe the day before or something like that. +- Plus points if we can control the OBS via password-protected websocket so we can tell it to switch scenes (and even more points if we do so from Emacs, maybe via that obs-websocket.el ;) ). MPV is also controllable via IPC, so we can use the same MPV player and then switch videos around. Maybe mpvc? <https://unix.stackexchange.com/questions/664728/how-can-i-control-mpv-in-command-line> +- Probably Linode’s Dedicated 32 GB + RTX6000 GPU x1 at $1.50 an hour for 2-3 days + dev time, since live.emacsconf.org is in Linode as well +- We should also look into normalization across the board, especially if we have BBB participants. pipewire + easyeffects on the box might be the easiest way to do it. + +- <https://docs.vdo.ninja/> +- Live Streaming using low configuration vps <https://www.youtube.com/watch?v=3iBYYgkG1eM&t=953> +- <https://snowmix.sourceforge.io/Examples/input.html> +- <https://www.google.com/url?sa=t&source=web&rct=j&url=https://m.youtube.com/watch%3Fv%3D1y-DUYiECWQ&ved=2ahUKEwjPru_TqOv6AhVMkokEHXL9Dm4QtwJ6BAgqEAI&usg=AOvVaw17mbCEiFL6dGVY4YEBufcy> +- [OBS Studio 26.0 | Hacker News](https://news.ycombinator.com/item?id=24633139) +- <https://github.com/mviereck/x11docker#sound> +- <https://vcs.fsf.org/?p=streamdesktop.git;a=tree> +- <https://opensource.com/article/20/5/conference-free-software> +- <https://github.com/soonum/hubangl> +- <https://obsproject.com/forum/threads/run-obs-on-vm-in-the-cloud.122543/> + + +<a id="caption-workflow"></a> + +## DONE Smoothen captioning workflow :sachac: + +It looks like OpenAPI needs a little less editing in terms of +capitalization and punctuation, but it produces longer captions +(likely a 30-second sliding window). I’ll try to upload both YT and +OpenAPI captions so that people can decide what they like. + + +### DONE Figure out why it’s choking on SRV2 + +Can I use aeneas for alignment instead? + +Reflow the .txt file and reupload to res if needed +call ../run-aeneas.sh from the directory with the opus or ogg and the txt file + +sachac@res-https://emacsconf.org/2022/talks/~/current/meetups$ python3 -m aeneas.tools.execute\_task emacsconf-2022-meetups–attending-and-organizing-emacs-meetups–bhavin-gandhi–main.opus reflowed.srt “task\_language=eng|os\_task\_file\_format=json|is\_text\_type=subtitles” output.json + +I might try out lhotse and torchaudio someday, but it’s low priority. aeneas seems to do a reasonable job of + + +### DONE Move publishing the backstage index to res so that we can trigger it after the files are uploaded + + +### DONE Compare large, medium, and small models + +12 threads + +Original file: 21:16 21 minutes + +<table border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides"> + + +<colgroup> +<col class="org-left" /> + +<col class="org-right" /> + +<col class="org-right" /> + +<col class="org-left" /> +</colgroup> +<tbody> +<tr> +<td class="org-left"> </td> +<td class="org-right">Hours</td> +<td class="org-right">Mult</td> +<td class="org-left">Notes</td> +</tr> + + +<tr> +<td class="org-left"><a href="https://media.emacsconf.org/2022/backstage/emacsconf-2022-sqlite--using-sqlite-as-a-data-source-a-framework-and-an-example--andrew-hyatt--large.vtt">Large</a></td> +<td class="org-right">2:49</td> +<td class="org-right">8</td> +<td class="org-left"> </td> +</tr> + + +<tr> +<td class="org-left"><a href="https://media.emacsconf.org/2022/backstage/emacsconf-2022-sqlite--using-sqlite-as-a-data-source-a-framework-and-an-example--andrew-hyatt--medium.vtt">Medium</a></td> +<td class="org-right">2:03</td> +<td class="org-right">5.9</td> +<td class="org-left"> </td> +</tr> + + +<tr> +<td class="org-left"><a href="https://media.emacsconf.org/2022/backstage/emacsconf-2022-sqlite--using-sqlite-as-a-data-source-a-framework-and-an-example--andrew-hyatt--small.vtt">Small</a></td> +<td class="org-right">0:40</td> +<td class="org-right">2</td> +<td class="org-left">More run-on sentences</td> +</tr> +</tbody> +</table> + +Large and medium might do better on a system with a GPU. I’ll default to the small model for now. + + +### DONE Commit subed-tsv so that people can try a cleaner output + + +### DONE Investigate more granular timestamps for the output from OpenAPI Whisper + +<https://git.emacsconf.org/emacsconf-ansible/tree/roles/caption/templates> + + +### DONE Upload srv2 from YouTube for word-level + + +### CANCELLED Compare with Google Cloud Speech API + +~/code/speech + + +### DONE E-mail for bringing new captioning volunteers onboard + + (defun emacsconf-mail-backstage-intro (volunteer &optional template) + (interactive (list (emacsconf-complete-volunteer))) + (emacsconf-mail-prepare + (or template (emacsconf-mail-merge-get-template "backstage-intro")) + (assoc-default "EMAIL" volunteer 'string=) + (list + :backstage "https://media.emacsconf.org/2022/backstage/" + :backstage-user "emacsconf" + :backstage-password emacsconf-backstage-password + :conf-name emacsconf-name + :year emacsconf-year + :name (assoc-default "NAME_SHORT" volunteer 'string=) + :email (assoc-default "EMAIL" volunteer 'string=)))) + + +#### Template + +Hi ${name}! + +Thank you for volunteering for ${conf-name} ${year}! + +We’ve set up ${backstage} as the backstage area where you can view the +videos and resources uploaded so far. You can access it with the +username "${backstage-user}“ and the password ”${backstage-password}“. +Please keep the backstage password and other speakers’ talk resources +secret. + +For some ideas on ways to help, you can check out +<https://emacsconf.org/2022/volunteer/> . You can also suggest other +things you might be interested in. + +You can ask questions or chat with other volunteers by e-mailing the +mailing list at emacsconf-org@gnu.org or dropping by #emacsconf on the +libera.chat IRC network. You can also e-mail me or +emacsconf-org-private@gnu.org if you have private questions. + +Thank you again for your help! =) + +Sacha Chua + + +### DONE E-mail for bringing new captioning volunteers onboard + + (defun emacsconf-mail-captioning-intro (volunteer &optional template) + (interactive (list (emacsconf-complete-volunteer) + (emacsconf-mail-merge-get-template "captioning-intro"))) + (emacsconf-mail-prepare + (or template (emacsconf-mail-merge-get-template "captioning-intro")) + (assoc-default "EMAIL" volunteer 'string=) + (list + :backstage "https://media.emacsconf.org/2022/backstage/" + :backstage-user "emacsconf" + :backstage-password emacsconf-backstage-password + :conf-name emacsconf-name + :year emacsconf-year + :name (assoc-default "NAME_SHORT" volunteer 'string=) + :email (assoc-default "EMAIL" volunteer 'string=)))) + + +#### Template + +Hi ${name}! + +Thank you for volunteering to help with the captions for ${conf-name} +${year}! Last year, we were able to get almost all the talks captioned +in time for streaming. Participants found them very useful for +understanding different technical terms, names, accents, and so on. +We’d love to be able to pull that off again this year, and it would be +great to have you on board. + +We’ve set up ${backstage} as the backstage area where you can view the +videos and resources uploaded so far. You can access it with the +username "${backstage-user}“ and the password ”${backstage-password}“. +Please keep the backstage password and resources secret. If you see a +talk that you’d like to caption, you can e-mail me at +sacha@sachachua.com and I can reserve it for you. Then you can correct +any misrecognized words, fix capitalizations, remove filler words as +needed, and so on. + +You’ll probably want to work with either the VTT or the TXT versions +(VTT is WebVTT format and has timestamps), but you can check the other +talk resources in case the speaker has posted scripts or other useful +things. Both VTT and TXT are plain text, so feel free to use your +favourite text or subtitle editor. I’ve posted a brief demo of how I +edit captions at +<https://media.emacsconf.org/2022/backstage/editing-captions.html> , and +you can find more captioning tips at <https://emacsconf.org/captioning/> +. You can convert it to whatever format you like. If you prefer to +work with plain text, we can figure out the timestamps afterwards. + +Let me know if you want to reserve a talk for captioning or if you have +any questions or suggestions. We’re also in the #emacsconf-org channel +on the libera.chat IRC network, which you can connect to with your +favourite IRC client or through the web-based interface at +<https://chat.emacsconf.org/> . + +Sacha Chua + + +### DONE Support cue IDs in subed-vtt.el + + +### CANCELLED jiwer · PyPI - measure error rate + +<https://pypi.org/project/jiwer/> + + <a id="comms"></a> # Communications @@ -4967,7 +5170,8 @@ Sacha Chua (defun emacsconf-mail-captions-for-approval (talk) (interactive (list (emacsconf-complete-talk-info))) - (let ((captions (expand-file-name (concat (plist-get talk :video-slug) "--main.vtt") emacsconf-cache-dir)) + (let ((captions (expand-file-name (concat (plist-get talk :video-slug) "--main.vtt") + emacsconf-cache-dir)) (captioner-info (with-current-buffer (find-file-noselect emacsconf-org-file) (org-entry-properties (org-find-property "CUSTOM_ID" (plist-get talk :captioner)))))) @@ -4980,17 +5184,29 @@ Sacha Chua :email (plist-get talk :email) :title (plist-get talk :title) :captioner (assoc-default "NAME_SHORT" captioner-info) - :url (format "https://media.emacsconf.org/%s/backstage" emacsconf-year) + :url + (format "https://media.emacsconf.org/%s/backstage/#%s" emacsconf-year + (plist-get talk :slug)) :password emacsconf-backstage-password :captioner-email (assoc-default "EMAIL" captioner-info) :captioner-volunteered (if (string= (plist-get talk :captioner) "sachac") "" (format "%s volunteered to edit the captions for your video. " (assoc-default "NAME_SHORT" captioner-info))) + :chapters-note + (if (file-exists-p + (expand-file-name (concat (plist-get talk :video-slug) "--main--chapters.vtt") + emacsconf-cache-dir)) + "I've come up with some potential chapter headings which you can see as NOTE in the transcript or in the backstage entry for your video. Let me know if you want to tweak those.\n\n" + "") + :intro-note + (emacsconf-surround + "${wrap}Also, I drafted a quick intro for the host to read. Let me know if you want to tweak this: " (plist-get talk :intro-note) "\n\n" + "") :captioner-thanks (if (string= (plist-get talk :captioner) "sachac") - "It was fun working on your captions. Thanks!" - (format "%s: Thank you for editing the captions!" (assoc-default "NAME_SHORT" captioner-info))) + "" + (format "%s: Thank you for editing the captions!\n\n" (assoc-default "NAME_SHORT" captioner-info))) :captions (with-temp-buffer (insert-file-contents captions) (buffer-string)))) (mml-attach-file captions "text/vtt" "Subtitles" "attachment"))) @@ -5008,11 +5224,14 @@ you want to review it, suggest any corrections, or use the text in a blog post or elsewhere. You can look at the attached file or watch your video with closed captions at ${url} (username: emacsconf, password: ${password}). I’ve also included the captions at the end of -this e-mail for your convenience. Thanks again for your contribution! +this e-mail for your convenience.${wrap} -${captioner-thanks} +${chapters-note}${intro-note}Do you have a bio or social/donation links you’d like us +to add to the wiki page for your talk? -Sacha +Thanks again for your contribution! + +${captioner-thanks}Sacha ${captions} diff --git a/2022/organizers-notebook/emergency-back-to-one-sat-pm.svg b/2022/organizers-notebook/emergency-back-to-one-sat-pm.svg new file mode 100644 index 00000000..1d7b693d --- /dev/null +++ b/2022/organizers-notebook/emergency-back-to-one-sat-pm.svg @@ -0,0 +1 @@ +<svg width="800" height="200" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" background="white"> <g transform="translate(0,0)"> <rect width="800" height="200" x="0" y="0" fill="white"></rect> <text font-size="10" fill="black" y="12" x="3"> Saturday</text> <a href="/2022/talks/meetups" title="Attending and organizing Emacs meetups" data-slug="meetups"> <title> 1:00- 1:20 Attending and organizing Emacs meetups</title> <rect x="0" y="15" opacity="0.8" width="59" height="84" stroke="black" stroke-dasharray="" fill="lightgray"></rect> <g transform="translate(57,98)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> meetups</text></g></a> <a href="/2022/talks/buttons" title="Linking personal info with Hyperbole implicit buttons" data-slug="buttons"> <title> 1:56- 2:11 Linking personal info with Hyperbole implicit buttons</title> <rect x="165" y="15" opacity="0.8" width="44" height="84" stroke="black" stroke-dasharray="" fill="lightgray"></rect> <g transform="translate(207,98)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> buttons</text></g></a> <a href="/2022/talks/realestate" title="Real estate and Org table formulas" data-slug="realestate"> <title> 2:30- 2:55 Real estate and Org table formulas</title> <rect x="266" y="15" opacity="0.8" width="74" height="84" stroke="black" stroke-dasharray="5,5,5" fill="lightgreen"></rect> <g transform="translate(338,98)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> realestate</text></g></a> <a href="/2022/talks/health" title="Health data journaling and visualization with Org Mode and GNUplot" data-slug="health"> <title> 2:58- 3:23 Health data journaling and visualization with Org Mode and GNUplot</title> <rect x="349" y="15" opacity="0.8" width="74" height="84" stroke="black" stroke-dasharray="" fill="lightgreen"></rect> <g transform="translate(421,98)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> health</text></g></a> <a href="/2022/talks/jupyter" title="Edit live Jupyter notebook cells with Emacs" data-slug="jupyter"> <title> 3:26- 3:36 Edit live Jupyter notebook cells with Emacs</title> <rect x="432" y="15" opacity="0.8" width="29" height="84" stroke="black" stroke-dasharray="" fill="lightgreen"></rect> <g transform="translate(459,98)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> jupyter</text></g></a> <a href="/2022/talks/devel" title="Emacs development updates" data-slug="devel"> <title> 3:39- 3:49 Emacs development updates</title> <rect x="471" y="15" opacity="0.8" width="29" height="84" stroke="black" stroke-dasharray="5,5,5" fill="lightgreen"></rect> <g transform="translate(498,98)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> devel</text></g></a> <a href="/2022/talks/orgvm" title="orgvm: a simple HTTP server for org" data-slug="orgvm"> <title> 4:15- 4:25 orgvm: a simple HTTP server for org</title> <rect x="577" y="15" opacity="0.8" width="29" height="84" stroke="black" stroke-dasharray="" fill="lightgreen"></rect> <g transform="translate(604,98)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> orgvm</text></g></a> <a href="/2022/talks/sat-close" title="Saturday closing remarks" data-slug="sat-close"> <title> 5:01- 5:06 Saturday closing remarks</title> <rect x="714" y="15" opacity="0.8" width="14" height="84" stroke="black" stroke-dasharray="" fill="lightgreen"></rect> <g transform="translate(726,98)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> sat-close</text></g></a> <a href="/2022/talks/mail" title="Revisiting the anatomy of Emacs mail user agents" data-slug="mail"> <title> 1:23- 1:53 Revisiting the anatomy of Emacs mail user agents</title> <rect x="68" y="100" opacity="0.8" width="88" height="84" stroke="black" stroke-dasharray="" fill="lightgreen"></rect> <g transform="translate(154,183)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> mail</text></g></a> <a href="/2022/talks/eev" title="Bidirectional links with eev" data-slug="eev"> <title> 2:14- 2:19 Bidirectional links with eev</title> <rect x="219" y="100" opacity="0.8" width="14" height="84" stroke="black" stroke-dasharray="5,5,5" fill="lightgreen"></rect> <g transform="translate(231,183)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> eev</text></g></a> <a href="/2022/talks/python" title="Short hyperlinks to Python docs" data-slug="python"> <title> 2:22- 2:27 Short hyperlinks to Python docs</title> <rect x="242" y="100" opacity="0.8" width="14" height="84" stroke="black" stroke-dasharray="5,5,5" fill="lightgreen"></rect> <g transform="translate(254,183)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> python</text></g></a> <a href="/2022/talks/asmblox" title="asm-blox: a game based on WebAssembly that no one asked for" data-slug="asmblox"> <title> 3:52- 4:12 asm-blox: a game based on WebAssembly that no one asked for</title> <rect x="509" y="100" opacity="0.8" width="59" height="84" stroke="black" stroke-dasharray="" fill="lightgreen"></rect> <g transform="translate(566,183)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> asmblox</text></g></a> <a href="/2022/talks/haskell" title="Haskell code exploration with Emacs" data-slug="haskell"> <title> 4:28- 4:58 Haskell code exploration with Emacs</title> <rect x="616" y="100" opacity="0.8" width="88" height="84" stroke="black" stroke-dasharray="" fill="lightgray"></rect> <g transform="translate(702,183)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> haskell</text></g></a> <g transform="translate(0,15)"> <line stroke="darkgray" x1="0" y1="0" x2="0" y2="170"></line> <text fill="black" x="0" y="183" font-size="10" text-anchor="middle"> 1</text></g> <g transform="translate(177,15)"> <line stroke="darkgray" x1="0" y1="0" x2="0" y2="170"></line> <text fill="black" x="0" y="183" font-size="10" text-anchor="middle"> 2</text></g> <g transform="translate(355,15)"> <line stroke="darkgray" x1="0" y1="0" x2="0" y2="170"></line> <text fill="black" x="0" y="183" font-size="10" text-anchor="middle"> 3</text></g> <g transform="translate(533,15)"> <line stroke="darkgray" x1="0" y1="0" x2="0" y2="170"></line> <text fill="black" x="0" y="183" font-size="10" text-anchor="middle"> 4</text></g> <g transform="translate(711,15)"> <line stroke="darkgray" x1="0" y1="0" x2="0" y2="170"></line> <text fill="black" x="0" y="183" font-size="10" text-anchor="middle"> 5</text></g></g></svg>
\ No newline at end of file diff --git a/2022/organizers-notebook/emergency-back-to-one-sun-am.svg b/2022/organizers-notebook/emergency-back-to-one-sun-am.svg new file mode 100644 index 00000000..275467a1 --- /dev/null +++ b/2022/organizers-notebook/emergency-back-to-one-sun-am.svg @@ -0,0 +1 @@ +<svg width="800" height="200" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" background="white"> <g transform="translate(0,0)"> <rect width="800" height="200" x="0" y="0" fill="white"></rect> <text font-size="10" fill="black" y="12" x="3"> Sunday</text> <a href="/2022/talks/sun-open" title="Sunday opening remarks" data-slug="sun-open"> <title> 9:00- 9:05 Sunday opening remarks</title> <rect x="0" y="15" opacity="0.8" width="19" height="84" stroke="black" stroke-dasharray="" fill="lightgreen"></rect> <g transform="translate(17,98)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> sun-open</text></g></a> <a href="/2022/talks/survey" title="Results of the 2022 Emacs Survey" data-slug="survey"> <title> 9:05- 9:25 Results of the 2022 Emacs Survey</title> <rect x="19" y="15" opacity="0.8" width="76" height="84" stroke="black" stroke-dasharray="5,5,5" fill="lightgray"></rect> <g transform="translate(93,98)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> survey</text></g></a> <a href="/2022/talks/orgyear" title="This Year in Org" data-slug="orgyear"> <title> 9:28- 9:38 This Year in Org</title> <rect x="106" y="15" opacity="0.8" width="38" height="84" stroke="black" stroke-dasharray="5,5,5" fill="lightgray"></rect> <g transform="translate(142,98)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> orgyear</text></g></a> <a href="/2022/talks/rolodex" title="Build a Zettelkasten with the Hyperbole Rolodex" data-slug="rolodex"> <title> 10:04-10:29 Build a Zettelkasten with the Hyperbole Rolodex</title> <rect x="243" y="15" opacity="0.8" width="95" height="84" stroke="black" stroke-dasharray="5,5,5" fill="lightgray"></rect> <g transform="translate(336,98)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> rolodex</text></g></a> <a href="/2022/talks/orgsuperlinks" title="Linking headings with org-super-links (poor-man's Zettelkasten)" data-slug="orgsuperlinks"> <title> 10:50-11:00 Linking headings with org-super-links (poor-man's Zettelkasten)</title> <rect x="419" y="15" opacity="0.8" width="38" height="84" stroke="black" stroke-dasharray="" fill="lightgray"></rect> <g transform="translate(455,98)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> orgsuperlinks</text></g></a> <a href="/2022/talks/lspbridge" title="lsp-bridge: complete asynchronous LSP client" data-slug="lspbridge"> <title> 9:41-10:01 lsp-bridge: complete asynchronous LSP client</title> <rect x="156" y="100" opacity="0.8" width="76" height="84" stroke="black" stroke-dasharray="5,5,5" fill="lightgray"></rect> <g transform="translate(230,183)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> lspbridge</text></g></a> <a href="/2022/talks/treesitter" title="Tree-sitter beyond syntax highlighting" data-slug="treesitter"> <title> 10:32-10:47 Tree-sitter beyond syntax highlighting</title> <rect x="350" y="100" opacity="0.8" width="57" height="84" stroke="black" stroke-dasharray="5,5,5" fill="lightgray"></rect> <g transform="translate(405,183)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> treesitter</text></g></a> <a href="/2022/talks/wayland" title="Emacs should become a Wayland compositor" data-slug="wayland"> <title> 11:03-11:13 Emacs should become a Wayland compositor</title> <rect x="468" y="100" opacity="0.8" width="38" height="84" stroke="black" stroke-dasharray="" fill="lightgreen"></rect> <g transform="translate(504,183)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> wayland</text></g></a> <a href="/2022/talks/rms" title="Message from RMS" data-slug="rms"> <title> 11:16-11:36 Message from RMS</title> <rect x="518" y="100" opacity="0.8" width="76" height="84" stroke="black" stroke-dasharray="" fill="lightgray"></rect> <g transform="translate(592,183)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> rms</text></g></a> <g transform="translate(0,15)"> <line stroke="darkgray" x1="0" y1="0" x2="0" y2="170"></line> <text fill="black" x="0" y="183" font-size="10" text-anchor="middle"> 9</text></g> <g transform="translate(228,15)"> <line stroke="darkgray" x1="0" y1="0" x2="0" y2="170"></line> <text fill="black" x="0" y="183" font-size="10" text-anchor="middle"> 10</text></g> <g transform="translate(457,15)"> <line stroke="darkgray" x1="0" y1="0" x2="0" y2="170"></line> <text fill="black" x="0" y="183" font-size="10" text-anchor="middle"> 11</text></g> <g transform="translate(685,15)"> <line stroke="darkgray" x1="0" y1="0" x2="0" y2="170"></line> <text fill="black" x="0" y="183" font-size="10" text-anchor="middle"> 12</text></g></g></svg>
\ No newline at end of file diff --git a/2022/organizers-notebook/emergency-back-to-one-sun-pm.svg b/2022/organizers-notebook/emergency-back-to-one-sun-pm.svg new file mode 100644 index 00000000..733b737e --- /dev/null +++ b/2022/organizers-notebook/emergency-back-to-one-sun-pm.svg @@ -0,0 +1 @@ +<svg width="800" height="200" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" background="white"> <g transform="translate(0,0)"> <rect width="800" height="200" x="0" y="0" fill="white"></rect> <text font-size="10" fill="black" y="12" x="3"> Sunday</text> <a href="/2022/talks/hyperorg" title="Powerful productivity with Hyperbole and Org Mode" data-slug="hyperorg"> <title> 1:00- 1:30 Powerful productivity with Hyperbole and Org Mode</title> <rect x="0" y="15" opacity="0.8" width="80" height="84" stroke="black" stroke-dasharray="" fill="lightgreen"></rect> <g transform="translate(78,98)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> hyperorg</text></g></a> <a href="/2022/talks/workflows" title="Org workflows for developers" data-slug="workflows"> <title> 1:51- 2:16 Org workflows for developers</title> <rect x="136" y="15" opacity="0.8" width="66" height="84" stroke="black" stroke-dasharray="" fill="lightgreen"></rect> <g transform="translate(200,98)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> workflows</text></g></a> <a href="/2022/talks/grail" title="GRAIL---A Generalized Representation and Aggregation of Information Layers" data-slug="grail"> <title> 2:37- 2:57 GRAIL---A Generalized Representation and Aggregation of Information Layers</title> <rect x="258" y="15" opacity="0.8" width="53" height="84" stroke="black" stroke-dasharray="" fill="lightgreen"></rect> <g transform="translate(309,98)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> grail</text></g></a> <a href="/2022/talks/indieweb" title="Putting Org Mode on the Indieweb" data-slug="indieweb"> <title> 3:23- 3:43 Putting Org Mode on the Indieweb</title> <rect x="381" y="15" opacity="0.8" width="53" height="84" stroke="black" stroke-dasharray="" fill="lightgray"></rect> <g transform="translate(432,98)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> indieweb</text></g></a> <a href="/2022/talks/fanfare" title="Fanfare for the Common Emacs User" data-slug="fanfare"> <title> 4:32- 4:42 Fanfare for the Common Emacs User</title> <rect x="565" y="15" opacity="0.8" width="26" height="84" stroke="black" stroke-dasharray="" fill="lightgreen"></rect> <g transform="translate(589,98)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> fanfare</text></g></a> <a href="/2022/talks/sun-close" title="Sunday closing remarks" data-slug="sun-close"> <title> 4:45- 4:55 Sunday closing remarks</title> <rect x="600" y="15" opacity="0.8" width="26" height="84" stroke="black" stroke-dasharray="" fill="lightgreen"></rect> <g transform="translate(624,98)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> sun-close</text></g></a> <a href="/2022/talks/detached" title="Getting detached from Emacs" data-slug="detached"> <title> 1:33- 1:48 Getting detached from Emacs</title> <rect x="88" y="100" opacity="0.8" width="40" height="84" stroke="black" stroke-dasharray="" fill="lightgreen"></rect> <g transform="translate(126,183)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> detached</text></g></a> <a href="/2022/talks/eshell" title="Top 10 reasons why you should be using Eshell" data-slug="eshell"> <title> 2:19- 2:34 Top 10 reasons why you should be using Eshell</title> <rect x="210" y="100" opacity="0.8" width="40" height="84" stroke="black" stroke-dasharray="" fill="lightgray"></rect> <g transform="translate(248,183)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> eshell</text></g></a> <a href="/2022/talks/async" title="Emacs was async before async was cool" data-slug="async"> <title> 3:00- 3:20 Emacs was async before async was cool</title> <rect x="320" y="100" opacity="0.8" width="53" height="84" stroke="black" stroke-dasharray="" fill="lightgray"></rect> <g transform="translate(371,183)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> async</text></g></a> <a href="/2022/talks/dbus" title="The Wheels on D-Bus" data-slug="dbus"> <title> 3:46- 4:06 The Wheels on D-Bus</title> <rect x="442" y="100" opacity="0.8" width="53" height="84" stroke="black" stroke-dasharray="" fill="lightgray"></rect> <g transform="translate(493,183)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> dbus</text></g></a> <a href="/2022/talks/localizing" title="Pre-localizing Emacs" data-slug="localizing"> <title> 4:09- 4:29 Pre-localizing Emacs</title> <rect x="504" y="100" opacity="0.8" width="53" height="84" stroke="black" stroke-dasharray="" fill="lightgray"></rect> <g transform="translate(555,183)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> localizing</text></g></a> <g transform="translate(0,15)"> <line stroke="darkgray" x1="0" y1="0" x2="0" y2="170"></line> <text fill="black" x="0" y="183" font-size="10" text-anchor="middle"> 1</text></g> <g transform="translate(160,15)"> <line stroke="darkgray" x1="0" y1="0" x2="0" y2="170"></line> <text fill="black" x="0" y="183" font-size="10" text-anchor="middle"> 2</text></g> <g transform="translate(320,15)"> <line stroke="darkgray" x1="0" y1="0" x2="0" y2="170"></line> <text fill="black" x="0" y="183" font-size="10" text-anchor="middle"> 3</text></g> <g transform="translate(480,15)"> <line stroke="darkgray" x1="0" y1="0" x2="0" y2="170"></line> <text fill="black" x="0" y="183" font-size="10" text-anchor="middle"> 4</text></g> <g transform="translate(640,15)"> <line stroke="darkgray" x1="0" y1="0" x2="0" y2="170"></line> <text fill="black" x="0" y="183" font-size="10" text-anchor="middle"> 5</text></g></g></svg>
\ No newline at end of file diff --git a/2022/organizers-notebook/index.org b/2022/organizers-notebook/index.org index 64ac6f92..a340cfba 100644 --- a/2022/organizers-notebook/index.org +++ b/2022/organizers-notebook/index.org @@ -158,29 +158,20 @@ CLOCK: [2022-11-17 Thu 21:15]--[2022-11-17 Thu 21:15] => 0:00 SCHEDULED: <2022-11-18 Fri> *** TODO Draft the code for mailing all the affected speakers *** Saturday afternoon -#+begin_src emacs-lisp :exports results :results replace :var filename="emergency-back-to-one.svg" :eval never-export +#+begin_src emacs-lisp :exports results :results replace :var filename="emergency-back-to-one-sat-pm.svg" :eval never-export (emacsconf-schedule-test filename - (emacsconf-time-constraints - '(("LUNCH" "11:30" "13:30") - ("saturday closing remarks" "16:30" "18:00") - ("sunday closing remarks" "16:30" "18:00"))) + (emacsconf-time-constraints nil) (arranged (emacsconf-schedule-inflate-sexp '(("Saturday, December 3" :start "2022-12-03 13:00") - meetups - community - buttons - realestate - health - jupyter - mail - eev python - haskell))) + meetups mail buttons eev python realestate health jupyter devel asmblox orgvm haskell sat-close))) (emacsconf-schedule-start-time "13:00") (emacsconf-schedule-svg-modify-functions '(;emacsconf-schedule-svg-color-by-status )) - (emacsconf-schedule-default-buffer-minutes-for-live-q-and-a 5) + (emacsconf-schedule-default-buffer-minutes 3) + (emacsconf-schedule-expected-talks '(meetups mail buttons eev python realestate health jupyter devel asmblox orgvm haskell sat-close)) + (emacsconf-schedule-default-buffer-minutes-for-live-q-and-a 3) (emacsconf-schedule-strategies '(emacsconf-schedule-override-breaks emacsconf-schedule-allocate-video-time-round-up-to-five emacsconf-schedule-allocate-buffer-time)) @@ -190,27 +181,25 @@ SCHEDULED: <2022-11-18 Fri> #+RESULTS: :results: -- LUNCH: Not found -- saturday closing remarks: Not found -- sunday closing remarks: Not found -- Missing talks: journalism, school, handwritten, science, buddy, survey, orgyear, rolodex, orgsuperlinks, hyperorg, workflows, grail, orgvm, indieweb, fanfare, localizing, treesitter, lspbridge, sqlite, maint, rde, justl, devel, detached, eshell, async, asmblox, dbus, wayland, sat-open, sat-close, sun-open, sun-close -- [[file:emergency-back-to-one.svg]] +- [[file:emergency-back-to-one-sat-pm.svg]] :end: *** Sunday morning -#+begin_src emacs-lisp :exports results :results replace :var filename="emergency-back-to-one.svg" :eval never-export +#+begin_src emacs-lisp :exports results :results replace :var filename="emergency-back-to-one-sun-am.svg" :eval never-export (emacsconf-schedule-test filename (emacsconf-time-constraints '()) (arranged (emacsconf-schedule-inflate-sexp '(("Sunday, December 4" :start "2022-12-04 9:00") - sun-open survey orgyear orgsuperlinks rolodex lspbridge treesitter asmblox wayland orgvm))) + ;; have to move orgvm + sun-open survey orgyear lspbridge rolodex treesitter orgsuperlinks wayland rms))) + (emacsconf-schedule-expected-talks '(sun-open survey orgyear lspbridge rolodex treesitter orgsuperlinks wayland rms)) (emacsconf-schedule-end-time "12:30") (emacsconf-schedule-svg-modify-functions '(;emacsconf-schedule-svg-color-by-status )) - (emacsconf-schedule-default-buffer-minutes 5) - (emacsconf-schedule-default-buffer-minutes-for-live-q-and-a 5) + (emacsconf-schedule-default-buffer-minutes 3) + (emacsconf-schedule-default-buffer-minutes-for-live-q-and-a 3) (emacsconf-schedule-strategies '(emacsconf-schedule-override-breaks emacsconf-schedule-allocate-video-time-round-up-to-five emacsconf-schedule-allocate-buffer-time))) @@ -218,25 +207,26 @@ SCHEDULED: <2022-11-18 Fri> #+RESULTS: :results: -- Missing talks: journalism, school, handwritten, science, meetups, buddy, community, realestate, health, jupyter, buttons, hyperorg, workflows, grail, indieweb, fanfare, localizing, sqlite, mail, eev, python, maint, haskell, rde, justl, devel, detached, eshell, async, dbus, sat-open, sat-close, sun-close -- [[file:emergency-back-to-one.svg]] +- [[file:emergency-back-to-one-sun-am.svg]] :end: *** Sunday afternoon -#+begin_src emacs-lisp :exports results :results replace :var filename="emergency-back-to-one.svg" :eval never-export +#+begin_src emacs-lisp :exports results :results replace :var filename="emergency-back-to-one-sun-pm.svg" :eval never-export (emacsconf-schedule-test filename emacsconf-time-constraints (arranged (emacsconf-schedule-inflate-sexp '(("Sunday, December 4" :start "2022-12-04 13:00") - hyperorg workflows grail indieweb devel detached eshell async dbus localizing fanfare sun-close))) + hyperorg detached workflows eshell grail async indieweb dbus localizing fanfare sun-close))) (emacsconf-schedule-start-time "13:00") + (emacsconf-schedule-end-time "18:00") + (emacsconf-schedule-expected-talks '(hyperorg detached workflows eshell grail async indieweb dbus localizing fanfare sun-close)) (emacsconf-schedule-svg-modify-functions '(;emacsconf-schedule-svg-color-by-status )) - (emacsconf-schedule-default-buffer-minutes 5) - (emacsconf-schedule-default-buffer-minutes-for-live-q-and-a 5) + (emacsconf-schedule-default-buffer-minutes 3) + (emacsconf-schedule-default-buffer-minutes-for-live-q-and-a 3) (emacsconf-schedule-strategies '(emacsconf-schedule-override-breaks emacsconf-schedule-allocate-video-time-round-up-to-five emacsconf-schedule-allocate-buffer-time))) @@ -244,8 +234,7 @@ SCHEDULED: <2022-11-18 Fri> #+RESULTS: :results: -- Missing talks: journalism, school, handwritten, science, meetups, buddy, community, realestate, health, jupyter, survey, orgyear, rolodex, orgsuperlinks, buttons, orgvm, treesitter, lspbridge, sqlite, mail, eev, python, maint, haskell, rde, justl, asmblox, wayland, sat-open, sat-close, sun-open -- [[file:emergency-back-to-one.svg]] +- [[file:emergency-back-to-one-sun-pm.svg]] :end: *** TODO Get the emergency schedule sorted out so that we can easily switch to it @@ -351,11 +340,16 @@ SCHEDULED: <2022-11-20 Sun> :QUANTIFIED: Emacs :END: :LOGBOOK: -CLOCK: [2022-11-19 Sat 11:30] +CLOCK: [2022-11-19 Sat 11:30]--[2022-11-19 Sat 18:50] => 7:20 :END: so that people on other platforms can come across EmacsConf *** TODO [#A] Write the restreaming shell scripts +**** TODO Restream-gen-youtube +:PROPERTIES: +:CREATED: [2022-11-19 Sat 13:32] +:END: + *** DONE Create the events and save the keys :sachac: CLOSED: [2022-11-19 Sat 11:58] [[file:~/proj/emacsconf/private/conf.org::*Other platforms][Other platforms]] @@ -624,6 +618,19 @@ CLOSED: [2022-11-14 Mon 14:14] SCHEDULED: <2022-11-19 Sat> :END: *** TODO [#B] Add intro notes and specific talk notes to the hyperlist *** TODO [#A] Make a hyperlist for checking people in for easier copying and pasting +*** TODO Send FlowyCoder hyperlist for checking people in +SCHEDULED: <2022-11-26 Sat> +:PROPERTIES: +:CREATED: [2022-11-19 Sat 09:26] +:END: + +[[file:~/proj/emacsconf/wiki/2022/organizers-notebook/index.org::*Use Mumble for backchannel coordination and also on-stage][Use Mumble for backchannel coordination and also on-stage]] + +*** TODO Make backstage redirects for pad and qa so that hosts and streamers can have an easier time +:PROPERTIES: +:CREATED: [2022-11-19 Sat 13:54] +:END: + ** TODO [#C] Record intro/outro for day-1 and day-2 :zaeph: :PROPERTIES: :CUSTOM_ID: rec-intro @@ -848,6 +855,7 @@ https://www.mail-archive.com/search?l=debconf-team@lists.debian.org&q=subject:%2 :END: #+TOC: headlines 1 local + ** How do we want to coordinate during the conference itself? :PROPERTIES: :CUSTOM_ID: coordination @@ -1145,6 +1153,20 @@ Options: - https://www.collabmagazine.com/organizing-a-multi-track-virtual-conference-with-microsoft-teams-live-events-a-technical-playbook-and-lessons-learned/ : 4-person team, post-prod, break commercials +** SOMEDAY Think about what to do with schedule gaps due to cancelled talks :thoughts: +:PROPERTIES: +:CREATED: [2022-11-19 Sat 17:30] +:CUSTOM_ID: schedule-gaps +:END: + +- just leave it on the in-between slide: no extra effort required +- host breakout rooms + +*** SOMEDAY Consider fillers covering conference stuff :thoughts: +:PROPERTIES: +:CREATED: [2022-11-19 Sat 17:43] +:END: + * Roles needed :PROPERTIES: :CUSTOM_ID: roles @@ -2284,7 +2306,8 @@ SCHEDULED: <2022-12-03 Sat> - Talk gone from the schedule? - Talk listed among the cancelled talks? - Talk page has cancelled info? - +6. Remove the talk from the [[#one-track][one-track emergency schedule]] + *** Last-minute prerecording submission :PROPERTIES: :CUSTOM_ID: last-minute-prerec |