[[!sidebar content=""]] This file is automatically exported from [/2023/organizers-notebook/index.org](/2023/organizers-notebook/index.org). You might prefer to navigate this as an Org file instead. To do so, [clone the wiki repository](https://emacsconf.org/edit/). Help wanted: - [Find volunteers for audio processing (normalization, noise reduction) and document the process](#audio) - [Video editing: the eval talk is a little bit out of sync](#eval-video-sync) (by 2023-11-15 Wed) Help wanted: - [Figure out a better way to handle 480p stream](#lowres) # Table of Contents - [Timeline](#timeline) - [Dry run](#dry-run) - [Dry run with more volunteers](#dry-run-2) - [About this document](#about-this-doc) - [Communications plan](#comms) - [Next emacsconf-org update](#emacsconf-org-2023-10-21) - [Good/better/best](#good-better-best) - [Phases](#phases) - [Draft CFP](#cfp) - [Distribute CFP](#distrib-cfp) - [Process submissions](#submission-process) - [Draft schedule for EmacsConf 2023](#draft-schedule) - [Prepare for the conference](#status) - [Get ready for production](#go-live):preflight: - [Harvest cool stuff](#org45dfd5e) - [Make things easier for next year](#org3dd5255) - [Volunteers](#coordinate-volunteers) - [Lessons learned](#org5fa50a9) - [Progress reports](#progress) - [E-mail templates](#templates) - [Review](#review) - [Acceptance](#acceptance) - [Archive](#archive) - [Check with hyperdrive and core if they’re willing to swap](#hyperdrive-core):decision: - [Test the idea of three tracks and more aligned times](#three-tracks):decision: # Timeline
CFP [2023-06-26 Mon]
CFP deadline [2023-09-14 Thu]
Speaker notifications [2023-09-25 Mon]
Publish schedule [2023-10-25 Wed]
Video submission deadline [2023-11-04 Sat]
EmacsConf [2023-12-02 Sat], [2023-12-03 Sun]
Last year, these were the actual dates: - July 17: CFP sent - Sept 18: Original CFP deadline - Sept 30: CFP closed after extension - Oct 1: acceptances sent ## TODO Dry run ## TODO Dry run with more volunteers # About this document Tags: - `conforg`: Requires access to private conf.org repository # Communications plan Objectives: - keep everyone in the loop without them feeling like they’re overloaded Speakers: - [X] Send all speakers backstage access and upload instructions - [ ] Send all speakers check-in instructions Volunteers: - [X] Send captioning volunteers the backstage info - [ ] Send past captioning volunteers an invitation to participate - ask when there’s a lot of load - [ ] Ask for help with audio processing ## Next emacsconf-org update backstage volunteers help wanted: audio processing intros # Good/better/best This table makes it easier to move the slider depending on who wants to volunteer and how much we can get done. At some point, we’ll figure out how to track our current status so we know what we need to scramble to do in order to get the conference off the ground. **bold** is our current goal. Feel free to volunteer for anything that interests you!
  Good Better Best
Autopilot offset TRAMP timers Crontab Can be toggled
480p Someone’s computer Separate node Ansible setup
Watch instructions Embed Reminder to prefer mpv  
Audio As is Normalized Noise reduction
Intros Standard, recorded Reviewed by speakers in backstage More details/context
# Phases ## DONE Draft CFP ### How to mark pages as drafts Put inside double square brackets: `!template id=pagedraft` ### Considerations We could see if there are parts of the CFP that we can remove or postpone. Here are some thoughts: - We might not need the 10+20+40 structure in the proposal. We did that before because people tend to propose longer talks, and we had to do lots of e-mail coordination in order to squeeze everything into one track. If we’re doing multiple streams, there’s less time pressure, so we might not need to confuse people with those requirements. I think it would still be good to nudge people towards 20 minutes for their prerecorded presentations (separate time for Q&A) instead of 40 minutes, because it’s good for people’s attention spans. As an incentive to consider a 5-10 minute talk, we can say that 5-10 minute videos can be played extra times during the conference to fill gaps. - Choices: - Keep the 10+20+40 structure so that people who want to propose longer talks are nudged to think about shorter versions - Strongly nudge people towards 20-minute talks, with repeats as the incentive for shorter talks and extra coordination/waiting needed for longer talks. People propose just the talk length they want (and can optionally propose other talk lengths if they want to be considered for them). - We added emergency contact info, public contact info, pronouns, and introduction to the submission form because we ended up going back and forth with people in previous years, and sometimes we had incomplete info and were panicking about how to reach people during the conference. We could drop this from the submission form and do a separate speaker information form. - Choices: - Talk submission, then speaker information form: less intimidating for speakers - Everything in one: easier for organizers ### Previous years - Ask for public e-mail or contact information, IRC handle in CFP - Added to submit page. - Be even more stringent about the 10/20/40-min splits. A lot of speakers still default to the 20- or 40-min formats without providing us shorter formats, and that puts strain on our schedule and requires us to use a different template for the notification (which can be confusing). We need to stress that not respecting the format makes it harder not only for the organizers, but also for the speakers themselves (since they will have to rethink their presentation). Maybe we can have an e-mail template for a quick reply that says something like “Just in case we need to squeeze talks into shorter times, could you please also propose an outline for a possible 10-minute talk that could get people interested in your topic and point them to where they can find out more?” - sachac: I’d love to experiment with rolling acceptances. If people have a good 10-20 minute version of their talk and we want to accept it in the program, it would be nice to be able to say yes early so that they can start working on it. We can work with any duplication of content in later proposals. - Two people is the sweet number of reviewers to have for the proposals before sending the notifications, and there’d be diminishing returns with more. Two is enough to release the pressure on SCHED, verify the metadata (esp. speaker availability), and suggest a different ordering where appropriate. It can take a long time to comb through the proposals (roughly 10 proposals per hour), and whilst it’d be difficult to justify more in-depth reviewers, other orgas can do a shallow-pass to catch red-flags or discuss the submissions as they come in. Other organizers can always chime in on topics they particularly care about so that their encouraging comments or suggestions can be included in the acceptance e-mail. - sachac: Who wants to help me with this? - We extended CFP-end by two weeks this year, but that made it coincide with speaker-notifs, and that’s awkward. Next time, we should only extend the CFP by one week to avoid having to scramble with the schedule until the very last day. - Proposed dates in have similar spacing, so yeah, we’ll want to extend by only one week. - Some people assume that they have to suggest longer formats even if they intend their talks to be 10′ or 20′. We should change the wording on the CFP to ask them to only provide alternatives for shorter formats, not longer. - Added a brief note to CFP. - It was hard to squeeze all the org/hyperbole talk on day-1. Generally, the people who submit these kinds of talk come from all over the world, and US mornings are more accommodating than US evenings when it comes to timezones. We might consider having two org **mornings** rather than an org **day**; it would give us more flexibility with those talks. - Let’s see if we can do two streams again. That was fun. - We’re starting to reach critical mass on the org-talks. We might want to consider splitting the org-talks and the dev-talks into two distinct events to allow them to grow independently. - Let’s see if we can do two streams again. That was fun. - We should associate time-of-day with CFP-deadline; otherwise, the scheduler has to be on edge until the very end of the day. It’s worse this year because we made CFP-end coincide with speaker-notif, so this might not be as much of a problem next year. - If we do rolling acceptances and we extend by at most one week instead of two, this should be fine. - It’s easier for us to extend beyond 5pm than to go before 9am (especially for the West coast). Extending beyond 5pm puts strain on European organizers and volunteers, though. - Time pressure should be alleviated with multiple streams. - Sometimes, ikiwiki on front0 took a lot of time to process the new commits. sachac assumed this is due to a faulty regex parsing. We should be able to find out more by looking at the logs from ikiwiki after a slow commit. - Seems speedy at the moment. - Ask for preferred timezone in CFP - Added to availability. - Check with John Wiegley re: schedule - we always happen to coincide with his work trips - I checked with him and the people at his work don’t have a schedule yet, so we should go ahead and plan ### Lessons learned for next year - Maybe incentivize proper timezone specification by saying we can translate times to their local time? - Make sure to include cfp.org as an attachment instead of inline ### Other thoughts - sachac: bandali likes having the commitment to freedom section in the CFP as a form of activism - sachac: I thought about pulling the deadline back to Sept 1, but it might be good to keep it at Sept 14 so that anyone who tends to work with the schoolyear can still have a little time to work on it. ## DONE Distribute CFP ### DONE Add proposal review volunteers to emacsconf-submit - - Ask volunteers to e-mail an SSH public key so they can be added via the gitolite-admin repo to the conf.org repo for the year ### First announcement - Remove draft tags :sachac: - Post on emacsconf-discuss, emacs-tangents :bandali: :zaeph: - Sticky on reddit.com/r/emacs - Post in Emacs News :sachac: ### Reminder ## DONE Process submissions - Proposal received: sachac adds it to this document with status of PROPOSED - Fields: EMERGENCY, Q_AND_A, AVAILABILITY, NAME, PRONOUNS, TIME, MIN_TIME, MAX_TIME, SLUG, EMAIL, NAME_SHORT, CUSTOM_ID, TRACK, TIMEZONE, CATEGORY, DATE_SUBMITTED - jc doublechecks that the data has been correctly captured (especially EMAIL and AVAILABILITY) - People review it (sachac, jc, etc.) and weigh in - Proposal accepted: sachac e-mails the speaker and sets status to WAITING\_FOR\_EMAIL\_CONFIRM - E-mail confirmation received: log it in the logbook - Schedule set: sachac e-mails the speaker and sets status to WAITING\_FOR\_SCHED\_CONFIRM ### 2023-08-14 EmacsConf 2023 CFP progress report (8 talks accepted so far, 1 to review, 6 todo) The end of the EmacsConf 2023 call for participation is one month away (Sept 14; ). Whee! So far, we’ve sent early acceptances to the following talks and added them to the program on the wiki ():
Duration Title Speaker
10 An Org-Mode based text adventure game for learning the basics of Emacs, inside Emacs, written in Emacs Lisp Chung-hong Chan
20 Authoring and presenting university courses with Emacs and a full libre software stack James Howell
20 Org-Mode workflow: informal reference tracking Christopher Howard
20 GNU Emacs for electronics, note-taking, and as lightweight IDE Anand Tamariya
10 A modern Emacs look-and-feel without pain Pedro A. Aranda
10 Writing a language server in OCaml for Emacs, fun, and profit Austin Theriault
20 LLM clients in Emacs, functionality and standardization Andrew Hyatt
10 The many ways to browse Hacker News from Emacs Mickael Kerjean
We sent the speakers in case anyone wants to get started on their presentations. There’s one talk that’s waiting for feedback on the emacsconf-submit before we send the early acceptance in about a week:
Duration Title Speaker
20 one.el: the static site generator for Emacs Lisp Programmers Tony Aldon
There are several talk proposals that are in progress (need to coordinate, don’t have speaker releases / full details / etc.):
Title Speaker
Emacs MultiMedia System (EMMS) Yoni Rabkin
Emacs development updates John Wiegley
Watch Over Our Folders Bastien Guerry
Emacs community information sharing? Jake B
Emacs saves the Web Yuchen Pei
How to build an Emacs 2: Revenge of the Lem Fermin
This time last year, we had 2 proposals, with most of the proposals coming in at the end of the CFP. This was usually when we started panicking about not having lots of proposals, but I think we can skip stressing about it this year. Even with the program as it is now, we’d already have a pretty fun EmacsConf. Can’t wait to see what it’ll look like when more people get their proposals in! bandali, maybe we can do a 1-month and/or 2-week reminder about the CFP deadline? I’d like to see if we can get away without officially extending the CFP this time. Sacha ### Lessons learned from the CFP acceptance phase :lessons: - Early acceptances are nice. A few got comments within the 1-week period, which helped refine the talk idea more. We probably don’t need to make this a 2-week review period. - It’s a good idea to send the review and acceptance e-mails even to fellow organizers/volunteers, even if they’re quite familiar with the page already. =) - We successfully didn’t panic about submissions, yay! It was nice to be able to draft schedules as we went along, and to compare the dates with last year’s trends. - I added some more automation for including a template in a mail reply. Changing the subject to `EmacsConf 2023 acceptance: talk title` made it easier to verify that talks had been responded to. - I added `emacsconf-mail-add-submission` for parsing submissions from e-mail and adding them to `emacsconf-org-file`. That was nice because it automatically saved `EMAIL`, `DATE_SUBMITTED`, and `DATE_TO_NOTIFY`. - Displaying the schedule as a list with time constraints made it easier to verify the time constraints and to see how I can fix errors. - Drafting the schedule in the public organizers notebook was nice because I could share that with the speakers and other volunteers. ### DONE E-mail the speakers the upload and backstage instructions ### Handling a late submission doc - [ ] Add talk entry to conf.org - [ ] Add talk to schedule in organizers notebook - [ ] Add talk to the wiki - [ ] Send speaker backstage information, upload information, and schedule - [ ] Create BBB room - [ ] Record intro ## Draft schedule for EmacsConf 2023 These times are in EST (GMT-5). Graphical view of the schedule Schedule for Saturday Saturday 9:00- 9:10 Saturday opening remarks sat-open 9:10- 9:20 An Org-Mode based text adventure game for learning the basics of Emacs, inside Emacs, written in Emacs Lisp adventure 9:30- 9:50 Authoring and presenting university courses with Emacs and a full libre software stack uni 10:05-10:25 Teaching computer and data science with literate programming tools teaching 10:40-10:50 Who needs Excel? Managing your students qualifications with org-table table 11:30-11:50 one.el: the static site generator for Emacs Lisp Programmers one 1:00- 1:10 Emacs turbo-charges my writing writing 1:25- 1:35 Why Nabokov would use Org-Mode if he were writing today nabokov 1:50- 2:10 Collaborative data processing and documenting using org-babel collab 2:20- 2:40 How I play TTRPGs in Emacs solo 2:55- 3:15 Org-Mode workflow: informal reference tracking ref 3:25- 3:35 (Un)entangling projects and repos unentangling 3:45- 3:55 Emacs development updates devel 4:10- 4:50 Emacs core development: how it works core 5:05- 5:15 Saturday closing remarks sat-close 10:00-10:10 MatplotLLM, iterative natural language data visualization in org-babel matplotllm 10:20-10:40 Enhancing productivity with voice computing voice 10:55-11:15 LLM clients in Emacs, functionality and standardization llm 1:00- 1:20 Improving compiler diagnostics with overlays overlay 1:35- 1:45 Editor Integrated REPL Driven Development for all languages eval 2:00- 3:00 REPLs in strange places: Lua, LaTeX, LPeg, LPegRex, TikZ repl 3:10- 3:50 Literate Documentation with Emacs and Org Mode doc 4:05- 4:45 Windows into Freedom windows 9 AM 10 AM 11 AM 12 PM 1 PM 2 PM 3 PM 4 PM 5 PM Schedule for Sunday Sunday 8:59- 9:04 Sunday opening remarks sun-open 9:05- 9:25 Top 10 ways Hyperbole amps up Emacs hyperamp 9:40-10:00 Using Koutline for stream of thought journaling koutline 10:10-10:25 Parallel text replacement parallel 10:35-10:45 Eat and Eat powered Eshell, fast featureful terminal inside Emacs eat 11:00-11:20 The browser in a buffer poltys 11:35-11:55 Speedcubing in Emacs cubing 1:00- 1:40 Emacs MultiMedia System (EMMS) emms 1:55- 2:25 Programming with steno steno 2:35- 2:45 Mentoring VS-Coders as an Emacsian (or How to show not tell people about the wonders of Emacs) mentor 3:10- 3:40 Emacs saves the Web (maybe) web 3:55- 4:15 Sharing Emacs is Caring Emacs: Emacs education and why I embraced video sharing 4:30- 4:40 Sunday closing remarks sun-close 10:00-10:20 Bringing joy to Scheme programming scheme 10:35-10:55 GNU Emacs: A World of Possibilities world 11:10-11:20 A modern Emacs look-and-feel without pain flat 11:35-11:55 The Emacsen family, the design of an Emacs and the importance of Lisp emacsen 1:00- 1:35 emacs-gc-stats: Does garbage collection actually slow down Emacs? gc 1:50- 2:30 hyperdrive.el: Peer-to-peer filesystem in Emacs hyperdrive 2:45- 3:00 Writing a language server in OCaml for Emacs, fun, and profit lspocaml 3:15- 3:45 What I learned by writing test cases for GNU Hyperbole test 4:00- 4:20 EmacsConf.org: How we use Org Mode and TRAMP to organize and run a multi-track conference emacsconf 9 AM 10 AM 11 AM 12 PM 1 PM 2 PM 3 PM 4 PM 5 PM - Legend: dashed line means non-BBB Q&A; light gray means penciled-in talk; yellow means video already submitted and being processed ### Draft schedule as a list - 2023-12-02 Sat 09:00-09:10 [sat-open](https://emacsconf.org/2023/talks/sat-open "Saturday opening remarks"): Saturday opening remarks - 2023-12-02 Sat 09:10-09:20 - <= 10:00 - [adventure](https://emacsconf.org/2023/talks/adventure "An Org-Mode based text adventure game for learning the basics of Emacs, inside Emacs, written in Emacs Lisp"): An Org-Mode based text adventure game for learning the basics of Emacs, inside Emacs, written in Emacs Lisp (Chung-hong Chan) - 2023-12-02 Sat 09:30-09:50 [uni](https://emacsconf.org/2023/talks/uni "Authoring and presenting university courses with Emacs and a full libre software stack"): Authoring and presenting university courses with Emacs and a full libre software stack (James Howell) - 2023-12-02 Sat 10:00-10:10 - <= 10:30 - [matplotllm](https://emacsconf.org/2023/talks/matplotllm "MatplotLLM, iterative natural language data visualization in org-babel"): MatplotLLM, iterative natural language data visualization in org-babel (Abhinav Tushar) - 2023-12-02 Sat 10:05-10:25 - on 2023-12-02 - [teaching](https://emacsconf.org/2023/talks/teaching "Teaching computer and data science with literate programming tools"): Teaching computer and data science with literate programming tools (Marcus Birkenkrahe) - 2023-12-02 Sat 10:20-10:40 [voice](https://emacsconf.org/2023/talks/voice "Enhancing productivity with voice computing"): Enhancing productivity with voice computing (Blaine Mooers) - 2023-12-02 Sat 10:40-10:50 - <= 11:00 - [table](https://emacsconf.org/2023/talks/table "Who needs Excel? Managing your students qualifications with org-table"): Who needs Excel? Managing your students qualifications with org-table (Daniel Molina) - 2023-12-02 Sat 10:55-11:15 - >= 10:00 - [llm](https://emacsconf.org/2023/talks/llm "LLM clients in Emacs, functionality and standardization"): LLM clients in Emacs, functionality and standardization (Andrew Hyatt) - 2023-12-02 Sat 11:05-11:15 - <= 15:00 - [taming](https://emacsconf.org/2023/talks/taming "Taming things with Org Mode"): Taming things with Org Mode (Gergely Nagy (algernon)) - 2023-12-02 Sat 11:30-11:50 - <= 13:00 - [one](https://emacsconf.org/2023/talks/one "one.el: the static site generator for Emacs Lisp Programmers"): one.el: the static site generator for Emacs Lisp Programmers (Tony Aldon) - 2023-12-02 Sat 13:00-13:10 [writing](https://emacsconf.org/2023/talks/writing "Emacs turbo-charges my writing"): Emacs turbo-charges my writing (Jeremy Friesen) - 2023-12-02 Sat 13:00-13:20 - >= 11:00 - [overlay](https://emacsconf.org/2023/talks/overlay "Improving compiler diagnostics with overlays"): Improving compiler diagnostics with overlays (Jeff Trull) - 2023-12-02 Sat 13:25-13:35 [nabokov](https://emacsconf.org/2023/talks/nabokov "Why Nabokov would use Org-Mode if he were writing today"): Why Nabokov would use Org-Mode if he were writing today (Edmund Jorgensen) - 2023-12-02 Sat 13:35-13:45 [eval](https://emacsconf.org/2023/talks/eval "Editor Integrated REPL Driven Development for all languages"): Editor Integrated REPL Driven Development for all languages (Musa Al-hassy) - 2023-12-02 Sat 13:50-14:10 - no live Q&A - [collab](https://emacsconf.org/2023/talks/collab "Collaborative data processing and documenting using org-babel"): Collaborative data processing and documenting using org-babel (Jonathan Hartman, Lukas C. Bossert) - 2023-12-02 Sat 14:00-15:00 [repl](https://emacsconf.org/2023/talks/repl "REPLs in strange places: Lua, LaTeX, LPeg, LPegRex, TikZ"): REPLs in strange places: Lua, LaTeX, LPeg, LPegRex, TikZ (Eduardo Ochs) - 2023-12-02 Sat 14:20-14:40 - >= 12:00 - [solo](https://emacsconf.org/2023/talks/solo "How I play TTRPGs in Emacs"): How I play TTRPGs in Emacs (Howard Abrams) - 2023-12-02 Sat 14:55-15:15 - >= 13:00 - [ref](https://emacsconf.org/2023/talks/ref "Org-Mode workflow: informal reference tracking"): Org-Mode workflow: informal reference tracking (Christopher Howard) - 2023-12-02 Sat 15:10-15:50 [doc](https://emacsconf.org/2023/talks/doc "Literate Documentation with Emacs and Org Mode"): Literate Documentation with Emacs and Org Mode (Mike Hamrick) - 2023-12-02 Sat 15:25-15:35 - between 15:00-16:00 - [unentangling](https://emacsconf.org/2023/talks/unentangling "(Un)entangling projects and repos"): (Un)entangling projects and repos (Alexey Bochkarev) - 2023-12-02 Sat 15:45-15:55 - >= 12:00 - [devel](https://emacsconf.org/2023/talks/devel "Emacs development updates"): Emacs development updates (John Wiegley) - 2023-12-02 Sat 16:05-16:45 [windows](https://emacsconf.org/2023/talks/windows "Windows into Freedom"): Windows into Freedom (Corwin Brust) - 2023-12-02 Sat 16:10-16:50 [core](https://emacsconf.org/2023/talks/core "Emacs core development: how it works"): Emacs core development: how it works (Stefan Kangas) - 2023-12-02 Sat 17:05-17:15 [sat-close](https://emacsconf.org/2023/talks/sat-close "Saturday closing remarks"): Saturday closing remarks - 2023-12-03 Sun 08:59-09:04 [sun-open](https://emacsconf.org/2023/talks/sun-open "Sunday opening remarks"): Sunday opening remarks - 2023-12-03 Sun 09:05-09:25 - <= 12:00 - [hyperamp](https://emacsconf.org/2023/talks/hyperamp "Top 10 ways Hyperbole amps up Emacs"): Top 10 ways Hyperbole amps up Emacs (Robert Weiner) - 2023-12-03 Sun 09:40-10:00 [koutline](https://emacsconf.org/2023/talks/koutline "Using Koutline for stream of thought journaling"): Using Koutline for stream of thought journaling (Matthew Jorgensen (PlasmaStrike)) - 2023-12-03 Sun 10:00-10:20 - <= 12:00 - [scheme](https://emacsconf.org/2023/talks/scheme "Bringing joy to Scheme programming"): Bringing joy to Scheme programming (Andrew Tropin) - 2023-12-03 Sun 10:10-10:25 - <= 11:00 - [parallel](https://emacsconf.org/2023/talks/parallel "Parallel text replacement"): Parallel text replacement (Lovro, Valentino Picotti) - 2023-12-03 Sun 10:35-10:45 - <= 13:00 - [eat](https://emacsconf.org/2023/talks/eat "Eat and Eat powered Eshell, fast featureful terminal inside Emacs"): Eat and Eat powered Eshell, fast featureful terminal inside Emacs (Akib Azmain Turja) - 2023-12-03 Sun 10:35-10:55 - <= 11:30 - [world](https://emacsconf.org/2023/talks/world "GNU Emacs: A World of Possibilities"): GNU Emacs: A World of Possibilities (Anand Tamariya) - 2023-12-03 Sun 11:00-11:20 - <= 13:00 - [poltys](https://emacsconf.org/2023/talks/poltys "The browser in a buffer"): The browser in a buffer (Michael Bauer) - 2023-12-03 Sun 11:10-11:20 - between 11:00-13:00 - [flat](https://emacsconf.org/2023/talks/flat "A modern Emacs look-and-feel without pain"): A modern Emacs look-and-feel without pain (Pedro A. Aranda) - 2023-12-03 Sun 11:35-11:55 - <= 17:00 - [cubing](https://emacsconf.org/2023/talks/cubing "Speedcubing in Emacs"): Speedcubing in Emacs (wasamasa) - 2023-12-03 Sun 11:35-11:55 - <= 13:00 - [emacsen](https://emacsconf.org/2023/talks/emacsen "The Emacsen family, the design of an Emacs and the importance of Lisp"): The Emacsen family, the design of an Emacs and the importance of Lisp (Fermin) - 2023-12-03 Sun 13:00-13:35 - <= 14:00 - [gc](https://emacsconf.org/2023/talks/gc "emacs-gc-stats: Does garbage collection actually slow down Emacs?"): emacs-gc-stats: Does garbage collection actually slow down Emacs? (Ihor Radchenko) - 2023-12-03 Sun 13:00-13:40 [emms](https://emacsconf.org/2023/talks/emms "Emacs MultiMedia System (EMMS)"): Emacs MultiMedia System (EMMS) (Yoni Rabkin) - 2023-12-03 Sun 13:50-14:30 - >= 11:00 - [hyperdrive](https://emacsconf.org/2023/talks/hyperdrive "hyperdrive.el: Peer-to-peer filesystem in Emacs"): hyperdrive.el: Peer-to-peer filesystem in Emacs (Joseph Turner and Protesilaos Stavrou) - 2023-12-03 Sun 13:55-14:25 [steno](https://emacsconf.org/2023/talks/steno "Programming with steno"): Programming with steno (Daniel Alejandro Tapia) - 2023-12-03 Sun 14:35-14:45 [mentor](https://emacsconf.org/2023/talks/mentor "Mentoring VS-Coders as an Emacsian (or How to show not tell people about the wonders of Emacs)"): Mentoring VS-Coders as an Emacsian (or How to show not tell people about the wonders of Emacs) (Jeremy Friesen) - 2023-12-03 Sun 14:45-15:00 [lspocaml](https://emacsconf.org/2023/talks/lspocaml "Writing a language server in OCaml for Emacs, fun, and profit"): Writing a language server in OCaml for Emacs, fun, and profit (Austin Theriault) - 2023-12-03 Sun 15:10-15:40 - >= 15:00 - [web](https://emacsconf.org/2023/talks/web "Emacs saves the Web (maybe)"): Emacs saves the Web (maybe) (Yuchen Pei) - 2023-12-03 Sun 15:15-15:45 - >= 12:00 - [test](https://emacsconf.org/2023/talks/test "What I learned by writing test cases for GNU Hyperbole"): What I learned by writing test cases for GNU Hyperbole (Mats Lidell) - 2023-12-03 Sun 15:55-16:15 [sharing](https://emacsconf.org/2023/talks/sharing "Sharing Emacs is Caring Emacs: Emacs education and why I embraced video"): Sharing Emacs is Caring Emacs: Emacs education and why I embraced video (Jacob Boxerman) - 2023-12-03 Sun 16:00-16:20 [emacsconf](https://emacsconf.org/2023/talks/emacsconf "EmacsConf.org: How we use Org Mode and TRAMP to organize and run a multi-track conference"): EmacsConf.org: How we use Org Mode and TRAMP to organize and run a multi-track conference (Sacha Chua) - 2023-12-03 Sun 16:30-16:40 [sun-close](https://emacsconf.org/2023/talks/sun-close "Sunday closing remarks"): Sunday closing remarks ### Schedule announcements - [2023-12-02 Sat] [repl](https://emacsconf.org/2023/talks/repl "REPLs in strange places: Lua, LaTeX, LPeg, LPegRex, TikZ") needs 60 minutes instead of 40, adjusting doc and windows - [2023-12-01 Fri] [gc](https://emacsconf.org/2023/talks/gc "emacs-gc-stats: Does garbage collection actually slow down Emacs?") needs 35 minutes, adjusting later talks ([hyperdrive](https://emacsconf.org/2023/talks/hyperdrive "hyperdrive.el: Peer-to-peer filesystem in Emacs"), [lspocaml](https://emacsconf.org/2023/talks/lspocaml "Writing a language server in OCaml for Emacs, fun, and profit"), [test](https://emacsconf.org/2023/talks/test "What I learned by writing test cases for GNU Hyperbole"), [emacsconf](https://emacsconf.org/2023/talks/emacsconf "EmacsConf.org: How we use Org Mode and TRAMP to organize and run a multi-track conference")) - [2023-12-01 Fri] [windows](https://emacsconf.org/2023/talks/windows "Windows into Freedom") now on Sat afternoon devel track and [emacsconf](https://emacsconf.org/2023/talks/emacsconf "EmacsConf.org: How we use Org Mode and TRAMP to organize and run a multi-track conference") now on Sunday afternoon devel track - [2023-12-01 Fri] Cancelled [taming](https://emacsconf.org/2023/talks/taming "Taming things with Org Mode") - [2023-11-29 Wed] Changed title for [voice](https://emacsconf.org/2023/talks/voice "Enhancing productivity with voice computing"), changed [table](https://emacsconf.org/2023/talks/table "Who needs Excel? Managing your students qualifications with org-table") Q&A to after the conference ### Schedule notes - **Schedule changes after the schedule FYI email from 2023-10-05**: - [2023-11-29 Wed] Allocated 15 minutes to [lspocaml](https://emacsconf.org/2023/talks/lspocaml "Writing a language server in OCaml for Emacs, fun, and profit") - [2023-11-23 Thu] Allocated 30 minutes to [test](https://emacsconf.org/2023/talks/test "What I learned by writing test cases for GNU Hyperbole") - [2023-11-14 Tue] Update [steno](https://emacsconf.org/2023/talks/steno "Programming with steno") title; add Prot to [hyperdrive](https://emacsconf.org/2023/talks/hyperdrive "hyperdrive.el: Peer-to-peer filesystem in Emacs") - [2023-11-04 Sat] Moved [emacsen](https://emacsconf.org/2023/talks/emacsen "The Emacsen family, the design of an Emacs and the importance of Lisp") earlier to accommodate live session, moved [test](https://emacsconf.org/2023/talks/test "What I learned by writing test cases for GNU Hyperbole") later to accommodate travel - [2023-10-31 Tue] Cancelled hn, added [doc](https://emacsconf.org/2023/talks/doc "Literate Documentation with Emacs and Org Mode") before [emacsconf](https://emacsconf.org/2023/talks/emacsconf "EmacsConf.org: How we use Org Mode and TRAMP to organize and run a multi-track conference") - Moved [hyperdrive](https://emacsconf.org/2023/talks/hyperdrive "hyperdrive.el: Peer-to-peer filesystem in Emacs") talk to general track; removed afternoon break. Changed [solo](https://emacsconf.org/2023/talks/solo "How I play TTRPGs in Emacs"), [unentangling](https://emacsconf.org/2023/talks/unentangling "(Un)entangling projects and repos"), [ref](https://emacsconf.org/2023/talks/ref "Org-Mode workflow: informal reference tracking"), [devel](https://emacsconf.org/2023/talks/devel "Emacs development updates"), [sat-close](https://emacsconf.org/2023/talks/sat-close "Saturday closing remarks"), [overlay](https://emacsconf.org/2023/talks/overlay "Improving compiler diagnostics with overlays"), [eval](https://emacsconf.org/2023/talks/eval "Editor Integrated REPL Driven Development for all languages"), [repl](https://emacsconf.org/2023/talks/repl "REPLs in strange places: Lua, LaTeX, LPeg, LPegRex, TikZ"), [hyperdrive](https://emacsconf.org/2023/talks/hyperdrive "hyperdrive.el: Peer-to-peer filesystem in Emacs"), and [world](https://emacsconf.org/2023/talks/world "GNU Emacs: A World of Possibilities"), but none of the talks moved by 2 hours or more, so no extra e-mails needed for now. - [2023-10-08 Sun] Added [core](https://emacsconf.org/2023/talks/core "Emacs core development: how it works"). Moved [hyperdrive](https://emacsconf.org/2023/talks/hyperdrive "hyperdrive.el: Peer-to-peer filesystem in Emacs") to Sun afternoon. - [2023-10-09 Mon] Renamed `extending` to [world](https://emacsconf.org/2023/talks/world "GNU Emacs: A World of Possibilities") and moved it to the morning to accommodate IST. - Saturday on the General track: Org day + misc - [adventure](https://emacsconf.org/2023/talks/adventure "An Org-Mode based text adventure game for learning the basics of Emacs, inside Emacs, written in Emacs Lisp") is the first talk because of availability constraints; would be nice to connect it to [solo](https://emacsconf.org/2023/talks/solo "How I play TTRPGs in Emacs") - [uni](https://emacsconf.org/2023/talks/uni "Authoring and presenting university courses with Emacs and a full libre software stack") for teaching, [teaching](https://emacsconf.org/2023/talks/teaching "Teaching computer and data science with literate programming tools") is also related, and [table](https://emacsconf.org/2023/talks/table "Who needs Excel? Managing your students qualifications with org-table") for grading - [taming](https://emacsconf.org/2023/talks/taming "Taming things with Org Mode") and [one](https://emacsconf.org/2023/talks/one "one.el: the static site generator for Emacs Lisp Programmers") both deal with exports in some way. [unentangling](https://emacsconf.org/2023/talks/unentangling "(Un)entangling projects and repos") would be nice to add here, but that one needs to be in the afternoon because of availability constraints. - [writing](https://emacsconf.org/2023/talks/writing "Emacs turbo-charges my writing") is connected to [nabokov](https://emacsconf.org/2023/talks/nabokov "Why Nabokov would use Org-Mode if he were writing today") (blog posts, novel). It’s also a little connected to [one](https://emacsconf.org/2023/talks/one "one.el: the static site generator for Emacs Lisp Programmers") (exporting a blog). - [collab](https://emacsconf.org/2023/talks/collab "Collaborative data processing and documenting using org-babel") and [solo](https://emacsconf.org/2023/talks/solo "How I play TTRPGs in Emacs") are amusing to pair together. - [unentangling](https://emacsconf.org/2023/talks/unentangling "(Un)entangling projects and repos") and [ref](https://emacsconf.org/2023/talks/ref "Org-Mode workflow: informal reference tracking") are also Org-related. [ref](https://emacsconf.org/2023/talks/ref "Org-Mode workflow: informal reference tracking") would be nice to place together with [nabokov](https://emacsconf.org/2023/talks/nabokov "Why Nabokov would use Org-Mode if he were writing today"), but that would move [unentangling](https://emacsconf.org/2023/talks/unentangling "(Un)entangling projects and repos") too late. - [devel](https://emacsconf.org/2023/talks/devel "Emacs development updates") is not Org-related, but probably good to share with everyone. - Saturday morning Development track: large language models, AI. Has to be morning because of [matplotllm](https://emacsconf.org/2023/talks/matplotllm "MatplotLLM, iterative natural language data visualization in org-babel"). [llm](https://emacsconf.org/2023/talks/llm "LLM clients in Emacs, functionality and standardization") is about general interfaces, so we can put that last. Could have a general LLM discussion after the talks. Can’t swap it with Sunday morning because [test](https://emacsconf.org/2023/talks/test "What I learned by writing test cases for GNU Hyperbole") should stick with [hyperamp](https://emacsconf.org/2023/talks/hyperamp "Top 10 ways Hyperbole amps up Emacs") and [koutline](https://emacsconf.org/2023/talks/koutline "Using Koutline for stream of thought journaling") (Hyperbole talks), and the Hyperbole talks won’t fit into Saturday morning - Saturday afternoon, developer track: REPLs, misc talks - start off with developer tweaks: [overlay](https://emacsconf.org/2023/talks/overlay "Improving compiler diagnostics with overlays") (compilation), and then [eval](https://emacsconf.org/2023/talks/eval "Editor Integrated REPL Driven Development for all languages") and [repl](https://emacsconf.org/2023/talks/repl "REPLs in strange places: Lua, LaTeX, LPeg, LPegRex, TikZ") are paired together - [hyperdrive](https://emacsconf.org/2023/talks/hyperdrive "hyperdrive.el: Peer-to-peer filesystem in Emacs"): adding another file protocol, using HTTP APIs - [world](https://emacsconf.org/2023/talks/world "GNU Emacs: A World of Possibilities") might be replays of demos + Q&A session if people are interested - Sunday morning gen: Hyperbole (gen track, then crossing over to dev for testing) + misc talks - Hyperbole mini-track is in the morning because of [test](https://emacsconf.org/2023/talks/test "What I learned by writing test cases for GNU Hyperbole")’s availability constraints; [hyperamp](https://emacsconf.org/2023/talks/hyperamp "Top 10 ways Hyperbole amps up Emacs") and [koutline](https://emacsconf.org/2023/talks/koutline "Using Koutline for stream of thought journaling") go before it. Try to avoid conflicts so they can attend each other’s talks - Sunday morning after [test](https://emacsconf.org/2023/talks/test "What I learned by writing test cases for GNU Hyperbole") could be a fun extended “let’s write tests together” session if someone wants to lead it - [parallel](https://emacsconf.org/2023/talks/parallel "Parallel text replacement") needs to go in the morning. Might be okay to include in the general talk. - [poltys](https://emacsconf.org/2023/talks/poltys "The browser in a buffer") and [cubing](https://emacsconf.org/2023/talks/cubing "Speedcubing in Emacs") aren’t related to Hyperbole, but we need to fit them into the schedule somewhere. It would be nice to connect [poltys](https://emacsconf.org/2023/talks/poltys "The browser in a buffer") (talking to web browsers from Emacs) to [web](https://emacsconf.org/2023/talks/web "Emacs saves the Web (maybe)") (doing web stuff in Emacs instead), but [poltys](https://emacsconf.org/2023/talks/poltys "The browser in a buffer") needs to be in the morning (which is pretty full) and [web](https://emacsconf.org/2023/talks/web "Emacs saves the Web (maybe)") is in the afternoon because Yuchen is in Australia/Sydney. - [cubing](https://emacsconf.org/2023/talks/cubing "Speedcubing in Emacs") can be something fun to transition to lunch, then. - Sunday afternoon gen: misc talks, community - [eat](https://emacsconf.org/2023/talks/eat "Eat and Eat powered Eshell, fast featureful terminal inside Emacs") is about shells and running commands, so it’s generally useful - [emms](https://emacsconf.org/2023/talks/emms "Emacs MultiMedia System (EMMS)") is a user+dev talk - community theme ([mentor](https://emacsconf.org/2023/talks/mentor "Mentoring VS-Coders as an Emacsian (or How to show not tell people about the wonders of Emacs)"), [hn](https://emacsconf.org/2023/talks/hn "The many ways to browse Hacker News from Emacs"), [sharing](https://emacsconf.org/2023/talks/sharing "Sharing Emacs is Caring Emacs: Emacs education and why I embraced video")), with an aside for [web](https://emacsconf.org/2023/talks/web "Emacs saves the Web (maybe)") (using Emacs as a client for stuff). [sharing](https://emacsconf.org/2023/talks/sharing "Sharing Emacs is Caring Emacs: Emacs education and why I embraced video") is possible closing keynote - encourage people to go out and explore/share all year? If not, [web](https://emacsconf.org/2023/talks/web "Emacs saves the Web (maybe)") could be good for a closing talk - encouraging people to use Emacs for more stuff. - Sunday dev: misc dev talks - Morning: - [test](https://emacsconf.org/2023/talks/test "What I learned by writing test cases for GNU Hyperbole") is related to the Hyperbole talks [hyperamp](https://emacsconf.org/2023/talks/hyperamp "Top 10 ways Hyperbole amps up Emacs") and [koutline](https://emacsconf.org/2023/talks/koutline "Using Koutline for stream of thought journaling"), so we don’t want to overlap with the Q&A for those talks - [flat](https://emacsconf.org/2023/talks/flat "A modern Emacs look-and-feel without pain"), [scheme](https://emacsconf.org/2023/talks/scheme "Bringing joy to Scheme programming"), [gc](https://emacsconf.org/2023/talks/gc "emacs-gc-stats: Does garbage collection actually slow down Emacs?"), [flat](https://emacsconf.org/2023/talks/flat "A modern Emacs look-and-feel without pain"), [windows](https://emacsconf.org/2023/talks/windows "Windows into Freedom"), [emacsconf](https://emacsconf.org/2023/talks/emacsconf "EmacsConf.org: How we use Org Mode and TRAMP to organize and run a multi-track conference"), [steno](https://emacsconf.org/2023/talks/steno "Programming with steno") - [emacsen](https://emacsconf.org/2023/talks/emacsen "The Emacsen family, the design of an Emacs and the importance of Lisp") is more high-level and can talk about other editors - checking with [web](https://emacsconf.org/2023/talks/web "Emacs saves the Web (maybe)") and [hn](https://emacsconf.org/2023/talks/hn "The many ways to browse Hacker News from Emacs") if ~3pm Sunday afternoon (~7am Mon local time) is okay with them. It would be nice to pair it with [hn](https://emacsconf.org/2023/talks/hn "The many ways to browse Hacker News from Emacs"), which is nice to connect to [mentor](https://emacsconf.org/2023/talks/mentor "Mentoring VS-Coders as an Emacsian (or How to show not tell people about the wonders of Emacs)") and [web](https://emacsconf.org/2023/talks/web "Emacs saves the Web (maybe)"). - Thinking about the flow: - General: Org day, then misc talks Sunday morning and part of Sunday afternoon. Ending with a focus on community and expanding Emacs. It would be nice to get people excited about connecting and sharing throughout the year. - Dev: people who are really curious about AI can connect on Saturday morning and keep the conversation going. Some programming tweaks are grouped together. The rest are mostly based on availability. - if the talks get cancelled, we can have an open meetup possibly with breakout rooms - coordination notes: - TODO [uni](https://emacsconf.org/2023/talks/uni "Authoring and presenting university courses with Emacs and a full libre software stack"), [teaching](https://emacsconf.org/2023/talks/teaching "Teaching computer and data science with literate programming tools"), [table](https://emacsconf.org/2023/talks/table "Who needs Excel? Managing your students qualifications with org-table") are all about Emacs, Org Mode, and teaching - TODO [repl](https://emacsconf.org/2023/talks/repl "REPLs in strange places: Lua, LaTeX, LPeg, LPegRex, TikZ"), [eval](https://emacsconf.org/2023/talks/eval "Editor Integrated REPL Driven Development for all languages") - [hyperamp](https://emacsconf.org/2023/talks/hyperamp "Top 10 ways Hyperbole amps up Emacs"), [koutline](https://emacsconf.org/2023/talks/koutline "Using Koutline for stream of thought journaling"), and [test](https://emacsconf.org/2023/talks/test "What I learned by writing test cases for GNU Hyperbole") are all in touch because they work on Hyperbole together - [hn](https://emacsconf.org/2023/talks/hn "The many ways to browse Hacker News from Emacs") and [web](https://emacsconf.org/2023/talks/web "Emacs saves the Web (maybe)") - [unentangling](https://emacsconf.org/2023/talks/unentangling "(Un)entangling projects and repos"), [taming](https://emacsconf.org/2023/talks/taming "Taming things with Org Mode")? - [matplotllm](https://emacsconf.org/2023/talks/matplotllm "MatplotLLM, iterative natural language data visualization in org-babel"), [voice](https://emacsconf.org/2023/talks/voice "Enhancing productivity with voice computing"), [llm](https://emacsconf.org/2023/talks/llm "LLM clients in Emacs, functionality and standardization") (so they don’t all have to define LLMs?) - The schedule doesn’t have neat aligned slots on purpose so that organizers can jump between streams if needed, and also because we have so many awesome talks. Somehow people managed to handle the schedule last year. =) - Next steps: - Schedule: We’ll e-mail the draft schedule to speakers so that they can get a sense of where they are in the schedule, see if they really want to make it to a conflicting session’s Q&A live (they’ll have early access to the videos), etc. - Infrastructure: - Dust off and document infrastructure, processes - Sort out access to media.emacsconf.org so that we can get the upload service up and running - Draft brief intros for talks, keeping in mind that we’re going to say them out loud - Speakers will work on videos, and we can help with nudges/coordination if needed ### DONE E-mail all the speakers a link to the draft schedule so that they can confirm that I’ve got their availability correctly coded and ask for any adjustments in case they really want to attend someone else’s Q&A session ### DONE Announce schedule publicly ### DONE Incorporate “About the speaker” info on the wiki pages :conforg: Good idea to include it because that gives people (a) more context on where a speaker is coming from, and (b) a feeling for the kinds of backgrounds and interests people have. ### TODO Follow up with people we haven’t heard from in a while When do we want to do this? We don’t have to worry too much, because we can offer them the option of doing it live, and we can have space in the schedule if they cancel last-minute. ## Prepare for the conference
ITEM TODO STATUS
Upload DONE Ready to go
Prerec DONE Ready to go
Captions INPROGRESS Ready to go; waiting for videos and captions
Backstage DONE Ready to go
Test assets DONE test videos generated
BBB   redirects created, confirmed; next: e-mail speakers testing/checkin instructions
VNC DONE confirmed access to emacsconf-gen and emacsconf-dev
OBS DONE confirmed that gen and dev can stream
Icecast DONE gen and dev confirmed with MPV
MPV DONE confirmed that mpv can watch both streams
Watch page DONE updated for 2023
Status page DONE ready to go
Public media DONE confirmed, set to protected so that we can test publishing live
Mumble DONE confirmed gen and dev can connect, receive audio
Etherpad DONE Ready to go, pads created
Pad proxy DONE Ready to go, pad.emacsconf.org works
Overlays DONE generated and uploaded
Intros INPROGRESS all intros recorded, should send them to speakers for review
IRC channels   Not yet started
IRC talk info   Not yet started
Announcements   Not yet started
Publishing updates live   Not yet started
Autopilot   Not yet started
YouTube   Not yet started
Peertube   Not yet started
480p   Delegated to corwin
Audio processing   Help wanted
### Status Graphical view of the schedule Schedule for Saturday Saturday 9:00- 9:10 Saturday opening remarks sat-open 9:10- 9:20 An Org-Mode based text adventure game for learning the basics of Emacs, inside Emacs, written in Emacs Lisp adventure 9:30- 9:50 Authoring and presenting university courses with Emacs and a full libre software stack uni 10:05-10:25 Teaching computer and data science with literate programming tools teaching 10:40-10:50 Who needs Excel? Managing your students qualifications with org-table table 11:30-11:50 one.el: the static site generator for Emacs Lisp Programmers one 1:00- 1:10 Emacs turbo-charges my writing writing 1:25- 1:35 Why Nabokov would use Org-Mode if he were writing today nabokov 1:50- 2:10 Collaborative data processing and documenting using org-babel collab 2:20- 2:40 How I play TTRPGs in Emacs solo 2:55- 3:15 Org-Mode workflow: informal reference tracking ref 3:25- 3:35 (Un)entangling projects and repos unentangling 3:45- 3:55 Emacs development updates devel 4:10- 4:50 Emacs core development: how it works core 5:05- 5:15 Saturday closing remarks sat-close 10:00-10:10 MatplotLLM, iterative natural language data visualization in org-babel matplotllm 10:20-10:40 Enhancing productivity with voice computing voice 10:55-11:15 LLM clients in Emacs, functionality and standardization llm 1:00- 1:20 Improving compiler diagnostics with overlays overlay 1:35- 1:45 Editor Integrated REPL Driven Development for all languages eval 2:00- 3:00 REPLs in strange places: Lua, LaTeX, LPeg, LPegRex, TikZ repl 3:10- 3:50 Literate Documentation with Emacs and Org Mode doc 4:05- 4:45 Windows into Freedom windows 9 AM 10 AM 11 AM 12 PM 1 PM 2 PM 3 PM 4 PM 5 PM Schedule for Sunday Sunday 8:59- 9:04 Sunday opening remarks sun-open 9:05- 9:25 Top 10 ways Hyperbole amps up Emacs hyperamp 9:40-10:00 Using Koutline for stream of thought journaling koutline 10:10-10:25 Parallel text replacement parallel 10:35-10:45 Eat and Eat powered Eshell, fast featureful terminal inside Emacs eat 11:00-11:20 The browser in a buffer poltys 11:35-11:55 Speedcubing in Emacs cubing 1:00- 1:40 Emacs MultiMedia System (EMMS) emms 1:55- 2:25 Programming with steno steno 2:35- 2:45 Mentoring VS-Coders as an Emacsian (or How to show not tell people about the wonders of Emacs) mentor 3:10- 3:40 Emacs saves the Web (maybe) web 3:55- 4:15 Sharing Emacs is Caring Emacs: Emacs education and why I embraced video sharing 4:30- 4:40 Sunday closing remarks sun-close 10:00-10:20 Bringing joy to Scheme programming scheme 10:35-10:55 GNU Emacs: A World of Possibilities world 11:10-11:20 A modern Emacs look-and-feel without pain flat 11:35-11:55 The Emacsen family, the design of an Emacs and the importance of Lisp emacsen 1:00- 1:35 emacs-gc-stats: Does garbage collection actually slow down Emacs? gc 1:50- 2:30 hyperdrive.el: Peer-to-peer filesystem in Emacs hyperdrive 2:45- 3:00 Writing a language server in OCaml for Emacs, fun, and profit lspocaml 3:15- 3:45 What I learned by writing test cases for GNU Hyperbole test 4:00- 4:20 EmacsConf.org: How we use Org Mode and TRAMP to organize and run a multi-track conference emacsconf 9 AM 10 AM 11 AM 12 PM 1 PM 2 PM 3 PM 4 PM 5 PM ### DONE Upload #### DONE Get access to media.emacsconf.org so that we can set up the upload service and the backstage area ##### DONE Decide what to do for backstage area and upload service :decision: - [2023-10-13 Fri]: Got access to media.emacsconf.org, set up the backstage area - res.emacsconf.org - up right away, so people can get started on captions - more memory than media.emacsconf.org - is the upload service thrashing? - media.emacsconf.org - does not interfere with res streaming during the conference itself - don’t need to send people multiple e-mails, risk confusion/out-of-date info - access to media.emacsconf.org might be sorted out by [2023-10-13 Fri] - not in a big rush yet ### DONE Prerec ##### Set up for the new year As orga@res: - mkdir /data/emacsconf/$year - rm ~/current - ln -s /data/emacsconf/$year current - ln -s /data/emacsconf/$year $year When we receive files - change the TODO status to PROCESSING - mkdir ~/current/$slug - copy the files to there - rename-original $slug $file - process-prerec $video - Copy the files to the res:~/cache, laptop:~/proj/emacsconf/2023/cache, and media:~/backstage - emacsconf-cache-all-video-data - emacsconf-publish-info-pages - emacsconf-publish-backstage-index (check that the reencode.sh process has kicked off; if not, call reencode.sh $video $prefix–reencoded.webm) ### INPROGRESS Captions - OpenAI Whisper SaaS () limits audio files to 25MB, so it’s probably easier to do it ourselves #### TODO E-mail previous captioning volunteers to see if they’re interested in helping out #### DONE E-mail captioning volunteers the backstage instructions #### DONE E-mail current caption volunteers backstage information, captioning process, etc. I’ll wait a few days for Yoni to get back to us about whether he wants to caption his own talk and/or seeing if other speakers will get their talks in. `emacsconf-mail-backstage-info` Hi ${name}! You’re getting this e-mail because you have volunteered to help out with captions for ${conf-name} ${year}. (Thank you so much!) I’m so excited! =) We’re starting to get recorded talks, which means it’s time to get captions going. People really appreciate the captions, especially when the captions have been lovingly edited by volunteers who change things like “Emax” to “Emacs” and “metaX” to “M-x”. Just like last year, we’re using OpenAI Whisper to give us a reasonable starting point for transcripts. If working from scratch works better for you, you’re welcome to do that too. We’ve set up ${backstage} as the backstage area where you can view the videos and resources uploaded so far. You can access it with the username "${backstage-user}“ and the password ”${backstage-password}“. Please keep the backstage password and other speakers’ talk resources secret. ${backstage-use} To call dibs on a video to caption, just send a message to me at sacha@sachachua.com and I can update the page so that it’s assigned to you. You can e-mail me the edited captions when you’re done. Don’t worry too much about timestamps; we can re-align the text with the audio afterwards. If life gets suddenly busy and you can’t see it all the way through, no worries. Just e-mail me what you’ve got and I’ll put it back in the pool. Every little bit helps! Thank you! Sacha Chua #### TODO E-mail the emacsconf-org mailing list the announcement and the invitation to volunteer #### TODO Try out Deepgram, play around with it for last-minute submissions? #### DONE Get the autocaptions for emms up in the backstage area #### Captions lessons learned :lessons: - OpenAI had a breaking API change, need to call `whisper.utils.get_writer` - vtt_writer = whisper.utils.get_writer('vtt', os.path.dirname(new_file)) txt_writer = whisper.utils.get_writer('txt', os.path.dirname(new_file)) vtt_writer(result, work['audio'], {'max_line_width': 60, 'max_line_count': None, 'highlight_words': None}) txt_writer(result, work['audio'], {'max_line_width': 60, 'max_line_count': None, 'highlight_words': None}) #### Reencoding ### DONE Backstage ### DONE Test assets #### DONE Generate test videos #### Try autopilot (let* ((offset-seconds 60) (start-time (time-add (current-time) offset-seconds)) (emacsconf-schedule-validation-functions nil) (emacsconf-schedule-default-buffer-minutes 1) (emacsconf-schedule-default-buffer-minutes-for-live-q-and-a 1) (emacsconf-schedule-strategies '(emacsconf-schedule-allocate-buffer-time emacsconf-schedule-copy-previous-track)) (schedule (emacsconf-schedule-prepare (emacsconf-schedule-inflate-sexp `(("GEN" :start ,(format-time-string "%Y-%m-%d %H:%M" start-time) :set-track "General") (sat-open :time 1) (adventure :time 1) ; pad Q&A (uni :time 1) ; live Q&A (teaching :time 1) (table :time 1) (taming :time 1) (one :time 1) (cubing :time 1) ; IRC ("DEV" :start ,(format-time-string "%Y-%m-%d %H:%M" (time-add start-time 60)) :set-track "Development") (matplotllm :time 1) (gc :time 1) ; pad (repl :time 1) ; IRC (voice :time 1) (llm :time 1) (overlay :time 1) (eval :time 1) (emacsconf :time 1)))))) (emacsconf-stream-crontabs t schedule)) (let* ((offset-seconds 240) (start-time (time-add (current-time) offset-seconds)) (emacsconf-schedule-validation-functions nil) (emacsconf-schedule-default-buffer-minutes 5) (emacsconf-schedule-default-buffer-minutes-for-live-q-and-a 5) (emacsconf-schedule-strategies '(emacsconf-schedule-ignore-fixed emacsconf-schedule-allocate-buffer-time emacsconf-schedule-copy-previous-track)) (schedule (emacsconf-schedule-prepare (emacsconf-schedule-inflate-sexp `(("GEN" :start ,(format-time-string "%Y-%m-%d %H:%M" start-time) :set-track "General") (sat-open) (sun-open) ("DEV" :start ,(format-time-string "%Y-%m-%d %H:%M" (time-add start-time 60)) :set-track "Development") (emacsconf)))))) (emacsconf-stream-crontabs nil schedule)) ### BBB Generate them for possibly live presentations as well? We’ll see. #### DONE Generate redirects We use redirects for Q&A sessions with BBB web conferences so that people can easily join the web conference. - : generate static redirects - #### DONE Generate BBB rooms BBB name convention from last year ec22-sat-am-dev Abin Simon (treesitter) That means things change if I move to a different time or track. Other option: ec23 Speaker Name (talk-ids) Deleting old rooms: (spookfox-js-injection-eval-in-active-tab "[...document.querySelectorAll('.delete-room')].filter((o) => o.getAttribute('data-name').match(/ec22/))[0].click(); document.querySelector('#delete-confirm').click();" t) Creating new rooms (defun emacsconf-spookfox-create-bbb (group) "Create a BBB room for this group of talks. GROUP is (email . (talk talk talk)). Needs a Spookfox connection." (interactive (list (emacsconf-mail-complete-email-group))) (let* ((bbb-name (format "%s (%s) - %s%s" (mapconcat (lambda (o) (plist-get o :slug)) (cdr group) ", ") (plist-get (cadr group) :speakers) emacsconf-id emacsconf-year)) path (retrieve-command (format "window.location.origin + [...document.querySelectorAll('h4.room-name-text')].find((o) => o.textContent.trim() == '%s').closest('tr').querySelector('.delete-room').getAttribute('data-path')" bbb-name)) (create-command (format "name=\"%s\"; console.debug(name); console.debug(document.querySelector('#create-room-block')); document.querySelector('#create-room-block').click(); console.debug(document.querySelector('#create-room-name')); document.querySelector('#create-room-name').value = name; document.querySelector('#room_mute_on_join').click(); document.querySelector('.create-room-button').click();" bbb-name))) (setq path (spookfox-js-injection-eval-in-active-tab retrieve-command t)) (unless path (kill-new create-command) (dolist (cmd (split-string create-command ";")) (spookfox-js-injection-eval-in-active-tab cmd t) (sleep-for 2)) (sleep-for 2) (setq path (spookfox-js-injection-eval-in-active-tab retrieve-command t))) (when path (dolist (talk (cdr group)) (save-window-excursion (emacsconf-with-talk-heading talk (org-entry-put (point) "ROOM" path)))) (cons bbb-name path)))) (let ((groups (emacsconf-mail-groups (seq-filter (lambda (o) (and (string-match "live" (or (plist-get o :q-and-a) "")) (not (plist-get o :bbb-room)))) (emacsconf-publish-prepare-for-display (emacsconf-get-talk-info)))))) (dolist (group groups) (emacsconf-spookfox-create-bbb group))) #### DONE Possibly generate BBB rooms for live presentations? #### DONE Send testing instructions ### DONE VNC We use VNC to connect to the X servers on res.emacsconf.org so that we can stream from it. Success: - [X] Confirm that you can connect to emacsconf-gen via VNC - [X] Confirm that you can connect to emacsconf-dev via VNC Setting up - #### Instructions NOTE: VNC+OBS doesn’t work well if you have a window manager that automatically resizes windows, like i3. Please configure your window manager so that the VNC window is not resized. 1. Install a VNC viewer on your system (ex: tigervnc-viewer). 2. Set up your local environment: - gen: export TRACK=gen; export TRACK\_PORT=5905; export SSH\_PORT=46668 - dev: export TRACK=dev; export TRACK\_PORT=5906; export SSH\_PORT=46668 3. Copy the password: scp emacsconf-$TRACK@res.emacsconf.org:~/.vnc/passwd vnc-passwd-$TRACK -p $SSH\_PORT 4. Forward your local ports and connect via VNC viewer to the appropriate forwarded port from your laptop: ssh emacsconf-$TRACK@res.emacsconf.org -N -L $TRACK_PORT:127.0.0.1:$TRACK_PORT -p $SSH_PORT & sleep 5 # Give it time to establish the tunnels xvncviewer 127.0.0.1:$TRACK_PORT -shared -geometry 1280x720 -passwd vnc-passwd-$TRACK & If you get the following error: channel 2: open failed: connect failed: Connection refused CConn: End of stream CConn: The connection was dropped by the server before the session could be established. then the VNC server hasn’t started yet. You can start it with ssh emacsconf-$TRACK@res.emacsconf.org -p $SSH_PORT /home/emacsconf-$TRACK/bin/track-vnc and then connect with: xvncviewer 127.0.0.1:$TRACK_PORT -shared -geometry 1280x720 -passwd vnc-passwd-$TRACK & #### TODO Ask bandali or zaeph to share their window manager configuration :bandali:zaeph: ### DONE OBS We use OBS to stream to Icecast on live.emacsconf.org. Success: Confirm that you can stream - [X] gen - [X] dev New year: reprovision with ansible-playbook -i inventory.yml prod-playbook.yml --tags obs so that the year is updated in the shell scripts. #### Instructions 1. [Connect to the VNC session for the track.](#vnc-instructions) 2. Start **recording** (not streaming). If you don’t see OBS when you connect, it’s probably on workspace 2, so you can switch with Alt-2. If you still don’t see it there, you can open a terminal with Alt-Enter and then run `track-obs`. After you start recording, confirm that it is now broadcasting to the stream. 3. Verify with MPV on your local system: mpv https://live0.emacsconf.org/$TRACK.webm & #### DONE Double-check OBS setup and streaming on res ### DONE Icecast Success: You can use [OBS+VNC to record](#obs-instructions), and the results can be viewed by mpv. - [X] Gen - [X] Dev New year: reprovision with ansible-playbook -i inventory.yml prod-playbook.yml --tags stream so that the year is updated in the configuration. This is on live.emacsconf.org and can be restarted with `/etc/init.d/emacsconf restart`. #### DONE Double-check icecast ### DONE MPV ### DONE Watch page live.emacsconf.org is on the front0.emacsconf.org server. To set up for the year: 1. Create directories and update the Nginx configuration ansible-playbook -i inventory.yml prod-playbook.yml --tags live 2. Generate the pages (emacsconf-publish-watch-pages) 3. Add the $year/watch to the wiki. 4. Create a $year/watch.md manually. ### DONE Status page Manually maintained /ssh:front0.emacsconf.org:/var/www/status.emacsconf.org/index.html ### DONE Public media Start of year: 1. Set `media_protect_root` to true in Ansible `group_vars/all.yml`. 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 . The public media directory should have the files and the entry should be in the index. Switching it back to `TO_STREAM` and calling should remove it. #### TODO Switch public media to unprotected root before the conference 1. Clear public media directory. 2. Set `media_protect_root` to false in Ansible `group_vars/all.yml`. 3. `ansible-playbook -i inventory.yml prod-playbook.yml --tags media` You can generate the index with `emacsconf-publish-update-media`. ### DONE Mumble If you see `Server connection rejected: Wrong certificate or password.`, use **Certificate Wizard** to reimport the .p12 file in that user’s home directory. ### DONE Etherpad #### DONE Create pads for all the talks Because the pads refer to the next and previous talks and include the talk titles, this is best redone after the schedule has settled down. ### DONE Pad proxy ### DONE Overlays ### INPROGRESS Intros Intro slides [elisp:emacsconf-subed-intro-subtitles](emacsconf-subed-intro-subtitles) #### DONE Regenerate overlays #### TODO Add all intros to the backstage so that people can review them #### TODO Record intro for Mike Hamrick Next, we have “Literate Documentation with Emacs and Org Mode”, by Mike Hamrick. He will answer questions via BigBlueButton. You can join using the URL from the talk page or ask questions through Etherpad or IRC. #### CANCELLED Write 1-2 sentence intros for all the talks We do a brief introduction before each talk so that people know the topic of the next talk, the pronunciation of the speaker’s name, the pronouns to use when referring to them, and the type of Q&A that will follow. The template we used last year was: “In this talk, SPEAKER shares TITLE OR SUMMARY. Afterwards, PRONOUN will handle questions over Q&A METHOD.” This year, we asked speakers to contribute a short introduction. These are in conf.org in the private repository. Many of the introductions are a little longer than the template, but we might be able to handle that. Some need to be rewritten into third-person (using the speaker’s name/pronouns instead of I). Some might be a bit of a tongue-twister and can be rewritten to be easier to say. We can store the introduction in the `INTRO_NOTE` property in conf.org. Actually recording the introductions can wait until closer to the conference because talk titles and Q&A methods can change. We can verify speaker name pronunciations at that time. Hmm… Actually, we can go ahead and record all of these so that speakers can doublecheck pronunciations, and then we’ll re-record them in case someone wants to get fancier about intros. ##### Intros :levels: - Good: Use the same template as before: In this talk, SPEAKER shares TITLE OR SUMMARY. Afterwards, PRONOUN will handle questions over Q&A METHOD. - Better: Include some more biographical information to give listeners some context. ##### DONE Do we want to use honorifics like Dr.? :decision: DECISION: Include in the intro-review email: > We will usually introduce you by your first name (or handle, if you > prefer to go by a pseudonym) but if you’d rather be introduced > differently (for example honorific followed by last-name, or whatever > you prefer), just let us know. Let’s see if we can decide on this by [2023-11-04 Sat] so that we can use it when recording the intros. - OPTION: Consistently using names without honorifics, even if indicated in the speaker-submitted intros (as in previous EmacsConfs) - Equality - votes: zaeph - CHOSEN: Asking speakers if they want us to use any honorifics in their intro: - Observes personal preferences - votes: corwin, max, jc (We can also say that we prefer not to use honorifics (it’s not an academic - Corwin’s suggested wording: We will usually introduce you by your first name (or handle, if you prefer to go by a pseudonym) but if you’d rather be introduced differently (for example honorific followed by last-name, or whatever you prefer) just let us know. conference) but we respect people’s preferences.) - OPTION: Using honorifics based on e-mail signatures and intros: - Recognizes credentials #### DONE Record intro videos with 1-2 sentence intros for all the talks #### DONE Record the rest of the intros #### DONE Generate intro slides We generate intro slides to display in between talks so that people can find out information about the previous talk and learn about the next talk. It includes talk titles, speaker names, URLs, and Q&A methods. The image will also be used for an introduction video if we can record one before the conference. We also generate overlays that show talk information during the talk itself. SVGs don’t support line-wrapping, so it helps to do a quick pass to make sure all the talks are displayed properly. Hmm… Maybe I should take the names and pronouns off the video overlay? Then there’s less worry about wrapping, and people can always go to the URL to get more information. #### TODO Ask speakers to review intros after they’ve uploaded their videos, since we might be able to check the pronunciation ourselves ### IRC channels - /opall - /conftopic - /deopall #### TODO Confirm that the emacsconf user can connect I think I had that on orga@res.emacsconf.org ### IRC talk info ### Announcements ### Publishing updates live ### Autopilot ### YouTube ### Peertube ### 480p Consider increasing memory/cpu configuration on live? #### TODO Figure out a better way to handle 480p stream :corwin: It kept dropping last year and sachac didn’t have the mental bandwidth to figure it out. Might need another node so that we don’t risk it getting killed for memory reasons? Corwin has volunteered to take this on ### Audio processing #### TODO Find volunteers for audio processing (normalization, noise reduction) and document the process :helpwanted: - audio normalization - noise reduction ### Other things people can help with #### TODO Video editing: the eval talk is a little bit out of sync :helpwanted: The circular video inset into is a little bit out of sync with the audio. Not sure if the screenshare is offset as well. Maybe just nudging the audio a little bit will be enough to bring these in sync? If someone would like to fix this, that would be awesome. ### TODO Write something for merging in information from previous years if not specified - availability - timezone - name - short name - pronouns ## Get ready for production :preflight: ### A day or two before #### DONE Update the variables group_vars/all.yml: test_mode: false media_protect_root: false protect_stream_with_password: false ansible-playbook -i inventory.ml prod-playbook.yml --tags stream ansible-playbook -i inventory.ml prod-playbook.yml --tags media #### DONE Test the 480p! #### DONE Resize the nodes :bandali: 2022: - Front: 16GB - Live: 64GB #### TODO Update the BigBlueButton rooms so that users are not all moderators (require 'emacsconf-spookfox) (dolist (talk (emacsconf-publish-prepare-for-display (emacsconf-get-talk-info))) (emacsconf-spookfox-update-bbb-settings talk '(("room_mute_on_join" . "true") ("room_all_join_moderator" . "false") ("room_anyone_can_start" . "true")) )) #### TODO Make sure conf.org and the publishing wiki are up to date ### On the day of the conference #### TODO Update the emacsconf-tracks status ## Harvest cool stuff ### Harvesting - download published recordings: (defun emacsconf-harvest-download-published-recordings (source dest) "Copy the command for downloading published recordings from SOURCE to DEST." (kill-new (mapconcat (lambda (o) (if (plist-get o :bbb-meeting-id) (format "rsync -avzue ssh %s%s %s\n" source (match-string 1 (plist-get o :bbb-rec)) dest) "")) (emacsconf-get-talk-info)))) ### TODO Announce that videos have been uploaded :emacsconf: ### When the speaker posts a video to their own channel :process: 1. Open the video. 2. Add it to the playlist. 3. Open the playlist: 4. Move the video to the correct place. 5. Open the old video. 6. Remove the old video from the playlist. 7. Edit the video. Add the link to the new video in the description. 8. Select **Editor** from the left side. Add an info card and maybe an end screen pointing to the new video. 9. Update the `YOUTUBE_URL` property in the conf.org file. Commit and push. ### DONE Figure out which published presentations don’t have any deskshare, so I can just upload those directly The following talks do not have deskshares and can therefore be published by copying webcams.webm. (seq-keep (lambda (o) (when (plist-get o :bbb-meeting-id) (let* ((xml-file (expand-file-name "deskshare.xml" (expand-file-name (plist-get o :bbb-meeting-id) emacsconf-harvest-bbb-published-dir))) (dom (and (file-exists-p xml-file) (xml-parse-file xml-file)))) (unless (and dom (dom-by-tag dom 'event)) (plist-get o :slug))))) (emacsconf-get-talk-info)) (defun emacsconf-harvest-bbb-copy-webcams-only-sessions () "Copy the webcam-only Q&A sessions as --answers.webm in the cache directory." (interactive) (seq-keep (lambda (o) (when (and (plist-get o :bbb-meeting-id) (file-exists-p (expand-file-name "video/webcams.webm" (expand-file-name (plist-get o :bbb-meeting-id) emacsconf-harvest-bbb-published-dir)))) (let* ((xml-file (expand-file-name "deskshare.xml" (expand-file-name (plist-get o :bbb-meeting-id) emacsconf-harvest-bbb-published-dir))) (dom (and (file-exists-p xml-file) (xml-parse-file xml-file)))) (unless (and dom (dom-by-tag dom 'event)) (unless (file-exists-p (expand-file-name (concat (plist-get o :file-prefix) "--answers.webm") emacsconf-cache-dir)) (copy-file (expand-file-name "video/webcams.webm" (expand-file-name (plist-get o :bbb-meeting-id) emacsconf-harvest-bbb-published-dir)) (expand-file-name (concat (plist-get o :file-prefix) "--answers.webm") emacsconf-cache-dir))) (plist-get o :slug))))) (emacsconf-get-talk-info))) (emacsconf-harvest-bbb-copy-webcams-only-sessions) (defun emacsconf-harvest-set-qa-public () (dolist (talk (emacsconf-publish-prepare-for-display (emacsconf-get-talk-info))) (when (emacsconf-talk-file talk "--answers.webm") (emacsconf-with-talk-heading talk (org-entry-put (point) "QA_PUBLIC" "1"))))) ### DONE Figure out which talks have screenshares and process them hmm, speed is about the same on my computer? The following talks have deskshares and need splicing. (seq-keep (lambda (o) (when (plist-get o :bbb-meeting-id) (let* ((xml-file (expand-file-name "deskshare.xml" (expand-file-name (plist-get o :bbb-meeting-id) emacsconf-harvest-bbb-published-dir))) (dom (and (file-exists-p xml-file) (xml-parse-file xml-file)))) (when (and dom (dom-by-tag dom 'event)) (plist-get o :slug))))) (emacsconf-get-talk-info)) (emacsconf-extract-replace-strings `((,(expand-file-name emacsconf-extract-bbb-published-dir) . "~/current/bbb-published/") (,(expand-file-name emacsconf-cache-dir) . "~/current/cache")) (mapconcat (lambda (slug) (let ((prefix (plist-get (emacsconf-resolve-talk (symbol-name slug)) :file-prefix))) (format "if [ ! -f ~/current/cache/%s--answers--original.webm ]; then\n %s && cp ~/current/cache/%s--answers.webm ~/current/cache/%s--answers--original.webm\nfi" prefix (emacsconf-get-ffmpeg-to-splice-webcam-and-recording (symbol-name slug)) prefix prefix))) '(teaching one writing sat-close hyperamp poltys sun-close voice scheme world flat emacsen gc) "\n")) ### SOMEDAY Clean up storage on media :emacsconf: ### DONE Move answers to main for live talks (mapconcat (lambda (o) (and (null (file-exists-p (expand-file-name (concat (plist-get o :file-prefix) "--main.webm") emacsconf-cache-dir))) (file-exists-p (expand-file-name (concat (plist-get o :file-prefix) "--answers.webm") emacsconf-cache-dir)) (format "cp %s %s; ../rm-from-cache %s\n" (concat (plist-get o :file-prefix) "--answers.webm") (concat (plist-get o :file-prefix) "--main.webm") (concat (plist-get o :file-prefix) "--answers.webm") ))) (emacsconf-get-talk-info) "") ## Make things easier for next year ### TODO Figure out better space usage for backstage vs public on media.emacsconf.org :emacsconf: Maybe I can use hard links or symbolic links? ### TODO Update the makefile :emacsconf: ## Volunteers ### DONE E-mail the list asking people to sign up Hi everyone! EmacsConf is coming up soon! Here are some roles we need help with during the conference: - Check-in (can handle both tracks): - Keep an eye out for speakers on IRC and in the BigBlueButton room - Give the speaker moderator permissions - - Host (one for each track): - Read out questions (and ask some of their own while waiting for questions to come in) - Remind people how to join - Keep the speaker company - Moderate the Q&A sessions as needed - Let us know when you want the Q&A session to be opened up to everyone - - Streamer (one for each track): - Manage what happens on the screen - Listen to the audio volume on the stream and adjust as needed, especially for BigBlueButton rooms - - Internet Relay Chat scribe (one for each track): - Check the IRC channel for questions and answers and copy them to the talk’s Etherpad - - Pad scribe (one for each track): - Add notes, questions, and answers to the talk’s Etherpad - - Other things you might be interested in helping out with - feel free to suggest! If you let us know which role(s) you’re interested in, the track(s) you’re interested in (general / development) and your availability for the conference (ex: Sat AM, Sat PM, Sun AM, Sun PM, or more granular as needed), I can make a shift schedule. If you’re new to the role and have questions, we can help you get started via e-mail or set up a training meeting. Let me know what you want to know and what times what might work for you. We can also set up a dry run in a couple of weeks so that people can try working together. Please let me know your availability for maybe Nov 11 or Nov 18 for a dry run. Looking forward to a nice smooth EmacsConf! Sacha ### TODO Prepare shift calendar, ask people to sign up AM: 9-12 PM EST, PM: 1-5 PM EST (plus a little extra for setup/transition) Saturday Dec 2 2023
  Host Streamer Checkin IRC Pad Coord
Gen AM zaeph sachac FlowyCoder     sachac
Gen PM zaph sachac FlowyCoder     sachac
Dev AM bandali sachac FlowyCoder     sachac
Dev PM bandali sachac FlowyCoder     sachac
Sunday Dec 3 2023
  Host Streamer Checkin IRC Pad Coord
Gen AM zaeph sachac FlowyCoder     sachac
Gen PM zaeph sachac FlowyCoder     sachac
Dev AM bandali sachac FlowyCoder     sachac
Dev PM bandali sachac FlowyCoder     sachac
Backups: - dev host/streamer: - gen host/streamer: - checkin, IRC, pad: Interested in a shift? Please e-mail and we’ll help you figure out what you need to learn. `(setq emacsconf-shifts (list ,@(apply #'append (mapcar (lambda (day) (let ((headers (mapcar (lambda (field) (intern (concat ":" (downcase (if (string-match org-link-bracket-re field) (match-string 2 field) field))))) (cdr (car (cadr day)))))) (mapcar (lambda (row) (apply #'append (list 'list :id (when (string-match "^\\([^ ]+\\) \\(AM\\|PM\\)" (car row)) (format "%s-%s-%s" (car day) (downcase (match-string 2 (car row))) (downcase (match-string 1 (car row))))) :track (if (string-match "^Gen" (car row)) "General" "Development") :start (format "%sT%s:00:00%s" (elt day 2) (if (string-match "AM" (car row)) "08" "13") emacsconf-timezone-offset) :end (format "%sT%s:00:00%s" (elt day 2) (if (string-match "AM" (car row)) "12" "18") emacsconf-timezone-offset)) (seq-map-indexed (lambda (value index) (unless (string= value "") (list (elt headers index) value))) (cdr row)))) (cdr (cadr day))) )) (list (list "sat" sat "2023-12-02") (list "sun" sun "2023-12-03")))))) ### DONE Document volunteer roles Copied it over from the previous year ## Lessons learned - Make sure timezones are on anything that has time (schedule page, watch pages, etc.) - Remember to publish the icals and schedule org files: `emacsconf-update-schedule`. Added to the schedule-details.md. - For really late submissions, make sure you also create the pad (`emacsconf-pad-prepopulate-talk-pad`) and the BBB room (`emacsconf-spookfox-create-bbb`). - We need to move off the current bbb.emacsverse.org or discuss the future of the current BBB VM. - Next year, it might be nice to use the intros and generate title slides in order to add them to the videos. # Progress reports - - # E-mail templates ## Review ### Template Thanks for submitting your proposal! (ZZZ: feedback) We’re experimenting with early acceptance this year, so we’ll wait a week in case the other volunteers want to chime in regarding your talk. =) ## Acceptance ### Function (defun emacsconf-mail-accept-talk (talk &optional template) (interactive (list (emacsconf-complete-talk-info))) (emacsconf-mail-prepare (or template (emacsconf-mail-merge-get-template "acceptance")) (plist-get talk :email) (list :title (plist-get talk :title) :email (plist-get talk :email) :time (plist-get talk :time) :conf-name emacsconf-name :speakers-short (plist-get talk :speakers-short) :url (concat emacsconf-base-url (plist-get talk :url)) :video-target-date emacsconf-video-target-date :year emacsconf-year))) ### Template Hi, ${speakers-short}! Looks like all systems are a go for your talk. =) Thanks for proposing it! Your talk page is now at ${url} . Please feel free to update it or e-mail us if you’d like help with any changes. If you want to get started on your talk early, we have some instructions at that might help. We strongly encourage speakers to prepare a talk video by ${video-target-date} in order to reduce technical risks and make things flow more smoothly. Plus, we might be able to get it captioned by volunteers, just like the talks last year. We’ll save ${time} minutes for your talk, not including time for Q&A. Don’t sweat it if you’re a few minutes over or under. If it looks like a much shorter or longer talk once you start getting into it, let us know and we might be able to adjust. I’ll follow up with the specific schedule for your talk once things settle down. In the meantime, please let us know if you have any questions or if there’s anything we can do to help out! Sacha # Archive ## DONE Check with hyperdrive and core if they’re willing to swap :decision: DONE [2023-10-08 Sun]: hyperdrive on Sunday afternoon, will keep an eye out for openings on general track and call it out in the opening remarks so people know that it’s a general talk. If Stefan Kangas puts together [Emacs core development: how it works](https://emacsconf.org/2023/talks/core "Emacs core development: how it works") speaking as a new Emacs maintainer, that might be a good general closing talk on the first day because it can encourage people to help with Emacs development. We don’t have a lot of space on the General track, but if we move [hyperdrive.el: Peer-to-peer filesystem in Emacs](https://emacsconf.org/2023/talks/hyperdrive "hyperdrive.el: Peer-to-peer filesystem in Emacs") to the other track, then there’s enough space. It might also be a good idea to move [devel](https://emacsconf.org/2023/talks/devel "Emacs development updates") earlier than [unentangling](https://emacsconf.org/2023/talks/unentangling "(Un)entangling projects and repos") in case John Wiegley can have a live Q&A session (he might be travelling at that time, so it’s unsure), so that there’s more time for people to ask emacs-devel highlight questions and so that John Wiegley and Stefan Kangas can attend each other’s Q&A. Joseph Turner wanted to make sure that people don’t assume the [hyperdrive](https://emacsconf.org/2023/talks/hyperdrive "hyperdrive.el: Peer-to-peer filesystem in Emacs") talk is too technical for them. We can rename the tracks (Track A and Track B)? if that helps, so that people don’t think the other track is exclusively for more technical things. Thoughts? ### Option A: Here’s the schedule with [hyperdrive](https://emacsconf.org/2023/talks/hyperdrive "hyperdrive.el: Peer-to-peer filesystem in Emacs") in the second track and [core](https://emacsconf.org/2023/talks/core "Emacs core development: how it works") in the first track. - world: Ends at 15:30 after 11:30 Graphical view of the schedule Schedule for Saturday Saturday 9:00- 9:10 Saturday opening remarks sat-open 9:10- 9:20 An Org-Mode based text adventure game for learning the basics of Emacs, inside Emacs, written in Emacs Lisp adventure 9:30- 9:50 Authoring and presenting university courses with Emacs and a full libre software stack uni 10:05-10:25 Teaching computer and data science with literate programming tools teaching 10:40-10:50 Who needs Excel? Managing your students qualifications with org-table table 11:05-11:15 Taming things with Org Mode taming 11:30-11:50 one.el: the static site generator for Emacs Lisp Programmers one 12:45-12:55 Emacs turbo-charges my writing writing 1:10- 1:20 Why Nabokov would use Org-Mode if he were writing today nabokov 1:35- 1:55 Collaborative data processing and documenting using org-babel collab 2:05- 2:25 How I play TTRPGs in Emacs solo 2:40- 3:00 Org-Mode workflow: informal reference tracking ref 3:10- 3:20 Emacs development updates devel 3:30- 3:40 (Un)entangling projects and repos unentangling 3:50- 4:30 Emacs core development: how it works core 4:45- 4:55 Saturday closing remarks sat-close 10:00-10:10 MatplotLLM, iterative natural language data visualization in org-babel matplotllm 10:20-10:40 Improving access to AI-assisted literate programming with voice control voice 10:55-11:15 LLM clients in Emacs, functionality and standardization llm 12:45- 1:05 Watch Over Our Folders woof 1:20- 1:40 Improving compiler diagnostics with Overlays overlay 1:55- 2:05 Editor Integrated REPL Driven Development for all languages eval 2:20- 3:00 REPLs in strange places: Lua, LaTeX, LPeg, LPegRex, TikZ repl 3:10- 3:30 GNU Emacs: A World of Possibilities world 3:45- 4:25 hyperdrive.el: Peer-to-peer filesystem in Emacs hyperdrive 9 AM 10 AM 11 AM 12 PM 1 PM 2 PM 3 PM 4 PM 5 PM Schedule for Sunday Sunday 9:00- 9:05 Sunday opening remarks sun-open 9:05- 9:25 Top 10 ways Hyperbole amps up Emacs hyperamp 9:40-10:00 Using Koutline for stream of thought journaling koutline 10:10-10:20 Parallel Text Replacement: Does P = NP? parallel 10:35-10:45 Eat and Eat powered Eshell, fast featureful terminal inside Emacs eat 11:00-11:20 The browser in a buffer poltys 11:35-11:55 Speedcubing in Emacs cubing 12:45- 1:25 Emacs MultiMedia System (EMMS) emms 1:40- 2:10 Programming at 200 wpm steno 2:20- 2:30 Mentoring VS-Coders as an Emacsian (or How to show not tell people about the wonders of Emacs) mentor 3:00- 3:10 The many ways to browse Hacker News from Emacs hn 3:25- 4:05 Emacs saves the Web web 4:20- 4:40 Sharing Emacs is Caring Emacs: Emacs education and why I embraced video sharing 4:55- 5:05 Sunday closing remarks sun-close 10:00-10:20 Bringing joy to Scheme programming scheme 10:35-10:55 What I learned by writing test cases for GNU Hyperbole test 11:10-11:20 A modern Emacs look-and-feel without pain flat 12:45- 1:05 emacs-gc-stats: Does garbage collection actually slow down Emacs? gc 1:20- 1:30 Writing a language server in OCaml for Emacs, fun, and profit lspocaml 1:45- 2:25 Windows into Freedom windows 2:40- 3:00 EmacsConf.org: How we use Org Mode and TRAMP to organize and run a multi-track conference emacsconf 3:15- 3:35 The Emacsen family, the design of an Emacs and the importance of Lisp emacsen 9 AM 10 AM 11 AM 12 PM 1 PM 2 PM 3 PM 4 PM 5 PM ### Option B: Keep [hyperdrive](https://emacsconf.org/2023/talks/hyperdrive "hyperdrive.el: Peer-to-peer filesystem in Emacs") on the first track, and group [devel](https://emacsconf.org/2023/talks/devel "Emacs development updates") and [core](https://emacsconf.org/2023/talks/core "Emacs core development: how it works") on the second track. We can encourage people to check out the different tracks in the opening remarks. - world: Ends at 14:55 after 11:30 Graphical view of the schedule Schedule for Saturday Saturday 9:00- 9:10 Saturday opening remarks sat-open 9:10- 9:20 An Org-Mode based text adventure game for learning the basics of Emacs, inside Emacs, written in Emacs Lisp adventure 9:30- 9:50 Authoring and presenting university courses with Emacs and a full libre software stack uni 10:05-10:25 Teaching computer and data science with literate programming tools teaching 10:40-10:50 Who needs Excel? Managing your students qualifications with org-table table 11:05-11:15 Taming things with Org Mode taming 11:30-11:50 one.el: the static site generator for Emacs Lisp Programmers one 12:45-12:55 Emacs turbo-charges my writing writing 1:10- 1:20 Why Nabokov would use Org-Mode if he were writing today nabokov 1:35- 1:55 Collaborative data processing and documenting using org-babel collab 2:05- 2:25 How I play TTRPGs in Emacs solo 2:40- 3:00 Org-Mode workflow: informal reference tracking ref 3:10- 3:20 (Un)entangling projects and repos unentangling 4:40- 4:50 Saturday closing remarks sat-close 10:00-10:10 MatplotLLM, iterative natural language data visualization in org-babel matplotllm 10:20-10:40 Improving access to AI-assisted literate programming with voice control voice 10:55-11:15 LLM clients in Emacs, functionality and standardization llm 12:45- 1:05 Improving compiler diagnostics with Overlays overlay 1:20- 1:30 Editor Integrated REPL Driven Development for all languages eval 1:45- 2:25 REPLs in strange places: Lua, LaTeX, LPeg, LPegRex, TikZ repl 2:35- 2:55 GNU Emacs: A World of Possibilities world 3:10- 3:20 Emacs development updates devel 3:30- 4:10 hyperdrive.el: Peer-to-peer filesystem in Emacs hyperdrive 3:35- 4:15 Emacs core development: how it works core 9 AM 10 AM 11 AM 12 PM 1 PM 2 PM 3 PM 4 PM 5 PM Schedule for Sunday Sunday 9:00- 9:05 Sunday opening remarks sun-open 9:05- 9:25 Top 10 ways Hyperbole amps up Emacs hyperamp 9:40-10:00 Using Koutline for stream of thought journaling koutline 10:10-10:20 Parallel Text Replacement: Does P = NP? parallel 10:35-10:45 Eat and Eat powered Eshell, fast featureful terminal inside Emacs eat 11:00-11:20 The browser in a buffer poltys 11:35-11:55 Speedcubing in Emacs cubing 12:45- 1:25 Emacs MultiMedia System (EMMS) emms 1:40- 2:10 Programming at 200 wpm steno 2:20- 2:30 Mentoring VS-Coders as an Emacsian (or How to show not tell people about the wonders of Emacs) mentor 3:00- 3:10 The many ways to browse Hacker News from Emacs hn 3:00- 3:40 Emacs saves the Web web 3:55- 4:15 Sharing Emacs is Caring Emacs: Emacs education and why I embraced video sharing 4:30- 4:40 Sunday closing remarks sun-close 10:00-10:20 Bringing joy to Scheme programming scheme 10:35-10:55 What I learned by writing test cases for GNU Hyperbole test 11:10-11:20 A modern Emacs look-and-feel without pain flat 12:45- 1:05 emacs-gc-stats: Does garbage collection actually slow down Emacs? gc 1:20- 1:30 Writing a language server in OCaml for Emacs, fun, and profit lspocaml 1:45- 2:25 Windows into Freedom windows 2:40- 3:00 EmacsConf.org: How we use Org Mode and TRAMP to organize and run a multi-track conference emacsconf 3:15- 3:35 The Emacsen family, the design of an Emacs and the importance of Lisp emacsen 9 AM 10 AM 11 AM 12 PM 1 PM 2 PM 3 PM 4 PM 5 PM ### Other ideas? Feel free to suggest something! Notes: - [sharing](https://emacsconf.org/2023/talks/sharing "Sharing Emacs is Caring Emacs: Emacs education and why I embraced video") is nice to pair with [mentor](https://emacsconf.org/2023/talks/mentor "Mentoring VS-Coders as an Emacsian (or How to show not tell people about the wonders of Emacs)") and [hn](https://emacsconf.org/2023/talks/hn "The many ways to browse Hacker News from Emacs") and might be a good general-audience keynote-type thing as well. I don’t want to schedule [core](https://emacsconf.org/2023/talks/core "Emacs core development: how it works") to compete with it. ## DONE Test the idea of three tracks and more aligned times :decision: Decision: We’ll stick with the two-track schedule for now because it’s more likely, and we’ll adjust as we get closer to the conference depending on speaker submissions and on volunteer availability. Note: Let’s see if we can decide on this by [2023-10-13 Fri] so that we can e-mail the draft schedules to people. Compared to [two-track schedule](#draft-schedule): What if we have three tracks instead? - Two-track advantages as in EmacsConf 2022: - Fewer volunteers needed (host, IRC, pad) - Can do with existing computing power (instead of spinning up another node for VNC+OBS) - Less fear of missing out for participants - votes: zaeph - Three-track advantages: - More space between talks for streaming the Q&A - Easier to explain the schedule - More logical grouping - Ends earlier, which is easier for participants from Europe - votes: max (Three tracks is the best policy if you’re more than 75% sure that you can round up the volunteers) - [Three tracks just for Sunday morning](#three-tracks-sun-am): - Allows us to have 20 minutes between talks instead of 15 - Might be easier to test the idea for just one part of the conference ### Three tracks for Sunday morning? - unentangling: Starts at 14:35 before 15:00 - world: Ends at 16:20 after 11:30 - Missing talks: core