summaryrefslogtreecommitdiffstats
path: root/2022/organizers-notebook/index.org
diff options
context:
space:
mode:
Diffstat (limited to '2022/organizers-notebook/index.org')
-rw-r--r--2022/organizers-notebook/index.org709
1 files changed, 357 insertions, 352 deletions
diff --git a/2022/organizers-notebook/index.org b/2022/organizers-notebook/index.org
index db2de204..e567e354 100644
--- a/2022/organizers-notebook/index.org
+++ b/2022/organizers-notebook/index.org
@@ -47,32 +47,70 @@ or ~C-c \~ (~org-match-sparse-tree~) to see anything tagged with your tag.
~org-agenda~ with ~<~ for the file restriction may also be handy.
+* Cadence
+:PROPERTIES:
+:CUSTOM_ID: cadence
+:OWNER: sachac
+:END:
+
+| | Work | Speakers | Volunteers | Public |
+| [2022-09-30 Fri] | | [[#acceptance][acceptance, reply to confirm]] | | |
+| [2022-10-09 Sun] | | [[#check-sched][schedule, reply if not okay]] | [[#volunteer-2022-10-09][overall priorities]] | |
+| [2022-10-16 Sun] | [[#upload][file upload]] | follow up with radio silence | infra update | |
+| [2022-10-23 Sun] | [[#etherpad][Etherpad]], [[#upload][stream]] | file upload instructions, drop radio silence | training | |
+| [2022-10-30 Sun] | [[#intro][intro, exit videos]] | | shifts | schedule, posters? |
+| [2022-11-06 Sun] | [[#write-viewing][watch pages]], prerecs | prerec confirmation/reminder, caption progress | caption kickoff | |
+| [2022-11-13 Sun] | dry run, captions | tech check | | |
+| [2022-11-20 Sun] | captions | checkin instructions | | |
+| [2022-11-27 Sun] | captions | last weekend before EmacsConf | | watching |
+
+
+* Overall priorities
+:PROPERTIES:
+:CUSTOM_ID: overall
+:END:
+
+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!
+
+| | Good | Better | Best |
+|-------------------+-------------------------------------+--------------------------------------+------------------------------------------------------|
+| [[#sched-decision][schedule]] | one track | *DONE S: two tracks* | aligned times, full roster |
+| schedule view | text table | S: imagemap fallback | *DONE S: interactive SVG* |
+| [[#upload][upload]] | FTP | *S?: web-based* | auto-encoded, preview (SReview?) |
+| [[#streaming][streaming]] | ffmpeg from computer | DONE OBS | *Z: OBS in cloud, switchable hosts* |
+| [[#prepare-prerec-process][prerec]] | DONE play original with captions | Z: normalize audio | *S: post as soon as talk is live* |
+| BBB rooms | about 5 rooms that we cycle through | | *one room per speaker* |
+| host | no host, speaker reads pad | *host reads pad* | host monitors IRC and helps with BBB as well |
+| BBB Q&A | none | *DONE open to community* | moderated by speaker and host |
+| [[#write-viewing][watch page]] | tracks | *+ IRC* | + talk info, maybe even pad |
+| [[#etherpad][pad]] | one pad for conf | one pad per talk, wikimedia | *one pad per talk, self-hosted* so we can access API |
+| [[#irc][IRC]] | #emacsconf, -org | *tracks, hallway, org* | IRC volunteer copying to pads; maybe even IRC bots |
+| [[#irc-announce][IRC announcements]] | *ERC commands* | timer-based | |
+| [[#publishing-sched][sched update]] | *S: publish at start* | update main sched | update talk pages |
+| [[#publish-live][talk pages]] | S: link to stream, pad, IRC | *link to prerec when live* | embed stream, pad, IRC, prerec |
+| [[#other-streams][other streams]] | 480p | + Toobnix | *S: + YouTube* |
+| [[#video-platforms][other platforms]] | *S: Toobnix & YT after event* | | S: Toobnix + YT when live |
+| [[#wiki-design][wiki]] | plain text, markdown | *sachac: some JS and CSS enrichment* | more JS and CSS, embeds, videoplayer |
+| [[#intro][intro and exit]] | *generic static image* | per-talk image | Emacs thing so we can display info, countdowns, IRC |
+| [[#ansible][ansible]] | none | *sachac: some automation* | comprehensive, can also work against containers |
+
* Current tasks / status
:PROPERTIES:
:CUSTOM_ID: current
:END:
Planned dates and phases:
-| [2022-09-26] | Yes/no comments for original submissions |
-| [2022-09-30] | Original speaker notification date |
-| [2022-10-07] | Tentative deadline for settling on a strategy for the schedule/tracks |
-| [2022-10-08] | E-mail confirmation expected (collect public contact info for posting in program) |
-| [2022-10-14] | Program published |
-| [2022-10-31] | Schedule published |
-| [2022-11-04] | Target date to receive prerecs; earlier is better |
-| | zaeph: reencode videos |
-| | sachac: prepare talks for captioning |
-| | volunteers: tech checks, captions |
-| 2022-12-03, 2022-12-04 | Conference |
-
Current phase: No prerecs to process yet, so it's a good time to focus
on infrastructure
#+TOC: headlines 1 local
-[[#overall][Overall prioritization of effort]]
-
-** Time-sensitive
+* Time-sensitive
:PROPERTIES:
:CUSTOM_ID: time-sensitive
:END:
@@ -81,7 +119,7 @@ Ordered chronologically (and therefore by importance).
#+TOC: headlines 1 local
-*** Volunteer communications: E-mail update for Oct 9, 2022 :email:volunteers:
+** Volunteer communications: E-mail update for Oct 9, 2022 :email:volunteers:
SCHEDULED: <2022-10-09 Sun>
:PROPERTIES:
:CUSTOM_ID: volunteer-2022-10-09
@@ -89,7 +127,7 @@ SCHEDULED: <2022-10-09 Sun>
Add your news and requests to this.
-**** Template so far
+*** Template so far
:PROPERTIES:
:SUBJECT: Getting ready for EmacsConf ${year}
:END:
@@ -98,275 +136,52 @@ 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.
-- 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. [[#shifts][Want to volunteer for a shift?]]
-
-Help wanted / upcoming tasks:
-
-- 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?
+- https://emacsconf.org/${year}/organizers-notebook/#overall has an
+ overall prioritization matrix. If any of those options look like
+ something you want to learn or help with, you can volunteer to help
+ move the needle.
+- 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. [[#shifts][Want to volunteer for a shift?]]
+
+Help wanted / upcoming projects:
+
+- Emacs Lisp: Want to design the screens that will be displayed before
+ and after a talk? Bonus points if you can do it in Emacs with a
+ count-down timer until the start of the talk. See [[#intro]]
+
+- Infrastructure - file upload: 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?
+
+- Infrastructure - streaming: Got any experience streaming with OBS or
+ gstreamer? We're going to try to have two (or more!) streams this
+ year, so it would be great to have more streamers on board.
+ Definitely let us know if you have any experience using a cloud
+ server to stream, or if you'd like to help figure it out (see
+ [[#streaming][#streaming]]). It would be neat to have the streaming come from a VPS
+ that different people can control.
+
+-
You're receiving this e-mail because you're on the emacsconf-org mailing list.
-*** DONE Remind people about confirming e-mail communications :sachac:email:speakers:
-CLOSED: [2022-10-08 Sat 18:55] SCHEDULED: <2022-10-08 Sat>
-:PROPERTIES:
-:CUSTOM_ID: confirm-email
-:END:
-
-Look for the TO_CONFIRM status in conf.org, probably include in schedule e-mail
-*** TODO Plan cadence :email:
-:PROPERTIES:
-:CUSTOM_ID: cadence
-:END:
-
-| | Work | Speakers | Volunteers | Public |
-| [2022-09-30 Fri] | | [[#acceptance][acceptance, reply to confirm]] | | |
-| [2022-10-09 Sun] | | [[#check-sched][schedule, reply if not okay]] | [[#volunteer-2022-10-09][overall priorities]] | |
-| [2022-10-16 Sun] | [[#upload][file upload]] | follow up with radio silence | infra update | |
-| [2022-10-23 Sun] | [[#etherpad][Etherpad]], [[#upload][stream]] | file upload instructions, drop radio silence | training | |
-| [2022-10-30 Sun] | [[#intro][intro, exit videos]] | | shifts | schedule, posters? |
-| [2022-11-06 Sun] | [[#write-viewing][watch pages]] | prerec confirmation/reminder, caption progress | caption kickoff | |
-| [2022-11-13 Sun] | dry run, captions | tech check | | |
-| [2022-11-20 Sun] | captions | checkin instructions | | |
-| [2022-11-27 Sun] | captions | last weekend before EmacsConf | | watching |
-*** DONE Send people schedule information and doublecheck their availability/Q&A preference :sachac:email:speakers:sched:
-CLOSED: [2022-10-09 Sun 09:38] SCHEDULED: <2022-10-08 Sat>
-:PROPERTIES:
-:CUSTOM_ID: check-sched
-:END:
-
-#+begin_src emacs-lisp
-(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 "))))))))
-#+end_src
-
-**** Template
-:PROPERTIES:
-:EMAIL_ID: check-sched
-:SUBJECT: EmacsConf draft schedule: ${titles}
-:REPLY_TO: emacsconf-submit@gnu.org, ${email}
-:MAIL_FOLLOWUP_TO: emacsconf-submit@gnu.org, ${email}
-:CC: emacsconf-submit@gnu.org
-:FUNCTION: emacsconf-mail-schedule
-:END:
-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
-:PROPERTIES:
-:SUBJECT: EmacsConf draft schedule update: ${titles}
-:REPLY_TO: emacsconf-submit@gnu.org, ${email}
-:MAIL_FOLLOWUP_TO: emacsconf-submit@gnu.org, ${email}
-:CC: emacsconf-submit@gnu.org
-:FUNCTION: emacsconf-mail-schedule-update
-:SLUGS: asmblox wayland localizing treesitter lspbridge dbus
-:EMAIL_ID: sched-change
-:END:
-
-Quick update!
-
-I tweaked the schedule to accommodate some schedule requests. Please
-check https://emacsconf.org/${year}/draft-schedule/ to see the current
-schedule for your talk. The main change is that the localizing talk is
-now on Sunday afternoon, so asmblox and wayland are on Saturday
-morning along with treesitter and lspbridge, and dbus has moved a
-little earlier on Sunday afternoon. Thanks for your patience!
-
-----------------------------------------------------------------
-${schedule}
-----------------------------------------------------------------
-
-Sacha
-
-*** TODO Send program-published email for emacsconf-discuss :needsowner:timesensitive:email:
+** TODO Send program-published email for emacsconf-discuss :needsowner:timesensitive:email:
DEADLINE: <2022-10-14 Fri> SCHEDULED: <2022-10-11 Tue>
:PROPERTIES:
:CUSTOM_ID: announce-program
:END:
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!
@@ -380,13 +195,13 @@ reasonably well for as many of our speakers as possible with respect
to their availability, and will add the allocated time slots for the
talks in the coming weeks.
-*** 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:
:PROPERTIES:
:CUSTOM_ID: mail-upload
:END:
Blocked by [[*Figure out web-based file upload][Figure out web-based file upload]]
-** Projects and other long-running tasks
+* Projects and other long-running tasks
:PROPERTIES:
:CUSTOM_ID: projects
:END:
@@ -394,7 +209,7 @@ Blocked by [[*Figure out web-based file upload][Figure out web-based file upload
#+TOC: headlines 1 local
Ordered by importance.
-*** TODO [#A] Figure out web-based file upload :needsowner:zaeph:bandali:ansible:sachac:
+** TODO [#A] Figure out web-based file upload :needsowner:zaeph:bandali:ansible:sachac:
:PROPERTIES:
:CUSTOM_ID: upload
:END:
@@ -431,10 +246,10 @@ Considerations:
- https://github.com/YouTransfer/YouTransfer
- https://github.com/psi-4ward/psitransfer
- NextCloud
-**** TODO Create 2022/upload.md with the same workflow as last year for a start
-**** BLOCKED Implement new workflow
-**** BLOCKED Notify speakers when the final solution is available
-*** TODO Coordinate and help volunteers :sachac:
+*** TODO Create 2022/upload.md with the same workflow as last year for a start
+*** BLOCKED Implement new workflow
+*** BLOCKED Notify speakers when the final solution is available
+** TODO Coordinate and help volunteers :sachac:
:PROPERTIES:
:CUSTOM_ID: coordinate-volunteers
:END:
@@ -444,28 +259,28 @@ Considerations:
comfortable signing up for tasks. ex:
https://wiki.debian.org/DebConf/21/VideoVolunteering
- Encourage people to sign up for [[#shifts]]
-*** TODO Prepare for prerecs :zaeph:
+** TODO Prepare for prerecs :zaeph:
DEADLINE: <2022-10-28 Fri>
:PROPERTIES:
:CUSTOM_ID: prepare-prerec-process
:END:
-**** TODO Optimize ffmpeg incantation
+*** TODO Optimize ffmpeg incantation
Remember to update [[file:prepare.md::Compression]] 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:
- convert the videos and check that they've been reencoded properly by watching the re-encoded ones all the way to the end
- caption videos
- capture any extra info
- follow up with missing prerecs
-*** TODO Delete all the EmacsConf BBB rooms from last year :chore:bbb:
+** TODO Delete all the EmacsConf BBB rooms from last year :chore:bbb:
:PROPERTIES:
:CUSTOM_ID: bbb-cleanup
:END:
For the admins on BBB. The list is accessible here: [[https://bbb.emacsverse.org/b/admins/rooms][Organization Settings]].
Should take no more than ~20′.
-*** TODO Plan Etherpad use and hosting :sachac:ansible:
+** TODO Plan Etherpad use and hosting :sachac:ansible:
:PROPERTIES:
:CUSTOM_ID: etherpad
:END:
@@ -474,11 +289,11 @@ Should take no more than ~20′.
- Per-pad, nicely structured info with abstract, watching information, etc. CarpentryCon 2022 Schedule • CarpentryCon 2022 https://2022.carpentrycon.org/
- One pad per session: https://meta.wikimedia.org/wiki/Arctic_Knot_Conference_2021/Program#Friday,_June_25th
- [[https://community.jitsi.org/t/tutorial-etherpad-integration-in-jitsi-meetings/99697][Etherpad integration in Jitsi ]]
-*** TODO Update IRC instructions because of multiple tracks
+** TODO Update IRC instructions because of multiple tracks
:PROPERTIES:
:CUSTOM_ID: irc
:END:
-*** TODO Investigate streaming options, maybe OBS in the cloud :corwin:zaeph:
+** TODO Investigate streaming options, maybe OBS in the cloud :corwin:zaeph:
DEADLINE: <2022-11-20 Sun>
:PROPERTIES:
:CUSTOM_ID: streaming
@@ -498,39 +313,37 @@ Resources:
- 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 "bouncer" :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: 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: recruit at least one more person to help operate the "video bouncer" :corwin:
-*** TODO Work on the OBS scenes :zaeph:corwin:
+** TODO Work on the OBS scenes :zaeph:corwin:
DEADLINE: <2022-11-11 Fri>
:PROPERTIES:
:CUSTOM_ID: obs-scenes
:END:
- [ ] corwin is out from Nov 11-20, and we should start working on them before then.
-*** TODO Build up the ansible playbook :sachac:
+** TODO Build up the ansible playbook :sachac:
:PROPERTIES:
:CUSTOM_ID: ansible
:END:
git@git.emacsconf.org:pub/emacsconf-ansible
can currently publish
-**** TODO Get ansible to run against a clean docker
-**** TODO Add ikiwiki template to ansible
+*** TODO Get ansible to run against a clean docker
+*** TODO Add ikiwiki template to ansible
-*** BLOCKED Make intro and exit sequence
+** BLOCKED Make something to display between talks
:PROPERTIES:
:CREATED: [2022-10-03 Mon 07:50]
:CUSTOM_ID: intro
:END:
-Intro:
-Next: title, speaker, pronouns, talk page
+In between talks
+- Previous talk: title, speaker, pronouns, talk page, Q&A information
+- Next talk: title, speaker, pronouns, talk page, Q&A information, countdown
-Exit:
-Title, speaker, pronouns, talk page, Q&A
-
-Needs to wait for pad decision, or have friendly URLs redirect to the right pads
+If it's static, this 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
@@ -539,7 +352,7 @@ Needs to wait for pad decision, or have friendly URLs redirect to the right pads
See break commercials
https://www.collabmagazine.com/organizing-a-multi-track-virtual-conference-with-microsoft-teams-live-events-a-technical-playbook-and-lessons-learned/
-*** 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:
:PROPERTIES:
:CUSTOM_ID: publishing-sched
:END:
@@ -557,23 +370,23 @@ Where:
- probably good to set it up on front
It's now on front.
-*** STANDBY Add nice-to-have stuff to prepare.md :zaeph:
+** STANDBY Add nice-to-have stuff to prepare.md :zaeph:
:PROPERTIES:
:CUSTOM_ID: extra-prepare
:END:
- org-reveal config
- SIL fonts choice
-*** INPROGRESS Find volunteers for tech-checks :zaeph:
+** INPROGRESS Find volunteers for tech-checks :zaeph:
:PROPERTIES:
:CUSTOM_ID: tech-checks
:END:
-**** DONE Add entry in 2022/volunteer.md
-**** INPROGRESS Write protocol for adding tech-checker volunteer
+*** DONE Add entry in 2022/volunteer.md
+*** INPROGRESS Write protocol for adding tech-checker volunteer
- Invite volunteer to BBB (ask core organizers)
- Update [[file:prepare.md::Tech-check]] 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:
#+begin_quote
- Can you speak and be heard? Is there echo?
@@ -585,24 +398,24 @@ From previous years:
- Can you share contact information (ex: phone number) so that we can get in touch with you in case of technical issues or scheduling changes?
- Do you need help finding your way around IRC so that you can check into `#emacsconf-org`? What is your IRC nickname?
#+end_quote
-*** STANDBY Update viewing instructions and watch pages :zaeph:
+** STANDBY Update viewing instructions and watch pages :zaeph:
:PROPERTIES:
:CUSTOM_ID: write-viewing
:END:
Extra stuff to consider adding:
- Suggestions for mpv-filter to invert colourscape.
Also add to watch page
-*** 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:
:PROPERTIES:
:CUSTOM_ID: publish-live
:END:
-*** BLOCKED Set up talks on Toobnix and YouTube :sachac:
+** BLOCKED Set up talks on Toobnix and YouTube :sachac:
:PROPERTIES:
:CUSTOM_ID: video-platforms
:END:
so that people can find the videos on other video platforms
waiting for prerecs
-*** TODO Set up stream events on Toobnix and YouTube :sachac:
+** TODO Set up stream events on Toobnix and YouTube :sachac:
:PROPERTIES:
:CUSTOM_ID: other-streams
:END:
@@ -613,7 +426,7 @@ 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
#+end_src
-*** TODO Prepare to announce talks on IRC
+** TODO Prepare to announce talks on IRC
:PROPERTIES:
:CUSTOM_ID: irc-announce
:END:
@@ -625,14 +438,14 @@ so that people on other platforms can come across EmacsConf
- a small announcement might go into the other track as well
- announcement can include talk page, pad, IRC nick, pronouns
-*** 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
:PROPERTIES:
:CUSTOM_ID: speaker-bio
:END:
maybe after we get the prerecs
ex: liberapay, patreon, anyone looking for a job, etc.
-*** BLOCKED Do a dry run
+** BLOCKED Do a dry run
:PROPERTIES:
:CUSTOM_ID: dry-run
:END:
@@ -663,13 +476,13 @@ ex: liberapay, patreon, anyone looking for a job, etc.
- [ ] Message on the schedule
- [ ] Prerec live
- [ ] Wind everything down
-*** TODO [#C] Figure out why ikiwiki is slow :infra:wiki:
+** TODO [#C] Figure out why ikiwiki is slow :infra:wiki:
:PROPERTIES:
:CUSTOM_ID: ikiwiki-regex
:END:
complex regular expression issues?
should the captions be outside the wiki?
-*** TODO [#C] Add category tags and possibly links between talks across 2022 and all previous years :needsowner:wiki:
+** TODO [#C] Add category tags and possibly links between talks across 2022 and all previous years :needsowner:wiki:
:PROPERTIES:
:CUSTOM_ID: link-pages
:END:
@@ -684,12 +497,12 @@ should the captions be outside the wiki?
- You can create new categories by making up new CategoryNames.
- You can also link to a talk with a link like this: =\[[/2022/talks/maint|Maintaining the Maintainers: Attribution as an Economic Model for Open Source]]=
You can make a new heading called =# Related talks=
-** Projects to bear in mind but which are not actual
+* Projects to bear in mind but which are not actual
:PROPERTIES:
:CUSTOM_ID: maybe-projects
:END:
-*** 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.
@@ -703,38 +516,6 @@ https://www.mail-archive.com/search?l=debconf-team@lists.debian.org&q=subject:%2
#+TOC: headlines 1 local
-** How fancy do we want to get this year? (overall prioritization)
-:PROPERTIES:
-:CUSTOM_ID: overall
-:END:
-
-*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.
-
-| | Good | Better | Best |
-|-------------------+-------------------------------------+--------------------------------------+------------------------------------------------------|
-| [[#sched-decision][schedule]] | one track | *DONE S: two tracks* | aligned times, full roster |
-| schedule view | text table | S: imagemap fallback | *DONE S: interactive SVG* |
-| [[#upload][upload]] | FTP | *S?: web-based* | auto-encoded, preview (SReview?) |
-| [[#streaming][streaming]] | ffmpeg from computer | DONE OBS | *Z: OBS in cloud, switchable hosts* |
-| [[#prepare-prerec-process][prerec]] | DONE play original with captions | Z: normalize audio | *S: post as soon as talk is live* |
-| BBB rooms | about 5 rooms that we cycle through | | *one room per speaker* |
-| host | no host, speaker reads pad | *host reads pad* | host monitors IRC and helps with BBB as well |
-| BBB Q&A | none | *DONE open to community* | moderated by speaker and host |
-| [[#write-viewing][watch page]] | tracks | *S: + IRC* | + talk info, maybe even pad |
-| [[#etherpad][pad]] | one pad for conf | one pad per talk, wikimedia | *one pad per talk, self-hosted* so we can access API |
-| [[#irc][IRC]] | #emacsconf, -org | *tracks, hallway, org* | IRC volunteer copying to pads; maybe even IRC bots |
-| [[#irc-announce][IRC announcements]] | *ERC commands* | timer-based | |
-| [[#publishing-sched][sched update]] | *S: publish at start* | update main sched | update talk pages |
-| [[#publish-live][talk pages]] | S: link to stream, pad, IRC | *link to prerec when live* | embed stream, pad, IRC, prerec |
-| [[#other-streams][other streams]] | 480p | + Toobnix | *S: + YouTube* |
-| [[#video-platforms][other platforms]] | *S: Toobnix & YT after event* | | S: Toobnix + YT when live |
-| [[#wiki-design][wiki]] | plain text, markdown | *sachac: some JS and CSS enrichment* | more JS and CSS, embeds, videoplayer |
-| [[#intro][intro and exit]] | *generic static image* | per-talk image | Emacs thing so we can display info, countdowns, IRC |
-| [[#ansible][ansible]] | none | *sachac: some automation* | comprehensive, can also work against containers |
-
** How do we want to make the full schedule more manageable?
:PROPERTIES:
:CUSTOM_ID: sched-decision
@@ -2080,6 +1861,230 @@ Process for accepting a talk:
- 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:
+CLOSED: [2022-10-08 Sat 18:55] SCHEDULED: <2022-10-08 Sat>
+:PROPERTIES:
+:CUSTOM_ID: confirm-email
+:END:
+
+Look for the TO_CONFIRM status in conf.org, probably include in schedule e-mail
+** DONE Send people schedule information and doublecheck their availability/Q&A preference :sachac:email:speakers:sched:
+CLOSED: [2022-10-09 Sun 09:38] SCHEDULED: <2022-10-08 Sat>
+:PROPERTIES:
+:CUSTOM_ID: check-sched
+:END:
+
+#+begin_src emacs-lisp
+(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 "))))))))
+#+end_src
+
+*** Template
+:PROPERTIES:
+:EMAIL_ID: check-sched
+:SUBJECT: EmacsConf draft schedule: ${titles}
+:REPLY_TO: emacsconf-submit@gnu.org, ${email}
+:MAIL_FOLLOWUP_TO: emacsconf-submit@gnu.org, ${email}
+:CC: emacsconf-submit@gnu.org
+:FUNCTION: emacsconf-mail-schedule
+:END:
+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
+:PROPERTIES:
+:SUBJECT: EmacsConf draft schedule update: ${titles}
+:REPLY_TO: emacsconf-submit@gnu.org, ${email}
+:MAIL_FOLLOWUP_TO: emacsconf-submit@gnu.org, ${email}
+:CC: emacsconf-submit@gnu.org
+:FUNCTION: emacsconf-mail-schedule-update
+:SLUGS: asmblox wayland localizing treesitter lspbridge dbus
+:EMAIL_ID: sched-change
+:END:
+
+Quick update!
+
+I tweaked the schedule to accommodate some schedule requests. Please
+check https://emacsconf.org/${year}/draft-schedule/ to see the current
+schedule for your talk. The main change is that the localizing talk is
+now on Sunday afternoon, so asmblox and wayland are on Saturday
+morning along with treesitter and lspbridge, and dbus has moved a
+little earlier on Sunday afternoon. Thanks for your patience!
+
+----------------------------------------------------------------
+${schedule}
+----------------------------------------------------------------
+
+Sacha
+
* Communications
:PROPERTIES:
:CUSTOM_ID: comms