summaryrefslogtreecommitdiffstats
path: root/2022/organizers-notebook.md
diff options
context:
space:
mode:
authorSacha Chua <sacha@sachachua.com>2022-10-09 10:30:37 -0400
committerSacha Chua <sacha@sachachua.com>2022-10-09 10:30:37 -0400
commitb08350b5c8bb29724856e2ecfdcaaaf2eed3ca8f (patch)
tree97c565a59a67d98ec0398a4cd9304ad1f29fdd0f /2022/organizers-notebook.md
parent7ad9df19aaf23d183bd0fc1a9a6df174e1ccb93a (diff)
downloademacsconf-wiki-b08350b5c8bb29724856e2ecfdcaaaf2eed3ca8f.tar.xz
emacsconf-wiki-b08350b5c8bb29724856e2ecfdcaaaf2eed3ca8f.zip
sched change
Diffstat (limited to '2022/organizers-notebook.md')
-rw-r--r--2022/organizers-notebook.md344
1 files changed, 177 insertions, 167 deletions
diff --git a/2022/organizers-notebook.md b/2022/organizers-notebook.md
index 73df5ed9..2df05dea 100644
--- a/2022/organizers-notebook.md
+++ b/2022/organizers-notebook.md
@@ -140,9 +140,13 @@ Add your news and requests to this.
#### Template so far
-- <https://emacsconf.org/2022/organizers-notebook/#overall> has an overall
+Hello, EmacsConf volunteers!
+
+We're starting to gear up for EmacsConf ${year} and we would love your help!
+
+- <https://emacsconf.org/${year}/organizers-notebook/#overall> has an overall
prioritization matrix. If any of those options look interesting, you
- can volunteer to help move the needle!
+ can volunteer to help move the needle.
- sachac: Given the number of talks this year, we're going to try to
see if we can pull off two tracks. I've posted a draft schedule at
<https://emacsconf.org/2022/draft-schedule/> and will e-mail speakers
@@ -198,7 +202,7 @@ Look for the TO\_CONFIRM status in conf.org, probably include in schedule e-mail
<tr>
<td class="org-left"><span class="timestamp-wrapper"><span class="timestamp">[2022-09-30 Fri]</span></span></td>
<td class="org-left">&#xa0;</td>
-<td class="org-left">acceptance, reply to confirm</td>
+<td class="org-left"><a href="#acceptance">acceptance, reply to confirm</a></td>
<td class="org-left">&#xa0;</td>
<td class="org-left">&#xa0;</td>
</tr>
@@ -207,8 +211,8 @@ Look for the TO\_CONFIRM status in conf.org, probably include in schedule e-mail
<tr>
<td class="org-left"><span class="timestamp-wrapper"><span class="timestamp">[2022-10-09 Sun]</span></span></td>
<td class="org-left">&#xa0;</td>
-<td class="org-left">schedule, reply if not okay</td>
-<td class="org-left">overall priorities</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">&#xa0;</td>
</tr>
@@ -251,7 +255,7 @@ Look for the TO\_CONFIRM status in conf.org, probably include in schedule e-mail
<tr>
<td class="org-left"><span class="timestamp-wrapper"><span class="timestamp">[2022-11-13 Sun]</span></span></td>
-<td class="org-left">captions</td>
+<td class="org-left">dry run, captions</td>
<td class="org-left">tech check</td>
<td class="org-left">&#xa0;</td>
<td class="org-left">&#xa0;</td>
@@ -280,68 +284,81 @@ Look for the TO\_CONFIRM status in conf.org, probably include in schedule e-mail
<a id="check-sched"></a>
-### TODO Send people schedule information and doublecheck their availability/Q&A preference :sachac:email:speakers:sched:
+### DONE Send people schedule information and doublecheck their availability/Q&A preference :sachac:email:speakers:sched:
(defun emacsconf-mail-schedule (group &optional template)
"Send draft schedule.
GROUP is (email . (talk talk))"
(interactive (list (emacsconf-mail-complete-email-group)))
(require 'emacsconf-ical)
- (emacsconf-mail-prepare
- (or template (emacsconf-mail-merge-get-template "check-sched"))
- group
- (list
- :titles
- (mapconcat (lambda (o) (format "%s %s"
- (plist-get o :title)
- (format-time-string
- "%b %-e %I:%M %Z"
- (plist-get o :start-time)
- emacsconf-timezone)))
- (cdr group) " and ")
- :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)
- :coordination-note
- (if (seq-find (lambda (o) (member (plist-get o :slug) '("journalism" "rolodex" "orgsuperlinks" "buttons" "hyperorg" "science")))
- (cdr group))
- "I've changed the order slightly from the coordination e-mail I sent you. The sequence is now journalism - science - rolodex - orgsuperlinks - buttons - hyperorg. science is now second instead of last, and the first two talks are on Sat while the last four are on Sun. That probably means you don't have to coordinate as much, but you can still do so if you would like to build on other people's talks."
- "")
- :schedule
- (mapconcat
- (lambda (o) (format "\"%s\" (%s) - %s track\n%s"
- (plist-get o :title)
- (plist-get o :slug)
- (plist-get o :track)
- (string-join
- (let ((emacsconf-timezones
- (if (plist-get o :timezone)
- (seq-uniq (list emacsconf-timezone (plist-get o :timezone) "UTC"))
- emacsconf-timezones)))
- (emacsconf-timezone-strings o))
- "\n")))
- (cdr group)
- "\n----------------------------------------------------------------\n")
- :timezone-note
- (if (plist-get (cadr group) :timezone)
- (format "I've included a conversion to the %s timezone. Let me know if you'd like me to use a different timezone in future e-mails."
- (plist-get (cadr group) :timezone))
- "I can translate times into your local timezone. Let me know what timezone you'd like me to use.")
- :availability-note
- (if (seq-find (lambda (o) (string-match "yes" (or (plist-get o :availability) ""))) (cdr group))
- (format "I think you've indicated that you're available during the conference.")
- (format "I think it respects your indicated availability, which we've noted as %s. "
- (string-join
- (seq-uniq
- (mapcar
- (lambda (o) (format "\"%s\"" (plist-get o :availability)))
- (cdr group)))
- " and "))))))
+ (let ((reply-by-date (date-to-time "2022-10-14"))
+ (draft-schedule (concat emacsconf-base-url emacsconf-year "/draft-schedule/")))
+ (emacsconf-mail-prepare
+ (or template (emacsconf-mail-merge-get-template "check-sched"))
+ group
+ (list
+ :titles
+ (mapconcat (lambda (o) (format "%s: %s"
+ (plist-get o :slug)
+ (format-time-string
+ "%b %-e %-I:%M %#p %Z"
+ (plist-get o :start-time)
+ emacsconf-timezone)))
+ (cdr group) "; ")
+ :draft-schedule
+ draft-schedule
+ :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)
+ :coordination-note
+ (if (seq-find (lambda (o) (member (plist-get o :slug) '("journalism" "rolodex" "orgsuperlinks" "buttons" "hyperorg" "science")))
+ (cdr group))
+ "I've changed the order slightly from the coordination e-mail I sent you. The sequence is now journalism - science - rolodex - orgsuperlinks - buttons - hyperorg. science is now second instead of last, and the first two talks are on Sat while the last four are on Sun. That probably means you don't have to coordinate as much, but you can still do so if you would like to build on other people's talks."
+ "")
+ :schedule
+ (mapconcat
+ (lambda (o) (format "* TODO Check time for \"%s\" (%s) :emacsconf:\nDEADLINE: %s\n(Not a hard deadline, just encouragement to e-mail us before that date if you can)\nPlease e-mail [[mailto:emacsconf-submit@gnu.org]] if you need it changed\n%s track\n%s\nIn context: %s"
+ (plist-get o :title)
+ (plist-get o :slug)
+ (format-time-string (car org-time-stamp-formats) reply-by-date emacsconf-timezone)
+ (plist-get o :track)
+ (string-join
+ (let ((emacsconf-timezones
+ (if (plist-get o :timezone)
+ (seq-uniq (append (list emacsconf-timezone)
+ (split-string (plist-get o :timezone) " ")
+ (list "UTC")))
+ emacsconf-timezones)))
+ (emacsconf-timezone-strings o))
+ "\n")
+ draft-schedule))
+ (cdr group)
+ "\n----------------------------------------------------------------\n")
+ :reply-by
+ (format-time-string "%b %-e (%a)" reply-by-date emacsconf-timezone)
+ :timezone-note
+ (if (plist-get (cadr group) :timezone)
+ (format "I've included timezone conversion to %s. Let me know if you'd like me to use a different timezone in future e-mails."
+ (plist-get (cadr group) :timezone) " ")
+ "I can translate times into your local timezone. Let me know what timezone you'd like me to use.")
+ :availability-note
+ (cond
+ ((seq-find (lambda (o) (string-match "yes" (or (plist-get o :availability) ""))) (cdr group))
+ (format "I think you've indicated that you're available during the conference."))
+ ((seq-find (lambda (o) (string-match "not indicated" (or (plist-get o :availability) ""))) (cdr group))
+ (format "I think you didn't indicate any particular availability constraints in your submission."))
+ (t (format "I think it respects your indicated availability, which we've noted as %s."
+ (string-join
+ (seq-uniq
+ (mapcar
+ (lambda (o) (format "\"%s\"" (plist-get o :availability)))
+ (cdr group)))
+ " and "))))))))
#### Template
@@ -358,22 +375,21 @@ ${schedule}
---
-You'll also have time for Q&A afterwards, which can be as short or as
-long as you like. We'll send you more information about how the Q&A
-will work as the conference gets closer.
+${availability-note} You'll also have time for Q&A afterwards, which
+can be as short or as long as you like. We'll send you more
+information about how the Q&A will work as the conference gets closer.${wrap}
-If you'd like to see the other talks for context, please check out the
-draft schedule at <https://emacsconf.org/${year}/draft-schedule/> . The
-times may move around a bit as we update the schedule, so I'll check
-in with you if things change a lot. ${coordination-note} ${wrap}
+If you'd like to see the other talks for context, you can check out
+the draft schedule at <https://emacsconf.org/${year}/draft-schedule/> .
+The times may move around a bit as we update the schedule, so I'll
+check in with you if things change a lot. ${coordination-note} ${wrap}
-${availability-note} Please let us know if the times don't work for
-you or if you think your talk would go better next to a different
-talk. We're aiming to publish the schedule by **Oct 15**, so we'd love
-to hear from you by then if we need to tweak things. We can
-shuffle things around even after that date if something comes up.
-${timezone-note} Please keep emacsconf-submit@gnu.org in To or Cc when
-replying. Thanks!${wrap}
+We'd like to publish the schedule this month, so we'd love to hear
+from you by **${reply-by}** if the times don't work for you. (We can shuffle
+things around even after that date if something comes up.) Also, if
+you think your talk${plural} would go better next to a different talk, please
+let us know. ${timezone-note} Please keep emacsconf-submit@gnu.org in
+To or Cc when replying. Thanks!${wrap}
Sacha
@@ -425,14 +441,17 @@ Blocked by [Figure out web-based file upload](#upload)
- [Investigate streaming options, maybe OBS in the cloud](#streaming):corwin:zaeph:
- [Work on the OBS scenes](#obs-scenes):zaeph:corwin:
- [Build up the ansible playbook](#ansible):sachac:
-- [Make intro and exit videos](#intro)
+- [Make intro and exit sequence](#intro)
- [Move scheduling and publishing code to Emacs on a VPS so that other people can help out](#publishing-sched):sachac:
- [Add nice-to-have stuff to prepare.md](#extra-prepare):zaeph:
- [Find volunteers for tech-checks](#tech-checks):zaeph:
- [Update viewing instructions and watch pages](#write-viewing):zaeph:
- [Make talk pages easy to update when the talk is live](#publish-live):sachac:
- [Set up talks on Toobnix and YouTube](#video-platforms):sachac:
+- [Set up stream events on Toobnix and YouTube](#other-streams):sachac:
+- [Prepare to announce talks on IRC](#irc-announce)
- [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:
@@ -595,7 +614,7 @@ can currently publish
<a id="intro"></a>
-### BLOCKED Make intro and exit videos
+### BLOCKED Make intro and exit sequence
Intro:
Next: title, speaker, pronouns, talk page
@@ -607,8 +626,7 @@ Needs to wait for pad decision, or have friendly URLs redirect to the right pads
- Good: Static image, maybe created with LaTeX
- Better: Looping video with unobtrusive sound so people can doublecheck that their audio works
-- Best: Multiple versions to accommodate last-minute changes to Q&A
-- Bester? ;) : Voice-over contextualizing the talk? Pointers to related talks?
+- Best: Emacs thing so that we can have a dynamic timer and last-minute announcements, and so that it's Emacs =)
See break commercials
<https://www.collabmagazine.com/organizing-a-multi-track-virtual-conference-with-microsoft-teams-live-events-a-technical-playbook-and-lessons-learned/>
@@ -691,7 +709,32 @@ Also add to watch page
<a id="video-platforms"></a>
-### TODO Set up talks on Toobnix and YouTube :sachac:
+### BLOCKED Set up talks on Toobnix and YouTube :sachac:
+
+so that people can find the videos on other video platforms
+waiting for prerecs
+
+
+<a id="other-streams"></a>
+
+### TODO Set up stream events on Toobnix and YouTube :sachac:
+
+so that people on other platforms can come across EmacsConf
+
+ 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
+
+
+<a id="irc-announce"></a>
+
+### TODO Prepare to announce talks on IRC
+
+- talks should be announced in their relevant tracks and in the hallways
+ - video starting in 5 minutes
+ - video starting now
+ - Q&A starting now & where
+- a small announcement might go into the other track as well
+- announcement can include talk page, pad, IRC nick, pronouns
<a id="speaker-bio"></a>
@@ -702,6 +745,38 @@ maybe after we get the prerecs
ex: liberapay, patreon, anyone looking for a job, etc.
+<a id="dry-run"></a>
+
+### BLOCKED Do a dry run
+
+- Streams
+ - [ ] General stream
+ - [ ] Development stream
+ - [ ] 480p streams
+ - [ ] Toobnix streams
+ - [ ] YouTube streams
+- Scenes
+ - [ ] Intro
+ - [ ] Prerec
+ - [ ] Q&A: live
+ - [ ] Q&A: IRC
+ - [ ] Q&A: pad
+- [ ] IRC channels
+ - [ ] Announce
+ - [ ] Timers
+ - [ ] Question handling
+- [ ] Watching pages
+ - [ ] Before launch
+ - [ ] Streaming
+ - [ ] Emergency announcement
+- [ ] Pads
+- [ ] Wiki
+ - [ ] Schedule update
+ - [ ] Message on the schedule
+ - [ ] Prerec live
+- [ ] Wind everything down
+
+
<a id="ikiwiki-regex"></a>
### TODO Figure out why ikiwiki is slow :infra:wiki:
@@ -828,6 +903,14 @@ so we know what we need to scramble to do.
<tr>
+<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>one room per speaker</b></td>
+</tr>
+
+
+<tr>
<td class="org-left">host</td>
<td class="org-left">no host, speaker reads pad</td>
<td class="org-left"><b>host reads pad</b></td>
@@ -868,7 +951,7 @@ so we know what we need to scramble to do.
<tr>
-<td class="org-left">IRC announcements</td>
+<td class="org-left"><a href="#irc-announce">IRC announcements</a></td>
<td class="org-left"><b>ERC commands</b></td>
<td class="org-left">timer-based</td>
<td class="org-left">&#xa0;</td>
@@ -900,7 +983,7 @@ so we know what we need to scramble to do.
<tr>
-<td class="org-left">other platforms</td>
+<td class="org-left"><a href="#video-platforms">other platforms</a></td>
<td class="org-left"><b>S: Toobnix &amp; YT after event</b></td>
<td class="org-left">&#xa0;</td>
<td class="org-left">S: Toobnix + YT when live</td>
@@ -910,23 +993,23 @@ so we know what we need to scramble to do.
<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>S: some JS enrichment</b></td>
+<td class="org-left"><b>sachac: some JS and CSS enrichment</b></td>
<td class="org-left">more JS and CSS, embeds, videoplayer</td>
</tr>
<tr>
-<td class="org-left">intro and exit</td>
+<td class="org-left"><a href="#intro">intro and exit</a></td>
<td class="org-left"><b>generic static image</b></td>
<td class="org-left">per-talk image</td>
-<td class="org-left">image variants, audio/video to help people check</td>
+<td class="org-left">Emacs thing so we can display info, countdowns, IRC</td>
</tr>
<tr>
-<td class="org-left">ansible</td>
+<td class="org-left"><a href="#ansible">ansible</a></td>
<td class="org-left">none</td>
-<td class="org-left"><b>some automation</b></td>
+<td class="org-left"><b>sachac: some automation</b></td>
<td class="org-left">comprehensive, can also work against containers</td>
</tr>
</tbody>
@@ -1460,7 +1543,7 @@ Interested in a shift? Please e-mail <mailto:emacsconf-org-private@gnu.org> and
# Other tasks and processes
-- [Giving conf.org access to a new volunteer or fake user](#org410c614)
+- [Giving conf.org access to a new volunteer or fake user](#orgfbdb10f)
- [As prerecorded talks come in](#prerec-process)
- [When a talk is captioned](#when-captioned)
- [Other tasks before the conference](#before)
@@ -1469,7 +1552,7 @@ Interested in a shift? Please e-mail <mailto:emacsconf-org-private@gnu.org> and
- [In case of](#exceptions)
-<a id="org410c614"></a>
+<a id="orgfbdb10f"></a>
## Giving conf.org access to a new volunteer or fake user
@@ -1638,8 +1721,6 @@ Links:
EmacsConf 2021 starting now: <https://emacsconf.org/2021/>
-<a id="other-streams"></a>
-
##### Stream
@@ -1997,7 +2078,7 @@ Probably focus on grabbing the audio first and seeing what's worth keeping
Make a table of the form
-<table id="org4cbfeb5" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
+<table id="org8cab286" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
<colgroup>
@@ -2285,7 +2366,9 @@ Thanks!
Sacha
-## DONE Early speaker notification :sachac:
+<a id="acceptance"></a>
+
+## DONE Acceptance :sachac:
We can accept early or send people a note saying notification of acceptance will be on Oct 15, because of the extended CFP.
Right before this e-mail:
@@ -2428,79 +2511,6 @@ Sacha Chua
## Future
-### Acceptance
-
-This is a copy of the previous
-
-
-#### Code
-
- (defun emacsconf-draft-acceptance ()
- (interactive)
- (let* ((sched (org-timestamp-from-string (org-entry-get (point) "SCHEDULED")))
- (attrs
- (append (emacsconf-get-talk-info-for-subtree)
- :other-notes
- (if (org-entry-get (point) "ORG_NOTE") (concat "--- notes ---\n" (org-entry-get (point) "ORG_NOTE") "\n-----\n\n") "")))
- (avail (plist-get attrs :avail)))
- (plist-put attrs
- :availability
- (cond
- ((null avail) "I don't think you specified availability when submitting. Would this time be okay with you?")
- ((string-match "!avail" avail) "We know this isn't when you've indicated when you'd be available, but will this time be okay for presenting the talk? It's okay to follow up with questions after the event. If you happen to be available, we'd love to have you join us.")
- ((string-match "live" avail) "We've scheduled a few minutes for live questions and answers via web conference. Will you be available around this time? If there are more questions, you can also continue over Etherpad/IRC.")
- ((string-match "IRC" avail) "Will you be able to join around this time to handle questions over IRC or the pad? If not, we can forward questions to you.")
- ((string-match "pad" avail) "Will you be able to join around this time to handle questions over the pad? If not, we can forward questions to you.")
- (t avail)))
- (plist-put attrs
- :time-explanation
- (if (<= (string-to-number (plist-get attrs :time)) (string-to-number (plist-get attrs :min-time)))
- "Thank you for suggesting an awesome talk of that length!"
- "This is less time than you requested, but we've had to make some tough choices to fit all these interesting talks into the schedule. Would it be possible for you to squeeze your talk into that time?"))
- (save-excursion
- (goto-char (org-find-entry-with-id "acceptance"))
- (plist-put attrs :subject (conf-replace-plist-in-string attrs (org-entry-get (point) "ITEM")))
- (org-end-of-meta-data)
- (plist-put attrs :body (buffer-substring-no-properties (point) (org-end-of-subtree))))
- (compose-mail
- (plist-get attrs :email)
- (plist-get attrs :subject)
- '(("Reply-To" . "emacsconf-submit@gnu.org")
- ("Mail-Followup-To" . "emacsconf-submit@gnu.org"))
- nil)
- (message-goto-body)
- (save-excursion (conf-replace-plist-in-string attrs (plist-get attrs :body)))))
-
-
-#### Template
-
-Dear ${name},
-
-We would love to have your talk "${title}" as part of EmacsConf
-${year}, and we've allocated ${time} minutes for it. ${time-explanation}
-
-Your talk is tentatively scheduled for ${scheduled}. The times
-may move around a bit as we update the schedule, so we'll check in
-with you if things change a lot. ${availability}
-
-${other-notes}Please plan to prerecord your ${time}-minute
-talk(s) by Sunday ${prere-date} at the latest. If you can, please send
-it in as early as possible. Submitting your video early lets us ask
-volunteers to help caption the video, making your talk more accessible
-and searchable.
-
-You can check out <https://emacsconf.org/${year}/prepare/> for tips on
-preparing and recording your talk. If you have questions or concerns,
-please let us know.
-
-Thanks,
-
-Sacha Chua
-EmacsConf organization team
-
-P.S. Please keep emacsconf-submit@gnu.org in To or Cc when replying.
-
-
### Acknowledge pre-rec submission
(defun emacsconf-acknowledge-submission ()