EmacsConf 2019 - Shared shownotes pad

EmacsConf 2019 - Shared shownotes pad from https://pads.ccc.de/fPYMhovcNN

Note: time-stamps are in UTC

<2019-11-02 Sat 13:06>–<2019-11-02 Sat 13:20> Opening remarks

Amin Bandali and Sacha Chua

<2019-11-02 Sat 13:25>–<2019-11-02 Sat 13:49> Emacs development update ("State of the Union")

John Wiegley

<2019-11-02 Sat 13:48>–<2019-11-02 Sat 13:58> Use Org mode when away from the desktop: Organice (pre-recorded)

Zen Monk Alain M. Lafon, https://200ok.ch

<2019-11-02 Sat 14:02>–<2019-11-02 Sat 14:10> Org-mode and FoilTeX - an unlikely (but useful) combination for teaching (pre-recorded)

<2019-11-02 Sat 14:15>–<2019-11-02 Sat 14:22> A.I. that Helps Play the Game of Your Life (pre-recorded)

<2019-11-02 Sat 14:22>–<2019-11-02 Sat 14:43> How a Completely Blind Manager/Dev Uses Emacs Every Day

Parham Doustdar (parham90@gmail.com)

  • screen readers
  • Emacs is making things possible for blind people that would be hard or impossible otherwise :-)
  • Questions:
    • Are there any modes that come with Emacsspeak configuration "out of the box"?
      • No Emacs packages come with Emacspeak configuration, but Emacspeak itself comes with a lot of configuration for different packages like org-mode, Magit, and many many others.
    • Do you, Parham, prefer emacs modes to not have any customizations around emacsspeak so that you can customize them yourself?
      • Yeah, no customizations is great. The problem with most applications, outside Emacs, is that people try and guess how a blind user for example would use their package/application. However, in Emacs, the cool thing is that you don't have to do it any more and let the user figure it out.
    • Are there any "rules" that package developers for emacs could use to make them more emacsspeak friendly or at least avoid being emacsspeak hostile?
      • I would say that the best way would be to just use Emacs functionality. Some packages do weird things with custom overlays, for example, which Emacspeak has a hard time accessing.

<2019-11-02 Sat 14:44>–<2019-11-02 Sat 15:13> Managing your life with org-mode and other tools

Marcin Swieczkowski (scatman@bu.edu)


<2019-11-02 Sat 15:16>–<2019-11-02 Sat 15:26> notmuch new(s) (pre-recorded)

David Bremner

<2019-11-02 Sat 15:26>–<2019-11-02 Sat 15:35> Browsing Twitch.tv from Emacs (pre-recorded)

<2019-11-02 Sat 15:36>–<2019-11-02 Sat 15:42> Ledger-mode (pre-recorded)

Miguel Suárez and Quiliro Ordóñez


<2019-11-02 Sat 15:43>–<2019-11-02 Sat 15:58> Playing Emacs like an instrument (pre-recorded)

Alain M. Lafon (alain@200ok.ch)


<2019-11-02 Sat 15:58>–<2019-11-02 Sat 16:39> Magit deep dive

