From f5986fdd8273fd3c322b3ded6cef121a40464caa Mon Sep 17 00:00:00 2001
From: Sacha Chua <sacha@sachachua.com>
Date: Tue, 20 Sep 2022 19:06:28 -0400
Subject: Add more stuff from previous notebook

---
 2022/organizers-notebook.md  | 301 ++++++++++++++++++++++++++++++-------------
 2022/organizers-notebook.org |  68 +++++++++-
 2 files changed, 274 insertions(+), 95 deletions(-)

diff --git a/2022/organizers-notebook.md b/2022/organizers-notebook.md
index 443ca901..8dba9bd2 100644
--- a/2022/organizers-notebook.md
+++ b/2022/organizers-notebook.md
@@ -3,53 +3,65 @@
 
 # Table of Contents
 
--   [Current tasks / status](#orgd69d925)
-    -   [Organizers: Review the submissions in emacsconf-2022-private and e-mail emacsconf-org-private with any objections or comments by Sept 26 for possible early speaker notification, Oct 7 for everything](#org1cda62f)
-    -   [zaeph: Write preparation instructions and decide on deadline for prerecs](#orge3c4fa5):zaeph:
-    -   [sacha: add more submissions (CFP deadline Sept 30)](#orgb83f3a9):sacha:
-    -   [sacha: copy things over from previous notebooks](#org28f2445):sacha:
-    -   [corwin: Double-check Sacha's timezone conversions for availability](#orgc95b399):corwin:
-    -   [corwin: Investigate streaming options, maybe OBS in the cloud](#orgf4d32a6):corwin:
-    -   [Prepare to export talk information to wiki](#orgd2f1e16):sacha:
--   [Other tasks and processes](#org7198967)
-    -   [Sacha: Organize volunteer information](#org4883fdd):sacha:
-    -   [bandali: Set up file upload](#orga8a32f7):bandali:
-    -   [Once talks are approved](#org714183d)
-    -   [As prerecorded talks come in](#org1acb3f4)
-    -   [When a talk is captioned](#orgc18b794)
-    -   [Other tasks before the conference](#org01680e3)
-    -   [During the conference](#orgd5c51fd)
+-   [Current tasks / status](#orgf13ef1a)
+    -   [Organizers: Review the submissions in emacsconf-2022-private and e-mail emacsconf-org-private with any objections or comments by Sept 26 for possible early speaker notification, Oct 7 for everything](#org01559f4)
+    -   [zaeph: Write preparation instructions and decide on deadline for prerecs](#orgbc975e1):zaeph:
+    -   [sacha: add more submissions (CFP deadline Sept 30)](#org799ee8c):sacha:
+    -   [sacha: copy things over from previous notebooks](#org6d96852):sacha:
+    -   [corwin: Double-check Sacha's timezone conversions for availability](#org68119c2):corwin:
+    -   [corwin: Investigate streaming options, maybe OBS in the cloud](#org239a833):corwin:
+    -   [???: Figure out web-based file upload](#org6b1d36c):needsowner:
+    -   [sacha: Prepare to export talk information to wiki](#org398e1a2):sacha:
+-   [Other tasks and processes](#orgf933fcb)
+    -   [Sacha: Organize volunteer information](#org79a7f6f):sacha:
+    -   [bandali: Set up file upload](#org517c13d):bandali:
+    -   [Once talks are approved](#orgce29ec3)
+    -   [As prerecorded talks come in](#org903c8fd)
+    -   [When a talk is captioned](#orga47e81c)
+    -   [Other tasks before the conference](#org5ccdbdc)
+        -   [Test stream setup](#org6a3c1a6)
+        -   [Set up MPV for captions](#orgd5100da)
+        -   [mpv profile](#org18d8fdf)
+        -   [Font: Clear Sans](#orgaa536d9)
+    -   [During the conference](#org91fcddf)
         -   [Roles needed](#roles)
+        -   [Set up](#org5227ca6)
+            -   [Stream](#orgecf9886)
         -   [During each talk](#each-talk)
--   [Communications](#org4096579)
-    -   [Ask emacsconf-org-private for feedback on early submissions](#org5dd0a6a)
-    -   [Early speaker notification](#orgc53b127)
-        -   [Option A: Early speaker notification(?)](#orgc5b64d4)
-        -   [Option B: Just letting them know it's been postponed](#orgba7026e)
-    -   [Future](#orgcb9e091)
-        -   [Acceptance](#orgf2be03d)
-            -   [Code](#orga55575a)
-            -   [Template](#org20e76d3)
-        -   [Acknowledge pre-rec submission](#org55dec22)
-        -   [Captions for approval](#orgd08cd41)
-        -   [Speakers we haven't confirmed e-mail communications with](#org8953f33)
-        -   [Speakers who are missing prerecs](#orgad01f04)
-            -   [Template](#org1059aa2)
-        -   [Check-in instructions](#orga199b1b)
-            -   [Code](#orgb2fdc34)
-            -   [E-mail for speakers who are planning to be at the conference](#org65ef9d7)
-            -   [E-mail for speakers who are not planning to be around, but who have sent us their prerecs](#org03714e2)
-        -   [Last email before the conference](#org8ef5732)
-        -   [Thank you, next steps](#org0d4334d)
-            -   [Code](#orgd152ec0)
-            -   [Text](#orgc2bff65)
-    -   [Archive](#org42a43e5)
-        -   [Second announcement: CFP](#orga13628c)
-        -   [First announcement: CFP](#orgcf40f0c)
--   [Supporting code](#org99196b5)
-
-
-<a id="orgd69d925"></a>
+    -   [After the conference](#org6ef0b13)
+        -   [Downsize the server](#org9ed5cfe):bandali:
+    -   [In case of](#org0bfc463)
+        -   [Stuck wiki](#org5c4ca7d)
+-   [Communications](#org0387287)
+    -   [Ask emacsconf-org-private for feedback on early submissions](#org856b2b2)
+    -   [Early speaker notification](#org70e70ae)
+        -   [Option A: Early speaker notification(?)](#orgd464557)
+        -   [Option B: Just letting them know it's been postponed](#org8bcfc63)
+    -   [Future](#org9ff84d9)
+        -   [Acceptance](#orgbce73fb)
+            -   [Code](#orgfb4c8f6)
+            -   [Template](#org03ca84e)
+        -   [Acknowledge pre-rec submission](#orgf0ed309)
+        -   [Captions for approval](#org54afe78)
+        -   [Speakers we haven't confirmed e-mail communications with](#org033826d)
+        -   [Speakers who are missing prerecs](#org92483a6)
+            -   [Template](#orgb8dd151)
+        -   [Check-in instructions](#org470b925)
+            -   [Code](#org93cf95f)
+            -   [E-mail for speakers who are planning to be at the conference](#orgf1d50db)
+            -   [E-mail for speakers who are not planning to be around, but who have sent us their prerecs](#org7623cd4)
+        -   [Last email before the conference](#orgea346fa)
+        -   [Thank you, next steps](#org4d44a5b)
+            -   [Code](#orgc7d21d2)
+            -   [Text](#org7cd8ed9)
+    -   [Archive](#orgc3d45ed)
+        -   [Second announcement: CFP](#org684f138)
+        -   [First announcement: CFP](#orgc1f4af5)
+-   [Supporting code](#orga923204)
+    -   [Publish this page](#org5c6caad)
+
+
+<a id="orgf13ef1a"></a>
 
 # Current tasks / status
 
@@ -132,12 +144,12 @@ Planned dates and phases:
 </table>
 
 
-<a id="org1cda62f"></a>
+<a id="org01559f4"></a>
 
-## TODO Organizers: Review the submissions in emacsconf-2022-private and e-mail emacsconf-org-private with any objections or comments by Sept 26 for possible [early speaker notification](#orgc53b127), Oct 7 for everything
+## TODO Organizers: Review the submissions in emacsconf-2022-private and e-mail emacsconf-org-private with any objections or comments by Sept 26 for possible [early speaker notification](#org70e70ae), Oct 7 for everything
 
 
-<a id="orge3c4fa5"></a>
+<a id="orgbc975e1"></a>
 
 ## TODO zaeph: Write preparation instructions and decide on deadline for prerecs     :zaeph:
 
@@ -151,51 +163,58 @@ 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
 
 
-<a id="orgb83f3a9"></a>
+<a id="org799ee8c"></a>
 
 ## WAITING sacha: add more submissions (CFP deadline Sept 30)     :sacha:
 
 -   Sacha: Add submissions to emacsconf-2022-private, draft 2-day schedule by Oct 10
 
 
-<a id="org28f2445"></a>
+<a id="org6d96852"></a>
 
 ## INPROGRESS sacha: copy things over from previous notebooks     :sacha:
 
 
-<a id="orgc95b399"></a>
+<a id="org68119c2"></a>
 
 ## TODO corwin: Double-check Sacha's timezone conversions for availability     :corwin:
 
 
-<a id="orgf4d32a6"></a>
+<a id="org239a833"></a>
 
 ## TODO corwin: Investigate streaming options, maybe OBS in the cloud     :corwin:
 
 -   Issue: zaeph was dropping frames
 
 
-<a id="orgd2f1e16"></a>
+<a id="org6b1d36c"></a>
 
-## TODO Prepare to export talk information to wiki     :sacha:
+## TODO ???: Figure out web-based file upload     :needsowner:
 
+Lesson learned from last year: "Since people kept running into ftp problems, we might want to set up a web-frontend next year to minimise problems."
 
-<a id="org7198967"></a>
+
+<a id="org398e1a2"></a>
+
+## TODO sacha: Prepare to export talk information to wiki     :sacha:
+
+
+<a id="orgf933fcb"></a>
 
 # Other tasks and processes
 
 
-<a id="org4883fdd"></a>
+<a id="org79a7f6f"></a>
 
 ## DONE Sacha: Organize volunteer information     :sacha:
 
 
-<a id="orga8a32f7"></a>
+<a id="org517c13d"></a>
 
 ## TODO bandali: Set up file upload     :bandali:
 
 
-<a id="org714183d"></a>
+<a id="orgce29ec3"></a>
 
 ## Once talks are approved
 
@@ -205,7 +224,7 @@ zaeph will also figure out the ffmpeg incantation for converting videos and the
 -   Confirm e-mail communication with all of the speakers
 
 
-<a id="org1acb3f4"></a>
+<a id="org903c8fd"></a>
 
 ## As prerecorded talks come in
 
@@ -216,25 +235,80 @@ zaeph will also figure out the ffmpeg incantation for converting videos and the
 -   Make sure all the links/resources mentioned are written down somewhere (web page and enriched captions for pasting into #emacsconf-accessible)
 
 
-<a id="orgc18b794"></a>
+<a id="orga47e81c"></a>
 
 ## When a talk is captioned
 
 -   
 
 
-<a id="org01680e3"></a>
+<a id="org5ccdbdc"></a>
 
 ## Other tasks before the conference
 
 -   Coordinate volunteer schedules so all the roles are covered
 
 
-<a id="orgd5c51fd"></a>
+<a id="org6a3c1a6"></a>
 
-## During the conference
+### Test stream setup
+
+[Stream](#orgecf9886)
+
+
+<a id="orgd5100da"></a>
+
+### Set up MPV for captions
+
+
+<a id="org18d8fdf"></a>
+
+### mpv profile
+
+Add the following profile to `~/.config/mpv/mpv.conf`:
 
--   Volunteer: Check in speaker for live Q&A, make sure audio/video works
+    # Uncomment this line to load the profile by default
+    # Otherwise, use `--profile=emacsconf-talks`
+    # profile=emacsconf-talks
+    
+    [emacsconf-talks]
+    # Positioning
+    video-zoom=-0.15
+    video-pan-y=-0.055
+    sub-use-margins=yes
+    sub-scale-by-window=yes
+    sub-pos=103
+    sub-margin-x=150
+    sub-margin-y=40
+    # Style
+    sub-font="Clear Sans Bold"
+    sub-color="1/0.82/0"
+    sub-blur=0.2
+    sub-scale=0.9
+    sub-font-size=40
+    sub-border-size=0
+    sub-border-color=0/1
+    sub-shadow-color=0/1
+    sub-shadow-offset=1.2
+    sub-ass-force-style=Kerning=yes
+    sub-ass-line-spacing=0
+
+(Thanks, zaeph)
+
+
+<a id="orgaa536d9"></a>
+
+### Font: Clear Sans
+
+Links:
+
+-   tar.gz with all fonts: [from zaeph's server](https://zaeph.tk/files/emacsconf/captions/fonts.tar.gz) (more convenient)
+-   WOFF from GitHub repo: [clear-sans/WOFF at main · intel/clear-sans](https://github.com/intel/clear-sans/tree/main/WOFF)
+
+
+<a id="org91fcddf"></a>
+
+## During the conference
 
 
 <a id="roles"></a>
@@ -278,6 +352,26 @@ Each role comprises different responsibilities.  A person may have multiple role
     -   Nice to have: Update the schedule to reflect changes throughout the day
 
 
+<a id="org5227ca6"></a>
+
+### Set up
+
+
+<a id="orgecf9886"></a>
+
+#### Stream
+
+
+##### Low-res stream
+
+Needs the `$main480p` environment variable set to something of the form `icecast://username:password@site:port/mount-point.webm`. Icecast configuration can be found on `live0` at `/etc/icecast2/icecast.xml`. It was okay to run this command directly on `live0` in 2020, since that kept the speed at roughly 1x.
+
+    while true; do ffmpeg -f webm -reconnect_at_eof 1 -reconnect_streamed 1  -re -i http://localhost:8000/main.webm -vf scale=854:480 -f webm -c:a copy -b:v 500k -maxrate 1M -bufsize 1M  -content_type video/webm -c:v libvpx  $main480p done
+
+
+##### Youtube
+
+
 <a id="each-talk"></a>
 
 ### During each talk
@@ -286,12 +380,34 @@ Each role comprises different responsibilities.  A person may have multiple role
 -   Volunteers: making sure questions get posted somewhere the speaker can see them
 
 
-<a id="org4096579"></a>
+<a id="org6ef0b13"></a>
+
+## After the conference
+
+
+<a id="org9ed5cfe"></a>
+
+### BLOCKED Downsize the server     :bandali:
+
+
+<a id="org0bfc463"></a>
+
+## In case of
+
+
+<a id="org5c4ca7d"></a>
+
+### Stuck wiki
+
+sudo -iu ikiwiki &#x2013; ikiwiki &#x2013;setup ~ikiwiki/emacsconf.setup
+
+
+<a id="org0387287"></a>
 
 # Communications
 
 
-<a id="org5dd0a6a"></a>
+<a id="org856b2b2"></a>
 
 ## TODO Ask emacsconf-org-private for feedback on early submissions
 
@@ -316,14 +432,14 @@ Thanks!
 Sacha
 
 
-<a id="orgc53b127"></a>
+<a id="org70e70ae"></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="orgc5b64d4"></a>
+<a id="orgd464557"></a>
 
 ### TODO Option A: Early speaker notification(?)
 
@@ -364,7 +480,7 @@ Thank you so much!
 Sacha
 
 
-<a id="orgba7026e"></a>
+<a id="org8bcfc63"></a>
 
 ### TODO Option B: Just letting them know it's been postponed
 
@@ -377,17 +493,17 @@ for your patience!
 Sacha
 
 
-<a id="orgcb9e091"></a>
+<a id="org9ff84d9"></a>
 
 ## Future
 
 
-<a id="orgf2be03d"></a>
+<a id="orgbce73fb"></a>
 
 ### Acceptance
 
 
-<a id="orga55575a"></a>
+<a id="orgfb4c8f6"></a>
 
 #### Code
 
@@ -445,7 +561,7 @@ Sacha
         (save-excursion (conf-replace-plist-in-string attrs (plist-get attrs :body)))))
 
 
-<a id="org20e76d3"></a>
+<a id="org03ca84e"></a>
 
 #### Template
 
@@ -476,7 +592,7 @@ EmacsConf organization team
 P.S. Please keep emacsconf-submit@gnu.org in To or Cc when replying.
 
 
-<a id="org55dec22"></a>
+<a id="orgf0ed309"></a>
 
 ### Acknowledge pre-rec submission
 
@@ -509,7 +625,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="orgd08cd41"></a>
+<a id="org54afe78"></a>
 
 ### Captions for approval
 
@@ -525,7 +641,7 @@ for your contribution!
 Sacha
 
 
-<a id="org8953f33"></a>
+<a id="org033826d"></a>
 
 ### Speakers we haven't confirmed e-mail communications with
 
@@ -570,7 +686,7 @@ Sacha Chua
 (Please use Reply to All to keep emacsconf-submit@gnu.org in the loop. Thanks!)
 
 
-<a id="orgad01f04"></a>
+<a id="org92483a6"></a>
 
 ### Speakers who are missing prerecs
 
@@ -591,7 +707,7 @@ Sacha Chua
                                          (conf-get-talk-info))))))
 
 
-<a id="org1059aa2"></a>
+<a id="orgb8dd151"></a>
 
 #### Template
 
@@ -647,7 +763,7 @@ stream for you. Hope to hear from you soon!
 Sacha
 
 
-<a id="orga199b1b"></a>
+<a id="org470b925"></a>
 
 ### Check-in instructions
 
@@ -665,7 +781,7 @@ Goals:
             -   They’re joined by the streamer and host.
 
 
-<a id="orgb2fdc34"></a>
+<a id="org93cf95f"></a>
 
 #### Code
 
@@ -722,7 +838,7 @@ Slightly more complex because of the conditionals
             (buffer-list)))
 
 
-<a id="org65ef9d7"></a>
+<a id="orgf1d50db"></a>
 
 #### E-mail for speakers who are planning to be at the conference
 
@@ -750,7 +866,7 @@ Looking forward to seeing you soon!
 Sacha
 
 
-<a id="org03714e2"></a>
+<a id="org7623cd4"></a>
 
 #### E-mail for speakers who are not planning to be around, but who have sent us their prerecs
 
@@ -772,7 +888,7 @@ Thank you again for being part of EmacsConf ${year}!
 Sacha
 
 
-<a id="org8ef5732"></a>
+<a id="orgea346fa"></a>
 
 ### Last email before the conference
 
@@ -791,12 +907,12 @@ Sacha
 > also be the time at which the talk will be made available on the same page.
 
 
-<a id="org0d4334d"></a>
+<a id="org4d44a5b"></a>
 
 ### Thank you, next steps
 
 
-<a id="orgd152ec0"></a>
+<a id="orgc7d21d2"></a>
 
 #### Code
 
@@ -828,7 +944,7 @@ Sacha
              (plist-get template :body)))))))
 
 
-<a id="orgc2bff65"></a>
+<a id="org7cd8ed9"></a>
 
 #### Text
 
@@ -858,12 +974,12 @@ Thanks again for speaking at EmacsConf!
 Sacha
 
 
-<a id="org42a43e5"></a>
+<a id="orgc3d45ed"></a>
 
 ## Archive
 
 
-<a id="orga13628c"></a>
+<a id="org684f138"></a>
 
 ### DONE Second announcement: CFP
 
@@ -894,7 +1010,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="orgcf40f0c"></a>
+<a id="orgc1f4af5"></a>
 
 ### DONE First announcement: CFP
 
@@ -924,10 +1040,15 @@ 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="org99196b5"></a>
+<a id="orga923204"></a>
 
 # Supporting code
 
+
+<a id="org5c6caad"></a>
+
+## Publish this page
+
     (defun emacsconf-org-publish-this-page ()
       (interactive)
       (org-md-export-to-markdown)
diff --git a/2022/organizers-notebook.org b/2022/organizers-notebook.org
index 6f7e0255..1dbb492a 100644
--- a/2022/organizers-notebook.org
+++ b/2022/organizers-notebook.org
@@ -1,4 +1,4 @@
-#+todo: TODO(t) INPROGRESS(i) WAITING(w) | DONE(d) CANCELLED(c)
+#+todo: TODO(t) INPROGRESS(i) WAITING(w) BLOCKED(b) | DONE(d) CANCELLED(c)
 #+OPTIONS: h:6 toc:nil
 #+PROPERTY: header-args    :results silent :exports code :tangle yes
 
@@ -50,7 +50,9 @@ DEADLINE: <2022-09-30 Fri>
 DEADLINE: <2022-11-20 Sun>
 
 - Issue: zaeph was dropping frames
-** TODO Prepare to export talk information to wiki  :sacha:
+** TODO ???: Figure out web-based file upload  :needsowner:
+Lesson learned from last year: "Since people kept running into ftp problems, we might want to set up a web-frontend next year to minimise problems."
+** TODO sacha: Prepare to export talk information to wiki            :sacha:
 DEADLINE: <2022-10-15 Sat>
 
 * Other tasks and processes
@@ -72,8 +74,47 @@ DEADLINE: <2022-10-28 Fri>
 
 ** Other tasks before the conference
 - Coordinate volunteer schedules so all the roles are covered
-** During the conference
-- Volunteer: Check in speaker for live Q&A, make sure audio/video works
+*** Test stream setup
+[[*Stream][Stream]]
+*** Set up MPV for captions
+
+*** mpv profile
+Add the following profile to ~~/.config/mpv/mpv.conf~:
+
+#+begin_src conf :eval no
+# Uncomment this line to load the profile by default
+# Otherwise, use `--profile=emacsconf-talks`
+# profile=emacsconf-talks
+
+[emacsconf-talks]
+# Positioning
+video-zoom=-0.15
+video-pan-y=-0.055
+sub-use-margins=yes
+sub-scale-by-window=yes
+sub-pos=103
+sub-margin-x=150
+sub-margin-y=40
+# Style
+sub-font="Clear Sans Bold"
+sub-color="1/0.82/0"
+sub-blur=0.2
+sub-scale=0.9
+sub-font-size=40
+sub-border-size=0
+sub-border-color=0/1
+sub-shadow-color=0/1
+sub-shadow-offset=1.2
+sub-ass-force-style=Kerning=yes
+sub-ass-line-spacing=0
+#+end_src
+
+(Thanks, zaeph)
+*** Font: Clear Sans
+Links:
+- tar.gz with all fonts: [[https://zaeph.tk/files/emacsconf/captions/fonts.tar.gz][from zaeph's server]] (more convenient)
+- WOFF from GitHub repo: [[https://github.com/intel/clear-sans/tree/main/WOFF][clear-sans/WOFF at main · intel/clear-sans]]
+** During the conference  
 *** Roles needed
 :PROPERTIES:
 :CUSTOM_ID: roles
@@ -113,12 +154,29 @@ Each role comprises different responsibilities.  A person may have multiple role
   - 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
+*** Set up
+**** Stream
+***** Low-res stream
+
+  Needs the =$main480p= environment variable set to something of the form =icecast://username:password@site:port/mount-point.webm=. Icecast configuration can be found on =live0= at =/etc/icecast2/icecast.xml=. It was okay to run this command directly on =live0= in 2020, since that kept the speed at roughly 1x.
+
+  #+begin_src sh :eval no
+   while true; do ffmpeg -f webm -reconnect_at_eof 1 -reconnect_streamed 1  -re -i http://localhost:8000/main.webm -vf scale=854:480 -f webm -c:a copy -b:v 500k -maxrate 1M -bufsize 1M  -content_type video/webm -c:v libvpx  $main480p done
+   #+end_src
+
+***** Youtube
 *** During each talk
 :PROPERTIES:
 :CUSTOM_ID: each-talk
 :END:
 - Volunteers: post links/resources/descriptions/captions (depending on your level of energy) to #emacsconf-accessible
 - Volunteers: making sure questions get posted somewhere the speaker can see them
+** After the conference
+*** BLOCKED Downsize the server  :bandali:
+** In case of
+*** Stuck wiki
+
+ sudo -iu ikiwiki -- ikiwiki --setup ~ikiwiki/emacsconf.setup
 * Communications
 ** TODO Ask emacsconf-org-private for feedback on early submissions
 
@@ -743,7 +801,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.
 
 * Supporting code
-
+** Publish this page
 #+begin_src emacs-lisp
 (defun emacsconf-org-publish-this-page ()
   (interactive)
-- 
cgit v1.2.3