summaryrefslogtreecommitdiffstats
path: root/2022/organizers-notebook.md
diff options
context:
space:
mode:
Diffstat (limited to '2022/organizers-notebook.md')
-rw-r--r--2022/organizers-notebook.md608
1 files changed, 406 insertions, 202 deletions
diff --git a/2022/organizers-notebook.md b/2022/organizers-notebook.md
index 92811c81..dc2b71a7 100644
--- a/2022/organizers-notebook.md
+++ b/2022/organizers-notebook.md
@@ -4,55 +4,63 @@
# Table of Contents
- [Current tasks / status](#current)
- - [Organizers: Review the submissions in the pad (see emacsconf-org-private or conf.org for the link) and add any objections or comments by Sept 26 for possible early speaker notification, Oct 7 for everything](#org2623942)
- - [zaeph: Write preparation instructions and decide on deadline for prerecs](#orgcdfc17a):zaeph:
- - [sacha: add more submissions (CFP deadline Sept 30)](#org3b85dd6):sacha:
- - [sacha: copy things over from previous notebooks](#org073aba9):sacha:
- - [corwin: Double-check sachac’s timezone conversions for availability](#org8fc27b2):corwin:
- - [corwin: Investigate streaming options, maybe OBS in the cloud](#orgfc531a3):corwin:
- - [corwin: document such that someone else could use/fix it](#org02714b2):corwin:
- - [corwin: recruit at least one more person to help operate the "video bouncer"](#org934c024):corwin:
- - [corwn, zaeph: Work on the OBS scenes](#org029c04b):zaeph:corwin:
- - [???: Figure out web-based file upload](#org541c85e):needsowner:
- - [sacha: Prepare to export talk information to wiki](#orge623c8b):sacha:
- - [zaeph: Give access to emacsconf-2022-private to dto](#org8b3dbe5):zaeph:
- - [dto: create Org heading for scheduling caption team's live IRC duty shifts](#org8f9235b):dto:
-- [Other tasks and processes](#org364dce8)
- - [Sacha: Organize volunteer information](#org850a3ab):sacha:
- - [Export talk information to wiki](#orga39b22c)
- - [${year}/info/${slug}-nav](#org5426368)
- - [${year}/info/${slug}-schedule](#org0be4713)
- - [${year}/talks/${slug}](#orgdeb897f)
- - [Once talks are approved](#org9942d08)
- - [As prerecorded talks come in](#org4651d02)
- - [Compress the video](#orgb498691)
- - [When a talk is captioned](#orgf253cc0)
- - [Other tasks before the conference](#org836f6e9)
- - [Test stream setup](#org81918ec)
- - [Set up MPV for captions](#orgba9a36f)
- - [mpv profile](#org238ff85)
- - [Font: Clear Sans](#org5646193)
+ - [Organizers: Review the submissions in the pad (see emacsconf-org-private or conf.org for the link) and add any objections or comments by Sept 26 for possible early speaker notification, Oct 7 for everything](#org8b98f6b)
+ - [zaeph: Write preparation instructions and decide on deadline for prerecs](#orgde28c05):zaeph:
+ - [zaeph: Write viewing instructions](#org6ae82d3)
+ - [sacha: add more submissions (CFP deadline Sept 30)](#org8ccce03):sachac:
+ - [sacha: copy things over from previous notebooks](#orgc8da473):sachac:
+ - [corwin: Double-check sachac’s timezone conversions for availability](#orgcf3779d):corwin:
+ - [corwin: Investigate streaming options, maybe OBS in the cloud](#org5675661):corwin:
+ - [corwin: document such that someone else could use/fix it](#org839a59c):corwin:
+ - [corwin: recruit at least one more person to help operate the "video bouncer"](#org6731f7d):corwin:
+ - [corwn, zaeph: Work on the OBS scenes](#org6eb6391):zaeph:corwin:
+ - [???: Figure out web-based file upload](#org662b798):needsowner:
+ - [sacha: Prepare to export talk information to wiki](#org4d385f4):sachac:
+ - [zaeph: Give access to emacsconf-2022-private to dto](#org2a06a98):zaeph:
+ - [dto: create Org heading for scheduling caption team's live IRC duty shifts](#orge72154a):dto:
+- [Things to figure out / decisions to make](#decisions)
+ - [Can we nudge people to ask IRC questions in a way that will make it easier for us to follow them?](#org283ae73)
+ - [How do we want to make better use of Etherpad?](#orgce0c2b9)
+ - [How many pads do we want?](#orga64122a)
+ - [Do we want to host our own?](#org2c3114d)
+ - [How many BBB rooms do we want to set up?](#orgeaf4229)
+ - [Do we want to do alt-stream the same way again this year?](#org8cda358)
+- [Roles needed](#roles)
+- [Other tasks and processes](#org558843c)
+ - [Sacha: Organize volunteer information](#org6c810e9):sachac:
+ - [Export talk information to wiki](#org88c6a05)
+ - [${year}/info/${slug}-nav](#orgacde51c)
+ - [${year}/info/${slug}-schedule](#orgbc1f13d)
+ - [${year}/talks/${slug}](#org1e1dbea)
+ - [Once talks are approved](#org2f49460)
+ - [As prerecorded talks come in](#org6396f1a)
+ - [Compress the video](#orgf796351)
+ - [When a talk is captioned](#orgb03fab3)
+ - [Other tasks before the conference](#org424a80b)
+ - [Test stream setup](#org2537e34)
+ - [Set up MPV for captions](#orga63deae)
+ - [mpv profile](#orga11ce8b)
+ - [Font: Clear Sans](#org40012fd)
- [Download prerecorded videos from ${protected}](#days-before)
- - [During the conference](#org1e97ca3)
- - [Roles needed](#roles)
+ - [During the conference](#org9393ede)
- [Set up](#setup)
- [Arrange screens](#screens)
- [Start streaming](#start-streaming):stream:
- [Check in a speaker](#check-in)
- - [bandali's check-in steps](#orgddb1165)
+ - [bandali's check-in steps](#org26cbf8f)
- [Present talk](#present)
- [Publish information](#publish)
- [Handle Q&A](#questions)
- [During each talk](#each-talk)
- [Break time](#break)
- [End of stream](#end)
- - [After the conference](#org7d641cc)
- - [Send thanks](#org52cd69c)
- - [Update the wiki](#org78fdc04)
- - [Update captions](#orge79dae2)
- - [Downsize the server](#orgc23f3e6):bandali:
+ - [After the conference](#orga4e79e6)
+ - [Send thanks](#org762a91e)
+ - [Update the wiki](#org9c6cbc8)
+ - [Update captions](#orgb673f49)
+ - [Downsize the server](#org9dc21fc):bandali:
- [In case of](#exceptions)
- - [Stuck wiki](#org33afc11)
+ - [Stuck wiki](#orged6f216)
- [Last-minute prerecording submission](#last-minute-prerec)
- [Last-minute caption update](#last-minute-captions)
- [Speaker has not checked in](#missing)
@@ -68,38 +76,40 @@
- [Technical issues during a live presentation](#live-issues)
- [Big technical issues with streaming](#stream-issues)
- [live0 can't handle the load or is close to network transfer limit](#network)
- - [People have a hard time seeing dark-mode presentations (or light-mode)](#org2366c2c)
-- [Communications](#orgcc82bff)
- - [Ask emacsconf-org-private for feedback on early submissions](#org7e9610d)
- - [Early speaker notification](#orgc53de65)
- - [Option A: Early speaker notification(?)](#org0541563)
- - [Option B: Just letting them know it's been postponed](#org8ddfc68)
- - [Future](#orgf734309)
- - [Acceptance](#org42bf130)
- - [Code](#orgd73dc75)
- - [Template](#org94c9f23)
- - [Acknowledge pre-rec submission](#org3a547c3)
- - [Captions for approval](#org7973c24)
- - [Speakers we haven't confirmed e-mail communications with](#org38ee109)
- - [Speakers who are missing prerecs](#orgc917c1a)
- - [Template](#orgef6dc93)
- - [Check-in instructions](#org2394e6c)
- - [Code](#org4945acd)
- - [E-mail for speakers who are planning to be at the conference](#org56d4039)
- - [E-mail for speakers who are not planning to be around, but who have sent us their prerecs](#org395985f)
- - [Last email before the conference](#org8357187)
- - [Thank you, next steps](#org6bac67a)
- - [Code](#org0fced3e)
- - [Text](#orgbfddf41)
- - [Archive](#org91b89a5)
- - [Second announcement: CFP](#org37a7831)
- - [First announcement: CFP](#orgece93a5)
-- [Supporting code](#orged4f5df)
- - [Publish this page](#org57ecbfb)
- - [Tangle and publish on save](#org97290bc)
-- [Lessons learned](#orgafecb84)
- - [From previous years](#org111165f)
- - [Lessons learned for next year](#org0565c80)
+ - [People have a hard time seeing dark-mode presentations (or light-mode)](#org324d270)
+- [Communications](#org5ed3d3f)
+ - [Ask emacsconf-org-private for feedback on early submissions](#org261360b)
+ - [Early speaker notification](#orgd1fa065)
+ - [Option A: Early speaker notification(?)](#orga08657d)
+ - [Option B: Just letting them know it's been postponed](#org94251ab)
+ - [Future](#org5273383)
+ - [Acceptance](#orgfd3fb38)
+ - [Code](#orge898d97)
+ - [Template](#org149a956)
+ - [Acknowledge pre-rec submission](#orgd86d859)
+ - [Captions for approval](#orgd46a847)
+ - [Speakers we haven't confirmed e-mail communications with](#orge7cfdd1)
+ - [Speakers who are missing prerecs](#org7247253)
+ - [Template](#org23f3a53)
+ - [Check-in instructions](#org704fc0f)
+ - [Code](#org1009329)
+ - [E-mail for speakers who are planning to be at the conference](#orgf3a67a6)
+ - [E-mail for speakers who are not planning to be around, but who have sent us their prerecs](#org6992a10)
+ - [Last email before the conference](#orga918563)
+ - [Thank you, next steps](#org904b719)
+ - [Code](#orgdf6f1c1)
+ - [Text](#org33c5d8a)
+ - [Archive](#orgaa75dd1)
+ - [Second announcement: CFP](#orgfbdb82b)
+ - [First announcement: CFP](#orgdd1021c)
+- [Supporting code](#org07eaa53)
+ - [General](#org57120cd)
+ - [Publish this page](#org6f16b7a)
+ - [Export to markdown](#org65a6f52)
+ - [Tangle and publish on save](#org9ef336b)
+- [Lessons learned](#org8911dc8)
+ - [From previous years](#org05faefc)
+ - [Lessons learned for next year](#org54f3df4)
<a id="current"></a>
@@ -119,7 +129,7 @@ Planned dates and phases:
<tbody>
<tr>
<td class="org-left"><span class="timestamp-wrapper"><span class="timestamp">[2022-09-26 Mon]</span></span></td>
-<td class="org-left">Yes/no decisions for original submissions</td>
+<td class="org-left">Yes/no comments for original submissions</td>
</tr>
@@ -130,32 +140,26 @@ Planned dates and phases:
<tr>
-<td class="org-left"><span class="timestamp-wrapper"><span class="timestamp">[2022-09-26 Mon]</span></span></td>
-<td class="org-left">Yes/no decisions for original submissions</td>
-</tr>
-
-
-<tr>
-<td class="org-left"><span class="timestamp-wrapper"><span class="timestamp">[2022-09-30 Fri]</span></span></td>
-<td class="org-left">Early speaker notification for original submissions</td>
+<td class="org-left"><span class="timestamp-wrapper"><span class="timestamp">[2022-10-07 Fri]</span></span></td>
+<td class="org-left">Yes/no comments for late submissions</td>
</tr>
<tr>
-<td class="org-left"><span class="timestamp-wrapper"><span class="timestamp">[2022-10-07 Fri]</span></span></td>
-<td class="org-left">Yes/no decisions for late submissions</td>
+<td class="org-left"><span class="timestamp-wrapper"><span class="timestamp">[2022-10-15 Sat]</span></span></td>
+<td class="org-left">New speaker notification date (possibly only for late submissions)</td>
</tr>
<tr>
-<td class="org-left"><span class="timestamp-wrapper"><span class="timestamp">[2022-10-15 Sat]</span></span></td>
-<td class="org-left">New speaker notification date (possibly only for late submissions)</td>
+<td class="org-left"><span class="timestamp-wrapper"><span class="timestamp">[2022-10-22 Sat]</span></span></td>
+<td class="org-left">E-mail confirmation expected (collect public contact info for posting in program)</td>
</tr>
<tr>
-<td class="org-left"><span class="timestamp-wrapper"><span class="timestamp">[2022-10-30 Sun]</span></span></td>
-<td class="org-left">Ask early submitters if they can start</td>
+<td class="org-left"><span class="timestamp-wrapper"><span class="timestamp">[2022-10-22 Sat]</span></span></td>
+<td class="org-left">Strongly encourage early submitters to target this date for prerecs</td>
</tr>
@@ -199,14 +203,14 @@ Planned dates and phases:
Current phase: No prerecs to process yet, so it's a good time to focus on infrastructure
-<a id="org2623942"></a>
+<a id="org8b98f6b"></a>
-## TODO Organizers: Review the submissions in the pad (see emacsconf-org-private or conf.org for the link) and add any objections or comments by Sept 26 for possible [early speaker notification](#orgc53de65), Oct 7 for everything
+## TODO Organizers: Review the submissions in the pad (see emacsconf-org-private or conf.org for the link) and add any objections or comments by Sept 26 for possible [early speaker notification](#orgd1fa065), Oct 7 for everything
- zaeph: will start reviewing on Sep 21
-<a id="orgcdfc17a"></a>
+<a id="orgde28c05"></a>
## TODO zaeph: Write preparation instructions and decide on deadline for prerecs :zaeph:
@@ -219,25 +223,38 @@ We need time after the prerecs get submitted to:
zaeph will also figure out the ffmpeg incantation for converting videos and the process for handling submitted prerecs
+Extra stuff to consider adding:
+
+- Suggestions for org-reveal, fonts and themes (especially wrt colourscape)
+
+
+<a id="org6ae82d3"></a>
-<a id="org3b85dd6"></a>
+## TODO zaeph: Write viewing instructions
-## WAITING sacha: add more submissions (CFP deadline Sept 30) :sacha:
+Extra stuff to consider adding:
+
+- Suggestions for mpv-filter to invert colourscape.
+
+
+<a id="org8ccce03"></a>
+
+## WAITING sacha: add more submissions (CFP deadline Sept 30) :sachac:
- Sacha: Add submissions to emacsconf-2022-private, draft 2-day schedule by Oct 10
-<a id="org073aba9"></a>
+<a id="orgc8da473"></a>
-## DONE sacha: copy things over from previous notebooks :sacha:
+## DONE sacha: copy things over from previous notebooks :sachac:
-<a id="org8fc27b2"></a>
+<a id="orgcf3779d"></a>
## TODO corwin: Double-check sachac’s timezone conversions for availability :corwin:
-<a id="orgfc531a3"></a>
+<a id="org5675661"></a>
## TODO corwin: Investigate streaming options, maybe OBS in the cloud :corwin:
@@ -246,24 +263,24 @@ zaeph will also figure out the ffmpeg incantation for converting videos and the
**\*** TODO corwin: plan an approach to use a centralized OBS/nginix "bouncer" :corwin:
-<a id="org02714b2"></a>
+<a id="org839a59c"></a>
### TODO corwin: document such that someone else could use/fix it :corwin:
-<a id="org934c024"></a>
+<a id="org6731f7d"></a>
### TODO corwin: recruit at least one more person to help operate the "video bouncer" :corwin:
-<a id="org029c04b"></a>
+<a id="org6eb6391"></a>
## TODO corwn, zaeph: Work on the OBS scenes :zaeph:corwin:
- [ ] corwin is out from Nov 11-20, and we should start working on them before then.
-<a id="org541c85e"></a>
+<a id="org662b798"></a>
## TODO ???: Figure out web-based file upload :needsowner:
@@ -271,43 +288,184 @@ Lesson learned from last year: "Since people kept running into ftp problems, we
Maybe we could ask some of the volunteers who wanted to help us with the infra? It shouldn’t be complicated to deploy a ready-made solution.
-<a id="orge623c8b"></a>
+<a id="org4d385f4"></a>
-## DONE sacha: Prepare to export talk information to wiki :sacha:
+## DONE sacha: Prepare to export talk information to wiki :sachac:
-[Export talk information to wiki](#orga39b22c)
+[Export talk information to wiki](#org88c6a05)
Tested code in a fork, can publish talk information once talks are approved.
-<a id="org8b3dbe5"></a>
+<a id="org2a06a98"></a>
## DONE zaeph: Give access to emacsconf-2022-private to dto :zaeph:
-<a id="org8f9235b"></a>
+<a id="orge72154a"></a>
## TODO dto: create Org heading for scheduling caption team's live IRC duty shifts :dto:
-<a id="org364dce8"></a>
+<a id="decisions"></a>
+
+# Things to figure out / decisions to make
+
+
+<a id="org283ae73"></a>
+
+## Can we nudge people to ask IRC questions in a way that will make it easier for us to follow them?
+
+Pain points:
+
+- Q&A/discussions often overlap with the next talks
+- Sometimes questions don't get copied to the pad
+- Fast discussions can get overwhelming
+
+Ideas:
+
+- Announce pad link at the beginning of the talk and at the start of
+ live Q&A, encourage most people to ask questions there
+- Encourage people to start questions with Q:
+ - A little extra work, but not as much as including the slug
+ - Easier to pick out when people search
+ - Volunteers can restate questions easily if people forget the Q:
+- Encourage people to start questions with Q-slug: (ex: Q-news: question about Emacs News Highlights, Q-journalism: &#x2026;)
+ - Easier to pick out questions even with overlapping Q&A/talks
+- Use two or three IRC channels so that talks can rotate among channels
+ - Easier to pick out questions even with overlapping Q&A/talks
+ - Needs logging and more organizer attention
+- Maybe a volunteer can have an ERC command that copies a question into a buffer, or even into the Etherpad
+
+
+<a id="orgce0c2b9"></a>
+
+## How do we want to make better use of Etherpad?
+
+Pain points:
+
+- Lots of scrolling for speakers
+- Takes some effort to move questions from IRC to the pad
+
+
+<a id="orga64122a"></a>
+
+### How many pads do we want?
+
+- One pad for everything
+ - Scroll down, down, down
+ - Easy to set up at the beginning
+ - Inertia
+- One pad per set of talks (Saturday AM, Saturday PM, Sunday AM, Sunday PM)
+ - Less scrolling
+- One pad per talk, plus one meta pad
+ - Very little scrolling
+ - Can send people directly to the pad
+
+
+<a id="org2c3114d"></a>
+
+### Do we want to host our own?
+
+- Use etherpad.wikimedia.org
+ - Worked fine last year
+- Host our own
+ - Might be able to use API to append questions to it, if we want to get super fancy
+
+
+<a id="orgeaf4229"></a>
+
+## How many BBB rooms do we want to set up?
+
+- One per talk
+ - We can send speakers a direct link to their room and they can check into it themselves
+ - Needs a little more work when setting up rooms and when extracting videos
+ - Easier for the host to join
+ - Check-in person can just keep an ear open in that room
+- Five or so, rotating among them
+ - Check-in person directs the speaker to the next available room
+ - Worked fine last time
+
+
+<a id="org8cda358"></a>
+
+## Do we want to do alt-stream the same way again this year?
+
+- Alt stream joins the current session and then continues with it until the Q&A finishes; people join the BBB room if they want to ask questions
+ - Nice and convivial, Q&A still gets captured
+ - Inertia means most people get the main message
+- Multiple streams with more space between talks, people choose which stream they want to watch
+ - How other conferences do it
+ - Speakers can attend related talks more easily
+
+
+<a id="roles"></a>
+
+# Roles needed
+
+Each role comprises different responsibilities. A person may have multiple roles. An organizer might take the lead for a role, but if you want to volunteer, speak up and they'll probably be glad to share the load.
+
+- Streamer (STREAM)
+ - Download prerecorded videos
+ - Send the combined stream to Icecast for broadcasting
+- Director (DIR: corwin) - possibly same as streamer
+ - Switch scenes, manage audio volumes as needed
+ - Provide timekeeping information to host (especially go-live countdowns)
+- Host (HOST: zaeph)
+ - Introduce talks and speakers
+ - Read questions
+ - Give time warnings
+ - Thank speakers and transition to next talk
+- Timekeeper (possibly same as host)
+ - Manage time based on all available information (prerecs durations, speakers not showing up, etc.)
+- Check in (CHECK)
+ - Notice speakers checking into IRC
+ - Get them into the correct room and help them doublecheck their audio and video quality
+ - Troubleshoot as needed
+ - Notify host about next room to join
+ - Follow up with speakers who haven't checked in yet
+ - Check on speakers periodically so that they're not waiting alone
+- Questions
+ - Copy questions from IRC and the pad to wherever the host and speaker are looking
+- Pad scribe
+ - Organize and format people's contributions
+ - Add notes about links, key points, questions, answers
+- Quality checker
+ - Doublecheck videos for potential encoding issues or compression artifacts that get in the way of viewing
+ - Doublecheck captions
+ - Doublecheck stream quality and audio volume
+- Accessibility (ACCESS: dto)
+ - Describe visuals in #emacsconf-accessible
+ - Nice to have: echo the captions into #emacsconf-accessible
+- Publisher (PUB: sachac)
+ - Announce talks in the IRC channels
+ - Nice to have: Update the wiki page with resources (video)
+ - Nice to have: Set resources to public as each talk is played (Toobnix, YouTube)
+ - Nice to have: Update the schedule to reflect changes throughout the day
+- Captioner
+ - Edit automatically-generated captions to correct misrecognized words
+ - Nice to have: Break up the captions in better places so that subtitles are neither too long nor too short
+ - Perk: Get access to prerecorded videos
+
+
+<a id="org558843c"></a>
# Other tasks and processes
-<a id="org850a3ab"></a>
+<a id="org6c810e9"></a>
-## DONE Sacha: Organize volunteer information :sacha:
+## DONE Sacha: Organize volunteer information :sachac:
-<a id="orga39b22c"></a>
+<a id="org88c6a05"></a>
## Export talk information to wiki
-[sacha: Prepare to export talk information to wiki](#orge623c8b)
+[sacha: Prepare to export talk information to wiki](#org4d385f4)
-<a id="org5426368"></a>
+<a id="orgacde51c"></a>
### ${year}/info/${slug}-nav
@@ -320,14 +478,14 @@ Example:
Next: <a href="/2021/talks/research">Managing a research workflow (bibliographies, note-taking, and arXiv)</a>
-<a id="org0be4713"></a>
+<a id="orgbc1f13d"></a>
### ${year}/info/${slug}-schedule
Automatically generated by emacsconf-create-info-pages
-<a id="orgdeb897f"></a>
+<a id="org1e1dbea"></a>
### ${year}/talks/${slug}
@@ -361,7 +519,7 @@ Initially generated by emacsconf-create-talk-pages
[[!inline pages="internal(${year}/info/${slug}-nav)" raw="yes"]]
-<a id="org9942d08"></a>
+<a id="org2f49460"></a>
## Once talks are approved
@@ -371,7 +529,7 @@ Initially generated by emacsconf-create-talk-pages
- Confirm e-mail communication with all of the speakers
-<a id="org4651d02"></a>
+<a id="org6396f1a"></a>
## As prerecorded talks come in
@@ -382,7 +540,7 @@ Initially generated by emacsconf-create-talk-pages
- Make sure all the links/resources mentioned are written down somewhere (web page and enriched captions for pasting into #emacsconf-accessible)
-<a id="orgb498691"></a>
+<a id="orgf796351"></a>
### Compress the video
@@ -397,31 +555,31 @@ Usage: `compress-video.sh original-file output-file`:
We tried using q56 before, but it was a little too aggressive. Q=32 is the default and is probably a reasonable space vs. quality compromise.
-<a id="orgf253cc0"></a>
+<a id="orgb03fab3"></a>
## When a talk is captioned
-<a id="org836f6e9"></a>
+<a id="org424a80b"></a>
## Other tasks before the conference
- Coordinate volunteer schedules so all the roles are covered
-<a id="org81918ec"></a>
+<a id="org2537e34"></a>
### Test stream setup
-[Stream](#org20398c8)
+[Stream](#orgd3a2948)
-<a id="orgba9a36f"></a>
+<a id="orga63deae"></a>
### Set up MPV for captions
-<a id="org238ff85"></a>
+<a id="orga11ce8b"></a>
#### mpv profile
@@ -456,7 +614,7 @@ Add the following profile to `~/.config/mpv/mpv.conf`:
(Thanks, zaeph)
-<a id="org5646193"></a>
+<a id="org40012fd"></a>
#### Font: Clear Sans
@@ -475,52 +633,11 @@ Links:
rsync -avzue ssh front:/var/www/media.emacsconf.org/2021/protected/*--main.webm .
-<a id="org1e97ca3"></a>
+<a id="org9393ede"></a>
## During the conference
-<a id="roles"></a>
-
-### Roles needed
-
-Each role comprises different responsibilities. A person may have multiple roles.
-
-- STREAM: Streamer
- - Send the combined stream to Icecast for broadcasting
-- Director (possibly same as streamer)
- - Switch scenes, manage audio volumes as needed
- - Provide timekeeping information to host (especially go-live countdowns)
-- HOST: Host
- - Introduce talks and speakers
- - Read questions
- - Give time warnings
- - Thank speakers and transition to next talk
-- Timekeeper (possibly same as host)
- - Manage time based on all available information (prerecs durations, speakers not showing up, etc.)
-- CHECK: Check in
- - Notice speakers checking into IRC
- - Get them into the correct room and help them doublecheck their audio and video quality
- - Troubleshoot as needed
- - Notify host about next room to join
- - Follow up with speakers who haven't checked in yet
-- Questions
- - Copy questions from IRC and the pad to wherever the host and speaker are looking
-- Pad
- - Organize and format people's contributions
- - Add notes about links, key points, Q&A
-- Quality checker
- - Doublecheck stream quality and audio volume
-- Accessibility
- - Describe visuals in #emacsconf-accessible
- - Nice to have: echo the captions into #emacsconf-accessible
-- Publisher
- - Announce talks in the IRC channels
- - Nice to have: Update the wiki page with resources (video)
- - Nice to have: Set resources to public as each talk is played (Toobnix, YouTube)
- - Nice to have: Update the schedule to reflect changes throughout the day
-
-
<a id="setup"></a>
### Set up
@@ -653,7 +770,7 @@ Exception: [CHECK is unavailable](#check-gone)
information.
-<a id="orgddb1165"></a>
+<a id="org26cbf8f"></a>
#### bandali's check-in steps
@@ -798,24 +915,24 @@ Exceptions:
- bandali figures out the downstream
-<a id="org7d641cc"></a>
+<a id="orga4e79e6"></a>
## After the conference
-<a id="org52cd69c"></a>
+<a id="org762a91e"></a>
### Send thanks
-[Thank you, next steps](#org6bac67a)
+[Thank you, next steps](#org904b719)
-<a id="org78fdc04"></a>
+<a id="org9c6cbc8"></a>
### Update the wiki
-<a id="orge79dae2"></a>
+<a id="orgb673f49"></a>
### Update captions
@@ -841,7 +958,7 @@ Exceptions:
- Update ${conf-year}/${captions}/${slug}.md in the wiki. To make this from scratch, use `M-x conf-prepare-transcript-directives` from the talk heading in the conference Org file.
-<a id="orgc23f3e6"></a>
+<a id="org9dc21fc"></a>
### BLOCKED Downsize the server :bandali:
@@ -851,7 +968,7 @@ Exceptions:
## In case of
-<a id="org33afc11"></a>
+<a id="orged6f216"></a>
### Stuck wiki
@@ -1038,19 +1155,19 @@ sudo -iu ikiwiki &#x2013; ikiwiki &#x2013;setup ~ikiwiki/emacsconf.setup
- Add additional node to Linode account for shared transfer pool (TODO: doublecheck)
-<a id="org2366c2c"></a>
+<a id="org324d270"></a>
### People have a hard time seeing dark-mode presentations (or light-mode)
mpv &#x2013;vf=negate $url
-<a id="orgcc82bff"></a>
+<a id="org5ed3d3f"></a>
# Communications
-<a id="org7e9610d"></a>
+<a id="org261360b"></a>
## DONE Ask emacsconf-org-private for feedback on early submissions
@@ -1075,14 +1192,14 @@ Thanks!
Sacha
-<a id="orgc53de65"></a>
+<a id="orgd1fa065"></a>
## TODO Early speaker notification
We can accept early or send people a note saying notification of acceptance will be on Oct 15, because of the extended CFP.
-<a id="org0541563"></a>
+<a id="orga08657d"></a>
### Option A: Early speaker notification(?)
@@ -1123,7 +1240,7 @@ Thank you so much!
Sacha
-<a id="org8ddfc68"></a>
+<a id="org94251ab"></a>
### Option B: Just letting them know it's been postponed
@@ -1136,17 +1253,17 @@ for your patience!
Sacha
-<a id="orgf734309"></a>
+<a id="org5273383"></a>
## Future
-<a id="org42bf130"></a>
+<a id="orgfd3fb38"></a>
### Acceptance
-<a id="orgd73dc75"></a>
+<a id="orge898d97"></a>
#### Code
@@ -1204,7 +1321,7 @@ Sacha
(save-excursion (conf-replace-plist-in-string attrs (plist-get attrs :body)))))
-<a id="org94c9f23"></a>
+<a id="org149a956"></a>
#### Template
@@ -1235,7 +1352,7 @@ EmacsConf organization team
P.S. Please keep emacsconf-submit@gnu.org in To or Cc when replying.
-<a id="org3a547c3"></a>
+<a id="orgd86d859"></a>
### Acknowledge pre-rec submission
@@ -1268,7 +1385,7 @@ P.S. Please keep emacsconf-submit@gnu.org in To or Cc when replying.
"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 before the conference!\n\nSacha"))))
-<a id="org7973c24"></a>
+<a id="orgd46a847"></a>
### Captions for approval
@@ -1285,7 +1402,7 @@ ${url} . Thanks again for your contribution!
Sacha
-<a id="org38ee109"></a>
+<a id="orge7cfdd1"></a>
### Speakers we haven't confirmed e-mail communications with
@@ -1330,7 +1447,7 @@ Sacha Chua
(Please use Reply to All to keep emacsconf-submit@gnu.org in the loop. Thanks!)
-<a id="orgc917c1a"></a>
+<a id="org7247253"></a>
### Speakers who are missing prerecs
@@ -1351,7 +1468,7 @@ Sacha Chua
(conf-get-talk-info))))))
-<a id="orgef6dc93"></a>
+<a id="org23f3a53"></a>
#### Template
@@ -1407,7 +1524,7 @@ stream for you. Hope to hear from you soon!
Sacha
-<a id="org2394e6c"></a>
+<a id="org704fc0f"></a>
### Check-in instructions
@@ -1425,7 +1542,7 @@ Goals:
- They’re joined by the streamer and host.
-<a id="org4945acd"></a>
+<a id="org1009329"></a>
#### Code
@@ -1482,7 +1599,7 @@ Slightly more complex because of the conditionals
(buffer-list)))
-<a id="org56d4039"></a>
+<a id="orgf3a67a6"></a>
#### E-mail for speakers who are planning to be at the conference
@@ -1510,7 +1627,7 @@ Looking forward to seeing you soon!
Sacha
-<a id="org395985f"></a>
+<a id="org6992a10"></a>
#### E-mail for speakers who are not planning to be around, but who have sent us their prerecs
@@ -1532,7 +1649,7 @@ Thank you again for being part of EmacsConf ${year}!
Sacha
-<a id="org8357187"></a>
+<a id="orga918563"></a>
### Last email before the conference
@@ -1551,12 +1668,12 @@ Sacha
> also be the time at which the talk will be made available on the same page.
-<a id="org6bac67a"></a>
+<a id="org904b719"></a>
### Thank you, next steps
-<a id="org0fced3e"></a>
+<a id="orgdf6f1c1"></a>
#### Code
@@ -1588,7 +1705,7 @@ Sacha
(plist-get template :body)))))))
-<a id="orgbfddf41"></a>
+<a id="org33c5d8a"></a>
#### Text
@@ -1618,12 +1735,12 @@ Thanks again for speaking at EmacsConf!
Sacha
-<a id="org91b89a5"></a>
+<a id="orgaa75dd1"></a>
## Archive
-<a id="org37a7831"></a>
+<a id="orgfbdb82b"></a>
### DONE Second announcement: CFP
@@ -1654,7 +1771,7 @@ emacsconf-discuss list, so as to help avoid generating extra off-topic
chatter in the other lists cc'd on this message. Thank you.
-<a id="orgece93a5"></a>
+<a id="orgdd1021c"></a>
### DONE First announcement: CFP
@@ -1684,12 +1801,72 @@ emacsconf-discuss list, so as to help avoid generating extra off-topic
chatter in the other lists Cc'd on this message. Thank you.
-<a id="orged4f5df"></a>
+<a id="org07eaa53"></a>
# Supporting code
-<a id="org57ecbfb"></a>
+<a id="org57120cd"></a>
+
+## General
+
+ (defvar emacsconf-danger-allow-dangerous-stuff nil
+ "When non-nil, trade safety for convenience.")
+
+ (defvar emacsconf-danger-asked nil
+ "When non-nil, user has already been asked for security trade-off.")
+
+ (defun emacsconf-danger--ask (forms)
+ "Ask to run dangerous FORMS.
+ Return t if the answer is “yes”."
+ (when (y-or-n-p (format "FORMS:\n%s\n\nThis is dangerous. Run anyway? "
+ (prin1-to-string forms)))
+ (unless emacsconf-danger-asked
+ (if (y-or-n-p "Would you like to trade security for convenience for the rest of the session? ")
+ (setq-local emacsconf-danger-allow-dangerous-stuff t)
+ (setq-local emacsconf-danger-asked t)))
+ t))
+
+ (defmacro emacsconf-danger--shield (error &rest forms)
+ "Protect user from dangerous FORMS.
+ Throw an error if ERROR is non-nil, skip otherwise."
+ `(let ((shield (not (or emacsconf-danger-allow-dangerous-stuff
+ (emacsconf-danger--ask ',@forms)))))
+ (if shield
+ ,(when error
+ '(user-error "Dangerous action cancelled by user"))
+ ,@forms)))
+
+ (defmacro emacsconf-danger-shield (&rest forms)
+ "Protect user from dangerous FORMS by throwing an ERROR."
+ `(emacsconf-danger--shield t ,@forms))
+
+ (defmacro emacsconf-danger-skip (&rest forms)
+ "Protect user from dangerous FORMS by skipping them."
+ `(emacsconf-danger--shield nil ,@forms))
+
+ (message "General setup has been loaded")
+
+ (emacsconf-danger-shield
+ (setq-local org-confirm-babel-evaluate nil
+ org-confirm-elisp-link-function nil))
+ (message "No longer asking for confirmation in this buffer")
+
+ (setq-local emacsconf-danger-allow-dangerous-stuff t)
+
+ (org-babel-ref-resolve "elisp-no-confirmation()")
+
+ (message "Now allowing dangerous stuff. Buckle up, buckaroo!")
+
+ (kill-local-variable 'emacsconf-danger-allow-dangerous-stuff)
+ (kill-local-variable 'emacsconf-danger-asked)
+ (kill-local-variable 'org-confirm-babel-evaluate)
+ (kill-local-variable 'org-confirm-elisp-link-function)
+
+ (message "Back to safety. Phew!")
+
+
+<a id="org6f16b7a"></a>
## Publish this page
@@ -1702,7 +1879,34 @@ chatter in the other lists Cc'd on this message. Thank you.
(call-interactively #'magit-push-current-to-pushremote))
-<a id="org97290bc"></a>
+<a id="org65a6f52"></a>
+
+### Export to markdown
+
+ (defun emacsconf-export-md-on-save ()
+ "Export markdown on save.
+ Meant to be used with `after-save-hook'."
+ (org-md-export-to-markdown)
+ (org-babel-tangle))
+
+ (defvar emacsconf-export-md-on-save-configured t
+ "Non-nil when the setup code-block has been executed.")
+
+ (unless (bound-and-true-p emacsconf-export-md-on-save-configured)
+ (org-babel-ref-resolve "md-export-on-save-setup()"))
+
+ (add-hook 'after-save-hook #'emacsconf-export-md-on-save nil t)
+
+ (when (memq #'emacsconf-export-md-on-save after-save-hook)
+ (message "Hook is active"))
+
+ (remove-hook 'after-save-hook #'emacsconf-export-md-on-save t)
+
+ (unless (memq #'emacsconf-export-md-on-save after-save-hook)
+ (message "Hook is no longer active"))
+
+
+<a id="org9ef336b"></a>
## Tangle and publish on save
@@ -1729,12 +1933,12 @@ chatter in the other lists Cc'd on this message. Thank you.
(message "Hook is no longer active"))
-<a id="orgafecb84"></a>
+<a id="org8911dc8"></a>
# Lessons learned
-<a id="org111165f"></a>
+<a id="org05faefc"></a>
## From previous years
@@ -1766,7 +1970,7 @@ chatter in the other lists Cc'd on this message. Thank you.
- [ ] we can see if bot + pads + merging will help next year, and we can also experiment with multiple streams if there are enough people to pull it off so that speakers don't feel like they've just been dropped in a room and left to their own devices :)
-<a id="org0565c80"></a>
+<a id="org54f3df4"></a>
## Lessons learned for next year