Back to the talks Previous by track: What I learned by writing test cases for GNU Hyperbole Next by track: Saturday opening remarks Track: Development

EmacsConf.org: How we use Org Mode and TRAMP to organize and run a multi-track conference

Sacha Chua (she/her) - IRC: sachac, https://sachachua.com, Mastodon: @sachac@emacs.ch, sacha@sachachua.com

Format: 16-min talk; Q&A: BigBlueButton conference room
Status: Q&A to be extracted from the room recordings

Talk

00:00.000 Intro 00:16.580 Reasons 01:09.400 Information 02:09.160 Properties 03:53.120 Timezones 04:29.720 Scheduling 05:41.780 Templates 06:48.400 Wiki 08:04.380 Etherpad 08:28.200 E-mail 09:05.920 BigBlueButton web conferences 10:08.121 Shortcuts 10:36.700 Logbook 11:03.680 Captions 12:13.220 Crontabs and playing the talks 13:11.280 Transitions 13:49.880 Wrapping up

Duration: 15:05 minutes

Q&A

Listen to just the audio:
Duration: 2:00:43 minutes

Description

Help wanted: Q&A could be indexed with chapter markers

The Q&A session for this talk does not have chapter markers yet. Would you like to help? See help with chapter markers for more details. You can use the vidid="emacsconf-qanda" if adding the markers to this wiki page, or e-mail your chapter notes to emacsconf-submit@gnu.org.

(If you want to work on this and you think it might take you a while, you can reserve this task by editing the page and adding volunteer="your-name date" or by e-mailing emacsconf-submit@gnu.org.)

Go on a whirlwind tour behind the scenes to see how we've been using large Org Mode files and a bunch of Emacs Lisp functions to organize and run EmacsConf. You might be able to pick up some ideas about Org Mode navigation, image and video manipulation, captioning, publishing, and remote command execution, and then check out the notes to find out more.

Resources:

Discussion

Questions and answers

  • Q: How "easy" would it be for someone else to reuse the EmacsConf scripts and config to do a conf of their own?
    • A:
  • Q: How can speakers and viewers help make preparing for next year's EmacsConf even more fun for the organizers?
    • A: 1.  Suggest ideas for talks!  They don't have to be big or complicated.  2.  Share the word about things you liked!
    • follow-up Q: Would you consider making a demonstration video of using subed.el?
  • Q: What tools would you like to exist in Emacsland to help with preparing the conference next time?
    • A: Etherpad integration with Emacs from an API would be very helpful, e.g. maybe using crdt.el.  Also it would be nice if subed could be used to fix audio sync issues while editing subtitles.
  • Q: Could you elaborate on the workflow that goes on in your mind for when approaching these things? Do you start with an Emacs/Org solution right off the bat at this point, when faced with a task? Are there some conscious steps involved from early ideas to automations of the kind you just showed?
    • A: 1. Take the time to try to understand and automate a task, even if you think you're only going to do it once.  The learning process adds up over time and makes future, similar tasks easier.
  • Q: How well does this approach allow for other organizers to do individual customizations to their liking while still being able to collaborate effectively?
    • A:
  • Q:What was the hardest problem you encountered in organizing or running the conference this year and how did you deal with it?
  • Q: Are you seeing year-to-year growth in attendance and after the conference video watching?  You should build the searchable EmacsConf archive!
    • A: "The evil plan is working!" --Sacha Chua, 2023
  • Q: Any chance of an in-person EmacsConf again someday?
    • A: I'm not travelling any time soon, but if someone else wants to organize things, I'll be happy to spread the word and help with the backstage things. I really like virtual conferences, though!
  • Q: Any suggestions or specific recommendations for hosting an EmacsConf satellite event? Sorry wait, what was that name again?
    • A: 
  • Q: Do you have any stats on how many people watched, were in irc and bbb , over those 2 days?
    • A: 

TODO check out mcron

Notes

  • I talk really quickly! Here's a self-paced RevealJS presentation with narration and clickable links, etc. https://sachachua.com/proj/emacsconf-2023-emacsconf/
  • Amazing presentation, Sacha!!! It's wonderful that all of your work is well-documented. Thank you!!!
  • Feedback:  toobnix was streaming much better than the webm feeds, so would be great to expand that.  Also, IRC on the web kept disconnecting me and then I lose all the history.  Would be great if Etherpad could handle all the dialog and then have it archived as the chats are interesting to review later as well.
  • This is my first year attending the conference, it was amazing! All of the presenters and material were very impressive. And from a technical perspective, the event was extremely smooth. It was easy to find the agenda material online, and then use mpv to watch, and ask questions on etherpad.
  • New stuff for EmacsConf 2023:

    • Other organizers busy during prep time, so prioritization was key
    • Wrote lots of blog posts on the way to refamiliarizing myself with the code
    • Early acceptance with a week for extra comments
    • Two tracks from the start, could give everyone more time
    • Moved more mail merge templates into the library
    • Added more scripts for handling the sessions, playing talks, joining Q&A
    • Used Spookfox to control Firefox from Emacs: creating BBB rooms, extracting data
    • Phone recordings + subed-align + subed-record-compile-video = intros, this presentation
    • subed-waveform made it more fun to check and adjust the timestamps
    • I still don't like dealing with audio processing or sync issues, good thing zaeph can handle them
    • Reduced coordination needs by opening Q&A right away instead of waiting for signal
    • Used Tampermonkey to automatically connect to BigBlueButton from streaming user
    • Crontab working smoothly; used timers and TRAMP last year
  • Whatever you do, don't miss out @sachac's talk (this PM or otherwise). I stumbled on it on @bandali's channel following a link to Howard's, and it's a masterclass in wrangling things together to automate workflows in Emacs/Elisp/Org. When people ask about VS Code, this shows we are talking different mindsets and tools altogether.

  • Yeah! I'm excited for that one.
    - So am I.. again! And I'll be rewatching it multiple times too, that's how packed in useful insights and tidbits it is. "What do you mean Emacs/Org is a platform and a way of life?" Well, here you go, great examplar :)
    
  • FYI Emacs now has with-memoization
    • I use a package (skeeto's?) that has defmemoize and such, is that outdated now?
      • Yes, Chris's package was developed years ago, and it's been useful to me as well. Stefan Monnier, IIRC, added with-memoization in...28.1, I think. IIRC there are minor differences but now the built-in one should usually be enough.
  • The breadth of use cases and applications, and range of Emacs/Elisp/Org capabilities reached for in this talk is fascinating.
  • I had some time to pop into the mentor Q&A, and one of the things that bubbled up from the conversation was that there's always something to be curious about, even if you've been using Emacs for decades. It's not just about the stuff that comes built-in or even in packages, it's also all these different workflows. so it's easy to be perpetually curious and to have lots of fun.

    • sachac, Agreed! Not only Emacs, either. For the last several years, I've hosted 1:1s with teammates where they can ask any tech question they want; if I don't know the answer, we figure it out together. And those are my favorite ones. :)
  • So nice to see these practical example of automating workflow with Emacs, great presentation sachac

Transcript

[00:00:00.000] Intro

Hi, I'm Sacha Chua. This presentation is a quick tour of some of the things we do to run EmacsConf. Since 2019, we've run it as an entirely online conference, and we do as much of the organization as possible within Emacs itself.

[00:00:16.580] Reasons

I have three reasons for making this presentation. The first is entirely selfish: I need to figure out all the stuff I built for last year's EmacsConf, since it was a bit of a crazy scramble. The second is that I want to show people the process of thinking about a complex project, looking for little things to automate in Emacs, and building things up from small pieces. Maybe you'll get some ideas and start building tools for yourself, too. The third is that you find any of these little tools interesting, I want to point you to blog posts and source code where you can find out more. That way, you don't need to try to read and understand everything quickly. You can find this presentation and other links on the talk page at emacsconf.org/2023/talks/emacsconf. There are a lot of different parts, so I'll try to use this map to help make sense of it all.

[00:01:09.400] Information

There's so much information to work with, so it probably doesn't surprise you that we use Org Mode a lot. Most of the conference coordination happens over e-mail, which I can quickly search with notmuch. Some of the information is private, like emergency contact numbers. We store the talk information in a private Org file. I try to put as much as possible into our public organizers' notebook so that processes and decisions are documented. We need a public website. We use Ikiwiki to make the webpages because we can work with plain text files in a Git repository. We also make a few static HTML pages for things where Ikiwiki is a little awkward. We post announcements to mailing lists. We also receive submissions in a private mailing list so that a number of people can review them. We have a backstage area for sharing files with volunteers and speakers. We share those files publicly when the talk goes live. And there's all the other stuff that goes into running EmacsConf, like shell scripts and configuration files.

[00:02:09.160] Properties

First, speakers propose a talk by sending an e-mail. We take the info from that e-mail and store it in Org properties so that we can work with it later. Every talk is identified with an ID, but since :ID: and :CUSTOM_ID: have special meanings for Org, I use :SLUG: as the keyword. Speakers' names go into the :NAME: property, and a short version goes into :NAME_SHORT: so that we can include that in a greeting. If people follow the template closely... ...we can even automatically fill in the Org subtree for their talk. We can use regular expressions to recognize the text and extract the properties. Other properties need to be set by hand. I often mess things up when I retype them. To avoid typos, I have a function that sets a property based on the current region. I bind that to C-c C-x p. That makes it much easier to set properties that couldn't automatically be recognized. Sometimes it makes sense to dynamically generate a property and then edit it, like with filenames. We like to name all the talk files the same way, but sometimes special characters in talk titles or speaker names need a little tweaking. I'll put that in a :FILE_PREFIX: property so I can edit it. An Org property match can map over all the talk entries that don't have :FILE_PREFIX: defined. We can use that :FILE_PREFIX: to rename files from Emacs. With that property, we can then rename files using that prefix, some extra text, and the file extension. Sometimes it's easier to work with the data outside Emacs, like when I want to rename files with a shell script. If I export a subset of the data as JSON or JavaScript Object Notation, using json-encode... ... then I can extract the data with jq and use it in shell scripts.

[00:03:53.120] Timezones

Another example of semi-structured information is speaker availability. We have speakers from all over the world, so we try to schedule live Q&A sessions when they're around. That means working with timezones. Completion makes it much easier to set the timezone property without worrying about typos. We can take advantage of the timezone list from the tzc package, which works with Unix timezone definitions. Then we can convert times using Emacs. Using a standard format to encode the availability makes it easier to parse. I can use those availability constraints to report errors when I'm experimenting with the schedule.

[00:04:29.720] Scheduling

Now that I have the availability information, I can think about scheduling. When we were planning EmacsConf 2022, the schedule was so full, I wanted to see if we could make it more manageable by splitting it up into two tracks. It was hard to think about times with just a table. I was able to turn the schedule information into an SVG to convince the other organizers to get on board with this crazy plan. And the nice thing about SVGs is that they can even be clickable on the wiki. Being able to quickly make SVGs of different schedules also helped me test scheduling ideas and think out loud. I could change the time between talks, the order of the talks, and even what tracks the talks were in. This was helpful when I needed to include some late submissions or availability changes and I wanted to ask speakers what they thought. They could see the different schedule options themselves. It's really nice to have Emacs Lisp support for working with SVGs. I also love how I can have an Emacs Lisp block in an Org Mode document that updates an SVG that I can view right there in my text editor. Setting the timezone lets me automatically translate times to the speaker's local timezone when I e-mail them. That's mostly a matter of using format-time-string with a timezone.

[00:05:41.780] Templates

