summaryrefslogtreecommitdiffstats
path: root/2022/organizers-notebook.md
diff options
context:
space:
mode:
authorSacha Chua <sacha@sachachua.com>2022-10-09 21:17:51 -0400
committerSacha Chua <sacha@sachachua.com>2022-10-09 21:17:51 -0400
commitd9730925f0073040f69e89d8a64126ca140fa134 (patch)
tree34dc4268ba2a198e245d98d7b55d7bca043e6504 /2022/organizers-notebook.md
parent0ec057aca1f5571c638011a41a0dd29b58f73992 (diff)
downloademacsconf-wiki-d9730925f0073040f69e89d8a64126ca140fa134.tar.xz
emacsconf-wiki-d9730925f0073040f69e89d8a64126ca140fa134.zip
Promote headings to reduce nesting, send volunteer communication
Diffstat (limited to '2022/organizers-notebook.md')
-rw-r--r--2022/organizers-notebook.md1165
1 files changed, 690 insertions, 475 deletions
diff --git a/2022/organizers-notebook.md b/2022/organizers-notebook.md
index 2df05dea..bb035291 100644
--- a/2022/organizers-notebook.md
+++ b/2022/organizers-notebook.md
@@ -6,30 +6,29 @@ This file is automatically exported from [/2022/organizers-notebook/index.org](/
# Table of Contents
+- [Cadence](#cadence)
+- [Overall priorities](#overall)
- [Current tasks / status](#current)
+- [Time-sensitive](#time-sensitive)
+- [Projects and other long-running tasks](#projects)
+- [Projects to bear in mind but which are not actual](#maybe-projects)
- [Things to figure out / decisions to make](#decisions)
- [Roles needed](#roles)
- [Other tasks and processes](#other)
-- [Task archive](#archive):ARCHIVE:
+- [Task archive](#archive)
- [Communications](#comms)
- [Supporting code](#code)
- [Lessons learned](#lessons)
Time-sensitive tasks:
-- [Volunteer communications: E-mail update for Oct 9, 2022](#volunteer-2022-10-09):email:volunteers:
-- [Remind people about confirming e-mail communications](#confirm-email):sachac:email:speakers:
-- [Plan cadence](#cadence):email:
-- [Send people schedule information and doublecheck their availability/Q&A preference](#check-sched):sachac:email:speakers:sched:
- [Send program-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:
-<a id="current"></a>
+<a id="cadence"></a>
-# Current tasks / status
-
-Planned dates and phases:
+# Cadence
<table border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
@@ -38,375 +37,326 @@ Planned dates and phases:
<col class="org-left" />
<col class="org-left" />
+
+<col class="org-left" />
+
+<col class="org-left" />
+
+<col class="org-left" />
</colgroup>
<tbody>
<tr>
-<td class="org-left"><span class="timestamp-wrapper"><span class="timestamp">[2022-09-26 Mon]</span></span></td>
-<td class="org-left">Yes/no comments for original submissions</td>
+<td class="org-left">&#xa0;</td>
+<td class="org-left">Work</td>
+<td class="org-left">Speakers</td>
+<td class="org-left">Volunteers</td>
+<td class="org-left">Public</td>
</tr>
<tr>
<td class="org-left"><span class="timestamp-wrapper"><span class="timestamp">[2022-09-30 Fri]</span></span></td>
-<td class="org-left">Original speaker notification date</td>
-</tr>
-
-
-<tr>
-<td class="org-left"><span class="timestamp-wrapper"><span class="timestamp">[2022-10-07 Fri]</span></span></td>
-<td class="org-left">Tentative deadline for settling on a strategy for the schedule/tracks</td>
+<td class="org-left">&#xa0;</td>
+<td class="org-left"><a href="#acceptance">acceptancoe, reply to confirm</a></td>
+<td class="org-left">&#xa0;</td>
+<td class="org-left">&#xa0;</td>
</tr>
<tr>
-<td class="org-left"><span class="timestamp-wrapper"><span class="timestamp">[2022-10-08 Sat]</span></span></td>
-<td class="org-left">E-mail confirmation expected (collect public contact info for posting in program)</td>
+<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"><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>
<tr>
-<td class="org-left"><span class="timestamp-wrapper"><span class="timestamp">[2022-10-14 Fri]</span></span></td>
-<td class="org-left">Program published</td>
+<td class="org-left"><span class="timestamp-wrapper"><span class="timestamp">[2022-10-16 Sun]</span></span></td>
+<td class="org-left"><a href="#upload">file upload</a></td>
+<td class="org-left">follow up with radio silence</td>
+<td class="org-left">infra update</td>
+<td class="org-left">&#xa0;</td>
</tr>
<tr>
-<td class="org-left"><span class="timestamp-wrapper"><span class="timestamp">[2022-10-31 Mon]</span></span></td>
-<td class="org-left">Schedule published</td>
+<td class="org-left"><span class="timestamp-wrapper"><span class="timestamp">[2022-10-23 Sun]</span></span></td>
+<td class="org-left"><a href="#etherpad">Etherpad</a>, <a href="#upload">stream</a></td>
+<td class="org-left">file upload instructions, drop radio silence</td>
+<td class="org-left">training</td>
+<td class="org-left">&#xa0;</td>
</tr>
<tr>
-<td class="org-left"><span class="timestamp-wrapper"><span class="timestamp">[2022-11-04 Fri]</span></span></td>
-<td class="org-left">Target date to receive prerecs; earlier is better</td>
+<td class="org-left"><span class="timestamp-wrapper"><span class="timestamp">[2022-10-30 Sun]</span></span></td>
+<td class="org-left"><a href="#intro">intro, exit videos</a></td>
+<td class="org-left">&#xa0;</td>
+<td class="org-left">shifts</td>
+<td class="org-left">schedule, posters?</td>
</tr>
<tr>
+<td class="org-left"><span class="timestamp-wrapper"><span class="timestamp">[2022-11-06 Sun]</span></span></td>
+<td class="org-left"><a href="#write-viewing">watch pages</a>, prerecs</td>
+<td class="org-left">prerec confirmation/reminder, caption progress</td>
+<td class="org-left">caption kickoff</td>
<td class="org-left">&#xa0;</td>
-<td class="org-left">zaeph: reencode videos</td>
</tr>
<tr>
+<td class="org-left"><span class="timestamp-wrapper"><span class="timestamp">[2022-11-13 Sun]</span></span></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>
-<td class="org-left">sachac: prepare talks for captioning</td>
</tr>
<tr>
+<td class="org-left"><span class="timestamp-wrapper"><span class="timestamp">[2022-11-20 Sun]</span></span></td>
+<td class="org-left">captions</td>
+<td class="org-left">checkin instructions</td>
+<td class="org-left">&#xa0;</td>
<td class="org-left">&#xa0;</td>
-<td class="org-left">volunteers: tech checks, captions</td>
</tr>
<tr>
-<td class="org-left">2022-12-03, 2022-12-04</td>
-<td class="org-left">Conference</td>
+<td class="org-left"><span class="timestamp-wrapper"><span class="timestamp">[2022-11-27 Sun]</span></span></td>
+<td class="org-left">captions</td>
+<td class="org-left">last weekend before EmacsConf</td>
+<td class="org-left">&#xa0;</td>
+<td class="org-left">watching</td>
</tr>
</tbody>
</table>
-Current phase: No prerecs to process yet, so it's a good time to focus
-on infrastructure
-
-- [Time-sensitive](#time-sensitive)
-- [Projects and other long-running tasks](#projects)
-- [Projects to bear in mind but which are not actual](#maybe-projects)
-
-[Overall prioritization of effort](#overall)
-
-
-<a id="time-sensitive"></a>
-## Time-sensitive
-
-Ordered chronologically (and therefore by importance).
+<a id="overall"></a>
-- [Volunteer communications: E-mail update for Oct 9, 2022](#volunteer-2022-10-09):email:volunteers:
-- [Remind people about confirming e-mail communications](#confirm-email):sachac:email:speakers:
-- [Plan cadence](#cadence):email:
-- [Send people schedule information and doublecheck their availability/Q&A preference](#check-sched):sachac:email:speakers:sched:
-- [Send program-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:
+# Overall priorities
+This table makes it easier to move the slider depending on who wants
+to volunteer and how much we can get done. At some point, we'll figure
+out how to track our current status so we know what we need to
+scramble to do in order to get the conference off the ground. **bold**
+is our current goal. Feel free to volunteer for anything that
+interests you!
-<a id="volunteer-2022-10-09"></a>
+<table border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
-### Volunteer communications: E-mail update for Oct 9, 2022 :email:volunteers:
-Add your news and requests to this.
+<colgroup>
+<col class="org-left" />
+<col class="org-left" />
-#### Template so far
+<col class="org-left" />
-Hello, EmacsConf volunteers!
+<col class="org-left" />
+</colgroup>
+<thead>
+<tr>
+<th scope="col" class="org-left">&#xa0;</th>
+<th scope="col" class="org-left">Good</th>
+<th scope="col" class="org-left">Better</th>
+<th scope="col" class="org-left">Best</th>
+</tr>
+</thead>
-We're starting to gear up for EmacsConf ${year} and we would love your help!
+<tbody>
+<tr>
+<td class="org-left"><a href="#sched-decision">schedule</a></td>
+<td class="org-left">one track</td>
+<td class="org-left"><b>DONE S: two tracks</b></td>
+<td class="org-left">aligned times, full roster</td>
+</tr>
-- <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.
-- 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
- to confirm their availability. This schedule staggers live Q&A
- sessions so that the person managing the streams can jump back and
- forth as needed. [Want to volunteer for a shift?](#shifts)
-Help wanted / upcoming tasks:
+<tr>
+<td class="org-left">schedule view</td>
+<td class="org-left">text table</td>
+<td class="org-left">S: imagemap fallback</td>
+<td class="org-left"><b>DONE S: interactive SVG</b></td>
+</tr>
-- We would like to find a way for people to upload large files through
- a web-based interface, since a number of speakers had issues with
- FTP uploads last year. [#upload](#upload) has some options to explore. Do you
- have any recommendations or do you want to do some research?
-You're receiving this e-mail because you're on the emacsconf-org mailing list.
+<tr>
+<td class="org-left"><a href="#upload">upload</a></td>
+<td class="org-left">FTP</td>
+<td class="org-left"><b>S?: web-based</b></td>
+<td class="org-left">auto-encoded, preview (SReview?)</td>
+</tr>
-<a id="confirm-email"></a>
+<tr>
+<td class="org-left"><a href="#streaming">streaming</a></td>
+<td class="org-left">ffmpeg from computer</td>
+<td class="org-left">DONE OBS</td>
+<td class="org-left"><b>Z: OBS in cloud, switchable hosts</b></td>
+</tr>
-### DONE Remind people about confirming e-mail communications :sachac:email:speakers:
-Look for the TO\_CONFIRM status in conf.org, probably include in schedule e-mail
+<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</td>
+<td class="org-left"><b>S: post as soon as talk is live</b></td>
+</tr>
-<a id="cadence"></a>
+<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>
-### TODO Plan cadence :email:
-<table border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
+<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>
+<td class="org-left">host monitors IRC and helps with BBB as well</td>
+</tr>
-<colgroup>
-<col class="org-left" />
+<tr>
+<td class="org-left">BBB Q&amp;A</td>
+<td class="org-left">none</td>
+<td class="org-left"><b>DONE open to community</b></td>
+<td class="org-left">moderated by speaker and host</td>
+</tr>
-<col class="org-left" />
-<col class="org-left" />
+<tr>
+<td class="org-left"><a href="#write-viewing">watch page</a></td>
+<td class="org-left">tracks</td>
+<td class="org-left"><b>+ IRC</b></td>
+<td class="org-left">+ talk info, maybe even pad</td>
+</tr>
-<col class="org-left" />
-<col class="org-left" />
-</colgroup>
-<tbody>
<tr>
-<td class="org-left">&#xa0;</td>
-<td class="org-left">Work</td>
-<td class="org-left">Speakers</td>
-<td class="org-left">Volunteers</td>
-<td class="org-left">Public</td>
+<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>one pad per talk, self-hosted</b> so we can access API</td>
</tr>
<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"><a href="#acceptance">acceptance, reply to confirm</a></td>
-<td class="org-left">&#xa0;</td>
-<td class="org-left">&#xa0;</td>
+<td class="org-left"><a href="#irc">IRC</a></td>
+<td class="org-left">#emacsconf, -org</td>
+<td class="org-left"><b>tracks, hallway, org</b></td>
+<td class="org-left">IRC volunteer copying to pads; maybe even IRC bots</td>
</tr>
<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"><a href="#check-sched">schedule, reply if not okay</a></td>
-<td class="org-left"><a href="#volunteer-2022-10-09">overall priorities</a></td>
+<td class="org-left"><a href="#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>
</tr>
<tr>
-<td class="org-left"><span class="timestamp-wrapper"><span class="timestamp">[2022-10-16 Sun]</span></span></td>
-<td class="org-left"><a href="#upload">file upload</a></td>
-<td class="org-left">follow up with radio silence</td>
-<td class="org-left">infra update</td>
-<td class="org-left">&#xa0;</td>
+<td class="org-left"><a href="#publishing-sched">sched update</a></td>
+<td class="org-left"><b>S: publish at start</b></td>
+<td class="org-left">update main sched</td>
+<td class="org-left">update talk pages</td>
</tr>
<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="#etherpad">Etherpad</a>, <a href="#upload">stream</a></td>
-<td class="org-left">file upload instructions, drop radio silence</td>
-<td class="org-left">training</td>
-<td class="org-left">&#xa0;</td>
+<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">embed stream, pad, IRC, prerec</td>
</tr>
<tr>
-<td class="org-left"><span class="timestamp-wrapper"><span class="timestamp">[2022-10-30 Sun]</span></span></td>
-<td class="org-left"><a href="#intro">intro, exit videos</a></td>
-<td class="org-left">&#xa0;</td>
-<td class="org-left">shifts</td>
-<td class="org-left">schedule, posters?</td>
+<td class="org-left"><a href="#other-streams">other streams</a></td>
+<td class="org-left">480p</td>
+<td class="org-left">+ Toobnix</td>
+<td class="org-left"><b>S: + YouTube</b></td>
</tr>
<tr>
-<td class="org-left"><span class="timestamp-wrapper"><span class="timestamp">[2022-11-06 Sun]</span></span></td>
-<td class="org-left"><a href="#write-viewing">watch pages</a></td>
-<td class="org-left">prerec confirmation/reminder, caption progress</td>
-<td class="org-left">caption kickoff</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>
</tr>
<tr>
-<td class="org-left"><span class="timestamp-wrapper"><span class="timestamp">[2022-11-13 Sun]</span></span></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>
+<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">more JS and CSS, embeds, videoplayer</td>
</tr>
<tr>
-<td class="org-left"><span class="timestamp-wrapper"><span class="timestamp">[2022-11-20 Sun]</span></span></td>
-<td class="org-left">captions</td>
-<td class="org-left">checkin instructions</td>
-<td class="org-left">&#xa0;</td>
-<td class="org-left">&#xa0;</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">Emacs thing so we can display info, countdowns, IRC</td>
</tr>
<tr>
-<td class="org-left"><span class="timestamp-wrapper"><span class="timestamp">[2022-11-27 Sun]</span></span></td>
-<td class="org-left">captions</td>
-<td class="org-left">last weekend before EmacsConf</td>
-<td class="org-left">&#xa0;</td>
-<td class="org-left">watching</td>
+<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">comprehensive, can also work against containers</td>
</tr>
</tbody>
</table>
-<a id="check-sched"></a>
-
-### 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)
- (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
-
-Hi, ${speakers-short}!
+<a id="current"></a>
-Here's the tentative schedule for when your EmacsConf talk${plural}
-will be streamed. Your talk${plural} will be streamed once, but I've
-included a few timezone conversions for convenience.
+# Current tasks / status
----
+Planned dates and phases:
-${schedule}
+Current phase: No prerecs to process yet, so it's a good time to focus
+on infrastructure
----
-${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}
+<a id="time-sensitive"></a>
-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}
+# Time-sensitive
-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}
+Ordered chronologically (and therefore by importance).
-Sacha
+- [Send program-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:
<a id="announce-program"></a>
-### TODO Send program-published email for emacsconf-discuss :needsowner:timesensitive:email:
+## TODO Send program-published email for emacsconf-discuss :needsowner:timesensitive:email:
Probably post schedule instead if available by that date
-#### TODO Post it to r/emacs as well :reddit:zaeph:
+### TODO Post it to r/emacs as well :reddit:zaeph:
Please let zaeph know when it’s live so that the post can be distinguished.
-#### Template
+### Template
Greetings, fellow Emacsians!
@@ -423,14 +373,14 @@ talks in the coming weeks.
<a id="mail-upload"></a>
-### BLOCKED Prepare email for nudging speakers to send prerec, and inform on upload workflow :timesensitive:needsowner:
+## BLOCKED Prepare email for nudging speakers to send prerec, and inform on upload workflow :timesensitive:needsowner:
Blocked by [Figure out web-based file upload](#upload)
<a id="projects"></a>
-## Projects and other long-running tasks
+# Projects and other long-running tasks
- [Figure out web-based file upload](#upload):needsowner:zaeph:bandali:ansible:sachac:
- [Coordinate and help volunteers](#coordinate-volunteers):sachac:
@@ -441,7 +391,7 @@ 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 sequence](#intro)
+- [Make something to display between talks](#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:
@@ -460,7 +410,7 @@ Ordered by importance.
<a id="upload"></a>
-### TODO Figure out web-based file upload :needsowner:zaeph:bandali:ansible:sachac:
+## TODO Figure out web-based file upload :needsowner:zaeph:bandali:ansible:sachac:
zaeph: I can work on it, but I’m not experienced in this domain, so I’d prefer to be a back-up.
@@ -498,18 +448,18 @@ Considerations:
- NextCloud
-#### TODO Create 2022/upload.md with the same workflow as last year for a start
+### TODO Create 2022/upload.md with the same workflow as last year for a start
-#### BLOCKED Implement new workflow
+### BLOCKED Implement new workflow
-#### BLOCKED Notify speakers when the final solution is available
+### BLOCKED Notify speakers when the final solution is available
<a id="coordinate-volunteers"></a>
-### TODO Coordinate and help volunteers :sachac:
+## TODO Coordinate and help volunteers :sachac:
- <../volunteer>
- Figure out what information volunteers need in order to feel
@@ -520,15 +470,15 @@ Considerations:
<a id="prepare-prerec-process"></a>
-### TODO Prepare for prerecs :zaeph:
+## TODO Prepare for prerecs :zaeph:
-#### TODO Optimize ffmpeg incantation
+### TODO Optimize ffmpeg incantation
Remember to update <prepare.md> with the new incantation.
-#### TODO Figure out workflow for handling submitted prerecs
+### TODO Figure out workflow for handling submitted prerecs
We need time after the prerecs get submitted to:
@@ -540,7 +490,7 @@ We need time after the prerecs get submitted to:
<a id="bbb-cleanup"></a>
-### TODO Delete all the EmacsConf BBB rooms from last year :chore:bbb:
+## TODO Delete all the EmacsConf BBB rooms from last year :chore:bbb:
For the admins on BBB. The list is accessible here: [Organization Settings](https://bbb.emacsverse.org/b/admins/rooms).
Should take no more than ~20′.
@@ -548,7 +498,7 @@ Should take no more than ~20′.
<a id="etherpad"></a>
-### TODO Plan Etherpad use and hosting :sachac:ansible:
+## TODO Plan Etherpad use and hosting :sachac:ansible:
- Relevant links:
- Per-pad, nicely structured info with abstract, watching information, etc. CarpentryCon 2022 Schedule • CarpentryCon 2022 <https://2022.carpentrycon.org/>
@@ -558,12 +508,12 @@ Should take no more than ~20′.
<a id="irc"></a>
-### TODO Update IRC instructions because of multiple tracks
+## TODO Update IRC instructions because of multiple tracks
<a id="streaming"></a>
-### TODO Investigate streaming options, maybe OBS in the cloud :corwin:zaeph:
+## TODO Investigate streaming options, maybe OBS in the cloud :corwin:zaeph:
- 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).
@@ -582,51 +532,58 @@ Resources:
- <https://xpra.org/>
-#### TODO corwin: plan an approach to use a centralized OBS/nginix "bouncer" :corwin:
+### TODO corwin: plan an approach to use a centralized OBS/nginix "bouncer" :corwin:
-#### TODO corwin: document such that someone else could use/fix it :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 "video bouncer" :corwin:
+### TODO corwin: recruit at least one more person to help operate the "video bouncer" :corwin:
<a id="obs-scenes"></a>
-### TODO Work on the OBS scenes :zaeph:corwin:
+## TODO Work on the OBS scenes :zaeph:corwin:
- [ ] corwin is out from Nov 11-20, and we should start working on them before then.
<a id="ansible"></a>
-### TODO Build up the ansible playbook :sachac:
+## TODO Build up the ansible playbook :sachac:
git@git.emacsconf.org:pub/emacsconf-ansible
can currently publish
-#### TODO Get ansible to run against a clean docker
+### TODO Get ansible to run against a clean docker
-#### TODO Add ikiwiki template to ansible
+### TODO Add ikiwiki template to ansible
<a id="intro"></a>
-### BLOCKED Make intro and exit sequence
+## BLOCKED Make something to display between talks
+
+Goals:
-Intro:
-Next: title, speaker, pronouns, talk page
+- Reassure people that they're in the right stream for the talk that they're looking for
+- Direct them to the pad and Q&A for the talk
-Exit:
-Title, speaker, pronouns, talk page, Q&A
+What to show in between talks:
-Needs to wait for pad decision, or have friendly URLs redirect to the right pads
+- 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's static, this needs to wait for the decision on how we're going
+to use Etherpad, or we should 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
+- Better: Video with unobtrusive sound so people can doublecheck that their audio works
- Best: Emacs thing so that we can have a dynamic timer and last-minute announcements, and so that it's Emacs =)
+- Even better than that: A compact view that can be overlaid on the Q&A session using OBS
See break commercials
<https://www.collabmagazine.com/organizing-a-multi-track-virtual-conference-with-microsoft-teams-live-events-a-technical-playbook-and-lessons-learned/>
@@ -634,7 +591,7 @@ See break commercials
<a id="publishing-sched"></a>
-### DONE Move scheduling and publishing code to Emacs on a VPS so that other people can help out :sachac:
+## DONE Move scheduling and publishing code to Emacs on a VPS so that other people can help out :sachac:
Ideal:
@@ -656,7 +613,7 @@ It's now on front.
<a id="extra-prepare"></a>
-### STANDBY Add nice-to-have stuff to prepare.md :zaeph:
+## STANDBY Add nice-to-have stuff to prepare.md :zaeph:
- org-reveal config
- SIL fonts choice
@@ -664,20 +621,20 @@ It's now on front.
<a id="tech-checks"></a>
-### INPROGRESS Find volunteers for tech-checks :zaeph:
+## INPROGRESS Find volunteers for tech-checks :zaeph:
-#### DONE Add entry in 2022/volunteer.md
+### DONE Add entry in 2022/volunteer.md
-#### INPROGRESS Write protocol for adding tech-checker volunteer
+### INPROGRESS Write protocol for adding tech-checker volunteer
- Invite volunteer to BBB (ask core organizers)
- Update <prepare.md> with new tech-checker info
- Coach tech-checker on the protocol
-#### INPROGRESS Write the tech-checking protocol (formerly referred to as “tech-checklist”)
+### INPROGRESS Write the tech-checking protocol (formerly referred to as “tech-checklist”)
From previous years:
@@ -693,7 +650,7 @@ From previous years:
<a id="write-viewing"></a>
-### STANDBY Update viewing instructions and watch pages :zaeph:
+## STANDBY Update viewing instructions and watch pages :zaeph:
Extra stuff to consider adding:
@@ -704,12 +661,12 @@ Also add to watch page
<a id="publish-live"></a>
-### TODO Make talk pages easy to update when the talk is live :sachac:
+## TODO Make talk pages easy to update when the talk is live :sachac:
<a id="video-platforms"></a>
-### BLOCKED 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
@@ -717,7 +674,7 @@ waiting for prerecs
<a id="other-streams"></a>
-### TODO Set up stream events on Toobnix and YouTube :sachac:
+## TODO Set up stream events on Toobnix and YouTube :sachac:
so that people on other platforms can come across EmacsConf
@@ -727,7 +684,7 @@ so that people on other platforms can come across EmacsConf
<a id="irc-announce"></a>
-### TODO Prepare to announce talks on IRC
+## TODO Prepare to announce talks on IRC
- talks should be announced in their relevant tracks and in the hallways
- video starting in 5 minutes
@@ -739,7 +696,7 @@ so that people on other platforms can come across EmacsConf
<a id="speaker-bio"></a>
-### TODO Ask speakers for bios or support nudges to include on their talk pages
+## TODO Ask speakers for bios or support nudges to include on their talk pages
maybe after we get the prerecs
ex: liberapay, patreon, anyone looking for a job, etc.
@@ -747,7 +704,7 @@ ex: liberapay, patreon, anyone looking for a job, etc.
<a id="dry-run"></a>
-### BLOCKED Do a dry run
+## BLOCKED Do a dry run
- Streams
- [ ] General stream
@@ -779,7 +736,7 @@ ex: liberapay, patreon, anyone looking for a job, etc.
<a id="ikiwiki-regex"></a>
-### TODO Figure out why ikiwiki is slow :infra:wiki:
+## TODO Figure out why ikiwiki is slow :infra:wiki:
complex regular expression issues?
should the captions be outside the wiki?
@@ -787,7 +744,7 @@ 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:
+## TODO Add category tags and possibly links between talks across 2022 and all previous years :needsowner:wiki:
- Prerequisite: Can edit wiki pages (<https://emacsconf.org/edit/>)
- Goal: Make it easier for people to discover interesting related talks
@@ -803,10 +760,10 @@ should the captions be outside the wiki?
<a id="maybe-projects"></a>
-## Projects to bear in mind but which are not actual
+# Projects to bear in mind but which are not actual
-### STANDBY Find a way to accommodate a specific return-speaker
+## STANDBY Find a way to accommodate a specific return-speaker
We’re not sure if we’re going to get a presentation or a prerec for them
this year, but we need to keep this at the back of our minds.
@@ -819,7 +776,6 @@ Note on how DebConf handled incidents:
# Things to figure out / decisions to make
-- [How fancy do we want to get this year? (overall prioritization)](#overall)
- [How do we want to make the full schedule more manageable?](#sched-decision)
- [How much do we want to enrich the wiki with JS?](#wiki-design)
- [What ideas do we want to borrow from other conferences?](#other-confs)
@@ -831,191 +787,6 @@ Note on how DebConf handled incidents:
- [Decision archive](#decision-archive)
-<a id="overall"></a>
-
-## How fancy do we want to get this year? (overall prioritization)
-
-**bold** is our current goal. This table makes it easier to move the
-slider depending on who wants to volunteer and how much we can get
-done. At some point, we'll figure out how to track our current status
-so we know what we need to scramble to do.
-
-<table border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
-
-
-<colgroup>
-<col class="org-left" />
-
-<col class="org-left" />
-
-<col class="org-left" />
-
-<col class="org-left" />
-</colgroup>
-<thead>
-<tr>
-<th scope="col" class="org-left">&#xa0;</th>
-<th scope="col" class="org-left">Good</th>
-<th scope="col" class="org-left">Better</th>
-<th scope="col" class="org-left">Best</th>
-</tr>
-</thead>
-
-<tbody>
-<tr>
-<td class="org-left"><a href="#sched-decision">schedule</a></td>
-<td class="org-left">one track</td>
-<td class="org-left"><b>DONE S: two tracks</b></td>
-<td class="org-left">aligned times, full roster</td>
-</tr>
-
-
-<tr>
-<td class="org-left">schedule view</td>
-<td class="org-left">text table</td>
-<td class="org-left">S: imagemap fallback</td>
-<td class="org-left"><b>DONE S: interactive SVG</b></td>
-</tr>
-
-
-<tr>
-<td class="org-left"><a href="#upload">upload</a></td>
-<td class="org-left">FTP</td>
-<td class="org-left"><b>S?: web-based</b></td>
-<td class="org-left">auto-encoded, preview (SReview?)</td>
-</tr>
-
-
-<tr>
-<td class="org-left"><a href="#streaming">streaming</a></td>
-<td class="org-left">ffmpeg from computer</td>
-<td class="org-left">DONE OBS</td>
-<td class="org-left"><b>Z: OBS in cloud, switchable hosts</b></td>
-</tr>
-
-
-<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</td>
-<td class="org-left"><b>S: post as soon as talk is live</b></td>
-</tr>
-
-
-<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>
-<td class="org-left">host monitors IRC and helps with BBB as well</td>
-</tr>
-
-
-<tr>
-<td class="org-left">BBB Q&amp;A</td>
-<td class="org-left">none</td>
-<td class="org-left"><b>DONE open to community</b></td>
-<td class="org-left">moderated by speaker and host</td>
-</tr>
-
-
-<tr>
-<td class="org-left"><a href="#write-viewing">watch page</a></td>
-<td class="org-left">tracks</td>
-<td class="org-left"><b>S: + IRC</b></td>
-<td class="org-left">+ talk info, maybe even pad</td>
-</tr>
-
-
-<tr>
-<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>one pad per talk, self-hosted</b> so we can access API</td>
-</tr>
-
-
-<tr>
-<td class="org-left"><a href="#irc">IRC</a></td>
-<td class="org-left">#emacsconf, -org</td>
-<td class="org-left"><b>tracks, hallway, org</b></td>
-<td class="org-left">IRC volunteer copying to pads; maybe even IRC bots</td>
-</tr>
-
-
-<tr>
-<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>
-</tr>
-
-
-<tr>
-<td class="org-left"><a href="#publishing-sched">sched update</a></td>
-<td class="org-left"><b>S: publish at start</b></td>
-<td class="org-left">update main sched</td>
-<td class="org-left">update talk pages</td>
-</tr>
-
-
-<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">embed stream, pad, IRC, prerec</td>
-</tr>
-
-
-<tr>
-<td class="org-left"><a href="#other-streams">other streams</a></td>
-<td class="org-left">480p</td>
-<td class="org-left">+ Toobnix</td>
-<td class="org-left"><b>S: + YouTube</b></td>
-</tr>
-
-
-<tr>
-<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>
-</tr>
-
-
-<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">more JS and CSS, embeds, videoplayer</td>
-</tr>
-
-
-<tr>
-<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">Emacs thing so we can display info, countdowns, IRC</td>
-</tr>
-
-
-<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">comprehensive, can also work against containers</td>
-</tr>
-</tbody>
-</table>
-
-
<a id="sched-decision"></a>
## How do we want to make the full schedule more manageable?
@@ -1543,7 +1314,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](#orgfbdb10f)
+- [Giving conf.org access to a new volunteer or fake user](#org6118ed0)
- [As prerecorded talks come in](#prerec-process)
- [When a talk is captioned](#when-captioned)
- [Other tasks before the conference](#before)
@@ -1552,7 +1323,7 @@ Interested in a shift? Please e-mail <mailto:emacsconf-org-private@gnu.org> and
- [In case of](#exceptions)
-<a id="orgfbdb10f"></a>
+<a id="org6118ed0"></a>
## Giving conf.org access to a new volunteer or fake user
@@ -2078,7 +1849,7 @@ Probably focus on grabbing the audio first and seeing what's worth keeping
Make a table of the form
-<table id="org8cab286" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
+<table id="org89bfe71" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
<colgroup>
@@ -2335,7 +2106,451 @@ mpv &#x2013;vf=negate $url
<a id="archive"></a>
-# Task archive :ARCHIVE:
+# Task archive
+
+
+## DONE Write preparation instructions :zaeph:
+
+2021/prepare.md can be reused.
+
+Extra stuff to consider adding:
+
+- DONE Suggestions for themes (especially wrt colourscape)
+- DONE “Please don’t squeeze your talk by fast-forwarding your speech. Trimming silences and filler words can help, though. Sometimes it's easier to write, record, and edit your voiceover, and then record the video to go along with it."
+- DONE Allowing speakers to plant questions, esp. to cover tangential stuff that couldn’t fit in the prerec
+
+
+## CANCELLED Allocate extra time if possible; send e-mail :sachac:
+
+
+## DONE Review metadata for speakers in conf.org :zaeph:
+
+See the bottom of conf.org for some automated validation
+
+
+## DONE Review the submissions in the pad (see emacsconf-org-private or conf.org for the link) and add any objections or comments by Sept 26 for possible [early speaker notification](#acceptance), Oct 7 for everything :organizers:
+
+- zaeph: will start reviewing on Sep 21
+
+
+## DONE Write preparation instructions :zaeph:
+
+2021/prepare.md can be reused.
+
+Extra stuff to consider adding:
+
+- DONE Suggestions for themes (especially wrt colourscape)
+- DONE “Please don’t squeeze your talk by fast-forwarding your speech. Trimming silences and filler words can help, though. Sometimes it's easier to write, record, and edit your voiceover, and then record the video to go along with it."
+- DONE Allowing speakers to plant questions, esp. to cover tangential stuff that couldn’t fit in the prerec
+
+
+## DONE Add more submissions (CFP deadline Sept 30) :sachac:
+
+- Sacha: Add submissions to emacsconf-2022-private, draft 2-day schedule by Oct 10
+
+
+## DONE Publish talk pages :sachac:
+
+
+## DONE Send early acceptances :sachac:
+
+Ideal sequence:
+
+1. publish /2022/prepare (zaeph)
+2. publish wiki pages
+3. send acceptance e-mails
+ - Allocate at most 20 minutes, say we'll try to add more time depending on the schedule (probably know by Sept 30 or Oct 1)
+ - Include review comments
+4. Send an additional e-mail introducing speakers who may want to coordinate
+
+
+## DONE Prepare to export talk information to wiki :sachac:
+
+Tested code in a fork, can publish talk information once talks are approved.
+emacsconf-publish.el
+emacsconf-generate-info-pages
+emacsconf-generate-main-schedule
+emacsconf-generate-talk-pages
+
+
+## DONE Give access to emacsconf-2022-private to dto :zaeph:
+
+
+## DONE Write better subtitle documentation :sachac:
+
+<https://wiki.debian.org/Teams/DebConf/Video/Subtitles>
+<https://emacsconf.org/captioning>
+That will help more people subtitle things
+
+
+## DONE Write volunteer page :sachac:
+
+<https://emacsconf.org/2022/volunteer>
+
+
+## DONE Review the submissions in the pad (see emacsconf-org-private or conf.org for the link) and add any objections or comments by Sept 26 for possible [early speaker notification](#acceptance), Oct 7 for everything :organizers:
+
+- zaeph: will start reviewing on Sep 21
+
+
+## DONE Double-check sachac’s timezone conversions for availability :zaeph:
+
+zaeph helped with this, even catching some based on e-mail timestamps
+
+
+## DONE Copy things over from previous notebooks :sachac:
+
+
+## DONE Prepare to publish schedule :sachac:wiki:
+
+- Should be understandable as plain text
+- Ideally responsive to take advantage of more screen space on monitors while still being understandable on mobile
+- Organize by tracks and then days
+- Links to jump to a track and day
+- Graphics to make it easier for people to see nearby talk options
+- Optionally, graphical view on talk pages as well (might need to publish a JSON somewhere to front)
+
+ Schedule inspiration:
+
+ - [DebConf 2022](https://debconf22.debconf.org/schedule/) converted times to your local timezone
+ - [LibrePlanet 2022](https://libreplanet.org/2022/program/) used table columns for the different tracks
+ - [SFSCON 2022](https://www.sfscon.it/programs/2022/) lists sessions chronologically, indicating tracks with labels and dots on a diagram. Dropdowns act as filters.
+ - <https://css-tricks.com/building-a-conference-schedule-with-css-grid/>
+
+- With JS and grid CSS: <https://imgur.com/KNpGayp>
+- Fallback <https://imgur.com/HT9vX3o>
+
+Draft: <https://emacsconf.org/2022/draft-schedule/>
+
+
+### DONE Set up main schedule as plain text
+
+general track
+day 1 and day 2
+
+dev track
+day 1 and day 2
+
+by day
+all talks
+
+
+### DONE Set up talk page navigation
+
+- program phase: by track
+- schedule phase: chronological
+
+
+### CANCELLED See if I can get the schedule to split into a nice grid on larger devices that support it
+
+Slightly annoying to do with JS/CSS because I want it to fall back to an interleaved schedule on small screens, so we would probably need to duplicate the elements and then use media queries.
+
+
+## DONE Process confirmations as we receive them :sachac:zaeph:
+
+- Reply to the speaker and Cc -submit to confirm the confirmation. Something like "Confirming your confirmation, no reply needed to this one. Thank you!"
+- Update talk to WAITING\_FOR\_PREREC in conf.org
+- Add a note in the logbook (C-c C-z - org-add-note) for the talk entry
+- Add :PUBLIC\_EMAIL: t if given permission to use the e-mail on the
+ talk page, or set it to an alternative e-mail if provided.
+- Update the public wiki's ${year}/talks/{$slug}.md page to add the
+ e-mail address as <mailto:person@example.com> on the speaker
+ information line.
+- At some point, use `M-x emacsconf-generate-talk-pages` to update the e-mail address used in the footer.
+
+ (let (waiting)
+ (save-window-excursion
+ (with-current-buffer (find-file emacsconf-org-file)
+ (org-map-entries (lambda () (add-to-list 'waiting
+ (list (org-entry-get (point) "SLUG")
+ (org-entry-get (point) "ITEM")))) "TODO=\"TO_CONFIRM\"")))
+ waiting)
+
+
+## CANCELLED Create Org heading for scheduling caption team's live IRC duty shifts :dto:
+
+See [Shifts](#shifts)
+
+
+## DONE Sacha: Organize volunteer information :sachac:
+
+
+## DONE Once talks are approved
+
+- sacha: Publish initial talk information pages
+- Double-check talk pages, format them nicely
+- Publish draft schedule
+- Confirm e-mail communication with all of the speakers
+
+Process for accepting a talk:
+
+- Create subtree for talk and populate it with properties.
+ - Required: CUSTOM\_ID SLUG NAME NAME\_SHORT EMAIL AVAILABILITY Q\_AND\_A TRACK MAX\_TIME
+ - Optional: PRONOUNS PRONUNCIATION IRC PUBLIC\_EMAIL MIN\_TIME EMERGENCY
+ - Can be validated with `emacsconf-validate-talk-subtree`
+ - Add a talk abstract subtree
+- Add it to emacsconf-schedule-plan and fiddle with it until the flow looks good
+- Execute the draft-schedule block to update the schedule in the Org file
+- Add the talk page to the wiki with `emacsconf-add-talk-page`.
+- Stage, commit, and push the wiki files. Make sure to add the talk page and the info pages.
+- Doublecheck the wiki page on the web, since the e-mail refers to it.
+- E-mail the speaker the acceptance by using `emacsconf-draft-acceptance-for-email-group` from `organizers-notebook/`.
+- Log the acceptance using `C-c C-z` in the talk subtree in `conf.org`, noting the number of minutes.
+- Change the status to TO\_CONFIRM.
+
+
+## DONE Remind people about confirming e-mail communications :sachac:email:speakers:
+
+Look for the TO\_CONFIRM status in conf.org, probably include in schedule e-mail
+
+
+<a id="check-sched"></a>
+
+## 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)
+ (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 "))))))))
+
+ (defun emacsconf-mail-schedule-update (group &optional template)
+ "Send draft schedule update.
+ GROUP is (email . (talk talk))"
+ (interactive (list (emacsconf-mail-complete-email-group)))
+ (require 'emacsconf-ical)
+ (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 "\"%s\" (%s)\n%s track\n%s\nIn context: %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 (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
+
+Hi, ${speakers-short}!
+
+Here's the tentative schedule for when your EmacsConf talk${plural}
+will be streamed. Your talk${plural} will be streamed once, but I've
+included a few timezone conversions for convenience.
+
+---
+
+${schedule}
+
+---
+
+${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, 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}
+
+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
+
+
+### Schedule change affecting dev
+
+(Please ignore the previous update, I included the wrong times in the
+e-mail. The web version's been fine, though! Sorry about the extra
+e-mails.)
+
+I tweaked the schedule to put treesitter and lspbridge earlier, so
+asmblox and wayland are a little later on Saturday morning. If you'd
+like to see the latest schedule for your talk, you can go to
+<https://emacsconf.org/${year}/draft-schedule/> . Thanks for your
+patience!
+
+---
+
+${schedule}
+
+---
+
+(no need to reply to this to confirm, unless I broke the schedule for
+you and you want me to fix it)
+
+Sacha
+
+
+<a id="volunteer-2022-10-09"></a>
+
+## DONE Volunteer communications: E-mail update for Oct 9, 2022 :email:volunteers:
+
+Add your news and requests to this.
+
+
+### Template so far
+
+Hello, EmacsConf volunteers!
+
+We're starting to gear up for EmacsConf 2022, and we would love to
+figure out how to work with your skills, interests, and availability.
+<https://emacsconf.org/2022/volunteer/> has some specific task ideas and
+general roles.
+
+<https://emacsconf.org/2022/organizers-notebook/#overall> has an
+overall prioritization matrix. If any of those options look like
+something you want to learn or help with, or if you want to make
+things even better than what's in the table, let me know.
+
+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 have e-mailed speakers
+to confirm their availability. This schedule staggers live Q&A
+sessions so that the person managing the streams can jump back and
+forth as needed. We'll figure out shifts once we've sorted out the
+processes and training info, but if you want to call dibs on
+something, feel free.
+<https://emacsconf.org/2022/organizers-notebook/#shifts>
+
+Please let me know what kinds of things you'd like to learn more about
+or help out with!
+
+Sacha Chua
+
+(You're receiving this e-mail because you're on the emacsconf-org
+mailing list. Thanks for wanting to help out!)
<a id="comms"></a>