summaryrefslogtreecommitdiffstats
path: root/2022/organizers-notebook.md
diff options
context:
space:
mode:
authorSacha Chua <sacha@sachachua.com>2022-10-22 09:45:00 -0400
committerSacha Chua <sacha@sachachua.com>2022-10-22 09:45:00 -0400
commit4175b2d919546a1c6daa5a473a404bb94fd59b37 (patch)
treeb19953ff594857ab50ef0478e5179663448eb02f /2022/organizers-notebook.md
parent3d17c57f473391fdd2e5cf4ff99c778e6748a06b (diff)
downloademacsconf-wiki-4175b2d919546a1c6daa5a473a404bb94fd59b37.tar.xz
emacsconf-wiki-4175b2d919546a1c6daa5a473a404bb94fd59b37.zip
Update tasks
Diffstat (limited to '2022/organizers-notebook.md')
-rw-r--r--2022/organizers-notebook.md583
1 files changed, 360 insertions, 223 deletions
diff --git a/2022/organizers-notebook.md b/2022/organizers-notebook.md
index 6b17a943..465911d6 100644
--- a/2022/organizers-notebook.md
+++ b/2022/organizers-notebook.md
@@ -23,31 +23,29 @@ This file is automatically exported from [/2022/organizers-notebook/index.org](/
Time-sensitive tasks:
- [Send schedule-published email for emacsconf-discuss](#announce-program):needsowner:timesensitive:email:
-- [Prepare email for nudging speakers to send prerec, and inform on upload workflow](#mail-upload):timesensitive:needsowner:
-- [Write volunteer update 2022-10-23](#volunteer-2022-10-23)
+- [Write volunteer update 2022-10-23](#volunteer-2022-10-23):update:
Other projects:
- [Coordinate and help volunteers](#coordinate-volunteers):sachac:
- [Prepare for prerecs](#prepare-prerec-process):zaeph:
-- [Investigate streaming options, maybe OBS in the cloud](#streaming):corwin:
- [Work on the OBS scenes](#obs-scenes):zaeph:corwin:
- [Build up the ansible playbook](#ansible):sachac:opal:
-- [Make something to display between talks](#intro)
+- [Make something to display between talks](#intro):sachac:
- [Create protocol for live Q&A](#live-protocol):zaeph:
-- [Add nice-to-have stuff to prepare.md](#extra-prepare):zaeph:
- [Find volunteers for tech-checks](#tech-checks):zaeph:
+- [Smoothen captioning workflow](#caption-workflow):sachac:
- [Update viewing instructions and watch pages](#write-viewing):sachac:
- [Prepare to handle talk state changes](#publish-live):sachac:
- [Set up talks on Toobnix and YouTube](#video-platforms):sachac:
- [Set up stream events on Toobnix and YouTube](#other-streams):sachac:
- [Ask speakers for bios or support nudges to include on their talk pages](#speaker-bio)
- [Do a dry run](#dry-run)
-- [Figure out why ikiwiki is slow](#ikiwiki-regex):infra:wiki:
- [Add category tags and possibly links between talks across 2022 and all previous years](#link-pages):needsowner:wiki:
- [Turn off file upload service on media.emacsconf.org](#upload-off):sachac:infra:
- [Plan Etherpad use and hosting](#etherpad):sachac:ansible:
- [Set up BBB rooms and update conf.org](#create-bbb):sachac:
+- [Investigate streaming options, maybe OBS in the cloud](#streaming):corwin:
<a id="cadence"></a>
@@ -108,7 +106,7 @@ Other projects:
<tr>
<td class="org-left"><span class="timestamp-wrapper"><span class="timestamp">[2022-10-23 Sun]</span></span></td>
<td class="org-left"><a href="#upload">file upload</a></td>
-<td class="org-left"><a href="#mail-upload">file upload instructions</a></td>
+<td class="org-left"><a href="#mail-upload">file upload instructions</a>, backstage</td>
<td class="org-left"><a href="#volunteer-2022-10-23">training</a></td>
<td class="org-left">&#xa0;</td>
</tr>
@@ -229,7 +227,7 @@ interests you!
<tr>
<td class="org-left"><a href="#coordinate-volunteers">volunteer coordination</a></td>
<td class="org-left">ad-hoc</td>
-<td class="org-left"><b>INPROGRESS playbook</b></td>
+<td class="org-left"><b>DONE playbook</b></td>
<td class="org-left">training meetings + recordings</td>
</tr>
@@ -237,8 +235,8 @@ interests you!
<tr>
<td class="org-left"><a href="#prepare-prerec-process">prerec</a></td>
<td class="org-left">DONE play original with captions</td>
-<td class="org-left">Z: normalize audio, reduce noise</td>
-<td class="org-left"><b>S: post as soon as talk is live</b></td>
+<td class="org-left"><b>DONE Z: normalize audio</b></td>
+<td class="org-left">reduce noise</td>
</tr>
@@ -246,7 +244,7 @@ interests you!
<td class="org-left">BBB rooms</td>
<td class="org-left">about 5 rooms that we cycle through</td>
<td class="org-left">&#xa0;</td>
-<td class="org-left"><b>S: DONE one room per speaker</b></td>
+<td class="org-left"><b>DONE S: one room per speaker</b></td>
</tr>
@@ -270,7 +268,7 @@ interests you!
<td class="org-left"><a href="#write-viewing">watch page</a></td>
<td class="org-left">tracks</td>
<td class="org-left">+ IRC</td>
-<td class="org-left"><b>S: DONE + talk info</b>, maybe even current/recent/next</td>
+<td class="org-left"><b>DONE S: + talk info</b>, maybe even current/recent/next</td>
</tr>
@@ -278,7 +276,7 @@ interests you!
<td class="org-left"><a href="#etherpad">pad</a></td>
<td class="org-left">one pad for conf</td>
<td class="org-left">one pad per talk, wikimedia</td>
-<td class="org-left"><b>S: DONE one pad per talk, self-hosted</b> so we can access API</td>
+<td class="org-left"><b>DONE S: one pad per talk, self-hosted</b> so we can access API</td>
</tr>
@@ -309,7 +307,7 @@ interests you!
<tr>
<td class="org-left"><a href="#publish-live">talk pages</a></td>
<td class="org-left">S: link to stream, pad, IRC</td>
-<td class="org-left"><b>link to prerec when live</b></td>
+<td class="org-left"><b>S: link to prerec when live</b></td>
<td class="org-left">embed stream, pad, IRC, prerec</td>
</tr>
@@ -333,7 +331,7 @@ interests you!
<tr>
<td class="org-left"><a href="#wiki-design">wiki</a></td>
<td class="org-left">plain text, markdown</td>
-<td class="org-left"><b>sachac: some JS and CSS enrichment</b></td>
+<td class="org-left"><b>S: some JS and CSS enrichment</b></td>
<td class="org-left">more JS and CSS, embeds, videoplayer</td>
</tr>
@@ -349,9 +347,17 @@ interests you!
<tr>
<td class="org-left"><a href="#ansible">ansible</a></td>
<td class="org-left">none</td>
-<td class="org-left"><b>sachac: some automation</b></td>
+<td class="org-left"><b>S: some automation</b></td>
<td class="org-left">comprehensive, can also work against containers</td>
</tr>
+
+
+<tr>
+<td class="org-left"><a href="#caption-workflow">caption workflow</a></td>
+<td class="org-left">YT autosubs</td>
+<td class="org-left"><b>DONE S: Whisper autosubs</b></td>
+<td class="org-left">Whisper + more granular timestamps</td>
+</tr>
</tbody>
</table>
@@ -363,8 +369,7 @@ interests you!
Ordered chronologically (and therefore by importance).
- [Send schedule-published email for emacsconf-discuss](#announce-program):needsowner:timesensitive:email:
-- [Prepare email for nudging speakers to send prerec, and inform on upload workflow](#mail-upload):timesensitive:needsowner:
-- [Write volunteer update 2022-10-23](#volunteer-2022-10-23)
+- [Write volunteer update 2022-10-23](#volunteer-2022-10-23):update:
<a id="announce-program"></a>
@@ -416,93 +421,26 @@ emacsconf-discuss list, so as to help avoid generating extra off-topic
chatter in the other lists cc&rsquo;d in this message; thank you.
-<a id="mail-upload"></a>
-
-## TODO Prepare email for nudging speakers to send prerec, and inform on upload workflow :timesensitive:needsowner:
-
-
-### Code
-
- (defun emacsconf-mail-upload (group &optional template)
- "Send upload instructions and reminder.
- GROUP is (email . (talk talk))"
- (interactive (list (emacsconf-mail-complete-email-group)))
- (let ((action-date (date-to-time "2022-11-04")))
- (emacsconf-mail-prepare
- (or template (emacsconf-mail-merge-get-template "upload"))
- group
- (list
- :slugs (mapconcat (lambda (o) (plist-get o :slug)) (cdr group) " or ")
- :speakers-short (plist-get (cadr group) :speakers-short)
- :plural (if (= (length (cdr group)) 1) "" "s")
- :email (plist-get (cadr group) :email)
- :year (or (plist-get (cadr group) :year) emacsconf-year)
- :prerec-note (emacsconf-surround
- (make-string 64 ?-)
- (string-join (seq-uniq (mapcar
- (lambda (o)
- (plist-get o :prerec-info))
- (cdr group)))
- "\n")
- (make-string 64 ?-)
- "")))))
-
-
-### Template
-
-Hi, ${speakers-short}!
-
-${prerec-note}Here are the instructions for uploading the video${plural} for your talk${plural}.
-You can find the latest version of the instructions at https://emacsconf.org/2022/upload/ .
-There are two ways to upload your talk${plural} this year, so you can pick the one that works best for you:${wrap}
-
-- Web-based: <https://ftp-upload.emacsconf.org> , password emacsconf
-- FTP: host: ftp-upload.emacsconf.org, port: 21, username: anonymous
- folder: upload-here
-
-If you upload slides and other resources, we can include them on the
-talk page when your talk goes live. If you happen to have a script or
-a transcript, please include them as well (it’ll speed up the
-captioning for us).
-
-Please start your filenames with the ID for the talk that it&rsquo;s for:
-${slugs}.
-
-If you&rsquo;re still working on your talk, you might find the tips at
-<https://emacsconf.org/2022/prepare> useful. In brief:
-
-- at least 1280x720 resolution
-- we recommend dark text on a light background, with enough contrast
- to make it easy to read
-- if possible, use a headset or external microphone to record audio
-- leave 5 seconds of quiet at the end of the video to facilitate noise
- reduction for us
-
-Please plan to upload your talk by November 4 (next Friday) so that we
-can get started preparing it for streaming. If you can&rsquo;t make it by
-then, we can accept later submissions, although it&rsquo;s a bit more of a
-scramble and our stress levels go up as the conference approaches. =)
-We&rsquo;d really appreciate the extra time for captioning and
-double-checking. Thank you for your help in getting ready for a smooth
-EmacsConf 2022!
-
-Sacha Chua
-
-
<a id="volunteer-2022-10-23"></a>
-## TODO Write volunteer update 2022-10-23
+## TODO Write volunteer update 2022-10-23 :update:
-- Updates:
- - dto signed up for shifts
- - created BBB rooms and added them to conf.org
- - set up web-based upload, nudging speakers
+- set up web-based upload, nudging speakers
+- Backstage area now open with three talks, info sent to speakers and captioning volunteers
+- created BBB rooms and added them to conf.org
+- dto signed up for shifts
- playbook drafts
- <https://emacsconf.org/2022/volunteer/irc>
- <https://emacsconf.org/2022/volunteer/caption>
- <https://emacsconf.org/2022/volunteer/pad>
- <https://emacsconf.org/2022/volunteer/checkin>
- <https://emacsconf.org/2022/volunteer/host>
+- tested streaming to gen and dev streams, viewing from watch pages
+
+next week:
+
+- captions
+-
<a id="projects"></a>
@@ -511,24 +449,23 @@ Sacha Chua
- [Coordinate and help volunteers](#coordinate-volunteers):sachac:
- [Prepare for prerecs](#prepare-prerec-process):zaeph:
-- [Investigate streaming options, maybe OBS in the cloud](#streaming):corwin:
- [Work on the OBS scenes](#obs-scenes):zaeph:corwin:
- [Build up the ansible playbook](#ansible):sachac:opal:
-- [Make something to display between talks](#intro)
+- [Make something to display between talks](#intro):sachac:
- [Create protocol for live Q&A](#live-protocol):zaeph:
-- [Add nice-to-have stuff to prepare.md](#extra-prepare):zaeph:
- [Find volunteers for tech-checks](#tech-checks):zaeph:
+- [Smoothen captioning workflow](#caption-workflow):sachac:
- [Update viewing instructions and watch pages](#write-viewing):sachac:
- [Prepare to handle talk state changes](#publish-live):sachac:
- [Set up talks on Toobnix and YouTube](#video-platforms):sachac:
- [Set up stream events on Toobnix and YouTube](#other-streams):sachac:
- [Ask speakers for bios or support nudges to include on their talk pages](#speaker-bio)
- [Do a dry run](#dry-run)
-- [Figure out why ikiwiki is slow](#ikiwiki-regex):infra:wiki:
- [Add category tags and possibly links between talks across 2022 and all previous years](#link-pages):needsowner:wiki:
- [Turn off file upload service on media.emacsconf.org](#upload-off):sachac:infra:
- [Plan Etherpad use and hosting](#etherpad):sachac:ansible:
- [Set up BBB rooms and update conf.org](#create-bbb):sachac:
+- [Investigate streaming options, maybe OBS in the cloud](#streaming):corwin:
Ordered by importance.
@@ -544,39 +481,6 @@ Ordered by importance.
- Encourage people to sign up for [Shifts](#shifts)
-### TODO Write playbooks
-
-
-#### DONE Host :zaeph:
-
-<https://emacsconf.org/2022/volunteer/host>
-
-
-#### BLOCKED Streamer :zaeph:
-
-Blocked by [Investigate streaming options, maybe OBS in the cloud](#streaming)
-
-
-#### DONE Check-in
-
-<https://emacsconf.org/2022/volunteer/checkin/>
-
-
-#### DONE IRC
-
-<https://emacsconf.org/2022/volunteer/irc/>
-
-
-#### DONE Pad
-
-<https://emacsconf.org/2022/volunteer/pad/>
-
-
-#### DONE Captions
-
-<https://emacsconf.org/2022/volunteer/caption/>
-
-
### TODO Plan training session(s), Q&A availability, recordings
@@ -622,6 +526,9 @@ Other considerations:
- We might want to tweak the time before keyframes (`-g`).
+### TODO Check process for posting prerecs to the talk page and media directory as soon as the talk is live :sachac:
+
+
### TODO Figure out workflow for handling submitted prerecs
We need time after the prerecs get submitted to:
@@ -634,37 +541,6 @@ We need time after the prerecs get submitted to:
Make changes in [As prerecorded talks come in](#prerec-process)
-<a id="streaming"></a>
-
-## TODO Investigate streaming options, maybe OBS in the cloud :corwin:
-
-- 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&rsquo;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&rsquo;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.
-
-Resources:
-
-- <https://blog.wirelessmoves.com/2021/07/running-obs-studio-in-the-cloud.html>
-
-- Multiple users accessing X11
- - Apache Guacamole
- - <https://askubuntu.com/questions/817970/how-to-setup-multiple-simultaneous-access-to-x11vnc-session>
- - <https://xpra.org/>
-
-
-### TODO corwin: plan an approach to use a centralized OBS/nginix &ldquo;bouncer&rdquo; :corwin:
-
-
-### TODO corwin: document such that someone else could use/fix it :corwin:
-
-
-### TODO corwin: recruit at least one more person to help operate the &ldquo;video bouncer&rdquo; :corwin:
-
-
<a id="obs-scenes"></a>
## TODO Work on the OBS scenes :zaeph:corwin:
@@ -695,7 +571,12 @@ in prod or docker container
### TODO restreamers on live0
-### TODO icecast on live0
+### STARTED icecast on live0
+
+(find-file &ldquo;/ssh:live|sudo::/etc/icecast2/icecast.xml&rdquo;)
+
+
+#### TODO Set up watch/gen-480p
### TODO publishing environment
@@ -709,7 +590,7 @@ in prod or docker container
<a id="intro"></a>
-## BLOCKED Make something to display between talks
+## TODO Make something to display between talks :sachac:
Goals:
@@ -721,10 +602,6 @@ 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
-If it&rsquo;s static, this needs to wait for the decision on how we&rsquo;re going
-to use Etherpad, or we should have friendly URLs redirect to the right
-pads
-
- 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&rsquo;s Emacs =)
@@ -747,14 +624,6 @@ 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="extra-prepare"></a>
-
-## STANDBY Add nice-to-have stuff to prepare.md :zaeph:
-
-- org-reveal config
-- SIL fonts choice
-
-
<a id="tech-checks"></a>
## INPROGRESS Find volunteers for tech-checks :zaeph:
@@ -784,6 +653,21 @@ From previous years:
> - Do you need help finding your way around IRC so that you can check into \`#emacsconf-org\`? What is your IRC nickname?
+<a id="caption-workflow"></a>
+
+## 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&rsquo;ll try to upload both YT and
+OpenAPI captions so that people can decide what they like.
+
+
+### TODO Investigate more granular timestamps for the output from OpenAPI Whisper
+
+<https://stackoverflow.com/questions/73822353/how-can-i-get-word-level-timestamps-in-openais-whisper-asr>
+
+
<a id="write-viewing"></a>
## DONE Update viewing instructions and watch pages :sachac:
@@ -927,14 +811,6 @@ zaeph is available on 2022-11-06
- [ ] Wind everything down
-<a id="ikiwiki-regex"></a>
-
-## TODO Figure out why ikiwiki is slow :infra:wiki:
-
-complex regular expression issues?
-should the captions be outside the wiki?
-
-
<a id="link-pages"></a>
## TODO Add category tags and possibly links between talks across 2022 and all previous years :needsowner:wiki:
@@ -1092,6 +968,39 @@ see conf.org for the rest of the process
### TODO Add volunteers to the BBB rooms
+<a id="streaming"></a>
+
+## TODO Investigate streaming options, maybe OBS in the cloud :corwin:
+
+- bandali doesn&rsquo;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&rsquo;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&rsquo;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.
+
+Resources:
+
+- <https://blog.wirelessmoves.com/2021/07/running-obs-studio-in-the-cloud.html>
+
+- Multiple users accessing X11
+ - Apache Guacamole
+ - <https://askubuntu.com/questions/817970/how-to-setup-multiple-simultaneous-access-to-x11vnc-session>
+ - <https://xpra.org/>
+
+
+### TODO corwin: plan an approach to use a centralized OBS/nginix &ldquo;bouncer&rdquo; :corwin:
+
+
+### TODO corwin: document such that someone else could use/fix it :corwin:
+
+
+### TODO corwin: recruit at least one more person to help operate the &ldquo;video bouncer&rdquo; :corwin:
+
+
<a id="maybe-projects"></a>
# Projects to bear in mind but which are not actual
@@ -1817,6 +1726,71 @@ We tried using q56 before, but it was a little too aggressive. Q=32 is the defau
fi
+### sachac
+
+- download to local cache
+ ~/proj/emacsconf/private/sync-cache
+- upload to YouTube in case we can get autogenerated subtitles from there
+ <https://studio.youtube.com/channel/UCwuyodzTl_KdEKNuJmeo99A/videos/upload?filter=%5B%5D&sort=%7B%22columnType%22%3A%22date%22%2C%22sortOrder%22%3A%22DESCENDING%22%7D>
+- upload to res:~/2022/captions
+- caption.sh
+- sync-cache to copy the vtt
+- emacsconf-make-backstage-index
+- send confirmation e-mail
+
+
+### Confirmation e-mail
+
+
+<a id="ack-prerec"></a>
+
+#### Acknowledge pre-rec submission
+
+ (defun emacsconf-mail-acknowledge-submission (talk &optional template)
+ (interactive (list (emacsconf-complete-talk-info)))
+ (emacsconf-mail-prepare
+ (or template (emacsconf-mail-merge-get-template "ack-prerec"))
+ (plist-get talk :email)
+ (list
+ :backstage "https://media.emacsconf.org/2022/backstage/"
+ :backstage-user "emacsconf"
+ :backstage-password emacsconf-backstage-password
+ :time (plist-get talk :time)
+ :title (plist-get talk :title)
+ :email (plist-get talk :email)
+ :minutes (plist-get talk :video-time)
+ :speakers-short (plist-get talk :speakers-short)
+ :url (concat emacsconf-base-url (plist-get talk :url))
+ :year emacsconf-year)))
+
+
+#### Template
+
+Hi, ${speakers-short}!
+
+Just a quick note to let you know that I&rsquo;ve downloaded your
+submission for &ldquo;${title}&rdquo;. We&rsquo;ve added your submission to the backstage
+area at ${backstage} (username: ${backstage-user}, password:
+${backstage-password}), and we&rsquo;ll post the files on your talk page
+when the talk is public. A quick check shows that your video is about
+${minutes} minutes long (${time} minutes budgeted).${wrap}
+
+We&rsquo;ll be working on captioning it over the next few weeks. We&rsquo;ll
+e-mail again a little closer to the conference with schedule updates
+and other useful information. If you want to upload a new version, you
+can upload it the same way you did the previous one.
+
+Please feel free to e-mail us at emacsconf-submit@gnu.org if you need
+help updating the talk wiki page at ${url} or if you have other
+questions.${wrap}
+
+Thank you so much for all the work you put into preparing a talk for
+EmacsConf ${year}, and thank you for submitting the prerecorded video
+before the conference!
+
+Sacha Chua
+
+
<a id="when-captioned"></a>
## When a talk is captioned
@@ -2307,7 +2281,7 @@ Probably focus on grabbing the audio first and seeing what&rsquo;s worth keeping
Make a table of the form
-<table id="orgecfc040" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
+<table id="org1b57c8d" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
<colgroup>
@@ -2775,7 +2749,7 @@ Look for the TO\_CONFIRM status in conf.org, probably include in schedule e-mail
(draft-schedule (concat emacsconf-base-url emacsconf-year "/draft-schedule/")))
(emacsconf-mail-prepare
(or template (emacsconf-mail-merge-get-template "check-sched"))
- group
+ (car group)
(list
:titles
(mapconcat (lambda (o) (format "%s: %s"
@@ -2849,7 +2823,7 @@ Look for the TO\_CONFIRM status in conf.org, probably include in schedule e-mail
(draft-schedule (concat emacsconf-base-url emacsconf-year "/draft-schedule/")))
(emacsconf-mail-prepare
(or template (emacsconf-mail-merge-get-template "check-sched"))
- group
+ (car group)
(list
:titles
(mapconcat (lambda (o) (format "%s: %s"
@@ -3247,6 +3221,202 @@ Where:
It&rsquo;s now on front.
+<a id="mail-upload"></a>
+
+## DONE Prepare email for nudging speakers to send prerec, and inform on upload workflow :timesensitive:needsowner:
+
+
+### Code
+
+ (defun emacsconf-mail-upload (group &optional template)
+ "Send upload instructions and reminder.
+ GROUP is (email . (talk talk))"
+ (interactive (list (emacsconf-mail-complete-email-group)))
+ (let ((action-date (date-to-time "2022-11-04")))
+ (emacsconf-mail-prepare
+ (or template (emacsconf-mail-merge-get-template "upload"))
+ (car group)
+ (list
+ :slugs (mapconcat (lambda (o) (plist-get o :slug)) (cdr group) " or ")
+ :speakers-short (plist-get (cadr group) :speakers-short)
+ :plural (if (= (length (cdr group)) 1) "" "s")
+ :email (plist-get (cadr group) :email)
+ :year (or (plist-get (cadr group) :year) emacsconf-year)
+ :prerec-note (emacsconf-surround
+ (make-string 64 ?-)
+ (string-join (seq-uniq (mapcar
+ (lambda (o)
+ (plist-get o :prerec-info))
+ (cdr group)))
+ "\n")
+ (make-string 64 ?-)
+ "")))))
+
+
+### Template
+
+Hi, ${speakers-short}!
+
+${prerec-note}Here are the instructions for uploading the video${plural} for your talk${plural}.
+You can find the latest version of the instructions at https://emacsconf.org/2022/upload/ .
+There are two ways to upload your talk${plural} this year, so you can pick the one that works best for you:${wrap}
+
+- Web-based: <https://ftp-upload.emacsconf.org> , password emacsconf
+- FTP: host: ftp-upload.emacsconf.org, port: 21, username: anonymous
+ folder: upload-here
+
+If you upload slides and other resources, we can include them on the
+talk page when your talk goes live. If you happen to have a script or
+a transcript, please include them as well (it’ll speed up the
+captioning for us).
+
+Please start your filenames with the ID for the talk that it&rsquo;s for:
+${slugs}.
+
+If you&rsquo;re still working on your talk, you might find the tips at
+<https://emacsconf.org/2022/prepare> useful. In brief:
+
+- at least 1280x720 resolution
+- we recommend dark text on a light background, with enough contrast
+ to make it easy to read
+- if possible, use a headset or external microphone to record audio
+- leave 5 seconds of quiet at the end of the video to facilitate noise
+ reduction for us
+
+Please plan to upload your talk by November 4 (next Friday) so that we
+can get started preparing it for streaming. If you can&rsquo;t make it by
+then, we can accept later submissions, although it&rsquo;s a bit more of a
+scramble and our stress levels go up as the conference approaches. =)
+We&rsquo;d really appreciate the extra time for captioning and
+double-checking. Thank you for your help in getting ready for a smooth
+EmacsConf 2022!
+
+Sacha Chua
+
+
+## DONE Send backstage email
+
+ (defun emacsconf-mail-backstage-info (group &optional template)
+ (interactive (list (emacsconf-complete-talk-info)))
+ (emacsconf-mail-prepare
+ (or template (emacsconf-mail-merge-get-template "backstage"))
+ (plist-get group :email)
+ (append group
+ (list
+ :backstage "https://media.emacsconf.org/2022/backstage/"
+ :backstage-user "emacsconf"
+ :backstage-password emacsconf-backstage-password
+ :conf-name emacsconf-name
+ :year emacsconf-year))))
+ (defun emacsconf-mail-backstage-info-to-speakers-and-captioners ()
+ (interactive)
+ (let ((template (emacsconf-mail-merge-get-template "backstage"))
+ (speaker-groups
+ (seq-uniq
+ (mapcar
+ (lambda (talk)
+ (list
+ :name (plist-get talk :speakers-short)
+ :email (plist-get talk :email)
+ :role "speaker"
+ :backstage-use
+ "As we add more talks, you can skim through any relevant ones to
+ see if there are any points you'd like to build on in your talk.
+ Also, you can get a sense of what we do behind the scenes to try
+ to get as many talks captioned for broadcast, and what you can do
+ to make it easier. (A text file with names and technical terms
+ can be helpful. No need to type out a manual transcript if you
+ don't start from a script.) After you upload your talk and we
+ process the files, you can use the backstage area to check the
+ quality of the reencoded video."))
+ (seq-filter (lambda (o) (string= (plist-get o :status) "WAITING_FOR_PREREC"))
+ (emacsconf-filter-talks (emacsconf-get-talk-info))))))
+ (volunteer-groups
+ (with-current-buffer (find-file-noselect emacsconf-org-file)
+ (org-map-entries (lambda ()
+ (list :name (org-entry-get (point) "NAME_SHORT")
+ :email (org-entry-get (point) "EMAIL")
+ :role "captioning volunteer"
+ :backstage-use "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."))
+ "captions"))))
+ (mapcar (lambda (g) (emacsconf-mail-backstage-info g template))
+ (append
+ speaker-groups
+ (seq-remove (lambda (v) (seq-find (lambda (s) (string= (plist-get s :email)
+ (plist-get v :email)))
+ speaker-groups))
+ volunteer-groups)))))
+
+
+### Template
+
+Hi ${name}!
+
+You&rsquo;re getting this e-mail because you are a ${role} for ${conf-name}
+${year}. (Thanks!)${wrap}
+
+I&rsquo;m so excited! =) A number of speakers have uploaded their videos,
+and OpenAI Whisper looks like a promising way to get automatically
+generated captions that we can use as a starting point.
+
+We&rsquo;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}&ldquo; and the password &rdquo;${backstage-password}&ldquo;.
+Please keep the backstage password and other speakers&rsquo; talk resources
+secret. ${backstage-use}${wrap}
+
+Thank you!
+
+Sacha Chua
+
+
+## DONE Write playbooks
+
+
+### DONE Host :zaeph:
+
+<https://emacsconf.org/2022/volunteer/host>
+
+
+### CANCELLED Streamer :zaeph:
+
+Blocked by [Investigate streaming options, maybe OBS in the cloud](#streaming)
+
+bandali and corwin/zaeph will do the streaming, so writing the streaming playbook is a little lower priority for now
+
+
+### DONE Check-in
+
+<https://emacsconf.org/2022/volunteer/checkin/>
+
+
+### DONE IRC
+
+<https://emacsconf.org/2022/volunteer/irc/>
+
+
+### DONE Pad
+
+<https://emacsconf.org/2022/volunteer/pad/>
+
+
+### DONE Captions
+
+<https://emacsconf.org/2022/volunteer/caption/>
+
+
+## CANCELLED Figure out why ikiwiki is slow :infra:wiki:
+
+complex regular expression issues?
+should the captions be outside the wiki?
+
+
+## CANCELLED Add nice-to-have stuff to prepare.md :zaeph:
+
+- org-reveal config
+- SIL fonts choice
+
+
<a id="comms"></a>
# Communications
@@ -3350,7 +3520,7 @@ Objectives for this e-mail:
:prerec-target (format-time-string "%b %-e" prerec-target)))
(plist-get o :acceptance-comment)) 72)))
talks "\n---------------------------------------------------------------------\n"))))
- (emacsconf-mail-prepare template group attrs)))
+ (emacsconf-mail-prepare template (car group) attrs)))
(defun emacsconf-draft-all-acceptances ()
(interactive)
@@ -3420,39 +3590,6 @@ Sacha Chua
## Future
-<a id="ack-prerec"></a>
-
-### Acknowledge pre-rec submission
-
- (defun emacsconf-acknowledge-submission ()
- (interactive)
- (let ((files (directory-files "captions" t (regexp-quote (org-entry-get (point) "VIDEO_SLUG"))))
- (page (format "https://emacsconf.org/%s/talks/%s" conf-year (org-entry-get (point) "SLUG")))
- (slug (org-entry-get (point) "VIDEO_SLUG")))
- (emacsconf-mail-speaker
- "Thanks for sending us your prerecorded video for EmacsConf ${year}!"
- (concat
- "Hi! Just a quick note to let you know that I've downloaded your submission for \"" (org-entry-get (point) "ITEM") "\".\n"
- (format "\nNow we have the following file%s starting with %s:\n%s"
- (if (= (length files) 1) "" "s")
- slug
- (mapconcat (lambda (f)
- (format "- %s (%s, md5: %s)\n"
- (replace-regexp-in-string slug "" (file-name-nondirectory f))
- (file-size-human-readable (file-attribute-size (file-attributes f)))
- (string-trim (shell-command-to-string (concat "md5sum " (shell-quote-argument f) " | cut -f 1 -d ' '")))))
- files ""))
- (format "A quick check shows that it's about %d minutes long.\n"
- (ceiling
- (/ (compile-media-get-file-duration-ms
- (seq-find (lambda (o) (member (file-name-extension o) subed-video-extensions))
- files))
- 60000.0)))
- "\nWe'll be working on captioning it over the next few weeks. We'll e-mail again a little closer to the conference with schedule updates and other useful information. If you want to upload a new version, you can upload it the same way you did the previous one.\n\n"
- "Please feel free to e-mail us at emacsconf-submit@gnu.org if you need help updating the talk wiki page at " page " or if you have other questions.\n\n"
- "Thank you so much for all the work you put into preparing a talk for EmacsConf ${year}, and thank you for submitting the prerecorded video before the conference!\n\nSacha"))))
-
-
<a id="approve-captions"></a>
### Captions for approval