EmacsConf 2019 - Shared shownotes pad
EmacsConf 2019 - Shared shownotes pad from https://pads.ccc.de/fPYMhovcNN
Note: time-stamps are in UTC
Opening remarks
Amin Bandali and Sacha Chua
- Welcome to the conference - Amin Bandali
- RMS is watching as well \o/
- Emacs community update - Sacha Chua
- more than 100 languages are supported with Org mode/babel
- Planet Emacslife RSS feed: if you do have Emacs-related feeds, hand it in to Sacha
- popular Emacs-like features/addons/plugins in non-Emacs tools
- EmacsConf 2019 - Curious to hear what you guys think/hope these new languages will be :) : emacs
- increased popularity through killer apps: spacemacs, Org mode, magit, pandoc, org to Hugo exporter
- https://github.com/sachac/emacs-conf-2019-community-update
Emacs development update ("State of the Union")
John Wiegley
- Notes by John
- maintenance was moving to Eli Zaretskii
- support for big integers
- integration for harfbuzz
- Orthographic ligature - Wikipedia
- Cairo not experimental any more (Linux)
- this also paves the way to Wayland
- Emacs 27 with new built-in tab-bar
- also switching window configuration
- Built-in support for image scaling and rotation
- no more dependency for imagemagick
- portable dumper
- Scripts from an older talk, there you can see/learn what the dumper actually is: https://dancol.org/pdumperpres.pdf
- Pre-loading some essential elisp code at build-time by taking a memory snapshot
- initial support for XDG directory specification
- More info on that:
- new (XDG spec is now several years old!)
- directory structure for config and other files, so that your
${HOME}
isn't as full as before. - Config files are now in
${HOME}/.config/$APPLICATION/something
- Network Security Manager (NSM) module
- built-in support for indicator columns
- so-long-mode
- performance win for buffers with long lines
- full internationalization, e.g., that errors come in your local language
Use Org mode when away from the desktop: Organice (pre-recorded)
Zen Monk Alain M. Lafon, https://200ok.ch
- Video online: https://www.youtube.com/watch?v=aQKc0hcFXCk
- https://github.com/200ok-ch/organice
- JavaScript-based Org mode tool for working on local files that sync via WebDAV, Dropbox and such
- Support for a sub-set of Org mode syntax (so far)
- non-supported elements may get removed
Org-mode and FoilTeX - an unlikely (but useful) combination for teaching (pre-recorded)
Tom Faulkenberry
- Video online: https://www.youtube.com/watch?v=TEP2NTJhhfk
- https://github.com/tomfaulkenberry/orgFoils
- nice explanation to set it up
related:
A.I. that Helps Play the Game of Your Life (pre-recorded)
Andrew J. Dougherty (adougher9@gmail.com) (aindilis)
- Video online: https://frdcsa.org/~andrewdo/frdcsa-emacsconf2019-final.webm
- landing-page: https://frdcsa.org/frdcsa/
- homepage: https://frdcsa.org/~andrewdo
- use case: https://frdcsa.org/~andrewdo/writings/homeless-story.html
- github: https://github.com/aindilis
- user manual: http://frdcsa.org/~andrewdo/writings/README.html
- slides: http://frdcsa.org/~andrewdo/panoply-presentation.odp
- irc: #frdcsa and #freelifeplanner @ freenode
- vm: Panoply VM to be released in 1-3 months
related:
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.
- Are there any modes that come with Emacsspeak configuration "out
of the box"?
Managing your life with org-mode and other tools
Marcin Swieczkowski (scatman@bu.edu)
- slides: https://www.bytedude.com/files/managing-your-life-with-org-mode.html
- repository + org file: https://github.com/m-cat/managing-your-life-with-org-mode
- using a single Org mode file:
todo.org
- not using
TODO
keyword- he was forgetting to mark tasks as
TODO
TODO
headings scattered around all org files
- he was forgetting to mark tasks as
- how does he get items to his agenda?
- schedule it
- deadlines are hard deadlines
- daily agenda shows scheduled items, not
TODO
items
- strict heading hierarchy for his items
- on finishing a recurring task -> re-schedule
- org-super-agenda
- categories within property drawers
- org-recur
- defining recurrence delta for single tasks
- visual cue on the recurring delta on the agenda
- provides more flexible recurrence config like wkdy -> not supported in ord-schedule
- git
- reviewing commits on a weakly basis
- bonus: misc tools on the slides (not mentioned live)
- https://github.com/m-cat/init.el
- https://bytedude.com/
related:
notmuch new(s) (pre-recorded)
David Bremner
- https://notmuchmail.org/
- Questions:
- I think the ability to create links from mails and even from mail
queries is a killer feature. I e that in mu4e. I guess this is
also possible in emacs notmuch?
- Yes. Look for "org-notmuch.el" in https://orgmode.org/worg/org-contrib/.
- I think the ability to create links from mails and even from mail
queries is a killer feature. I e that in mu4e. I guess this is
also possible in emacs notmuch?
Browsing Twitch.tv from Emacs (pre-recorded)
Aaron Jacobs (atheriel@gmail.com, https://twitter.com/unconj1, https://unconj.ca/blog/)
Ledger-mode (pre-recorded)
Miguel Suárez and Quiliro Ordóñez
- tracking expenses using ledger-mode
- presentation video: https://archive.org/details/ledger-mode_EmacsConf2019
related:
Playing Emacs like an instrument (pre-recorded)
Alain M. Lafon (alain@200ok.ch)
- teaser version
- full two hour talk: "Playing Emacs like an instrument"
- also talk + slides on https://200ok.ch/posts/2018-04-27_Play_Emacs_like_an_Instrument.html
- motivation: everybody needs a text processor since almost all information is text-based
related:
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
andM-n
- go through previous commit messages while writing a new one:
- 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
related:
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
related:
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
related:
Navigel to facilitate the creation of tabulated-list based UIs
Damien Cassou
related:
- https://gitea.petton.fr/DamienCassou/navigel/
- Question: What screenkey-like program is Damien using?
- It's nicely less intrusive than screenkey.
- https://github.com/nibrahim/showkeys
- personal tips from Damien:
- https://emacsconf.org/2019/tips (at the bottom):
- "to start 3 processes simultaneously: showkeys, ffmpeg for audio and ffmpeg for video" https://gist.github.com/DamienCassou/0e3663ce3bdb710a44eeb7122870f621
Object oriented spreadsheets with example applications
David O'Toole
related:
- What's the repo for the spreadsheet?
- https://gitlab.com/dto/mosaic-el, with the data files here https://gitlab.com/dto/violin.mosaic
- the main documentation page is http://xelf.me/scheme-mosaic.html but it doesn't have much about the emacs side yet
How Emacs became my awesome Java editing environment
Torstein Krause Johansen @torsteinkrause, http://skybert.net/
- slides: https://github.com/skybert/skybert-net/blob/master/src/talks/2019-awesome-java/slides.md
- Q&A
- snippets used: yas(nippet)
related:
- (he used it in the past) https://github.com/emacs-eclim/emacs-eclim
- Torstein's Emacs config for Java: https://gitlab.com/skybert/my-little-friends/blob/master/emacs/.emacs#L780
- This looks pretty helpful: http://www.skybert.net/emacs/enterprise-java-development-in-emacs/
Automate your workflow as a game developer
Jānis Mancēvičs
- using all CPU cores instead of one for rendering processes of blender
- rocknightstudios -> twitter handles and so forth
related:
Porting org-shiftup/down as a separate module
MetroWind
- (tech difficulties due to different virtual desktops not catching the Emacs windows)
- switching to pre-recorded talk in-between 2019-11-02T18.38.40
- 2019-11-02T18.49.29 trying to resume screen sharing
- 2019-11-02T18.52.45 continuing
- modifying time/date not only in Org
- Beancount
- Emacs docu: "system interfaces"
- https://github.com/MetroWind/
related:
Packaging emacs packages for Debian (pre-recorded)
Interactive Remote Debugging and Development with TRAMP Mode
Matt Ray (emacs@mattray.dev, @mattray)
- https://github.com/mattray/emacsconf2019
- https://mattray.dev
- https://github.com/mattray/home-directory/
- https://www.softwaredefinedtalk.com/
- https://www.gnu.org/software/emacs/manual/html_node/emacs/Shell-Mode.html
- tramp mode
- testing infrastructure: "Test Kitchen"
- Vagrant
- Chef
- InSpec
- pry
- Ruby interactive debugger
- http://pryrepl.org/
- Q&A
- using multiple ssh sessions
- he is using
nohup
to get it to background - relocating is not a requirement for Matt (tmux advantage)
- What are the main advantages on using shell within Emacs in
contrast to terminal/(ssh/)tmux/zsh directly? (handling of ssh
connection loss, zsh features not available in Emacs shell, …)
- Sat 20:56 < rwp> In Tramp just the single feature of editing a
remote file and then typing
M-x compile
and it automatically doing a remote compile is a killer feature that really wows people I show it too.
- Sat 20:56 < rwp> In Tramp just the single feature of editing a
remote file and then typing
related:
- Tramp Cheatsheet https://imgur.com/a/3jDEFhV
- defun toggle-alternate-file-as-root(): https://gist.github.com/ieure/885335e047878d504d39b34e1a1ff4e6
- https://github.com/nflath/sudo-edit
- https://www.vagrantup.com/
- https://www.chef.io/, https://en.wikipedia.org/wiki/Chef_(software)
GNU Emacs as software freedom in practice
Greg Farough
- Campaigns Manager at FSF (https://www.fsf.org/about/staff-and-board/)
- Q&A
- How to introduce total non-information savy users to Emacs?
- […]
- Contributing for documentation is very good as well.
related:
- 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."
Closing remarks
- done at this point so that nobody is missing it due to overtime
- stay tuned for the next pre-recorded videos!
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
- HTML rendering
- LSP support
- modern email, PIM, …
- 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
related:
- https://en.wikipedia.org/wiki/TECO_(text_editor)
- https://en.wikipedia.org/wiki/WebKit
- https://en.wikipedia.org/wiki/Slack_(software)
- https://en.wikipedia.org/wiki/Discord_(software)
- https://en.wikipedia.org/wiki/Servo_(layout_engine)
- https://next.atlas.engineer/
- (used LaTeX/Beamer for presentation) https://en.wikipedia.org/wiki/Beamer_(LaTeX)
- https://karl-voit.at/2017/02/10/evolution-of-systems/
How to record executable notes with eev - and how to play them back
MPdel
Damien Cassou
related:
Restclient and org-mode for Api Documentation and Testing
Mackenzie Bligh
- Uses org-babel w/ restclient-mode
related:
Equake mode
Ben Slade
- eshell dropdown terminal (à la quake-style games)
related:
Don’t wait! Write your own (yas)snippet
Tony Aldon @tonyaldon
related:
- https://github.com/tonyaldon
- https://joaotavora.github.io/yasnippet/index.html
- https://github.com/joaotavora/yasnippet
- IRC comment: A note about saving yasnippet files: it doesn't enforce a file extension, you could save it as just 'app' and it works. As long as you save the snippet in the directories scanned by Yasnippet
- Manage snippets within an Org mode file: https://github.com/Kungsgeten/yankpad
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
related:
- https://github.com/zaiste
- https://github.com/hlissner/doom-emacs
- his YouTube channel: https://www.youtube.com/user/ohzaiste
- his Emacs Doom Screencasts https://www.youtube.com/playlist?list=PLhXZp00uXBk4np17N39WvB80zgxlZfVwj, https://invidio.us/playlist?list=PLhXZp00uXBk4np17N39WvB80zgxlZfVwj&hl=en-US
GNU Emacs for All
Sachin Patil
Deviating Zurich satellite Live Talks
Conference MISC
- Desktop sharing tool used: https://jitsi.org/
- https://gitea.petton.fr/DamienCassou/navigel/ (IRC 2019-11-02T16.42.46 CET)
- please take a look
my-dired-recent-dirs
on https://github.com/novoid/dot-emacs/blob/master/config.org#L2705 - jumping to dired folders on steroids - 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.
- https://live0.emacsconf.org/ -> current statistics on feeds
- statistics
- 2019-11-02T15.07.12 statistics for the current moment:
- over 300 people on the live stream in total
- 200 people in IRC
- 2019-11-02T20.02.57
- 190 viewers on live-streams (with multiple "users" consisting of groups of people)
- 2019-11-02T20.42.53
- 176 viewers
- 2019-11-02T15.07.12 statistics for the current moment:
Links of Conference attendees
- http://www.bundesbrandschatzamt.de/~baron/
- Shakthi Kannan ("mbuf")
- Perry E. Metzger
- Karl Voit
- Simon Leinen
- Derek Feichtinger (dfeich)
- Raimon Grau (rgrau)
- Christer Enfors (Enfors)
- Bob Proulx <rwp> bob@proulx.com
- Bhavin Gandhi (bhavin192)
Retrospective
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… =|
- 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
- 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:
- https://github.com/nibrahim/showkeys (Damien has positive experience with that one)
- https://pypi.org/project/key-mon/ (Karl has positive experience with that one)
- https://github.com/wavexx/screenkey
- equalize audio levels of prerecorded talks
/topic
changes in #emacsconf and #emacsconf-questions
Volunteers
- Karl Voit happily joins the orga team for next time
Thanks
- 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:
- ask all speakers to add links, info, … to it (probably checking all FIXXMEs left)
- 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
- set a final deadline so that all desired changes are finalized on the pad
- 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
- 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