From d8cdfa2bdbd9f997961743d2332eecbc34148148 Mon Sep 17 00:00:00 2001 From: Sacha Chua Date: Tue, 22 Nov 2022 07:25:20 -0500 Subject: update link to mpv.conf, schedule tasks --- 2022/organizers-notebook.md | 813 +++++++++++++++++++++++-------------- 2022/organizers-notebook/index.org | 100 ++--- 2022/watch.md | 1 + 3 files changed, 542 insertions(+), 372 deletions(-) diff --git a/2022/organizers-notebook.md b/2022/organizers-notebook.md index f8ee9bad..4a8bd546 100644 --- a/2022/organizers-notebook.md +++ b/2022/organizers-notebook.md @@ -9,7 +9,7 @@ This file is automatically exported from [/2022/organizers-notebook/index.org](/ - [Cadence](#cadence) - [Overall priorities](#overall) - [Projects and other long-running tasks](#projects) -- [Ideas for next year](#maybe-projects) +- [Ideas for next year](#maybe-projects):nextyear: - [Things to figure out / decisions to make](#decisions) - [Roles needed](#roles) - [Infrastructure notes](#infra) @@ -21,10 +21,11 @@ This file is automatically exported from [/2022/organizers-notebook/index.org](/ Projects and tasks: +- [Look for ways to reduce risk](#derisk) +- [Facilitate Q&A](#qa) - [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: +- [Plan in-case-of-emergency schedule for dropping back to one track after Saturday morning](#one-track):sachac:derisk: - [Create protocol for live Q&A](#live-protocol):zaeph: - [Update viewing instructions and watch pages](#write-viewing):sachac: - [Prepare to handle talk state changes](#publish-live):sachac:publish: @@ -384,10 +385,11 @@ interests you! # Projects and other long-running tasks +- [Look for ways to reduce risk](#derisk) +- [Facilitate Q&A](#qa) - [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: +- [Plan in-case-of-emergency schedule for dropping back to one track after Saturday morning](#one-track):sachac:derisk: - [Create protocol for live Q&A](#live-protocol):zaeph: - [Update viewing instructions and watch pages](#write-viewing):sachac: - [Prepare to handle talk state changes](#publish-live):sachac:publish: @@ -409,246 +411,56 @@ interests you! - [Plan Etherpad use and hosting](#etherpad):sachac:ansible: - - -## TODO Prepare intros for the hosts to read :sachac: - - -also in :INTRO\_NOTE: in conf.org so that we can plop it into the hyperlists. - - -### TODO Write intros for all the other talks - - -### DONE Set up Etherpad with the talks and see if we can involve the speakers and captioning volunteers :sachac: - - - - -## TODO Write check-in email :sachac: - - -### DONE Switch all the rooms to allow anyone to start them - one less step for the check-in person - - //list = [...document.querySelectorAll('.room-name-editable')].filter((o) => o.value.match(/^ec22-(sat|sun)/)); - card = document.querySelector('a[href=\"%s\"] .card-body'); - card.querySelector('.item-action.dropdown a').click() - card.querySelector('.update-room').click() - if (!document.querySelector('#room_anyone_can_start').checked) { - document.querySelector('#room_anyone_can_start').click(); - } - document.querySelector('.update-only.create-room-button').click(); - -okay, next thing, it automatically refreshes. so I can’t run the whole Javascript, I need to xdotool it. - - (setq list (mapcar (lambda (o) (plist-get o :bbb-room)) (emacsconf-get-talk-info))) - (setq list (seq-drop list (seq-position list "https://bbb.emacsverse.org/b/sac-rvc-kd2-pev"))) - (progn - (setq item (pop list)) - (when (string-match "/b/\\(.*\\)" item) - (kill-new (format "card = document.querySelector('a[href=\"%s\"] .card-body'); - card.querySelector('.item-action.dropdown a').click() - card.querySelector('.update-room').click() - if (!document.querySelector('#room_anyone_can_start').checked) { - document.querySelector('#room_anyone_can_start').click(); - } - document.querySelector('.update-only.create-room-button').click(); - " - (match-string 0 item))) - (sleep-for 2) - (shell-command "xdotool key alt+Tab"))) - -Relying on xdotool seems a little fragile. Let’s just check the page -itself for the next one that needs to be done. - - list = [...document.querySelectorAll('.room-name-editable')].filter((o) => o.value.match(/^ec22-(sat|sun)/)); - list.reduce(async(prev, elem) => { - await prev; - if (!sessionStorage.getItem(elem.value)) { - return new Promise((resolve, reject) => { - card = elem.closest('.card-body'); - card.querySelector('.item-action.dropdown a').click(); - card.querySelector('.update-room').click(); - sessionStorage.setItem(elem.value, true); - setTimeout(function() { - if (!document.querySelector('#room_anyone_can_start').checked) { - document.querySelector('#room_anyone_can_start').click(); - document.querySelector('.update-only.create-room-button').click(); - } else { - document.querySelector('#createRoomModal').click(); - } - resolve(true); - }, 500); - }); - } - }); - - -### DONE Update checkin instructions - - -### Templates - -Goals: - -- Ask speaker verify their scheduled time - It has already been confirmed with them, but it might have changed slightly - - HOW: They should check the time at the top of their talk page on the day of the conference -- Double-check Q&A preference, encourage tech checks for live talks/Q&A - - If they are available: - - Direct to tech-checks via - - Inform them of the check-in process - - They come say hi to us 30’ before their session in #emacsconf-org or #emacsconf (they can use chat.emacsconf.org ) - - We get them set up in a room where they can wait until the end of the broadcast of their pretention - - They’re joined by the streamer and host. -- Warning about potential emergency changes + -Slightly more complex because of the conditionals +## Look for ways to reduce risk - (defun emacsconf-mail-checkin-instructions (group &optional template) - "Send checkin instructions. - GROUP is (email . (talk talk))" - (interactive (list (emacsconf-mail-complete-email-group - (seq-filter - (lambda (o) - (or - (string= (plist-get o :status) "CANCELLED") - (null (plist-get o :email)) - (string-match "after" (or (plist-get o :q-and-a) "")))) - (emacsconf-get-talk-info))))) - (let* ((talks (seq-remove - (lambda (o) - (or - (string= (plist-get o :status) "CANCELLED") - (null (plist-get o :email)) - (string-match "after" (or (plist-get o :q-and-a) "")) - (save-window-excursion - (emacsconf-with-talk-heading o - (re-search-forward "checkin instructions" (save-excursion (org-end-of-subtree)) t))))) - (cdr group))) - (waiting-talks (seq-find (lambda (o) (string= (plist-get o :status) "WAITING_FOR_PREREC")) talks))) - (when talks - (emacsconf-mail-prepare - (or template (emacsconf-mail-merge-get-template "checkin-at-conf")) - (car group) - (list - :year emacsconf-year - :base-url emacsconf-base-url - :conf-name emacsconf-name - :email (plist-get (car talks) :email) - :emergency emacsconf-emergency-contact - :plural (if (> (length (cdr group)) 1) "s" "") - :speakers-short (plist-get (car talks) :speakers-short) - :url (mapconcat (lambda (o) (concat emacsconf-base-url (plist-get o :url))) - talks" , ") - :waiting - (cond - ((> (length waiting-talks) 1) - " If you can upload your talk videos before the conference, I think that might be much less stressful for everyone than doing it live. =) Please note that we will turn off the web-based upload on Dec 1 to free up memory on the server, so please upload them as early as you can.${wrap}") - ((= (length waiting-talks) 1) - " If you can upload your talk video before the conference, I think that might be much less stressful for everyone than doing it live. =) Please note that we will turn off the web-based upload on Dec 1 to free up memory on the server, so please upload it as early as you can.${wrap}") - (t "")) - :checkin-info - (mapconcat - (lambda (o) - (let ((base-checkin (format-time-string "%b %-d %-l:%M %p" (plist-get o :checkin-time) emacsconf-timezone)) - (speaker-checkin (format-time-string "%b %-d %-l:%M %p" (plist-get o :checkin-time) (plist-get o :timezone)))) - (emacsconf-replace-plist-in-string - (append (list :base-url emacsconf-base-url - :check-in - (concat - "Before " - base-checkin " in " emacsconf-timezone - (if (string= base-checkin speaker-checkin) - "" - (concat - ", which is the same as " speaker-checkin " in " (plist-get o :timezone))) "\n" - " (this is " (plist-get o :checkin-label) ")") - :qa-info-speakers - (cond - ;; aaaaah, no prerec yet - ((string= (plist-get o :status) "WAITING_FOR_PREREC") - (concat "Talk and Q&A BigBlueButton room: " (plist-get o :bbb-room))) - ((null (plist-get o :q-and-a)) "") - ((string-match "live" (plist-get o :q-and-a)) (concat "Q&A BigBlueButton room: " (plist-get o :bbb-room))) - ((string-match "irc" (plist-get o :q-and-a)) (concat "Q&A: " (plist-get o :channel) " (" (plist-get o :webchat-url) ")")) - ((string-match "pad" (plist-get o :q-and-a)) "Q&A: On the pad") - (t "Q&A: After the event"))) - o) - "- ${title} - Info and sched: ${base-url}${url} - Check-in: ${check-in} - Pad: ${pad-url} - ${qa-info-speakers}"))) - talks "\n\n"))) - (mapc (lambda (o) - (emacsconf-mail-log-message-when-sent o "Sent checkin instructions")) - talks)))) + -#### E-mail for speakers who are planning to be at the conference +### TODO Make copyable version of bbb redirect :derisk: -Hello, ${speakers-short}! -We’re looking forward to having you join us at EmacsConf! +### DONE Make sure all the important tasks are scheduled over the next two weeks -We’ve updated the schedule based on the submissions and cancellations, -and we’ll probably update the schedule even on the day of the -conference. You can get a rough idea of your schedule at the talk -pages with the URL${plural} below. You might want to check your talk -page${plural} some time next week to get a rough sense of where it is, -and then check it again on the day of your talk${plural}. Please let -me know if the times don’t work for you. - -We’ll try our best to keep your talk in the same general timeslot (ex: -Saturday morning, Saturday afternoon, Sunday morning, Sunday -afternoon). We’ve done some dry-runs, but just in case it turns out -that running two tracks at the same time leaves us too frazzled, we -may drop back to one track with Q&A on an alternate stream, like last -year. If there are big changes to your schedule on the day of your -talk${plural}, you’ll get an e-mail from us with a subject like -“URGENT: EmacsConf 2022: …”.${wrap} + (defun emacsconf-agenda () + (interactive) + (let* ((notebook (expand-file-name "index.org" (expand-file-name "organizers-notebook" (expand-file-name emacsconf-year emacsconf-directory)))) + (org-agenda-custom-commands + `(("a" "Agenda" + ((tags-todo "-PRIORITY=\"C\"-SCHEDULED={.}-nextyear" + ((org-agenda-files (list ,notebook)))) + (agenda "" + ((org-agenda-files (list ,notebook)) + (org-agenda-span 7))) + ))))) + (org-agenda nil "a"))) -Here’s your checkin info: -${checkin-info} + -Please check in early so that we can deal with scheduling changes or -technical issues. You can find the check-in process at -${base-url}${year}/speakers/ .${waiting} - -If something comes up, please let us know as soon as you can. Here’s -my emergency contact information: ${emergency} +## Facilitate Q&A -Thank you for sharing your time and energy with the EmacsConf community! -Sacha +### SOMEDAY Upload a presentation & enable for download – Blindside Networks Customer Support Portal -p.s. If you need to cancel, that’s okay too, life happens. Let me know -as soon as you can and I’ll try to shuffle things around. Thank you! +Low priority because people were able to do Q&A last year without us holding their hand +)%2C%20text%20documents%20(. -#### E-mail for speakers who are not planning to be around, but who have sent us their prerecs -Hello, ${name}! + -Thank you so much for contributing a talk for EmacsConf ${year}! We’re -looking forward to collecting questions and forwarding them to you by -e-mail after the conference. We’ll also post the prerecording at the -time that it gets streamed, so people will be able to access it at -${url} once it has gone live. +## Prepare intros for the hosts to read :sachac: -If it turns out that you can make it to the conference after all, feel -free to drop us a line at #emacsconf-org and we’ll let people know -you’re around. You can find the check-in process at - . + +also in :INTRO\_NOTE: in conf.org so that we can plop it into the hyperlists. -Thank you again for being part of EmacsConf ${year}! -Sacha +### TODO Write intros for all the other talks -### TODO Draft e-mail to send speakers who may need to do it live +### DONE Set up Etherpad with the talks and see if we can involve the speakers and captioning volunteers :sachac: @@ -660,17 +472,17 @@ so that we don’t get surprised by missing or corrupted videos -## TODO Plan in-case-of-emergency schedule for dropping back to one track after Saturday morning :sachac: +## Plan in-case-of-emergency schedule for dropping back to one track after Saturday morning :sachac:derisk: 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. -### STARTED Update conf.org and the wiki based on the selected schedule +### STARTED Update conf.org and the wiki based on the selected emergency schedule -### TODO Give speakers a heads-up regarding schedule tweaks and the potential for bigger schedule changes +### DONE Give speakers a heads-up regarding schedule tweaks and the potential for bigger schedule changes ### TODO Draft the code for mailing all the affected speakers @@ -693,6 +505,8 @@ We also need a quick way to update the schedule. ### TODO Get the emergency schedule sorted out so that we can easily switch to it +It needs to be applied + @@ -730,11 +544,16 @@ Also add to watch page Maybe links to the current shift’s pads -### TODO Add pad to sched directive so that it will be linked when the pads are live +### DONE Add pad to sched directive so that it will be linked when the pads are live ### TODO Update as well +Ansible or Emacs Lisp? Emacs Lisp +control the status too + +also 2022/ and 2022/watch + @@ -777,15 +596,12 @@ 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 Check process for posting prerecs to the talk page and media directory as soon as the talk is live :sachac: Move to public directory and create a link from the backstage directory Update the wiki page -### TODO Check process for posting prerecs to the talk page and media directory as soon as the talk is live :sachac: - - ### DONE Prepare to announce talks on IRC @@ -801,15 +617,12 @@ emacsconf-erc.el in the emacsconf-el repo -## STARTED Set up stream events on Toobnix and YouTube :sachac:stream: +## DONE Set up stream events on Toobnix and YouTube :sachac:stream: so that people on other platforms can come across EmacsConf -### TODO Write the restreaming shell scripts - - -#### TODO Restream-gen-youtube +### DONE Write the restreaming shell scripts ### DONE Create the events and save the keys :sachac: @@ -832,6 +645,10 @@ Creating the events This is for the general track of EmacsConf, the conference about the joy of Emacs and Emacs Lisp. +Schedule: +Saturday Dec 3, 2022, 9 AM - 12 PM EST, 1 PM - 5 PM EST +Sunday Dec 4, 2022, 9 AM - 12 PM EST, 1 PM - 5 PM EST + Watch using free/open source software: Conference info: Schedule: @@ -846,6 +663,10 @@ International (CC BY-SA 4.0) license. Please observe the guidelines for conduct: This is for the development track of EmacsConf, the conference about the joy of Emacs and Emacs Lisp. +Schedule: +Saturday Dec 3, 2022, 9 AM - 12 PM EST, 1 PM - 5 PM EST +Sunday Dec 4, 2022, 9 AM - 12 PM EST, 1 PM - 5 PM EST + Watch using free/open source software: Conference info: Schedule: @@ -953,12 +774,12 @@ so that nginx can have more memory and we don’t risk slowdowns -## STARTED Review notebook for tasks, priorities, and scheduling +## DONE Review notebook for tasks, priorities, and scheduling -## INPROGRESS Use Mumble for backchannel coordination and also on-stage +## Use Mumble for backchannel coordination and also on-stage [2022-11-19 Sat] 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 @@ -1011,7 +832,7 @@ Sacha ### DONE Generate certificates, add them to conf.org, and register the users :sachac: -### WAITING Set up Mumble and bring the volunteers on board +### DONE Set up Mumble and bring the volunteers on board @@ -1042,19 +863,27 @@ Sacha - + - +
jman X [2022-11-21 Mon] access granted, briefed
vetrivln X[2022-11-19 Sat] access granted, needs to figure out audio[2022-11-19 Sat] access granted, briefed
+### TODO set up Mumble channels for host-dev and host-gen? + +zaeph wants to make it easy to talk to the host without distracting them all the time + + +### DONE add dry-run check of whispering to hosts + + ## Satellite events @@ -1063,12 +892,14 @@ Sacha ### Zurich -#### TODO Link to them on the wiki :bandali: +#### DONE Link to satellite events on the wiki :bandali: +on the watch page + -#### TODO announce on the emacsconf-discuss mailing list :bandali: +#### DONE announce on the emacsconf-discuss mailing list :bandali: @@ -1080,7 +911,7 @@ Sacha -## TODO Make a linear hyperlist for managing EmacsConf :sachac: +## Make a linear hyperlist for managing EmacsConf :sachac: Goal: @@ -1133,6 +964,9 @@ Try them in an Etherpad ### TODO Make backstage redirects for pad and qa so that hosts and streamers can have an easier time +### TODO Regenerate hyperlist if sched changes + + ## TODO Record intro/outro for day-1 and day-2 :zaeph: @@ -1314,7 +1148,7 @@ add to /etc/dehydrated/domains.txt sudo sh -x /etc/cron.daily/renew-https-cert-local -### TODO Link to pad from talk page +### DONE Link to pad from talk page ### DONE Add links to general conference pad @@ -1337,19 +1171,145 @@ if we can get the anchor plugin -# Ideas for next year +# Ideas for next year :nextyear: ## SOMEDAY might be interesting to have dual monitors next year +## SOMEDAY Suggest public submissions next time + +would it be interesting to see if other people can build on what’s submitted? + + +## SOMEDAY Match /names with speakers, maybe make a page with people currently online + + +## SOMEDAY EmacsWiki: Erc Robot + + + +After I get ikiwiki sorted out, I can use Erc to control it so that I can test it a lot before letting it mess with the real thing + +Goals: +Update schedule +Publish prerec when talk is playing + + +## TODO Consider making a bot to support announcing, updating, publishing, who’s here, announcing when speakers are here + + + +- announces: + - $talk will start in $min minutes + - $talk has just begun + - $talk has just finished +- seen + + +## SOMEDAY indentation - CSS - successive indenting of siblings after headings - Stack Overflow + + + + +## SOMEDAY html - Indent everything after h1, h2, etc. before the next, one, while stacking the indents, with CSS - Stack Overflow + + + + +## Video + + +### SOMEDAY infrastructure/source-recording.sh at master · FOSDEM/infrastructure + + + + +### SOMEDAY c3voc/voctomix - Docker Image | Docker Hub + + + + +### SOMEDAY DebConf video team / vogol · GitLab + + + + +### SOMEDAY roles/vogol · master · DebConf video team / ansible · GitLab web interface for voctomix + + + + +### SOMEDAY CarlFK/veyepar: Video Eyeball Processor and Review + + + + +### SOMEDAY timvideos/streaming-system: Tim Video’s - Live Streaming for user groups and other events. + + + + +### SOMEDAY — DebConf Videoteam Ansible documentation + + + + +### SOMEDAY DebConf video team / ansible · GitLab + + + + +## SOMEDAY handprint · PyPI + + +That might be interesting for reviewing text recognition output + + +## TODO Update websocket + + +## TODO Idea for next year: save talk details in an org note so that I can easily send e-mails comparing previous with current + + + + +## DONE What ideas do we want to borrow from other conferences? + +- FOSDEM had a conference track + - +- DebConf + - Thorough documentation at + - + - Ansible: , + - SReview for cutting videos? + - + - Pentabarf + - Schedule shows local time and DebConf time: +- LibrePlanet + + - libreadventure, minetest? + + - : 4-person team, post-prod, break commercials + + +### SOMEDAY virtual-conf-resources/foss-north.md at master · e8johan/virtual-conf-resources + + + + +### SOMEDAY e8johan/virtual-conf-resources: Resources for virtual conferences + + + + # Things to figure out / decisions to make - [How do we want to coordinate during the conference itself?](#coordination) - [How do we want to make the full schedule more manageable?](#sched-decision) -- [Do we want to skip the closed Q&A and go straight to open?](#org2abb62c) +- [Do we want to skip the closed Q&A and go straight to open?](#org170f667) - [How much do we want to enrich the wiki with JS?](#wiki-design) - [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) @@ -1428,7 +1388,7 @@ Shifts will be Sat AM, Sat PM, Sun AM, or Sun PM per track. People can take mult - Better for the viewers and the volunteers - + ## Do we want to skip the closed Q&A and go straight to open? @@ -1671,25 +1631,6 @@ Options: - Reduces merge conflict potential -### DONE What ideas do we want to borrow from other conferences? - -- FOSDEM had a conference track - - -- DebConf - - Thorough documentation at - - - - Ansible: , - - SReview for cutting videos? - - - - Pentabarf - - Schedule shows local time and DebConf time: -- LibrePlanet - - - libreadventure, minetest? - - - : 4-person team, post-prod, break commercials - - ## SOMEDAY Think about what to do with schedule gaps due to cancelled talks :thoughts: @@ -1810,7 +1751,7 @@ AM: 9-12 PM EST, PM: 1-5 PM EST (plus a little extra for setup/transition) Saturday Dec 3 - +
@@ -1824,6 +1765,8 @@ Saturday Dec 3 ++ @@ -1834,6 +1777,7 @@ Saturday Dec 3 + @@ -1845,6 +1789,7 @@ Saturday Dec 3 + @@ -1855,6 +1800,7 @@ Saturday Dec 3 + @@ -1865,6 +1811,7 @@ Saturday Dec 3 + @@ -1875,6 +1822,7 @@ Saturday Dec 3 +
Checkin IRC PadCoord
sachac sachac publicvoitsachac
FlowyCoder dto publicvoitsachac
sachac dto  sachac
FlowyCoder vetrivln  sachac
@@ -1883,7 +1831,7 @@ publicvoit - pad until 4pm on Sat, until 2pm on Sun Sunday Dec 4 - +
@@ -1897,6 +1845,8 @@ Sunday Dec 4 ++ @@ -1907,6 +1857,7 @@ Sunday Dec 4 + @@ -1918,6 +1869,7 @@ Sunday Dec 4 + @@ -1928,6 +1880,7 @@ Sunday Dec 4 + @@ -1938,6 +1891,7 @@ Sunday Dec 4 + @@ -1948,6 +1902,7 @@ Sunday Dec 4 +
Checkin IRC PadCoord
sachac sachac publicvoitsachac
FlowyCoder dto publicvoitsachac
sachac dto  sachac
FlowyCoder vetrivln  sachac
@@ -2464,42 +2419,10 @@ ansible-playbook -i inventory.yml prod-playbook.yml –tags media,stream ### Set up MPV for captions +mpv.conf profile tips are now at . -#### mpv profile - -Add the following profile to `~/.config/mpv/mpv.conf`. You can also change the font to whatever you prefer. - # Uncomment the profile line to load the profile by default - # Otherwise, use `--profile=emacsconf-talks` - # profile=emacsconf-talks - - # Positioning - video-zoom=-0.15 - video-align-x=1 - video-align-y=-1 - sub-use-margins=yes - sub-scale-by-window=yes - sub-pos=103 - sub-margin-x=110 - sub-margin-y=60 - sub-align-x=left - # Style - sub-font="Clear Sans Bold" - sub-color="1/0.82/0" - sub-blur=0.2 - sub-scale=0.9 - sub-font-size=30 - sub-border-size=0 - sub-border-color=0/1 - sub-shadow-color=0/1 - sub-shadow-offset=1.2 - sub-ass-force-style=Kerning=yes - sub-ass-line-spacing=0 - -(Thanks, zaeph) - - -#### Font: Clear Sans +#### Suggested font: Clear Sans Links: @@ -2720,6 +2643,9 @@ Exception: [CHECK is unavailable](#check-gone) ##### media directory +#### TODO Fix mapconcat error in updating task status + + ### Handle Q&A Exceptions: @@ -2944,7 +2870,7 @@ Probably focus on grabbing the audio first and seeing what’s worth keeping Make a table of the form - +
@@ -4597,6 +4523,14 @@ Overlay considerations: ![img](https://gitlab.com/akshay196/emacsconf-artwork/-/blob/main/2022/talk-banner/sample.svg) +### TODO Make a list of different things to plug during commercial breaks, like Mastodon :sachac: + + +### TODO Make Q&A process slide :sachac: + +Raise hands + + ## DONE Find volunteers for tech-checks :zaeph: @@ -4665,6 +4599,35 @@ see conf.org for the rest of the process - jman: sun-pm-gen +### DONE Doublecheck mute on join + +[Shifts](file:///home/sacha/proj/emacsconf/wiki/2022/organizers-notebook/index.md) + + list = [...document.querySelectorAll('.room-name-editable')].filter((o) => o.value.match(/^ec22-(sat|sun)/)); + list.reduce(async(prev, elem) => { + await prev; + if (!sessionStorage.getItem(elem.value)) { + return new Promise(async (resolve, reject) => { + card = elem.closest('.card-body'); + card.querySelector('.item-action.dropdown a').click(); + await new Promise(r => setTimeout(r, 1000)); + card.querySelector('.update-room').click(); + await new Promise(r => setTimeout(r, 1000)); + if (!document.querySelector('#room_mute_on_join').checked) { + document.querySelector('#room_mute_on_join').click(); + sessionStorage.setItem(elem.value, true); + await new Promise(r => setTimeout(r, 1000)); + document.querySelector('.update-only.create-room-button').click(); + } else { + sessionStorage.setItem(elem.value, true); + document.querySelector('#createRoomModal').click(); + } + resolve(true); + }); + } + }); + + ## DONE Coordinate and help volunteers :sachac: @@ -5037,6 +5000,22 @@ so that the streamer can adjust volume offscreen? [Think about what to do with schedule gaps due to cancelled talks](file:///home/sacha/proj/emacsconf/wiki/2022/organizers-notebook/index.md) +### TODO Separate mumble audio so that panic button can still bring in our audio + + +### SOMEDAY Prepare for rms talk and Q&A with bandali + +Mumble? + + +#### TODO Reflow and edit VTT for RMS TEDx talk so that things are on one line + + + + +### TODO Add panic button to OBS settings + + ## DONE Smoothen captioning workflow :sachac: @@ -5253,6 +5232,232 @@ Note on how DebConf handled incidents: +## DONE Write check-in email :sachac: + + +### DONE Switch all the rooms to allow anyone to start them - one less step for the check-in person + + //list = [...document.querySelectorAll('.room-name-editable')].filter((o) => o.value.match(/^ec22-(sat|sun)/)); + card = document.querySelector('a[href=\"%s\"] .card-body'); + card.querySelector('.item-action.dropdown a').click() + card.querySelector('.update-room').click() + if (!document.querySelector('#room_anyone_can_start').checked) { + document.querySelector('#room_anyone_can_start').click(); + } + document.querySelector('.update-only.create-room-button').click(); + +okay, next thing, it automatically refreshes. so I can’t run the whole Javascript, I need to xdotool it. + + (setq list (mapcar (lambda (o) (plist-get o :bbb-room)) (emacsconf-get-talk-info))) + (setq list (seq-drop list (seq-position list "https://bbb.emacsverse.org/b/sac-rvc-kd2-pev"))) + (progn + (setq item (pop list)) + (when (string-match "/b/\\(.*\\)" item) + (kill-new (format "card = document.querySelector('a[href=\"%s\"] .card-body'); + card.querySelector('.item-action.dropdown a').click() + card.querySelector('.update-room').click() + if (!document.querySelector('#room_anyone_can_start').checked) { + document.querySelector('#room_anyone_can_start').click(); + } + document.querySelector('.update-only.create-room-button').click(); + " + (match-string 0 item))) + (sleep-for 2) + (shell-command "xdotool key alt+Tab"))) + +Relying on xdotool seems a little fragile. Let’s just check the page +itself for the next one that needs to be done. + + list = [...document.querySelectorAll('.room-name-editable')].filter((o) => o.value.match(/^ec22-(sat|sun)/)); + list.reduce(async(prev, elem) => { + await prev; + if (!sessionStorage.getItem(elem.value)) { + return new Promise((resolve, reject) => { + card = elem.closest('.card-body'); + card.querySelector('.item-action.dropdown a').click(); + card.querySelector('.update-room').click(); + sessionStorage.setItem(elem.value, true); + setTimeout(function() { + if (!document.querySelector('#room_anyone_can_start').checked) { + document.querySelector('#room_anyone_can_start').click(); + document.querySelector('.update-only.create-room-button').click(); + } else { + document.querySelector('#createRoomModal').click(); + } + resolve(true); + }, 500); + }); + } + }); + + +### DONE Update checkin instructions + + +### Templates + +Goals: + +- Ask speaker verify their scheduled time + It has already been confirmed with them, but it might have changed slightly + - HOW: They should check the time at the top of their talk page on the day of the conference +- Double-check Q&A preference, encourage tech checks for live talks/Q&A + - If they are available: + - Direct to tech-checks via + - Inform them of the check-in process + - They come say hi to us 30’ before their session in #emacsconf-org or #emacsconf (they can use chat.emacsconf.org ) + - We get them set up in a room where they can wait until the end of the broadcast of their pretention + - They’re joined by the streamer and host. +- Warning about potential emergency changes + +Slightly more complex because of the conditionals + + (defun emacsconf-mail-checkin-instructions (group &optional template) + "Send checkin instructions. + GROUP is (email . (talk talk))" + (interactive (list (emacsconf-mail-complete-email-group + (seq-filter + (lambda (o) + (or + (string= (plist-get o :status) "CANCELLED") + (null (plist-get o :email)) + (string-match "after" (or (plist-get o :q-and-a) "")))) + (emacsconf-get-talk-info))))) + (let* ((talks (seq-remove + (lambda (o) + (or + (string= (plist-get o :status) "CANCELLED") + (null (plist-get o :email)) + (string-match "after" (or (plist-get o :q-and-a) "")) + (save-window-excursion + (emacsconf-with-talk-heading o + (re-search-forward "checkin instructions" (save-excursion (org-end-of-subtree)) t))))) + (cdr group))) + (waiting-talks (seq-find (lambda (o) (string= (plist-get o :status) "WAITING_FOR_PREREC")) talks))) + (when talks + (emacsconf-mail-prepare + (or template (emacsconf-mail-merge-get-template "checkin-at-conf")) + (car group) + (list + :year emacsconf-year + :base-url emacsconf-base-url + :conf-name emacsconf-name + :email (plist-get (car talks) :email) + :emergency emacsconf-emergency-contact + :plural (if (> (length (cdr group)) 1) "s" "") + :speakers-short (plist-get (car talks) :speakers-short) + :url (mapconcat (lambda (o) (concat emacsconf-base-url (plist-get o :url))) + talks" , ") + :waiting + (cond + ((> (length waiting-talks) 1) + " If you can upload your talk videos before the conference, I think that might be much less stressful for everyone than doing it live. =) Please note that we will turn off the web-based upload on Dec 1 to free up memory on the server, so please upload them as early as you can.${wrap}") + ((= (length waiting-talks) 1) + " If you can upload your talk video before the conference, I think that might be much less stressful for everyone than doing it live. =) Please note that we will turn off the web-based upload on Dec 1 to free up memory on the server, so please upload it as early as you can.${wrap}") + (t "")) + :checkin-info + (mapconcat + (lambda (o) + (let ((base-checkin (format-time-string "%b %-d %-l:%M %p" (plist-get o :checkin-time) emacsconf-timezone)) + (speaker-checkin (format-time-string "%b %-d %-l:%M %p" (plist-get o :checkin-time) (plist-get o :timezone)))) + (emacsconf-replace-plist-in-string + (append (list :base-url emacsconf-base-url + :check-in + (concat + "Before " + base-checkin " in " emacsconf-timezone + (if (string= base-checkin speaker-checkin) + "" + (concat + ", which is the same as " speaker-checkin " in " (plist-get o :timezone))) "\n" + " (this is " (plist-get o :checkin-label) ")") + :qa-info-speakers + (cond + ;; aaaaah, no prerec yet + ((string= (plist-get o :status) "WAITING_FOR_PREREC") + (concat "Talk and Q&A BigBlueButton room: " (plist-get o :bbb-room))) + ((null (plist-get o :q-and-a)) "") + ((string-match "live" (plist-get o :q-and-a)) (concat "Q&A BigBlueButton room: " (plist-get o :bbb-room))) + ((string-match "irc" (plist-get o :q-and-a)) (concat "Q&A: " (plist-get o :channel) " (" (plist-get o :webchat-url) ")")) + ((string-match "pad" (plist-get o :q-and-a)) "Q&A: On the pad") + (t "Q&A: After the event"))) + o) + "- ${title} + Info and sched: ${base-url}${url} + Check-in: ${check-in} + Pad: ${pad-url} + ${qa-info-speakers}"))) + talks "\n\n"))) + (mapc (lambda (o) + (emacsconf-mail-log-message-when-sent o "Sent checkin instructions")) + talks)))) + + +#### E-mail for speakers who are planning to be at the conference + +Hello, ${speakers-short}! + +We’re looking forward to having you join us at EmacsConf! + +We’ve updated the schedule based on the submissions and cancellations, +and we’ll probably update the schedule even on the day of the +conference. You can get a rough idea of your schedule at the talk +pages with the URL${plural} below. You might want to check your talk +page${plural} some time next week to get a rough sense of where it is, +and then check it again on the day of your talk${plural}. Please let +me know if the times don’t work for you. + +We’ll try our best to keep your talk in the same general timeslot (ex: +Saturday morning, Saturday afternoon, Sunday morning, Sunday +afternoon). We’ve done some dry-runs, but just in case it turns out +that running two tracks at the same time leaves us too frazzled, we +may drop back to one track with Q&A on an alternate stream, like last +year. If there are big changes to your schedule on the day of your +talk${plural}, you’ll get an e-mail from us with a subject like +“URGENT: EmacsConf 2022: …”.${wrap} + +Here’s your checkin info: + +${checkin-info} + +Please check in early so that we can deal with scheduling changes or +technical issues. You can find the check-in process at +${base-url}${year}/speakers/ .${waiting} + +If something comes up, please let us know as soon as you can. Here’s +my emergency contact information: ${emergency} + +Thank you for sharing your time and energy with the EmacsConf community! + +Sacha + +p.s. If you need to cancel, that’s okay too, life happens. Let me know +as soon as you can and I’ll try to shuffle things around. Thank you! + + +#### E-mail for speakers who are not planning to be around, but who have sent us their prerecs + +Hello, ${name}! + +Thank you so much for contributing a talk for EmacsConf ${year}! We’re +looking forward to collecting questions and forwarding them to you by +e-mail after the conference. We’ll also post the prerecording at the +time that it gets streamed, so people will be able to access it at +${url} once it has gone live. + +If it turns out that you can make it to the conference after all, feel +free to drop us a line at #emacsconf-org and we’ll let people know +you’re around. You can find the check-in process at + . + +Thank you again for being part of EmacsConf ${year}! + +Sacha + + +### CANCELLED Draft e-mail to send speakers who may need to do it live + + # Communications diff --git a/2022/organizers-notebook/index.org b/2022/organizers-notebook/index.org index 49fa75f7..d42745e4 100644 --- a/2022/organizers-notebook/index.org +++ b/2022/organizers-notebook/index.org @@ -123,8 +123,8 @@ SCHEDULED: <2022-11-21 Mon> :PROPERTIES: :CREATED: [2022-11-21 Mon 06:45] :END: -*** STARTED Make sure all the important tasks are scheduled over the next two weeks -SCHEDULED: <2022-11-21 Mon> +*** DONE Make sure all the important tasks are scheduled over the next two weeks +CLOSED: [2022-11-21 Mon 14:49] SCHEDULED: <2022-11-21 Mon> :PROPERTIES: :Effort: 0:30 :QUANTIFIED: Emacs @@ -383,8 +383,8 @@ emacsconf-erc.el in the emacsconf-el repo - a small announcement might go into the hallway and emacsconf-org - announcement can include talk page, pad, IRC nick, pronouns -** STARTED [#A] Set up stream events on Toobnix and YouTube :sachac:stream: -SCHEDULED: <2022-11-21 Mon> +** DONE [#A] Set up stream events on Toobnix and YouTube :sachac:stream: +CLOSED: [2022-11-21 Mon 14:49] SCHEDULED: <2022-11-21 Mon> :PROPERTIES: :CUSTOM_ID: other-streams :Effort: 0:30 @@ -395,19 +395,13 @@ 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 -*** STARTED [#A] Write the restreaming shell scripts -SCHEDULED: <2022-11-24 Thu> +*** DONE [#A] Write the restreaming shell scripts +CLOSED: [2022-11-21 Mon 14:49] SCHEDULED: <2022-11-24 Thu> :PROPERTIES: :Effort: 0:30 :END: :LOGBOOK: -CLOCK: [2022-11-21 Mon 13:56] -:END: - -**** TODO Restream-gen-youtube -SCHEDULED: <2022-11-24 Thu> -:PROPERTIES: -:CREATED: [2022-11-19 Sat 13:32] +CLOCK: [2022-11-21 Mon 13:56]--[2022-11-21 Mon 14:49] => 0:53 :END: *** DONE Create the events and save the keys :sachac: @@ -617,26 +611,27 @@ Sacha *** DONE Generate certificates, add them to conf.org, and register the users :sachac: CLOSED: [2022-11-08 Tue 11:33] -*** WAITING Set up Mumble and bring the volunteers on board -SCHEDULED: <2022-11-26 Sat> +*** DONE Set up Mumble and bring the volunteers on board +CLOSED: [2022-11-21 Mon 18:07] SCHEDULED: <2022-11-26 Sat> :PROPERTIES: :CREATED: [2022-11-19 Sat 07:59] :END: -| | Emailed | Onboarded | -|------------+---------+------------------------------------------------------------| -| FlowyCoder | X | [2022-11-19 Sat] access granted, briefed | -| jman | X | | -| vetrivln | X | [2022-11-19 Sat] access granted, needs to figure out audio | +| | Emailed | Onboarded | +|------------+---------+------------------------------------------| +| FlowyCoder | X | [2022-11-19 Sat] access granted, briefed | +| jman | X | [2022-11-21 Mon] access granted, briefed | +| vetrivln | X | [2022-11-19 Sat] access granted, briefed | *** TODO set up Mumble channels for host-dev and host-gen? SCHEDULED: <2022-11-25 Fri> :PROPERTIES: :CREATED: [2022-11-20 Sun 10:38] :END: +zaeph wants to make it easy to talk to the host without distracting them all the time -*** TODO add dry-run check of whispering to hosts -SCHEDULED: <2022-11-25 Fri> +*** DONE add dry-run check of whispering to hosts +CLOSED: [2022-11-21 Mon 18:09] SCHEDULED: <2022-11-25 Fri> :PROPERTIES: :CREATED: [2022-11-20 Sun 10:34] :END: @@ -1507,23 +1502,23 @@ AM: 9-12 PM EST, PM: 1-5 PM EST (plus a little extra for setup/transition) Saturday Dec 3 #+NAME: saturday-shifts -| | Host | Streamer | Checkin | IRC | Pad | -|--------+----------+----------+------------+----------+------------| -| Gen AM | zaeph | corwin | sachac | sachac | publicvoit | -| Gen PM | zaeph | corwin | FlowyCoder | dto | publicvoit | -| Dev AM | bandali | bandali | sachac | dto | | -| Dev PM | vetrivln | bandali | FlowyCoder | vetrivln | | +| | Host | Streamer | Checkin | IRC | Pad | Coord | +|--------+----------+----------+------------+----------+------------+--------| +| Gen AM | zaeph | corwin | sachac | sachac | publicvoit | sachac | +| Gen PM | zaeph | corwin | FlowyCoder | dto | publicvoit | sachac | +| Dev AM | bandali | bandali | sachac | dto | | sachac | +| Dev PM | vetrivln | bandali | FlowyCoder | vetrivln | | sachac | publicvoit - pad until 4pm on Sat, until 2pm on Sun Sunday Dec 4 #+NAME: sunday-shifts -| | Host | Streamer | Checkin | IRC | Pad | -|--------+----------+----------+------------+----------+------------| -| Gen AM | zaeph | corwin | sachac | sachac | publicvoit | -| Gen PM | zaeph | jman | FlowyCoder | dto | publicvoit | -| Dev AM | bandali | bandali | sachac | dto | | -| Dev PM | vetrivln | bandali | FlowyCoder | vetrivln | | +| | Host | Streamer | Checkin | IRC | Pad | Coord | +|--------+----------+----------+------------+----------+------------+--------| +| Gen AM | zaeph | corwin | sachac | sachac | publicvoit | sachac | +| Gen PM | zaeph | jman | FlowyCoder | dto | publicvoit | sachac | +| Dev AM | bandali | bandali | sachac | dto | | sachac | +| Dev PM | vetrivln | bandali | FlowyCoder | vetrivln | | sachac | Backups: - dev host/streamer: bandali, sachac @@ -1576,7 +1571,7 @@ Interested in a shift? Please e-mail [[mailto:emacsconf-org-private@gnu.org]] an #+RESULTS: :results: -(setq emacsconf-shifts (list (list :id "sat-am-gen" :track "General" :start "2022-12-03T08:00:00-0500" :end "2022-12-03T12:00:00-0500" :host "zaeph" :streamer "corwin" :checkin "sachac" :irc "sachac" :pad "publicvoit") (list :id "sat-pm-gen" :track "General" :start "2022-12-03T13:00:00-0500" :end "2022-12-03T18:00:00-0500" :host "zaeph" :streamer "corwin" :checkin "FlowyCoder" :irc "dto" :pad "publicvoit") (list :id "sat-am-dev" :track "Development" :start "2022-12-03T08:00:00-0500" :end "2022-12-03T12:00:00-0500" :host "bandali" :streamer "bandali" :checkin "sachac" :irc "dto") (list :id "sat-pm-dev" :track "Development" :start "2022-12-03T13:00:00-0500" :end "2022-12-03T18:00:00-0500" :host "vetrivln" :streamer "bandali" :checkin "FlowyCoder" :irc "vetrivln") (list :id "sun-am-gen" :track "General" :start "2022-12-04T08:00:00-0500" :end "2022-12-04T12:00:00-0500" :host "zaeph" :streamer "corwin" :checkin "sachac" :irc "sachac" :pad "publicvoit") (list :id "sun-pm-gen" :track "General" :start "2022-12-04T13:00:00-0500" :end "2022-12-04T18:00:00-0500" :host "zaeph" :streamer "jman" :checkin "FlowyCoder" :irc "dto" :pad "publicvoit") (list :id "sun-am-dev" :track "Development" :start "2022-12-04T08:00:00-0500" :end "2022-12-04T12:00:00-0500" :host "bandali" :streamer "bandali" :checkin "sachac" :irc "dto") (list :id "sun-pm-dev" :track "Development" :start "2022-12-04T13:00:00-0500" :end "2022-12-04T18:00:00-0500" :host "vetrivln" :streamer "bandali" :checkin "FlowyCoder" :irc "vetrivln"))) +(setq emacsconf-shifts (list (list :id "sat-am-gen" :track "General" :start "2022-12-03T08:00:00-0500" :end "2022-12-03T12:00:00-0500" :host "zaeph" :streamer "corwin" :checkin "sachac" :irc "sachac" :pad "publicvoit" :coord "sachac") (list :id "sat-pm-gen" :track "General" :start "2022-12-03T13:00:00-0500" :end "2022-12-03T18:00:00-0500" :host "zaeph" :streamer "corwin" :checkin "FlowyCoder" :irc "dto" :pad "publicvoit" :coord "sachac") (list :id "sat-am-dev" :track "Development" :start "2022-12-03T08:00:00-0500" :end "2022-12-03T12:00:00-0500" :host "bandali" :streamer "bandali" :checkin "sachac" :irc "dto" :coord "sachac") (list :id "sat-pm-dev" :track "Development" :start "2022-12-03T13:00:00-0500" :end "2022-12-03T18:00:00-0500" :host "vetrivln" :streamer "bandali" :checkin "FlowyCoder" :irc "vetrivln" :coord "sachac") (list :id "sun-am-gen" :track "General" :start "2022-12-04T08:00:00-0500" :end "2022-12-04T12:00:00-0500" :host "zaeph" :streamer "corwin" :checkin "sachac" :irc "sachac" :pad "publicvoit" :coord "sachac") (list :id "sun-pm-gen" :track "General" :start "2022-12-04T13:00:00-0500" :end "2022-12-04T18:00:00-0500" :host "zaeph" :streamer "jman" :checkin "FlowyCoder" :irc "dto" :pad "publicvoit" :coord "sachac") (list :id "sun-am-dev" :track "Development" :start "2022-12-04T08:00:00-0500" :end "2022-12-04T12:00:00-0500" :host "bandali" :streamer "bandali" :checkin "sachac" :irc "dto" :coord "sachac") (list :id "sun-pm-dev" :track "Development" :start "2022-12-04T13:00:00-0500" :end "2022-12-04T18:00:00-0500" :host "vetrivln" :streamer "bandali" :checkin "FlowyCoder" :irc "vetrivln" :coord "sachac"))) :end: ** After the conference @@ -1976,40 +1971,9 @@ ansible-playbook -i inventory.yml prod-playbook.yml --tags media,stream :CUSTOM_ID: mpv-captions :END: -**** mpv profile -Add the following profile to ~~/.config/mpv/mpv.conf~. You can also change the font to whatever you prefer. - -#+begin_src conf :eval no -# Uncomment the profile line to load the profile by default -# Otherwise, use `--profile=emacsconf-talks` -# profile=emacsconf-talks - -# Positioning -video-zoom=-0.15 -video-align-x=1 -video-align-y=-1 -sub-use-margins=yes -sub-scale-by-window=yes -sub-pos=103 -sub-margin-x=110 -sub-margin-y=60 -sub-align-x=left -# Style -sub-font="Clear Sans Bold" -sub-color="1/0.82/0" -sub-blur=0.2 -sub-scale=0.9 -sub-font-size=30 -sub-border-size=0 -sub-border-color=0/1 -sub-shadow-color=0/1 -sub-shadow-offset=1.2 -sub-ass-force-style=Kerning=yes -sub-ass-line-spacing=0 -#+end_src +mpv.conf profile tips are now at https://emacsconf.org/mpv/ . -(Thanks, zaeph) -**** Font: Clear Sans +**** Suggested font: Clear Sans Links: - tar.gz with all fonts: [[https://zaeph.tk/files/emacsconf/captions/fonts.tar.gz][from zaeph's server]] (more convenient) - WOFF from GitHub repo: [[https://github.com/intel/clear-sans/tree/main/WOFF][clear-sans/WOFF at main · intel/clear-sans]] diff --git a/2022/watch.md b/2022/watch.md index 3955dcdb..7bb5676f 100644 --- a/2022/watch.md +++ b/2022/watch.md @@ -34,3 +34,4 @@ the talk pages once we process them. Physical events: - [Lucerne](https://200ok.ch/posts/2022-11-01_emacsconf__with_a_new_physical_venue.html) + -- cgit v1.2.3