From efa807db92d177473eb826db6ee993b9bab024d0 Mon Sep 17 00:00:00 2001 From: Sacha Chua Date: Mon, 14 Nov 2022 20:42:33 -0500 Subject: speaker-after-video --- 2022/organizers-notebook/index.org | 206 ++++++++++++++++++++++++---------- 2022/organizers-notebook/schedule.svg | 2 +- 2 files changed, 148 insertions(+), 60 deletions(-) (limited to '2022') diff --git a/2022/organizers-notebook/index.org b/2022/organizers-notebook/index.org index ac6b46ff..1e2ab1c1 100644 --- a/2022/organizers-notebook/index.org +++ b/2022/organizers-notebook/index.org @@ -128,60 +128,143 @@ Roughly ordered by importance. - Closing remarks Sun - Thanks - -** TODO Write speaker update +** DONE Write speaker e-mail for people who have already submitted their talks +CLOSED: [2022-11-14 Mon 20:42] :PROPERTIES: -:CUSTOM_ID: speaker-2022-11-14 +:CUSTOM_ID: speaker-after-video :END: To: speakers who have already submitted their talks (so that we don't distract people who are still working on their talks) +#+begin_src emacs-lisp +(defun emacsconf-mail-speaker-after-video (group &optional template) + (interactive (list (emacsconf-mail-complete-email-group + (seq-filter (lambda (o) (plist-get o :intro-note)) + (emacsconf-active-talks (emacsconf-get-talk-info)))))) + (setq template (or template (emacsconf-mail-merge-get-template "speaker-after-video"))) + (let ((talks (cdr group))) + (emacsconf-mail-prepare + template + (car group) + (list :speakers-short (plist-get (cadr group) :speakers-short) + :plural (if (= (length (cdr group)) 1) "" "s") + :email (plist-get (cadr group) :email) + :in-between (mapconcat (lambda (talk) + (emacsconf-surround "" "")) + (cdr group) + ", ") + :intro + (mapconcat (lambda (talk) + (string-join (org-wrap (emacsconf-surround "- " (plist-get talk :intro-note) "\n" "") 70) "\n")) + (cdr group) + "") + :backstage-slug + (mapconcat (lambda (talk) + (emacsconf-surround ":\n%s" + (plist-get talk :slug) + (mapconcat + (lambda (chapter) + (concat (format-seconds "%.2h:%z%.2m:%.2s" + (floor (/ (elt chapter 1) 1000))) + " " + (elt chapter 3) "\n")) + (subed-parse-file + (expand-file-name (concat (plist-get talk :video-slug) "--main--chapters.vtt") emacsconf-cache-dir))))) + (cdr group) + "\n\n") + :caption-note + (if (seq-find (lambda (o) (not (string= (plist-get o :status) "TO_STREAM"))) (cdr group)) + " The captions haven't been fully edited yet, so please ignore any errors in the captions themselves." + "") + :urls + (mapconcat (lambda (o) (concat "<" emacsconf-base-url (plist-get o :url) ">")) + (cdr group) " , ") + :tech-check-note + (if (string-match "live" (or (mapconcat (lambda (o) (or (plist-get o :q-and-a) "")) (cdr group) " ") "")) + (format + "*Tech check* + +Since you're planning to do a live Q&A session, you may want to +connect to the test BBB room at <%s> to make sure you can share +your audio, your window or screen, and your webcam (optional). Sharing +system audio or multi-monitor setups can sometimes be tricky, so +please let us know if you need help figuring things out. You can +double-check by connecting with a separate device, or you can arrange +to meet with one of the tech-check volunteers +().${wrap} + +" emacsconf-test-bbb-room) ""))) + (add-hook 'message-sent-hook + `(lambda () + (mapc (lambda (o) + (emacsconf-add-to-talk-logbook o "Sent speaker-after-video email")) + (list + ,@(mapcar (lambda (talk) (plist-get talk :slug)) talks)))) + nil t))) + +(defun emacsconf-mail-speakers-after-videos () + (interactive) + (let* ((info (seq-filter (lambda (o) (plist-get o :intro-note)) + (emacsconf-active-talks (emacsconf-get-talk-info)))) + (grouped (seq-group-by (lambda (o) (plist-get o :email)) info)) + (template (emacsconf-mail-merge-get-template "speaker-after-video"))) + (mapc (lambda (group) + (emacsconf-mail-speaker-after-video group template)) + grouped))) -- if live - tech check: ec22-test -- if chapter markers are available, review those -- one-sentence intro to talk -- bio + +#+end_src *** Template :PROPERTIES: -:CUSTOM_ID: speaker-after-video +:EMAIL_ID: speaker-after-video +:FUNCTION: emacsconf-mail-speaker-after-video +:SUBJECT: EmacsConf: miscellaneous todos now that you've sent in your video${plural} +:MAIL_FOLLOWUP_TO: emacsconf-submit@gnu.org, ${email}, sacha@sachachua.com +:CC: emacsconf-submit@gnu.org :END: Hi, ${speakers-short}! -Thank you for uploading your video early! Now that you've gotten that out of the way, -let's get a few more things sorted out for a smooth EmacsConf 2022. +Thank you for uploading your video early! Let's get a few more things +sorted out for a smooth EmacsConf 2022. -*Tech check* +${tech-check-note}*Intro* -Since you're planning to do a live Q&A session, you may want to -connect to the test BBB room at ${test-url} to make sure you can share -your audio, your window or screen, and your webcam (optional). Sharing -system audio or multi-monitor setups can sometimes be tricky, so -please let us know if you need help figuring things out. You can -double-check by connecting with a separate device, or you can arrange -to meet with one of the tech-check volunteers -(). +I've written a brief (and possibly inaccurate! =) ) intro that the +host can read out before your talk while the in-between slide +(${in-between}) is being displayed: -*Intro* +${intro} +Would you like to tweak it to better reflect your talk? *Chapter markers* -I've added chapter markers to your video in the backstage area -() -to help with navigation. Please feel free to send me updated chapter -markers if you want. +I've added chapter markers to your video in the backstage area to help +with navigation. You can click on them in the backstage area if you +want to easily jump around, or review the list that I've included for +your convenience: + +${chapters} +If you prefer other headings or timestamps, please let me know!${caption-note} *Bio, community support links* People often want to learn more about speakers and show their -appreciation. If you'd like to include an author bio and any social or -support links to your talk page${plural}, please e-mail us the text -that you'd like to include. You can also follow the instructions at - to edit your talk page${plural} directly -yourself:${wrap} +appreciation. If you'd like to include an author bio and any +social/support links to your talk page${plural} (${urls}), please +e-mail us the text that you'd like to include. You can also follow the +instructions at to edit your talk +page${plural} directly yourself, if you want to.${wrap} -${urls} +Thanks again for all your contributions! + +Sacha ** TODO Prepare intros for the hosts to read :zaeph: :PROPERTIES: @@ -643,9 +726,12 @@ For some ideas on ways to help, you can check out https://emacsconf.org/2022/volunteer/ . You can also suggest other things you might be interested in. -To ask questions or chat with other volunteers, please e-mail the -mailing list at emacsconf-org@gnu.org or drop by #emacsconf on the -libera.chat IRC network. +You can ask questions or chat with other volunteers by e-mailing the +mailing list at emacsconf-org@gnu.org or dropping by #emacsconf on the +libera.chat IRC network. You can also e-mail me or +emacsconf-org-private@gnu.org if you have private questions. + +Thank you again for your help! =) Sacha Chua @@ -682,7 +768,7 @@ ${year}! Last year, we were able to get almost all the talks captioned in time for streaming. Participants found them very useful for understanding different technical terms, names, accents, and so on. We'd love to be able to pull that off again this year, and it would be -great to have you on board.${wrap} +great to have you on board. We've set up ${backstage} as the backstage area where you can view the videos and resources uploaded so far. You can access it with the @@ -691,7 +777,7 @@ Please keep the backstage password and resources secret. If you see a talk that you'd like to caption, you can e-mail me at sacha@sachachua.com and I can reserve it for you. Then you can correct any misrecognized words, fix capitalizations, remove filler words as -needed, and so on.${wrap} +needed, and so on. You'll probably want to work with either the VTT or the TXT versions (VTT is WebVTT format and has timestamps), but you can check the other @@ -1282,7 +1368,8 @@ CLOSED: [2022-11-08 Tue 11:33] - talk banners, akshay -** TODO Make a linear hyperlist for managing EmacsConf :sachac: +** DONE Make a linear hyperlist for managing EmacsConf :sachac: +CLOSED: [2022-11-14 Mon 14:14] :PROPERTIES: :CUSTOM_ID: hyperlist :END: @@ -1315,8 +1402,8 @@ https://media.emacsconf.org/2022/backstage/index-dev.html https://media.emacsconf.org/2022/backstage/hyperlists/ [[#coordination][How do we want to coordinate during the conference itself?]] -*** TODO Try writing it to an Etherpad -SCHEDULED: <2022-11-19 Sat> +*** DONE Try writing it to an Etherpad +CLOSED: [2022-11-14 Mon 14:14] SCHEDULED: <2022-11-19 Sat> * Projects to bear in mind but which are not actual :PROPERTIES: @@ -2016,12 +2103,12 @@ fi Hi, ${speakers-short}! -Just a quick note to let you know that I've downloaded your -submission for "${title}". We've added your submission to the backstage -area at ${backstage} (username: ${backstage-user}, password: +Just a quick note to let you know that I've downloaded your submission +for "${title}". We've added your submission to the backstage area at +${backstage} (username: ${backstage-user}, password: ${backstage-password}), and we'll post the files on your talk page when the talk is public. A quick check shows that your video is about -${minutes} minutes long (${time} minutes budgeted).${wrap} +${minutes} minutes long (${time} minutes budgeted). We'll be working on captioning it over the next few weeks. We'll e-mail again a little closer to the conference with schedule updates @@ -2030,7 +2117,7 @@ can upload it the same way you did the previous one. Please feel free to e-mail us at emacsconf-submit@gnu.org if you need help updating the talk wiki page at ${url} or if you have other -questions.${wrap} +questions. Thank you so much for all the work you put into preparing a talk for EmacsConf ${year}, and thank you for submitting the prerecorded video @@ -3314,19 +3401,19 @@ ${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} +information about how the Q&A will work as the conference gets closer. 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} +check in with you if things change a lot. ${coordination-note} 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} +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! Sacha *** Schedule change affecting dev @@ -3620,9 +3707,11 @@ GROUP is (email . (talk talk))" Hi, ${speakers-short}! -${prerec-note}Here are the instructions for uploading the video${plural} for your talk${plural}. -You can find the latest version of the instructions at https://emacsconf.org/2022/upload/ . -There are two ways to upload your talk${plural} this year, so you can pick the one that works best for you:${wrap} +${prerec-note}Here are the instructions for uploading the +video${plural} for your talk${plural}. You can find the latest version +of the instructions at https://emacsconf.org/2022/upload/ . There are +two ways to upload your talk${plural} this year, so you can pick the +one that works best for you: - Web-based: https://ftp-upload.emacsconf.org , password emacsconf - FTP: host: ftp-upload.emacsconf.org, port: 21, username: anonymous @@ -3726,7 +3815,7 @@ quality of the reencoded video.")) Hi ${name}! You're getting this e-mail because you are a ${role} for ${conf-name} -${year}. (Thanks!)${wrap} +${year}. (Thanks!) I'm so excited! =) A number of speakers have uploaded their videos, and OpenAI Whisper looks like a promising way to get automatically @@ -3736,7 +3825,7 @@ We've set up ${backstage} as the backstage area where you can view the videos and resources uploaded so far. You can access it with the username "${backstage-user}" and the password "${backstage-password}". Please keep the backstage password and other speakers' talk resources -secret. ${backstage-use}${wrap} +secret. ${backstage-use} Thank you! @@ -4139,7 +4228,7 @@ We've accepted your EmacsConf proposal${plural} for ${titles}! Thanks for volunteering to share what you're learning about. I know it takes a fair bit of work to prepare a presentation, so I appreciate that you're taking the time to show what's possible with Emacs and -encourage people to learn more.${wrap} +encourage people to learn more. --------------------------------------------------------------------- ${talk-details-and-comments} @@ -4166,7 +4255,7 @@ emacsconf-submit@gnu.org is in the To: or Cc:) so that we can confirm that we've got the right email address for you and that messages can get properly delivered. Also, would you like us to put ${email} as the public contact information for you, or would you like us to add -something else to the talk page${plural}?${wrap} +something else to the talk page${plural}? ${page-urls} @@ -4230,8 +4319,7 @@ you want to review it, suggest any corrections, or use the text in a blog post or elsewhere. You can look at the attached file or watch your video with closed captions at ${url} (username: emacsconf, password: ${password}). I've also included the captions at the end of -this e-mail for your convenience. Thanks again for your -contribution!${wrap} +this e-mail for your convenience. Thanks again for your contribution! ${captioner-thanks} diff --git a/2022/organizers-notebook/schedule.svg b/2022/organizers-notebook/schedule.svg index b6e8aa9a..1c5096bd 100644 --- a/2022/organizers-notebook/schedule.svg +++ b/2022/organizers-notebook/schedule.svg @@ -1 +1 @@ - Saturday 9:00- 9:05 Saturday opening remarks sat-open 9:05- 9:25 Emacs journalism (or everything's a nail if you hit it with Emacs) journalism 9:45-10:05 Back to school with Emacs school 10:15-10:25 How to incorporate handwritten notes into Emacs Orgmode handwritten 10:55-11:15 Writing and organizing literature notes for scientific writing science 11:35-11:45 The Emacs Buddy initiative buddy 1:05- 1:25 Attending and organizing Emacs meetups meetups 1:45- 1:55 The ship that builds itself: How we used Emacs to develop a workshop for communities community 2:25- 2:50 Real estate and Org table formulas realestate 3:00- 3:20 Health data journaling and visualization with Org Mode and GNUplot health 3:40- 3:50 Edit live Jupyter notebook cells with Emacs jupyter 4:10- 4:20 Linking personal info with Hyperbole implicit buttons buttons 4:50- 4:55 Saturday closing remarks sat-close 10:00-10:10 Tree-sitter beyond syntax highlighting treesitter 10:20-10:40 lsp-bridge: complete asynchronous LSP client lspbridge 10:50-11:07 asm-blox: a game based on WebAssembly that no one asked for asmblox 11:25-11:35 Emacs should become a Wayland compositor wayland 1:00- 1:20 Using SQLite as a data source: a framework and an example sqlite 1:45- 2:15 Revisiting the anatomy of Emacs mail user agents mail 2:50- 3:10 Maintaining the Maintainers: Attribution as an Economic Model for Open Source maint 3:35- 3:40 Bidirectional links with eev eev 3:50- 3:55 Short hyperlinks to Python docs python 4:05- 4:35 Haskell code exploration with Emacs haskell 9 10 11 12 1 2 3 4 5 Sunday 9:00- 9:05 Sunday opening remarks sun-open 9:05- 9:25 Results of the 2022 Emacs Survey survey 9:35- 9:45 This Year in Org orgyear 10:00-10:20 Build a Zettelkasten with the Hyperbole Rolodex rolodex 10:40-10:50 Linking headings with org-super-links (poor-man's Zettelkasten) orgsuperlinks 11:10-11:20 orgvm: a simple HTTP server for org orgvm 1:00- 1:30 Powerful productivity with Hyperbole and Org Mode hyperorg 1:50- 2:10 Org workflows for developers workflows 2:30- 2:50 GRAIL---A Generalized Representation and Aggregation of Information Layers grail 3:20- 3:40 Putting Org Mode on the Indieweb indieweb 4:00- 4:05 Emacs development updates devel 4:15- 4:25 Fanfare for the Common Emacs User fanfare 4:50- 5:00 Sunday closing remarks sun-close 10:00-10:25 rde Emacs introduction rde 10:45-10:55 justl: Driving recipes within Emacs justl 1:00- 1:10 Getting detached from Emacs detached 1:35- 1:45 Top 10 reasons why you should be using Eshell eshell 2:10- 2:30 Emacs was async before async was cool async 3:05- 3:25 The Wheels on D-Bus dbus 4:00- 4:20 Pre-localizing Emacs localizing 9 10 11 12 1 2 3 4 5 \ No newline at end of file + Saturday 9:00- 9:05 Saturday opening remarks sat-open 9:05- 9:25 Emacs journalism (or everything's a nail if you hit it with Emacs) journalism 9:45-10:05 Back to school with Emacs school 10:15-10:25 How to incorporate handwritten notes into Emacs Orgmode handwritten 10:55-11:15 Writing and organizing literature notes for scientific writing science 11:35-11:45 The Emacs Buddy initiative buddy 1:05- 1:25 Attending and organizing Emacs meetups meetups 1:45- 1:55 The ship that builds itself: How we used Emacs to develop a workshop for communities community 2:25- 2:50 Real estate and Org table formulas realestate 3:00- 3:20 Health data journaling and visualization with Org Mode and GNUplot health 3:40- 3:50 Edit live Jupyter notebook cells with Emacs jupyter 4:10- 4:20 Linking personal info with Hyperbole implicit buttons buttons 4:50- 4:55 Saturday closing remarks sat-close 10:00-10:10 Tree-sitter beyond syntax highlighting treesitter 10:20-10:40 lsp-bridge: complete asynchronous LSP client lspbridge 10:50-11:07 asm-blox: a game based on WebAssembly that no one asked for asmblox 11:25-11:35 Emacs should become a Wayland compositor wayland 1:00- 1:20 Using SQLite as a data source: a framework and an example sqlite 1:45- 2:15 Revisiting the anatomy of Emacs mail user agents mail 2:50- 3:10 Maintaining the Maintainers: Attribution as an Economic Model for Open Source maint 3:35- 3:40 Bidirectional links with eev eev 3:50- 3:55 Short hyperlinks to Python docs python 4:05- 4:35 Haskell code exploration with Emacs haskell 9 10 11 12 1 2 3 4 5 Sunday 9:00- 9:05 Sunday opening remarks sun-open 9:05- 9:25 Results of the 2022 Emacs Survey survey 9:35- 9:45 This Year in Org orgyear 10:00-10:20 Build a Zettelkasten with the Hyperbole Rolodex rolodex 10:40-10:50 Linking headings with org-super-links (poor-man's Zettelkasten) orgsuperlinks 11:10-11:20 orgvm: a simple HTTP server for org orgvm 1:00- 1:30 Powerful productivity with Hyperbole and Org Mode hyperorg 1:50- 2:10 Org workflows for developers workflows 2:30- 2:50 GRAIL---A Generalized Representation and Aggregation of Information Layers grail 3:20- 3:40 Putting Org Mode on the Indieweb indieweb 4:00- 4:05 Emacs development updates devel 4:15- 4:25 Fanfare for the Common Emacs User fanfare 4:50- 5:00 Sunday closing remarks sun-close 10:00-10:25 rde Emacs introduction rde 10:45-10:55 justl: Driving recipes within Emacs justl 1:00- 1:10 Getting detached from Emacs detached 1:35- 1:45 Top 10 reasons why you should be using Eshell eshell 2:10- 2:30 Emacs was async before async was cool async 3:05- 3:25 The Wheels on D-Bus dbus 4:00- 4:20 Pre-localizing Emacs localizing 9 10 11 12 1 2 3 4 5 \ No newline at end of file -- cgit v1.2.3