There's a lot of text to work with, which means templates are super handy. There are a number of templating functions for Emacs Lisp, like the built-in tempo.el or s-lex-format from s.el. I ended up writing something that works with property lists (plists) instead, since we use plists all over the emacsconf-el library. All it does is replace ${variable} with the value from a property list. I use this mostly because I have a hard time keeping track of which %s is which when I use format, and it's hard to get an overall view if I just use concat. The code looks for the properties and replaces them with the values. I just find it a little easier to think about sometimes. Getting all the information is just a matter of going over all the talk entries using org-map-entries. This builds the talk info by running a bunch of functions. Some functions get the information from the Org file. Other functions use the info already collected. This can take a while to do again and again. It's useful to memoize this function when I know I'll be using it a lot, like when I export the organizers notebook. Memoize caches recent values.

[00:06:48.400] Wiki

We combine this templating function with the talk information to fill in the conference wiki, since that's a matter of writing templated strings to files. The talk pages are generated once and then left alone for manual editing, while the navigation is regenerated every time we change the details. Here are some examples of how we fill in the conference wiki. We put in the format of the talk, how Q&A works, and what the status is. Once the talk is live, we include the video and the links to the files, too. The code is a little bit long, but the important part is that we fill in a plist with the values we calculate, and then we can use emacsconf-replace-plist-in-string to put that all together. The schedule is a little more complicated. I wrote an Ikiwiki directive so that the markup is more manageable, and the Emacs Lisp function uses that. The Ikiwiki directive takes all the data and turns it into HTML... ...so we can use Emacs Lisp to iterate over a slightly smaller property list and put them into the format Ikiwiki expects. It's nice to be able to navigate between talks without going back to the schedule page each time. This is handled by keeping two extra copies of the list: one with the first talk popped off, and one with an extra element added to the beginning. Then we can use the heads of those lists for next/previous links.

[00:08:04.380] Etherpad

Links to the next talks are also handy on the collaborative Etherpad documents that we use for collecting questions, answers, and notes during each talk. Etherpad has an API... ...so I can start the pads off with a template before the conference. I don't want to accidentally overwrite a pad that has been manually edited. We can save the timestamp of the last modification and then compare it before overwriting.

[00:08:28.200] E-mail

Templates are also very handy when it comes to e-mail. Sometimes we send e-mails one at a time, like when we let a speaker know that we've received their proposal. That's mostly a matter of plugging the talk's properties into the right places in the template. Sometimes we send e-mails to lots of speakers at the same time, like when we send them instructions for uploading their files. Instead of sending one e-mail and Bcc-ing everyone, or sending people multiple e-mails because they have multiple talks, I like to draft these as individual e-mails to each speaker (or group of speakers, if more than one person is associated with a talk). That gives me an opportunity to personalize it further.

[00:09:05.920] BigBlueButton web conferences

Many speakers answer questions live in BigBlueButton web conference rooms. Setting up one room per group of speakers makes it easy to give the speakers the details and associate the recorded video with the talk afterwards. For EmacsConf 2023, I used Spookfox to control Mozilla Firefox from Emacs so that I could automate creating the rooms and adding the URLs to the talk properties in my Org file. Then I can use mail merge to send each speaker the check-in instructions for their specific room. Some speakers will take questions by e-mail after the conference instead of attending live, so we send them shorter instructions just in case they want to drop by. we can open it up for other people to join. This is handled by changing the public page from one that just refreshes in a loop to one that redirects to the actual web conference room. Just in case, we also generate static copies of those redirects so that we can copy them if needed. That way, I don't have to count on Emacs being able to publish them over TRAMP.

[00:10:08.121] Shortcuts

During the conference, I'm often jumping from talk to talk. Instead of going to the Org file and then searching for the talk, I've made a little Hydra with keyboard shortcuts. One of these shortcuts lets me jump to a talk with completion so that I can just type in part of the talk ID, title, or speaker name. I've also defined some Embark actions so that I can act on a talk right from the completion menu. For example, I might want to jump to the wiki page or e-mail the speaker.

[00:10:36.700] Logbook

I can also add notes to a talk while looking at an email, like when a speaker lets me know that their video will be late. Making it easy to add a note turns Emacs into a very basic contact relationship management system, or CRM. The way this works is that we have a function that lists all the email addresses associated with a talk. We can then map that over the list of talks, look up the author of the current email, prompt the user for the talk to add the note to, and add the note.

[00:11:03.680] Captions

On to captions. We've been doing captions for the last couple of years, and now we have a small army of volunteer captioners. They get early access to the recorded talks and fix up misrecognized words, format keyboard shortcuts to follow Emacs conventions, spell names correctly, and do all sorts of other wonderful things. One of our evil plans with EmacsConf is to get cool stuff out of people's heads into videos and also make captions so that those videos can be searched. To make that possible, we first need a backstage area where volunteers can get the files. This is just a simple password-protected directory with a static HTML page that lists the talks by status and shows the files related to each talk. As a talk moves through the process, I update its TODO state and republish this index. Talks that are ready to be captioned show up in that section, and volunteers can call dibs on the talk they're interested in. That's all done with a function that formats the information and uses TRAMP to save the file directly to the server. You can find more details on our captioning process at emacsconf.org/captioning. I like using subed to edit subtitles within Emacs.

[00:12:13.220] Crontabs and playing the talks

Let's talk about actually playing the talks. For EmacsConf 2022, we tried using Emacs timers to run the talks. It turns out that you can't call TRAMP from a timer when you're already using TRAMP from another timer at the same time. I thought about just tweaking the schedule so that we always start things at different times, but I figured there's probably a more elegant way to do this. This year, I'm planning to experiment with using cron to start talks on autopilot. The shell scripts will take care of playing the videos... ... figuring out the appropriate Q&A... ... and joining the web conference if needed. We just need to format the information... ...and install it as the track's crontab. It's useful to be able to switch tracks to manual mode independently, just in case things go haywire. Then we can start everything manually. I can also manually update a talk's status, like when the host tells me that it's okay to open up the Q&A. The shell scripts we run from the crontab can also update the talk status themselves.

[00:13:11.280] Transitions

Then a bunch of things automatically happen based on the talk status changes. This uses org-after-todo-state-change-hook. We get the talk information and pass it to a list of functions. Internet Relay Chat or IRC is an easy way for people to join the conversation around EmacsConf. We announce a talk whenever it changes state. For example, when a talk starts, we post the URLs to the talk webpage and the Etherpad for questions. We change the topic as well, so anyone can see the current talk's information even if they're a little late. This is easy to do with a little bit of Emacs Lisp because (of course!) Emacs has an IRC client. In fact, it has several.

[00:13:49.880] Wrapping up

It seems like a lot of automation and Emacs Lisp, but really, all of this was just built up little by little. And tinkering with this is fun, you know? It's like always being able to ask, "Hey, wouldn't it be cool if..." and then actually being able to go and do it. Sometimes it feels like EmacsConf is an excuse for me to play with Emacs. It's pretty amazing what you can do by combining a bunch of pieces. A way to store slightly-structured information. A way to get it out again. Templates. TRAMP, for working with remote files and running remote commands. A way to talk to a web browser. A way to work with SVGs. An email client. A chat client. You can smoosh them all together in a way that you couldn't if they were all separate things. The code is in the emacsconf-el repository. It's a bit of a tangle because it's accumulating organically and I haven't really had the brainspace to step back and clean it up. But if you spotted anything interesting in this presentation, you can go check it out and see what you can scavenge. The link and this presentation are available from this talk's webpage at emacsconf.org/2023/talks/emacsconf . Let's figure out how to make Emacsconf even awesomer next year!

Captioner: sachac

Q&A transcript (unedited)