Jonathan Chu @jonathanchu (https://jonathanchu.is/)

  • slides: https://github.com/jonathanchu/emacsconf-2019-magit-deep-dive
  • "I don't remember any git commands" :-)
  • mentioned xkcd comic
  • status
  • diffing
    • (setq magit-diff-refine-hunk 'all)
  • blaming
  • staging/unstaging
    • selective on hunks or lines
  • committing
    • go through previous commit messages while writing a new one: M-p and M-n
  • branching
    • spin a new branch
  • reverting
  • squashing
  • rebasing
  • bisecting
  • more
    • tagging
    • notes
    • submodules
    • worktree
  • magit helps understanding (complicated) git paradigms
  • Q&A
    • modified doom theme
    • org-present used for the presentation
    • git hygiene
    • C-c M-g: global magit mode
    • resolving rebase conflicts


<2019-11-02 Sat 16:43>–<2019-11-02 Sat 17:28> Emacs as my Go To Script Language

Howard Abrams

  • @howardabrams http://www.howardism.org
  • love/hate-relationship with the shell
  • interactive vs. scripts
  • demo: Piper
  • scripts
  • (video outage for 5 minutes approximately)
  • Q&A
    • sharing workflow with non-emacs persons: no, mostly for himself in private life
    • (further video issues; audio worked)
    • working with huge buffers
    • how does piper work for you on large files (10k lines or so?)
      • haven't checked
    • is the key to thinking about the workflow is to convert stuff to buffer and operating on it?
      • the emacs/lisp way of doing things
    • Name suggestion: husk


<2019-11-02 Sat 17:30>–<2019-11-02 Sat 18:05> Continuously checking for quality of your packages

Damien Cassou

  • slides: https://files.petton.fr/cassou/emacsconf2019/presentation.html
  • checklist for MELPA
  • naming, docstrings, small functions, automated tests, package metadata
  • avoid warnings; speaker believes they are just as important as errors
  • suggests Melpa's contributing.org as a good reference for quality: https://github.com/melpa/melpa/blob/master/CONTRIBUTING.org
  • Example ERT test setup example
  • Example of a Buttercup test
    • M-x buttercup-run-at-point
  • He tends to use ERT most often
  • Example of using flycheck in a buffer
  • Advice: run flycheck on your own code, don't worry about everyone else
  • Remote setup
    • tools needed: cask, emacs-package-checker, emake, makel
  • makel can use Makefiles to ensure dependencies and alias commands -> good for continuous integration
  • Configuring CI to use specific version of Emacs to be tested:
    • evm, nix-emacs-ci, silex' emacs, kelleyk's ppa
  • Example configurations for TravisCI, Gitlab CI, Gitea+Drone,
  • Q&A
    • Gitlab..
    • Any CI systems using Guix yet?
      • A: not sure yet
    • Is Melpa's standard the accepted one?
      • Their contributing.org file is a really good one


<2019-11-02 Sat 18:06>–<2019-11-02 Sat 18:15> Navigel to facilitate the creation of tabulated-list based UIs

Damien Cassou


<2019-11-02 Sat 18:17>–<2019-11-02 Sat 18:24> Object oriented spreadsheets with example applications

David O'Toole


<2019-11-02 Sat 18:24>–<2019-11-02 Sat 18:35> How Emacs became my awesome Java editing environment

<2019-11-02 Sat 18:40>–<2019-11-02 Sat 18:48> Automate your workflow as a game developer

Jānis Mancēvičs


<2019-11-02 Sat 18:35>–<2019-11-02 Sat 19:00> Porting org-shiftup/down as a separate module



<2019-11-02 Sat 19:01>–<2019-11-02 Sat 19:11> Packaging emacs packages for Debian (pre-recorded)

<2019-11-02 Sat 19:13>–<2019-11-02 Sat 19:59> Interactive Remote Debugging and Development with TRAMP Mode

Matt Ray (emacs@mattray.dev, @mattray)


<2019-11-02 Sat 20:10>–<2019-11-02 Sat 20:32> GNU Emacs as software freedom in practice

Greg Farough


  • https://karl-voit.at/2017/02/10/evolution-of-systems/
  • Quote from https://www.gnu.org/gnu/rms-lisp.en.html
    • "It was Bernie Greenberg, who discovered that it was (2). He wrote a version of Emacs in Multics MacLisp, and he wrote his commands in MacLisp in a straightforward fashion. The editor itself was written entirely in Lisp. Multics Emacs proved to be a great success — programming new editing commands was so convenient that even the secretaries in his office started learning how to use it. They used a manual someone had written which showed how to extend Emacs, but didn't say it was a programming. So the secretaries, who believed they couldn't do programming, weren't scared off. They read the manual, discovered they could do useful things and they learned to program."

<2019-11-02 Sat 20:33>–<2019-11-02 Sat 20:40> Closing remarks

  • done at this point so that nobody is missing it due to overtime
  • stay tuned for the next pre-recorded videos!

<2019-11-02 Sat 20:43>–<2019-11-02 Sat 22:08> Emacs: The Editor for the Next Forty Years (pre-recorded)

Perry E. Metzger

  • parallel/concurrent code is critical for future
  • "so far, only Rust has a good story on concurrency"
  • "C is dying"
    • "C cannot be written safely by mortals"
  • "C has to go"
  • Current language slows down Emacs evolution
  • Incrementally replace C with Rust
  • displaying not-text
    • currently, can't render web pages properly
    • native PDF rendering
  • HTML done right is complicated: security/privacy features
  • proper rendering of HTML is crucial for Emacs future
    • emails, …
  • native LSP support
  • Debug Adapter Protocol
  • Emacs should be more like an operating system
  • better Email experience
    • IMAP
  • PIM integration
  • markdown support
    • view Org or Markdown as rendered?
  • Issue: Org is separate from Emacs
    • needs to be pervasively integrated?
  • better chat clients
    • instead of Slack, Discord, …
  • rendering of web widgets (video, …)
  • Hacker-friendly user interface
    • Emacs bindings everywhere!
    • macOS vs. KDE/Gnome
  • Using emacs for everything
  • everything should feel like Emacs
  • bad
  • keyboard design/layout
  • priority
    1. HTML rendering
    2. LSP support
    3. modern email, PIM, …
    4. concurrency model + future extension language
  • Q&A starting with 2019-11-02T21.45.10
    • Web rendering and daily updates
    • Future non-programmers as Emacs users
    • JavaScript-intense sources and Emacs support
    • default Emacs config to help new users
    • Is Rust also a candidate to replace Elisp or just C? No, just C.
    • Running Emacs within a browser
    • Mobile Emacs
    • Remacs project
      • Emacs in Rust
      • lovely but no user-basis and therefore bad situation
      • better to use it from inside and not as a fork
    • Long-term competitors except vim


<2019-11-02 Sat 22:10>–<2019-11-02 Sat 22:30> How to record executable notes with eev - and how to play them back

<2019-11-02 Sat 22:31>–<2019-11-02 Sat 22:41> MPdel

<2019-11-02 Sat 22:42>–<2019-11-02 Sat 22:49> Restclient and org-mode for Api Documentation and Testing

Mackenzie Bligh

  • Uses org-babel w/ restclient-mode


<2019-11-02 Sat 22:50>–<2019-11-02 Sat 22:57> Equake mode

Ben Slade

  • eshell dropdown terminal (à la quake-style games)


<2019-11-02 Sat 22:58>–<2019-11-02 Sat 23:07> Don’t wait! Write your own (yas)snippet

Tony Aldon @tonyaldon


<2019-11-02 Sat 23:09>–<2019-11-02 Sat 23:18> VSCode is Better than Emacs

Zaiste @zaiste, https://zaiste.net/

  • Started by using Emacs Doom: "A starter pack"
    • liked currated packages, and opinions.
    • allowed for a lesser learning curve. maintained productivity
  • VSCode "works out of the box"
  • Community has Visual Documentation
    • Videos, GIFs, walkthrough articles
  • Emacs has no common practices
    • hard to find an answer for common tasks, like search-and-replace


<2019-11-02 Sat> GNU Emacs for All

Deviating Zurich satellite Live Talks

Conference MISC

Links of Conference attendees


What went well?

  • first of all: almost everything went well from an attendee point of view! Hat tip to the organizers for an event of that size! Tech-breaks were necessary for everybody's brain.
  • this collaborative document (ChaosPad)
  • time-schedule was OK despite many minor and bigger tech issues
    • usually, conferences do use a couple of minutes scheduled breaks between the talks but this time, I think it worked out great
  • pre-recorded videos for gapping tech difficulties
  • main organizer and backup organizer, so that someone could run around doing tech checks

What to improve?

  • in case of technical issues, presenters needs to have a backup channel for communicating with the organisers (IRC, Jitsi, maybe phone? We managed to let most presenters know when something was wrong, except when Jitsi glitched in the middle of their presentation. Presenters might not be checking their phones during presentations anyway.)
  • setting up the pad beforehand + mention it on the conference pages
    • Karl: Sorry for contributing to the last-minute stress level: pad was a last-minute idea
    • Totally okay! - Sacha
    • shownotes pad template according to organizer's preference
      • brainstorming on structure for next time
  • more contributors to the pad ;-) -> motivation/encouragement
  • clear (and easy to link to) guideline communication such as:
    • questions to speakers -> IRC channel #emacsconf-questions
    • content notes, related URLs, … -> shownotes pad (gets archived)
    • rest: IRC channel #emacsconf
      • stream feedback
      • non-shownotes comments since it doesn't get archived
    • + FAQ nr. 1: Will there be videos? Where to find them? …
      • Yes, will be posted on emacsconf.org/2019 when they're available and announced on the emacsconf-discuss mailing list
  • as of 2019-11-02T19.11.23, Karl still does not get whether or not Zürich is going to stream different talks (in parallel) to the main stream. -> much better explanation required
    • We aren't sure either! =) - Sacha
    • according to the Zurich organizers' website it was at least planned (https://200ok.ch/posts/2019-09-17_announcing_the_official_emacsconf_zurich_satellite.html) but maybe they finally wanted to not miss out the main stream :) (or maybe also some technical issues; as mentioned, I've checked into the ZH stream frequently, and the mirroring of main stream was without audio)
    • Hehe. Karl has a pretty good idea how this happens but it still does result in confusion of everybody involved. This needs to be clarified upfront and explained.
  • During the last extended talk, I could not connect to the IRC server: "Error Connecting (Closing Link: irc0d.libreplanet.org (Too many user connections (global)))". Could the server be configured to accept more connections?
  • Probably having a dummy(?) video + sound signal online 30min before the start in order to prevent all those "stream is broken" messages in the hot phase before
    • Is there a libre Emacs song that qualifies for an endless loop? :-)
    • 1h would be even better, since there's so much craziness that happens riiiight before the conference starts. (ex: "Aaaaah! I can't bounce the stream to YouTube as a backup!")
  • For future reference, do you all think we can have a conference code of conduct that's more similar to the useR! conference (https://user2018.r-project.org/code_of_conduct/) instead of the current one? The useR! conference code of conduct is really comprehensive.
  • Not sure if this is feasible: mandatory audio/video check with everybody who gets live upfront the event
    • We tried getting speakers to do tech checks before the day of the conference, but only a few did. =) Fortunately, we were able to handle most of the tech checks on the fly. I ran around checking people while bandali focused on the stream - Sacha
      • Karl: sounds reasonable to keep it that way
      • I wonder if bouncing between two Jitsi rooms could make sense. Unfortunately, muting happens site-wide… =|
  • Ask speakers not to use command-log-mode because this window always gets hidden/destroyed/… without noticing during the talk. Instead, use something independent from Emacs like:
  • equalize audio levels of prerecorded talks
  • /topic changes in #emacsconf and #emacsconf-questions


  • Karl Voit happily joins the orga team for next time


  • bandali: organizing, coordinating, setting up infrastructure, handling streaming and switching
  • sachac: tech checks, help with schedule
  • all the speakers
  • satellite event organizers
  • FSF: streaming setup tips
  • aindilis: transcripts
  • bremner, dto, ggoes: helping with questions
  • KarlVoit: pad
  • so many people! attendees, volunteers

