summaryrefslogtreecommitdiffstats
path: root/2022
diff options
context:
space:
mode:
Diffstat (limited to '2022')
-rw-r--r--2022/organizers-notebook.md610
-rw-r--r--2022/organizers-notebook/index.org49
-rw-r--r--2022/watch/dev.md16
-rw-r--r--2022/watch/gen.md16
4 files changed, 446 insertions, 245 deletions
diff --git a/2022/organizers-notebook.md b/2022/organizers-notebook.md
index 4c9f0c3f..d0592cbb 100644
--- a/2022/organizers-notebook.md
+++ b/2022/organizers-notebook.md
@@ -26,12 +26,6 @@ Projects and tasks:
- [Make checkin and Q&A process slide](#qa):sachac:
- [Caption talks and make chapter headings](#caption)
- [Prepare intros for the hosts to read](#host-intros):sachac:
-- [Review the submissions for encoding issues](#review-submissions):zaeph:
-- [Plan in-case-of-emergency schedule for dropping back to one track after Saturday morning](#one-track):sachac:derisk:
-- [Create protocol for live Q&A](#live-protocol):zaeph:
-- [Update viewing instructions and watch pages](#write-viewing):sachac:
-- [Prepare to handle talk state changes](#publish-live):sachac:publish:
-- [Set up stream events on Toobnix and YouTube](#other-streams):sachac:stream:
- [Set up talks on Toobnix and YouTube](#video-platforms):sachac:yt:toobnix:
- [Do another run](#dry-run)
- [Turn off file upload service on media.emacsconf.org](#upload-off):sachac:infra:
@@ -110,7 +104,7 @@ Schedule by status: (gray: waiting, light yellow: processing, yellow: to assign,
<tr>
<td class="org-left"><span class="timestamp-wrapper"><span class="timestamp">[2022-10-23 Sun]</span></span></td>
-<td class="org-left"><a href="#upload">file upload</a>, <a href="#write-viewing">watch pages</a></td>
+<td class="org-left"><a href="#upload">file upload</a>, </td>
<td class="org-left"><a href="#mail-upload">file upload instructions</a>, backstage</td>
<td class="org-left"><a href="#volunteer-2022-10-23">training</a></td>
<td class="org-left">&#xa0;</td>
@@ -214,7 +208,7 @@ interests you!
<tr>
-<td class="org-left"><a href="#publish-live">talk pages</a></td>
+<td class="org-left">&#xa0;</td>
<td class="org-left">DONE S: link to stream, pad, IRC</td>
<td class="org-left"><b>S: link to prerec when live</b></td>
<td class="org-left">embed stream, pad, IRC, prerec</td>
@@ -294,7 +288,7 @@ interests you!
<tr>
-<td class="org-left"><a href="#write-viewing">watch page</a></td>
+<td class="org-left">&#xa0;</td>
<td class="org-left">tracks</td>
<td class="org-left">+ IRC</td>
<td class="org-left"><b>DONE S: + talk info</b>, maybe even current/recent/next</td>
@@ -318,7 +312,7 @@ interests you!
<tr>
-<td class="org-left"><a href="#irc-announce">IRC announcements</a></td>
+<td class="org-left">&#xa0;</td>
<td class="org-left">ERC commands</td>
<td class="org-left"><b>DONE S: hook-based</b></td>
<td class="org-left">timer-based</td>
@@ -391,12 +385,6 @@ interests you!
- [Make checkin and Q&A process slide](#qa):sachac:
- [Caption talks and make chapter headings](#caption)
- [Prepare intros for the hosts to read](#host-intros):sachac:
-- [Review the submissions for encoding issues](#review-submissions):zaeph:
-- [Plan in-case-of-emergency schedule for dropping back to one track after Saturday morning](#one-track):sachac:derisk:
-- [Create protocol for live Q&A](#live-protocol):zaeph:
-- [Update viewing instructions and watch pages](#write-viewing):sachac:
-- [Prepare to handle talk state changes](#publish-live):sachac:publish:
-- [Set up stream events on Toobnix and YouTube](#other-streams):sachac:stream:
- [Set up talks on Toobnix and YouTube](#video-platforms):sachac:yt:toobnix:
- [Do another run](#dry-run)
- [Turn off file upload service on media.emacsconf.org](#upload-off):sachac:infra:
@@ -469,171 +457,95 @@ can paste in <https://emacsconf.org/2022/qa/> for tips.
also in :INTRO\_NOTE: in conf.org so that we can plop it into the hyperlists.
-### TODO Write intros for all the other talks
-
-
-### DONE Set up Etherpad with the talks and see if we can involve the speakers and captioning volunteers :sachac:
-
-
-<a id="review-submissions"></a>
-
-## TODO Review the submissions for encoding issues :zaeph:
-
-so that we don&rsquo;t get surprised by missing or corrupted videos
-
-
-<a id="one-track"></a>
-
-## Plan in-case-of-emergency schedule for dropping back to one track after Saturday morning :sachac:derisk:
-
-We might be able to do it on a modular basis (Saturday afternoon, Sunday morning, or Sunday afternoon).
-We need a quick way to notify the affected speakers, and we should give them a heads-up as well.
-We also need a quick way to update the schedule.
-
-
-### STARTED Update conf.org and the wiki based on the selected emergency schedule
-
-
-### DONE Give speakers a heads-up regarding schedule tweaks and the potential for bigger schedule changes
-
-
-### TODO Draft the code for mailing all the affected speakers
-
-
-### Saturday afternoon
-
-- ![img](emergency-back-to-one-sat-pm.svg)
-
-
-### Sunday morning
-
-- ![img](emergency-back-to-one-sun-am.svg)
-
-
-### Sunday afternoon
-
-- ![img](emergency-back-to-one-sun-pm.svg)
-
-
-### TODO Get the emergency schedule sorted out so that we can easily switch to it
-
-It needs to be applied
-
-
-<a id="live-protocol"></a>
-
-## TODO Create protocol for live Q&A :zaeph:
-
-Objective:
-
-- Move smoothly from the talk to live-questions, and have adaptations based on how many questions the talk receives.
-
-Comments:
-
-- It would be nice to have a protocol with speakers to tell us that they’re uncomfortable with a question, just so that we can find a smooth way to skip it.
-
-
-<a id="write-viewing"></a>
-
-## TODO Update viewing instructions and watch pages :sachac:
-
-Extra stuff to consider adding:
-
-- Suggestions for mpv-filter to invert colourscape.
-
-Also add to watch page
-
-- <https://emacsconf.org/2022/watch/>
-- <https://emacsconf.org/2022/watch/gen/>
-- <https://emacsconf.org/2022/watch/dev/>
-
-
-### DONE Add Q&A distinction to SVG schedule
-
-
-### CANCELLED Make it easy to get to recent/current/next talk information while watching
-
-Maybe links to the current shift&rsquo;s pads
-
-
-### DONE Add pad to sched directive so that it will be linked when the pads are live
-
-
-### DONE Update <https://live.emacsconf.org/> as well
-
-Ansible or Emacs Lisp? Emacs Lisp
-control the status too
-
-also 2022/ and 2022/watch
-
-M-x emacsconf-stream-update-status-page
-
-
-<a id="publish-live"></a>
-
-## TODO Prepare to handle talk state changes :sachac:publish:
-
-
-### Talk states
-
-- **WAITING\_FOR\_PREREC(p):** waiting for the speaker to upload. Use this
- to nudge people weekly after the deadline, keeping PREREC\_INFO in
- mind for speakers who have told us they&rsquo;ll need extra time.
-- **TO\_PROCESS(a):** talk has been uploaded. zaeph will rename it,
- process it using ffmpeg/audacity, and then put it in
- media.emacsconf.org/2022/backstage along with any related files.
- - VIDEO\_FILE
- - VIDEO\_FILE\_SIZE
- - VIDEO\_DURATION
-- **TO\_AUTOCAP(y):** sachac will prepare automated captions for easier editing
- - YOUTUBE\_URL
- - TOOBNIX\_URL
-- **TO\_ASSIGN(a):** captioning volunteers can call dibs on this talk by
- e-mailing sacha@sachachua.com. talk will be listed on media.emacsconf.org/2022/backstage/index.html
-- **TO\_CAPTION(c):** captioning is in progress.
- - CAPTIONER property is set to the volunteer.
-- **TO\_STREAM(s):** talk is captioned and ready to play. Transcript directives are prepared so that the talk can be published with the transcript when it streams.
-- **PLAYING(m):** talk is being streamed live; announce in IRC and publish prerec and other resources on talk page
-- **CLOSED\_Q(q):** host is doing closed Q&A session with speaker; announce Q&A in IRC, friendly BBB page should refresh with waiting message
-- **OPEN\_Q(o):** host is doing open Q&A session with speaker, friendly BBB page should redirect to BBB; update IRC and Etherpad
-- **UNSTREAMED\_Q(u):** Q&A session with speaker continues off the stream because another talk has started playing; list on current page
-- **TO\_ARCHIVE:** Q&A session has ended; update talk page and current page. At some point, archive the pad and IRC onto the talk page.
-- **TO\_EXTRACT:** Extract the recording from the Q&A room
- - QA\_YOUTUBE
- - QA\_TOOBNIX
-- **TO\_FOLLOW\_UP:** Send questions to the speaker for follow-up
-- **DONE(x):** all done, yay!
-- **CANCELLED(!):** maybe next time
-
-Other things that aren&rsquo;t tracked by todo status:
-
-- **CHECK\_IN: t:** once the speaker has been checked into the BBB room or IRC
-
-
-### TODO Check process for posting prerecs to the talk page and media directory as soon as the talk is live :sachac:
-
-Move to public directory and create a link from the backstage directory
-Update the wiki page
-
-
-<a id="irc-announce"></a>
-
-### DONE Prepare to announce talks on IRC
-
-emacsconf-erc.el in the emacsconf-el repo
-
-- talks should be announced in their relevant track channel and in the main channel
- - video starting now
- - Q&A starting now & where
-- a small announcement might go into the hallway and emacsconf-org
-- announcement can include talk page, pad, IRC nick, pronouns
+### STARTED Write intros for all the other talks
+so that people on other platforms can come across EmacsConf
-<a id="other-streams"></a>
-## DONE Set up stream events on Toobnix and YouTube :sachac:stream:
+### TODO Record a few sample intros to test the workflow
-so that people on other platforms can come across EmacsConf
+ ;; (let ((subtitles (subed-parse-file "~/sync/Phone/intro-sample.vtt")))
+ ;; (insert
+ ;; (pp-to-string subtitles))
+
+ ;; )
+
+ (let* ((default-directory "~/sync/Phone")
+ (intros (quote
+ (("journalism"
+ ("00:00:00.000" 0 7559 "The next talk is called \"Emacs journalism" nil)
+ ("00:00:07.560" 7560 9879 "(or everything's a nail if you hit it with Emacs)\"," nil)
+ ("00:00:09.880" 9880 10800 "by Alfred Zanini." nil)
+ ("00:00:11.680" 11680 14510 "They will answer questions via BigBlueButton." nil)
+ ("00:00:14.520" 14520 16919 "You can join using the URL from the talk page" nil)
+ ("00:00:16.920" 16920 22119 "or ask questions through Etherpad or IRC." nil))
+ ("school"
+ ("00:00:27.840" 27840 29840 "The next talk is called \"Back to school with Emacs\"." nil)
+ ("00:00:34.240" 34240 36559 "Daniel Rosel demonstrates Lectorg," nil)
+ ("00:00:36.560" 36560 39280 "a package that he wrote to make note taking faster and simpler." nil)
+ ("00:00:40.040" 40040 44319 "Afterwards, he will handle questions over IRC." nil))
+ ("treesitter"
+ ("00:00:44.320" 44320 45319 "The next talk is called" nil)
+ ("00:00:45.320" 45320 47600 "\"Tree-sitter beyond syntax highlighting\"." nil)
+ ("00:00:48.360" 48360 51559 "In this talk, Abin Simon shares many ways in which" nil)
+ ("00:00:51.560" 51560 54360 "Tree-sitter can help improve your text editing workflow." nil)
+ ("00:00:59.800" 59800 62399 "Afterwards, he will answer questions via IRC." nil))
+ ("handwritten"
+ ("00:01:07.960" 67960 69079 "The next talk is called" nil)
+ ("00:01:09.080" 69080 71840 "\"How to incorporate handwritten notes into Emacs Orgmode\"." nil)
+ ("00:01:12.440" 72440 74639 "In this talk, Bala Ramadurai shares" nil)
+ ("00:01:14.640" 74640 76479 "how he takes handwritten notes" nil)
+ ("00:01:16.480" 76480 78080 "and includes them in his Org Mode files." nil)
+ ("00:01:27.520" 87520 93479 "Afterwards, he will handle questions over BigBlueButton." nil)
+ ("00:00:14.520" 14520 16919 "You can join using the URL from the talk page" nil)
+ ("00:00:16.920" 16920 22119 "or ask questions through Etherpad or IRC." nil))
+ ("lspbridge"
+ ("00:01:33.480" 93480 94479 "The next talk is called" nil)
+ ("00:01:34.480" 94480 97319 "\"lsp-bridge: complete asynchronous LSP client\"," nil)
+ ("00:01:37.320" 97320 99360 "by Andy Stewart and Matthew Zeng." nil)
+ ("00:01:40.360" 100360 102799 "They will answer questions via IRC" nil)
+ ("00:01:42.800" 102800 107439 "in the #emacsconf-dev channel." nil))
+ ("science"
+ ("00:01:47.440" 107440 108199 "The next talk is called" nil)
+ ("00:01:48.200" 108200 110359 "\"Writing and organizing literature notes" nil)
+ ("00:01:50.360" 110360 111480 "for scientific writing\"." nil)
+ ("00:02:01.920" 121920 124759 "In this talk, Vidianos Giannitsis shares" nil)
+ ("00:02:04.760" 124760 128399 "how he uses Org Roam, org-noter, and zetteldesk.el" nil)
+ ("00:02:08.400" 128400 130880 "to manage his literature notes and write articles." nil)
+ ("00:02:11.520" 131520 134120 "Afterwards, he will handle questions over BigBlueButton." nil)
+ ("00:00:14.520" 14520 16919 "You can join using the URL from the talk page" nil)
+ ("00:00:16.920" 16920 22119 "or ask questions through Etherpad or IRC." nil)))))
+ (commands (mapconcat
+ (lambda (intro)
+ (compile-media-get-command
+ `(;; (video
+ ;; (:source
+ ;; ,(expand-file-name (concat (car intro) ".png")
+ ;; (expand-file-name
+ ;; "in-between" emacsconf-stream-asset-dir))
+ ;; :duration
+ ;; ,(seq-reduce (lambda (prev sub)
+ ;; (+ prev (- (elt sub 2) (elt sub 1))))
+ ;; (cdr intro) 0)
+ ;; ))
+ (audio
+ ,@(mapcar
+ (lambda (sub)
+ (list :source "intro-sample.opus"
+ :start-ms (elt sub 1)
+ :stop-ms (elt sub 2)))
+ (cdr intro))))
+ (expand-file-name
+ (concat (car intro) ".opus")
+ (expand-file-name "intros"
+ emacsconf-stream-asset-dir))))
+ (seq-take intros 1)
+ "\n"))
+ )
+ (kill-new commands)
+ commands)
+
+mogrify -alpha off file.png
### DONE Write the restreaming shell scripts
@@ -691,6 +603,18 @@ Videos are shared under the terms of the Creative Commons Attribution-ShareAlike
International (CC BY-SA 4.0) license. Please observe the guidelines for conduct: <https://emacsconf.org/conduct/>
+### DONE Test start restream on a timer :emacsconf:
+
+ssh live0.emacsconf.org
+confirm that Toobnix test stream isn&rsquo;t playing
+
+echo &rsquo;/bin/bash /home/orga/screen-restream-test-toobnix.sh&rsquo; | at &rsquo;now + 1 minute&rsquo;
+echo &rsquo;/bin/bash /home/orga/screen-restream-test-toobnix.sh&rsquo; | at 8:30
+
+
+### DONE Add toobnix url on schedule
+
+
<a id="video-platforms"></a>
## TODO Set up talks on Toobnix and YouTube :sachac:yt:toobnix:
@@ -961,13 +885,13 @@ Try them in an Etherpad
### DONE Try writing it to an Etherpad
-### TODO Revisit the hyperlists to make sure they make sense
+### DONE Revisit the hyperlists to make sure they make sense
### DONE Add intro notes and specific talk notes to the hyperlist
-### TODO Make a hyperlist for checking people in for easier copying and pasting
+### DONE Make a hyperlist for checking people in for easier copying and pasting
### TODO Send FlowyCoder hyperlist for checking people in
@@ -988,25 +912,67 @@ Pattern:
<https://media.emacsconf.org/2022/backstage/current/room/slug>
-### TODO Regenerate hyperlist if sched changes
+### CANCELLED Regenerate hyperlist if sched changes
+
+
+### CANCELLED Put shell commands on a separate line so they&rsquo;re easy to select and run
<a id="rec-intro"></a>
## TODO Record intro/outro for day-1 and day-2 :zaeph:
-- Opening remarks
- - Schedule overview
+- Opening remarks Sat
+ - Welcome to EmacsConf 2022
+ - What&rsquo;s new at EmacsConf?
+ - This year, we have two tracks: General and Development.
+ - Streaming with open captions thanks to speakers and volunteers
+ - Prerecorded videos will be published as soon as possible (aiming
+ for publishing them as the talks stream), so you can check the
+ talk page for the video and the transcript a few minutes after the
+ talk starts.
- How to participate
-
+ - You can watch at live.emacsconf.org using free and open source software.
+ - Select the stream you&rsquo;re interested in.
+ - There are quick shortcuts on the watch page so that you can
+ open the Etherpad, Q&A, or IRC.
+ - We recommend adding notes asking questions in the Etherpad
+ for the talk. That way, it&rsquo;s easier to organize the
+ questions and answers, and the host can read questions out
+ to the speaker as needed.
+ - You can also use the track-specific IRC channels
+ (#emacsconf-gen and #emacsconf-dev).
+ - You can look at the schedule to see what else is going on.
+ - IRC:
+ - You can use #emacsconf for hallway conversations.
+ - If you need to reach conference organizers, you can use the
+ \#emacsconf-org IRC channel or e-mail sacha@sachachua.com .
+ - General feedback in pad.emacsconf.org/2022
- Closing remarks Sat
- Thanks
+ - Thank you to all the speakers and participants.
+ - This year&rsquo;s conference will be hosted by zaeph, bandali, and
+ vetrivln, and streamed by corwin, bandali, and jman.
+ - Thanks to our captioning volunteers: sachac, bhavin192, Tom
+ Purl, Hannah Miller, triko, and anush, and also to the speakers
+ who captioned their own talks. Thanks to quiliro for translating
+ the meetups talk into Spanish. and to Akshay Gaikwad for
+ contributing some designs.
+ - Thanks to Fosshost for the BigBlueButton server and the media
+ server, and to the Free Software Foundation for the mailing
+ lists. Thanks to Ry P for the server that we&rsquo;re using for OBS
+ streaming and for processing videos.
- Come back tomorrow
- Closing remarks Sun
- Thanks
-
+### DONE Review opening remarks from last year
+
+<https://emacsconf.org/2021/talks/day1-open/>
+
+
<a id="link-pages"></a>
## TODO Add category tags and possibly links between talks across 2022 and all previous years :quiliro:wiki:
@@ -1031,6 +997,11 @@ Pattern:
### TODO Add start and end attributes to the brief stuff for possible JS/CSS
+### TODO Consider putting the subtitles outside the video <https://stackoverflow.com/questions/61826237/is-there-a-simple-way-to-position-subtitles-below-the-hlml5-video> :emacsconf:
+
+<file:///home/sacha/sync/orgzly/Inbox.md>
+
+
<a id="ansible"></a>
## TODO Build up the ansible playbook :sachac:opal:
@@ -1193,6 +1164,12 @@ if we can get the anchor plugin
`emacsconf-pad-export-initial-content-for-all-talks`
+### SOMEDAY Cache pad times in a json or el :emacsconf:
+
+
+### DONE Confirm that we can use the time slider to move back in time
+
+
<a id="maybe-projects"></a>
# Ideas for next year :nextyear:
@@ -1327,13 +1304,16 @@ That might be interesting for reviewing text recognition output
<https://github.com/e8johan/virtual-conf-resources>
+## TODO Consider hosting reveal.js for EmacsConf
+
+
<a id="decisions"></a>
# Things to figure out / decisions to make
- [How do we want to coordinate during the conference itself?](#coordination)
- [How do we want to make the full schedule more manageable?](#sched-decision)
-- [Do we want to skip the closed Q&A and go straight to open?](#org67ad8c0)
+- [Do we want to skip the closed Q&A and go straight to open?](#org8b961f2)
- [How much do we want to enrich the wiki with JS?](#wiki-design)
- [How do we want to make better use of Etherpad?](#pad-decision)
- [Can we nudge people to ask IRC questions in a way that will make it easier for us to follow them?](#irc-markers)
@@ -1412,7 +1392,7 @@ Shifts will be Sat AM, Sat PM, Sun AM, or Sun PM per track. People can take mult
- Better for the viewers and the volunteers
-<a id="org67ad8c0"></a>
+<a id="org8b961f2"></a>
## Do we want to skip the closed Q&A and go straight to open?
@@ -1775,7 +1755,7 @@ AM: 9-12 PM EST, PM: 1-5 PM EST (plus a little extra for setup/transition)
Saturday Dec 3
-<table id="org09eb16f" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
+<table id="orgf9f0de2" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
<colgroup>
@@ -1855,7 +1835,7 @@ publicvoit - pad until 4pm on Sat, until 2pm on Sun
Sunday Dec 4
-<table id="orga7f9477" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
+<table id="org8f37437" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
<colgroup>
@@ -2421,16 +2401,15 @@ If you’ve got any question on the process, you canget in touch with me (zaeph)
### TODO Update ansible configuration :sachac:
-in prod-vars.yml
+Clean up the media root
-media\_protect\_root: true
-icecast\_save\_dump: false
+in all.yml
-Clean up the media root
+test\_mode: false
then
-ansible-playbook -i inventory.yml prod-playbook.yml &#x2013;tags media,stream
+ansible-playbook -i inventory.yml prod-playbook.yml &#x2013;tags media,stream,publish
### Test stream setup
@@ -2521,6 +2500,8 @@ Links:
EmacsConf 2021 starting now: <https://emacsconf.org/2021/>
+<a id="other-streams"></a>
+
##### Stream
@@ -2654,7 +2635,7 @@ Exception: [CHECK is unavailable](#check-gone)
- wiki page for talk
-#### TODO Make sure VTTs only get published when they&rsquo;re edited
+#### DONE Make sure VTTs only get published when they&rsquo;re edited
##### publishing
@@ -2669,7 +2650,13 @@ Exception: [CHECK is unavailable](#check-gone)
#### DONE Fix mapconcat error in updating task status
-#### TODO Add intros to wiki pages
+#### DONE Add intros to wiki pages
+
+
+#### SOMEDAY Cache video data - audio processed
+
+
+#### DONE Cache video data - edited captions
### Handle Q&A
@@ -2896,7 +2883,7 @@ Probably focus on grabbing the audio first and seeing what&rsquo;s worth keeping
Make a table of the form
-<table id="orgf01e407" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
+<table id="org37c2938" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
<colgroup>
@@ -3003,14 +2990,17 @@ See <https://pad.emacsconf.org/premortem> for more.
- [Conduct guidelines issue](#conduct)
- [CHECK is unavailable](#check-gone)
- [HOST is unavailable](#host-gone)
-- [Technical issues during a live presentation](#live-issues)
-- [Big technical issues with streaming](#stream-issues)
+- [Technical issues during a live presentation](#live-issues):stream:
+- [Big technical issues with streaming](#stream-issues):stream:
- [live0 can&rsquo;t handle the load or is close to network transfer limit](#network)
- [People have a hard time seeing dark-mode presentations (or light-mode)](#dark-mode)
-- [Schedule update](#update-sched)
-- [New talk](#new-talk)
+- [Schedule update](#update-sched):sched:
+- [New talk](#new-talk):sched:
- [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)
+- [Renamed talk](#renamed)
+- [Video playing error, need to play with mpv manually](#play-mpv-manually):stream:
+- [Need to restart 480p stream](#restart-480p)
<a id="common"></a>
@@ -3127,7 +3117,7 @@ sudo -iu ikiwiki &#x2013; ikiwiki &#x2013;setup ~ikiwiki/emacsconf.setup
<a id="live-issues"></a>
-## Technical issues during a live presentation
+## Technical issues during a live presentation :stream:
- HOST tries to contact the speaker
- [? back on track]
@@ -3142,10 +3132,12 @@ sudo -iu ikiwiki &#x2013; ikiwiki &#x2013;setup ~ikiwiki/emacsconf.setup
<a id="stream-issues"></a>
-## Big technical issues with streaming
+## Big technical issues with streaming :stream:
+
+<file://ssh:orga@front0.emacsconf.org:/var/www/status.emacsconf.org/index.html>
- HOST notifies #emacsconf and #emacsconf-org and adds a note at the top of the ${pad}.
-- HOST updates the 2021.md wiki page
+- HOST updates the 2022.md wiki page
- CHECK publishes prerecordings
- media.emacsconf.org
- wiki
@@ -3175,7 +3167,7 @@ mpv &#x2013;vf=negate $url
<a id="update-sched"></a>
-## Schedule update
+## Schedule update :sched:
- Test the new schedule using the blocks near the beginning of conf.org
- emacsconf-publish-update-schedule
@@ -3184,7 +3176,7 @@ mpv &#x2013;vf=negate $url
<a id="new-talk"></a>
-## New talk
+## New talk :sched:
- Create entry in conf.org
- Fit it into the schedule using the emacsconf-schedule-plan variable
@@ -3201,10 +3193,18 @@ mpv &#x2013;vf=negate $url
export SLUG=the ID of the talk
+- [TO\_STREAM -> PLAYING](#org855baa1):stream:
- [CLOSED\_Q -> OPEN\_Q](#open)
- [OPEN\_Q -> TO\_ARCHIVE](#archive)
+<a id="org855baa1"></a>
+
+### TO\_STREAM -> PLAYING :stream:
+
+play slug (ex: play journalism)
+
+
<a id="open"></a>
### CLOSED\_Q -> OPEN\_Q
@@ -3259,6 +3259,39 @@ STATE=before; ssh orga@media.emacsconf.org &ldquo;cp *home/orga/backstage/assets
- MPV goes to MPV sink, browser goes to recording sink, FFMPEG takes in recording monitor
+<a id="renamed"></a>
+
+## Renamed talk
+
+1. Change conf.org heading.
+2. Change the video slug property.
+3. Rename any existing files in the backstage area.
+4. emacsconf-publish-backstage-index
+5. Change the title and heading on the wiki page.
+6. Update the schedule (emacsconf-publish-schedule).
+7. Update info pages (emacsconf-publish-before-pages).
+8. Update the watch pages.
+
+
+<a id="play-mpv-manually"></a>
+
+## Video playing error, need to play with mpv manually :stream:
+
+You can skip the intro and play a video by specifying the filename, like this:
+play ~/stream/emacsconf-2022-journalism-\*
+
+
+<a id="restart-480p"></a>
+
+## Need to restart 480p stream
+
+ssh live
+
+/usr/local/bin/emacsconf-lowres-dev-on-connect
+or
+/usr/local/bin/emacsconf-lowres-gen-on-connect
+
+
<a id="archive"></a>
# Task archive
@@ -3401,6 +3434,14 @@ all talks
Slightly annoying to do with JS/CSS because I want it to fall back to an interleaved schedule on small screens, so we would probably need to duplicate the elements and then use media queries.
+### SOMEDAY Add caption icon to schedule :emacsconf:
+
+so that it&rsquo;s easier for people to see which talks are accessible
+
+
+### DONE Add captioned label in talk index
+
+
## DONE Process confirmations as we receive them :sachac:zaeph:
- Reply to the speaker and Cc -submit to confirm the confirmation. Something like &ldquo;Confirming your confirmation, no reply needed to this one. Thank you!&rdquo;
@@ -3789,6 +3830,11 @@ Sacha
It would be nice to have track-specific icals as well.
+### DONE Check icals, create org schedule
+
+<https://www.reddit.com/r/emacs/comments/yilmhv/emacsconf_2022_dec_3_4_schedule/ixgt1wr?utm_medium=android_app&utm_source=share&context=3>
+
+
<a id="upload"></a>
## DONE Figure out web-based file upload :needsowner:sachac:ansible:
@@ -4615,11 +4661,15 @@ Overlay considerations:
### DONE Generate talk banners :sachac:
![img](https://gitlab.com/akshay196/emacsconf-artwork/-/blob/main/2022/talk-banner/sample.svg)
+<https://gitlab.com/akshay196/emacsconf-artwork/-/blob/main/2022/overlays/src/>
### TODO Make a list of different things to plug during commercial breaks, like Mastodon :sachac:
+### CANCELLED Create a version of in-between that we can use for Q&A, since it&rsquo;s no longer &ldquo;Coming Next&rdquo;
+
+
## DONE Find volunteers for tech-checks :zaeph:
@@ -4800,13 +4850,13 @@ Dry run checklist:
- Verify with MPV:
- mpv https://live0.emacsconf.org/emacsconf/gen.webm
- mpv https://live0.emacsconf.org/emacsconf/dev.webm
+ mpv https://live0.emacsconf.org/gen.webm
+ mpv https://live0.emacsconf.org/dev.webm
- With luck, the 480p streams will be up automatically as well
- mpv https://live0.emacsconf.org/emacsconf/gen-480p.webm
- mpv https://live0.emacsconf.org/emacsconf/dev-480p.webm
+ mpv https://live0.emacsconf.org/gen-480p.webm
+ mpv https://live0.emacsconf.org/dev-480p.webm
### Connecting to VNC (option B)
@@ -4836,11 +4886,11 @@ Dry run checklist:
7. Verify with MPV on your local system:
- mpv https://live0.emacsconf.org/emacsconf/$TRACK.webm &
+ mpv https://live0.emacsconf.org/$TRACK.webm &
8. With luck, the 480p streams will be up automatically as well. On your local system:
- mpv https://live0.emacsconf.org/emacsconf/$TRACK-480p.webm &
+ mpv https://live0.emacsconf.org/$TRACK-480p.webm &
9. Play a video. It should display the video and update the overlays. If you need to update the overlays manually, you can copy files from `/data/emacsconf/overlays` onto `$HOME/other.png` and `$HOME/video.png`.
@@ -5084,10 +5134,12 @@ so that the streamer can adjust volume offscreen?
- <https://obsproject.com/forum/threads/run-obs-on-vm-in-the-cloud.122543/>
-### TODO Automate in-between display?
+### DONE Automate in-between display?
[Think about what to do with schedule gaps due to cancelled talks](file:///home/sacha/proj/emacsconf/wiki/2022/organizers-notebook/index.md)
+emacsconf-stream-display-clock-and-countdown
+
### DONE Separate mumble audio so that panic button can still bring in our audio
@@ -5102,7 +5154,18 @@ Mumble?
<file:///home/sacha/proj/emacsconf/lisp/emacsconf-stream.el>
-### TODO Add panic button to OBS settings
+### DONE Add panic button to OBS settings
+
+Ctrl-Shift-M?
+
+
+### DONE Add background music to server :emacsconf:
+
+zaeph suggests using shoshin&rsquo;s music
+
+if ! screen -list | grep -q background; then
+ screen -S track-mpv ~/stream/background.wav &
+fi
<a id="caption-workflow"></a>
@@ -5312,6 +5375,11 @@ Sacha Chua
<https://pypi.org/project/jiwer/>
+### SOMEDAY Think about flow for YouTube captions
+
+are they at the right length?
+
+
## 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
@@ -5548,6 +5616,122 @@ Sacha
### CANCELLED Draft e-mail to send speakers who may need to do it live
+### TODO Make sure IRC talks get BBB checkin information if they need to do it live
+
+survey, orgyear, lspbridge, eev, python
+
+
+### TODO Make sure IRC talks get BBB checkin information if they need to do it live
+
+survey, orgyear, lspbridge, eev, python
+
+
+<a id="one-track"></a>
+
+## Plan in-case-of-emergency schedule for dropping back to one track after Saturday morning :sachac:derisk:
+
+We might be able to do it on a modular basis (Saturday afternoon, Sunday morning, or Sunday afternoon).
+We need a quick way to notify the affected speakers, and we should give them a heads-up as well.
+We also need a quick way to update the schedule.
+
+
+### DONE Update conf.org and the wiki based on the selected emergency schedule
+
+
+### DONE Give speakers a heads-up regarding schedule tweaks and the potential for bigger schedule changes
+
+
+### DONE Draft the code for mailing all the affected speakers
+
+
+### Saturday afternoon
+
+- ![img](emergency-back-to-one-sat-pm.svg)
+
+
+### Sunday morning
+
+- ![img](emergency-back-to-one-sun-am.svg)
+
+
+### Sunday afternoon
+
+- ![img](emergency-back-to-one-sun-pm.svg)
+
+
+### DONE Get the emergency schedule sorted out so that we can easily switch to it
+
+To change, set emacsconf-schedule-apply to t
+M-x emacsconf-update-schedule
+Commit the wiki and push it
+Draft the e-mail for emergency schedule
+
+
+### DONE Draft e-mail for emergency schedule
+
+ (defun emacsconf-mail-emergency-update (group &optional template)
+ "Send emergency schedule update.
+ GROUP is (email . (talk talk))"
+ (interactive (list (emacsconf-mail-complete-email-group)))
+ (setq template (or template (emacsconf-mail-merge-get-template "emergency")))
+ (emacsconf-mail-prepare
+ template
+ (car group)
+ (list
+ :urls (mapconcat (lambda (o) (plist-get o :absolute-url)) (cdr group) " , ")
+ :emergency emacsconf-emergency-contact
+ :conf-name emacsconf-name
+ :year emacsconf-year
+ :email (plist-get (cadr group) :email)
+ :plural (if (= (length (cdr group)) 1) "" "s")
+ :schedule
+ (mapconcat
+ (lambda (o)
+ (concat "Talk: " (plist-get o :title) "\n"
+ "URL: " (plist-get o :absolute-url) "\n"
+ "New start of talk: "
+ (format-time-string
+ "%b %-e %-I:%M %#p %Z"
+ (plist-get o :start-time)
+ emacsconf-timezone)
+ "\n"
+ (if (string= emacsconf-timezone (plist-get o :timezone))
+ ""
+ (concat
+ "which is the same as "
+ (format-time-string
+ "%b %-e %-I:%M %#p %Z"
+ (plist-get o :start-time)
+ (plist-get o :timezone))))))
+ (cdr group)
+ "\n\n"))))
+
+
+#### Template
+
+Sorry about the last-minute change. We needed to update the schedule
+because two tracks turned out to be too much for us to handle at the
+moment. The new schedule will play all the talks on one stream, and
+the other stream will handle Q&A.
+
+Here&rsquo;s a copy of the updated schedule for your convenience:
+${schedule}
+
+Please check in at least 30 minutes before your talk (or 60 minutes if
+you&rsquo;re going to do it live). <https://emacsconf.org/2022/speakers/> has
+more details.
+
+You can also find the new schedule at the page URL${plural} above.
+Please let me know if you can&rsquo;t make it. We can collect the questions
+and you can follow up afterwards. You can reach me by e-mail or in
+\#emacsconf-org on IRC, or with this emergency contact info:
+${emergency}
+
+Thank you for your patience!
+
+Sacha
+
+
<a id="comms"></a>
# Communications
@@ -5729,7 +5913,7 @@ Sacha Chua
emacsconf-cache-dir))
(captioner-info
(with-current-buffer (find-file-noselect emacsconf-org-file)
- (org-entry-properties (org-find-property "CUSTOM_ID" (plist-get talk :captioner))))))
+ (org-entry-properties (org-find-property "CUSTOM_ID" (plist-get talk :captioner))))))
(emacsconf-mail-prepare
(emacsconf-mail-merge-get-template "captions")
(plist-get talk :email)
diff --git a/2022/organizers-notebook/index.org b/2022/organizers-notebook/index.org
index be87530b..c5b93a35 100644
--- a/2022/organizers-notebook/index.org
+++ b/2022/organizers-notebook/index.org
@@ -194,6 +194,11 @@ CLOCK: [2022-11-24 Thu 21:34]--[2022-11-25 Fri 10:57] => 13:23
:END:
so that people on other platforms can come across EmacsConf
+*** DONE Record a few sample intros to test the workflow
+CLOSED: [2022-11-26 Sat 15:34]
+
+mogrify -alpha off file.png
+
*** DONE [#A] Write the restreaming shell scripts
CLOSED: [2022-11-21 Mon 14:49] SCHEDULED: <2022-11-24 Thu>
:PROPERTIES:
@@ -1866,16 +1871,16 @@ If you’ve got any question on the process, you canget in touch with me (zaeph)
- Coordinate volunteer schedules so all the roles are covered
*** TODO [#A] Update ansible configuration :sachac:
SCHEDULED: <2022-12-01 Thu>
-in prod-vars.yml
+Clean up the media root
-media_protect_root: true
-icecast_save_dump: false
+in all.yml
+
+test_mode: false
-Clean up the media root
then
-ansible-playbook -i inventory.yml prod-playbook.yml --tags media,stream
+ansible-playbook -i inventory.yml prod-playbook.yml --tags media,stream,publish
*** Test stream setup
:PROPERTIES:
@@ -2558,7 +2563,7 @@ Options:
- STREAM will do the hosting.
-** Technical issues during a live presentation
+** Technical issues during a live presentation :stream:
:PROPERTIES:
:CUSTOM_ID: live-issues
:END:
@@ -2573,13 +2578,15 @@ Options:
- [? can't resume]: HOST acknowledges technical issues and says we may
be able to follow up after the conference
-** Big technical issues with streaming
+** Big technical issues with streaming :stream:
:PROPERTIES:
:CUSTOM_ID: stream-issues
:END:
+[[file:/ssh:orga@front0.emacsconf.org:/var/www/status.emacsconf.org/index.html]]
+
- HOST notifies #emacsconf and #emacsconf-org and adds a note at the top of the ${pad}.
-- HOST updates the 2021.md wiki page
+- HOST updates the 2022.md wiki page
- CHECK publishes prerecordings
- media.emacsconf.org
- wiki
@@ -2604,7 +2611,7 @@ Options:
:END:
mpv --vf=negate $url
-** Schedule update
+** Schedule update :sched:
:PROPERTIES:
:CUSTOM_ID: update-sched
:END:
@@ -2613,7 +2620,7 @@ mpv --vf=negate $url
- emacsconf-publish-update-schedule
- E-mail affected speakers - see emacsconf-mail-schedule-update function
-** New talk
+** New talk :sched:
:PROPERTIES:
:CUSTOM_ID: new-talk
:END:
@@ -2632,7 +2639,9 @@ mpv --vf=negate $url
export SLUG=the ID of the talk
#+TOC: headlines 1 local
+*** TO_STREAM -> PLAYING :stream:
+play slug (ex: play journalism)
*** CLOSED_Q -> OPEN_Q
:PROPERTIES:
:CUSTOM_ID: open
@@ -2699,6 +2708,14 @@ STATE=before; ssh orga@media.emacsconf.org "cp /home/orga/backstage/assets/redir
6. Update the schedule (emacsconf-publish-schedule).
7. Update info pages (emacsconf-publish-before-pages).
8. Update the watch pages.
+** Video playing error, need to play with mpv manually :stream:
+:PROPERTIES:
+:CUSTOM_ID: play-mpv-manually
+:END:
+
+You can skip the intro and play a video by specifying the filename, like this:
+play ~/stream/emacsconf-2022-journalism-*
+
** Need to restart 480p stream
:PROPERTIES:
:CUSTOM_ID: restart-480p
@@ -4259,14 +4276,14 @@ Dry run checklist:
- Verify with MPV:
#+begin_example
- mpv https://live0.emacsconf.org/emacsconf/gen.webm
- mpv https://live0.emacsconf.org/emacsconf/dev.webm
+ mpv https://live0.emacsconf.org/gen.webm
+ mpv https://live0.emacsconf.org/dev.webm
#+end_example
- With luck, the 480p streams will be up automatically as well
#+begin_example
- mpv https://live0.emacsconf.org/emacsconf/gen-480p.webm
- mpv https://live0.emacsconf.org/emacsconf/dev-480p.webm
+ mpv https://live0.emacsconf.org/gen-480p.webm
+ mpv https://live0.emacsconf.org/dev-480p.webm
#+end_example
*** Connecting to VNC (option B)
@@ -4299,12 +4316,12 @@ Dry run checklist:
7. Verify with MPV on your local system:
#+begin_example
- mpv https://live0.emacsconf.org/emacsconf/$TRACK.webm &
+ mpv https://live0.emacsconf.org/$TRACK.webm &
#+end_example
8. With luck, the 480p streams will be up automatically as well. On your local system:
#+begin_example
- mpv https://live0.emacsconf.org/emacsconf/$TRACK-480p.webm &
+ mpv https://live0.emacsconf.org/$TRACK-480p.webm &
#+end_example
9. Play a video. It should display the video and update the overlays. If you need to update the overlays manually, you can copy files from ~/data/emacsconf/overlays~ onto ~$HOME/other.png~ and ~$HOME/video.png~.
diff --git a/2022/watch/dev.md b/2022/watch/dev.md
index 8cbf08cc..c0057ca4 100644
--- a/2022/watch/dev.md
+++ b/2022/watch/dev.md
@@ -7,9 +7,9 @@
<hr size="1">
<div><a name="watch"></a><strong>Watch</strong> - <a href="#links">Pad and Q&amp;A links</a> - <a href="#chat">Chat</a> - <a href="#sched">Schedule</a> | Tracks: <a href="/2022/watch/gen/">General</a> - <strong>Development</strong></div>
-<video controls><source src="https://live0.emacsconf.org/emacsconf/dev.webm" type="video/webm" /></video>
-<div>Alternatively, load <a href="https://live0.emacsconf.org/emacsconf/dev.webm">https://live0.emacsconf.org/emacsconf/dev.webm</a> or <a href="https://live0.emacsconf.org/emacsconf/dev-480p.webm">https://live0.emacsconf.org/emacsconf/dev-480p.webm</a> (low-res) in a streaming media player such as MPV.</div>
-<hr size="1"><div><a name="links"></a><a href="#watch">Watch</a> - <strong>Pad and Q&amp;A links</strong> - <a href="#chat">Chat</a> - <a href="#sched">Schedule</a> | Tracks: <a href="/2022/watch/gen/">General</a> - <strong>Development</strong></div><div><span><a href="https://emacsconf.org/2022/talks/treesitter">treesitter</a> (<a class="pad-link" href="https://pad.emacsconf.org/2022-treesitter">pad</a>, <a href="https://chat.emacsconf.org/?join=emacsconf,emacsconf-dev">emacsconf-dev, speaker nick: meain</a>)</span> - <span><a href="https://emacsconf.org/2022/talks/lspbridge">lspbridge</a> (<a class="pad-link" href="https://pad.emacsconf.org/2022-lspbridge">pad</a>, <a href="https://chat.emacsconf.org/?join=emacsconf,emacsconf-dev">emacsconf-dev, speaker nick: manateelazycat</a>)</span> - <span><a href="https://emacsconf.org/2022/talks/asmblox">asmblox</a> (<a class="pad-link" href="https://pad.emacsconf.org/2022-asmblox">pad</a>, <a href="https://emacsconf.org/current/asmblox/room/">BBB</a>)</span> - <span><a href="https://emacsconf.org/2022/talks/wayland">wayland</a> (<a class="pad-link" href="https://pad.emacsconf.org/2022-wayland">pad</a>, <a href="https://emacsconf.org/current/wayland/room/">BBB</a>)</span> - <span><a href="https://emacsconf.org/2022/talks/sqlite">sqlite</a> (<a class="pad-link" href="https://pad.emacsconf.org/2022-sqlite">pad</a>, <a href="https://emacsconf.org/current/sqlite/room/">BBB</a>)</span> - <span><a href="https://emacsconf.org/2022/talks/mail">mail</a> (<a class="pad-link" href="https://pad.emacsconf.org/2022-mail">pad</a>, <a href="https://emacsconf.org/current/mail/room/">BBB</a>)</span> - <span><a href="https://emacsconf.org/2022/talks/maint">maint</a> (<a class="pad-link" href="https://pad.emacsconf.org/2022-maint">pad</a>, <a href="https://emacsconf.org/current/maint/room/">BBB</a>)</span> - <span><a href="https://emacsconf.org/2022/talks/eev">eev</a> (<a class="pad-link" href="https://pad.emacsconf.org/2022-eev">pad</a>, <a href="https://chat.emacsconf.org/?join=emacsconf,emacsconf-dev">emacsconf-dev</a>)</span> - <span><a href="https://emacsconf.org/2022/talks/python">python</a> (<a class="pad-link" href="https://pad.emacsconf.org/2022-python">pad</a>, <a href="https://chat.emacsconf.org/?join=emacsconf,emacsconf-dev">emacsconf-dev</a>)</span> - <span><a href="https://emacsconf.org/2022/talks/haskell">haskell</a> (<a class="pad-link" href="https://pad.emacsconf.org/2022-haskell">pad</a>, <a href="https://emacsconf.org/current/haskell/room/">BBB</a>)</span> - <span><a href="https://emacsconf.org/2022/talks/rde">rde</a> (<a class="pad-link" href="https://pad.emacsconf.org/2022-rde">pad</a>, <a href="https://emacsconf.org/current/rde/room/">BBB</a>)</span> - <span><a href="https://emacsconf.org/2022/talks/justl">justl</a> (<a class="pad-link" href="https://pad.emacsconf.org/2022-justl">pad</a>, <a href="https://chat.emacsconf.org/?join=emacsconf,emacsconf-dev">emacsconf-dev</a>)</span> - <span><a href="https://emacsconf.org/2022/talks/rms">rms</a> (<a class="pad-link" href="https://pad.emacsconf.org/2022-rms">pad</a>, <a href="https://chat.emacsconf.org/?join=emacsconf,emacsconf-dev">Moderated via Mumble, ask questions via pad or IRC</a>)</span> - <span><a href="https://emacsconf.org/2022/talks/detached">detached</a> (<a class="pad-link" href="https://pad.emacsconf.org/2022-detached">pad</a>, <a href="https://emacsconf.org/current/detached/room/">BBB</a>)</span> - <span><a href="https://emacsconf.org/2022/talks/eshell">eshell</a> (<a class="pad-link" href="https://pad.emacsconf.org/2022-eshell">pad</a>, <a href="https://emacsconf.org/current/eshell/room/">BBB</a>)</span> - <span><a href="https://emacsconf.org/2022/talks/async">async</a> (<a class="pad-link" href="https://pad.emacsconf.org/2022-async">pad</a>, <a href="https://emacsconf.org/current/async/room/">BBB</a>)</span> - <span><a href="https://emacsconf.org/2022/talks/dbus">dbus</a> (<a class="pad-link" href="https://pad.emacsconf.org/2022-dbus">pad</a>, <a href="https://emacsconf.org/current/dbus/room/">BBB</a>)</span> - <span><a href="https://emacsconf.org/2022/talks/localizing">localizing</a> (<a class="pad-link" href="https://pad.emacsconf.org/2022-localizing">pad</a>, <a href="https://emacsconf.org/current/localizing/room/">BBB</a>)</span></div>
+<video controls><source src="https://live0.emacsconf.org/dev.webm" type="video/webm" /></video>
+<div>Alternatively, load <a href="https://live0.emacsconf.org/dev.webm">https://live0.emacsconf.org/dev.webm</a> or <a href="https://live0.emacsconf.org/dev-480p.webm">https://live0.emacsconf.org/dev-480p.webm</a> (low-res) in a streaming media player such as MPV.</div>
+<hr size="1"><div><a name="links"></a><a href="#watch">Watch</a> - <strong>Pad and Q&amp;A links</strong> - <a href="#chat">Chat</a> - <a href="#sched">Schedule</a> | Tracks: <a href="/2022/watch/gen/">General</a> - <strong>Development</strong></div><div><span><a href="https://emacsconf.org/2022/talks/treesitter">treesitter</a> (<a class="pad-link" href="https://pad.emacsconf.org/2022-treesitter">pad</a>, <a href="https://chat.emacsconf.org/?join=emacsconf,emacsconf-dev">#emacsconf-dev, speaker nick: meain</a>)</span> - <span><a href="https://emacsconf.org/2022/talks/lspbridge">lspbridge</a> (<a class="pad-link" href="https://pad.emacsconf.org/2022-lspbridge">pad</a>, <a href="https://chat.emacsconf.org/?join=emacsconf,emacsconf-dev">#emacsconf-dev, speaker nick: manateelazycat</a>)</span> - <span><a href="https://emacsconf.org/2022/talks/asmblox">asmblox</a> (<a class="pad-link" href="https://pad.emacsconf.org/2022-asmblox">pad</a>, <a href="https://emacsconf.org/current/asmblox/room/">BBB</a>)</span> - <span><a href="https://emacsconf.org/2022/talks/wayland">wayland</a> (<a class="pad-link" href="https://pad.emacsconf.org/2022-wayland">pad</a>, <a href="https://emacsconf.org/current/wayland/room/">BBB</a>)</span> - <span><a href="https://emacsconf.org/2022/talks/sqlite">sqlite</a> (<a class="pad-link" href="https://pad.emacsconf.org/2022-sqlite">pad</a>, <a href="https://emacsconf.org/current/sqlite/room/">BBB</a>)</span> - <span><a href="https://emacsconf.org/2022/talks/mail">mail</a> (<a class="pad-link" href="https://pad.emacsconf.org/2022-mail">pad</a>, <a href="https://emacsconf.org/current/mail/room/">BBB</a>)</span> - <span><a href="https://emacsconf.org/2022/talks/maint">maint</a> (<a class="pad-link" href="https://pad.emacsconf.org/2022-maint">pad</a>, <a href="https://emacsconf.org/current/maint/room/">BBB</a>)</span> - <span><a href="https://emacsconf.org/2022/talks/eev">eev</a> (<a class="pad-link" href="https://pad.emacsconf.org/2022-eev">pad</a>, <a href="https://chat.emacsconf.org/?join=emacsconf,emacsconf-dev">#emacsconf-dev</a>)</span> - <span><a href="https://emacsconf.org/2022/talks/python">python</a> (<a class="pad-link" href="https://pad.emacsconf.org/2022-python">pad</a>, <a href="https://chat.emacsconf.org/?join=emacsconf,emacsconf-dev">#emacsconf-dev</a>)</span> - <span><a href="https://emacsconf.org/2022/talks/haskell">haskell</a> (<a class="pad-link" href="https://pad.emacsconf.org/2022-haskell">pad</a>, <a href="https://emacsconf.org/current/haskell/room/">BBB</a>)</span> - <span><a href="https://emacsconf.org/2022/talks/rde">rde</a> (<a class="pad-link" href="https://pad.emacsconf.org/2022-rde">pad</a>, <a href="https://emacsconf.org/current/rde/room/">BBB</a>)</span> - <span><a href="https://emacsconf.org/2022/talks/justl">justl</a> (<a class="pad-link" href="https://pad.emacsconf.org/2022-justl">pad</a>, <a href="https://chat.emacsconf.org/?join=emacsconf,emacsconf-dev">#emacsconf-dev</a>)</span> - <span><a href="https://emacsconf.org/2022/talks/rms">rms</a> (<a class="pad-link" href="https://pad.emacsconf.org/2022-rms">pad</a>, <a href="https://chat.emacsconf.org/?join=emacsconf,emacsconf-dev">Moderated via Mumble, ask questions via pad or IRC</a>)</span> - <span><a href="https://emacsconf.org/2022/talks/detached">detached</a> (<a class="pad-link" href="https://pad.emacsconf.org/2022-detached">pad</a>, <a href="https://emacsconf.org/current/detached/room/">BBB</a>)</span> - <span><a href="https://emacsconf.org/2022/talks/eshell">eshell</a> (<a class="pad-link" href="https://pad.emacsconf.org/2022-eshell">pad</a>, <a href="https://emacsconf.org/current/eshell/room/">BBB</a>)</span> - <span><a href="https://emacsconf.org/2022/talks/async">async</a> (<a class="pad-link" href="https://pad.emacsconf.org/2022-async">pad</a>, <a href="https://emacsconf.org/current/async/room/">BBB</a>)</span> - <span><a href="https://emacsconf.org/2022/talks/dbus">dbus</a> (<a class="pad-link" href="https://pad.emacsconf.org/2022-dbus">pad</a>, <a href="https://emacsconf.org/current/dbus/room/">BBB</a>)</span> - <span><a href="https://emacsconf.org/2022/talks/localizing">localizing</a> (<a class="pad-link" href="https://pad.emacsconf.org/2022-localizing">pad</a>, <a href="https://emacsconf.org/current/localizing/room/">BBB</a>)</span></div>
<div class="pad-output"></div>
<hr size="1"><div><a name="chat"></a><a href="#watch">Watch</a> - <a href="#links">Pad and Q&amp;A links</a> - <strong>Chat</strong> - <a href="#sched">Schedule</a> | Tracks: <a href="/2022/watch/gen/">General</a> - <strong>Development</strong></div><div>Chat: <a href="${webchat}">emacsconf-dev</a> on libera.chat</div>
@@ -22,14 +22,14 @@
<div><svg width="800" height="300" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> <title> Graphical view of the schedule</title> <g transform="translate(0,0)"> <title> Schedule for Saturday</title> <rect width="800" height="150" x="0" y="0" fill="white"></rect> <text font-size="10" fill="black" y="12" x="3"> Saturday</text> <a href="https://emacsconf.org/2022/talks/sat-open" title="Saturday opening remarks" data-slug="sat-open"> <title> 9:00- 9:05 Saturday opening remarks</title> <rect x="0" y="15" opacity="0.8" width="7" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect> <g transform="translate(5,73)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> sat-open</text></g></a> <a href="https://emacsconf.org/2022/talks/journalism" title="Emacs journalism (or everything's a nail if you hit it with Emacs)" data-slug="journalism"> <title> 9:05- 9:25 Emacs journalism (or everything's a nail if you hit it with Emacs)</title> <rect x="7" y="15" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect> <g transform="translate(36,73)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> journalism</text></g></a> <a href="https://emacsconf.org/2022/talks/school" title="Back to school with Emacs" data-slug="school"> <title> 9:45- 9:55 Back to school with Emacs</title> <rect x="70" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect> <g transform="translate(83,73)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> school</text></g></a> <a href="https://emacsconf.org/2022/talks/handwritten" title="How to incorporate handwritten notes into Emacs Orgmode" data-slug="handwritten"> <title> 10:05-10:15 How to incorporate handwritten notes into Emacs Orgmode</title> <rect x="101" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect> <g transform="translate(114,73)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> handwritten</text></g></a> <a href="https://emacsconf.org/2022/talks/science" title="Writing and organizing literature notes for scientific writing" data-slug="science"> <title> 10:45-11:05 Writing and organizing literature notes for scientific writing</title> <rect x="164" y="15" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect> <g transform="translate(193,73)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> science</text></g></a> <a href="https://emacsconf.org/2022/talks/buddy" title="The Emacs Buddy initiative" data-slug="buddy"> <title> 11:25-11:35 The Emacs Buddy initiative</title> <rect x="227" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect> <g transform="translate(240,73)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> buddy</text></g></a> <a href="https://emacsconf.org/2022/talks/meetups" title="Attending and organizing Emacs meetups" data-slug="meetups"> <title> 1:00- 1:20 Attending and organizing Emacs meetups</title> <rect x="376" y="15" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect> <g transform="translate(405,73)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> meetups</text></g></a> <a href="https://emacsconf.org/2022/talks/buttons" title="Linking personal info with Hyperbole implicit buttons" data-slug="buttons"> <title> 1:40- 1:55 Linking personal info with Hyperbole implicit buttons</title> <rect x="439" y="15" opacity="0.8" width="23" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect> <g transform="translate(460,73)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> buttons</text></g></a> <a href="https://emacsconf.org/2022/talks/realestate" title="Real estate and Org table formulas" data-slug="realestate"> <title> 2:15- 2:40 Real estate and Org table formulas</title> <rect x="494" y="15" opacity="0.8" width="39" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect> <g transform="translate(531,73)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> realestate</text></g></a> <a href="https://emacsconf.org/2022/talks/health" title="Health data journaling and visualization with Org Mode and GNUplot" data-slug="health"> <title> 3:00- 3:25 Health data journaling and visualization with Org Mode and GNUplot</title> <rect x="564" y="15" opacity="0.8" width="39" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect> <g transform="translate(601,73)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> health</text></g></a> <a href="https://emacsconf.org/2022/talks/jupyter" title="Edit live Jupyter notebook cells with Emacs" data-slug="jupyter"> <title> 3:45- 4:05 Edit live Jupyter notebook cells with Emacs</title> <rect x="635" y="15" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect> <g transform="translate(664,73)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> jupyter</text></g></a> <a href="https://emacsconf.org/2022/talks/sat-close" title="Saturday closing remarks" data-slug="sat-close"> <title> 4:50- 4:55 Saturday closing remarks</title> <rect x="737" y="15" opacity="0.8" width="7" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect> <g transform="translate(742,73)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> sat-close</text></g></a> <a href="https://emacsconf.org/2022/talks/treesitter" title="Tree-sitter beyond syntax highlighting" data-slug="treesitter"> <title> 10:00-10:15 Tree-sitter beyond syntax highlighting</title> <rect x="94" y="75" opacity="0.8" width="23" height="59" stroke="black" stroke-dasharray="5,5,5" fill="skyblue"></rect> <g transform="translate(115,133)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> treesitter</text></g></a> <a href="https://emacsconf.org/2022/talks/lspbridge" title="lsp-bridge: complete asynchronous LSP client" data-slug="lspbridge"> <title> 10:25-10:45 lsp-bridge: complete asynchronous LSP client</title> <rect x="133" y="75" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="5,5,5" fill="skyblue"></rect> <g transform="translate(162,133)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> lspbridge</text></g></a> <a href="https://emacsconf.org/2022/talks/asmblox" title="asm-blox: a game based on WebAssembly that no one asked for" data-slug="asmblox"> <title> 10:55-11:15 asm-blox: a game based on WebAssembly that no one asked for</title> <rect x="180" y="75" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect> <g transform="translate(209,133)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> asmblox</text></g></a> <a href="https://emacsconf.org/2022/talks/wayland" title="Emacs should become a Wayland compositor" data-slug="wayland"> <title> 11:25-11:35 Emacs should become a Wayland compositor</title> <rect x="227" y="75" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect> <g transform="translate(240,133)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> wayland</text></g></a> <a href="https://emacsconf.org/2022/talks/sqlite" title="Using SQLite as a data source: a framework and an example" data-slug="sqlite"> <title> 1:00- 1:25 Using SQLite as a data source: a framework and an example</title> <rect x="376" y="75" opacity="0.8" width="39" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect> <g transform="translate(413,133)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> sqlite</text></g></a> <a href="https://emacsconf.org/2022/talks/mail" title="Revisiting the anatomy of Emacs mail user agents" data-slug="mail"> <title> 1:50- 2:30 Revisiting the anatomy of Emacs mail user agents</title> <rect x="454" y="75" opacity="0.8" width="62" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect> <g transform="translate(514,133)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> mail</text></g></a> <a href="https://emacsconf.org/2022/talks/maint" title="Maintaining the Maintainers: Attribution as an Economic Model for Open Source" data-slug="maint"> <title> 2:50- 3:10 Maintaining the Maintainers: Attribution as an Economic Model for Open Source</title> <rect x="549" y="75" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect> <g transform="translate(578,133)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> maint</text></g></a> <a href="https://emacsconf.org/2022/talks/eev" title="Bidirectional links with eev" data-slug="eev"> <title> 3:35- 3:40 Bidirectional links with eev</title> <rect x="619" y="75" opacity="0.8" width="7" height="59" stroke="black" stroke-dasharray="5,5,5" fill="skyblue"></rect> <g transform="translate(624,133)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> eev</text></g></a> <a href="https://emacsconf.org/2022/talks/python" title="Short hyperlinks to Python docs" data-slug="python"> <title> 3:50- 3:55 Short hyperlinks to Python docs</title> <rect x="643" y="75" opacity="0.8" width="7" height="59" stroke="black" stroke-dasharray="5,5,5" fill="skyblue"></rect> <g transform="translate(648,133)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> python</text></g></a> <a href="https://emacsconf.org/2022/talks/haskell" title="Haskell code exploration with Emacs" data-slug="haskell"> <title> 4:05- 4:35 Haskell code exploration with Emacs</title> <rect x="666" y="75" opacity="0.8" width="47" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect> <g transform="translate(711,133)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> haskell</text></g></a> <g transform="translate(0,15)"> <line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line> <text fill="black" x="0" y="133" font-size="10" text-anchor="left"> 9 AM</text></g> <g transform="translate(94,15)"> <line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line> <text fill="black" x="0" y="133" font-size="10" text-anchor="left"> 10 AM</text></g> <g transform="translate(188,15)"> <line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line> <text fill="black" x="0" y="133" font-size="10" text-anchor="left"> 11 AM</text></g> <g transform="translate(282,15)"> <line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line> <text fill="black" x="0" y="133" font-size="10" text-anchor="left"> 12 PM</text></g> <g transform="translate(376,15)"> <line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line> <text fill="black" x="0" y="133" font-size="10" text-anchor="left"> 1 PM</text></g> <g transform="translate(470,15)"> <line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line> <text fill="black" x="0" y="133" font-size="10" text-anchor="left"> 2 PM</text></g> <g transform="translate(564,15)"> <line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line> <text fill="black" x="0" y="133" font-size="10" text-anchor="left"> 3 PM</text></g> <g transform="translate(658,15)"> <line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line> <text fill="black" x="0" y="133" font-size="10" text-anchor="left"> 4 PM</text></g> <g transform="translate(752,15)"> <line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line> <text fill="black" x="0" y="133" font-size="10" text-anchor="left"> 5 PM</text></g></g> <g transform="translate(0,150)"> <title> Schedule for Sunday</title> <rect width="800" height="150" x="0" y="0" fill="white"></rect> <text font-size="10" fill="black" y="12" x="3"> Sunday</text> <a href="https://emacsconf.org/2022/talks/sun-open" title="Sunday opening remarks" data-slug="sun-open"> <title> 9:00- 9:05 Sunday opening remarks</title> <rect x="0" y="15" opacity="0.8" width="7" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect> <g transform="translate(5,73)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> sun-open</text></g></a> <a href="https://emacsconf.org/2022/talks/survey" title="Results of the 2022 Emacs Survey" data-slug="survey"> <title> 9:05- 9:25 Results of the 2022 Emacs Survey</title> <rect x="7" y="15" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect> <g transform="translate(36,73)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> survey</text></g></a> <a href="https://emacsconf.org/2022/talks/orgyear" title="This Year in Org" data-slug="orgyear"> <title> 9:35- 9:45 This Year in Org</title> <rect x="54" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect> <g transform="translate(67,73)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> orgyear</text></g></a> <a href="https://emacsconf.org/2022/talks/rolodex" title="Build a Zettelkasten with the Hyperbole Rolodex" data-slug="rolodex"> <title> 9:55-10:20 Build a Zettelkasten with the Hyperbole Rolodex</title> <rect x="86" y="15" opacity="0.8" width="39" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect> <g transform="translate(123,73)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> rolodex</text></g></a> <a href="https://emacsconf.org/2022/talks/orgsuperlinks" title="Linking headings with org-super-links (poor-man's Zettelkasten)" data-slug="orgsuperlinks"> <title> 10:40-10:50 Linking headings with org-super-links (poor-man's Zettelkasten)</title> <rect x="156" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect> <g transform="translate(169,73)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> orgsuperlinks</text></g></a> <a href="https://emacsconf.org/2022/talks/orgvm" title="orgvm: a simple HTTP server for org" data-slug="orgvm"> <title> 11:10-11:20 orgvm: a simple HTTP server for org</title> <rect x="203" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect> <g transform="translate(216,73)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> orgvm</text></g></a> <a href="https://emacsconf.org/2022/talks/hyperorg" title="Powerful productivity with Hyperbole and Org Mode" data-slug="hyperorg"> <title> 1:00- 1:30 Powerful productivity with Hyperbole and Org Mode</title> <rect x="376" y="15" opacity="0.8" width="47" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect> <g transform="translate(421,73)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> hyperorg</text></g></a> <a href="https://emacsconf.org/2022/talks/workflows" title="Org workflows for developers" data-slug="workflows"> <title> 1:50- 2:15 Org workflows for developers</title> <rect x="454" y="15" opacity="0.8" width="39" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect> <g transform="translate(491,73)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> workflows</text></g></a> <a href="https://emacsconf.org/2022/talks/grail" title="GRAIL---A Generalized Representation and Aggregation of Information Layers" data-slug="grail"> <title> 2:35- 2:55 GRAIL---A Generalized Representation and Aggregation of Information Layers</title> <rect x="525" y="15" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect> <g transform="translate(554,73)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> grail</text></g></a> <a href="https://emacsconf.org/2022/talks/indieweb" title="Putting Org Mode on the Indieweb" data-slug="indieweb"> <title> 3:25- 3:45 Putting Org Mode on the Indieweb</title> <rect x="603" y="15" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect> <g transform="translate(632,73)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> indieweb</text></g></a> <a href="https://emacsconf.org/2022/talks/devel" title="Emacs development updates" data-slug="devel"> <title> 4:05- 4:15 Emacs development updates</title> <rect x="666" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect> <g transform="translate(679,73)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> devel</text></g></a> <a href="https://emacsconf.org/2022/talks/fanfare" title="Fanfare for the Common Emacs User" data-slug="fanfare"> <title> 4:25- 4:35 Fanfare for the Common Emacs User</title> <rect x="698" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect> <g transform="translate(711,73)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> fanfare</text></g></a> <a href="https://emacsconf.org/2022/talks/sun-close" title="Sunday closing remarks" data-slug="sun-close"> <title> 4:50- 5:00 Sunday closing remarks</title> <rect x="737" y="15" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="" fill="peachpuff"></rect> <g transform="translate(750,73)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> sun-close</text></g></a> <a href="https://emacsconf.org/2022/talks/rde" title="rde Emacs introduction" data-slug="rde"> <title> 10:00-10:25 rde Emacs introduction</title> <rect x="94" y="75" opacity="0.8" width="39" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect> <g transform="translate(131,133)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> rde</text></g></a> <a href="https://emacsconf.org/2022/talks/justl" title="justl: Driving recipes within Emacs" data-slug="justl"> <title> 10:50-11:05 justl: Driving recipes within Emacs</title> <rect x="172" y="75" opacity="0.8" width="23" height="59" stroke="black" stroke-dasharray="5,5,5" fill="skyblue"></rect> <g transform="translate(193,133)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> justl</text></g></a> <a href="https://emacsconf.org/2022/talks/rms" title="What I'd like to see in Emacs" data-slug="rms"> <title> 11:15-11:35 What I'd like to see in Emacs</title> <rect x="211" y="75" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="5,5,5" fill="skyblue"></rect> <g transform="translate(240,133)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> rms</text></g></a> <a href="https://emacsconf.org/2022/talks/detached" title="Getting detached from Emacs" data-slug="detached"> <title> 1:00- 1:15 Getting detached from Emacs</title> <rect x="376" y="75" opacity="0.8" width="23" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect> <g transform="translate(397,133)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> detached</text></g></a> <a href="https://emacsconf.org/2022/talks/eshell" title="Top 10 reasons why you should be using Eshell" data-slug="eshell"> <title> 1:40- 1:55 Top 10 reasons why you should be using Eshell</title> <rect x="439" y="75" opacity="0.8" width="23" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect> <g transform="translate(460,133)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> eshell</text></g></a> <a href="https://emacsconf.org/2022/talks/async" title="Emacs was async before async was cool" data-slug="async"> <title> 2:20- 2:40 Emacs was async before async was cool</title> <rect x="501" y="75" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect> <g transform="translate(530,133)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> async</text></g></a> <a href="https://emacsconf.org/2022/talks/dbus" title="The Wheels on D-Bus" data-slug="dbus"> <title> 3:15- 3:35 The Wheels on D-Bus</title> <rect x="588" y="75" opacity="0.8" width="31" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect> <g transform="translate(617,133)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> dbus</text></g></a> <a href="https://emacsconf.org/2022/talks/localizing" title="Pre-localizing Emacs" data-slug="localizing"> <title> 4:00- 4:10 Pre-localizing Emacs</title> <rect x="658" y="75" opacity="0.8" width="15" height="59" stroke="black" stroke-dasharray="" fill="skyblue"></rect> <g transform="translate(671,133)"> <text fill="black" x="0" y="0" font-size="10" transform="rotate(-90)"> localizing</text></g></a> <g transform="translate(0,15)"> <line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line> <text fill="black" x="0" y="133" font-size="10" text-anchor="left"> 9 AM</text></g> <g transform="translate(94,15)"> <line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line> <text fill="black" x="0" y="133" font-size="10" text-anchor="left"> 10 AM</text></g> <g transform="translate(188,15)"> <line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line> <text fill="black" x="0" y="133" font-size="10" text-anchor="left"> 11 AM</text></g> <g transform="translate(282,15)"> <line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line> <text fill="black" x="0" y="133" font-size="10" text-anchor="left"> 12 PM</text></g> <g transform="translate(376,15)"> <line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line> <text fill="black" x="0" y="133" font-size="10" text-anchor="left"> 1 PM</text></g> <g transform="translate(470,15)"> <line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line> <text fill="black" x="0" y="133" font-size="10" text-anchor="left"> 2 PM</text></g> <g transform="translate(564,15)"> <line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line> <text fill="black" x="0" y="133" font-size="10" text-anchor="left"> 3 PM</text></g> <g transform="translate(658,15)"> <line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line> <text fill="black" x="0" y="133" font-size="10" text-anchor="left"> 4 PM</text></g> <g transform="translate(752,15)"> <line stroke="darkgray" x1="0" y1="0" x2="0" y2="120"></line> <text fill="black" x="0" y="133" font-size="10" text-anchor="left"> 5 PM</text></g></g></svg></div>
<div><h1>Saturday, Dec 3, 2022</h1>
<div data-start="2022-12-03T15:00:00+0000" data-end="2022-12-03T15:15:00+0000" class="sched-entry track-Development">
-<div class="sched-meta"><span class="sched-time"><span class="sched-start">10:00</span> - <span class="sched-end">10:15</span></span> <span class="sched-track Development">Development</span> <span class="sched-pad"> <a href="https://pad.emacsconf.org/2022-treesitter">Etherpad</a></span>; <span class="sched-q-and-a">Q&amp;A: <a href="https://chat.emacsconf.org/?join=emacsconf,emacsconf-dev">emacsconf-dev, speaker nick: meain</a></span>; <span class="sched-slug">id:treesitter</span></div>
+<div class="sched-meta"><span class="sched-time"><span class="sched-start">10:00</span> - <span class="sched-end">10:15</span></span> <span class="sched-track Development">Development</span> <span class="sched-pad"> <a href="https://pad.emacsconf.org/2022-treesitter">Etherpad</a></span>; <span class="sched-q-and-a">Q&amp;A: <a href="https://chat.emacsconf.org/?join=emacsconf,emacsconf-dev">#emacsconf-dev, speaker nick: meain</a></span>; <span class="sched-slug">id:treesitter</span></div>
<div class="sched-title"><a href="https://emacsconf.org/2022/talks/treesitter">Tree-sitter beyond syntax highlighting</a></div>
<div class="sched-speakers">Abin Simon</div>
</div>
<div data-start="2022-12-03T15:25:00+0000" data-end="2022-12-03T15:45:00+0000" class="sched-entry track-Development">
-<div class="sched-meta"><span class="sched-time"><span class="sched-start">10:25</span> - <span class="sched-end">10:45</span></span> <span class="sched-track Development">Development</span> <span class="sched-pad"> <a href="https://pad.emacsconf.org/2022-lspbridge">Etherpad</a></span>; <span class="sched-q-and-a">Q&amp;A: <a href="https://chat.emacsconf.org/?join=emacsconf,emacsconf-dev">emacsconf-dev, speaker nick: manateelazycat</a></span>; <span class="sched-slug">id:lspbridge</span></div>
+<div class="sched-meta"><span class="sched-time"><span class="sched-start">10:25</span> - <span class="sched-end">10:45</span></span> <span class="sched-track Development">Development</span> <span class="sched-pad"> <a href="https://pad.emacsconf.org/2022-lspbridge">Etherpad</a></span>; <span class="sched-q-and-a">Q&amp;A: <a href="https://chat.emacsconf.org/?join=emacsconf,emacsconf-dev">#emacsconf-dev, speaker nick: manateelazycat</a></span>; <span class="sched-slug">id:lspbridge</span></div>
<div class="sched-title"><a href="https://emacsconf.org/2022/talks/lspbridge">lsp-bridge: complete asynchronous LSP client</a></div>
<div class="sched-speakers">Andy Stewart, Matthew Zeng</div>
@@ -71,14 +71,14 @@
</div>
<div data-start="2022-12-03T20:35:00+0000" data-end="2022-12-03T20:40:00+0000" class="sched-entry track-Development">
-<div class="sched-meta"><span class="sched-time"><span class="sched-start">3:35</span> - <span class="sched-end">3:40</span></span> <span class="sched-track Development">Development</span> <span class="sched-pad"> <a href="https://pad.emacsconf.org/2022-eev">Etherpad</a></span>; <span class="sched-q-and-a">Q&amp;A: <a href="https://chat.emacsconf.org/?join=emacsconf,emacsconf-dev">emacsconf-dev</a></span>; <span class="sched-slug">id:eev</span></div>
+<div class="sched-meta"><span class="sched-time"><span class="sched-start">3:35</span> - <span class="sched-end">3:40</span></span> <span class="sched-track Development">Development</span> <span class="sched-pad"> <a href="https://pad.emacsconf.org/2022-eev">Etherpad</a></span>; <span class="sched-q-and-a">Q&amp;A: <a href="https://chat.emacsconf.org/?join=emacsconf,emacsconf-dev">#emacsconf-dev</a></span>; <span class="sched-slug">id:eev</span></div>
<div class="sched-title"><a href="https://emacsconf.org/2022/talks/eev">Bidirectional links with eev</a></div>
<div class="sched-speakers">Eduardo Ochs</div>
</div>
<div data-start="2022-12-03T20:50:00+0000" data-end="2022-12-03T20:55:00+0000" class="sched-entry track-Development">
-<div class="sched-meta"><span class="sched-time"><span class="sched-start">3:50</span> - <span class="sched-end">3:55</span></span> <span class="sched-track Development">Development</span> <span class="sched-pad"> <a href="https://pad.emacsconf.org/2022-python">Etherpad</a></span>; <span class="sched-q-and-a">Q&amp;A: <a href="https://chat.emacsconf.org/?join=emacsconf,emacsconf-dev">emacsconf-dev</a></span>; <span class="sched-slug">id:python</span></div>
+<div class="sched-meta"><span class="sched-time"><span class="sched-start">3:50</span> - <span class="sched-end">3:55</span></span> <span class="sched-track Development">Development</span> <span class="sched-pad"> <a href="https://pad.emacsconf.org/2022-python">Etherpad</a></span>; <span class="sched-q-and-a">Q&amp;A: <a href="https://chat.emacsconf.org/?join=emacsconf,emacsconf-dev">#emacsconf-dev</a></span>; <span class="sched-slug">id:python</span></div>
<div class="sched-title"><a href="https://emacsconf.org/2022/talks/python">Short hyperlinks to Python docs</a></div>
<div class="sched-speakers">Eduardo Ochs</div>
@@ -100,7 +100,7 @@
</div>
<div data-start="2022-12-04T15:50:00+0000" data-end="2022-12-04T16:05:00+0000" class="sched-entry track-Development">
-<div class="sched-meta"><span class="sched-time"><span class="sched-start">10:50</span> - <span class="sched-end">11:05</span></span> <span class="sched-track Development">Development</span> <span class="sched-pad"> <a href="https://pad.emacsconf.org/2022-justl">Etherpad</a></span>; <span class="sched-q-and-a">Q&amp;A: <a href="https://chat.emacsconf.org/?join=emacsconf,emacsconf-dev">emacsconf-dev</a></span>; <span class="sched-slug">id:justl</span></div>
+<div class="sched-meta"><span class="sched-time"><span class="sched-start">10:50</span> - <span class="sched-end">11:05</span></span> <span class="sched-track Development">Development</span> <span class="sched-pad"> <a href="https://pad.emacsconf.org/2022-justl">Etherpad</a></span>; <span class="sched-q-and-a">Q&amp;A: <a href="https://chat.emacsconf.org/?join=emacsconf,emacsconf-dev">#emacsconf-dev</a></span>; <span class="sched-slug">id:justl</span></div>
<div class="sched-title"><a href="https://emacsconf.org/2022/talks/justl">justl: Driving recipes within Emacs</a></div>
<div class="sched-speakers">Sibi Prabakaran (he/him)</div>
diff --git a/2022/watch/gen.md b/2022/watch/gen.md
index 2dcb001f..a797a7d9 100644
--- a/2022/watch/gen.md
+++ b/2022/watch/gen.md
@@ -7,9 +7,9 @@
<hr size="1">
<div><a name="watch"></a><strong>Watch</strong> - <a href="#links">Pad and Q&amp;A links</a> - <a href="#chat">Chat</a> - <a href="#sched">Schedule</a> | Tracks: <strong>General</strong> - <a href="/2022/watch/dev/">Development</a></div>
-<video controls><source src="https://live0.emacsconf.org/emacsconf/gen.webm" type="video/webm" /></video>
-<div>Alternatively, load <a href="https://live0.emacsconf.org/emacsconf/gen.webm">https://live0.emacsconf.org/emacsconf/gen.webm</a> or <a href="https://live0.emacsconf.org/emacsconf/gen-480p.webm">https://live0.emacsconf.org/emacsconf/gen-480p.webm</a> (low-res) in a streaming media player such as MPV.</div>
-<hr size="1"><div><a name="links"></a><a href="#watch">Watch</a> - <strong>Pad and Q&amp;A links</strong> - <a href="#chat">Chat</a> - <a href="#sched">Schedule</a> | Tracks: <strong>General</strong> - <a href="/2022/watch/dev/">Development</a></div><div><span><a href="https://emacsconf.org/2022/talks/sat-open">sat-open</a> (<a class="pad-link" href="https://pad.emacsconf.org/2022-sat-open">pad</a>, none)</span> - <span><a href="https://emacsconf.org/2022/talks/journalism">journalism</a> (<a class="pad-link" href="https://pad.emacsconf.org/2022-journalism">pad</a>, <a href="https://emacsconf.org/current/journalism/room/">BBB</a>)</span> - <span><a href="https://emacsconf.org/2022/talks/school">school</a> (<a class="pad-link" href="https://pad.emacsconf.org/2022-school">pad</a>, <a href="https://chat.emacsconf.org/?join=emacsconf,emacsconf-gen">emacsconf-gen, speaker nick: velocitatem</a>)</span> - <span><a href="https://emacsconf.org/2022/talks/handwritten">handwritten</a> (<a class="pad-link" href="https://pad.emacsconf.org/2022-handwritten">pad</a>, <a href="https://emacsconf.org/current/handwritten/room/">BBB</a>)</span> - <span><a href="https://emacsconf.org/2022/talks/science">science</a> (<a class="pad-link" href="https://pad.emacsconf.org/2022-science">pad</a>, <a href="https://emacsconf.org/current/science/room/">BBB</a>)</span> - <span><a href="https://emacsconf.org/2022/talks/buddy">buddy</a> (<a class="pad-link" href="https://pad.emacsconf.org/2022-buddy">pad</a>, <a href="https://chat.emacsconf.org/?join=emacsconf,emacsconf-gen">emacsconf-gen</a>)</span> - <span><a href="https://emacsconf.org/2022/talks/meetups">meetups</a> (<a class="pad-link" href="https://pad.emacsconf.org/2022-meetups">pad</a>, <a href="https://emacsconf.org/current/meetups/room/">BBB</a>)</span> - <span><a href="https://emacsconf.org/2022/talks/buttons">buttons</a> (<a class="pad-link" href="https://pad.emacsconf.org/2022-buttons">pad</a>, <a href="https://emacsconf.org/current/buttons/room/">BBB</a>)</span> - <span><a href="https://emacsconf.org/2022/talks/realestate">realestate</a> (<a class="pad-link" href="https://pad.emacsconf.org/2022-realestate">pad</a>, <a href="nil">Etherpad</a>)</span> - <span><a href="https://emacsconf.org/2022/talks/health">health</a> (<a class="pad-link" href="https://pad.emacsconf.org/2022-health">pad</a>, <a href="https://emacsconf.org/current/health/room/">BBB</a>)</span> - <span><a href="https://emacsconf.org/2022/talks/jupyter">jupyter</a> (<a class="pad-link" href="https://pad.emacsconf.org/2022-jupyter">pad</a>, <a href="https://emacsconf.org/current/jupyter/room/">BBB</a>)</span> - <span><a href="https://emacsconf.org/2022/talks/sat-close">sat-close</a> (<a class="pad-link" href="https://pad.emacsconf.org/2022-sat-close">pad</a>, none)</span> - <span><a href="https://emacsconf.org/2022/talks/sun-open">sun-open</a> (<a class="pad-link" href="https://pad.emacsconf.org/2022-sun-open">pad</a>, none)</span> - <span><a href="https://emacsconf.org/2022/talks/survey">survey</a> (<a class="pad-link" href="https://pad.emacsconf.org/2022-survey">pad</a>, <a href="https://chat.emacsconf.org/?join=emacsconf,emacsconf-gen">emacsconf-gen, speaker nick: tecosaur</a>)</span> - <span><a href="https://emacsconf.org/2022/talks/orgyear">orgyear</a> (<a class="pad-link" href="https://pad.emacsconf.org/2022-orgyear">pad</a>, <a href="https://chat.emacsconf.org/?join=emacsconf,emacsconf-gen">emacsconf-gen, speaker nick: tecosaur</a>)</span> - <span><a href="https://emacsconf.org/2022/talks/rolodex">rolodex</a> (<a class="pad-link" href="https://pad.emacsconf.org/2022-rolodex">pad</a>, <a href="https://chat.emacsconf.org/?join=emacsconf,emacsconf-gen">emacsconf-gen</a>)</span> - <span><a href="https://emacsconf.org/2022/talks/orgsuperlinks">orgsuperlinks</a> (<a class="pad-link" href="https://pad.emacsconf.org/2022-orgsuperlinks">pad</a>, <a href="https://emacsconf.org/current/orgsuperlinks/room/">BBB</a>)</span> - <span><a href="https://emacsconf.org/2022/talks/orgvm">orgvm</a> (<a class="pad-link" href="https://pad.emacsconf.org/2022-orgvm">pad</a>, <a href="https://emacsconf.org/current/orgvm/room/">BBB</a>)</span> - <span><a href="https://emacsconf.org/2022/talks/hyperorg">hyperorg</a> (<a class="pad-link" href="https://pad.emacsconf.org/2022-hyperorg">pad</a>, <a href="https://emacsconf.org/current/hyperorg/room/">BBB</a>)</span> - <span><a href="https://emacsconf.org/2022/talks/workflows">workflows</a> (<a class="pad-link" href="https://pad.emacsconf.org/2022-workflows">pad</a>, <a href="https://emacsconf.org/current/workflows/room/">BBB</a>)</span> - <span><a href="https://emacsconf.org/2022/talks/grail">grail</a> (<a class="pad-link" href="https://pad.emacsconf.org/2022-grail">pad</a>, <a href="https://emacsconf.org/current/grail/room/">BBB</a>)</span> - <span><a href="https://emacsconf.org/2022/talks/indieweb">indieweb</a> (<a class="pad-link" href="https://pad.emacsconf.org/2022-indieweb">pad</a>, <a href="https://emacsconf.org/current/indieweb/room/">BBB</a>)</span> - <span><a href="https://emacsconf.org/2022/talks/devel">devel</a> (<a class="pad-link" href="https://pad.emacsconf.org/2022-devel">pad</a>, none)</span> - <span><a href="https://emacsconf.org/2022/talks/fanfare">fanfare</a> (<a class="pad-link" href="https://pad.emacsconf.org/2022-fanfare">pad</a>, <a href="https://emacsconf.org/current/fanfare/room/">BBB</a>)</span> - <span><a href="https://emacsconf.org/2022/talks/sun-close">sun-close</a> (<a class="pad-link" href="https://pad.emacsconf.org/2022-sun-close">pad</a>, none)</span></div>
+<video controls><source src="https://live0.emacsconf.org/gen.webm" type="video/webm" /></video>
+<div>Alternatively, load <a href="https://live0.emacsconf.org/gen.webm">https://live0.emacsconf.org/gen.webm</a> or <a href="https://live0.emacsconf.org/gen-480p.webm">https://live0.emacsconf.org/gen-480p.webm</a> (low-res) in a streaming media player such as MPV.</div>
+<hr size="1"><div><a name="links"></a><a href="#watch">Watch</a> - <strong>Pad and Q&amp;A links</strong> - <a href="#chat">Chat</a> - <a href="#sched">Schedule</a> | Tracks: <strong>General</strong> - <a href="/2022/watch/dev/">Development</a></div><div><span><a href="https://emacsconf.org/2022/talks/sat-open">sat-open</a> (<a class="pad-link" href="https://pad.emacsconf.org/2022-sat-open">pad</a>, none)</span> - <span><a href="https://emacsconf.org/2022/talks/journalism">journalism</a> (<a class="pad-link" href="https://pad.emacsconf.org/2022-journalism">pad</a>, <a href="https://emacsconf.org/current/journalism/room/">BBB</a>)</span> - <span><a href="https://emacsconf.org/2022/talks/school">school</a> (<a class="pad-link" href="https://pad.emacsconf.org/2022-school">pad</a>, <a href="https://chat.emacsconf.org/?join=emacsconf,emacsconf-gen">#emacsconf-gen, speaker nick: velocitatem</a>)</span> - <span><a href="https://emacsconf.org/2022/talks/handwritten">handwritten</a> (<a class="pad-link" href="https://pad.emacsconf.org/2022-handwritten">pad</a>, <a href="https://emacsconf.org/current/handwritten/room/">BBB</a>)</span> - <span><a href="https://emacsconf.org/2022/talks/science">science</a> (<a class="pad-link" href="https://pad.emacsconf.org/2022-science">pad</a>, <a href="https://emacsconf.org/current/science/room/">BBB</a>)</span> - <span><a href="https://emacsconf.org/2022/talks/buddy">buddy</a> (<a class="pad-link" href="https://pad.emacsconf.org/2022-buddy">pad</a>, <a href="https://chat.emacsconf.org/?join=emacsconf,emacsconf-gen">#emacsconf-gen</a>)</span> - <span><a href="https://emacsconf.org/2022/talks/meetups">meetups</a> (<a class="pad-link" href="https://pad.emacsconf.org/2022-meetups">pad</a>, <a href="https://emacsconf.org/current/meetups/room/">BBB</a>)</span> - <span><a href="https://emacsconf.org/2022/talks/buttons">buttons</a> (<a class="pad-link" href="https://pad.emacsconf.org/2022-buttons">pad</a>, <a href="https://emacsconf.org/current/buttons/room/">BBB</a>)</span> - <span><a href="https://emacsconf.org/2022/talks/realestate">realestate</a> (<a class="pad-link" href="https://pad.emacsconf.org/2022-realestate">pad</a>, <a href="nil">Etherpad</a>)</span> - <span><a href="https://emacsconf.org/2022/talks/health">health</a> (<a class="pad-link" href="https://pad.emacsconf.org/2022-health">pad</a>, <a href="https://emacsconf.org/current/health/room/">BBB</a>)</span> - <span><a href="https://emacsconf.org/2022/talks/jupyter">jupyter</a> (<a class="pad-link" href="https://pad.emacsconf.org/2022-jupyter">pad</a>, <a href="https://emacsconf.org/current/jupyter/room/">BBB</a>)</span> - <span><a href="https://emacsconf.org/2022/talks/sat-close">sat-close</a> (<a class="pad-link" href="https://pad.emacsconf.org/2022-sat-close">pad</a>, none)</span> - <span><a href="https://emacsconf.org/2022/talks/sun-open">sun-open</a> (<a class="pad-link" href="https://pad.emacsconf.org/2022-sun-open">pad</a>, none)</span> - <span><a href="https://emacsconf.org/2022/talks/survey">survey</a> (<a class="pad-link" href="https://pad.emacsconf.org/2022-survey">pad</a>, <a href="https://chat.emacsconf.org/?join=emacsconf,emacsconf-gen">#emacsconf-gen, speaker nick: tecosaur</a>)</span> - <span><a href="https://emacsconf.org/2022/talks/orgyear">orgyear</a> (<a class="pad-link" href="https://pad.emacsconf.org/2022-orgyear">pad</a>, <a href="https://chat.emacsconf.org/?join=emacsconf,emacsconf-gen">#emacsconf-gen, speaker nick: tecosaur</a>)</span> - <span><a href="https://emacsconf.org/2022/talks/rolodex">rolodex</a> (<a class="pad-link" href="https://pad.emacsconf.org/2022-rolodex">pad</a>, <a href="https://chat.emacsconf.org/?join=emacsconf,emacsconf-gen">#emacsconf-gen</a>)</span> - <span><a href="https://emacsconf.org/2022/talks/orgsuperlinks">orgsuperlinks</a> (<a class="pad-link" href="https://pad.emacsconf.org/2022-orgsuperlinks">pad</a>, <a href="https://emacsconf.org/current/orgsuperlinks/room/">BBB</a>)</span> - <span><a href="https://emacsconf.org/2022/talks/orgvm">orgvm</a> (<a class="pad-link" href="https://pad.emacsconf.org/2022-orgvm">pad</a>, <a href="https://emacsconf.org/current/orgvm/room/">BBB</a>)</span> - <span><a href="https://emacsconf.org/2022/talks/hyperorg">hyperorg</a> (<a class="pad-link" href="https://pad.emacsconf.org/2022-hyperorg">pad</a>, <a href="https://emacsconf.org/current/hyperorg/room/">BBB</a>)</span> - <span><a href="https://emacsconf.org/2022/talks/workflows">workflows</a> (<a class="pad-link" href="https://pad.emacsconf.org/2022-workflows">pad</a>, <a href="https://emacsconf.org/current/workflows/room/">BBB</a>)</span> - <span><a href="https://emacsconf.org/2022/talks/grail">grail</a> (<a class="pad-link" href="https://pad.emacsconf.org/2022-grail">pad</a>, <a href="https://emacsconf.org/current/grail/room/">BBB</a>)</span> - <span><a href="https://emacsconf.org/2022/talks/indieweb">indieweb</a> (<a class="pad-link" href="https://pad.emacsconf.org/2022-indieweb">pad</a>, <a href="https://emacsconf.org/current/indieweb/room/">BBB</a>)</span> - <span><a href="https://emacsconf.org/2022/talks/devel">devel</a> (<a class="pad-link" href="https://pad.emacsconf.org/2022-devel">pad</a>, none)</span> - <span><a href="https://emacsconf.org/2022/talks/fanfare">fanfare</a> (<a class="pad-link" href="https://pad.emacsconf.org/2022-fanfare">pad</a>, <a href="https://emacsconf.org/current/fanfare/room/">BBB</a>)</span> - <span><a href="https://emacsconf.org/2022/talks/sun-close">sun-close</a> (<a class="pad-link" href="https://pad.emacsconf.org/2022-sun-close">pad</a>, none)</span></div>
<div class="pad-output"></div>
<hr size="1"><div><a name="chat"></a><a href="#watch">Watch</a> - <a href="#links">Pad and Q&amp;A links</a> - <strong>Chat</strong> - <a href="#sched">Schedule</a> | Tracks: <strong>General</strong> - <a href="/2022/watch/dev/">Development</a></div><div>Chat: <a href="${webchat}">emacsconf-gen</a> on libera.chat</div>
@@ -36,7 +36,7 @@
</div>
<div data-start="2022-12-03T14:45:00+0000" data-end="2022-12-03T14:55:00+0000" class="sched-entry track-General">
-<div class="sched-meta"><span class="sched-time"><span class="sched-start">9:45</span> - <span class="sched-end">9:55</span></span> <span class="sched-track General">General</span> <span class="sched-pad"> <a href="https://pad.emacsconf.org/2022-school">Etherpad</a></span>; <span class="sched-q-and-a">Q&amp;A: <a href="https://chat.emacsconf.org/?join=emacsconf,emacsconf-gen">emacsconf-gen, speaker nick: velocitatem</a></span>; <span class="sched-slug">id:school</span></div>
+<div class="sched-meta"><span class="sched-time"><span class="sched-start">9:45</span> - <span class="sched-end">9:55</span></span> <span class="sched-track General">General</span> <span class="sched-pad"> <a href="https://pad.emacsconf.org/2022-school">Etherpad</a></span>; <span class="sched-q-and-a">Q&amp;A: <a href="https://chat.emacsconf.org/?join=emacsconf,emacsconf-gen">#emacsconf-gen, speaker nick: velocitatem</a></span>; <span class="sched-slug">id:school</span></div>
<div class="sched-title"><a href="https://emacsconf.org/2022/talks/school">Back to school with Emacs</a></div>
<div class="sched-speakers">Daniel Rösel</div>
@@ -57,7 +57,7 @@
</div>
<div data-start="2022-12-03T16:25:00+0000" data-end="2022-12-03T16:35:00+0000" class="sched-entry track-General">
-<div class="sched-meta"><span class="sched-time"><span class="sched-start">11:25</span> - <span class="sched-end">11:35</span></span> <span class="sched-track General">General</span> <span class="sched-pad"> <a href="https://pad.emacsconf.org/2022-buddy">Etherpad</a></span>; <span class="sched-q-and-a">Q&amp;A: <a href="https://chat.emacsconf.org/?join=emacsconf,emacsconf-gen">emacsconf-gen</a></span>; <span class="sched-slug">id:buddy</span></div>
+<div class="sched-meta"><span class="sched-time"><span class="sched-start">11:25</span> - <span class="sched-end">11:35</span></span> <span class="sched-track General">General</span> <span class="sched-pad"> <a href="https://pad.emacsconf.org/2022-buddy">Etherpad</a></span>; <span class="sched-q-and-a">Q&amp;A: <a href="https://chat.emacsconf.org/?join=emacsconf,emacsconf-gen">#emacsconf-gen</a></span>; <span class="sched-slug">id:buddy</span></div>
<div class="sched-title"><a href="https://emacsconf.org/2022/talks/buddy">The Emacs Buddy initiative</a></div>
<div class="sched-speakers">Andrea</div>
@@ -114,21 +114,21 @@
</div>
<div data-start="2022-12-04T14:05:00+0000" data-end="2022-12-04T14:25:00+0000" class="sched-entry track-General">
-<div class="sched-meta"><span class="sched-time"><span class="sched-start">9:05</span> - <span class="sched-end">9:25</span></span> <span class="sched-track General">General</span> <span class="sched-pad"> <a href="https://pad.emacsconf.org/2022-survey">Etherpad</a></span>; <span class="sched-q-and-a">Q&amp;A: <a href="https://chat.emacsconf.org/?join=emacsconf,emacsconf-gen">emacsconf-gen, speaker nick: tecosaur</a></span>; <span class="sched-slug">id:survey</span></div>
+<div class="sched-meta"><span class="sched-time"><span class="sched-start">9:05</span> - <span class="sched-end">9:25</span></span> <span class="sched-track General">General</span> <span class="sched-pad"> <a href="https://pad.emacsconf.org/2022-survey">Etherpad</a></span>; <span class="sched-q-and-a">Q&amp;A: <a href="https://chat.emacsconf.org/?join=emacsconf,emacsconf-gen">#emacsconf-gen, speaker nick: tecosaur</a></span>; <span class="sched-slug">id:survey</span></div>
<div class="sched-title"><a href="https://emacsconf.org/2022/talks/survey">Results of the 2022 Emacs Survey</a></div>
<div class="sched-speakers">Timothy (he/him)</div>
</div>
<div data-start="2022-12-04T14:35:00+0000" data-end="2022-12-04T14:45:00+0000" class="sched-entry track-General">
-<div class="sched-meta"><span class="sched-time"><span class="sched-start">9:35</span> - <span class="sched-end">9:45</span></span> <span class="sched-track General">General</span> <span class="sched-pad"> <a href="https://pad.emacsconf.org/2022-orgyear">Etherpad</a></span>; <span class="sched-q-and-a">Q&amp;A: <a href="https://chat.emacsconf.org/?join=emacsconf,emacsconf-gen">emacsconf-gen, speaker nick: tecosaur</a></span>; <span class="sched-slug">id:orgyear</span></div>
+<div class="sched-meta"><span class="sched-time"><span class="sched-start">9:35</span> - <span class="sched-end">9:45</span></span> <span class="sched-track General">General</span> <span class="sched-pad"> <a href="https://pad.emacsconf.org/2022-orgyear">Etherpad</a></span>; <span class="sched-q-and-a">Q&amp;A: <a href="https://chat.emacsconf.org/?join=emacsconf,emacsconf-gen">#emacsconf-gen, speaker nick: tecosaur</a></span>; <span class="sched-slug">id:orgyear</span></div>
<div class="sched-title"><a href="https://emacsconf.org/2022/talks/orgyear">This Year in Org</a></div>
<div class="sched-speakers">Timothy (he/him)</div>
</div>
<div data-start="2022-12-04T14:55:00+0000" data-end="2022-12-04T15:20:00+0000" class="sched-entry track-General">
-<div class="sched-meta"><span class="sched-time"><span class="sched-start">9:55</span> - <span class="sched-end">10:20</span></span> <span class="sched-track General">General</span> <span class="sched-pad"> <a href="https://pad.emacsconf.org/2022-rolodex">Etherpad</a></span>; <span class="sched-q-and-a">Q&amp;A: <a href="https://chat.emacsconf.org/?join=emacsconf,emacsconf-gen">emacsconf-gen</a></span>; <span class="sched-slug">id:rolodex</span></div>
+<div class="sched-meta"><span class="sched-time"><span class="sched-start">9:55</span> - <span class="sched-end">10:20</span></span> <span class="sched-track General">General</span> <span class="sched-pad"> <a href="https://pad.emacsconf.org/2022-rolodex">Etherpad</a></span>; <span class="sched-q-and-a">Q&amp;A: <a href="https://chat.emacsconf.org/?join=emacsconf,emacsconf-gen">#emacsconf-gen</a></span>; <span class="sched-slug">id:rolodex</span></div>
<div class="sched-title"><a href="https://emacsconf.org/2022/talks/rolodex">Build a Zettelkasten with the Hyperbole Rolodex</a></div>
<div class="sched-speakers">Ramin Honary (he/him)</div>