It's been a while since I've actually done an actual presentation. Hi. Okay. I'm going to deafen myself and mumble so that I don't get distracted by backstage chatter. Hello, everyone! Okay, so where are we? Questions, questions, questions. Okay, how easy would it be for someone else to reuse the Emacs conf strips and config to do a conf of their own? Like everything else, I have no idea if things actually work until somebody does it for, you know, to get everything to run on a computer that isn't my computer and with assumptions that aren't my assumptions. So, I have no idea. But optimistically, I have put most of the EmacsConf things, like EmacsConf, the name of the conference and things like that in variables. So if theoretically someone were to run an org mode conference or something like that, it might be possible to reuse all this code. We'll see. I don't know if it's going to be easy. I don't even know if it's going to be possible, but it might be fun to try. What tools would I like to exist in Emacs land to help with preparing the conference next time? Well, I've already been thinking about adjustments that I want to make to sub-eds so that the audio synchronization issues that we sometimes have with FFmpeg can be something that I can flag and maybe fix even while I'm watching a video. But also as much as possible, I like to leave the actual FFMPEG audio and visual tinkering with to other people like Leo, whose patience is slightly more than mine, because audio is, I still don't have the patience to sit for it. You can tell I talk really, really quickly. I'm still trying to squeeze everything into however little focus time I actually have. So it would be kind of nice to use that. Emacs is already doing quite a ton and stuffing more multimedia processing and other fun things into it might be interesting. Who knows? Oh, the other thing that I would really love to have that people always ask for is a way from Emacs to interact with the Etherpad. The Etherpad API, it seems very granular. Like, you can set the HTML of a pad, but you can't actually just append stuff to it. And I was trying to get something that could take questions from IRC and automatically push them into the pad, even from an ERC bot or whatever, but no go. If someone were to figure out some CRDT thing where we can collaboratively edit the document, that I think is the number 1 request that people always have around EmacsConf. That would be really cool to do more of the conference itself from within Emacs. I don't know if actually, well, we have an org file now that launches the MPV from Emacs. But if you want to have an ex-widget or something else watching the conference from within Emacs itself. I think that will also be really cool. Yes. And then other fun stuff. OK, how can speakers and viewers help make preparing for next year's Emacs Conf even more fun for the organizers? Well, I love it when not only do the speakers do all that work to prepare their talk, but lately people have actually even been volunteering to caption their own talks. And that's great because then they know the words that they use. And if I can show them the workflow that we have so that they can do it very efficiently, because there's all these wonderful things that I do now with Subweb Waveform and Aeneas for like the forced alignment so we can get timestamps from text and all these other fun things that make getting a transcript or editing the captions fun and easy. That makes it easier for not only speakers to contribute captions for their own talks, but also interested volunteers who, as mentioned, get early access to all the talks and can watch them at leisure. And it's, you know, nice prick there. Definitely should try that. I do have some sample videos of how we use subed. But of course, in the process of shoving like 30 or 40 talks, maybe 30 talks through it for EmacsConf, this is like the stress test season for subed, which is great, I ended up adding more features. So 1 of my big to-dos afterwards is I have to document the different workflows for things like, okay, you've got a script. You can use WDiff to get word diffs so you can take the subtitles and compare them with the original script and see where the misrecognized words are. And that's great. Or you can use SubWeb Waveform to start adjusting things. Or for example, if there's a synchronization issue, I can now middle click on a subtitle where I want the subtitle to actually start and then move all the subtitles to start at that point. So it's getting to be a really elaborate tool. And I definitely need to document that and stick all the blog post links into the readme so that people can find this in the future. So it's very, very nifty. And the reason why we do this is because, well, personally, I have a hard time sitting and watching videos. I like to be able to just jump to the interesting parts or watch it at 3 times speed, which MPV lets me do. And the text makes it a lot more searchable, which is fantastic. And also because, you know, if you've got all these interesting variable names and key bindings and whatever, and the automatic subtitles just don't do the right thing. So it's nice that people do the captioning. So, yeah, so that's 1 thing that people can help with. Captioning is always very interesting. And the other thing that people can do is take the inspiration that you get from EmacsConf and from the ideas that you have when you're working with Emacs, and suggest talks for next year's EmacsConf. And it doesn't have to be a super fancy, nobody else needs to go out and do a really professional-looking video. Even though Howard has set the bar this you know it's pretty high you don't have to do that kind of thing it can be just you in a screen or even just a screen and you talking about this cool thing that you learned and they could be a video or it could be a blog post it could be something else and that those those things are fantastic because they inspire people to see what's possible with Emacs. So that's another big thing that people can do to help. And then there's sharing the word about it. So if you saw something that you really like, if you write a blog post about it or a tweet or a toot or whatever else you want to do, you make a reaction video, that helps other people discover that stuff not just today, not just next week, but you know even later as they search for these words that as people search for ideas using words that are not necessarily the ones in the video, you describing things in other ways helps with the search engine optimization, you're not really, it's just people finding stuff, which is amazing. So yes, please write about the cool things that you've seen and what you'd like to tell other people about. Suggesting ideas for talks. Yes. Making talks. All sorts of wonderful things. OK. Could you elaborate on the workflow that goes on in your mind for when approaching these things? Do you start with an Emacs org solution right off the bat at this point when faced with a task? Are there some conscious steps involved from early ideas to automation of the kind you just showed? Mostly it starts with, okay, we got to do this thing. So I have this to-do. And sometimes, like in the week before the conference, I have to think, okay, is this a top priority thing that I can do before the conference, or is it something that I can, I, I, like we can still do the conference without doing so I have to just postpone it until afterwards? So some prioritization happens. But a lot of times it's like, okay, you know, like this, there's a thing that I need to do here. I don't know how to figure it out, let me start an org Babble block and start sketching out something, you know, custom function or whatever else, and then say okay, you know, hey, that looks kind of useful, let me see if I can generalize that, and then let me stick it into the library so that I can find it next year. And that's basically how it goes. It just goes, it just like, I have a thing that I need to do. If it's, if I'm going to do it more than once, or actually even if I'm going to do it, you know, once I tried to automate it just so that I can understand it and, and then I can, I can, I can squeeze it into like the 15 minutes I actually have and I can pause and I can pick it up again and the code is still there and my notes are still there? And then every little bit of the, every little step like that builds up. So I can write a short function today, and then tomorrow when the kid was asleep, I can write a little bit more of that. And so it just goes on from there. And then I just stuff that all in there. How well does this approach allow for other organisers to do individual customisations to their liking while still being able to collaborate effectively? We've actually split things up fairly neatly in the sense that for this year, for example, most everyone else was super busy, so I did all the heavy lifting up until people were available and then they jumped in with the audio normalization. Thank you very much, Leo, for doing all of that stuff and the hosting and all the other things. So I tend to do most of the Emacs list fiddling with and the shell scripting and stuff like that, aside from the FFmpeg incantations, which are too arcane for me to even think about. And then in the course of watching me deal with like, oh, no, this video is not playing. And then they see the commands that I'm using, like play and then, you know, play a world, which is the ideas of the talk that we were having a hard time with or MPD or whatever. Then the other organizers kind of just pick that up by osmosis, because We didn't even have time to do dry runs for training this year. So it's just there's not much collaboration in the sense that I'm just basically saying, OK, these are the scripts that I'm going to write for myself. And you all figure out how to work with that. What was the hardest problem you encountered in organizing or running the conference this year and how do you deal with it? Oh, the constant, constant problem with e-mails. There's so many amazing ideas. I want to fit into the time. And then afterwards, like, Sasha, do not mess with production the day before the conference. You're going to save that for after the conference, right? So that's the hardest part, is just saying, OK, yes, that's an idea. I'm going to put that in the inbox. We're going to maybe get to that next year. But right now, these are the things that I need to do in order to get the conference off the ground reasonably in a reasonable amount of time. So earlier in the conference, then I can be like, OK, what if we do this? What if we run everything off a crontab instead of using Emacs tramp timers? Wouldn't that be great? And then I can explore all those crazy ideas. But then as we get closer and closer to date, I'm like, okay, fine. I'm going to like just capture the idea and deal with it later. So that's really, really hard for me. Year to your growth in attendance and after the conference video watching. The growth, well, first thing, there is like absolute growth in the kind of the quantity of things that people are sharing. I have a blog post about this that talks about a number of minutes of talks, and it's going up. Last year, we did 2 tracks because I couldn't fit everything in 1 day. And this year, we did 2 tracks, but even then, everything was kind of squished, and I was trying to find space in the schedule. And if you make it so that next year, we have to figure out 3 tracks, I think We have another host now, so it might be doable, which is great. Who knows? We'll see. And the other interesting thing that I'm seeing in terms of growth is that people are starting to refer to the talks from previous conferences that inspired them. So the evil plan is working in that it is getting people to get cool stuff out of their heads and into videos that have like searchable transcripts and that people can refer to as for inspiration and for showing other people, hey, look, this is what it can do. So that is fantastic growth. The actual numbers, I'm intense to look at the number of simultaneous viewers. And every so often, it's kind of nice to go through the YouTube stats or whatever. But that's not so much as a, like, I don't really keep that in mind as much, just because as long as people are connecting to the ideas and getting stuff out there and being inspired to think around more, then it's doing the thing. Cognizant is working. So where are we now for questions? Ooh, I can actually, I have ERC here. I can find eventually. 1 of my screens has Dev in it. Okay, here we are. What are the other questions? Probably, Probably an IRC. Where's IRC? Dove, dove, dove. I did try to record things more slowly, and I tried several times, but I really just speak very quickly when I get excited and Emacs is very fun so it is tough oh yes okay so 1 in once yes automated present workflows oh yeah okay so where are we now for time? Oh look, it's 4.30, should we do our closing remarks or like how are things going over in the other stream? I should find out. other 1, but yeah, I believe that- Okay, I have managed to zoom through the questions and we can switch over to the closing remarks how do we do this yes okay okay we're gonna oh wait people okay people who wanted to ask questions how do you want to do this? Because there are a lot of people in this 1 here too. You want to go to the other 1? 0 no, they aren't done yet. Sorry, I forgot to turn on the con tab because of course I got excited. Okay, so Jacob is still answering questions, which means I get to still answer questions. Now I'll try to be quiet and let people in the BBB room speak up if we want to. Okay that means conferences you could have like a little Emacs starter config just for like the Emacs conference where you have emms playlist and IRC help cheer function to help get you into IRC into ERC and then the to-do states that I was talking about before. So you can say, I'm watching this 1, I want to re-watch this 1, but I'm going to skip it because I'm watching something else. I used the HyperBowl package to go straight to the web pages to all the either pads but you can also have some quick functions to go into a CRDT buffer hosted buffer, where all the org mode Etherpad documents would be. And then that would get everybody using Emacs, and then they could all be chatting with each other with CRDT, with controlling Emacs. I don't know how the sub stuff, I don't know if you can get the sub stuff in there working, but yeah, It could be a good way of getting it all wrapped up together. And also, Mkron, if you ever looked at that versus Kron, Mkron is configured in Elisp. Then you can also write some custom functions in the middle of your Kron. So maybe you could make some like conditional things where you can start or stop it. And like 1 of the differences is if your computer reboots, it can start up and say, oh, I'm supposed to run this cron job at this time and then just Do the correct thing rather than losing the state Randomly because your computer lost power mcron to my list of things to check out. And yeah, we finally remembered to publish all those schedules as org, and I decided to just spam all the time zones with them, which was fantastic. And other people have mentioned that this is useful. We get to figure out how to use this to teach people more about what you can do with org. As you mentioned, encouraging them to tag the stuff with things that they want to attend gives us the ability to set up an agenda view for them that has the talks that are tagged with those tags. let's teach org mode and lisp in the process of doing things. Okay, there was a question about any chance of an in person EmacsConf again someday. And I was actually at the very first EMAX Conf, which was 2013 and organized in London to take advantage of the fact that I had a business shift there. It was fantastic being in a room with 100 other people who are all really interested in Emacs, but I'm not traveling like any time for the foreseeable future, so if other people are interested in organizing something like that, I am totally happy to spread the word. It doesn't fit with my current lifestyle, but it might fit somebody's. I don't know. We're still just here. And I like the virtual conference. I really like the fact that we can bring together people from all over the world. I can take a look at my schedule with all the time constraints. Okay, I need to put this person in the morning because they're in Australia and I need to put this person in the afternoon because they're from Vancouver or from somewhere else in the Pacific time zone. And it's just this breadth of people. But the other thing that I would love for people to start thinking about is if we could have a virtual conference in other time zones, so that's easier for people in Asia Pacific or Europe to attend. And as we're getting the hang of this, this crontab-based thing, I think we might almost be at the point where I can set it up to run even when I'm sleeping. And then other people can figure out, you know, the exception handling, oh, you know, this talk needs to be restarted. Okay, just play it again and scrub around to find the right part, which means we could have replays, or we can have like the Asia Pacific Alternate Event that we had the other time where some speakers came back online and did another Q&A session just for that kind of event. So those are other cool, fun things that would love to be, would be great. Satellite events, someone mentioned in the etherpad. Some people have been organizing these, which are great. Basically a bunch of people get together in a room or 2 rooms now because of the tracks and watch Emacs Conf together. So if you have a physical meetup or if you'd like to start 1, It's basically, you know, do this, maybe have stickers if you have stickers. You know, it's just have everyone come over and hang out and meet people. I don't know. It's a thing. Specifically how to do it, I have no idea how to organize these things. But Alain does. So talk to him. changing it to doing it like 2 times a year, in max confidence. like that. Or the fact that org often has like a full day of talks by itself, and actually a little bit more than a day now, because I've been squeezing things into other tracks. There has been some potential interest in having an org conf. It could be a thing. And I'd love to see also, we'd love to experiment with other formats. So there could be a bug hunting session or let's use the breakout rooms to split up into little mentoring groups and see how that works. So lots of things that we can do. They've actually finished over in the Gen track so I don't know if people want to very quickly ask questions here or if we go there. Leo has come over here instead so okay he's joining over here on the other side. Okay, hello. hosting anymore. You 2 do a wonderful job, and I'm happy to just watch. quick note about any potential suggestions or recommendations for hosting Emacs on satellites. Is that, I mean, given that we are an event centered around Emacs, and Emacs is backed by the Free Software Foundation, if you do reach out to them, they're usually pretty helpful in terms of sending goodies and stickers and such. So yeah, if you give them a heads up and reach out to them in advance, you might well end up with a whole bunch of swag on your hands that you could give out during the satellite. So that's the thing. even smoother. I mean, you guys always run a nice conference, but it felt smoother this year than ever before, which listening to your talk, Sasha, All the automation that you're doing is pretty incredible. So I think it's paying off. host say, okay, you know, but we've got to wrap up in the next 30 seconds because Sasha's contact is going to go yoink! trains running on time shall we say and like cuts off every meeting like the second that it's supposed to end while somebody's in mid-sentence and I hope we don't get to that point here. Do we have any more questions for MaxConf? Although maybe we want to switch to the other room so that we don't struggle too much to find... Organize the stuff on BBB afterwards. this is a way to make sure the recording gets online. But we could do that too. I don't know. What do y'all think? right now, the development track is currently streaming this BBB room. So are we on Jen. So we're going to leave it at is and move into closing remarks if we want. make sure that every 1 of the organizers are here. I see Flo here. Let's see, Corbyn, are you here? Can you maybe speak here on BBB? out. He did figure it out eventually yesterday, so surely today will go swimmingly. Right. We're getting everything ready, folks. can someone tell him on mumble, I guess? Because I'm not sure if he's... Anyway. I also want to say that in the Emacs conference channel, people have been mentioning that the remote stuff has been working for them. And I really do like the way that this means we can have all the videos, you know, all prepared, they're captioned, you know, We can send them to people, we can post them on the website afterwards. We can bring all these people together who might not be able to convince their companies to fly them somewhere for an Emacs conference. And also I can do this kind of prep while having my now seven-year-old still be able to wander by and whatever. Travelling is really tough. So, this is fine. This is cool. I like this. We'll keep doing it. conference. To do it online, So many people can just access it very easily. All right, so we've messaged Colwyn. I guess we can get started with Dalim. It should maybe take a minute or 2 to join us. Should I get started with the Final words of the day? All right, cool. All right, folks, we made it. We are at the end of the second day of EmacsConf, the second of 2 days. And the first thing I want to say is first, thank you so much for joining us for this new edition. It's personally my fourth year doing the EmacsConf, but if you go to emacsconf-org and you see the different sessions, you will realize that the first 1 was in 2013, which happens to be 10 years ago. So we are obviously very excited about all of this and we'll tell you perhaps a little more about what has changed over the last 10 years. As usual, you know the pre-recorded talks are available right now on the talk page, at least for all those which were pre-recorded. All the ones which happened on the Google button, it will take us a little bit of time to figure out how to, well, when to put them available. We need to do subtitles and all this jazzy stuff. And we'll also upload them to YouTube and other places once we check the audio, especially for the Q&As. We need to clean up some of the audios and make sure that we do not publish any personal stuff. All the live talks and Q&As will do this in the weeks to come. Usually, it takes us about 1 to 2 months to try to get everything out, but if it takes longer, it's fine. Eventually, everything will be there. The 1 thing we can say is that by EmacsConf 2024, when it comes around, everything should have been uploaded at some point. So that's a wide window. So again, and as usual, feel free to spread the word about EmacsConf because, you know, we've been doing this for a while and every year more people show up to these events and more people watch the videos on YouTube and it's wonderful to see, you know, our main goal which is to get cool ideas out of the head of people, shared and viewed by so many people. It's always amazing. Also, I would like to ask you personally, what did you like about this conference? Or what do you like, what do you feel was better than last year, because the feedback is very useful to us. We'd also like to know if you've got any ideas for making things even better. And we've got a general conference discussion slash notes slash community message board, which is pad.emaxconf.org slash 2023. And you can also just mention them. You know, we might open this room for people to join us and chat, although Flowy and myself, your up team, needs to go to bed. So please be mindful of this. If you ask a very interesting question, We will both have to make sacrifices to stay a while longer because you're too damn interesting. Now we'd like to move into thanking all the people who make EmacsConf possible. And obviously, first, we have to thank all the speakers, all the volunteers, the participants, and to all those other people in our lives who make it possible through time and support, thank you so much for allowing us to run EmacsCount. It wouldn't happen without you, and without us, I suppose, because we are included in this. This year's conference hosts are myself, Leo Vivier, Amine Bendali, and joining our team of hosts for the first time this year, Flobby Coder. Thank you so much, Flobby. You did a wonderful job. It's right there. No, dammit. No, I can't. I can never remember if BBB is flipping stuff, so either 1 of those directions. The streams this year, as last year, were managed by Sasha Schwa, obviously. And the check-ins by Flobby Coder, and I'm in with Miscellaneous running around by Corwin Brust, who will be joining us momentarily. Apparently, all his USB failed, so he will be with us as Do I have audio now? Alright, I'll go to work on my camera. Hi. Hello? Okay, I'll keep going. I also need to thank, well, need, no, I want to thank all the captioning volunteers, the captioners as we call them. You've got Daniel Molina, Bala Ramadoui, Durai, sorry, Bhavin Gandhi, Amin Zayed, Yoni Rapkin, who presented 1 of the talk earlier, Daniel Alejandro Tapia, Hannah Miller, Ken Huang, Jean-Christophe Ellary, and James Howell. Also thanking Jean-Christophe Ellary, Colwyn, Quiliro, Kern, and Amin Bendali for helping with the early acceptance process. Sasha, do I read this 1? It's weird to think myself. I'm gonna pat myself on the back, I guess. Go on, Sasha. I'll do it. I'll do it. It's fine. Thanks to myself for fiddling with the audio to get things nicely synced, And thanks to myself again and other people, we kept the mailing list free from spam. Because I'm not sure what happened since May, but we've been receiving about 3 to 4 spam emails. And it just happened all of a sudden, and I was really weirded out by this process. Where was I? OK, thanks to Andrew Ducurty for helping with whisper processing. Thanks to Ashki Ghekwad for design contribution. Thanks to Yoshin, our grand changro for all the music that we've been using for the last 3 years at this point, I think. Also thanks to Rye for the server that we're using for OBS streaming and for processing videos. And also thanks to the free software foundation for obviously Emacs itself, the mailing list that we use, and the media.emacsconf-org server where all of the presentations are currently hosted. We'd also like to thank BigBlueButton, Etherpad, IceCast, OBS, The Lounge, Libre.chat, FFmpeg, OpenAI, Whisper, the E-N-E-S force alignment tool, Site Transfer, SubD, and contributors to all of the tools and services we used in the making of this conference. And obviously, all of them are free, as Sasha obviously told you, and as we will be telling you again for many years to come. We'd also like again to thank everyone for attending the conference and making EmacsConf what it is. And for those who were on the general track, you know Sasha did it in parallel to the last talk we had today. She did a wonderful talk on how EmacsConf is actually run. So there's her talk, there's also an entire page on our wiki about the infrastructure that we use. So if you're interested, especially in running an event of your own, you've got as much information as you want, and as Sacha probably told you, we are available for sharing the knowledge and enabling your dreams of making a conference. Amint, do you want to take it over with the fiscal sponsorship Can you please scroll down a little bit? Whoever is kindly sharing the screen. I was scrolling on my end. Sorry. to finally get into this. And this is something that we've been kind of hoping to get worked out for a long time actually and it's finally here. So people might have already seen this but as of this last Thursday we're actually fiscally sponsored by the Free Software Foundation. So we joined their Working Together for Free Software program. And DFSF published the announcement on their website. You're welcome to go and check it out there. But I just want to quickly get into a little bit about what it means and some of the benefits, I guess. So as part of this working together for a free software fund, the FSF provides fiscal sponsorship for a number of important free software and new technical projects, such as the new tool chain and Replicant, which is a free fork of Android. And starting this year, EmacsConf has joined the program as well. And as a fiscal sponsor, DFSF can assist us by providing services required by a legal entity, like signing contracts and receiving and processing payments. So to provide some context, eMAXConf is and always has been an independent initiative organized by a very small number of people, a small team of people without any corporate sponsors. And that's important in part because I believe part of our message is that we want to showcase that everybody can do this and organize a conference like this no matter how small your team is and how modest your resources are, which we will actually get into a little bit later in the closing remarks. But yeah, so now having the FSF as our fiscal sponsor, we're in a better position to accept donations as 1 potential way to contribute or help the conference. And just to clarify, we're currently not struggling at all to cover these costs of the servers and such, which we will get into again. But this is just 1 extra avenue if people are feeling generous and would like to help, it's much appreciated. And yeah, so having a 501c3 nonprofit like the FSF, as a fiscal sponsor, many donors will receive tax benefits that they otherwise wouldn't receive if they were to like donate to like individuals running a project directly. And also donors can know that, you know, the funds that they're donating are being handled by an accountable institution. And also importantly, when donating through the FSF, Let's see, text changing. Okay, yeah. People can donate without having to run any non-free JavaScript, which is nice. Because unfortunately, usually these days on the web when you do want to buy something or spend money, you have to run non-free JavaScript, which isn't the case when donating through the FSF. Yeah, so we just joined, as I said, on Thursday, and we've already received our very first donation, so we'd like to extend our thanks and gratitude to Scott Ranby, who is actually our first ever kind donor. They agreed to be thanked publicly. So thank you, Scott. And yeah, so this is a recent development. And we plan to add much more information and details about this whole situation to the wiki, including links to the announcements, some more information about the program, and our donation page of course, in the new future. And in the meantime I'm also happy to help answer any questions as best as I can, So feel free to ping me on IRC or just email me at bandalia.guinard.org. point out 1 question that we know people have is just about how much of the money goes to FSF when you make a contribution through the fund toward EmacsConf? is that it's 10%, which is for supporting the operation of the Working Together program and also the shared GNU infrastructure, which we as EmacsConf use and depend on, along with several hundred GNU packages. So, yeah, and it covers things like transaction costs that the FSF's payment processor charges? a real fair price. I have some experience with working with payment processing and things like this and like 10% that's a that's something that you see in Bigger businesses that have a model around making money on that Transaction so to be able to do that as a nonprofit. We're taking advantage of a really awesome thing there. just for a quick plug, the FSF is actually doing an end of year fundraiser right now. So if you want to go donate to them, or if you donate to us, a part of it will go to the FSF to support their work on free software, helping grow the movement, and spread the word about it. So, thank you. And I guess now is a good time for me to pass the baton to the next organizer who wants to talk about some of the specs of the servers that we use right now. detail. I just put it in there in case people were curious about how much it takes to run something like this. Not a lot. It's just really, you know, 2 days of computing is not that expensive in today's world, and all the rest is just volunteer time and a heck of a lot of Emacs lists as previously discussed in our presentation. So, we'll just skip through that instead of reading all of it. Unless people are specifically curious, you can ask questions afterwards. But yes, happy birthday, EmacsConf, and here's another wonderful 10 years. closing remarks. Have I forgotten anything? We haven't had Flowy yet, I believe. Sorry for putting you on the spot again. what you have already said. So thank everybody to make a presentation, to do anything here. Thanks for all of you that I could be a part of it. I have to admit it also. So thank you all. And yeah, nothing to say probably. for, you know, stepping in. We kind of like throw this on you like at the last second, but Flowy actually stepped in and hosted graciously a couple of the talks on the Dev track today. So, which I think went very well. So congrats and thank you. We kindly asked Floey yesterday because everything was going so well. And now we can say it, you know, I can say things are going well. Usually it's a bad thing when you're doing a broadcast to say things are going well right now because it tends to backfires at some That, that's planning. Flowy didn't sleep all that much because we tasked him with hosting, so he was turning in his bed all night thinking, oh, I'm going to host MaxCons. But Flowy, you did a wonderful job and I am so glad that not only you were able to join us again this year, but that also you were able to host. Because last year, had we asked you to host, you would have said no. First time we asked you this year was yes, but give me some time to think about it. it will be yes directly. All right, so since we are at the end of the thankings and I did say europe team needs to go to bed in about 12 minutes that leaves us about 12 minutes to try to answer as many points as you'd like to raise. Sasha, I think the Q&A room is still open because we are technically still in the Emacs conference room currently. So, if you... We're going to put the link again if you need to find it. Otherwise, scroll up and find the 1 on there. Maybe. I will go figure this out. Keep talking in the background. background, it would be nice if you could join us and ask questions, either by dropping them. I see plenty of people have already left some comments. We have 2 places, right now it's more about a chitchatting about the end of the conference. If you've got general feedback, we've mentioned it at the top, but if you want to write your general feedback here, it will find its way at some point in the years of the relevant people who can make things change. So don't worry too much about where you put your feedback, it'll be fine. But now, how about we start reading some of the notes that people have said or questions that Do you have any stats on how many people watched for an IRC and BBB over the 2 days? which I can answer more readily, I think yesterday we were averaging around 240, 250 concurrent viewers at a time. And today, so today it varied. I think the maximum was again like around 200 to 20-ish with the average being more around 180, 190 viewers. We've had a lot of hits to the actual web pages for the Emacs Conf Wiki or the pad, which are all being served on 1 server. I pulled some numbers. I'm not sure if they're correct. So I'm like a little bit hesitant to discuss them. Safe to say they're easily in the tens of thousands, maybe in the hundreds of thousands of total visits over the past, okay. So, yeah, that's why I'm hesitant to say. But yeah, easily in the thousands or you know how many you are, you do not need exact numbers so I don't have the exact numbers but I guess it's always kind of fun to maybe try to pull some numbers and look at it that way but you know of course we all know that what we do, every single person counts. So I don't know, trying to look at turning people into abstract numbers isn't, I don't know, inspiring to me very much, but it's cool. So. questions. So Sasha is now in the viewport where we can see some questions. So how about we take some of them. I can read them or if anyone of the organizers wants to do this, feel free, especially those who haven't talked to a whole lot this year. Cohen, do you want to try it? I did and I'm done. I took the first question, I picked the bottom question off the list because I knew exactly who it was going for. The person who wants to answer or direct the next question is welcome. Sorry, I could have given a little better stage direction there. I'm not prepared to answer how many emaxers are from Nordic countries other than to say definitely yes and several. And I haven't looked close enough at the suggestion yet. the BBB limitations. So it's the second 1, the red 1. Small suggestion, likely out of your control, but anyway, the blue button seems to work very well, but it would be a bit more watchable if the webcam frames were lined up vertically on 1 side, because it would allow the screen share frames to be larger and would make much better use of the viewable space. Maybe worth a bug report to upstream. And I agree, BBB has been really good. Amine, did you want to say something? the end. us. It allows us to have many parallel rooms which are all recording service side at the same time. And it's wonderful for us because we can gather. At some point, I think last year, we had 4 concurrent talks being recorded because people were just so interested in what was going on in rooms. And you know, we only, like this year, the co-organizers, it's the 5 people you see in a room currently. And if we had all of us to be in a separate room, having to record on the machine, it wouldn't work. So we are able to demultiply the amount of content that we produce thanks to BBB, but sadly, we are also quite limited by the interface of BBB. Another problem that is dear to me is that audio tends to be fairly bad at some points depending on the speakers because BBB has really funky audio correction stuff going in the background, and sometimes it works, sometimes it doesn't work, and especially on my machine, the specs are above in the document if you're interested, but BBB and OBS do not play well at all. You might have heard me speaking with some clicks in my voice at some point. That's another problem of BBB. Anyway, I mean, you wanted to add something as well. emphasize the problems with audio on BBB sometimes, but about the specific suggestion here of like lighting things up at least visually, I think that's like much more doable even if you don't open a bug upstream. I believe the Free Software Foundation for their LibrePlanet conference, either last year or the year before, they had some custom, like clients signed into browser, custom CSS, where it would do exactly something like that. It would like enlarge the shared screen on the 1 side and then stack up all of the webcam feeds on 1 side. So we might be able to use something like that. And now I feel like a heel as soon as I opened my mouth, because I think I almost get the sense Floyd wants to jump in here and we're all talking, everyone except Sasha who actually wrote OBS, you know, the OBS WebSocket plugin that is probably the answer to all the different questions everyone is bringing up. So I guess I'll leave my input at that And Chloe, did you have anything to say, or can we pick on Sasha? the protocol change, because I think the protocol change was from 4 to 5. It's 1 of those things that I haven't gotten CSS. So if I can tinker with the CSS or if somebody else would like to volunteer to move things around, then that would be fantastic because front-end should be things. Okay, oh, what order of magnitude hours do you each of you think you devote to the conference yearly? I have I expected someone would ask this question. So I have I have my the past 11 years of time analysis. This is my Emacs category, so it also includes Emacs news. So this is my Emacs hours by month and year. So you can see last year, it spiked up a lot. But this year, it has taken less time. So last month, it was about 93 hours. And the month before that was just about 87 hours of prep. And this actually includes things like captioning and, and coordination. And then you can see a little bit of time here like the EMAX news and and harvesting q&a and adding chapter index indices and things like that. So I, I like it, it's it's my form of fun. And Otherwise, I'm mostly just, you know, helping the kiddo go to play dates and carrying things around. And, you know, so this is the stuff that I do to keep my brain happy. And if you're wondering, okay, well, do you sleep? That's the next question I expected people ask. The answer is yes, we still actually do manage to sleep, or at least I do. Less so now that I have a kid, this is like 2016, had a kiddo, and then suddenly much less sleep, but still a reasonable amount of sleep. So Emacs stuff happens, I can still sleep, and it's a lot of fun. yeah. how do you expect all of us to say anything after this? Whatever we say is not going to be backed up by data, it's not going to be as many hours, and it's not going to be as qualitative in general. I can remark on something because for me it's my fourth year helping to organize EmacsConf and there's a definite change this year. I did spend, usually I get into EmacsConf mode in late September when I start worrying about the CFP, the call for proposal is finishing, and then we need to start running after speakers to secure the proposals to make sure, oh, can you do this? Can you do maybe a 10-minute format instead of a 20-minute format, you know, all this jazzy stuff. And usually it kind of looks like Sasha for me in terms of involvement, or at least it did for the previous year. But this year, now that I've been gainfully employed as a software developer, I found it much harder to find the time to invest into MaxComp. But 1 of the things that allowed me to still stay efficient at my day job is the fact that I knew that Sasha and all the work that we did in previous years would come to help us organize this year's conference. And I'm not kidding, this year, I've been keeping an eye, obviously, and we've been chatting with all the organizers, but it's mostly been Sasha holding the fort from the end of the CFP in September to right about end of November. So I'll use the opportunity, as well my fellow co-organizers will, to thank you Sasha for putting so much time and energy into this. Not only Sasha from this year, but also Sasha from last year, and last year, and last year. And I will not be able to give you a figure of how much time it takes. I can tell you that the 2 days of Emacs Con are a bloody marathon because we cannot share our screens with you, but Sasha has given you a little bit of pointers about, you know, how much stuff we need to monitor. Sasha just switches constantly between workspaces. I just put everything on 1 workspace and my screen looks absolutely mental. And then I wonder why my microphone is clipping on BVB, I suppose. All right, that's all for me. Anyone wants to say anything about how much time it takes? Sasha, please. actually have a Matthew Lent donated a computer to me that can handle the big monitor and I'm stealing my husband's big monitor over there. See, So this is my setup today. It's got like conference stuff on my laptop and then just IOC on the other big screen and the 480p so I can see, I can make sure it doesn't fall down. Yes, so I have a nice setup today. it takes for them to organize the MaxCon for 2, you know, including everything, be it the brainstorming, the answering volunteers and stuff like this? Or we can move to another question, of course. I kind of dropped the ball this year, somewhat unintentionally or unintentionally. Well, yeah, I didn't have any other choice, basically, at least in like September through like early November or mid November. But I think like, it sort of differs, I guess, from year to year. Sometimes life happens, and no matter how much you would love to put a ton of time into something, you just can't. And maybe next year you can do a lot more. So I'm optimistic I'll be able to put in much more time into things for EmacsConf next year, but that's just me. drops in. Sasha, go please first. about having those. I think designing conference systems or processes so that they can take advantage of little pockets of time is the way to go. I love the fact that we now have a system where hosts can show up on the day of and just rock it, right? So this is great. It is good that we can get by with less time throughout the process and just take advantage of whatever time people have. Whether it's, you know, they've got 2 hours, they want to caption a talk, that sort of stuff is already totally awesome. Yeah, you both stole my Thunder and then put a quarterback in me. I couldn't agree more with everything you said. That's something that just typifies what is amazing about this conference, right? It's a kind of accessibility, isn't it? Having some work I can give you that helps you give back to your community that is at your level, that fits your time budget, that is something that you're willing to go care about because it intersects, you know, the world you live in in some practical way and therefore you can make time for it. We all live in a lot of different trenches and making them intersect is 1 of the things Emacs does in a technical way community way. Okay, and it brings me back also on the OBS front. And I think that's what really excited me too. When I think about the potential that's out there and getting a bunch of people looking at the work you've already done with OBS WebSocket and thinking about, you know, oh, we want more timers that count things down and we want each organizer to be able to have a little palette of them, some of which are gonna be handed to you by the conference director and some of which you can add yourself because they help you and that's right. And, you know, have, you know, keeping things really fast and loose so we can make the artistic decisions on the fly that make our conference what it is, but then making, you know, a simple automated tool chain that anyone can learn and that we know how to execute the steps of manually. That's the actual design pattern that you've implemented here that's working so well. So the oh, I've dropped the ball this year. Amin's, just to be clear with everyone, Amin's definition of dropping the ball is securing a sponsorship with the FSF. So that's dropping the ball for you. We take 1 week off a month where we coordinate infrastructure issues between this and other FSF supported projects using quote unquote GNU infrastructure. That's kind of a, GNU is really an umbrella term once you get kind of close to it. You know, it's like GNU is all of the volunteers helping with this vision we have of user rights. time we spend on this. It's just the fact that we've experimented over the 4 years I've been part of this. You know, the first year we had so many meetings because we thought this would be the way to know 1 another and this would be the way to create qualitative notes. And we've come back to this. interrupt you again. This is all I do. Leo This is why I keep off the microphone until the last 20 minutes of the conference once everybody already wants to hang up Then I know you'll be honest with me But I have to say when I looked at that table of data all I saw was 200 hours of Sasha's life that she spent talking to the, you know, all many of us were involved. It's not just the 4 or 5 of us that, you know, that have done this last 2 years convention, right? It's, you know, there's been many people that have come in, shared wise thoughts, helping us form the, I don't know, ethos or all of the things that we're carrying forward into 2024. Sorry, Leo. I mean, you pretty much continued with what I was going to talk about. So I'm looking at the time and I've already extended by 5 minutes the amount of time I was supposed to stay and Flowy is looking at me with very teary eyes because he's thinking about the meeting he's going to have at 9am tomorrow, as will I by the way. Yeah, don't you have to I mean aren't you supposed to be... I hope you get to sleep before work. Thank you so much for your awesome work this year. Conference, so I'm just here like from Friday. At first, I was looking at the website, which talks we're having, So it's all fine. So maybe next year or the coming year, I can do a little bit more privacy. like with Amin, Flowy's definition of doing, not having done much is hosting 1 of many of the Dev talks. So you could be kind of worried about it. All right, folks, considering the question that we have right now, we still see people adding questions, but I think we are all pretty tired and we need to get on with the rest of our weekends or nights. So do I go into parting words now everyone? Are we okay with this? I'll take this for a yes. I'll ask Sasha, yeah? yells at me to come for dinner so I can hang out with people after. and do the wrapping up. right, I'll do the wrapping up for the perhaps the stream. We might leave it up because there's no impetus for us to close it. But at least to officially close while we're still there, EmacsConf 2023, I will have again to thank everyone, all the speakers, all my co-organizers for making this possible. You've seen all the care that we put into it, and we are glad every year that all this work is doing something in terms of community building, in terms of leading more people to join us every year as speakers, or just join us as a user of Emacs. And it's always a pleasure to organize the conference, to host it, and to work with everyone in the room currently. Corwin and I are constantly joking when we are backstage making jokes. I think it's Corwin we said last year during the closing remarks that there was no other place they'd rather be than in the backstage. And for me, even though many things have changed in my life over the last year, many good things have happened, it's good to come back to Emacs Cons as this milestone and say, oh yeah, I'm exactly where I want to be, with the people I want to be with, and I see myself and I cannot wait to see myself again in the situation next year. So thank you so much everyone. If you want to join us, ask questions, we'll still be here for a while. Floey might drop out, I might drop out, Sasha might drop out, but we'll be here to answer as many questions as you want for as long as we can. Bye bye everyone and let's get started with the after show now. when the kiddo yells at me. yeah. The way to remember what I said, Leo, it's 100% true. Oh man, turning off your lights, I'm doing it. I'm doing it too. Sorry y'all. Oh, yeah, bye-bye lights we just turn off the the big lights that we have in our faces all the day especially the hosts too, so I can Can I hear you now? Yeah. Is it feeding back pretty bad? headset a little longer. I give 1 ear a break at a time. small, small price to pay to get to smooth with y'all. Yeah, I was just looking at that chart and I was thinking about all of those meetings that we had like 18 months we were just on this death march to organize this and it's just such an amazing accomplishment that you you have here Sasha like I'm sorry to pick on you personally but the work that you put in keep being able to keep it the whole technical project in your mind, all the way down to presenting it at this year's conference and like kind of spoon feeding it to people that want to run off in their own damn direction and then handing them an org is the 1 that people keep bugging us about. So if you're looking for a project, here it is. Just really well done. I no longer feel like we wasted a lot of time there. I mean, you remember I enjoyed so much all of our check ins and all of that stuff. But we had so many ideas, you can imagine that I wondered, you know, I wondered if we should have had more focused meetings and all that. And I was glad when we stopped having like weekly meetings, because you know what I mean To keep this much power in the room once a week, it feels creepy. This much intellectual power. Anyway, that's it. I think that's it for me. I can't obviously speak for Sash or anyone else. Yeah, the regular meetings were a little bit intense than we had the year before, but I'm kind of also super glad that we did do them. And, you know, in a way, it did help us sort of connect and get to know each other much more regularly or much more which is great and I see thumbs up from Leo and Corwin so yeah happy we did them. Might want to have some kind of actually irregular ones every once in a while if we have to decide on something. But if like this year, everything can be worked out pretty much ad hoc, whenever needs be, like over asynchronous communications. I see Sasha nodding very excitedly. This also works. So yeah. And I also see some questions coming in here in BBB. If other folks want to join, please feel free to do that as well. Yeah, I don't think we have an issue tracker right now, but our whole website is a wiki. So if you wanna like create a new page or there might be a page, I don't know. You can of course go in and edit it to your heart's content. like I almost managed to type that as fast as you could say it, you know. That's fine. I get the same answer in the chat. Yep. Our website's a wiki and we definitely use ideas here. If you want to implement them or you know document them enough that even Corwin can code it then you know I'll do that. some point to harvest them and I think I have yeah I have an Emacs list function that does this for me. So that I can go through that thing and include that in our organizers notebooks, lessons learned and ideas for next year. We were talking about the different models between having many, many meetings and how it paid off eventually. The thing is, this year we had no meetings. We met Friday morning on Mumble and we were ready to go. We did chat things up a little bit on ISE, obviously, but no meeting this year. So I'm tempted to say that, yes, we could have off-hand meetings, but I think it's mostly because we want to see 1 another, not because we need necessarily for those meetings to prepare Emacs cons. But what I wanted to say as well is that I think it's a testament to the bets that Sasha took last year to automatize a lot of things. I mean, we'd already been automatizing a lot of stuff, like writing scripts for every single thing in ESPire, but last year we made a big bet to say, what if we had OBS in the cloud? What if we had a streaming platform that was running on a machine? And this is what allowed us to very smoothly have 2 tracks, the general track and the dev track. And I think the beauty of this system is that, obviously, because we get more and more speakers submitting talks, we are starting to think maybe we actually need a third track or something and no 1 is stressed in the room when Sasha says this. You know, there's not the reaction that's like, oh no it's gonna be tough, we're gonna need more hosts, organizers, it's just a calm... when Sasha says this. spot next year. You'd be like, you know, hey, Colin, what do you feel about hosting? And I feel, I mean, just to jump in there and say, yes, exactly. No, there's no concern on the part of the organizer committee that we could expand this. If you said we needed to expand to 4 tracks, I think we would gulp and consider it, you know, from there, it gets a little crazy, but strictly because there aren't that many people that we know want to commit. What did we see there? 80 hours of potential work that, you know, that could go into organizing next year's conference if you find that it's a rabbit hole for you and being a streamer means you want to read every email and respond to every, as Sasha has done this last year, right? So when I look at her numbers for total participation, that's really a high watermark. Sasha really took care of this convention, you know, like a producer might. And the fact that what used to take 200 hours before, I mean, I can't harp enough on the story that that's telling you, right? And as I think about it with a project manager hat on, right? I'm saying, okay, well, that's, you know, that work can potentially be amplified to many thousands of hours of work, considering the automation and the potential for bringing people in. So if you thought about it as a money-making thing, If we were trying to make money by having these conventions, you would think we have a very profitable business here because we can amplify the talent that walks in the door really effectively, if that makes sense, through the tools and the training. volunteer as a host or just check in, let's just talk host. It's really just a matter of showing up, making sure your BVB works so you can talk. If you want to share your webcam, you can. You can skip it if you don't want to. You can share the screen with the pad. And then you just sit there and you chat with a speaker and you read the questions off the pad in case they don't read the questions off themselves. So it can be a very low effort, low stress way to get into it and just there kind of helping the speaker have somebody to talk to. It doesn't have to take 80 hours. It can take 2 hours and that's cool. transcription task. Yeah, sorry, I probably missed the lead there, right? Every individual part of this is really easy. So it's an open-ended commitment to come and kind of meet a part of the committee, a part of the community, right? To come in and say, maybe you're really excited about org, you could review talks and just review the org ones. There's not an obligation that says you're going to look at every talk that's submitted, right? Share your thoughts on the talks that you have a chance to review the proposals. That's the submissions review part, right? So there's a way to help with almost any appetite for I'd like a little extra work in the Emacs department here like if you want to feel like you're part of the team this this team is really easy to get please. Go ahead, I don't get tired of hearing you talk, but yeah, I was going to say, Yeah, I feel like that's the general message here is that we're all just a bunch of people who are interested in this. And of course, being humans, each of us have different kinds of lives and different kinds of availabilities and different kinds of interests. And there is something for everybody, both in terms of the kinds of tasks that you need doing, but also in terms of the amount of time that you want or are able to put in. So yes, if you do think this is something that you might be interested in helping with for future additions and such, or even some of the post-conference work that needs doing after this year. Please reach out there's something for everybody and I would love to have so I came here last year just doing some checking in and the process of getting, it's called a trained in was really, really short. There was a lot of documentation how to do something. I mean, there's a pad that gets sent and what to do, when to do, and what to ask is like really incredible. So thank you for that. Just come here, write an email, join us. It's really, really cool. And it's a great experience to be honest. the update of the wiki, oh Coleman did you want to say something? Floey Coder further but you go ahead. I was just gonna say I think you're pretty quick, you're pretty quick, you took to it really quickly or you show just kind of a reflexive calm. Like you know how to not talk over people. You're already better at it than I am. Now, you know, I think, yeah, I hope you're enjoying the new stuff that you're starting to take on because you seem to be doing great with it. And yeah, I hope you're not sitting there thinking that you're taking, you know, that you're coming on, that you're not taking on enough responsibility or anything like that, or I don't know, maybe. I picked up like a little undercurrent of like, I don't do that much, and I hope you don't feel that way because I just enjoyed really having your help the last couple of years. Thank you very much. you know, they just tell you, oh, could you do check-ins? Like I showed up for 4 years ago saying, oh, I'd like to help and look at me now. I think I did I host on the first year? I'm pretty sure I did. Like it took 2 months basically of onboarding to convince me to do some of the hosting and back then oh it was so tough for us to do the hosting because we didn't have all the fancy setup we have this year and we were struggling with OBS with bid rates with sharing scenes I'm glad we are where we are today, where I don't have to worry as much about this. But it's also nice, it's also 1 thing, we do have a culture of documentation as Sasha exemplified, and like Flo mentioned, documentation on the roles. Yes, We did do this to help people join us. But really, I'm the host of General, but it could be just anyone else because we have so much documentation on how to do things. Obviously, when a co-organizer is doing a role, we tend to have an eye on how the infrastructure is going. But really, if you want to join us, we will make sure that the jobs that you have, first, you like them and it's something that interests you, and we will also make sure that on our end, everything goes well for you. Like we'll be monitoring the streams and every time we have a new person join us, it is as much energy and mental availability to invest into, oh, maybe we could do this. Oh, 0, we have a fire going out because the speaker hasn't checked in yet. So it's all about sharing expertise, it's all about making people level up in terms of skills that are really useful. I will attribute a lot of my success in public speaking to the work I do with EmacsConf, and I'm sure plenty of people would gain from joining us and learning these skills. All right, It's about 30 minutes past the official time. Do we want to go a little longer? Are we still available to go? All right, well, let's keep going. I don't see any more people joining us on the in the room. Bob, do you want to maybe unmute yourself and ask us some questions? Or just thank us. I mean, I'm just begging for something. But I know you've been very helpful. No, I'm exhausted. I'm exhausted for you, I think. So I learned something. Everybody wants to record their videos, which of course, is great, and then you have the subtitles and everything. But I saved a lot of time by doing it live this year and not going in and tweaking and doing all the editing and spending all the time that we do. And it was kind of fun to do it that way too. So just a little note there. But I look forward to seeing 1 of my talks subtitled someday. So no, I love what you do. It's fun. I've only seen part of Sasha's talk, so I'll go and review that about how you're automating all this. You know, it's a little sad for me personally that of course, Org gets all the attention, but you know, we're exposing hyperbole more now and There's definitely a growing interest on Reddit and you know, I think it's kind of like EmacsConf. Give it a few years. We went away for a long time and then we came back. We'll start to see it permeate the Emacs first. But I was thinking that, you know, I think people who like Emacs and stuff, they read things online, they come to this conference, but we're always hearing about, well, the next generation. We have to deal with that. And I think a lot of people get exposed to Emacs in college. Now a professor turns them on to it and makes them use it, and then they go out into the real world, and there's no encouragement anymore, and they just drop it. And with all of what you're putting together here, it seems like if there was some reach out to universities and college students, You know, we might get a whole new big crowd of people coming in. You know, just as I think OREG has really attracted a lot of people in the sciences, since that's what it was originally developed for. So just a thought, you know, maybe if you get any volunteers who can help in the reach out or just, you know, sending things around to universities that might really extend who gets exposed to this stuff. interesting idea. And it sort of touches on a couple of different things. Sort of like you mentioned, well, with org, it sort of really drew into sciences, folks. It would be interesting to see other parts of Emacs doing that for other kinds of communities, but also specifically, I guess, for colleges and universities. Yeah, it would be cool if we had local groups or local meetups, because so far right now, I think the most common ones are like by city like for example a Toronto Emacs meetup or something like that yeah if you could maybe encourage or help foster a university level type of thing you know University of blah blah Emacs group or something like that and you know seeing what their needs would be or trying to think also what features of Emacs would be very useful in an academic slash educational setting. Yeah, lots of food for thought there. So thank you for mentioning this. OBS is coming up here. I worked with that a bit, yes, last year. You know, another powerful piece of software with a sort of, I think, a weak user interface, you know, for the newbies coming along on it. And maybe, you know, if there's, if that's kind of what people use, figuring out or putting some information in the wiki about how to do that, you know, work with it or... preeminent streamer software out there, well beyond the free software community. It's used by most streamers on Twitch and other like commercial for-profit things but of course those companies are making money off people trying to give money to the streamers. Those streamers aren't getting any software help. So actually most of them are dependent for their income on free software like OBS and OBS in specific or by some kind of forked brand name is the primary tool. joined us right now in the room. I'm putting you on the spot, if you want to stay muted you can. Oh, you have unmuted yourself. Yes, I'm here. How are you guys doing? conference. I really have to congratulate everyone. So I just hopped on here to sort of say that I'm extremely impressed. And I think this is an example to follow for other conferences and for Emacs in general. I think we need more of this community-type organizing and just getting people interested and involved on all kinds of levels can only help Emacs. Because we are in this for the long haul. That's it. If I can comment, that's 1 of the things that drew me to trying to contribute to free software when I was a kid, like we're talking now 30 plus years ago, the idea like, and I recognized it from Stallman's initial manifestos on the topic, right? He was clearly in this for the long haul. Like I am building the library of Alexandria here and like linking the work that we're trying to do to community that I don't know how you could touch my heart you know more surely because that's that's exactly what we want to do not necessarily any given talk or comment but the idea that we have to get together and share our ideas and the place that we do that has to be just has to be a buffet and not a crucible. giants, really, when we're looking at Emacs and sort of what we have achieved. And the galaxy of talent that exists in the Emacs community is also like truly impressive, I think. So There's a lot of work to be done, but we've also achieved some pretty impressive things so far. So let's just keep at it. I'm sure we'll have a fantastic future for Emacs. Stefan's here. You know, just the common tropes that go around. I just hear it so much on the net, you know, is Emacs still alive? Do people still use it? You know, and of course, it's like you have an older piece of software that started so long ago, people don't realize that it's still up, but it's also because of the trends, right? You know, we've got the electron-based development and Visual Studio is slick out of the box. So what's in the core Emacs developers realm, obviously you guys are taking this longer term perspective, which makes sense, but what do you think about this issue, the shorter term and how to alleviate those concerns that some people represent? this is something that, I mean, clearly people are discussing and as you say, It's almost like a trope at this point. And it's been discussed on EmacsDevil, what can we do to promote Emacs more and to what extent should we care about that? And I mean, my reply to that is usually just, the rumors of my death are very accurate. And I think this is true also for Emacs. So we are very much here. I think what has happened also is reflective of basically that there are just more programmers on the planet, that segment as it's been growing, but also we have more Emacs users I think today than probably ever before. We have more packages, we have more stuff going on. So I think it's a challenge as well, like to what extent do we wanna be like a niche and to what extent do we wanna be the text editor for programmers. And I think there's a tension there because we want to stay true to what Emacs is and to its sort of core values of what makes Emacs great, but can we still make some changes to sort of stay relevant. And I think that's a huge win. And clearly these discussions are going on on the Emacs level and in the minds of core developers, I think, every day. Even though, I mean, most of our work is just trying to keep adding new features, make sure that we have that sort of core infrastructure in place, which is part of the reason why I gave the talk I did yesterday, to invite more people to come on board. Because I see a lot of people have opinions about Emacs, which is amazing, and we need more of that. But I think, let's say, patches speak louder than words. Software. And it's definitely true in Emacs development. like attack the premise of the question a little bit, right? Remember that we are sort of in a trench warfare with commercial interests that are dependent on dominating software ecosystems in order to exploit users for money. Like that is a necessary thing to a lot of people's business model. And so we live in a world where software is more than tools. It is clothing. And so when I put on my Mac and I put on my UI skin, I'm not just choosing whether I like sliders or radio buttons or check boxes or the other UI mechanics that give that heuristic and make it make me think it's easy to use, easy to learn to use, right? I'm also choosing a whole line of implementation detail that I'm being actively trained not to try to understand by, you know, kind of the dark side of the force over here. So when I think about, you know, make Emacs more like Toaster, question asks, you know, an angel grows, gets asked, an angel grows its wings. A developer submits a patch, a bug gets opened that we can, you know, with enough information to actually do something about it, the ecosystem gets better, right? Whether a new user comes or not, like somebody's actually asking a question that's going to lead them someday to pick a better tool. we have powerful enemies and they are not working for us. And when they are working on improving VS code, you can't be under any illusion that they are doing that in the interest of the users. They're doing that in their interest of the corporate owners. So this is the reality that we have to face and Emacs is just not like that. And this is of course part of the reason why it's so important that we continue this work for the future of being able to do computing in a free way and in a way that is actually, you know, supports the types of workflows that we know and love. that, you know, you've mentioned we need more programmers in the world. And in light of what we're doing with EmacsConf, perhaps we need more people to be at EmacsConf talking, not necessarily programmers, but just people apprehending Emacs and talking about it. It feels like we've got different missions that we're trying to accomplish with this. We are... Okay, you... Go ahead, Colin. I almost came in there on the previous point. Yeah, I actually Completely agree with that Leo. That's something that and I mean to be fair. I owe a good I owe dev al a good email on this topic, but we desperately need more project managers, more solutions architect, more business process analysts, more systems analysts, more, you know, and the best tech, you know, some of the best threads start with quite a bit of an analytical work done on the part of an engineer who's come along. But actually, Larry Wall has this quote, right? Where he says, consider 3 solutions and build 1. And I think we struggle with that as a community because getting a patch is a lot of work and a lot to ask for somebody. So asking 3 people to submit a patch means you're saying no to a lot of blood, sweat and tears on the part of like 2 people, maybe 2 teams of people. usability and user experience design. I think, and not in the sense like, you know, CUA mode or, you know, people don't realize that Emacs key bindings are actually ergonomic, but more, you know, like for myself, I did a lot of work in sort of bringing out Emacs features and did a lot of things creating this info doc, you know, which is sort of like Space Max or something in the old days. But the process, yeah, kept a lot of that from ever making it into CoreDMX and, you know, just a lack of time on my part to follow up. But if you had somebody, you know, who sort of coalesced all the technical work on like, here's how we can put it together and make it more accessible, I've seen that go a long way in certain environments. And I imagine, you know, it's just not the experience of, you know, most people on the core team. We don't have, I mean, we're mostly a bunch, we're a bunch of programmers. That's what we are, right? We don't have graphical signers or any of the stuff that you're talking about. So we don't have really any UX experts on board. So perhaps that would be welcome. But then again, how do you even fit the EMAX paradigm into what is typically taught and discussed in UX? I mean, maybe there is a way. I'm sure there are general principles and a lot that we could learn, But then there is also like this, we have to stay true to what Emacs is to some extent and what does that look like concretely. There are discussions to be had for sure, but we would definitely benefit from that type of specific input. at the conference guidelines I always stay in dark mode and it said well use light mode for your presentation so okay I'll switch to light mode let me load a theme so I go into all the default themes and, you know, start going through the light ones and then I check all the faces and, you know, there are at least 3 to 5 faces that have nearly invisible text as a result of the background highlighting on them. And I'm like, you know, so there's low hanging fruit like that where people would deal with the structure of the menus, the actual faces, the themes, that don't have to do anything affecting core Emacs except make the presentation much better. polishing patches for various aspects, I spent some time making a new help screen. I don't know if you noticed, I don't know how many people press Control H, Control H on their keyboards, But it's like with new sections and it's sorted a little bit better. It didn't take much. I mean, it took a time obviously, but it's not like it required some fantastic technical knowledge or deep expertise in Emacs Lisp to do that. It's Basically anyone can do stuff like that. So definitely if you're interested in doing that type of work, start discussing with us. Let's talk about what we can do and get doing it, really. presentation from yesterday, Stefan, as well, because you were just inviting people who are not contributing to the core of Emacs to do so. You were talking to package developer on MailPub, but you were also talking just about the average Joe or Jane just doing their own things or encountering a problem. Now, yes, we talked about, oh, you need to build master and all this, but at the end of the day, low-hanging fruits like the ones Bob just described. If everyone does this at the end, you end up with something that is extremely polished. Perhaps you do not need to have a UX specialist to tell you that, oh, those 2 colors are actually very close to 1 another. I think it's kind of a discussion about same defaults as well that you had yesterday. Ultimately, we do not need... Yes, we need more programmers in the world. We want more people to use Emacs. But you don't know. Like, is it going to be someone in computer science that's going to be the next giant on whose shoulders we're going to stand? in computer science that's going to be the next giant Is it someone who did not computer science? Is it going to be someone who did something completely different? We do not know the prototypical user of Emacs. We have some idea about the fact that they might be using you know, Emacs for their programming, but more and more, and as is evidenced by the talks we received with EmacsConf, it's just people doing writing or taking notes for their classes. So it's really interesting to see how and to explore for us how we can give back to the core of Emacs in a way that is mutually constructive because again, to go back to the philosophy or the political agenda that we have is for more people to use software that is not the liberties. Exactly. that's a good spot for me to come right back in. And that's exactly where I do. Right. Because that's that's what it's all about. In the In terms of a tool user, you know, the evolution of using tools as, you know, these creatures have fought, Emacs is fire. Emacs is the ability to learn languages, the ability to manipulate other tools. I mean, it's almost like, you know, God Emperor of Dune level, you know, some Frank Herbert type of powers that you have over your computer and you are not required to understand how all those things work. So from a support standpoint that puts us in a challenging position, right? I spend a lot of time on Pound Emacs and the questions that go by there, I feel bad for people that feel like they have to answer every question that goes by in the channel because no 1 could. No 1 can give an intelligent answer to the, you know, everything from, Hey, how do I change my default font on this operating system? You've never heard of to, you know, how do you know this list code? That's 40 lines long doesn't work. And I think it was a recent change that was made to the P case macro. Do you agree? Right? And as deep as that, well is, if you turn it 90 degrees, the Emacs is that kind of tool to the operating system level. It's letting me walk across to other systems, multi-hop, become the super user, right? And, you know, the just the power, the amplification of power there, it's like the lever combined with the magnet, etc, etc. I mean, just, yeah, I don't know. So I guess where we kind of jump off, where that gets stuck, right, is trying to change something like the defaults in the user experience. So I imagine, you know, we don't get 1 great idea about user experience, we'll get 3, right? And then Once again, we have to send our brave developers off to build 1 to 3 patches, some of which won't see the light of day. I think that's where the breakthrough is needed. Another evolution in the packaging thought, or maybe it's not packaging. Maybe it's the compilation step. Maybe it's the distribution step. Maybe we want the Debians of the world to deliver Emacs as 2 different pieces now. And there's a UX piece that we want you to package each 1 that you package, each 1 per window manager that you support or at the intersection of each window manager and display manager you port. And the other one's just the server and you don't even have to package that if I'm only offering the CLI or there's a you know like I'm making all this up and I can't code a single thing like what I just said, but I think that there's a technical opportunity. Pretty high level for technical there of just thinking about a way to accept contributions of experience with maybe a little less rigor and a little less ground into the marble. just brought up pair programming and he's in love with it. He wants to pair up and do it, which is not true of all programmers. But I said, okay, so you spearhead that. If we, I think it is a very high barrier to get your patches in because of course they need to meet the quality standard of Emacs. So if people who are doing day-to-day understand that process and can do it well, could work with some of the people who can't quite contribute at that level, but have ideas that are on the level that should go in, pairing them up could really move a lot of that forward. Like Lars, I don't know what his, I get the feeling maybe he's retired. So, you know, maybe he has some time, you know, and he's really good at going back in and saying, you know, these areas haven't gotten attention in a while, so I'm going to go kill some bugs and look at them and fix them up. So I would think he would be good to do that with someone. But you know, Again, I've got years of code that would just require somebody to work through it to update to the latest code base and diff against it. But it does things like, I mean, like if anybody used RMAIL anymore, I made the summary mode of RMAIL exactly compatible key-wise with the main buffer, which it never was, and fixed a number of other features. Dured made operations reversible, where you mark something and you unmark it, and you can go up and down. And there are all these little incompatibilities that kind of add up across time, and they never seem to get addressed. We could just fix them and people would start to say, oh, this is smoother and they are getting more of that experience because it feels like the systems maybe 80, 85% of the way there in a lot of thoughtful design. But that last 15% could be the difference between an iPhone and an Android phone of usability-wise. So that's a thought. That's a applied far wider than emacs. That's something that that FSF should consider suggesting across, you know, GNU packages, for example, like a matchmaking project seems like something that FSF community teams should think about. Yeah, I was going I noticed that the name Debian came up a while ago and now we were talking about programming and such and Mentoring maybe and Debian has this service or part of their site or community called Mentors. They have a website, mentors.debian.net, where the idea is that people who want to get into contributing to Debian, for example, to package things, but obviously don't have upload rights right away. This is where they can go to, and this is separate from their mailing list or bug trackers. They can basically build their changed packages and upload them here, and then Debian developers who have commit or upload rights to the Debian archive can go and review and give them feedback or ask them to change something or if it's good, then just easily upload the package right from there. And I wonder if it might make sense to have something kind of like that in like the context of Emacs or the GNU project as a whole, where we have like some kind of a, like loosely defined mentoring thing, where we could pair up people who are more experienced, who, for example, have commit rights in the Emacs core repository to match them up with someone who is just making your very first patches or contributions to Emacs or whatever other GNU package. Just some food for thought, such a system which would be nice is that it, at least in terms of, you know, the mentors that Debbie and that, that it has a web UI, which, is nice because mailing lists might be intimidating for someone who is just getting started, like in these communities. Or, you know, just making patches like that, or just have a series of concrete instructions. Like with mentors at Devian.net, I feel like you can't go wrong in terms of finding the steps of figuring out what you need to do to put together some change. Which I think the same idea could apply to Emacs, for example, as well. barriers, and how email is a barrier to people. I mean, so on the 1 hand, you have us guys on Emacs level, we're very used to the email workflow. Like we're not just using it for fun. You know what I mean? Like this is a workhorse. It really is. And it's tried, it's battled, tested. It has some quirks, but we know them extremely well on the other hand. So, but still we want more people involved, right? And we realized that, you know, times are changing as well. And people are more used to doing stuff from the web browser, perhaps. So we do want to move to a forge, or at least start looking into that. But there are some obstacles. So we are looking for volunteers to do that work. I'm not just saying it, like we are very serious. I'm very seriously asking people in the community to consider, hey, could you dedicate some time? I mean, it will take some dedication for sure it will take some time and it will take some describe probably even you know Be prepared to be frustrated at times right, but if you're serious about doing that type of work, okay now but but but yes exactly any I mean it's it's not even a joke right Any serious undertaking having to do with any free software project, just because we are open to the entire world and we pride ourselves on trying to take seriously all input. And if it's a logical argument, then we'll go ahead and take the time to combat with you, even though the maintainer has 300 other things to do. Like, man, this right? It just, It's not like Emacs is way harder to change than any other project of its longevity and size. It's just these things take time. Try getting a change into Debian. That's an uphill battle. I don't even know where to start with that. That's huge, right? And I have tremendous respect for the people doing that type of work because it takes dedication, it takes effort. So we really need someone to step up from the community, I think, to be a champion for something like this and work together with us on Emacs Devil and off Emacs Devil, probably with me and Eli and perhaps some other people that could be in the mail thread, and we could coordinate this type of work. I would be super excited if someone wanted to get the ball rolling. I can't do everything. I wish I could. Like, I thought about it. Should I just put everything to the side and do this? But then, I mean, there are some, there are other responsibilities as well. So we need someone to step up. We need help here. on you. Go ahead. yeah, I was just gonna say, yeah, I echo Stefan's sentiments. And that, yeah, in terms of like maybe experimenting with a different Forge or a better Forge and like, you know, supplementing Savannah. And supplementing Savannah. I actually did some initial work a couple of months ago to get a SourceFed instance installed for the new project. And I've done some work on and off, but then life happens, especially from September onwards. But even from earlier in the year, the project has been semi-dormant, but I have been meaning to get to that. So I'm like 1 such person who's interested in that type of work and driving it forward and I would love you know if anyone's and anyone else has the kind of time and energy and the interest to help with something like that. Yes, please reach out to all of us, to Emacs core developers, of course, and to myself. This is something that could be very useful, not just for GNU Emacs and Emacs developers, but also for any other GNU package as well. So yeah, that's 1 area of potential contribution and 1 thing that we sort of, I guess, regularly meet with the FSF sysadmins to discuss these kinds of projects and things as Corwin would know. you knew exactly where I was going to, and I'm glad that you volunteered yourself personally because that's the best choice. If you're hearing this and you're thinking, you know, maybe I should do some sysop stuff, literally reach out to Amin. And because it's complicated, there are a lot of projects to volunteer for. They're all very worthy. And it's sort of political to figure out what we're gonna try to change for whom first to demonstrate we can do all the things we wanna do to make it better without losing all the things that are important about how it is today. And we'll do it in a measured way like everybody's just like room full of rocking chairs everybody's got a long tail it's a hard project but you will do something that just a lot like as a Savannah hacker which I am with Amin So that's how I know about his work on that project. We worked together on the Savannah Forge. I'm aware of his work piloting SourceHut recently and just with a working group there to look at the next generation of forges for GNU. Emacs of course as a GNU package could go do its own thing. FFS would most likely give cash to go do its own thing, even if it didn't like it. We know, you know, as a, like if I put on, I'm not FSF, but if I put on that hat, I imagine that we must know. Emacs is a flagship thing that people in the real world depend on. If I get this ancient computer, I get a working Linux distribution and Emacs. Maybe it's not Microsoft Word as a word processor, but you guys, you can learn a language on it for sure, you know And you can do your homework on it and you know It's it makes your you can edit things and then you can edit your system files and teach yourself how to manage a GNU system and you can You know so Emacs is really powerful as a practical tool. Like I keep coming back to that point when I think about Emacs, like I really put it as like, it's an important tool on the like humans inventing tools level just because it lets me make this editor into whatever I need it to be to get my actual work done. Whether that's getting the length, maybe that's making the font big enough that I can see it, or making it easy enough to change from this font to that font, changing the background colors, like your basic vision, accessibility issues, right? All, you know, solved, I can bake that customization in and I can pretty much depend on, no matter what we change in Emacs, I'm gonna accept the new version, it's gonna be on the next computer I get, I'm going to install the package and my configuration that sets all that up will be there for me. Right? It's like back to Stefan's point, what, 6 and a half hours ago, I mean, you know, 20 minutes ago about just... Oh gosh, I lost it. Boy, I really thought I had handed that neatly back to you. agreement. of harmony, and the realm of midnight in Europe, Should we bring this discussion to a close or we could go all night, but I'll need to explain to my employer why my eyes are barely open tomorrow. I see some folks starting to slowly sign off. you could leave and just miss out. What? amazing job with everything you're doing in the community over the years? I'm so impressed with Emacs News. What a great resource to stay up to date in Emacs. Just really hats off to you for a whole lot. timely that John Wheatley had suggested it back when he was maintainer because when I had the kiddo, I suddenly had 0 time to actually write new things. But reading things is fine. I can just speed read all the Reddit things and put the links together. So I'm very glad that Emacs news is helpful. closing thoughts here while Leo's still here. And then if we wanna keep rolling, even after Leo drops, we won't tell him, we'll tell him we're stuck. for the second close of the day I've already done it I can do it again But I will prove Sasha wrong this time. I will miss out if need be because really, I have been very impressed with the sleep record that you had and I am very envious right now of your past ability to sleep more than 9 hours per night. And I wish I would be able to go back to this. But anyway, folks, I'm going to drop out. People might hang out for a little while longer. Bear in mind that Sasha might get called at any point to go take care of Kido. So this might wrap up very fast afterwards. But at any rate, it was my pleasure to be the host today. Stefan, thank you for joining. Bob, thank you for joining and interacting with us and making this a little more interactive and more plural than just the co-organizers. And on that note, I will be leaving. So have a wonderful night, everyone. And we'll see you next year for the next edition, potentially. I take everything I said on mumble back. You're amazing. Take care. Bye. I will Thank you all for this cool conference and hopefully we're here through the year and at least in 1 year. the victorious. You really stepped up. specifically you, Floey, and just everyone. Thank you all. other. Bye! I'm the next newest, I think. Well, I want to say also, you know, Bob and Stefan, thank you so much for jumping in and participating in the closing remarks. I too think it's a lot of, like, it's fun to just, like, share the buzz after the convention. We've got all these millions of ideas and then to have a group, a little group think about what we're walking away from that with. What is the temperature of the fire in your belly? And it's just... I mean, this is 1 of the highlights of my year in a way that it's just... I don't think other people... I don't think I dare explain it to other people. I think my wife understands and I will do. So thank you very much for this conference and the opportunity to participate in it. You know, just the conversation, how vibrant the chat is on IRC, how the variety of talks, some of the talks that look like television content to me and others that look a lot like my talk. And working through your slides and doing it live and you know I appreciate that we make a place for all those levels and and show people how to improve our craft as well. I'm not actually dropping or going anywhere. I'll continue to talk about eMAX until I get the dinner time bell. I've probably got an hour here. I'll tell you what will happen though is I'm guaranteed to light a cigarette. You can already see me kind of hovering about my room because I'm trying to avoid like smoking on camera. I don't know where that came from. I'm giving it up in approximately 5 seconds. It's possibly right here. I'll work tomorrow. I'm actually going camping, Stefan. I know I've learned that this conference leaves me completely emotionally exhausted. I just like, I don't know, I watch all, I feel like I just connect with all the, like it's this time where I connect with all these people that spend as much time thinking about Emacs as I do. you have like, you know, that overflow error and just... Thank you then. Everyone can find the recordings if you want to keep the conversation going. There are meetups, there are people's blog posts and video channels and mailing lists and all those other things. I often I list a lot of meetups in Emacs news so that's another great way to stay connected through the year and we hope to see everybody next year at EmacsConf 2024. everyone. Oh Sasha I think you were muted but yes I was still there I assume that's what you just said. I lied. I was staying around like Corwin was. I just said goodbye, but then I wait in the bushes, waiting for the ambush. speaking for myself. I wouldn't have guessed that would happen. All right, I guess that's a wrap then. Thank you, everyone, and see you next year. Are we not? We are, right? We're definitely clear. It was wonderful to meet you.

Questions or comments? Please e-mail sacha@sachachua.com

Back to the talks Previous by track: What I learned by writing test cases for GNU Hyperbole Next by track: Saturday opening remarks Track: Development