Next steps (we'd love it if you helped with this stuff - you can coordinate with bandali or sachac, or with each other)

  • Transcode videos to free formats
  • Upload somewhere
  • Link agenda to videos
  • Make a playlist for easier downloading and playing
  • Transcribe videos - https://emacsconf.org/2019/transcripts
    • With STT technology available (see Google Pixel 4): isn't there a possibility to get at least a raw transcription from an algorithm?
    • Check speakers' resources for scripts, too
  • Scale down VPS - bandali
  • Copy this pad to https://emacsconf.org/2019/pad and format it nicely
    • Karl is volunteering for that
    • To be done beforehand by the official orga team having all the contacts:
      1. ask all speakers to add links, info, … to it (probably checking all FIXXMEs left)
      2. decide on one-shot or multiple conversions: whether or not the pad->webpage should be more or less copy&paste so that viewers of the videos within the next weeks/months are able to contribute more content (if this is feasible) and the webpage archives snapshots until changes get sparse
      3. set a final deadline so that all desired changes are finalized on the pad
      4. Karl needs to know the target format (Org, HTML, …) - see comment/question/task on simple copy&paste above to be able to do this multiple times with minimal manual effort
      5. Karl needs access or somebody needs to publish it
  • Write about your favorite parts, what you learned, what you're going to do next, etc.
  • Harvest Q&A from IRC, summarize under each talk
  • Braindump lessons learned
  • Subscribe to the mailing list if you want to get notified when more resources are up - https://lists.gnu.org/mailman/listinfo/emacsconf-discuss
    • Karl: is there an active Gmane bridge for that ML?
    • Bandali: gmane.emacs.emacsconf
  • Go forth and do awesome