summaryrefslogtreecommitdiffstats
path: root/2022/organizers-notebook
diff options
context:
space:
mode:
authorSacha Chua <sacha@sachachua.com>2022-12-08 20:56:16 -0500
committerSacha Chua <sacha@sachachua.com>2022-12-08 20:56:16 -0500
commit7f881ead8fd9237a1871d2633e9b22e8bb177ed8 (patch)
treefcbda32a44e06e24887c12b2cf5cffed27ef675e /2022/organizers-notebook
parent6f0719bb6fe21cd67b7146986405be8c5951e28e (diff)
downloademacsconf-wiki-7f881ead8fd9237a1871d2633e9b22e8bb177ed8.tar.xz
emacsconf-wiki-7f881ead8fd9237a1871d2633e9b22e8bb177ed8.zip
update harvest task
Diffstat (limited to '')
-rw-r--r--2022/organizers-notebook.md640
-rw-r--r--2022/organizers-notebook/index.org190
2 files changed, 660 insertions, 170 deletions
diff --git a/2022/organizers-notebook.md b/2022/organizers-notebook.md
index 4ebc1da0..9dd6052b 100644
--- a/2022/organizers-notebook.md
+++ b/2022/organizers-notebook.md
@@ -22,7 +22,8 @@ This file is automatically exported from [/2022/organizers-notebook/index.org](/
Projects and tasks:
-- [Manage front0 and live0 size](#resize):bandali:
+- [Harvest live talks and Q&A](#harvest)
+- [Send thanks](#thanks)
- [Finalize the files to be used for streaming](#files)
- [Look for ways to reduce risk](#derisk):derisk:
- [Make checkin and Q&A process slide](#qa):sachac:
@@ -43,6 +44,7 @@ Projects and tasks:
- [Consider breakout rooms for lunch break](#breakouts)
- [Work on the OBS scenes](#obs-scenes):zaeph:corwin:sachac:
- [Plan Etherpad use and hosting](#etherpad):sachac:ansible:
+- [Write about EmacsConf behind the scenes](#writing):sachac:
Schedule by status: (gray: waiting, light yellow: processing, yellow: to assign, light green: captioning, green: captioned and ready) - Updated by conf.org and the wiki repository
@@ -194,6 +196,14 @@ interests you!
<tbody>
<tr>
+<td class="org-left"><a href="#harvest">harvesting talks &amp; Q&amp;A</a></td>
+<td class="org-left"><b>recordings trimmed if needed, published</b></td>
+<td class="org-left">chapter markers</td>
+<td class="org-left">edited transcripts</td>
+</tr>
+
+
+<tr>
<td class="org-left"><a href="#conforg">conf.org management</a></td>
<td class="org-left">on sachac&rsquo;s laptop</td>
<td class="org-left">S: on res.emacsconf.org</td>
@@ -383,7 +393,8 @@ interests you!
# Projects and other long-running tasks
-- [Manage front0 and live0 size](#resize):bandali:
+- [Harvest live talks and Q&A](#harvest)
+- [Send thanks](#thanks)
- [Finalize the files to be used for streaming](#files)
- [Look for ways to reduce risk](#derisk):derisk:
- [Make checkin and Q&A process slide](#qa):sachac:
@@ -404,50 +415,280 @@ interests you!
- [Consider breakout rooms for lunch break](#breakouts)
- [Work on the OBS scenes](#obs-scenes):zaeph:corwin:sachac:
- [Plan Etherpad use and hosting](#etherpad):sachac:ansible:
+- [Write about EmacsConf behind the scenes](#writing):sachac:
-<a id="resize"></a>
+<a id="harvest"></a>
-## TODO Manage front0 and live0 size :bandali:
+## Harvest live talks and Q&A
-### TODO Resize front0 and live0 in the Linode administration console :bandali:
+### DONE Document this phase of the conference
-[20:23:48] <bandali> aha okay thanks. yeah i think i&rsquo;ll do at least 8gb or 16gb for front0, maybe even one or two larger
-[20:24:19] <bandali> and for live0 probably the same as last year, maybe slightly larger
+We&rsquo;re now in the harvesting phase of the conference, where we work on
+collecting the ideas that people shared in the Q&A sessions as well as
+any talks that were not available as pre-recorded videos. It&rsquo;s a great
+way to help speakers get stuff out of their heads and into a form we
+can all learn from. =)
+Status of talks and Q&A sessions:
-### CANCELLED Check fps after resize :sachac:
+- All talks except for the new version of grail should now be
+ available at <https://media.emacsconf.org/2022/> and on talk pages
+- Links to the BBB playbacks and to the various BBB resources (&#x2013;bbb-\*
+ for each talk) are now in the backstage area for speakers and/or
+ volunteers to review
+- RMS Q&A audio has been uploaded (&#x2013;questions.ogg)
+- grail talk will be reuploaded by the speaker
+- IRC logs have been copied to the backstage area; see the links at
+ the top of the backstage area
+- Etherpads have been converted to Markdown and included on the talk pages
+- BBB chats have been converted to Markdown and included on the talk pages
+Here&rsquo;s a good/better/best scale for stuff we can do during this phase:
-### DONE Back up dumps from live0
+- Good:
+ - Look at IRC log at the top of the backstage area and copy
+ anonymized questions/answers/feedback to the wiki pages as well,
+ if they weren&rsquo;t already on the page
+ - Somewhat manual because of overlapping conversations; might be
+ easier to have one volunteer do all the talks in one shift
+ (Saturday morning gen, Saturday morning dev, Saturday afternoon
+ gen, etc.), so you can e-mail to call dibs if you like. We
+ usually remove names from the public log as well. Most of the
+ conversations should be in the track-specific channels, but some
+ might have ended up in #emacsconf as well. You can check the
+ talk page to see if the questions are already there. If you&rsquo;re
+ already set up to edit the wiki or you can figure out the
+ slightly complicated setup for editing, feel free to edit the
+ page directly. If not, you can email a Markdown or Org Mode
+ snippet to emacsconf-submit@gnu.org and let me know what page to
+ put it on.
+- Better:
+ - Review the BBB recording to check if there&rsquo;s anything that needs
+ to be deleted from the recording before we publish it so that
+ people can listen to things themselves; publish the recording or
+ excerpts of it
+ - Might be easier with the transcript, but can also be done
+ without one. asmblox, async, buttons, dbus, detached, and eshell
+ have &#x2013;bbb-webcams.vtt as the autogenerated Whisper transcripts.
+- Even better than that:
+ - Make chapter markers for the Q&A recording so that people can jump
+ to the question they&rsquo;re particularly interested in. You can write
+ them in the form:
+ mm:ss text goes here
+ mm:ss more text
+ and I can turn those into chapter headings.
+- Totally awesome:
+ - Edited captions/transcripts for the Q&A
+ - Answers copied into the Q&A section, possibly with linked timestamps
-media.emacsconf.org:~/emacsconf-2021-stream-dumps/
-res.emacsconf.org:/data/emacsconf/2021/dumps/
-Now there should be more space in case we want to enable dumping before the resize
+### TODO Prepare groundwork for volunteers to help
-### DONE Update ansible configuration :sachac:
+#### CANCELLED Document IRC/pad/BBB chat extraction tasks
-Waiting for resize
-Clean up the media root
+Experience level: no technical background needed; slightly easier if you&rsquo;ve set up your computer for editing the wiki, which needs ssh and git
-in all.yml
+There were lots of interesting notes and Q&A on IRC and the pad. If we can copy them to the talk page on the wiki, then we can catch any questions that hadn&rsquo;t been answered and forward feedback to the speaker. It&rsquo;s a little challenging because the IRC conversation might get mixed up when another talk starts, so it helps to read the IRC log and decide what lines to include. We usually remove names from the public log as well. Most of the conversations should be in the track-specific channels, but some might have ended up in #emacsconf as well.
-test\_mode: false
+I&rsquo;ve added IRC chat logs to the top of the backstage page. Each talk also links to the HTML (&#x2013;pad.html) and Markdown (&#x2013;pad.md) version of the pad.
-then
+You can see the 2021 talks (ex: <https://emacsconf.org/2021/talks/frownies/> , <https://emacsconf.org/2021/talks/pattern/> ) for an example of how the discussions were archived on the talk pages. Sometimes we organize them by type of comment, so it&rsquo;s easy to see Q&A vs. notes vs. feedback about the talk itself.
-ansible-playbook -i inventory.yml prod-playbook.yml &#x2013;tags media
-ansible-playbook -i inventory.yml prod-playbook.yml &#x2013;tags stream
-ansible-playbook -i inventory.yml prod-playbook.yml &#x2013;tags publish
+To avoid duplicating work, maybe we can use this Etherpad to call dibs on talks to process. You can write your name or nick next to the talk(s) you&rsquo;re archiving.
-Confirm that
+If you&rsquo;re already set up to edit the wiki or you can figure out the slightly complicated setup for editing, feel free to edit the page directly. If not, you can email a Markdown or Org Mode snippet to emacsconf-submit@gnu.org and let me know what page to put it on.
-- icecast dumps recordings
-- <https://media.emacsconf.org/2022> is unprotected
-- <https://media.emacsconf.org/2022/backstage> is protected
+
+### DONE Check duration of Q&A BBB recordings
+
+About 15 hours total
+
+ (format-seconds "%h:%.2m:%.2s"
+ (/ (apply '+
+ (seq-keep (lambda (o)
+ (and (file-exists-p (expand-file-name (concat (plist-get o :video-slug) "--bbb-webcams.opus") emacsconf-cache-dir))
+ (compile-media-get-file-duration-ms
+ (expand-file-name (concat (plist-get o :video-slug) "--bbb-webcams.opus") emacsconf-cache-dir))))
+ (emacsconf-get-talk-info)))
+ 1000)) ;; "14:52:28"
+
+around 4 hours to process asmblox: 14 minutes (/ (\* 4 60) 14.0) ~17x recorded time
+(/ (\* 17 15) 24.0) 10.625
+
+
+### DONE Get the playback links for the BBB talks
+
+Added as BBB\_PLAYBACK properties (:bbb-playback in the plist).
+on orga@res:
+
+- /data/emacsconf/2022/bbb-playbacks has the files from the web-based playback
+- /data/emacsconf/2022/bbb-raw has the raw files
+
+
+#### DONE Download all the BBB playback files
+
+ (let ((info (emacsconf-prepare-for-display (emacsconf-get-talk-info))))
+ (mapconcat
+ (lambda (o)
+ (when (plist-get o :bbb-playback)
+ (let ((meeting-id (when (string-match "meetingId=\\(.+\\)"
+ (plist-get o :bbb-playback))
+ (match-string 1 (plist-get o :bbb-playback)))))
+ (concat "mkdir " (plist-get o :slug) "\n"
+ "cd " (plist-get o :slug) "\n"
+ (mapconcat
+ (lambda (file)
+ (concat
+ "wget https://bbb.emacsverse.org/presentation/"
+ meeting-id "/" file "\n")
+ )
+ '("video/webcams.webm" "metadata.xml" "deskshare/deskshare.webm" "panzooms.xml" "cursor.xml" "deskshare.xml" "captions.json" "presentation_text.json" "slides_new.xml")
+ ""
+ )
+ "cd ..\n"
+ ))
+ )
+ )
+ info
+ ""))
+
+
+#### DONE Convert to Opus in preparation for transcription
+
+find -name webcams.webm -exec bash -c &rsquo;ffmpeg -i {} -c:a copy $(echo {} | sed &rsquo;s/webm/opus/&rsquo;)&rsquo; \\;
+
+
+#### TODO Transcribe serially
+
+in bbb-whisper
+
+ for SLUG in *; do
+ echo Processing $SLUG $(date -Iseconds) | tee -a bbb-whisper.log
+ (
+ cd $SLUG;
+ if [[ ! -f webcams.txt ]]; then
+ whisper --model large --language en --verbose True webcams.opus
+ else
+ echo "Skipping, already exists"
+ fi
+ )
+ done
+
+
+### DONE Extract RMS Q&A from dump
+
+17:48 of current
+
+
+#### DONE Ffmpeg
+
+[19:26] <bandali> rsyncing the stream dumps from live0:/data/emacsconf-2022-\* into fh-vm01:~orga/live0-streams/
+[19:26] <bandali> i&rsquo;ll probably rsync a copy to my own laptop as well, for backup
+[19:29] <bandali> a reminder that the stream dumps shouldn&rsquo;t be used as-is, and should first be remuxed using ffmpeg to fix the timestamps
+[19:30] <bandali> using something like this: ffmpeg -i myfile.webm -acodec copy -vcodec copy myfile-remuxed.webm >> myfile.log 2>&1
+
+
+### DONE Extract orgvm talk
+
+
+### DONE Post IRC logs to backstage so that volunteers can split them up
+
+See links at the top of backstage
+
+
+### TODO Split up relevant sections from IRC logs so that volunteers can go through them
+
+
+### SOMEDAY Copy logs for analysis
+
+
+### SOMEDAY Transcribe recordings
+
+
+### DONE Collect recordings from bbb
+
+
+### DONE Back up all the pads
+
+
+### DONE Extract bbb chat and add to backstage
+
+
+### SOMEDAY Awesome Speaker Diarization | awesome-diarization
+
+<https://wq2012.github.io/awesome-diarization/>
+
+
+### SOMEDAY Document irc, bbb chat, pad tasks
+
+Experience level: no technical background needed; slightly easier if you&rsquo;ve set up your computer for editing the wiki, which needs ssh and git
+
+There were lots of interesting notes and Q&A on IRC and the pad. If we can copy them to the talk page on the wiki, then we can catch any questions that hadn&rsquo;t been answered and forward feedback to the speaker. It&rsquo;s a little challenging because the IRC conversation might get mixed up when another talk starts, so it helps to read the IRC log and decide what lines to include. We usually remove names from the public log as well. Most of the conversations should be in the track-specific channels, but some might have ended up in #emacsconf as well.
+
+I&rsquo;ve added IRC chat logs to the top of the backstage page, and each talk also links to the HTML (&#x2013;pad.html) and Markdown (&#x2013;pad.md) version of the pad.
+
+You can see the 2021 talks (ex: <https://emacsconf.org/2021/talks/frownies/> , <https://emacsconf.org/2021/talks/pattern/> ) for an example of how the discussions were archived on the talk pages. Sometimes we organize them by type of comment, so it&rsquo;s easy to see Q&A vs. notes vs. feedback about the talk itself.
+
+To avoid duplicating work, maybe we can use this Etherpad to call dibs on talks to process. You can write your name or nick next to the talk(s) you&rsquo;re archiving.
+
+If you&rsquo;re already set up to edit the wiki or you can figure out the slightly complicated setup for editing, feel free to edit the page directly. If not, you can email a Markdown or Org Mode snippet to emacsconf-submit@gnu.org and let me know what page to put it on.
+
+
+<a id="thanks"></a>
+
+## TODO Send thanks
+
+
+### TODO Send thank-you notes to speakers
+
+Dependencies:
+
+- youtube, toobnix urls
+- bbb playback urls
+- pads copied
+
+
+#### Template
+
+Hi ${speakers-short}!
+
+Thank you so much for being part of EmacsConf ${year}! Hundreds of
+people enjoyed it, and I&rsquo;m sure even more will come across the videos
+in the days to follow.
+
+Your video is available on the talk page at ${url} , and we&rsquo;ll be
+working on adding the questions and comments from IRC/BBB/Etherpad.
+We&rsquo;d like to publish the audio (and possibly the video as well) with
+chapter markers and maybe even captions depending on volunteers. In
+case you want to revisit your Q&A session in order to remember
+anything particularly cool that you&rsquo;d like to follow up on (or
+anything particularly sensitive/embarrassing that you&rsquo;d like us to
+omit), you can view the BigBlueButton playback at ${bbb-playback} .
+
+You can also do your own processing, if you like. I&rsquo;ve added the files
+to <https://media.emacsconf.org/${year}/backstage/#${slug>} . They start
+with &#x2013;bbb. This is totally optional and just there in case you feel
+like taking advantage of it.
+
+We&rsquo;ve also uploaded your talk video to ToobNix (a PeerTube instance)
+at ${toobnix-url} and YouTube at ${youtube-url} . If you want to
+reupload the video to your own channel, please feel free to do so. If
+you let me know where you&rsquo;ve uploaded it, I can switch our playlist to
+include your version of the video instead. That way, it might be
+easier for you to respond to comments on videos.${wrap}
+
+If you would like to share more resources, you can add them to the
+talk page or e-mail them to us and we can add them for you.
+
+Thanks again for speaking at EmacsConf!
+
+Sacha
+
+
+### TODO Send thank-you notes to volunteers
<a id="files"></a>
@@ -722,7 +963,7 @@ If it was the most recently announced talk in the channel, don&rsquo;t re-announ
<a id="qa"></a>
-## TODO Make checkin and Q&A process slide :sachac:
+## CANCELLED Make checkin and Q&A process slide :sachac:
Low-priority because people were able to manage fine last year
Even better if we can add in-between slides (ex:
@@ -965,7 +1206,27 @@ tags: emacs,emacsconf
"\n"))
-### STARTED Upload talks to YouTube
+### DONE Upload the rest of the talks to Toobnix
+
+
+### DONE Add Toobnix talks to a playlist
+
+ (mapc (lambda (o)
+ (when (plist-get o :toobnix-url)
+ (browse-url (plist-get o :toobnix-url))
+ (shell-command "xdotool sleep 5 mousemove 1815 1030 click 1 sleep 2 mousemove 1684 799 click 1 key Alt+Tab")
+ (read-string "Continue?")))
+ (let ((talks (emacsconf-prepare-for-display (emacsconf-get-talk-info))))
+ (seq-drop talks
+ (1+ (seq-position talks
+ (seq-find (lambda (o) (string= (plist-get o :slug) "haskell")) talks)))))
+ )
+
+
+### DONE Add Youtube talks to a playlist
+
+
+### DONE Upload talks to YouTube
(seq-keep
(lambda (o)
@@ -981,9 +1242,9 @@ tags: emacs,emacsconf
;; This buffer is for text that is not saved, and for Lisp evaluation.
;; To create a file, visit it with C-x C-f and enter text in its buffer.
- ;; (let ((pos (shell-command-to-string "xdotool getmouselocation")))
- ;; (when (string-match "x:\\([0-9]+\\) y:\\([0-9]+\\)" pos)
- ;; (insert (format "(shell-command \"xdotool mousemove %s %s click 1\")\n" (match-string 1 pos) (match-string 2 pos)))))
+ (let ((pos (shell-command-to-string "xdotool getmouselocation")))
+ (when (string-match "x:\\([0-9]+\\) y:\\([0-9]+\\)" pos)
+ (insert (format "(shell-command \"xdotool mousemove %s %s click 1\")\n" (match-string 1 pos) (match-string 2 pos)))))
(setq list (seq-filter (lambda (o)
(and
@@ -993,68 +1254,95 @@ tags: emacs,emacsconf
emacsconf-cache-dir))
(null (plist-get o :youtube-url))))
(emacsconf-prepare-for-display (emacsconf-get-talk-info))))
+ (setq list (cons talk list))
- (setq talk (pop list))
- (progn
- ;; click create
- (shell-command "xdotool mousemove 2439 223 click 1 sleep 1")
- ;; video
- (shell-command "xdotool mousemove 2420 260 click 1 sleep 1")
- ;; select files
- (shell-command (concat "xdotool mousemove 1897 984 click 1 sleep 4 type "
- (shell-quote-argument (concat (plist-get talk :video-slug) "--final.webm"))))
- (shell-command "xdotool mousemove 2101 961 click 1 sleep 5")
-
- (shell-command (concat "xdotool mousemove 1530 447 click 1 key Ctrl+a Delete sleep 1 type "
- (shell-quote-argument (concat
- emacsconf-name " "
- emacsconf-year ": "
- (plist-get talk :title)
- " - "
- (plist-get talk :speakers-with-pronouns)))))
+ (while list
+ (progn
+ (shell-command "xdotool mousemove 707 812 click 1 sleep 2")
+
+ (setq talk (pop list))
+ ;; click create
+ (shell-command "xdotool mousemove 843 187 click 1 sleep 1")
+ ;; video
+ (shell-command "xdotool mousemove 833 217 click 1 sleep 1")
+ ;; select files
+ (shell-command (concat "xdotool mousemove 491 760 click 1 sleep 4 type "
+ (shell-quote-argument (concat (plist-get talk :video-slug) "--final.webm"))))
+ ;; open
+ (shell-command "xdotool mousemove 1318 847 click 1 sleep 5")
+
+ (kill-new (concat
+ emacsconf-name " "
+ emacsconf-year ": "
+ (plist-get talk :title)
+ " - "
+ (plist-get talk :speakers-with-pronouns)))
+ (shell-command "xdotool sleep 1 mousemove 331 440 click :1 key Ctrl+a Delete sleep 1 key Ctrl+Shift+v sleep 2")
+
+ (kill-new (emacsconf-publish-video-description talk t t))
+ (shell-command "xdotool mousemove 474 632 click 1 sleep 1 key Ctrl+a sleep 1 key Delete sleep 1 key Ctrl+Shift+v"))
+ (read-string "Press a key once you've pasted in the description")
+
+ ;; next
+ (when (emacsconf-captions-edited-p (expand-file-name (concat (plist-get talk :video-slug) "--main.vtt") emacsconf-cache-dir))
+ (shell-command "xdotool mousemove 352 285 click 1 sleep 1")
+
+ ;; add captions
+ (shell-command "xdotool mousemove 877 474 click 1 sleep 3")
+ (shell-command "xdotool mousemove 165 408 click 1 sleep 1")
+ (shell-command "xdotool mousemove 633 740 click 1 sleep 2")
+ (shell-command (concat "xdotool mousemove 914 755 click 1 sleep 4 type "
+ (shell-quote-argument (concat (plist-get talk :video-slug) "--main.vtt"))))
+ (read-string "Press a key once you've loaded the VTT")
+ (shell-command "xdotool mousemove 910 1037 sleep 1 click 1 sleep 4")
+ ;; done
+ (shell-command "xdotool mousemove 890 297 click 1 sleep 3")
+ )
- (emacsconf-publish-video-description talk t t))
- ;; next
- (progn
- (shell-command "xdotool mousemove 2315 1488 click 1 sleep 2")
- ;; add captions
- (shell-command "xdotool mousemove 2285 462 click 1 sleep 4")
- (shell-command "xdotool mousemove 1576 619 click 1 sleep 3")
- (shell-command "xdotool mousemove 2015 940 click 1 sleep 4")
- (shell-command (concat "xdotool mousemove 1984 869 click 1 sleep 4 type "
- (shell-quote-argument (concat (plist-get talk :video-slug) "--main.vtt"))))
(progn
- (shell-command "xdotool mousemove 2102 954 sleep 1 click 1 sleep 4")
+ ;; visibility
+ (shell-command "xdotool mousemove 810 303 click 1 sleep 2")
+ ;; public
+ (shell-command "xdotool mousemove 119 614 click 1 sleep 2")
+ ;; copy
+ (shell-command "xdotool mousemove 882 669 click 1 sleep 1")
;; done
- (shell-command "xdotool mousemove 2285 500 click 1 sleep 3")
- (shell-command "xdotool mousemove 2312 1483 click 1 sleep 1")
- (shell-command "xdotool mousemove 2312 1483 click 1 sleep 1")
- ;; schedule
- (shell-command "xdotool mousemove 1527 752 click 1")
- (message "%s" (format-time-string "%Y-%m-%d %I:%M %p" (plist-get talk :start-time)
- emacsconf-timezone))))
- ;; (shell-command (concat "xdotool mousemove 1695 611 click 1 key Shift+PgDn Ctrl+a Del type "
- ;; (format-time-string "%I:%M %p"
- ;; (plist-get talk :start-time)
- ;; emacsconf-timezone)))
- ;; copy link
-
- (progn
- (shell-command "xdotool mousemove 2284 668 click 1 sleep 1 click 1")
- ;; schedule
- (shell-command "xdotool mousemove 2324 1498 click 1 sleep 3")
- (emacsconf-with-talk-heading talk
- (org-entry-put (point) "YOUTUBE_URL" (read-string "URL: " (current-kill 0)))
- )
- ;; close
- (shell-command "xdotool mousemove 2100 996 click 1")
+ (shell-command "xdotool mousemove 908 1089 click 1 sleep 5 key Alt+Tab")
+
+ (emacsconf-with-talk-heading talk
+ (org-entry-put (point) "YOUTUBE_URL" (read-string "URL: "))
+ ))
)
+
+ ;; (shell-command "xdotool mousemove 165 408 click 1 sleep 1")
+ ;; (shell-command "xdotool mousemove 2312 1483 click 1 sleep 1")
+ ;; ;; schedule
+ ;; (shell-command "xdotool mousemove 1527 752 click 1")
+ ;; (message "%s" (format-time-string "%Y-%m-%d %I:%M %p" (plist-get talk :start-time)
+ ;; emacsconf-timezone))))
+ ;; ;; (shell-command (concat "xdotool mousemove 1695 611 click 1 key Shift+PgDn Ctrl+a Del type "
+ ;; ;; (format-time-string "%I:%M %p"
+ ;; ;; (plist-get talk :start-time)
+ ;; ;; emacsconf-timezone)))
+ ;; ;; copy link
+
+ ;; (progn
+ ;; (shell-command "xdotool mousemove 2284 668 click 1 sleep 1 click 1")
+ ;; ;; schedule
+ ;; (shell-command "xdotool mousemove 2324 1498 click 1 sleep 3")
+
+ ;; ;; close
+ ;; (shell-command "xdotool mousemove 2100 996 click 1")
+ ;; )
### DONE upload the rest of the files onto Toobnix
+### TODO Upload more Toobnix and YouTube talks
+
+
<a id="dry-run"></a>
## DONE Do another run
@@ -1728,6 +2016,44 @@ if we can get the anchor plugin
### TODO Consider monospace font for Etherpad? :nextyear:
+<a id="writing"></a>
+
+## TODO Write about EmacsConf behind the scenes :sachac:
+
+
+### TODO Write about scheduling and tracks
+
+
+### TODO Write about scheduling and summing up properties
+
+
+### TODO Write about scheduling and SVG
+
+
+### TODO Write about timers and todo state change hooks
+
+
+### TODO Write about TRAMP and workaround of shifting talks
+
+
+### TODO Write about OBS on VNC
+
+
+### TODO Write about BBB redirects and opening things up
+
+
+### TODO Write about ERC announcements
+
+
+### TODO Write about copying files to backstage
+
+
+### TODO Write about captions
+
+
+### SOMEDAY Write about setup for vnc
+
+
<a id="maybe-projects"></a>
# Ideas for next year :nextyear:
@@ -1898,6 +2224,73 @@ ugh sound timestamps get all messed up
## TODO Figure out how to have a test talk for publishing
+## TODO figure out back button
+
+<bandali> hmm, for some reason with firefox the back button doesn&rsquo;t seem to
+ work as expected on after clicking on one of the tracks on
+ live.emacsconf.org [21:44]
+<bandali> seems like there&rsquo;s an additional redirect or something. doesn&rsquo;t
+ matter too much tho [21:45]
+
+
+## TODO Erc bot so bandali and zaeph can check time remaining
+
+
+## TODO make hotkeys for kicking the 480p streams
+
+
+## SOMEDAY Add timezones to all schedules
+
+
+## SOMEDAY <https://social.coop/@jotaemei/109456544613400591>
+
+jotaemei@social.coop - This year’s #Emacs Conference is taking place right now; its official website is naturally RMS/FSF/MIT flavored. The video feed is not working on my mobile phone browser. So, the alternative instructions are to open a link in MPV (will VLC work?) on a desktop. The event times that are given in the schedule do not display a timezone. And presentation notes and collection of audience questions are provided via Etherpad. 😆 I hope the recordings will be available. ☺️ <https://emacsconf.org/2022/watch/dev/>
+
+
+## SOMEDAY Consider idle timer for wiki publishing the wiki, at for running things
+
+
+## SOMEDAY Re: How to avoid the user triggering &ldquo;Forbidden reentrant call of Tramp&rdquo;
+
+<https://lists.gnu.org/archive/html/tramp-devel/2021-04/msg00036.html>
+
+
+## TODO Make it easier to ship a last-minute update
+
+1. Upload file to backstage
+2. make all
+3. Copy to orga@res:~/stream
+4. Sync it to orga@res:~/cache
+
+
+## SOMEDAY Add timezone note above every schedule table
+
+
+## TODO Braindump things that worked well and things I&rsquo;m looking forward to tweaking
+
+
+## TODO Incorporate zaeph&rsquo;s braindump
+
+
+## SOMEDAY <https://social.coop/@jotaemei/109468491432592197>
+
+jotaemei@social.coop - @sachac I like this idea of a timezone converter for people displayed on (or by) the listing. For me, the cause was that I was trying to find my way around the site at the last second and was afraid I’d missed a presentation I saw someone post earlier about coming up, but I think it was just that the speakers were running a little behind schedule.
+
+
+## SOMEDAY Add export/txt to the pad announcements next year - dto
+
+
+## TODO Learn from other conferences
+
+
+### Neovimconf
+
+
+### SOMEDAY Normconf: The Normcore Tech Conference
+
+<https://normconf.com/>
+
+
<a id="decisions"></a>
# Things to figure out / decisions to make
@@ -2372,7 +2765,7 @@ AM: 9-12 PM EST, PM: 1-5 PM EST (plus a little extra for setup/transition)
Saturday Dec 3
-<table id="org850c9df" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
+<table id="orgf197298" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
<colgroup>
@@ -2452,7 +2845,7 @@ publicvoit - pad until 4pm on Sat, until 2pm on Sun
Sunday Dec 4
-<table id="orgb8c1997" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
+<table id="org2d850a1" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
<colgroup>
@@ -3565,7 +3958,7 @@ Probably focus on grabbing the audio first and seeing what&rsquo;s worth keeping
Make a table of the form
-<table id="org91443f7" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
+<table id="org3d76db2" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
<colgroup>
@@ -3682,9 +4075,10 @@ See <https://pad.emacsconf.org/premortem> for more.
- [In case we need to do things manually because the task status hooks don&rsquo;t work](#manual)
- [Alternate stream volunteer wants to stream](#alternate)
- [Video playing error, need to play with mpv manually](#play-mpv-manually):stream:
-- [Shift changes](#orgbd898c0)
+- [Shift changes](#org3329c61)
- [Need to restart 480p stream](#restart-480p):stream:
- [Renamed talk](#renamed):sched:
+- [Need to restart the Toobnix streams so we don&rsquo;t exceed 5 hours](#org4e58b8c)
<a id="common"></a>
@@ -3906,12 +4300,12 @@ mpv &#x2013;vf=negate $url
export SLUG=the ID of the talk
-- [TO\_STREAM -> PLAYING](#org8aa6d0e):stream:
+- [TO\_STREAM -> PLAYING](#org326b43a):stream:
- [CLOSED\_Q -> OPEN\_Q](#open)
- [OPEN\_Q -> TO\_ARCHIVE](#archive)
-<a id="org8aa6d0e"></a>
+<a id="org326b43a"></a>
### TO\_STREAM -> PLAYING :stream:
@@ -3980,7 +4374,7 @@ You can skip the intro and play a video by specifying the filename, like this:
play ~/stream/emacsconf-2022-journalism-\*
-<a id="orgbd898c0"></a>
+<a id="org3329c61"></a>
## Shift changes
@@ -4031,6 +4425,14 @@ lspbridge science
health eev
+<a id="org4e58b8c"></a>
+
+## TODO Need to restart the Toobnix streams so we don&rsquo;t exceed 5 hours
+
+screen -S restream-gen-toobnix -X quit; screen-restream-gen-toobnix.sh
+screen -S restream-dev-toobnix -X quit; screen-restream-dev-toobnix.sh
+
+
<a id="archive"></a>
# Task archive
@@ -5326,6 +5728,11 @@ Other considerations:
- We might want to tweak the time before keyframes (`-g`).
+#### FFMpeg
+
+<https://img.ly/blog/ultimate-guide-to-ffmpeg/>
+
+
### DONE Figure out workflow for handling submitted prerecs
We need time after the prerecs get submitted to:
@@ -5529,6 +5936,12 @@ see conf.org for the rest of the process
### CANCELLED Hold Q&A session with volunteers
+### TODO Respond to new volunteers
+
+
+### SOMEDAY Subscribe volunteers to mailing list
+
+
<a id="streaming"></a>
## DONE Investigate streaming options, maybe OBS in the cloud :sachac:
@@ -6255,6 +6668,14 @@ ffmpeg -y -i emacsconf-2022-rmsted&#x2013;main.ogg -acodec pcm\_s16le -ac 1 -ar
)
+### SOMEDAY ggerganov/whisper.cpp: Port of OpenAI&rsquo;s Whisper model in C/C++
+
+<https://github.com/ggerganov/whisper.cpp>
+
+
+### TODO Move the captioning stuff to the public area
+
+
## DONE 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
@@ -6521,6 +6942,7 @@ We also need a quick way to update the schedule.
### Sunday morning
+- rms: Ends at 12:15 after 12:00
- ![img](emergency-back-to-one-sun-am.svg)
@@ -6602,6 +7024,48 @@ Thank you for your patience!
Sacha
+## DONE Manage front0 and live0 size :bandali:
+
+
+### DONE Resize front0 and live0 in the Linode administration console :bandali:
+
+[20:23:48] <bandali> aha okay thanks. yeah i think i&rsquo;ll do at least 8gb or 16gb for front0, maybe even one or two larger
+[20:24:19] <bandali> and for live0 probably the same as last year, maybe slightly larger
+
+
+### CANCELLED Check fps after resize :sachac:
+
+
+### DONE Back up dumps from live0
+
+media.emacsconf.org:~/emacsconf-2021-stream-dumps/
+res.emacsconf.org:/data/emacsconf/2021/dumps/
+
+Now there should be more space in case we want to enable dumping before the resize
+
+
+### DONE Update ansible configuration :sachac:
+
+Waiting for resize
+Clean up the media root
+
+in all.yml
+
+test\_mode: false
+
+then
+
+ansible-playbook -i inventory.yml prod-playbook.yml &#x2013;tags media
+ansible-playbook -i inventory.yml prod-playbook.yml &#x2013;tags stream
+ansible-playbook -i inventory.yml prod-playbook.yml &#x2013;tags publish
+
+Confirm that
+
+- icecast dumps recordings
+- <https://media.emacsconf.org/2022> is unprotected
+- <https://media.emacsconf.org/2022/backstage> is protected
+
+
<a id="comms"></a>
# Communications
diff --git a/2022/organizers-notebook/index.org b/2022/organizers-notebook/index.org
index ca463ff1..423a20f9 100644
--- a/2022/organizers-notebook/index.org
+++ b/2022/organizers-notebook/index.org
@@ -81,31 +81,32 @@ 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 |
-|------------------------+-----------------------------------------+--------------------------------------+--------------------------------------------------------------|
-| [[#conforg][conf.org management]] | on sachac's laptop | S: on res.emacsconf.org | *DONE S/Z: other people know how to work with it* |
-| [[#prepare-prerec-process][prerec]] | convert to webm | normalize audio | *[[#mastering][DONE Z: reduce noise]]* |
-| [[#publish-live][talk pages]] | DONE S: link to stream, pad, IRC | *S: link to prerec when live* | embed stream, pad, IRC, prerec |
-| [[#sched-decision][schedule]] | one track | *DONE S: two tracks* | aligned times, full roster |
-| [[#upload][upload]] | FTP | *DONE S: web-based* | auto-encoded, preview (SReview?) |
-| [[#streaming][streaming]] | ffmpeg from computer | OBS | *DONE: OBS in cloud, switchable hosts* |
-| [[#other-streams][other streams]] | 480p | + Toobnix | *S: + YouTube* |
-| [[#coordinate-volunteers][volunteer coordination]] | ad-hoc | *DONE playbook* | training meetings + recordings |
-| BBB rooms | about 5 rooms that we cycle through | | *DONE S: 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 |
-| BBB Q&A start | awkward silence while waiting | *speaker can demo a little* | host has prepared questions just in case no one shows up |
-| [[#write-viewing][watch page]] | tracks | + IRC | *DONE S: + talk info*, maybe even current/recent/next |
-| [[#etherpad][pad]] | one pad for conf | one pad per talk, wikimedia | *DONE S: one pad per talk, self-hosted* so we can access API |
-| [[#irc][IRC]] | #emacsconf, -org | *DONE #emacsconf, -gen, -dev, -org* | IRC volunteer copying to pads; maybe even IRC bots |
-| [[#irc-announce][IRC announcements]] | ERC commands | *DONE S: hook-based* | timer-based |
-| [[#publishing-sched][sched update]] | *DONE S: publish at start* | update main sched | update talk pages |
-| [[#video-platforms][other platforms]] | *S: Toobnix & YT after event* | | S: Toobnix + YT when live |
-| schedule view | text table | imagemap fallback | *DONE S: interactive SVG* |
-| [[#caption-workflow][caption workflow]] | YT autosubs | Whisper autosubs | *DONE: Whisper + more granular timestamps* |
-| [[#wiki-design][wiki]] | plain text, markdown | *DONE S: some JS and CSS enrichment* | more JS and CSS, embeds, videoplayer |
-| [[#ansible][ansible]] | none | *DONE S: some automation* | comprehensive, can also work against containers |
-| [[#intro][intro and exit]] | *DONE: slide on screen, host on Mumble* | per-talk video, recorded voiceover | Emacs thing so we can display info, countdowns, IRC |
+| | Good | Better | Best |
+|------------------------+-------------------------------------------+--------------------------------------+--------------------------------------------------------------|
+| [[#harvest][harvesting talks & Q&A]] | *recordings trimmed if needed, published* | chapter markers | edited transcripts |
+| [[#conforg][conf.org management]] | on sachac's laptop | S: on res.emacsconf.org | *DONE S/Z: other people know how to work with it* |
+| [[#prepare-prerec-process][prerec]] | convert to webm | normalize audio | *[[#mastering][DONE Z: reduce noise]]* |
+| [[#publish-live][talk pages]] | DONE S: link to stream, pad, IRC | *S: link to prerec when live* | embed stream, pad, IRC, prerec |
+| [[#sched-decision][schedule]] | one track | *DONE S: two tracks* | aligned times, full roster |
+| [[#upload][upload]] | FTP | *DONE S: web-based* | auto-encoded, preview (SReview?) |
+| [[#streaming][streaming]] | ffmpeg from computer | OBS | *DONE: OBS in cloud, switchable hosts* |
+| [[#other-streams][other streams]] | 480p | + Toobnix | *S: + YouTube* |
+| [[#coordinate-volunteers][volunteer coordination]] | ad-hoc | *DONE playbook* | training meetings + recordings |
+| BBB rooms | about 5 rooms that we cycle through | | *DONE S: 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 |
+| BBB Q&A start | awkward silence while waiting | *speaker can demo a little* | host has prepared questions just in case no one shows up |
+| [[#write-viewing][watch page]] | tracks | + IRC | *DONE S: + talk info*, maybe even current/recent/next |
+| [[#etherpad][pad]] | one pad for conf | one pad per talk, wikimedia | *DONE S: one pad per talk, self-hosted* so we can access API |
+| [[#irc][IRC]] | #emacsconf, -org | *DONE #emacsconf, -gen, -dev, -org* | IRC volunteer copying to pads; maybe even IRC bots |
+| [[#irc-announce][IRC announcements]] | ERC commands | *DONE S: hook-based* | timer-based |
+| [[#publishing-sched][sched update]] | *DONE S: publish at start* | update main sched | update talk pages |
+| [[#video-platforms][other platforms]] | *S: Toobnix & YT after event* | | S: Toobnix + YT when live |
+| schedule view | text table | imagemap fallback | *DONE S: interactive SVG* |
+| [[#caption-workflow][caption workflow]] | YT autosubs | Whisper autosubs | *DONE: Whisper + more granular timestamps* |
+| [[#wiki-design][wiki]] | plain text, markdown | *DONE S: some JS and CSS enrichment* | more JS and CSS, embeds, videoplayer |
+| [[#ansible][ansible]] | none | *DONE S: some automation* | comprehensive, can also work against containers |
+| [[#intro][intro and exit]] | *DONE: slide on screen, host on Mumble* | per-talk video, recorded voiceover | Emacs thing so we can display info, countdowns, IRC |
* Projects and other long-running tasks
:PROPERTIES:
@@ -113,12 +114,77 @@ interests you!
:END:
#+TOC: headlines 1 local
-** Archive live talks and Q&A
+** Harvest live talks and Q&A
:PROPERTIES:
:CUSTOM_ID: harvest
:END:
+*** DONE Document this phase of the conference
+CLOSED: [2022-12-08 Thu 20:54]
+:PROPERTIES:
+:CREATED: [2022-12-08 Thu 19:33]
+:END:
+
+We're now in the harvesting phase of the conference, where we work on
+collecting the ideas that people shared in the Q&A sessions as well as
+any talks that were not available as pre-recorded videos. It's a great
+way to help speakers get stuff out of their heads and into a form we
+can all learn from. =)
+
+Status of talks and Q&A sessions:
+
+- All talks except for the new version of grail should now be
+ available at https://media.emacsconf.org/2022/ and on talk pages
+- Links to the BBB playbacks and to the various BBB resources (--bbb-*
+ for each talk) are now in the backstage area for speakers and/or
+ volunteers to review
+- RMS Q&A audio has been uploaded (--questions.ogg)
+- grail talk will be reuploaded by the speaker
+- IRC logs have been copied to the backstage area; see the links at
+ the top of the backstage area
+- Etherpads have been converted to Markdown and included on the talk pages
+- BBB chats have been converted to Markdown and included on the talk pages
+
+Here's a good/better/best scale for stuff we can do during this phase:
+
+- Good:
+ - Look at IRC log at the top of the backstage area and copy
+ anonymized questions/answers/feedback to the wiki pages as well,
+ if they weren't already on the page
+ - Somewhat manual because of overlapping conversations; might be
+ easier to have one volunteer do all the talks in one shift
+ (Saturday morning gen, Saturday morning dev, Saturday afternoon
+ gen, etc.), so you can e-mail to call dibs if you like. We
+ usually remove names from the public log as well. Most of the
+ conversations should be in the track-specific channels, but some
+ might have ended up in #emacsconf as well. You can check the
+ talk page to see if the questions are already there. If you're
+ already set up to edit the wiki or you can figure out the
+ slightly complicated setup for editing, feel free to edit the
+ page directly. If not, you can email a Markdown or Org Mode
+ snippet to emacsconf-submit@gnu.org and let me know what page to
+ put it on.
+- Better:
+ - Review the BBB recording to check if there's anything that needs
+ to be deleted from the recording before we publish it so that
+ people can listen to things themselves; publish the recording or
+ excerpts of it
+ - Might be easier with the transcript, but can also be done
+ without one. asmblox, async, buttons, dbus, detached, and eshell
+ have --bbb-webcams.vtt as the autogenerated Whisper transcripts.
+- Even better than that:
+ - Make chapter markers for the Q&A recording so that people can jump
+ to the question they're particularly interested in. You can write
+ them in the form:
+ mm:ss text goes here
+ mm:ss more text
+ and I can turn those into chapter headings.
+- Totally awesome:
+ - Edited captions/transcripts for the Q&A
+ - Answers copied into the Q&A section, possibly with linked timestamps
+
*** TODO Prepare groundwork for volunteers to help
-**** TODO Document IRC/pad/BBB chat extraction tasks
+**** CANCELLED Document IRC/pad/BBB chat extraction tasks
+CLOSED: [2022-12-08 Thu 20:35]
Experience level: no technical background needed; slightly easier if you've set up your computer for editing the wiki, which needs ssh and git
@@ -131,8 +197,10 @@ You can see the 2021 talks (ex: https://emacsconf.org/2021/talks/frownies/ , htt
To avoid duplicating work, maybe we can use this Etherpad to call dibs on talks to process. You can write your name or nick next to the talk(s) you're archiving.
If you're already set up to edit the wiki or you can figure out the slightly complicated setup for editing, feel free to edit the page directly. If not, you can email a Markdown or Org Mode snippet to emacsconf-submit@gnu.org and let me know what page to put it on.
-*** TODO Check duration of Q&A BBB recordings
+*** DONE Check duration of Q&A BBB recordings
+CLOSED: [2022-12-08 Thu 20:35]
+About 15 hours total
#+begin_src emacs-lisp :eval no
(format-seconds "%h:%.2m:%.2s"
(/ (apply '+
@@ -203,10 +271,12 @@ for SLUG in *; do
)
done
#+end_src
-*** TODO Extract RMS Q&A from dump
+*** DONE Extract RMS Q&A from dump
+CLOSED: [2022-12-08 Thu 20:35]
17:48 of current
-**** SOMEDAY Ffmpeg
+**** DONE Ffmpeg
+CLOSED: [2022-12-08 Thu 20:35]
:PROPERTIES:
:CREATED: [2022-12-04 Sun 20:18]
:END:
@@ -216,7 +286,8 @@ done
[19:29] <bandali> a reminder that the stream dumps shouldn't be used as-is, and should first be remuxed using ffmpeg to fix the timestamps
[19:30] <bandali> using something like this: ffmpeg -i myfile.webm -acodec copy -vcodec copy myfile-remuxed.webm >> myfile.log 2>&1
-*** TODO Extract orgvm talk
+*** DONE Extract orgvm talk
+CLOSED: [2022-12-08 Thu 20:35]
*** DONE Post IRC logs to backstage so that volunteers can split them up
CLOSED: [2022-12-06 Tue 09:55]
@@ -234,14 +305,16 @@ See links at the top of backstage
:CREATED: [2022-12-04 Sun 20:38]
:END:
-*** SOMEDAY Collect recordings from bbb
+*** DONE Collect recordings from bbb
+CLOSED: [2022-12-08 Thu 20:36]
:PROPERTIES:
:CREATED: [2022-12-04 Sun 20:38]
:END:
-*** TODO Back up all the pads
-SCHEDULED: <2022-12-05 Mon>
-*** STARTED Extract bbb chat and add to backstage
+*** DONE Back up all the pads
+CLOSED: [2022-12-08 Thu 20:35] SCHEDULED: <2022-12-05 Mon>
+*** DONE Extract bbb chat and add to backstage
+CLOSED: [2022-12-08 Thu 20:35]
:PROPERTIES:
:CREATED: [2022-12-06 Tue 12:04]
:Effort: 0:30
@@ -274,53 +347,6 @@ To avoid duplicating work, maybe we can use this Etherpad to call dibs on talks
If you're already set up to edit the wiki or you can figure out the slightly complicated setup for editing, feel free to edit the page directly. If not, you can email a Markdown or Org Mode snippet to emacsconf-submit@gnu.org and let me know what page to put it on.
-*** SOMEDAY Document this phase of the conference
-:PROPERTIES:
-:CREATED: [2022-12-08 Thu 19:33]
-:END:
-
-We're now in the harvesting phase of the conference, where we work on
-collecting the ideas that people shared in the Q&A sessions as well as
-any talks that were not available as pre-recorded videos.
-
-Status of talks and Q&A sessions:
-- All talks except for the new version of grail should now be available at https://media.emacsconf.org/2022/ and on talk pages
-- Links to the BBB playbacks and to the various BBB resources (--bbb-* for each talk)
- are now in the backstage area for speakers and/or volunteers to
- review
-- RMS Q&A audio has been uploaded (--questions.ogg)
-- grail talk will be reuploaded by the speaker
-- IRC logs have been copied to the backstage area; see the links at the top
-- Etherpads have been exported to HTML and converted to pads; see --pad.txt for each talk
-
-Here's a good/better/best scale for stuff to do during this phase:
-
-- Good:
- - Add Etherpad text to wiki pages for talks
- - The text is pretty structured, so this might even be somewhat
- automatable
- - Look at the BBB text chat copy anonymized questions/answers/feedback to
- the wiki pages as well, if they weren't already on the page
- - The text is split up by room and tends to be pretty short, so
- this might be something I can quickly whip up
- - Look at IRC log and copy anonymized questions/answers/feedback to
- the wiki pages as well, if they weren't already on the page
- - Slightly more manual because of overlapping conversations
-- Better:
- - Review the BBB recording to check if there's anything that needs
- to be deleted from the recording before we publish it so that
- people can listen to things themselves; publish the recording or
- excerpts of it
- - Might be easier with the transcript, but can also be done without one
-- Even better than that:
- - Make chapter markers for the Q&A recording so that people can jump
- to the question they're particularly interested in
-- Totally awesome:
- - Edited captions/transcripts for the Q&A
- - Answers copied into the Q&A section, possibly with timestamps
-
-
-
** TODO Send thanks
:PROPERTIES:
:CUSTOM_ID: thanks