diff options
| author | Sacha Chua <sacha@sachachua.com> | 2025-12-05 21:37:09 -0500 |
|---|---|---|
| committer | Sacha Chua <sacha@sachachua.com> | 2025-12-05 21:37:12 -0500 |
| commit | d63372493b06d0c04ae308ce7386f12e5d79698a (patch) | |
| tree | 039d905cef1d6145e95cba35bc5eb2d26b5ce763 | |
| parent | bfdb45f2f45187a668fa90cd95e59c82d6c30e35 (diff) | |
| download | emacsconf-wiki-d63372493b06d0c04ae308ce7386f12e5d79698a.tar.xz emacsconf-wiki-d63372493b06d0c04ae308ce7386f12e5d79698a.zip | |
schedule update
Diffstat (limited to '')
| -rw-r--r-- | 2025/organizers-notebook/index.org | 4 | ||||
| -rw-r--r-- | 2025/organizers-notebook/schedule.svg | 2 | ||||
| -rw-r--r-- | organizers-notebook.md | 209 | ||||
| -rw-r--r-- | organizers-notebook/index.org | 86 |
4 files changed, 250 insertions, 51 deletions
diff --git a/2025/organizers-notebook/index.org b/2025/organizers-notebook/index.org index 4f2300bd..2160b922 100644 --- a/2025/organizers-notebook/index.org +++ b/2025/organizers-notebook/index.org @@ -962,8 +962,8 @@ live0: 64GB front0: 32GB meet: 64GB -*** TODO [#A] Resize nodes before production -SCHEDULED: <2025-12-05 Fri> +*** DONE [#A] Resize nodes before production +CLOSED: [2025-12-05 Fri 21:07] SCHEDULED: <2025-12-05 Fri> :PROPERTIES: :CUSTOM_ID: check-emacsconf-infrastructure-resizing-resize-nodes-before-production :END: diff --git a/2025/organizers-notebook/schedule.svg b/2025/organizers-notebook/schedule.svg index 4271183a..ca2dacfd 100644 --- a/2025/organizers-notebook/schedule.svg +++ b/2025/organizers-notebook/schedule.svg @@ -1 +1 @@ -<svg width="500" height="700" 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="250" height="700" x="0" y="0" fill="white"></rect><text font-size="10" fill="black" y="30" x="3">Saturday</text><a href="https://emacsconf.org/2025/talks/sat-open" title="Saturday opening remarks" data-slug="sat-open"><title> 9:00- 9:10 Saturday opening remarks</title><rect x="40" y="40" opacity="0.8" width="84" height="13" stroke="black" stroke-dasharray="5,5,5" fill="gray"></rect><g transform="translate(40,51)"><text fill="black" x="0" y="0" font-size="10" transform="nil">sat-open</text></g></a><a href="https://emacsconf.org/2025/talks/org-babel" title="Making Org-Babel reactive" data-slug="org-babel"><title> 9:10- 9:20 Making Org-Babel reactive</title><rect x="40" y="53" opacity="0.8" width="84" height="13" stroke="black" stroke-dasharray="5,5,5" fill="lightblue"></rect><g transform="translate(40,64)"><text fill="black" x="0" y="0" font-size="10" transform="nil">org-babel</text></g></a><a href="https://emacsconf.org/2025/talks/reference" title="Emacs as a fully-fledged reference manager" data-slug="reference"><title> 9:30- 9:55 Emacs as a fully-fledged reference manager</title><rect x="40" y="81" opacity="0.8" width="84" height="34" stroke="black" stroke-dasharray="" fill="gray"></rect><g transform="translate(40,113)"><text fill="black" x="0" y="0" font-size="10" transform="nil">reference</text></g></a><a href="https://emacsconf.org/2025/talks/gmail" title="org-gmail: A deep integration of Gmail into your Org Mode" data-slug="gmail"><title>10:15-10:40 org-gmail: A deep integration of Gmail into your Org Mode</title><rect x="40" y="142" opacity="0.8" width="84" height="34" stroke="black" stroke-dasharray="5,5,5" fill="lightblue"></rect><g transform="translate(40,174)"><text fill="black" x="0" y="0" font-size="10" transform="nil">gmail</text></g></a><a href="https://emacsconf.org/2025/talks/gnus" title="Reading and writing emails in GNU Emacs with Gnus" data-slug="gnus"><title>10:50-11:15 Reading and writing emails in GNU Emacs with Gnus</title><rect x="40" y="190" opacity="0.8" width="84" height="34" stroke="black" stroke-dasharray="5,5,5" fill="gray"></rect><g transform="translate(40,222)"><text fill="black" x="0" y="0" font-size="10" transform="nil">gnus</text></g></a><a href="https://emacsconf.org/2025/talks/latex" title="LaTeX export in org-mode: the overhaul" data-slug="latex"><title>11:25-11:45 LaTeX export in org-mode: the overhaul</title><rect x="40" y="239" opacity="0.8" width="84" height="27" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(40,264)"><text fill="black" x="0" y="0" font-size="10" transform="nil">latex</text></g></a><a href="https://emacsconf.org/2025/talks/calc" title="Basic Calc functionality for engineering or electronics" data-slug="calc"><title> 1:00- 1:25 Basic Calc functionality for engineering or electronics</title><rect x="40" y="369" opacity="0.8" width="84" height="34" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(40,401)"><text fill="black" x="0" y="0" font-size="10" transform="nil">calc</text></g></a><a href="https://emacsconf.org/2025/talks/blee-lcnt" title="Blee-LCNT: An Emacs-centered content production and self-publication framework" data-slug="blee-lcnt"><title> 1:35- 2:15 Blee-LCNT: An Emacs-centered content production and self-publication framework</title><rect x="40" y="417" opacity="0.8" width="84" height="54" stroke="black" stroke-dasharray="" fill="gray"></rect><g transform="translate(40,469)"><text fill="black" x="0" y="0" font-size="10" transform="nil">blee-lcnt</text></g></a><a href="https://emacsconf.org/2025/talks/greader" title="GNU Emacs Greader (Gnamù Reader) mode is the best Emacs mode in existence" data-slug="greader"><title> 2:35- 2:40 GNU Emacs Greader (Gnamù Reader) mode is the best Emacs mode in existence</title><rect x="40" y="499" opacity="0.8" width="84" height="6" stroke="black" stroke-dasharray="5,5,5" fill="gray"></rect><g transform="translate(40,503)"><text fill="black" x="0" y="0" font-size="10" transform="nil">greader</text></g></a><a href="https://emacsconf.org/2025/talks/open-mic" title="Open session" data-slug="open-mic"><title> 2:50- 3:40 Open session</title><rect x="40" y="520" opacity="0.8" width="84" height="68" stroke="black" stroke-dasharray="" fill="gray"></rect><g transform="translate(40,586)"><text fill="black" x="0" y="0" font-size="10" transform="nil">open-mic</text></g></a><a href="https://emacsconf.org/2025/talks/sat-close" title="Saturday closing remarks / open session" data-slug="sat-close"><title> 4:00- 4:10 Saturday closing remarks / open session</title><rect x="40" y="616" opacity="0.8" width="84" height="13" stroke="black" stroke-dasharray="" fill="gray"></rect><g transform="translate(40,627)"><text fill="black" x="0" y="0" font-size="10" transform="nil">sat-close</text></g></a><a href="https://emacsconf.org/2025/talks/schemacs" title="One year progress update Schemacs (formerly Gypsum)" data-slug="schemacs"><title> 9:30- 9:55 One year progress update Schemacs (formerly Gypsum)</title><rect x="125" y="81" opacity="0.8" width="84" height="34" stroke="black" stroke-dasharray="" fill="lightblue"></rect><g transform="translate(125,113)"><text fill="black" x="0" y="0" font-size="10" transform="nil">schemacs</text></g></a><a href="https://emacsconf.org/2025/talks/juicemacs" title="Juicemacs: exploring speculative JIT compilation for ELisp in Java" data-slug="juicemacs"><title>10:15-10:35 Juicemacs: exploring speculative JIT compilation for ELisp in Java</title><rect x="125" y="142" opacity="0.8" width="84" height="27" stroke="black" stroke-dasharray="5,5,5" fill="lightblue"></rect><g transform="translate(125,167)"><text fill="black" x="0" y="0" font-size="10" transform="nil">juicemacs</text></g></a><a href="https://emacsconf.org/2025/talks/swanky" title="Swanky Python: Interactive development for Python" data-slug="swanky"><title>10:45-11:10 Swanky Python: Interactive development for Python</title><rect x="125" y="184" opacity="0.8" width="84" height="34" stroke="black" stroke-dasharray="5,5,5" fill="gray"></rect><g transform="translate(125,216)"><text fill="black" x="0" y="0" font-size="10" transform="nil">swanky</text></g></a><a href="https://emacsconf.org/2025/talks/python" title="Interactive Python programming in Emacs" data-slug="python"><title>11:20-11:40 Interactive Python programming in Emacs</title><rect x="125" y="232" opacity="0.8" width="84" height="27" stroke="black" stroke-dasharray="" fill="lightblue"></rect><g transform="translate(125,257)"><text fill="black" x="0" y="0" font-size="10" transform="nil">python</text></g></a><a href="https://emacsconf.org/2025/talks/llm" title="Emacs, editors, and LLM driven workflows" data-slug="llm"><title> 1:00- 1:25 Emacs, editors, and LLM driven workflows</title><rect x="125" y="369" opacity="0.8" width="84" height="34" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(125,401)"><text fill="black" x="0" y="0" font-size="10" transform="nil">llm</text></g></a><a href="https://emacsconf.org/2025/talks/private-ai" title="Emacs and private AI: a great match" data-slug="private-ai"><title> 1:45- 2:05 Emacs and private AI: a great match</title><rect x="125" y="431" opacity="0.8" width="84" height="27" stroke="black" stroke-dasharray="" fill="gray"></rect><g transform="translate(125,456)"><text fill="black" x="0" y="0" font-size="10" transform="nil">private-ai</text></g></a><a href="https://emacsconf.org/2025/talks/commonlisp" title="Common Lisp images communicating like-a-human through shared Emacs slime and eev" data-slug="commonlisp"><title> 2:25- 2:55 Common Lisp images communicating like-a-human through shared Emacs slime and eev</title><rect x="125" y="486" opacity="0.8" width="84" height="41" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(125,525)"><text fill="black" x="0" y="0" font-size="10" transform="nil">commonlisp</text></g></a><a href="https://emacsconf.org/2025/talks/graphics" title="Modern Emacs/Elisp hardware/software accelerated graphics" data-slug="graphics"><title> 3:05- 3:30 Modern Emacs/Elisp hardware/software accelerated graphics</title><rect x="125" y="540" opacity="0.8" width="84" height="34" stroke="black" stroke-dasharray="" fill="gray"></rect><g transform="translate(125,572)"><text fill="black" x="0" y="0" font-size="10" transform="nil">graphics</text></g></a><g transform="translate(3,40)"><line stroke="darkgray" x1="40" y1="0" x2="210" y2="0"></line><text fill="black" x="0" y="0" font-size="10" dy=".4em">9 AM</text></g><g transform="translate(3,122)"><line stroke="darkgray" x1="40" y1="0" x2="210" y2="0"></line><text fill="black" x="0" y="0" font-size="10" dy=".4em">10 AM</text></g><g transform="translate(3,204)"><line stroke="darkgray" x1="40" y1="0" x2="210" y2="0"></line><text fill="black" x="0" y="0" font-size="10" dy=".4em">11 AM</text></g><g transform="translate(3,287)"><line stroke="darkgray" x1="40" y1="0" x2="210" y2="0"></line><text fill="black" x="0" y="0" font-size="10" dy=".4em">12 PM</text></g><g transform="translate(3,369)"><line stroke="darkgray" x1="40" y1="0" x2="210" y2="0"></line><text fill="black" x="0" y="0" font-size="10" dy=".4em">1 PM</text></g><g transform="translate(3,451)"><line stroke="darkgray" x1="40" y1="0" x2="210" y2="0"></line><text fill="black" x="0" y="0" font-size="10" dy=".4em">2 PM</text></g><g transform="translate(3,534)"><line stroke="darkgray" x1="40" y1="0" x2="210" y2="0"></line><text fill="black" x="0" y="0" font-size="10" dy=".4em">3 PM</text></g><g transform="translate(3,616)"><line stroke="darkgray" x1="40" y1="0" x2="210" y2="0"></line><text fill="black" x="0" y="0" font-size="10" dy=".4em">4 PM</text></g><g transform="translate(3,698)"><line stroke="darkgray" x1="40" y1="0" x2="210" y2="0"></line><text fill="black" x="0" y="0" font-size="10" dy=".4em">5 PM</text></g></g><g transform="translate(250,0)"><title>Schedule for Sunday</title><rect width="250" height="700" x="0" y="0" fill="white"></rect><text font-size="10" fill="black" y="30" x="3">Sunday</text><a href="https://emacsconf.org/2025/talks/sun-open" title="Sunday opening remarks" data-slug="sun-open"><title> 9:00- 9:10 Sunday opening remarks</title><rect x="40" y="40" opacity="0.8" width="84" height="13" stroke="black" stroke-dasharray="5,5,5" fill="gray"></rect><g transform="translate(40,51)"><text fill="black" x="0" y="0" font-size="10" transform="nil">sun-open</text></g></a><a href="https://emacsconf.org/2025/talks/modern" title="Some problems of modernizing Emacs" data-slug="modern"><title> 9:10- 9:30 Some problems of modernizing Emacs</title><rect x="40" y="53" opacity="0.8" width="84" height="27" stroke="black" stroke-dasharray="5,5,5" fill="gray"></rect><g transform="translate(40,78)"><text fill="black" x="0" y="0" font-size="10" transform="nil">modern</text></g></a><a href="https://emacsconf.org/2025/talks/reader" title="An introduction to the Emacs Reader" data-slug="reader"><title> 9:40-10:15 An introduction to the Emacs Reader</title><rect x="40" y="94" opacity="0.8" width="84" height="48" stroke="black" stroke-dasharray="" fill="gray"></rect><g transform="translate(40,140)"><text fill="black" x="0" y="0" font-size="10" transform="nil">reader</text></g></a><a href="https://emacsconf.org/2025/talks/weights" title="Weightlifting tracking with Emacs on Android" data-slug="weights"><title>10:35-10:45 Weightlifting tracking with Emacs on Android</title><rect x="40" y="170" opacity="0.8" width="84" height="13" stroke="black" stroke-dasharray="" fill="lightblue"></rect><g transform="translate(40,181)"><text fill="black" x="0" y="0" font-size="10" transform="nil">weights</text></g></a><a href="https://emacsconf.org/2025/talks/completion" title="corfu+yasnippet: Easier than I thought" data-slug="completion"><title>11:05-11:25 corfu+yasnippet: Easier than I thought</title><rect x="40" y="211" opacity="0.8" width="84" height="27" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(40,236)"><text fill="black" x="0" y="0" font-size="10" transform="nil">completion</text></g></a><a href="https://emacsconf.org/2025/talks/zettelkasten" title="Zettelkasten for regular Emacs hackers" data-slug="zettelkasten"><title> 1:00- 1:25 Zettelkasten for regular Emacs hackers</title><rect x="40" y="369" opacity="0.8" width="84" height="34" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(40,401)"><text fill="black" x="0" y="0" font-size="10" transform="nil">zettelkasten</text></g></a><a href="https://emacsconf.org/2025/talks/hyperboleqa" title="Questions and answers to help you fly with Hyperbole" data-slug="hyperboleqa"><title> 1:45- 2:15 Questions and answers to help you fly with Hyperbole</title><rect x="40" y="431" opacity="0.8" width="84" height="41" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(40,470)"><text fill="black" x="0" y="0" font-size="10" transform="nil">hyperboleqa</text></g></a><a href="https://emacsconf.org/2025/talks/gardening" title="Gardening in Emacs: A Windows user's tale of tending, tweaking, and triumph" data-slug="gardening"><title> 2:15- 2:35 Gardening in Emacs: A Windows user's tale of tending, tweaking, and triumph</title><rect x="40" y="472" opacity="0.8" width="84" height="27" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(40,497)"><text fill="black" x="0" y="0" font-size="10" transform="nil">gardening</text></g></a><a href="https://emacsconf.org/2025/talks/bookclub-tapas" title="Bookclub tapas" data-slug="bookclub-tapas"><title> 2:45- 3:20 Bookclub tapas</title><rect x="40" y="513" opacity="0.8" width="84" height="48" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(40,559)"><text fill="black" x="0" y="0" font-size="10" transform="nil">bookclub-tapas</text></g></a><a href="https://emacsconf.org/2025/talks/sun-close" title="Sunday closing remarks" data-slug="sun-close"><title> 3:40- 3:50 Sunday closing remarks</title><rect x="40" y="589" opacity="0.8" width="84" height="13" stroke="black" stroke-dasharray="" fill="gray"></rect><g transform="translate(40,600)"><text fill="black" x="0" y="0" font-size="10" transform="nil">sun-close</text></g></a><g transform="translate(3,40)"><line stroke="darkgray" x1="40" y1="0" x2="210" y2="0"></line><text fill="black" x="0" y="0" font-size="10" dy=".4em">9 AM</text></g><g transform="translate(3,122)"><line stroke="darkgray" x1="40" y1="0" x2="210" y2="0"></line><text fill="black" x="0" y="0" font-size="10" dy=".4em">10 AM</text></g><g transform="translate(3,204)"><line stroke="darkgray" x1="40" y1="0" x2="210" y2="0"></line><text fill="black" x="0" y="0" font-size="10" dy=".4em">11 AM</text></g><g transform="translate(3,287)"><line stroke="darkgray" x1="40" y1="0" x2="210" y2="0"></line><text fill="black" x="0" y="0" font-size="10" dy=".4em">12 PM</text></g><g transform="translate(3,369)"><line stroke="darkgray" x1="40" y1="0" x2="210" y2="0"></line><text fill="black" x="0" y="0" font-size="10" dy=".4em">1 PM</text></g><g transform="translate(3,451)"><line stroke="darkgray" x1="40" y1="0" x2="210" y2="0"></line><text fill="black" x="0" y="0" font-size="10" dy=".4em">2 PM</text></g><g transform="translate(3,534)"><line stroke="darkgray" x1="40" y1="0" x2="210" y2="0"></line><text fill="black" x="0" y="0" font-size="10" dy=".4em">3 PM</text></g><g transform="translate(3,616)"><line stroke="darkgray" x1="40" y1="0" x2="210" y2="0"></line><text fill="black" x="0" y="0" font-size="10" dy=".4em">4 PM</text></g><g transform="translate(3,698)"><line stroke="darkgray" x1="40" y1="0" x2="210" y2="0"></line><text fill="black" x="0" y="0" font-size="10" dy=".4em">5 PM</text></g></g></svg>
\ No newline at end of file +<svg width="500" height="700" 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="250" height="700" x="0" y="0" fill="white"></rect><text font-size="10" fill="black" y="30" x="3">Saturday</text><a href="https://emacsconf.org/2025/talks/sat-open" title="Saturday opening remarks" data-slug="sat-open"><title> 9:00- 9:10 Saturday opening remarks</title><rect x="40" y="40" opacity="0.8" width="84" height="13" stroke="black" stroke-dasharray="5,5,5" fill="gray"></rect><g transform="translate(40,51)"><text fill="black" x="0" y="0" font-size="10" transform="nil">sat-open</text></g></a><a href="https://emacsconf.org/2025/talks/org-babel" title="Making Org-Babel reactive" data-slug="org-babel"><title> 9:10- 9:20 Making Org-Babel reactive</title><rect x="40" y="53" opacity="0.8" width="84" height="13" stroke="black" stroke-dasharray="5,5,5" fill="lightblue"></rect><g transform="translate(40,64)"><text fill="black" x="0" y="0" font-size="10" transform="nil">org-babel</text></g></a><a href="https://emacsconf.org/2025/talks/reference" title="Emacs as a fully-fledged reference manager" data-slug="reference"><title> 9:30- 9:55 Emacs as a fully-fledged reference manager</title><rect x="40" y="81" opacity="0.8" width="84" height="34" stroke="black" stroke-dasharray="" fill="gray"></rect><g transform="translate(40,113)"><text fill="black" x="0" y="0" font-size="10" transform="nil">reference</text></g></a><a href="https://emacsconf.org/2025/talks/gmail" title="org-gmail: A deep integration of Gmail into your Org Mode" data-slug="gmail"><title>10:15-10:40 org-gmail: A deep integration of Gmail into your Org Mode</title><rect x="40" y="142" opacity="0.8" width="84" height="34" stroke="black" stroke-dasharray="5,5,5" fill="lightblue"></rect><g transform="translate(40,174)"><text fill="black" x="0" y="0" font-size="10" transform="nil">gmail</text></g></a><a href="https://emacsconf.org/2025/talks/gnus" title="Reading and writing emails in GNU Emacs with Gnus" data-slug="gnus"><title>10:50-11:15 Reading and writing emails in GNU Emacs with Gnus</title><rect x="40" y="190" opacity="0.8" width="84" height="34" stroke="black" stroke-dasharray="" fill="gray"></rect><g transform="translate(40,222)"><text fill="black" x="0" y="0" font-size="10" transform="nil">gnus</text></g></a><a href="https://emacsconf.org/2025/talks/latex" title="LaTeX export in org-mode: the overhaul" data-slug="latex"><title>11:35-11:55 LaTeX export in org-mode: the overhaul</title><rect x="40" y="252" opacity="0.8" width="84" height="27" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(40,277)"><text fill="black" x="0" y="0" font-size="10" transform="nil">latex</text></g></a><a href="https://emacsconf.org/2025/talks/calc" title="Basic Calc functionality for engineering or electronics" data-slug="calc"><title> 1:00- 1:25 Basic Calc functionality for engineering or electronics</title><rect x="40" y="369" opacity="0.8" width="84" height="34" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(40,401)"><text fill="black" x="0" y="0" font-size="10" transform="nil">calc</text></g></a><a href="https://emacsconf.org/2025/talks/blee-lcnt" title="Blee-LCNT: An Emacs-centered content production and self-publication framework" data-slug="blee-lcnt"><title> 1:35- 2:15 Blee-LCNT: An Emacs-centered content production and self-publication framework</title><rect x="40" y="417" opacity="0.8" width="84" height="54" stroke="black" stroke-dasharray="" fill="gray"></rect><g transform="translate(40,469)"><text fill="black" x="0" y="0" font-size="10" transform="nil">blee-lcnt</text></g></a><a href="https://emacsconf.org/2025/talks/greader" title="GNU Emacs Greader (Gnamù Reader) mode is the best Emacs mode in existence" data-slug="greader"><title> 2:35- 2:40 GNU Emacs Greader (Gnamù Reader) mode is the best Emacs mode in existence</title><rect x="40" y="499" opacity="0.8" width="84" height="6" stroke="black" stroke-dasharray="5,5,5" fill="gray"></rect><g transform="translate(40,503)"><text fill="black" x="0" y="0" font-size="10" transform="nil">greader</text></g></a><a href="https://emacsconf.org/2025/talks/open-mic" title="Open session" data-slug="open-mic"><title> 2:50- 3:40 Open session</title><rect x="40" y="520" opacity="0.8" width="84" height="68" stroke="black" stroke-dasharray="" fill="gray"></rect><g transform="translate(40,586)"><text fill="black" x="0" y="0" font-size="10" transform="nil">open-mic</text></g></a><a href="https://emacsconf.org/2025/talks/sat-close" title="Saturday closing remarks / open session" data-slug="sat-close"><title> 4:00- 4:10 Saturday closing remarks / open session</title><rect x="40" y="616" opacity="0.8" width="84" height="13" stroke="black" stroke-dasharray="" fill="gray"></rect><g transform="translate(40,627)"><text fill="black" x="0" y="0" font-size="10" transform="nil">sat-close</text></g></a><a href="https://emacsconf.org/2025/talks/schemacs" title="One year progress update Schemacs (formerly Gypsum)" data-slug="schemacs"><title> 9:30- 9:55 One year progress update Schemacs (formerly Gypsum)</title><rect x="125" y="81" opacity="0.8" width="84" height="34" stroke="black" stroke-dasharray="" fill="lightblue"></rect><g transform="translate(125,113)"><text fill="black" x="0" y="0" font-size="10" transform="nil">schemacs</text></g></a><a href="https://emacsconf.org/2025/talks/juicemacs" title="Juicemacs: exploring speculative JIT compilation for ELisp in Java" data-slug="juicemacs"><title>10:15-10:35 Juicemacs: exploring speculative JIT compilation for ELisp in Java</title><rect x="125" y="142" opacity="0.8" width="84" height="27" stroke="black" stroke-dasharray="5,5,5" fill="lightblue"></rect><g transform="translate(125,167)"><text fill="black" x="0" y="0" font-size="10" transform="nil">juicemacs</text></g></a><a href="https://emacsconf.org/2025/talks/swanky" title="Swanky Python: Interactive development for Python" data-slug="swanky"><title>10:45-11:10 Swanky Python: Interactive development for Python</title><rect x="125" y="184" opacity="0.8" width="84" height="34" stroke="black" stroke-dasharray="5,5,5" fill="gray"></rect><g transform="translate(125,216)"><text fill="black" x="0" y="0" font-size="10" transform="nil">swanky</text></g></a><a href="https://emacsconf.org/2025/talks/python" title="Interactive Python programming in Emacs" data-slug="python"><title>11:20-11:40 Interactive Python programming in Emacs</title><rect x="125" y="232" opacity="0.8" width="84" height="27" stroke="black" stroke-dasharray="" fill="lightblue"></rect><g transform="translate(125,257)"><text fill="black" x="0" y="0" font-size="10" transform="nil">python</text></g></a><a href="https://emacsconf.org/2025/talks/llm" title="Emacs, editors, and LLM driven workflows" data-slug="llm"><title> 1:00- 1:25 Emacs, editors, and LLM driven workflows</title><rect x="125" y="369" opacity="0.8" width="84" height="34" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(125,401)"><text fill="black" x="0" y="0" font-size="10" transform="nil">llm</text></g></a><a href="https://emacsconf.org/2025/talks/private-ai" title="Emacs and private AI: a great match" data-slug="private-ai"><title> 1:45- 2:05 Emacs and private AI: a great match</title><rect x="125" y="431" opacity="0.8" width="84" height="27" stroke="black" stroke-dasharray="" fill="gray"></rect><g transform="translate(125,456)"><text fill="black" x="0" y="0" font-size="10" transform="nil">private-ai</text></g></a><a href="https://emacsconf.org/2025/talks/commonlisp" title="Common Lisp images communicating like-a-human through shared Emacs slime and eev" data-slug="commonlisp"><title> 2:25- 2:55 Common Lisp images communicating like-a-human through shared Emacs slime and eev</title><rect x="125" y="486" opacity="0.8" width="84" height="41" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(125,525)"><text fill="black" x="0" y="0" font-size="10" transform="nil">commonlisp</text></g></a><a href="https://emacsconf.org/2025/talks/graphics" title="Modern Emacs/Elisp hardware/software accelerated graphics" data-slug="graphics"><title> 3:05- 3:30 Modern Emacs/Elisp hardware/software accelerated graphics</title><rect x="125" y="540" opacity="0.8" width="84" height="34" stroke="black" stroke-dasharray="" fill="gray"></rect><g transform="translate(125,572)"><text fill="black" x="0" y="0" font-size="10" transform="nil">graphics</text></g></a><g transform="translate(3,40)"><line stroke="darkgray" x1="40" y1="0" x2="210" y2="0"></line><text fill="black" x="0" y="0" font-size="10" dy=".4em">9 AM</text></g><g transform="translate(3,122)"><line stroke="darkgray" x1="40" y1="0" x2="210" y2="0"></line><text fill="black" x="0" y="0" font-size="10" dy=".4em">10 AM</text></g><g transform="translate(3,204)"><line stroke="darkgray" x1="40" y1="0" x2="210" y2="0"></line><text fill="black" x="0" y="0" font-size="10" dy=".4em">11 AM</text></g><g transform="translate(3,287)"><line stroke="darkgray" x1="40" y1="0" x2="210" y2="0"></line><text fill="black" x="0" y="0" font-size="10" dy=".4em">12 PM</text></g><g transform="translate(3,369)"><line stroke="darkgray" x1="40" y1="0" x2="210" y2="0"></line><text fill="black" x="0" y="0" font-size="10" dy=".4em">1 PM</text></g><g transform="translate(3,451)"><line stroke="darkgray" x1="40" y1="0" x2="210" y2="0"></line><text fill="black" x="0" y="0" font-size="10" dy=".4em">2 PM</text></g><g transform="translate(3,534)"><line stroke="darkgray" x1="40" y1="0" x2="210" y2="0"></line><text fill="black" x="0" y="0" font-size="10" dy=".4em">3 PM</text></g><g transform="translate(3,616)"><line stroke="darkgray" x1="40" y1="0" x2="210" y2="0"></line><text fill="black" x="0" y="0" font-size="10" dy=".4em">4 PM</text></g><g transform="translate(3,698)"><line stroke="darkgray" x1="40" y1="0" x2="210" y2="0"></line><text fill="black" x="0" y="0" font-size="10" dy=".4em">5 PM</text></g></g><g transform="translate(250,0)"><title>Schedule for Sunday</title><rect width="250" height="700" x="0" y="0" fill="white"></rect><text font-size="10" fill="black" y="30" x="3">Sunday</text><a href="https://emacsconf.org/2025/talks/sun-open" title="Sunday opening remarks" data-slug="sun-open"><title> 9:00- 9:10 Sunday opening remarks</title><rect x="40" y="40" opacity="0.8" width="84" height="13" stroke="black" stroke-dasharray="5,5,5" fill="gray"></rect><g transform="translate(40,51)"><text fill="black" x="0" y="0" font-size="10" transform="nil">sun-open</text></g></a><a href="https://emacsconf.org/2025/talks/modern" title="Some problems of modernizing Emacs" data-slug="modern"><title> 9:10- 9:30 Some problems of modernizing Emacs</title><rect x="40" y="53" opacity="0.8" width="84" height="27" stroke="black" stroke-dasharray="5,5,5" fill="gray"></rect><g transform="translate(40,78)"><text fill="black" x="0" y="0" font-size="10" transform="nil">modern</text></g></a><a href="https://emacsconf.org/2025/talks/reader" title="An introduction to the Emacs Reader" data-slug="reader"><title> 9:40-10:15 An introduction to the Emacs Reader</title><rect x="40" y="94" opacity="0.8" width="84" height="48" stroke="black" stroke-dasharray="" fill="gray"></rect><g transform="translate(40,140)"><text fill="black" x="0" y="0" font-size="10" transform="nil">reader</text></g></a><a href="https://emacsconf.org/2025/talks/weights" title="Weightlifting tracking with Emacs on Android" data-slug="weights"><title>10:35-10:45 Weightlifting tracking with Emacs on Android</title><rect x="40" y="170" opacity="0.8" width="84" height="13" stroke="black" stroke-dasharray="" fill="lightblue"></rect><g transform="translate(40,181)"><text fill="black" x="0" y="0" font-size="10" transform="nil">weights</text></g></a><a href="https://emacsconf.org/2025/talks/completion" title="corfu+yasnippet: Easier than I thought" data-slug="completion"><title>11:05-11:25 corfu+yasnippet: Easier than I thought</title><rect x="40" y="211" opacity="0.8" width="84" height="27" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(40,236)"><text fill="black" x="0" y="0" font-size="10" transform="nil">completion</text></g></a><a href="https://emacsconf.org/2025/talks/zettelkasten" title="Zettelkasten for regular Emacs hackers" data-slug="zettelkasten"><title> 1:00- 1:25 Zettelkasten for regular Emacs hackers</title><rect x="40" y="369" opacity="0.8" width="84" height="34" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(40,401)"><text fill="black" x="0" y="0" font-size="10" transform="nil">zettelkasten</text></g></a><a href="https://emacsconf.org/2025/talks/hyperboleqa" title="Questions and answers to help you fly with Hyperbole" data-slug="hyperboleqa"><title> 1:45- 2:15 Questions and answers to help you fly with Hyperbole</title><rect x="40" y="431" opacity="0.8" width="84" height="41" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(40,470)"><text fill="black" x="0" y="0" font-size="10" transform="nil">hyperboleqa</text></g></a><a href="https://emacsconf.org/2025/talks/gardening" title="Gardening in Emacs: A Windows user's tale of tending, tweaking, and triumph" data-slug="gardening"><title> 2:15- 2:35 Gardening in Emacs: A Windows user's tale of tending, tweaking, and triumph</title><rect x="40" y="472" opacity="0.8" width="84" height="27" stroke="black" stroke-dasharray="5,5,5" fill="peachpuff"></rect><g transform="translate(40,497)"><text fill="black" x="0" y="0" font-size="10" transform="nil">gardening</text></g></a><a href="https://emacsconf.org/2025/talks/bookclub-tapas" title="Bookclub tapas" data-slug="bookclub-tapas"><title> 2:45- 3:20 Bookclub tapas</title><rect x="40" y="513" opacity="0.8" width="84" height="48" stroke="black" stroke-dasharray="" fill="peachpuff"></rect><g transform="translate(40,559)"><text fill="black" x="0" y="0" font-size="10" transform="nil">bookclub-tapas</text></g></a><a href="https://emacsconf.org/2025/talks/sun-close" title="Sunday closing remarks" data-slug="sun-close"><title> 3:40- 3:50 Sunday closing remarks</title><rect x="40" y="589" opacity="0.8" width="84" height="13" stroke="black" stroke-dasharray="" fill="gray"></rect><g transform="translate(40,600)"><text fill="black" x="0" y="0" font-size="10" transform="nil">sun-close</text></g></a><g transform="translate(3,40)"><line stroke="darkgray" x1="40" y1="0" x2="210" y2="0"></line><text fill="black" x="0" y="0" font-size="10" dy=".4em">9 AM</text></g><g transform="translate(3,122)"><line stroke="darkgray" x1="40" y1="0" x2="210" y2="0"></line><text fill="black" x="0" y="0" font-size="10" dy=".4em">10 AM</text></g><g transform="translate(3,204)"><line stroke="darkgray" x1="40" y1="0" x2="210" y2="0"></line><text fill="black" x="0" y="0" font-size="10" dy=".4em">11 AM</text></g><g transform="translate(3,287)"><line stroke="darkgray" x1="40" y1="0" x2="210" y2="0"></line><text fill="black" x="0" y="0" font-size="10" dy=".4em">12 PM</text></g><g transform="translate(3,369)"><line stroke="darkgray" x1="40" y1="0" x2="210" y2="0"></line><text fill="black" x="0" y="0" font-size="10" dy=".4em">1 PM</text></g><g transform="translate(3,451)"><line stroke="darkgray" x1="40" y1="0" x2="210" y2="0"></line><text fill="black" x="0" y="0" font-size="10" dy=".4em">2 PM</text></g><g transform="translate(3,534)"><line stroke="darkgray" x1="40" y1="0" x2="210" y2="0"></line><text fill="black" x="0" y="0" font-size="10" dy=".4em">3 PM</text></g><g transform="translate(3,616)"><line stroke="darkgray" x1="40" y1="0" x2="210" y2="0"></line><text fill="black" x="0" y="0" font-size="10" dy=".4em">4 PM</text></g><g transform="translate(3,698)"><line stroke="darkgray" x1="40" y1="0" x2="210" y2="0"></line><text fill="black" x="0" y="0" font-size="10" dy=".4em">5 PM</text></g></g></svg>
\ No newline at end of file diff --git a/organizers-notebook.md b/organizers-notebook.md index b3bd61c4..3cdcda26 100644 --- a/organizers-notebook.md +++ b/organizers-notebook.md @@ -39,29 +39,31 @@ This document is the general organizers' notebook that can be used as a starting - [Linode instance sizes](#general-infrastructure-linode-instance-sizes) - [File uploads](#upload) - [Media processing](#general-infrastructure-media-processing) - - [Wiki](#orgeaf5478) + - [Wiki](#org7f83d48) - [Icecast](#icecast) - [Watching pages](#watch) - [VNC](#vnc) - [Streaming with OBS](#obs) + - [Mumble](#org09cd092) - [Shell scripts](#general-infrastructure-shell-scripts) - [Backstage](#backstage) - - [IRC web client](#general-infrastructure-irc-web-client) + - [Thelounge IRC web client](#general-infrastructure-irc-web-client) - [Etherpad](#general-infrastructure-etherpad) - [Publishing media to the server and to the wiki](#media) + - [Automated publishing to the media server](#orgc40bf50) - [Automated IRC announcements](#general-infrastructure-automated-irc-announcements) - [BigBlueButton](#bbb) - [Manual IRC announcements](#general-infrastructure-manual-irc-announcements) + - [Check test crontab](#orgc7d6d2a) - [Confirm automated IRC announcements from res](#general-infrastructure-confirm-automated-irc-announcements-from-res) - [Low-res stream](#general-infrastructure-low-res-stream) - [Upload talks to YouTube](#general-infrastructure-upload-talks-to-youtube) - [Restream to YouTube](#general-infrastructure-restream-to-youtube) - - [Restream to Toobnix](#orgd102e79) + - [Restream to Toobnix](#orgdc911e7) + - [i3 window manager](#org692ea98) - [Other process notes](#other) - [Adding another user to BBB](#bbb-user) - - [When a talk is added after the schedule has already been drafted](#other-process-notes-when-a-talk-is-added-after-the-schedule-has-already-been-drafted) - - [When a talk is cancelled](#cancel-talk) - - [When a talk changes title](#other-process-notes-when-a-talk-changes-title) + - [Schedule changes](#org5f8f6b0) - [When a talk Q&A changes method](#change-talk-qa) - [To play the other stream](#other-process-notes-to-play-the-other-stream) - [When a system is down](#other-process-notes-when-a-system-is-down) @@ -479,25 +481,78 @@ Onboarding: <elisp:emacsconf-pad-prepopulate-shift-hyperlists> -### STARTED Check in with speakers for cancellations, adjustments +### DONE Check in with speakers for cancellations, adjustments emacsconf-mail-intro-to-all -### TODO Send check-in details, schedule update, etc. :email: - +### TODO Record opening remarks -### Two days before the conference -Go through the :tminustwo: tags. +### TODO Send check-in details, schedule update, etc. :email: ### One day before the conference -Go through the :tminusone: tags. - -- Set `emacsconf-publishing-phase` to `conference`. -- Set emacsconf-publish-include-pads to t and republish the info pages. +- [X] Set `emacsconf-publishing-phase` to `conference`. +- [X] Set emacsconf-publish-include-pads to t. +- [X] Republish the schedule and the info pages. +- [X] Update the conf.org and the wiki on res. (~/emacsconf-2025-private, ~/emacsconf-wiki) +- [X] Resize the BBB server to production levels with bbb-prod: 16 GB $0.1440/hour 6 CPUs +- [X] Send check-in details and last-minute schedule updates. +- [X] Start thelounge on front0: systemctl start thelounge. +- [X] Confirm I can connect to Mumble. +- [X] Resize front0 to production: front0 shared Linode 32GB 8 CPUs 640GB $0.2880/hour +- [X] Resize live0 to production: shared Linode 64GB 16 CPUs $0.5760/hour +- [X] Start the VNC servers. + + #!/bin/bash + # SSH to both + cd ~/proj/emacsconf/emacsconf-ansible + + # Gen + export TRACK=gen; TRACK_PORT=5905; export SSH_PORT=46668 + ssh emacsconf-$TRACK@res.emacsconf.org -p $SSH_PORT /home/emacsconf-$TRACK/bin/track-vnc + sleep 5 + ssh emacsconf-$TRACK@res.emacsconf.org -N -L $TRACK_PORT:127.0.0.1:$TRACK_PORT -p $SSH_PORT & + xvncviewer 127.0.0.1:$TRACK_PORT -shared -geometry 1280x720 -passwd vnc-passwd-$TRACK & + + # Dev + export TRACK=dev; export TRACK_PORT=5906; export SSH_PORT=46668 + ssh emacsconf-$TRACK@res.emacsconf.org -p $SSH_PORT /home/emacsconf-$TRACK/bin/track-vnc + sleep 5 + ssh emacsconf-$TRACK@res.emacsconf.org -N -L $TRACK_PORT:127.0.0.1:$TRACK_PORT -p $SSH_PORT & + xvncviewer 127.0.0.1:$TRACK_PORT -shared -geometry 1280x720 -passwd vnc-passwd-$TRACK & +- [X] Confirm that we can use “Start Recording” to stream to gen. + - [X] play-with-intro sat-open + - [X] <https://live.emacsconf.org/2025/watch/gen/> + - [X] mpv <https://live0.emacsconf.org/gen.webm> + - [X] play-with-intro sun-open (to check the overlays) + - [X] <https://live.emacsconf.org/2025/watch/gen-480p/> + - [X] mpv <https://live0.emacsconf.org/gen-480p.webm> +- [X] Confirm that we can stream to dev. + - [X] play-with-intro sat-open + - [X] <https://live.emacsconf.org/2025/watch/dev/> + - [X] mpv <https://live0.emacsconf.org/dev.webm> + - [X] play-with-intro sun-open (to check the overlays) + - [X] <https://live.emacsconf.org/2025/watch/dev-480p/> + - [X] mpv <https://live0.emacsconf.org/dev-480p.webm> +- [X] Confirm that I can restream to YouTube. + - Settings - Stream, paste in the RTMP key for the relevant event, then Start Streaming. + - [X] gen + - [X] dev +- [X] Confirm that I can restream to Toobnix + - [X] live0: restream-gen-toobnix + - [X] live0: restream-dev-toobnix +- [X] Check automated announcements and publishing + - [X] orga@res: talk sat-open TO\_STREAM + - [X] <https://emacsconf.org/2025/talks/sat-open/> doesn’t have video + - [X] <https://media.emacsconf.org/2025> doesn’t have it + - orga@res: talk sat-open PLAYING + - [X] <https://emacsconf.org/2025/talks/sat-open/> has video and transcript + - [X] <https://media.emacsconf.org/2025> has talk files + - [X] IRC announcement in #emacsconf-gen +- [X] Confirm icecast stats are available: <http://live0.emacsconf.org/admin/stats> (username: admin, password is in prod-vars.yml) <a id="conf"></a> @@ -523,6 +578,8 @@ dev: 226 peak + 79 peak lowres Sunday: gen: 89 peak + 10 peak lowres +<http://live0.emacsconf.org/admin/stats> (username: admin, password is in prod-vars.yml) + meet peak 409% CPU (100% is 1 CPU), average 69.4% front peak 70.66% CPU (100% is 1 CPU) live peak 552% CPU (100% is 1 CPU) average 144% @@ -797,14 +854,15 @@ After the conference: #!/bin/bash # export CONF_PUBLIC=1 - rsync -avzue ssh --exclude .lock-\* --exclude 'partial--*' res:~/cache/ ~/proj/emacsconf/2025/cache/ --exclude .git + rsync -avu ~/proj/emacsconf/2025/assets/intros/*--intro.* ~/proj/emacsconf/2025/cache/ + rsync -avzue ssh --exclude ffmpeg2pass* --exclude .lock-\* --exclude 'partial--*' res:~/cache/ ~/proj/emacsconf/2025/cache/ --exclude .git chmod ugo+r . -R - rsync -avzue ssh --exclude .lock-\* --exclude 'partial--*' res:~/cache/ ~/proj/emacsconf/2025/cache/ --exclude .git - rsync -avzue ssh --exclude 'partial--*' ~/proj/emacsconf/2025/cache/ res:~/cache/ $* --exclude .git + rsync -avzue ssh --exclude ffmpeg2pass* --exclude 'partial--*' ~/proj/emacsconf/2025/cache/ res:~/cache/ $* --exclude .git + rsync -avzue ssh --exclude ffmpeg2pass* --exclude 'partial--*' ~/proj/emacsconf/2025/cache/ orga@media:/var/www/media.emacsconf.org/2025/backstage/ $* --exclude .git ssh orga@media "cd ~/backstage; chmod ugo+r -- *" if [ ! -z "$CONF_PUBLIC" ]; then echo "Updating public media" - rsync -avzue ssh --exclude \*--original\* --exclude \*--reencoded\* ~/proj/emacsconf/2025/cache/ orga@media:/var/www/media.emacsconf.org/2025/ 3--exclude .git + rsync -avzue ssh --exclude \*--original\* --exclude ffmpeg2pass* --exclude \*--reencoded\* ~/proj/emacsconf/2025/cache/ orga@media:/var/www/media.emacsconf.org/2025/ 3--exclude .git fi rsync -avzue ssh ~/proj/emacsconf/2025/assets/ res:~/current/assets/ @@ -823,7 +881,7 @@ When a talk comes in: 9. `emacsconf-publish-backstage-index` -<a id="orgeaf5478"></a> +<a id="org7f83d48"></a> ## Wiki @@ -990,6 +1048,30 @@ icecast is on live0.emacsconf.org and can be restarted with `/etc/init.d/emacsco so that the year is updated in the configuration. +<a id="org09cd092"></a> + +## DONE Mumble + +Success: + +- [X] You can connect to Mumble on your preferred device(s). +- [X] You can broadcast to the emacsconf-gen channel. +- [X] You can broadcast to the emacsconf-dev channel. + +mumble.emacsconf.org is hosted on front. Start it with: + + sudo /etc/init.d/mumble-server start + +It listens on port 64738 + +Logs are in `/var/log/mumble-server`. + +To add a new account: + +- After they log in, register their user. +- Right-click on the server name. Edit - Groups. Add them to the org group. + + <a id="general-infrastructure-shell-scripts"></a> ## Shell scripts @@ -1106,15 +1188,20 @@ Other files might also have been uploaded by the speaker, such as slides or note <a id="general-infrastructure-irc-web-client"></a> -## IRC web client +## Thelounge IRC web client Success: +- [X] When the service is not running, the error page is displayed - [X] You can join from <https://chat.emacsconf.org> - [X] You can join from <https://live.emacsconf.org> and the channels end up as the latest ones +ansible: lounge tag + On front: -sudo -u thelounge node /usr/bin/thelounge start + +- To start: sudo systemctl start thelounge +- To stop: sudo systemctl stop thelounge ### DONE Ask libera.chat to increase IRC limits @@ -1157,14 +1244,13 @@ Start of year: 2. `ansible-playbook -i inventory.yml prod-playbook.yml --tags media` 3. Generate the index with `emacsconf-publish-update-media` -Confirm by setting a submitted talk to `PLAYING` and testing with -<elisp:emacsconf-publish-media-files-on-change> . The public media +Confirm by using `talk sat-open PLAYING` on res. The public media directory should have the files and the entry should be in the index. Switching it back to `TO_STREAM` and calling <elisp:emacsconf-publish-media-files-on-change> should remove it. -### TODO Switch public media to unprotected root before the conference :tminustwo: +### DONE Switch public media to unprotected root before the conference :tminustwo: 1. Clear public media directory. 2. Set `media_protect_root` to false in Ansible `group_vars/all.yml`. @@ -1173,14 +1259,31 @@ Switching it back to `TO_STREAM` and calling You can generate the index with `emacsconf-publish-update-media`. +<a id="orgc40bf50"></a> + +## Automated publishing to the media server + +`ansible-playbook -i inventory.yml prod-playbook.yml --tags publish,edit` + +On orga@res, in the screen session with the emacs server, make sure emacsconf-year and emacsconf-cache-dir refer to the current ones. + + <a id="general-infrastructure-automated-irc-announcements"></a> -## Automated IRC announcements +## DONE Automated IRC announcements Success: - [ ] When a talk starts playing, it is announced in the relevant channel +How it works: On res: + +/usr/local/bin/handle-session sudos to the orga user and calls the `/usr/local/bin/talk` shell script, + +You will need the private repository checked out to `orga/emacsconf-2025-private`, which is set up by the ansible playbook `publish` tag. + +This is by `/usr/local/bin/talk` on res, which connects to a running Emacs with emacsclient. Make sure the emacs thing has the right year. + <a id="bbb"></a> @@ -1332,6 +1435,11 @@ Success: - [X] You can /opall, /conftopic, and /broadcast +<a id="orgc7d6d2a"></a> + +## Check test crontab + + <a id="general-infrastructure-confirm-automated-irc-announcements-from-res"></a> ## TODO Confirm automated IRC announcements from res @@ -1339,6 +1447,8 @@ Success: Success: - A test schedule can generate announcements. + + See C-u M-x emacsconf-stream-crontabs <a id="general-infrastructure-low-res-stream"></a> @@ -1419,17 +1529,27 @@ Need to have set up shifts first. use `ansible-playbook -i inventory.yml prod-playbook.yml --tags restream` to set up -<a id="orgd102e79"></a> +<a id="orgdc911e7"></a> ## Restream to Toobnix -### STARTED Set up Toobnix restreaming events +### DONE Set up Toobnix restreaming events 1. <https://toobnix.org>, Publish, Permanent/recurring live 2. emacsconf-stream-toobnix-copy-livestream-description +<a id="org692ea98"></a> + +## i3 window manager + +termit is the terminal + +- M-d: launcher +- M-1, M-2: change workspace + + <a id="other"></a> # Other process notes @@ -1443,9 +1563,20 @@ Need to have set up shifts first. docker exec -it greenlight-v2 bundle exec rake user:create["USERNAME","EMAIL","PASSWORD","user"] -<a id="other-process-notes-when-a-talk-is-added-after-the-schedule-has-already-been-drafted"></a> +<a id="org5f8f6b0"></a> + +## Schedule changes + +In general: -## When a talk is added after the schedule has already been drafted + (emacsconf-schedule-update-from-info) + (emacsconf-update-schedule) + (emacsconf-publish-watch-pages) + (emacsconf-publish-talks-json-to-files) + (emacsconf-publish-info-pages) + + +### When a talk is added after the schedule has already been drafted - [X] Add the talk to conf.org - [X] Add the talk ID to the draft schedule @@ -1463,21 +1594,23 @@ Need to have set up shifts first. - [ ] Record the intro -<a id="cancel-talk"></a> +### When a talk is cancelled -## When a talk is cancelled +<elisp:emacsconf-cancel-talk> 1. Update the status to CANCELLED. Update that specific talk with <elisp:emacsconf-publish-info-pages-for-talk>. 2. Rejig the schedule if needed, and update with <elisp:emacsconf-schedule-update-from-info> -3. Update the published schedule with <elisp:emacsconf-update-schedule> and push the wiki. -4. Regenerate the intros (before, after). <elisp:emacsconf-stream-generate-in-between-pages>, then use <elisp:subed-record-compile-video> in the intros file. -5. Resync the cache directory. -6. Consider updating the screenshots for sat-open and sun-open. +3. Update the published schedule with <elisp:emacsconf-update-schedule>. + +Manual steps: +1. Push the wiki. +2. Regenerate the intros (before, after). <elisp:emacsconf-stream-generate-in-between-pages>, then use <elisp:subed-record-compile-video> in the intros file. +3. Resync the cache directory. +4. Consider updating the screenshots for sat-open and sun-open. -<a id="other-process-notes-when-a-talk-changes-title"></a> -## When a talk changes title +### When a talk changes title 1. Update the title in conf.org. 2. Delete the FILE\_PREFIX property. diff --git a/organizers-notebook/index.org b/organizers-notebook/index.org index 5c242418..0488a9b3 100644 --- a/organizers-notebook/index.org +++ b/organizers-notebook/index.org @@ -484,13 +484,65 @@ SCHEDULED: <2025-12-02 Tue> - [X] Set ~emacsconf-publishing-phase~ to ~conference~. - [X] Set emacsconf-publish-include-pads to t. - [X] Republish the schedule and the info pages. -- [ ] Update the conf.org and the wiki on res. (~/emacsconf-2025-private, ~/emacsconf-wiki) -- [ ] Resize the BBB server to production levels with bbb-prod. -- [ ] Send check-in details and last-minute schedule updates. -- [ ] Start thelounge on front0: systemctl start thelounge. -- [ ] Confirm I can connect to Mumble. -- [ ] Start the VNC servers. Confirm that we can stream. -- [ ] Confirm that I can restream to Toobnix. +- [X] Update the conf.org and the wiki on res. (~/emacsconf-2025-private, ~/emacsconf-wiki) +- [X] Resize the BBB server to production levels with bbb-prod: 16 GB $0.1440/hour 6 CPUs +- [X] Send check-in details and last-minute schedule updates. +- [X] Start thelounge on front0: systemctl start thelounge. +- [X] Confirm I can connect to Mumble. +- [X] Resize front0 to production: front0 shared Linode 32GB 8 CPUs 640GB $0.2880/hour +- [X] Resize live0 to production: shared Linode 64GB 16 CPUs $0.5760/hour +- [X] Start the VNC servers. + #+begin_src sh :tangle emacsconf-set-up-tracks.sh + #!/bin/bash + # SSH to both + cd ~/proj/emacsconf/emacsconf-ansible + + # Gen + export TRACK=gen; TRACK_PORT=5905; export SSH_PORT=46668 + ssh emacsconf-$TRACK@res.emacsconf.org -p $SSH_PORT /home/emacsconf-$TRACK/bin/track-vnc + sleep 5 + ssh emacsconf-$TRACK@res.emacsconf.org -N -L $TRACK_PORT:127.0.0.1:$TRACK_PORT -p $SSH_PORT & + xvncviewer 127.0.0.1:$TRACK_PORT -shared -geometry 1280x720 -passwd vnc-passwd-$TRACK & + + # Dev + export TRACK=dev; export TRACK_PORT=5906; export SSH_PORT=46668 + ssh emacsconf-$TRACK@res.emacsconf.org -p $SSH_PORT /home/emacsconf-$TRACK/bin/track-vnc + sleep 5 + ssh emacsconf-$TRACK@res.emacsconf.org -N -L $TRACK_PORT:127.0.0.1:$TRACK_PORT -p $SSH_PORT & + xvncviewer 127.0.0.1:$TRACK_PORT -shared -geometry 1280x720 -passwd vnc-passwd-$TRACK & + #+end_src +- [X] Confirm that we can use "Start Recording" to stream to gen. + - [X] play-with-intro sat-open + - [X] https://live.emacsconf.org/2025/watch/gen/ + - [X] mpv https://live0.emacsconf.org/gen.webm + - [X] play-with-intro sun-open (to check the overlays) + - [X] https://live.emacsconf.org/2025/watch/gen-480p/ + - [X] mpv https://live0.emacsconf.org/gen-480p.webm +- [X] Confirm that we can stream to dev. + - [X] play-with-intro sat-open + - [X] https://live.emacsconf.org/2025/watch/dev/ + - [X] mpv https://live0.emacsconf.org/dev.webm + - [X] play-with-intro sun-open (to check the overlays) + - [X] https://live.emacsconf.org/2025/watch/dev-480p/ + - [X] mpv https://live0.emacsconf.org/dev-480p.webm +- [X] Confirm that I can restream to YouTube. + - Settings - Stream, paste in the RTMP key for the relevant event, then Start Streaming. + - [X] gen + - [X] dev +- [X] Confirm that I can restream to Toobnix + - [X] live0: restream-gen-toobnix + - [X] live0: restream-dev-toobnix +- [X] Check automated announcements and publishing + - [X] orga@res: talk sat-open TO_STREAM + - [X] https://emacsconf.org/2025/talks/sat-open/ doesn't have video + - [X] https://media.emacsconf.org/2025 doesn't have it + - orga@res: talk sat-open PLAYING + - [X] https://emacsconf.org/2025/talks/sat-open/ has video and transcript + - [X] https://media.emacsconf.org/2025 has talk files + - [X] IRC announcement in #emacsconf-gen +- [X] Confirm icecast stats are available: http://live0.emacsconf.org/admin/stats (username: admin, password is in prod-vars.yml) +- [X] Generate and check all the crontabs elisp:emacsconf-stream-crontabs +- [X] Generate all the hyperlists ** During the conference :PROPERTIES: @@ -514,6 +566,8 @@ dev: 226 peak + 79 peak lowres Sunday: gen: 89 peak + 10 peak lowres +http://live0.emacsconf.org/admin/stats (username: admin, password is in prod-vars.yml) + meet peak 409% CPU (100% is 1 CPU), average 69.4% front peak 70.66% CPU (100% is 1 CPU) live peak 552% CPU (100% is 1 CPU) average 144% @@ -1041,7 +1095,13 @@ sudo /etc/init.d/mumble-server start It listens on port 64738 -Logs are in ~/var/log/mumble-server~ +Logs are in ~/var/log/mumble-server~. + +To add a new account: + +- After they log in, register their user. +- Right-click on the server name. Edit - Groups. Add them to the org group. + ** Shell scripts :PROPERTIES: :CUSTOM_ID: general-infrastructure-shell-scripts @@ -1138,7 +1198,6 @@ The pad is at front0.emacsconf.org Non-JS way to get plain text or HTML of a pad: ex: - https://pad.emacsconf.org/orgmeetup/export/txt - https://pad.emacsconf.org/orgmeetup/export/html - ** Publishing media to the server and to the wiki :PROPERTIES: :CUSTOM_ID: media @@ -1477,7 +1536,8 @@ Need to have set up shifts first. use =ansible-playbook -i inventory.yml prod-playbook.yml --tags restream= to set up ** Restream to Toobnix -*** STARTED Set up Toobnix restreaming events +*** DONE Set up Toobnix restreaming events +CLOSED: [2025-12-05 Fri 18:54] :PROPERTIES: :Effort: 0:30 :END: @@ -1487,6 +1547,12 @@ CLOCK: [2025-11-22 Sat 17:42]--[2025-11-23 Sun 12:15] => 18:33 1. https://toobnix.org, Publish, Permanent/recurring live 2. emacsconf-stream-toobnix-copy-livestream-description +** i3 window manager + +termit is the terminal + +- M-d: launcher +- M-1, M-2: change workspace * Other process notes :PROPERTIES: :CUSTOM_ID: other |
