summaryrefslogblamecommitdiffstats
path: root/2020/pad.md
blob: 893cc4eb259929d86353a37c80980b0fba87c477 (plain) (tree)















































                                                                                                                                   





                                                                                       
                        







                                                                                                                                                                                                                                                                                                                                                                           
                        







                                                                                 
                  























                                                                                                                                                                                                                                                                             
                  


















































                                                                                                                                                                                                                                               
                  









































































                                                                                                                                                                             
                  












































                                                                                                                                                                                                                                                                                      
                  









































































                                                                                                                                                                                                                                                                                                                                                                                                                                                        
                  






























                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       
                  



















































































































                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              
                  





































                                                                                                                                                                      
                  





































                                                                                                                                                                                                                           
                  

































































































                                                                                                                                                                                                                                                                                                      
                  























                                                                                                                                       
                  



















































                                                                                                                                                                                                                                                                                                                                                                                                                                                
                  







































































                                                                                                                                                                                                                                                                                                                                                
                  





























                                                                                                                                                                 
                  































                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            
                                                                                                                                                                                                                                                                                                                                         



































                                                                                                                                                                                                                                                                    
                  



































                                                                                                                                                                                             
                  











































































                                                                                                                                                                                                                                                       
                  
























































                                                                                                                                                                                                                                                                                                                                                                                                                    
                  









































                                                                                                                                                                                                                                                                                                                               
                  




















                                                                                                                                                       
                  























                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           
                  



























                                                                                                                                                        
                  








                                                                                                                                                        
                  



























                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    
                  





























































                                                                                                                                                                                                                                                                                                             
                  



































































































































                                                                                                                                                                                                                                                                                                                                                                                                                                           
                  

























































                                                                                                                                                                                                                                                                                                          
                  











































                                                                                                                                                                                                                                                                                                                                                                          
                  

































































































































































































                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     
                       



                                           
                  

















































                                                                                                                                                                                                                                                                                                                                                                 
                  














































                                                                                                                                                                                              
                  































                                                                                                                                                                               
                  



                                                                                                             
                  






































                                                                                                                                                                                            
                  































                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        
                  

























                                                                                                                                                                                                                                                             
                  






















                                                                                                                                                                                                                                                                                                                                                                                                                                               
                  









































































                                                                                                                                                                                                                                                                                                                                                                                                           
                  





















































                                                                                                                                                                                                                                                                                                                                              
                  
















































































































































                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       
                     

































































                                                                                                                                                                                                                                                                                                                                                                                                    
                        







































































































































                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       
                         















                                                                        

# Table of Contents

-   [License and contribution agreement](#pad-license)
-   [Contribution guidelines](#pad-contrib)
-   [01: Sacha Chua (sachac): Emacs News Highlights](#pad01)
-   [02: Leo Vivier (zaeph): An Emacs Developer Story: From User to Maintainer](#pad02)
-   [03: Bala Ramadurai: Idea to Novel Superstructure: Emacs for Writing](#pad03)
-   [04: Jonathan Gregory: Music in Plain Text](#pad04)
-   [05: Grant Shangreaux (shoshin): Bard Bivou(m)acs - Building a bandcamp-like page for an album of music](#pad05)
-   [06: Corwin Brust (mplscorwin): Trivial Emacs Kits](#pad06)
-   [07: Sid Kasivajhula: Beyond Vim and Emacs: A Scalable UI Paradigm](#pad07)
-   [08: Andrew Tropin: Building reproducible Emacs](#pad08)
-   [21: Eduardo Ochs: On why most of the best features in eev look like 5-minute hacks](#pad21)
-   [09: Rainer König: Orgmode - your life in plain text](#pad09)
-   [10: Andrea: Lead your future with Org](#pad10)
-   [11: the org-gtd package: opinions about Getting Things Done -Speaker(s): Aldric](#pad11)
-   [12: Leo Vivier: One Big-ass Org File or multiple tiny ones? Finally, the End of the debate!](#pad12)
-   [13: Joseph Corneli, Raymond Stanley Puzio, and Cameron Ray Smith: Experience Report: Steps to "Emacs Hyper Notebooks"](#pad13)
-   [14: Adam Ard: README-Driven Design](#pad14)
-   [15: Adolfo Villafiorita: Moving from Jekyll to OrgMode, an experience report](#pad15)
-   [16: Leo Vivier: Org-roam: Presentation, Demonstration, and What's on the Horizon](#pad16)
-   [17: Noorah Alhasan: Org-mode and Org-Roam for Scholars and Researchers](#pad17)
-   [18: Leo Vivier (zaeph): Org-roam: Technical Presentation](#pad18)
-   [19: Brett Gilio: Sharing blogs (and more) with org-webring](#pad19)
-   [20: Corwin Brust (mplsCorwin): OMG Macros](#pad20)
-   [Day 1 Closing remarks by Sacha](#pad40)
-   [Day 2: Opening remarks](#pad41)
-   [38: John Wiegley: Emacs development update](#pad38)
-   [22: Musa Al-hassy: Powering-up Special Blocks](#pad22)
-   [23: Tuấn-Anh Nguyễn: Incremental Parsing with emacs-tree-sitter](#pad23)
-   [24: Andrea: Analyze code quality through Emacs: a smart forensics approach and the story of a hack](#pad24)
-   [25: Zen Monk Alain M. Lafon: Traverse complex JSON structures with live feedback](#pad25)
-   [39: Richard Stallman: NonGNU ELPA](#pad39)
-   [Lunch break](#org70adcc6)
-   [26: Pierce Wang: Emacs as a Highschooler: How It Changed My Life](#pad26)
-   [27: Vasilij "wasamasa" Schneidermann: State of Retro Gaming in Emacs](#pad27)
-   [28: Erik Elmshauser and Corwin Brust: Welcome To The Dungeon](#pad28)
-   [29: Erik Elmshauser and Corwin Brust: Pathing of Least Resistance](#pad29)
-   [30: Gabriele Bozzola (@sbozzolo) : A tour of vterm](#pad30)
-   [31: Grant Shangreaux: Lakota Language and Emacs](#pad31)
-   [32: Eric Abrahamsen: Object Oriented Code in the Gnus Newsreader](#pad32)
-   [33: Fermin MF: Maxima a computer algebra system in Emacs](#pad33)
-   [34: Matthew Zeng: Extend Emacs to Modern GUI Applications with EAF](#pad34)
-   [35: Zachary Kanfer: WAVEing at Repetitive Repetitive Repetitive Music](#pad35)
-   [Closing remarks (Sunday)](#pad42)
-   [General Feedback: What went well?](#pad-well)
-   [General Feedback: What to improve?](#pad-improve)
-   [Colophon](#pad-colophon)

Thanks to alphapapa for helping archive this pad!

-   [Conference info, how to watch/participate](https://emacsconf.org/2020/schedule/35)
-   [Guidelines for conduct](https://emacsconf.org/conduct/)


<a id="pad-license"></a>

# License and contribution agreement

Except where otherwise noted, the material on the EmacsConf pad are dual-licensed under the terms of the Creative Commons Attribution-ShareAlike 4.0 International Public License; and the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) an later version.

Copies of these two licenses are included in the EmacsConf wiki repository, in the COPYING.GPL and COPYING.CC-BY-SA files: <https://emacsconf.org/COPYING/>.

By contributing to this pad, you agree to make your contributions available under the above licenses.  You are also promising that you are the author of your changes, or that you copied them from a work in the public domain or a work released under a free license that is compatible with the above two licenses.  DO NOT SUBMIT COPYRIGHTED WORK WITHOUT PERMISSION.


<a id="pad-contrib"></a>

# Contribution guidelines

This pad is here to be curated by everybody and its rough structure is like that:

1.  General info and license
2.  A section for each talk -> please do add questions and notes
3.  A general feedback section


<a id="pad01"></a>

# [01: Sacha Chua (sachac): Emacs News Highlights](https://emacsconf.org/2020/schedule/01)


## Questions

-   Any news about guile-on-emacs? Is it a dead project?

    -   Haven't been linking to things about it lately. Last major news was <https://emacsninja.com/posts/state-of-emacs-lisp-on-guile.html> (May), I think
    
    -   The only contributor to it occasionally shows up on #emacs, they revealed they've been busy programming for a living to improve browser JS engines and would need funding to do further Guile Emacs work (like, 10$ monthly from a few dozen people on Patreon or so)

-   Is there some kind of online summary page of Emacs community meetups and events?

    -   Not yet, although <https://www.emacswiki.org/emacs/Usergroups> is a start


## Notes

-   Please make your big blue button full screen. +1
-   Super happy with emacs!
-   🤞 maybe next time we'll be taking notes with crdt.el (<https://code.librehq.com/qhong/crdt.el>) +1
-   super solid video, loved the baked captions +1+1
-   <https://github.com/sachac/emacsconf-2020-emacs-news-highlights> <- The talk


<a id="pad02"></a>

# [02: Leo Vivier (zaeph): An Emacs Developer Story: From User to Maintainer](https://emacsconf.org/2020/schedule/02)


## Questions

-   how did the freedom of Emacs help you on your way?

    -   (was missed and unanswered) no, he said he got into free software development via emacs

-   What's the most recent Emacs package or tool you've discovered that you've added to your repertoire?

    -   Beacon <https://github.com/Malabarba/beacon>

-   Please show off your three-piece suit before you end your talk. (Requires fixing your frozen camera. If this is not possible, please post suit selfies at an easily accessible location.)

-   Have you read "Dirk Gently's Holistic Detective Agency"? (Recommended!)

-   What is your advice to start learning elisp language ? Any particular good ressource or any other tip ?

    -   (info "An Introduction to Programming in Emacs Lisp")  correction: (info "(eintr)")
    
    -   Read code, write code, read documentation, repeat. Eventually you'll go from customizing Emacs to writing your own packages. Emacs makes it easy to learn about the bits you're interested in, you can get far with taking small steps.
    
    -   mastering emacs <https://www.masteringemacs.org/>

-   Any recommendation for good packaging guides or places to start? I get a bit overwhelmed by some things e.g. the choice of different test frameworks

    -   See <https://github.com/alphapapa/emacs-package-dev-handbook>
    
    -   Old but still relevant: <https://www.youtube.com/watch?v=QRBcm6jFJ3Q>
    
    -   Things that a new major mode could hook into:


## Notes

-   English Major from France and freelance software engineer
-   zaeph is my new role-model for speaking the English language as a second language
-   Maintainer of org-roam: <https://github.com/org-roam/org-roam>
-   Became interested in using plaintext for organisation after reading: <http://doc.norang.ca/org-mode.html>
    -   accompanying video <https://toobnix.org/videos/watch/1f997b3c-00dc-4f7d-b2ce-74538c194fa7>
-   <http://doc.norang.ca/org-mode.html> Organize your life in plain text
-   Supercategory — yeah I've had that use case :-)
-   I really much like this format: insight on personal development without screensharing but in person
-   <https://www.gnu.org/software/emacs/manual/eintr.html> Beginner guide to elisp
-   edebug → awesome (info "(elisp) Edebug")
-   I really like this pad. +1+1+1+1
-   Guaranteed best dressed speaker, even before knowing what all the others look like ;-)
    -   3-piece suit color-coded to emacs and org-mode
-   To newcomers: in my case emacs-devel and emacs-sources were amazing resources for learning; the people were SO generous with their time, to share comments and ideas to improve code.


<a id="pad03"></a>

# [03: Bala Ramadurai: Idea to Novel Superstructure: Emacs for Writing](https://emacsconf.org/2020/schedule/03)

-   Actual start and end time (EST):  9:40-9:58


## Questions

-   Do you have occasions to use Emacs for multilingual text composition? How do you deal with spell-checking etc?

    -   Wrote in English with spell-check but wasn't able to find anything for the local script
    
    -   ^ thank you. I find using multiple languages in one document is a hard problem, not made easier in Emacs

-   Is it possible to align the columns in headings and subheading?

    -   Thanks for the beautiful demo.

-   Maybe there should be an emacs-for-writing mailing list and online Writers Workshop (?)

    -   This is a good idea, perhaps an online Writers Workshop indeed makes a lot of sense.
    
    -   Has conducted online WW in India, used Notion (Emacs Org Mode was scary for other attendees)

-   How do you share drafts of your novel? If you use pandoc to export to word (etc), how do you incorporate feedback on the document back into org? (Thank you for the talk)

    -   Exported to Word (via pandoc). There were some inconvenient parts for the editor, and Ramadurai copied and pasted the feedback/changes from Word into Emacs.
    
    -   For collaborators: paste it into Google Docs. See the question below.
    
    -   Not an answer by the speaker, but here's the workflow of Mickey Petersen: <https://masteringemacs.org/article/how-to-write-a-book-in-emacs> (Mastering Emacs)
    
    -   From my bookmarks: <https://www.wisdomandwonder.com/link/9922/how-to-reintegrate-changes-for-word-back-into-org-mode>

-   Can you show exported pdf of any of your novel?

    -   Will make a "demo" and have a link somewhere accessible to the community (probably on talk page at <https://emacsconf.org/2020/schedule/03/> )

-   How do you collaborate with others while writing your Novel ? Like sharing your file and getting feedbacks.

    -   working on ebook sustainability, long org mode file, pasted into google docs so collaborator and editor can see it
    
    -   like to see python
    
    -   paste to google docs

-   Can you text-wrap in the columns?

    -   Community: possibly ftable.el
    
    -   you specify column mode in org mode in prsentation
    
        -   THANKS
        
        -   How to enable column mode in org mode
        
            -   M-x org-colums (C-c C-x C-c)
            
            -   Or use  speed selection in Org-mode.
            
                -   Thanks


## Notes

-   Write a novel about a Scrabble-obsessed grandmother
    -   Novel is still not published
-   Snowflake method + Tony Ballantyne (sp?) — <https://tonyballantyne.com/EmacsWritingTips.html>
-   The talk was made by org-re-reveal
-   Column-view and plotpoints per story arc, 2ndary characters augment the main character
-   <https://www.advancedfictionwriting.com/articles/snowflake-method/>
-   Uses pandoc to export from org
-   Author of Karmic Design Thinking (<https://dt.balaramadurai.net/>)
-   Uses Spacemacs


<a id="pad04"></a>

# [04: Jonathan Gregory: Music in Plain Text](https://emacsconf.org/2020/schedule/04)


## Questions

-   Do you have any thoughts on generating scores in chant notation (neumes)?

    -   I'm not familiar with chant notation, but I know there's information on the manual.

-   Do you use this to compose or to write up compositions&#x2026;?

    -   No and yes. I use pencil and paper to compose the first draft. Then I move to Emacs to input the notes. Either way it's certainly possible to compose from Emacs directly, especially if you're doing this programatically, so I guess it depends on what you're trying to do.

-   Can one use MIDI/USB instruments (like keyboards) to input Lilypond? For example for note heighs?

    -   [Don't know about emacs, but Frescobaldi supports MIDI input.]
    
    -   There is a package called midi-kbd which creates keyboard events from MIDI input, so I believe the answer is yes, but I don't own a MIDI controller, so I haven't tried it.

-   Did you ever write hughe scores (BigBand/Orchestra) in Emacs?

    -   Never, but that's certainly possible.

-   Is there decent OCR for handwritten music→Lilypond?

    -   I'm not sure, but if the OCR works with MusicXML, then you can use the musicxml2ly command to convert the xml file to a LilyPond file.

-   What shell are you using with the fancy autocomplete?

    -   Zsh with fzf.

-   Do you use any kind of Emacs to MIDI interface besides exporting MIDI from lilypond?

    -   No.


## Notes

-   Emacs + Lilypond
-   Similar to LaTeX — has its own file format and syntax, can also export to MIDI
-   (info "(lilypond-learning) Top")
-   The contrast between background and foreground is a little too weak.
-   Uses LilyPond-mode, flycheck
-   <https://orgmode.org/worg/org-contrib/babel/languages/ob-doc-lilypond.html>


<a id="pad05"></a>

# [05: Grant Shangreaux (shoshin): Bard Bivou(m)acs - Building a bandcamp-like page for an album of music](https://emacsconf.org/2020/schedule/05)

Actual start and end time (EST): Start of Q&A: 2020-11-28T10.28.47 EST; End 2020-11-28T10.43.49


## Questions

-   What does "Bard Bivoumacs" mean?

    -   Bad pun on "Bandcamp" — a bivouac is an improvised campsite and bard = band

-   Does this meta-data workflow also support unsynchronized lyrics within ID3-tags (multi-line meta-data)?

    -   The UI for EMMS is complex, a gazillion of functions in that namespace
    -   check EMMS info manual (require 'emms-lyrics) this uses lyrics files outside of ID3-tags
    -   multi-line metadata may depend on the audio format?

-   Is is possible to import batch meta-data?

    -   Not sure, guesses yes. It can connect to metadata services. Backend calls to shell programs for various purposes.

-   My current workflow for tagging music is to first apply ReplayGain in foobar2000, fix egregious mistakes there (like funny directory structure, lack of album artist, &#x2026;), then use beets to apply metadata from Musicbrainz/Discogs and go over the remaining albums with foobar2000 again. I wondered whether there's a chance textual tagging could allow doing it all in one program, have you experimented with mass tag updates/queries?

    -   No experience with that, but it could be possible if someone™ made the right textual interface and would be very powerful (for example wdired could be an interesting inspiration).

-   Is there a link to some info expanding your philosophy of how to compensate musicians, I was interested to learn more about that.

    -   No; universal (basic?) income would solve a lot of problems.

-   What Emacs theme are you using?

    -   kaolin theme, maybe aurora or bubblegum

-   Are you using Doom Emacs, per chance?

    -   Answered in chat, vanilla Emacs with doom-modeline
    -   OK, thanks.

-   Is SVG support built in to Emacs?

    -   It's builtin in Emacs 27 (and earlier: <https://www.emacswiki.org/emacs/EmacsSvg>). You can even take screenshots from within Emacs as SVG (if compiled &#x2013;with-cairo)
    
    -   How do you take SVG screenshots within emacs?
    
    -   <https://www.reddit.com/r/emacs/comments/idz35e/emacs_27_can_take_svg_screenshots_of_itself/>
    
    -   It seems Mac does not have support for cairo?
    
    -   Might need to manually compile Emacs with support for cairo
    
    -   <https://www.reddit.com/r/emacs/comments/7ewewl/compiling_emacs_26090_with_cairo/>
    
    -   Download source code then take a look at the &#x2013;help flag when running ./configure. Cairo support is experimental and can be enabled with ./configure &#x2013;with-cairo.
    
    -   I see. Thanks again.


## Notes

-   Musician
-   Org document presented with org-tree-slide: <https://github.com/takaxp/org-tree-slide>
-   EMMS (<https://www.gnu.org/software/emms/>) for metadata authoring and organising playlists
    -   Creates HTML from EMMS metadata
-   <https://github.com/jagrg/org-emms>
-   Publish music by Emacs.
-   I liked the example for beginners!
-   Uses literate programming style to be able to resume work w/o much time available for programming
    -   See (info "(org) Working with Source Code") for single blocks <https://github.com/casouri/ftable/blob/master/ftable.elhat> can be executed in Emacs with C-c C-c
    -   Several languages combined with noweb (info "(org) Noweb Reference Syntax")
-   SVG support used for buttons
-   <http://churls.world> °°°
-   Meta: "You can even take screenshots from within Emacs as SVG" — would it be possible to set up an SVG livestream&#x2026;?
    -   I doubt it would be practical to do it at a high framerate, but it's worth trying out. The other disadvantage of the approach is that there's few vector animation formats (Flash, HTML5), so saving it losslessly to disk will be tricky.


<a id="pad06"></a>

# [06: Corwin Brust (mplscorwin): Trivial Emacs Kits](https://emacsconf.org/2020/schedule/06)

-   Actual start and end time (EST): Start: 2020-11-28T10.45.48; Q&A 2020-11-28T10.57.38; End 2020-11-28T10.59.48


## Questions

-   What makes the Emacs community unique (special/different?) from other communities (if anything)? And/or, are there other communities that are similar in your view?

-   Do you use Emacs as a community building tool?

    -   Yes, Corwin uses Emacs as a community building tool.
    -   Corwin: "Heck yeah, Emacs is a community building tool"

-   Are you suggesting there is value in "Emacs for scientists", "Emacs for programmers", "Emacs for writers" etc.  &#x2013; i.e. different defaults for different groups?

    -   [Corwin] Implicitly, yes.  My argument is that we should rethink the problem of building and maintaining Emacs confirguration sets each time we assemble a team to work on something.  That gives us a new chance, each time, to maybe produce new data that helps us make more informed decisions about how to make our own personall approaches more robust (and easier to read), but also to help "chip away" at the huge work of making Emacs more easily configurable for new users.

-   What is the background you are using? What is the tool you are using to present?

    -   [Corwin] Wallpaper Engine on Steam is probably the think that's grabbing attention.  I haven't tried it under GNU/Linux.  My familyare (mostly) Windows users right now  ****heavy sigh****  I don't want to get into my tool chain a huge amount, but I will talk about it some as/durning the Welcome to the Dungeon talk tomorrow.  For now I will say I'm using a mix of free (free and not-free but too easy to avoid tools on my one pretty good computer).  I would love to have the time to invest to use more (only) free stuff but sometimes we we can't afford the freedom, in terms of the learning cure.   I think this is the most important problem space in freesoftware, FWIW.


## Notes

-   <https://github.com/dungeon-mode/game> co-founder
-   Initial "trolling" by showing presentation notes in different editors: vim, Notepad++, VSCode, sublime
-   LISP wasn't on the list.
-   Disagreement is not the barrier.
-   Emacs is threatening as something that addresses many different needs/use-cases.


<a id="pad07"></a>

# [07: Sid Kasivajhula: Beyond Vim and Emacs: A Scalable UI Paradigm](https://emacsconf.org/2020/schedule/07)

Actual start and end time (EST): Start: 2020-11-28T11.00.47; Q&A 2020-11-28T11.18.12; End: 2020-11-28T11.24.51


## Questions

-   Can minor-modes in Emacs be integrated via chimera as a "mode"?

    -   Good question. More likely, minor modes could be coupled to rigpa "modes", towers (sets of modes), or complexes (sets of towers), so that entering those modes/towers would enable those minor modes, and likewise disable the minor modes upon exiting. E.g. for Lisp editing, we might want to enable the symex / paredit minor mode in Lisp tower, and disable it upon swapping to Vim/Emacs tower.

-   Do you think it would be hard for people to remember all the modes and bindings?

    -   Bindings, no - it would be easier than currently because the bindings generally stay the same across modes (e.g. hjkl always means left down up right, and there are other conventions)
    
    -   Modes, if the tower is 2-3 tall, then it's not a problem at all. Totally intuitive. For > 3 it might be hard, so I think in practice you would alternate across more small towers rather than have fewer big towers
    
    -   Also, most modes are always available via "direct access" keybinding (eg. s-w = window mode), so you can jump to one at any time, and it'll return you to your original position in the tower when you exit. Modes don't need to be in the current tower in order for you to use them. But if you're using them frequently you might want to add them or temporarily switch to a tower that has them &#x2013; whatever feels the most natural for the specific case.

-   Are you familiar with <http://emacs-versor.sourceforge.net> ?

    -   And other earlier implementations.
    
    -   A short comparison would be nice.
    
    -   Not familiar with this, but it looks very interesting

-   What package is used?

    -   Probably Symex mode! →  <https://github.com/countvajhula/symex.el>
    
    -   The package isn't yet published to MELPA → <https://github.com/countvajhula/rigpa> (was called indra.el)
    
    -   The mode is called \`epistemic-mode' (final name is not decided on yet)

-   Why is the package called rigpa?

    -   A reference: <https://en.wikipedia.org/wiki/Rigpa> (knowledge of the ground)

-   How to deal with Dvorak (et al.) layouts? This has always bugged me.  Is there a "XModmap Mode"&#x2026;?

    -   Vim users don't remap their keys. The homerow is not a big deal, actually.
    
        -   Hm&#x2026; I've always found it a bit of an obstacle but haven't tried hard! hjkl → jk makes sense but hl, not so much.
        
            -   The day you want to do this, you'll absolutely be able to do it and have it become natural. Just gotta want it :)

-   I mostly use default model provided by vanilla emacs and work in org-mode for text editing. Can you give some examples, e.g. how can the user can use the concept of "mode of mode" to do some interesting editing?

    -   The more modes you have, the shorter the individual keystrokes become.
    
        -   ^ Not to be a pain but my comment about Dvorak is related :-)
    
    -   There are many bindings in Org mode (e.g. agenda manipulation, manipulating headings and subheadings, promoting/demoting) that would be a natural fit for a dedicated modal interface. At the moment you probably use only a subset of all of the available options because of the constraints of conveniently (1) knowing about, (2) remembering and (3) using the bindings. With a dedicated mode, you could edit Org buffers using a Vim-like modal interface where all of the options are easy to remember and use
    
    -   Mode mode / tower mode could be useful if you are doing literate programming or "multi-modal" org buffers where you have many different languages embedded within the Org file. In this case, you could modify your tower using mode mode, or swap between different towers, to quickly have the right modes for different parts of the file

-   How do new modes come into existence?

    -   Modes from any modal interace provider are supported via a modal interface abstraction layer ("chimera")
    
    -   You can define new modes as a hydra or as an evil state, and then they just need to be "registered" with the framework via a function call for them to be incorporated

-   Is this built on top of Hydra?

    -   Any modal interface provider is in principle supported. There is an abstraction layer called "chimera" that allows any provider to be used as long as it implements an interface (e.g. including indicating entry and exit hooks for each mode)
    
    -   Some of the modes are evil modes (e.g. normal, insert)
    
    -   While others are hydras (window, buffer, etc) (including Symex? yes, Symex too)

-   Which retro theme are you using?

    -   green phosphor

-   Will this involve defining more epistemic-modes for non-editable buffers like Dired? How do you deal with the explosion of the number of modes?

    -   This is a great question, so here is a long answer:
    
        -   I am keen to keep this extension lightweight so that it plays well with existing Emacs tools without needing a custom ecosystem. The modal interface abstraction layer "chimera" would be a big part of this, enabling existing modal-like interfaces to be recognized in the framework out of the box, meaning that they would be automatically "wired into" the broader framework via the standard exits (e.g. Escape and Enter)
        
        -   I'm not sure what the best way to handle dired would be, but if it could be handled in this way, then that would be the way to do it.
        
        -   The "complex" of towers initially available is tied to major mode, that takes away some of the complexity right off the bat. E.g. when you open a Lisp file it gives you a Lisp-related + general-purpose complex of towers
        
        -   The idea is to support the "explosion" of modes, but make it scale well by (1) having them be structured, and (2) the structure being the same at every level

-   How do you deal with the mental overhead of keeping a stack of modes and your position in it? While this simplifies the actual editing process by defining them as a single set of keybindings, the complexity is transferred to navigating modes.

    -   While the complexity is transferred, the nature of that complexity is different. In the case of keybindings, the complexity is unstructured and ad hoc, whereas in the case of mode navigation, it's a matter of "going to the right place" for your keys to have the right meaning
    
    -   In practice you would only have towers of size 2-3 I would guess, with every other mode jump always being available via an ad hoc jump (e.g. even in Vim tower, you can always jump to Window mode and it would return you to the original mode you were in upon exit)
    
    -   And the main paradigm would be swapping between small towers


## Notes

-   Indra's Net: <https://en.wikipedia.org/wiki/Indra%27s_net>
-   "we are at a higher level looking down at the text, we can describe this text&#x2026;"
-   "there is a way to go down to ground level, and a way to escape from that to the referential level"
-   "all of the nouns of the world of text are available"
-   &#x2026;. Or you could have a dedicated mode for every noun — Nouns as modes
-   Character, Word, Line mode; Window mode! All with the same basic keystrokes.
-   "Rumpelstiltskin Principle" from CS — if you can name something you have power over it
-   modes of modes → "Mode mode" (the modes that are present in the buffer)
    -   Such a refreshing point of view.
-   Tower mode → ?? "There are many towers available for use in different buffers"
    -   Cf. <https://www.press.umich.edu/19900/tower_of_myriad_mirrors>
    -   Not a real mode, but a "referential plane"
-   Demos "Strange Loop".
-   Two directions: sideways changes perspective (normal, word, line) all different perspectives; up or down (takes you through meta levels)
-   Unknown meta level → same basic interactions
-   <https://github.com/countvajhula/indra.el> formerly called epistemic-mode, now called rigpa (concept in Tibetan Buddhism, in Dzogchen teaching, or the great completion)
-   Similar idea from <http://emacs-versor.sourceforge.net>


<a id="pad08"></a>

# [08: Andrew Tropin: Building reproducible Emacs](https://emacsconf.org/2020/schedule/08)

-   Actual start and end time (EST): Start: 2020-11-28T11.26.34; Q&A: 2020-11-28T11.40.48; End 2020-11-28T11.43.33


## Questions

-   do you deal with config files such as emacs-custom.el, some which have sensitive data?

    -   Sensitive data is in other directories that aren't shared, and emacs-custom.el is completely avoided, as it prevents reproducible/system independent behaviour

-   how did you learn nix language basics? Just from the the manual?

    -   He referred to the nix IRC channel

-   What are the main advantages besides switching computers (which most people rarely do)?

    -   Make parts of config available for projects - sharing with other people

-   Have you tried Guix in place of Nix? (more parens! :) :)

    -   Currently trying it, and also in-process of switching from Nix to Guix.


## Notes

-   Emacs configuration is entangled with the system configuration (dired uses ls, grep.el uses grep)

    -   Reproducible behaviour is therefore not only dependent of Emacs compilation/configuration, but also system configuration.
    
    -   "config.el" files configure emacs, and accompanying "default.nix" files make sure that the correct packages/fonts/libraries/etc are installed

-   reproducible development environment: <https://github.com/abcdw/rde>

-   using Org-roam to demo how to config a Nix layer(?)

    -   custom.el conflicts with Nix(?)


<a id="pad21"></a>

# [21: Eduardo Ochs: On why most of the best features in eev look like 5-minute hacks](https://emacsconf.org/2020/schedule/21/)

-   Actual start and end time (EST): Start 2020-11-28T11.45.20 (~45min talk); End: 2020-11-28T12.26.00


## Questions

-   Is eev like GNU hyperbole? (from karthink in #emacsconf)

    -   rswgnu: I know Eduardo is exploring using Hyperbole with eev and we will work with him to help him  integrate its features.

-   "Are there variants of pos-spec-list that aren't search based? E.g., find buffer + run some other command + copy results?"

    -   I guess this is partly answered, with Xpdf example.
    
    -   Take a look here: <http://www.youtube.com/watch?v=hOAqBc42Gg8#t=32m05s>

-   I didn't quite follow the find-here-links demo, can you describe that once more slowly?

    -   I just added links to the tutorials about find-here-links and refining hyperlinks to the bottom of this page: <http://angg.twu.net/emacsconf2020.html> - hope that helps!

-   what are the books/readings that inspired you about usability again?

    -   Here are some: "Software Tools" by Kernighan and Plauger, the article about "Little Languages" in Jon Bentley's "More Programming Pearls", a commercial Forth called HS-Forth, and "Exploring Expect" by Don Libes.


## Notes

-   eev homepage: <https://www.emacswiki.org/emacs/EevMode> | <http://angg.twu.net/#eev>

-   find-video open a video with a time stamp as an input argument

-   How to record executable notes with eev - and how to play them back <https://emacsconf.org/2019/talks/27/>

-   Anchors (not explained in the talk) <http://angg.twu.net/eev-intros/find-eev-quick-intro.html#8>

-   <http://angg.twu.net/emacsconf2020.html>


<a id="pad09"></a>

# [09: Rainer König: Orgmode - your life in plain text](https://emacsconf.org/2020/schedule/09/)

-   (End 2020-11-28T13.16.44)


## Questions: - Put your questions below, most recent on top:

-   What's the advantage of copying tasks from the agenda to a separate daily plan, rather than just managing them directly within the agenda?

    -   Karl Voit here: I asked Rainer the very same question and his answer was that his agenda is full with tasks. Copying them (via keyboard shortcuts) to a manually curated daily list provides a condensed daily agenda showing only the tasks he is going to do (when the day goes as planned).
    
    -   I feel it can reduce some mental stress
    
    -   Yes, this is it, I want to decide in the morning (I can never do all what is in the agenda) and then I'm no longer overwhelmed by that long agenda.
    
        -   This may also be relevant: <https://github.com/alphapapa/org-now>
    
    -   OK thanks - but then why not just create custom agenda views for a) building the daily list and then b) just viewing the daily list without distractions? e.g. via org-super-agenda or org-ql?
    
        -   sometimes I also want to review my previous tasks I've done
        
            -   There is build-in org-agenda-log-mode (v l) to do this. One just need to make sure that the task state changes are actually logged (see \`(apropos "org-log-\*)\`).
            
            -   I suspect that could also be achieved via org-ql or similar but admit it's probably a more complex solution. Just naturally averse to anything which duplicates data and could lead to inconsistencies :)
            
                -   Exactly. It is just very easy to do it in such a format, but it can definitely be achieved by super-agenda/org-ql

-   How long does it usually take you to manage/maintain your agenda on a daily basis?+2

    -   Five minutes a day.
    
    -   Extensively uses org-capture to get thoughts down and schedule things for later — gets things out of head and saves the task for later
    
    -   Weekly review to go through checklists — usually takes about half an hour

-   What version of Emacs and of Org do you currently use?

    -   Emacs: 25.3.1
    
    -   Orgmode version: 9.1.5

-   Do you keep Emacs open with you all day, or just when you need to add tasks or reference todos?

    -   It's open all the day. Two monitor setup, Emacs is always opened on one (usually the non-main one, apparently, but moved back to the main one if necessary).

-   Where do your notes/tasks end up after you complete them (lurst asked that first on IRC)?

    -   In Archives (missed some details here, sorry)

-   Do you use orgmode on a mobile device as well? If so how do you do it?

    -   On the road I have a real old fashioned paper notebook with a ballpoint pen ;-)

-   How did you add the super fast typing?

    -   A) I learned touch typing at school around 45 years ago,
    
    -   B) kdenlive can accelerate video material. You need to mark it (cut it left and right) and then press SHIFT-CTRL and the Mouse to drag it, that adds the time lapse effect.

-   Do you export your Org files or Agenda files for others?

    -   I once tried it at work, but it didn't work out. For me Org is a **personal** prodcutivity system and not a sort of groupware. Nevertheless, I have a ToDo keyword "DELEGATED" to monitor e.g. errands that I give to my kids.

-   Do you use emacs for everything or just a few things like time management, programming, etc.?

    -   Emacs is my primary editor for shell scripts, LaTeX files, even Lilypond (remember that talk in the morning). I wrote all the LaTeX files for the book I prepared for my course in Emacs.

-   Do you keep your project notes and backup information with the To Do items in your agenda or in separate files?

    -   The notes are all in the :LOGBOOK: drawer of each task. So I have a sort of "micro blog" there that clearly shows what happened with that task so far. I even see all the "RESCHEDULED on&#x2026;" timestamps which helps me to identify the tasks I procrastinate. ;-)
    
    -   Not a question but thank you so much for your videos Rainer +1+1+1
    
        -   You're welcome. What started as a "I need to show Org to a few people" turned out helpful to a lot more than I ever expected. ;-)
        
            -   These videos helped me so much! Thank you!


## Notes

-   Showcases org-capture, org-agenda, rescheduling from the agenda

-   The idea of "The 3 most important tasks" is important to make a clear target on day to day basis

-   Just in case Rainer is not checking the IRC: lots of compliments! Also for your courses (on youtube)!!

-   How Org Mode Saved My Life - Programmer Interview With Rainer König On Emacs Org Mode

    -   <https://www.youtube.com/watch?v=L_DYO0_eJ6A>
    
    -   <https://www.youtube.com/watch?v=kPKhS-QDn7c&t=1332s>

-   UDEMY Course URL: <https://www.udemy.com/course/getting-yourself-organized-with-org-mode/?referralCode=D0CB0D077ED5EC0788F7>

-   Very interesting thing to know: Rainer is not using a substantial customized setup. It's rather out-of-the-box only.

-   Org-mode tutorial YouTube playlist: <https://www.youtube.com/playlist?list=PLVtKhBrRV_ZkPnBtt_TD1Cs9PJlU0IIdE>


<a id="pad10"></a>

# [10: Andrea: Lead your future with Org](https://emacsconf.org/2020/schedule/10)

-   Actual start and end time (EST): Start 2020-11-28T13.17.07; End: 2020-11-28T13.25.25


## Questions

-   For how many years have you used Org?

    -   7ish. I started during my PhD because it was the easiest to fit in. And programming in OCaml was so nice in there :)


## Notes

-   Andrea: I will reply questions inline, and you can reach me on IRC (username: \`andrea)

-   Tagging tasks with tags like 10yr, 5yr (how many days that task will have impact on life / future)

-   The table-like weekly reviews may also be produced with org-ql dynamic blocks: <https://github.com/alphapapa/org-ql#dynamic-block>

-   Blog: <https://ag91.github.io>

    -   <https://ag91.github.io/blog/2020/09/27/org-agenda-and-your-future-or-how-to-keep-score-of-your-long-term-goals-with-org-mode/>


<a id="pad11"></a>

# [11: the org-gtd package: opinions about Getting Things Done -Speaker(s): Aldric](https://emacsconf.org/2020/schedule/11)

-   Actual start and end time (EST): Start 2020-11-28T13.26.16; End: 2020-11-28T13.41.53


## Questions

-   For how many years have you used Org?

    -   At least five years, I don't know exactly how long

-   What about delegated actions of a project? Do they get moved to the delegated heading and moved back to the project when finished?

    -   They stay where they are, because they belong to the project. Org-edna will automatically mark it as NEXT when its time comes. The user can mark it as WAIT easily through the agenda. I would like an org-gtd command to queue up "mark as WAIT", "add the DELEGATED\_TO property", and "schedule a check-in time", but I haven't yet done the research to figure out a clean integration of such a custom action with the agenda view.

-   Are you only using linear next-task-method or do you use org-edna to mark tasks even in other projects as NEXT?

    -   Currently I only use linear next-task-method, for two reasons. One is a technical reason, another one is part of my current approach to GTD:
    
        -   I haven't yet had a reason to consider that, say, a project might block another project, or that an action might block a project - possibly I haven't tried to do complex enough things in my life yet, and so I've always been able to simplify what I had to do into linear projects, even if it was a simple linear project with a last task of "create a new project based on what I've learned"
        
        -   I have zero idea of how I would intelligently display this, yet, so I've stayed away from this. Contrary to most personal projects I've worked on, this one has "ease of use" front and center, so before implementing something like this, I'd need to know how to properly represent this: if possible, in the agenda view, and if not, I guess it would be in a HUD I would create for the package.
        
            -   <https://orgmode.org/list/87pn6zzoj7.fsf@localhost/> might be relevant. The feature request suggest a way to show notes dynamically in headlines.

-   How do you make use of incubated items? Do they show up in the agenda for the whole day? That would be distracting, I guess.

    -   I have a block of time, every morning, dedicated to processing the inbox and seeing what's on my plate for the day. I would use this time to decide what to do with the incubated item: incubate it again, make it into a project, discard it, etc. My "incubate" file has a bunch of top-level headlines like "To Read", "To Watch", "To Eat", "To Visit", etc.
    
        -   That sounds similar to SOMEDAY-list, but processed on per-item basis. If you decide to re-incubate an item, how to you chose the new time?


## Notes

-   [speaker] I forgot to mention this in my talk because it's fairly recent: someone pointed me to screens that David Allen designed for "the ideal GTD app", which means I've got some path forward for making emacs the ideal GTD app (see <https://github.com/Trevoke/org-gtd.el/issues/21> )

-   Showcases org-gtd: <https://github.com/Trevoke/org-gtd.el>

    -   Custom org-gtd-capture, but reusing parts of org-mode
    
    -   org-edna (state trigger) for automatically changing TODO to NEXT after the previous task has been finished: <https://www.nongnu.org/org-edna-el/>
    
    -   idea of having an actionable file
    
        -   maybe org-edna will automatically change TODO to NEXT in that file(?)
        
            -   [speaker]: indeed :D Well, in projects, yes, it doesn't make sense in other categories

-   Testing via buttercup ( <https://github.com/jorgenschaefer/emacs-buttercup> )

-   I'm using org-edna as well and I want to point others to <https://github.com/toshism/org-linker-edna> which is an enormous help when working with edna.


<a id="pad12"></a>

# [12: Leo Vivier: One Big-ass Org File or multiple tiny ones? Finally, the End of the debate!](https://emacsconf.org/2020/schedule/12)

-   Actual start and end time (EST): Start 2020-11-28T13.43.24; Q&A 2020-11-28T13.51; End: 2020-11-28T14.00.07


## Questions

-   What's better: one big file or many small ones? :>

    -   For knowledge management: many files (see also org-roam)
    
    -   Otherwise: one big file to have everything (todos, projects, notes, etc&#x2026;) in one single place.
    
        -   possible walk around by some hacks?

-   Do you switch between British and French accents?

-   What's the Emacs icon

    -   Browser extension for org-protocol (anyone got the link / name?) is this <https://addons.mozilla.org/en-US/firefox/addon/org-capture/> or this <https://addons.mozilla.org/en-US/firefox/addon/edit-with-emacs1/>

-   How do you feel about archive files in org mode, how can that work in?

-   Could you post links?

-   How big are your org files?

    -   main file: 38000 lines for all GTD-tasks and he does archive
    
    -   Karl does use archiving although Karl does use Org tasks even in knowledge management and those don't get archived most of the time.

-   Does it not consume more resources and time to load multiple files than a large file of the same contents?

    -   Dealing with hiding contents is computationally expensive.
    
        -   I doubt it is correct. Emacs display engine is quite effective dealing with invisible text. Moving cursor around is affected, but I never heard (and never experienced) issues with scrolling on large (2Mb) org files.
        
            -   Actually, Org currently uses overlays to hide text, and the overhead of the overlays does eventually add up.  There's a working branch that uses text-properties instead, and it may be merged to Org someday.
            
                -   It is on the way ;) I need more feedback (see help request in <https://updates.orgmode.org/>)
                
                    -   If I ever have time to even get my Org upgraded to the latest version, maybe I can think about trying to test that ;)
                    
                        -   Would it help to share the branch on github?
                        
                            -   It would probably make it easier to use and more visible, so&#x2026;maybe?  :)
                            
                                -   Noted (or rather captured) (using org-mode right? :) Indeed
            
            -   Karl: whenever I had severe performance issues and somebody was nice and helped to analyze the issue, "overlays" were the root cause in probably 90% of the cases. However, an average user (including me) does not know if a specific feature is implemented using overlays or not. My Org life is basically  try and error ;-)
            
                -   FYI, if you use org-indent-mode (or whatever the name is of the mode that uses overlays to indent contents), you could disable that to reduce the number of overlays in a buffer. &#x2013;alphapapa
                
                    -   Karl: thanks a bunch. However, some features are delivering important features to me so that I do have to accept the performance overhead to a certain level. That's a difficult trade-off I do have to make from time to time ;-)

-   Doesn't using many small org file clutter up your buffer list when generating agenda etc?

    -   Personally, I limit org agend to just a few files while keeping notes in many more.


## Notes

-   Speaker's emacs.d: <https://github.com/zaeph/.emacs.d>

-   Mentioned: <https://karl-voit.at/2020/05/03/current-org-files/> -> Karl's big Org files

-   org-element.el: <https://orgmode.org/worg/dev/org-element-api.html>

    -   single-threaded lisp function that parses the whole file

-   "the problem is to let org-element to make sense of the item (?) &#x2026; "


<a id="pad13"></a>

# [13: Joseph Corneli, Raymond Stanley Puzio, and Cameron Ray Smith: Experience Report: Steps to "Emacs Hyper Notebooks"](https://emacsconf.org/2020/schedule/13)

-   Actual start and end time (EST): Start 2020-11-28T14.01.42; Q&A 2020-11-28T14.11.44; End 2020-11-28T14.13.50


## Questions

-   Have you looked into trying SageMath? I've long wanted to use SageMath in Org files.

    -   If you can use it from the command line, you could use it in org mode using what we are working on.  -RSP

-   I can use SageMath from the command line, but not using one of the Emacs shells.

    -   As Joe is now explaining, our ob-servant code should then make it accessible from within org mode.

-   Let's not forget about Embedded Calc in Emacs!

-   Could you post some links?+1

    -   see Notes below

-   Which package have you used to prepare the slides which are visually appealing?

    -   I think he used org-tree-slides, like some earlier presentations.


## Notes

-   <https://github.com/exp2exp/ob-servant>


<a id="pad14"></a>

# [14: Adam Ard: README-Driven Design](https://emacsconf.org/2020/schedule/14)

-   Actual start and end time (EST): Start 2020-11-28T14.15.00; End: 2020-11-28T14.34.46


## Questions

-   If you put all your code in an org file (in addition to prose), doesn't that make the file very large for medium/large projects? (Since all the code across all files is tangled from a single README.org)

    -   You are right it would get pretty large. I haven't hit that point yet, but plan to experiment with separate org files that are imported into a master file.

-   If a collaborator edits the tangled file(s), is reverse-tangling in org reliable? How do you integrate the reverse in a safe way?

    -   So, I actually think this is the big unsolved problem right now. How to do reverse tangling. As far as I know, emacs doesn't do that. But it would really cool. I think it is probably a hard problem.
    
        -   actually it does! you have to enable comments that mark the boundaries of the code blocks. (org-babel-detangle) -> org-babel-detangle is pretty fragile right now.
        
        -   Oh wonderful! I will have to check that out. There is always more to discover in emacs. Thanks!

-   Would this approach make it harder to collaborate with contributors who don't use org?/How to rectify these difficulties? (Thank you!)

    -   I have had some sucess at work by managing an org file myself, then I commit the tangled code and a README.md. I have to manually update my org file though when someone makes a change to the raw source files. That process can be a pain. It would be awesome to find a way to make this easier. So that non-emacs users can collaborate and be unaware of the source org file. To have an annotation free reverse tangling process would be the holy grail of literate programming. Would be a great thesis project for someone.

-   Interesting. Did you ever use this approach on a large project? Could one incorporate also TDD into this workflow?

    -   I have only really hit the medium size. But would love to try a larger one. I have seen people write whole books in literate progamming though. (Not sure if they were using emacs) (one example: <http://www.pbr-book.org/> ). Here is a pretty large one I found on github: <https://github.com/nakkaya/ferret>
    
    -   TDD is an interesting idea. I haven't tried doing that, but org seems flexible enough to build a workflow around that.

-   Could you share the snippet for adding these source code blocks, it seems much better than the one I am using currently. Thanks!

    -   Sure, it is documented in the literate programming demo here (<https://github.com/adam-ard/literate-demo> )

-   In Python, indentation is part of the syntax. How is this handled when <a id="orgfbe6db7"></a>-syntax is used for functions or even a few lines of codes that are get re-used in multiple functions? Does the user have to define different <a id="orgc330801"></a> snippets for different indentations but otherwise identical code?

    -   Not the speaker, but :noweb will add the prefix characters to all lines, see <https://orgmode.org/manual/Noweb-Reference-Syntax.html>. Python identation is fine (and used as an example in the manual :))
    
        -   exactly, I have done a lot of python this way, it works great!

-   Could this structure be used with a SQL query with the output being an Org table?

    -   Yep, I have done that before too. Org will send the query to a database and insert the results. It is super nice. You can add block properties to set the hostname of the database too, so it isn't limited to just databases running on your local machine.

-   Why do you export to Markdown when GitHub and others are supporting rendering Org directly?

    -   Good question. I do this because I usually work with people that don't use emacs :( so I usually take the source files and the markdown and commit them to git. I keep the org file to myself. If everyone used emacs, I wouldn't bother with that step.

-   This file would be very useful to have for us for reference, could you also share it please?

    -   Yep! See the links below for a couple template files. An extended one from the talk is at: <https://github.com/adam-ard/literate-demo>


## Notes

-   Adam Ard: I'll be answering questions here in the pad or in #emacsconf (aard3)

-   Companion Blog Post: <http://adamard.com/literate_programming.html>

-   Extended Version of Demo File: <https://github.com/adam-ard/literate-demo>

-   Literate Static Website: <https://github.com/adam-ard/static-website-literate-demo>

-   If you want to learn what GitHub is able to render in Org syntax: <https://github.com/novoid/github-orgmode-tests>

-   <https://en.wikipedia.org/wiki/Literate_programming>

-   I am thinking about org-transclusion; similar ideas to deal with notes instead of codes

    -   FYI: <https://github.com/alphapapa/transclusion-in-emacs>


<a id="pad15"></a>

# [15: Adolfo Villafiorita: Moving from Jekyll to OrgMode, an experience report](https://emacsconf.org/2020/schedule/15)

-   Actual start and end time (EST): Start 2020-11-28T14.36.18; Q&A: 2020-11-28T14.51.48; End 2020-11-28T14.53.03


## Questions

-   Opinion on Firn ( <https://github.com/theiceshelf/firn> ) ?

-   Do you discuss this in a blog as well? Where could I find more about it?

    -   Talk and content will be published later after the conference. Will be available on the talk page.

-   Could you please paste your URLs in the notes below? (link to your site etc).

    -   The source repository of the first website (my homepage) lives here: <https://www.ict4g.net/gitea/adolfo/home> and the output is: <https://www.ict4g.net/adolfo/>
    
    -   The source repository of the second website (Computational Logic) lives here: <https://www.ict4g.net/gitea/adolfo/cl-2020> and the output is: <http://datascientia.education/cl-2020>
    
    -   The talk, code and links are now availble here: <https://www.ict4g.net/adolfo/notes/emacsconf-2020/index.html>

-   <https://www.ict4g.net/gitea/adolfo/home> has the source code for the website.

-   Not a question, but thanks for the talk!


## Notes

-   Main reason: Org has better support for literate programming.

-   Org mode files support in Jekyll - <https://emacs.cc/jekyll-org/>

-   Mentioned: <http://juanjose.garciaripoll.com/blog/org-mode-html-templates/index.html> (org-thml)

-   Other static webpage generators: <https://github.com/novoid/lazyblorg/wiki/Similar-Projects>


<a id="pad16"></a>

# [16: Leo Vivier: Org-roam: Presentation, Demonstration, and What's on the Horizon](https://emacsconf.org/2020/schedule/16)

-   Actual start and end time (EST): Start 2020-11-28T14.54.36; Q&A: 2020-11-28T15.12.44; End 2020-11-28T15.15.51


## Questions

-   What is the functionality of `org-roam-unlinked-references`?

    -   Let's say we have Emacs in another note&#x2026; for every mention of Emacs that is not linked, it prints all the results in the buffer.

-   How would org-roam files which would be very numerous integrate with todo's and org-agenda

-   Is it possible to use the backlinks feature in regular org buffers?

    -   We have a very controlled environment and this is where we keep all the notes

-   Do you make your org-roam database accessible accross computers? Via putting the SQLite file in Dropbox or serving the DB in the cloud or something.

    -   Answer: no. Only on one computer personally.
    
    -   But plenty of people have done so. Section in the manual dedicated to this.
    
    -   pretty sure best results occur when the DB is generated seperately for each machine.

-   How do you discover tags/links to add to a new org-roam note?

    -   &#x2026; go to org-roam.com, on Github we show everything

-   Do you share your org-roam knowledgebase in a public location?

-   Is it possible/easy to have a knowledgebase which is a mix of public/private data?

-   Is it possible to seamlessly link to other notes with syntax instead of a keybinding? How do you avoid ending up with duplicate links like `tag1`, `tag_1` and `tag-1`? Since notes are created at different times it's difficult to be consistent.

-   What is the best way to keep a separate org-roam (dir) for work and home/personal?

-   Are the timestamp prefixes in the filenames optional?

    -   yes, you can modify the prefixe

-   Just want to say good on you Leo! Perserverence!

-   Is there an easy way to export several selected notes, to  say, a LaTeX file?

    -   At the very core it is Org Mode
    
    -   <https://org-roam.discourse.group/t/interoperability-between-org-roam-and-regular-org/715/8> has some notes about exporting from Org Roam to regular Org
    
    -   Yes, sorry, I meant to put together several "atoms"  for export.
    
    -   try org-transclusion to make new notes and export to latex file.

-   How do tags fit into org-roam workflow?

-   You mentioned you have a youtube channel. Could you give us the link to it. I would definitely be interested in  watching your videos. Yeah, I didnt see it. Thanks :D <https://www.youtube.com/user/Zaeph> (Check the notes below).


## Notes

-   Maintainer of <https://www.orgroam.com/>

-   "Org Roam is a way for you to manage backlinks inside of Emacs" links - backlinks

-   I see logseq ( <https://logseq.com> ) as a bridge to link non-emacs users to Emacs world.

-   Org-roam is awesome. As a friendly challenge, Karl wrote <https://karl-voit.at/2020/06/14/Zettelkasten-concerns/>

    -   You should check out the cool discussions on <https://www.reddit.com/r/emacs/comments/hg2m5s/zettelkastenorgroamorgbrain_is_crap/> which mentiones tons of advantages of org-roam/Zettelkasten
    
    -   If you checked out Zettelkasten and you're looking for a simpler alternative for just bi-directional linking headings (but none of the other great features of Zettelkasten): <https://karl-voit.at/2020/07/22/org-super-links/>

-   "The point is to make consistency of your notes."

-   YouTube channel: <https://www.youtube.com/user/Zaeph>


<a id="pad17"></a>

# [17: Noorah Alhasan: Org-mode and Org-Roam for Scholars and Researchers](https://emacsconf.org/2020/schedule/17)

-   Actual start and end time (EST): Start 2020-11-28T15.17.33; Q&A: 2020-11-28T15.32.18 End 2020-11-28T15.39.00
-   Slides/presentation: <https://github.com/nalhasan/emacsconf2020>


## Questions

-   I use org-roam-bibtex to take notes on particular academic papers in conjuction with org-noter. This means all notes for a given paper are in one org file. However while it is possible to link to headings within a file, there is no functionality to easily search through and link to these subheadings. What do you do to overcome this? I've only superficially looked at org-rifle as a possible method.

-   Whats this presentation software? Looks really cool.

    -   beamer (LaTeX)
    
    -   <https://github.com/nalhasan/emacsconf2020> for the slides/presentation

-   How does the view for time blocking works?

    -   

-   have you seen the project papis ? <https://github.com/papis/papis> I think the author is working on an emacs package, what would be your thoughts? (it's a zotero alternative)

    -   "Powerful and highly extensible command-line based document and bibliography manager."

-   Did you try using ebib instead of zotero? if so, is zotero better in some way?

    -   Zotero has a lot of plugins you can play with and so far it's been great
    
    -   Some people have been using a connector between Emacs & Zotero&#x2026;
    
    -   You can create groups for collaborative projects in Zotero and this is a plus. (thanks for the answers! I'll give it a try!)
    
        undefined.1. <https://github.com/papis/papis-zotero> maybe useful ^^

-   Do you have any suggestions on what subjects/things should be tags/separate org-roam files for cross-linking? I've been struggling with whether making almost every term be a link or only using links for broader subjects.

    -   "Should I be combining ideas together into one&#x2026;?"  So far I've been using the Org Roam default way.

-   Meta question: is there a place where people are collaborating on research "about" Emacs?

    -   Definitely interested, but there is no place (yet!)


## Notes

-   org-inlinetasks

-   if you're working on a big org file that you keep coming back to, it's better to keep track of todo's related to that file within that file (e.g. a paper that you're writing)

-   <https://github.com/alphapapa/org-sidebar> to keep track of todo's within a large file

-   using org-gcal to sync gmail calendar with org-file <https://github.com/kidd/org-gcal.el/>

-   org-transclusion <https://github.com/nobiot/org-transclusion> to show (parts of) other files inline and allow editing in a separate mini-buffer

-   There is a Slack channel for org-roam link/backlink pls?


<a id="pad18"></a>

# [18: Leo Vivier (zaeph): Org-roam: Technical Presentation](https://emacsconf.org/2020/schedule/18)

-   Actual start and end time (EST): Start 2020-11-28T15.39.41; Q&A  2020-11-28T15.56.29; End 2020-11-28T16.01.03


## Questions

-   Why not to run a background Emacs for parsing instead of implement a new parser?

    -   Running a background Emacs progress sounds great, but is still limited. Forwarding all queries to a background Emacs (like org-mode's exporter does) is only feasible with a (??? zaeph can probably fix the answer)

-   How often does the DB index get updated in order to contain changes within Org files?

    -   Either on save, or on idle-timer.

-   Did you ever think of opening up (or designing) the SQL DB as a general Org speedup-tool outside of org-roam so that other libraries that do execute complex queries are able to re-use the summarized data?

    -   FYI, see John Kitchin's work, he uses a SQLite database to index his Org files. <https://kitchingroup.cheme.cmu.edu/blog/2017/01/03/Find-stuff-in-org-mode-anywhere/>
    
        -   John's DB approach is great. However, we should not end up using several DB-index in parallel. ;-)+1

-   Obviously with the 'global backlinks' agenda, it would be interesting to combine with the eev stuff from before :-) ( <https://github.com/edrx/eev> )

-   about the external program, you could just talk to the PANDOC guys (or Firn [Parses org-files into data structures with Orgize <https://github.com/PoiScript/orgize> ], Logseq [OCaml & Angstrom, for the document parser <https://github.com/mldoc/mldoc> ]), they're very helpful and have already a good org-mode parser

-   Is it feasible to have this process of parsing org-roam following the LSP protocol? that would allow to be editor agnostic, and it would save the work to define the communication protocol and any other technical details.


## Notes

-   "org-roam just wants to create backlinks"

-   org-mode has many many files (377 lines in dired&#x2026; including .elc files)

-   If you want to create an index of all the org files using the native format, it would be very slow. So org-roam uses a sqlite database

-   ripgrep (written in Rust) is more capable than grep; used by some Zettelkasten

-   "Is there something we could do to import backlinks into org mode?"

-   "We've always tried to have an experimental ground where we can track backlinks"


<a id="pad19"></a>

# [19: Brett Gilio: Sharing blogs (and more) with org-webring](https://emacsconf.org/2020/schedule/19)

-   Actual start and end time (EST): Start 2020-11-28T16.02.37; End 2020-11-28T16.10.30;
-   <https://sr.ht/~brettgilio/org-webring>


## Questions

-   How do you keep doc/README.org in-sync with org-webring.el?

    -   I use an exporter in the .org file that outputs the MD file on save automatically. The relevant parts are at the bottom of the .org file.
    
        -   I saw that :). I was wondering about the synchronisation between the .org file and the .el file
        
            -   &#x2013; that is done manually Currently. I wish there was an Easier way. There should be a way to export public definition DocStrings.


## Notes

-   Any More questions on org-webring, email brettg@gnu.org


<a id="pad20"></a>

# [20: Corwin Brust (mplsCorwin): OMG Macros](https://emacsconf.org/2020/schedule/20)

-   Actual start and end time (EST): Start 2020-11-28T16.17.32; Q&A 2020-11-28T16.34; End: 2020-11-28T16.38.32


## Questions

-   How is your background work?

    -   See 06: Trivial Emacs Kits's Q&A: Corwin uses Wallpaper Engine.
    
        -   [Corwin] Wallpaper Engine on Steam is probably the think that's grabbing attention.  I haven't tried it under GNU/Linux.  My familyare (mostly) Windows users right now  ****heavy sigh****  I don't want to get into my tool chain a huge amount, but I will talk about it some as/durning the Welcome to the Dungeon talk tomorrow.  For now I will say I'm using a mix of free (free and not-free but too easy to avoid tools on my one pretty good computer).  I would love to have the time to invest to use more (only) free stuff but sometimes we we can't afford the freedom, in terms of the learning cure.   I think this is the most important problem space in freesoftware, FWIW.

-   What was the key message you wanted to share with your talk?

    -   Macros are powerful and necessary. Consider how you use them?

-   Do you mind if I use your macro code as inspiration for an elisp uglifier?

    -   Have At!  It's GPLv3 and you are welcome; lmk if you have any trouble finding fruit to throw


## Notes


<a id="pad40"></a>

# Day 1 Closing remarks by Sacha

-   (2020-11-28T16.14.07-2020-11-28T16.16.06 + 2020-11-28T16.40.39-2020-11-28T16.52.55)


## Stats

-   21 talks today, 16 tomorrow (30 last year)

-   Peak of 391 viewers of /main.webm and 26 viewers of /main-480p.webm (last year: ~270, so 50% more!)

-   Etherpad Peak ~130 (110 at 2020-11-28T16.42.14)


## Videos and other resources will be posted some time over the next few weeks. Mailing list: <https://lists.gnu.org/mailman/listinfo/emacsconf-discuss>


## Thanks again

-   the Free Software Foundation, especially the tech team, for support and sharing their BigBlueButton host

-   Volunteers: bandali, bhavin192, bremner, dto, jcorneli, mplsCorwin, publicvoit, sachac, seabass, zaeph

-   Speakers and participants


## See you tomorrow!


<a id="pad41"></a>

# Day 2: Opening remarks

-   2020-11-29T09.00.35-2020-11-29T09.12.05


## Notes

-   "We recommend using Jitsi Meet for those 'unconference' talks: <https://meet.jit.si/> ". (E.g. if you want to talk to the speaker after their talk).


<a id="pad38"></a>

# [38: John Wiegley: Emacs development update](https://emacsconf.org/2020/schedule/38)

-   Actual start and end time (EST): Start 2020-11-29T09.12.40; End: 2020-11-29T09.17.51


## Questions

-   There is xwidget webkit based browser built in Emacs but this is not trivial to install it, it is slow and many pages do not work at all. On the other hand, there are standalone Emacs like browsers e.g. "Nyxt" and "Qutebrowser" (This one I use and love, in theory this is VIM like browser but can be configured to be Emacs like). Having built in high performance browser (not dependent on EXWM) would be game changing feature for Emacs. Are there any plans to make such browser within the roadmap of Emacs development or maybe that would make sense to work together with either Nyxt or Qutebrowser communities to integrate their browsers natively in Emacs?

-   (karthink on IRC): Can't native compilation happen asynchronously after installing Emacs? (Including for files in site-lisp)


## Notes

-   Cairo enabled by default in Emacs 28.

    -   Cairo-URL: <https://www.cairographics.org/>

-   Native compilation will land soon (currently in another branch, needs libgccjit). About 2.5 times faster(?)

    -   Downtime of native compilation: long time to compile Emacs.
    
    -   Native compilation products specific to the machines

-   Emacs 27.2 will be released soon

-   Emacs 28 will have better emoji support 🎉 (within C code). No timeline for 28 currently.


<a id="pad22"></a>

# [22: Musa Al-hassy: Powering-up Special Blocks](https://emacsconf.org/2020/schedule/22)

-   Actual start and end time (EST): Start 2020-11-29T09.19.39; Q&A: 2020-11-29T09.36.14; End: 2020-11-29T09.48.34


## Questions

-   Should packages implement the interface to one specific format, or attempt to be conclusive to all the potential output targets?

-   How to share "recipes"? Will this become a "large" project, or minimal that requires you to write most customizations yourself?

-   Could you make slides that show the source form on the left and the output on the right? That would make understanding each capability much simpler.

-   Does typing in a block mess up the syntax highlighting? Usually themes use a single color inside an example block, for example.

    -   "You found my crutch!". Colors in source code blocks within blocks are hard. Didn't have time yet to implement it. Any help is appreciated! :)
    
        -   That's where you can get help from org-mode core developers ;)

-   +++if you export to latex->pdf does that work well with beamer as well? To create slides with columns for example?

    -   You have to format the LaTeX appropriately for the backend "beamer".

-   How does this relate to pandoc, which is used for converting between markup formats?

-   Side question about org-reveal: How do you get bespoke/multiple-column layouts without using #+HTML (and <div>) everywhere in the org file?

    -   It's a custom #begin\_parallel block! See the main article linked below.
    
    -   Parallel section: <https://alhassy.github.io/org-special-block-extras/#Parallel>

-   What is used to produce colorful boxes around the cursor in your browser?

    -   Commercial software called ScreenBrush

-   Why did you put optional arguments in a separate list rather than using cl-style argument lists?  e.g. (defblock feedback (who &optional (color "red")) &#x2026;) +1

    -   The first argument may take some meta-information when you define it, which is easier to handle with two arguments.

-   Do you intend to try to upstream this amazing work into Org?  :)+1

    -   no prior experience on how to upstream; suggestions and help appreciated
    
        -   <https://orgmode.org/contribute.html>
        
        -   Yes, I would suggest simply posting a short proposal for an org-defblock macro on the orgmode mailing list, and hopefully Bastien and other maintainers like Nicolas will discuss it with you.  I think they would be excited to have this feature standardized in Org. +1+1+1+1 I am excited+1+1
    
    -   add a little beginner-focused documentation and this becomes another great reason to use org over markdown, I imagine the maintainers would love to have it


## Notes

-   Main article: <https://alhassy.github.io/org-special-block-extras/>  (HTML or 48 page PDF)

-   Slides for this talk: <https://alhassy.github.io/org-special-block-extras/emacs-conf-2020>

-   [Reddit discussion](https://www.reddit.com/r/emacs/comments/k2whsy/declaring_new_special_blocks_with_arguments/)

-   Elisp Reference Sheet:  <https://alhassy.github.io/ElispCheatSheet/CheatSheet.pdf>

-   My Emacs init: <https://github.com/alhassy/emacs.d#a-life-configuring-emacs>


<a id="pad23"></a>

# [23: Tuấn-Anh Nguyễn: Incremental Parsing with emacs-tree-sitter](https://emacsconf.org/2020/schedule/23)

-   Actual start and end time (EST): Start: 2020-11-29T09.49.24; Q&A: 2020-11-29T10.13.56; End: 2020-11-29T10.31.44


## Questions

-   Q20: can we integrate it with spacemacs python layer

-   Q19: The python mode example was pretty good. Is that something that one can use already?

    -   Yes, already using it at work right now

-   Q18: Regarding Emacs integration, will it always need to be a foreign library or can it be included / linked directly in compilation?

    -   Building a parser from source needs Node.js <https://tree-sitter.github.io/tree-sitter/creating-parsers#dependencies> so I don't know if it'll be in-tree and included at compile time
    
    -   Core library dynamic module, would be better to be included in core Emacs eventually. Language definitions might be better distributed separately.

-   Q17: Is there a link to the slides?

    -   Yes, will post in IRC later. (FIXME: add link here).
    
    -   Slides: <https://ubolonton.org/slides/emacs-tree-sitter-emacsconf2020.pdf>

-   Q16: Are there any language major modes that have integrated already?

    -   Not yet (answered during talk)
    
    -   Typescript : discussing integration, not integrated yet

-   Q15: Is it possible to use tree-sitter for structural editing?

    -   Covered by Q4 / Q8 / Q11.

-   Q14: Is there a folding mode for tree-sitter?

    -   Not yet. There are multiple code folding frameworks inside Emacs, and it's better to integrate with these modes rather than writing something new entirely.
    
    -   +1 Would be nice if it worked with outshine mode or similar

-   Q13: MaxCity on IRC asks: "That pop up M-x window. How do you get that?"

    -   ivy-posframe most likely <https://github.com/tumashu/ivy-posframe/>. Or not. Cool!
    
    -   Custom helm code

-   Q12: I'm new to the tree-sitter world. Is it easy to install/use it also on windows ? (I have to use winbloat at work)

    -   The usual approach is hoping someone else made a precompiled version for you and download it. Otherwise you'll have to set up a development environment with mingw-msys or whatever.

-   Q11: Is it possible to use this for refactoring too?

    -   For the kind of refactoring inside a buffer, it's very doable right now with some glue code. For more extensive refactoring where you want to touch all files in a project, there needs to be some kind of understanding of the language model system, how they are laid out in the filesystem&#x2026; even files that are not yet loaded into Emacs. That sounds like something a lot more extensive. Sounds like an IDE in Emacs.

-   Q10: Can language major-mode authors start taking advantage of this now? Or is it intended to be used as a minor-mode? +1

    -   Minor mode depended on by the major modes

-   Q9: I'm completely new to tree-sitter, how do I use it as an end user? Is there an easy example config out there by the organizer or otherwise that shows standard usage with whatever programming language? Or are we not there yet?

    -   Answering own question: Sounds like major mode maintainers need to integrate.
    
    -   Syntax highlighting is pretty easy to activate <https://ubolonton.github.io/emacs-tree-sitter/getting-started/> - nice, tree-sitter-hl-mode looks easy
    
    -   Need to add more examples to the documentation

-   Q8: (Following on from Q4) Could there be a standardised approach to coding automatic refactorings in the future? e.g. so that whichever language mode you are using, you could see a menu of available refactoring operations?

    -   Not sure about this. Most refactoring operations are highly specific to a class of languages. Not one single approach for all the languages, but maybe one for object-oriented languages, one for Lisp-type languages, one for Javascript and Typescript&#x2026;
    
    -   I meant the lisp and user interfaces being unified, not the implementations of the refactorings. But maybe it belongs in a separate mode on top. So you could have a defrefactor macro or similar.

-   Q7: How extensive will the compatibility be between highlighting grammars for Emacs and those for Vim/Neovim with Tree-sitter?

    -   For the time being it looks like nvim-treesitter also uses the S-exp syntax for queries so it shouldn't be too hard. See <https://github.com/nvim-treesitter/nvim-treesitter/blob/master/queries/rust/highlights.scm>

-   Q6: Will it ever be possible to write tree-sitter grammars in a Lisp, or will JS be required?

    -   The grammar part is written in JSON, you don't need to actually understand JS to write it. Using Lisp would merely give you a s-expression version, that wouldn't buy you much.
    
        -   Ah, so all that is needed is (json-encode '(grammar &#x2026;))?  Great!

-   Q5: Could you show the source that was matched by the parser in the debug view in addition to the grammar part matched?

-   Q4: Could this be used with packages like \`smartparens\` that aim to bring structrual editing to non-s-expression based languages?  AST-based refactoring?

    -   It is one of the goals, but not yet achieved.

-   Q3: Do you think tree-sitter would be useful for Org buffers?  I can imagine it being used to keep a parsed AST of an Org buffer (e.g. like org-element's output) updated in real time.+1+1

    -   An obstacle here is Org not having anything anywhere close to a formal grammar, so that would need to be corrected first.
    
        -   <https://orgmode.org/worg/dev/org-element-api.html>
        
        -   <https://orgmode.org/worg/dev/org-syntax.html>
        
            -   This is an informal description of it, not an actual grammar. Nevertheless, there's a few projects trying to codify a grammar. I'll dig up some links soonish.
            
                -   The element API is the formal grammar - canonic implementation. Org-syntax document is a draft of the text descrption of the grammar.
                
                -   Note: relevant mailing list discussion <https://orgmode.org/list/68dc1ea1-52e8-7d9e-fb2d-bcf08c111eca@intrepidus.pl/>
    
    -   FIXME: Add link to a emacs-tree-sitter project/snippet for org-mode.
    
        -   Not sure if it is what you have in mind, but there is <https://github.com/gagbo/tree-sitter-org>

-   Q2: Will elisp performance be more competitive with gccemacs enough to make tree-sitter in elisp more attractive? (+1)+1

    -   The point of this project is to reuse other people's efforts, not rewriting them.
    
    -   The garbage collection may still pose some problems and introduce GC latency.

-   Q1: Do you think that his package can be included into emacs/GNU ELPA?

    -   Yes, it is just matter of paperwork.


## Notes

-   Project description: emacs-tree-sitter is an Emacs Lisp binding for tree-sitter, an incremental parsing library.

    -   <https://github.com/ubolonton/emacs-tree-sitter> (<- bindings)
    
    -   <https://tree-sitter.github.io/tree-sitter/> (<- parser)

-   Regular expressions are not powerful enough.

-   LSP has high latency and is resource intensive, oft.

-   Extended video version will get uploaded eventually after the event. (FIXME: add link)


<a id="pad24"></a>

# [24: Andrea: Analyze code quality through Emacs: a smart forensics approach and the story of a hack](https://emacsconf.org/2020/schedule/24)

-   Actual start and end time (EST): Start 2020-11-29T10.34.52; End: 2020-11-29T10.55.39


## Questions

-   Q3: How large of a codebase could this be used to analyze? Are there known limits in size?

    -   Nope, so far I could create a microservice picture at work that has a few million of lines. I did not do stress test, but I am confident that (at least the hotspots analysis) does not break.

-   Q2: Have you uploaded this file somewhere (or plan to do so)? This seems very useful so I would love to have these code snippets.

    -   It's totally my plan to make this accessible to everyone: we need more code quality for our feature (software is everywhere)! The plan was a series of blog and learn how to publish in MELPA later.
    
    -   That's great, make sure to announce it somewhere so we know when it comes out :D. Or maybe link the git repo that you are using for this.

-   Q1: What is used to measure the complexity of a LISP file, from your point of view? The nesting level per chance?

    -   indentation is good enough to apply in general. Even  lisp gets formatted in a standard way. Probably you can come up with a  more specific and precise way, but indentation is a really rough metrics to give you a general idea. So take with a pinch of salt, but exploit to find weird things.
    
    -   OK, thanks for the response.

-   Copied Q&A from IRC:

    -   How did you summon, resize and dismiss that window so seamlessly?
    
        -   org-roam and C-x0
        
            -   How did you resize it from 2/3 to 1/3 of the frame?
            
                -   golden-ratio-mode from golden-ratio
    
    -   Have you considered doing this analysis by function instead than by file?
    
        -   I did not have chance yet to integrate that, but the theory is described in Adam's 2nd book: Software Design -Rays


## Notes

-   Book by Adam Tornhill "Your Code as a Crime Scene": <https://www.adamtornhillem.com/articles/crimescene/codeascrimescene.htm>

-   <https://github.com/adamtornhill/code-maat>

-   Beautiful circles diagram.

-   especially for big projects with many collaborators the codebase may become less transparent

-   hotspots: files that have had many changes based on git history; likely sources of bugs

-   Complexities of a file are measured in terms of the indentation, at least in the case of Java.

-   "If a lot of lines are deleted, that's usually a good sign. If a lot of lines are added, it's a sign of technological debt"

-   another beautiful diagram (big circle with files on periphery, linked together with curved lines) showing associations between changes in files: when this file gets changed, it usually means that this other file is also changed

-   <https://ag91.github.io/blog/>


<a id="pad25"></a>

# [25: Zen Monk Alain M. Lafon: Traverse complex JSON structures with live feedback](https://emacsconf.org/2020/schedule/25)

-   Actual start and end time (EST): Start: 2020-11-29T10.57.19; End: 2020-11-29T11.07.08


## Questions

-   Q4: Any plans for counsel-yq and/or -xq? ;-)

    -   counsel-jq currently just shells out to jq. Adding tools build on top of jq (at least yq is afaik) would be very easy. We could employ a strategy pattern to find the right tool based on the current major-mode with a configurable fallback. Here's the place where the shellout happens: <https://github.com/200ok-ch/counsel-jq/blob/master/counsel-jq.el#L23>
    
    -   Would you be interested in making a PR for that?(;

-   Q3: Why repository\_url did not autocomplete in addition to the result (I know that it is ivy thing but possible to configure?)

    -   There's no autocompletion for the search query, but that would be a great addition. That would theoretically be possibe by employing jq to look ahead in the current tree and providing options for autocomplete. I'm not certain if Ivy does have autocomplete for search queries, though.
    
    -   If somebody has more knowledge on that and would like to ping me up or provide a (draft) PR, I'd be happy to help out in that endeavour!

-   Q2: is it difficult to provide autocompletion for the json query in the minibuffer?+1

    -   Good question. I'd be curious, too. It's the same question as Q2 where I went into a possibe scenario.

-   Q1: Is it possible to search in arbitrary deep objects? E.g., an AST represented in JSON.

    -   counsel-jq uses jq under the hood, so all queries that are valid queries in jq should be valid in jq. Hence, I'm inclined to say 'yes'(;


## Notes

-   200ok GmbH (<https://200ok.ch>)

-   Play Emacs like an instrument: <https://www.youtube.com/watch?v=gfZDwYeBlO4>

-   jq: <https://stedolan.github.io/jq/>

-   ivy supports dynamic sources. So does helm I guess.

-   counsel-jq: <https://github.com/200ok-ch/counsel-jq>

-   organice: <https://github.com/200ok-ch/organice>

-   Entire presentation inside Emacs, with a count down reminder.


<a id="pad39"></a>

# [39: Richard Stallman: NonGNU ELPA](https://emacsconf.org/2020/schedule/39)

-   Actual start and end time (EST): Start: 2020-11-29T11.09.04 ; Q&A: 2020-11-29T11.15.59; End: 2020-11-29T12.04.31


## Questions  (speaker can answer in any order or choose which ones to respond to)

-   Lunch break is coming up - it's okay to continue this conversation in the pad or IRC if you like (or continue, if you like)

    -   Okay! Wrapping up, thank you so much for live questions and answers

-   Q30: Would you mind sharing your Emacs configuration files?

    -   RMS: Configuration files are personal and will not be shared.

-   Q29: Have you ever looked into magit?

    -   RMS: No, but I might when it gets merged into Emacs.
    
    -   RMS mentioned he heard it's being worked on and it indeed is, tarsius wrote about the progress on that on emacs-devel some time ago.

-   Q28: Are there any more interesting projects you have in mind over and above NonGNU ELPA and look for people to contribute?

-   Q27: Is interfacing with non-free hardware enablement libraries like OpenGL or Vulkan with free code considered a "big compromise" ? (those libraries are for hardware accelerated graphics, if you aren't familiar)

-   Q26: How often do you personally use Emacs?

    -   Most of the day. Occasionally uses libre office and media players. Occasionally even SSH into a machine that runs Emacs on it.
    
    -   Read PDF files a lot. Would be nice to read and edit them in Emacs.
    
    -   (ann: pdf-tools might help.)
    
    -   Uses Xournal ( <http://xournal.sourceforge.net/> ) to annotate PDFs.

-   Q25: What is your opinion on higher education, especially given the current situation with COVID-19 where students are required to use non-free software to comply with their courses?

    -   He'd resist. However, he admits that he is in a position where he can resist, especially as a Free Software advocator.
    
    -   <https://www.gnu.org/philosophy/saying-no-even-once.html>
    
    -   However, there are a lot of points in-between saying "no" all the time and never saying "no" at all. You can still advocate Free Software and state your reluctance.
    
    -   exactly as a student that is tho only one in the department that uses GNU/Linux, if something doesn't work its my fault for using fedora (even when windows install doesnt work either) and i am on my own.

-   Q24: Is there any plan to moving more packages from core emacs into ELPA? Would you be opposed to it? For example: newsticker, libraries with niche appeal.

-   Q23: How do you see the future of GNU Emacs ? (btw, thank you !)

    -   RMS: I don't see the future.
    
    -   "From past experiences, there will be challenges."

-   Q22: If you knew that you would get hit by a bus tomorrow, say because of a fortune-teller, what would you leave behind in terms of advice for stewardship of Emacs and its future?

    -   Focus on keeping the community strong in defending freedom.
    
    -   If given the choice to have more people developing the software or defending the software, choose the latter.
    
    -   Guard your soul carefully. :P
    
    -   (The question could be rephrased with, say a brain tumor or something. Not to be morbid! just wondering if you had such thoughts. about guidance
    
    -   Or even just "what do you want your legacy to be defined as?"

-   Q21: Which are your preferred packages that you usually use?

-   Q20: What tools from pre-UNIX days do you miss?

    -   DDT as login shell (!)  (<- didn't he say gdb? don't think so. gdb is not pre-UNIX as it's GNU) NO.   DDT was (I think) a TOPS20 thing.
    
        -   What is DDT?  Dynamic Debugging Tool. <https://en.wikipedia.org/wiki/Dynamic_debugging_technique> (I guess)  <https://www.livingcomputers.org/UI/UserDocs/TOPS-20-v7-1/3_TOPS-20_DDT_(Debugger)>\_Manual.pdf

-   Q19: Magic wand time: what would you change about free-software? (aside "yay, we won")  [ETA: magic wand="make a wish about what you want to see happen, have happended differently, etc."]

    -   Don't give up!  20yrs is nothing!  We'll get 'em yet.💪
    
    -   What is Magic wand time? Nah, if you can use the magic to change anything
    
    -   Show everyone why most software needs to be copylefted, so that our community does not need to use software produced by proprietary software developers.

-   Q18: What do you recommend to a recent graduate who wants to get his first job but can't find one that deals with free-software and every job or interview he gets it's non-free software related?

    -   Very sad thing. I would get a different kind of job. I would live cheaply (more flexibility).

-   Q17: You've been a very important part of the Free Software movement, some argue the most important part. I very much appreciate that! Thank you. I think it's necessary to encourage more diversity within Emacs, however, that's difficult to do with the instances of sexual harassment that have come out. Are you or do you plan to work on addressing those situations and preventing further situations going forward?

    -   Not going to be answered. (Everyone, please also remember CoC)
    
    -   I will forgive them if they stop bullying.
    
    -   Emacs is being extended in Emacs Lisp, and implementing something else will be hard to nearly impossible, though nice.
    
        -   Note from RMS: "If someone who has condemned me unjustly takes it back, that will make it safe for me to empathize with any feelings of hurt that pers might have felt as a result of the misunderstanding and I will be very glad to show compassion."

-   Q16: How is the current state of the work in progress pagure git repository? Is it going to have the main Emacs repository on it?

    -   That's more of an FSF project (the FSF forge project).  There is ongoing work on it by the FSF tech team. Also agreement to possibly run another VM of the forge software for the GNU project.

-   Q14: Which is your favorite programming language ? if lisp, which variant?

    -   Don't exactly have a favourite variant.
    
    -   Emacs-Lisp was originally used in an environment with only a .5MB user memory environment. That also contributed to the design of elisp.

-   Q13: Is it ok to use the AGPL for Emacs packages?

    -   Yes.

-   Q12: Won't the non-GNU ELPA link to non-free sites like GitHub? This does: <https://elpa.gnu.org/nongnu/caml.html>

    -   Mistake to talk about a non-free site. A site is not a program. Programs
    
    -   It also depends on whether the JavaScript is non-free.
    
    -   see <https://www.gnu.org/philosophy/free-sw.en.html> for a description of what Free Software is.
    
    -   Same for GNU ELPA <https://elpa.gnu.org/packages/company.html>

-   Q11: Who gets to make the final decision regarding NonGNU ELPA? Is this a community decision or something that you get the last word on?

    -   The Emacs maintainers will be in charge of this.

-   Q10: Which distro of GNU/Linux do you use? guix? or something else?

    -   Trisquel <https://trisquel.info/> <https://en.wikipedia.org/wiki/Trisquel>

-   Q9: Are there any plans to implement security considerations in NonGNU Elpa? Required code signing or other?

    -   Probably should. Emacs maintainers verifying can take care of the security. With automatic copying, we'll need to make sure we're fetching the packages securely

-   Q8: Do you / have you used Vi(m) or evil mode?

    -   No.

-   Q7: When you wrote that you could add a package to non-GNU ELPA, are you implying that you would add packages with or without package maintainers knowledge?

    -   Yes. Of course! The packages are free software. Everyone is entitled to redistribute them. That's the idea behind free software.
    
    -   The idea, that packages in a package archives must only be mirrors contradicts(?) the idea of free software.
    
    -   If a package is being maintained by developers cooperating with NonGNU ELPA, then they're (the NonELPA maintainers) are fine with it, as there is enough to do.

-   Q6: Why do you insist on using 'per' and 'pers' when it's clear the LBGTQIA+ community is generally not happy with that language?

    -   not happy with using "they" as singular, causes gratuitous confusion
    
    -   do not accept the demands of other people re: changing my country grammar
    
    -   stallman.org/articles/genderneutrality.html - not a GNU Project policy, personal ideas on the subject
    
    -   <https://stallman.org/articles/genderless-pronouns.html> seems to be the correct link
    
    -   If you feel offended: contact RMS privately and explain your reasons

-   Q5: Any thoughts of packages being added as <https://en.wikipedia.org/wiki/Post_open_source> (a school of thought discarding licenses altogether) into ELPA ?

    -   Not familiar with the URL, unlikely to have much in common. Disregarding licenses - basically asking to lose. Not going to disregard the question of whether the software we recommend to people is free software or not. That's basically blindfolding yourself to the legal issues. If you want to contribute to the free world, put free licenses on your code
    
        -   <https://gnu.org/licenses>
        
        -   <https://www.gnu.org/licenses/license-recommendations.html>
        
        -   <https://www.gnu.org/licenses/license-list.en.html>

-   Q4: Is it possible to work with the MELPA team to integrate that into Emacs in a better way?

    -   No. The goal doesn't make sense. MELPA, the way it's done, doesn't belong within Emacs. (Copyright assignments unfeasible). Could MELPA be merged with non-GNU ELPA? MELPA doesn't modify packages, puts packages in with only a little bit of checking. There are a lot of packages in MELPA that we'd like to get into non-GNU ELPA. They've got to be looked at one by one. If MELPA contributors want to get involved, that would be great. Haven't tried asking them, still getting things set up.

-   Q3: I don't quite get the benefits of a non-GNU ELPA with respect to other archives such as MELPA. Can you please give use some more details on what you have in mind? Are you seeking for control?

    -   I hope that people now see the benefits.

-   Q2: Does nonGNU ELPA already exist? Or is this a sort of "plan" for the future?

    -   In between. The creation of it has started. There's an archive and you can download packages. There's a repository to put it in. It's not supposed to be like ELPA where there's one repo for everything. Some packages will make an arrangement with the developers who will do things as things should be done, and their code will be copied over automatically (or manually with verification). In other cases, we'll need to have our own repo for particular packages. Still working out the procedures, how to make the arrangements with developers, etc.

-   Q1: What is an example of a package currently in a non-ELPA repo that does not work well with Emacs? Since integration with Emacs is described as a problem.

    -   s.el - that made me aware that there's an issue here. Beautifully written package, very useful for people. There's just one thing wrong with it - it gobbled up the namespace of symbols starting with s-. I was shocked to discover that someone had used such a short prefix without coordinating. Any attempt to use s- for anything else = problem. New symbol renaming feature - the idea is that you rename that file to something else, and then you define symbol renaming to run the same code without interfering with global namespace. &#x2026; We can put packages in non-GNU ELPA and make changes to them to help them fit in.


## Notes

-   ELPA was created to make it possible to release Emacs packages independently of Emacs releases.

-   Package archives in general lead to a boost of package development/generation. However, those packages were created without notifying the GNU Emacs team/GNU ELPA managers.

-   NonGNU ELPA will not require copyright assignments, but must be free (as in freedom) software.

-   GNU ELPA is one big git repository, and giving someone access grants them access to everything.

-   Note from RMS: "If someone who has condemned me unjustly takes it back, that will make it safe for me to empathize with any feelings of hurt that pers might have felt as a result of the misunderstanding and I will be very glad to show compassion."


<a id="org70adcc6"></a>

# Lunch break

-   2020-11-29T12.06.04 2020-11-29T13.05.00


<a id="pad26"></a>

# [26: Pierce Wang: Emacs as a Highschooler: How It Changed My Life](https://emacsconf.org/2020/schedule/26)

-   Actual start and end time (EST): Start: 2020-11-29T13.06.20; Q&A: 2020-11-29T13.16.52; End: 2020-11-29T13.21.51


## Questions

-   Q6: How would you introduce other classmates to emacs? Meaning what's the "gateway" drug to emacs?+1+1+1

    -   Would probably start with doom or spacemacs
    
    -   try to find their reason for using emacs

-   Q5: What made you use Vim in the first place? Were you looking for a note-taking system in plain text (such as Markdown), or were you using it for programming?+1+1

    -   Used vim first time mainly for programming not for Markdown.

-   Q4: I tend to think that life in school-age is somehow simple to organize since categories are easy to distinguish (years/classes, hobbies, &#x2026;) in contrast to business life (many projects in parallel with many touch-points in-between them). From your point of view: do I have wrong memories on my time in school or did school change that much?

    -   School makes it easier to have a structured system.

-   Q3: Assuming you keep real time notes during your lessons how do you manage to keep up with the lecturer's speed. I can write latex fragments pretty fast but I am not yet at the point that I can keep up with them. What are the tricks/snippets you use? Oh and do you have a git repo with your Emacs dots that we can see?

    -   Types pretty fast (~110 wpm); for math/science uses cdlatex, yasnippet expansion, and latex fragments
    
    -   Emacs config! <https://piercegwang.github.io/emacsd/init>

-   Q2: What do your friends think :) ? (Do you collaborate with your friends?)

    -   Overwhelmed them by the positive experience at first :). Now that the configuration is somewhat stable Emacs doesn't come up as often in discussions, though. [someone can probably come up with a better summary of this answer]
    
    -   The general concensus is that it's an amazing piece of software, but they think it's too complicated for them to use. I think they also still have PTSD from the initial days when I was talking about Emacs **all** the time (whooops)

-   Q1: Do you use Emacs for school assignments?

    -   answered in talk: yes, org-mode, export to latex -> PDF
    
    -   one org-mode template file with latex-fragments that is used for exporting


## Notes

-   Discovered Emacs from: <https://www.youtube.com/watch?v=JWD1Fpdd4Pc>

-   Tried various note taking tools - settled on Org mode in Emacs.

-   YouTube channel: <https://www.youtube.com/user/eywang/>

-   Emacs config: <https://piercegwang.github.io/emacsd/init>


<a id="pad27"></a>

# [27: Vasilij "wasamasa" Schneidermann: State of Retro Gaming in Emacs](https://emacsconf.org/2020/schedule/27)

-   Actual start and end time (EST): Start 2020-11-29T13.23.01; End: 2020-11-29T13.33.00
-   Alternative stream for extended talk: <http://live.emacsconf.org/alt.html> or <http://live0.emacsconf.org/alt.webm>


## Questions

-   Q5: Do you think would be possible to write some compiler in order to write chip-8 games on elisp?

    -   It could be possible if you restrict yourself to some very limited elisp subset or lispy assembler. For the latter, here's some projects to draw inspiration from:
    
        -   <https://ahefner.livejournal.com/20528.html>
        
        -   <http://www.dustmop.io/blog/2019/09/10/what-remains-technical-breakdown/> -> <http://www.pawfal.org/dave/blog/2016/05/a-6502-lisp-compiler-sprite-animation-and-the-nesfamicom/>
        
        -   <https://en.wikipedia.org/wiki/Game_Oriented_Assembly_Lisp> -> <https://blog.jakspeedruns.com/opengoal-project-update-september-2020/>

-   Q4:  What's the biggest perf bottleneck for your emulator? does it spend time executing your lisp or something else in the Emacs infrastructure (eg redisplay)?

    -   Redisplay was super slow, it's like 3-4x as slow as executing the CPU cycles
    
        -   Okay that's the reason why Gccemacs does not help :)

-   Q3: do you think that you make our tiny console based in the chip ATMega like Arduboy?

    -   I'm sorry, I didn't quite understand the question, could you please clarify it? I'm not exactly a hardware person, might have to defer it to someone else.
    
    -   I've looked at Arduboy and I believe the DEFCON CHIP-8 Badge is the closest to this: <https://hackaday.io/project/19121-andxor-dc25-badge/log/53223-chip8-schip-game-emulation>

-   Q2: Any tutorial to start? I want to make my game now, no, for chip8

    -   I'm not aware of tutorials, but there's CHIP-8 resources online. You can of course study the assembly of existing games, that's how I figured out the tricks that broke my emulator :>

-   Q1: How did you manage to present a game engine without showing any game? :-) Show us!!

    -   See the alt stream, it has several demos not shown due to time constraints


## Notes

-   Slides available at <https://depp.brause.cc/talks/emacsconf-2020/>

-   Repository available at <https://depp.brause.cc/chip8.el/>

-   More on the alt-stream: <https://live.emacsconf.org/alt.html>


<a id="pad28"></a>

# [28: Erik Elmshauser and Corwin Brust: Welcome To The Dungeon](https://emacscon.org/2020/schedule/28)

-   Actual start and end time (EST): Start 2020-11-29T13.34.52


## Questions

-   Q5: Which software did you use for your presentation

    -   Corwin: Everything you saw was OBS, Emacs or the desktop wallpaper engine from steam

-   Q4: Have you played around with generating SVGs programatically in Elisp? Sorry if I missed that! missed the intro

-   Q3: could you talk about getting the project into savannah/gnu?

    -   Not sure whether this is still canonical: <https://git.savannah.nongnu.org/cgit/dungeon.git/>

-   Q2: Could you explain more of what the game is. It would help us comprehend this better. +1 Could you link the handbook. Would be interested in giving a read, I love RPGs.

    -   If you send me your thoughts on the most important bits to finish I will :)
    
    -   like RPG's but without the role-playing. Always 8 characters that can be divided between the players

-   Q1: I'd like to see a demo as well! :) what does it look like, what can it do?

-   (please add your question on the top of the list)


## Notes

-   <https://github.com/dungeon-mode/game>


<a id="pad29"></a>

# [29: Erik Elmshauser and Corwin Brust: Pathing of Least Resistance](https://emacsconf.org/2020/schedule/29)

*This time slot was combined with the previous.*   


<a id="pad30"></a>

# [30: Gabriele Bozzola (@sbozzolo) : A tour of vterm](https://emacsconf.org/2020/schedule/30)


## Questions

-   Q5: Does/will this work with 'emacs -nw'?

    -   yes, it does

-   Q4: Thats a nice looking prompt, do you have it on a git repo we could see, or something of that manner? Thanks, I use bash right now so I didn't know it was the default on the others.

    It is not the default, but it is available easily with oh-my-zsh or similar on fish. I think the prompt is this:
    <https://github.com/sindresorhus/pure>

-   Q3: Is there a plan to avoid the initial compilation step?

    Not any time soon. You will have to compile vterm the first time you start it.

-   Q2: What are differences between Eshell and Vterm?

    -   performance
    
    -   Vterm is like xterm but in Emacs, eshell is like bash but in Emacs.
    
    -   <https://github.com/akermu/emacs-libvterm#given-that-eshell-shell-and-ansi-term-are-emacs-built-in-why-should-i-use-vterm>

-   Q1: could you put your testing scripts up somewhere?

    -   256colors: <https://pastebin.com/j6HF5q8T>
    
    -   title: <https://pastebin.com/SByKdJM2>
    
    -   I cannot pastebin the 1MB of data, I pasted a sample of it: <https://pastebin.com/n1T3aUff>


## Notes

-   <https://github.com/akermu/emacs-libvterm>


<a id="pad31"></a>

# [31: Grant Shangreaux: Lakota Language and Emacs](https://emacsconf.org/2020/schedule/31)


## Questions

-   Q4: Did you write the company backend to complete on Lakota words?

    -   With a Lakota dictionary file, one could probably leverage other company methods for completion.
    
    -   seems to be company-dabbrev, it happens automatically when typing in org-mode at least. unfortunately the only digital Lakota dictionary I'm aware of is non-free, so I'm not sure what to do about that.
    
        -   yeah, I'm not sure, but the dictionary files needed would really just be word-lists, so maybe there is a way to find or produce something of this sort.

-   Q3: Why did you decide on e.g. a' for á? In my country's input method (which is Dutch, and in french, german, etc.) the default is to put the accent first, so 'e -> é.

    -   for me, this was my first experience with it and it made more sense in my head to have the modifier come after. its possible i read about postfix notation in a tutorial i found (and lost) that demonstrated Quail input modes. The X11 input has it as a prefix, so I may change it in the future. I'd like to consult with other Lakota speakers and tribal members, however, as it seems worthwhile trying to get consensus from native speakers on usage.

-   Q2:Can you give us a demo of you typing in either Lakota input method?+1+1

-   Q1: Advantages of using Emacs Input Methods over something like xcompose?

    -   → Compose <https://wiki.archlinux.org/index.php/Xorg/Keyboard_configuration#Configuring_compose_key>
    
    -   ah yes, i found something about this when making the X layout, but it was not immediately apparent. Emacs was easier for me to inspect and learn about than X, easier  to iterate on as i was learning how it all worked. Emacs can re-eval the layout definition and give live feedback, while X required a restart to try different things. Emacs is also cross platform, so anyone can easily install this. also, sharing an X config seemed more difficult to me, I don't know how to tell someone to install it properly :(


## Notes

-   Quail

-   <https://git.sr.ht/~shoshin/lakota-input.git>


<a id="pad32"></a>

# [32: Eric Abrahamsen: Object Oriented Code in the Gnus Newsreader](https://emacsconf.org/2020/schedule/32)


## Questions

-   Q3: Have you done any other projects using EIEIO and/or defstruct?

    -   "Right, EBDB is super deep into EIEIO, and was kind of written as a project for learning it, and the new gnus-search library is a more restrained usage.  The search engines are defclasses, and much of the code is shared, which works quite well."

-   Q2: Is there may activity on maintenance of gnus today? (and is Lars involved/aware of this work?)

    -   "Yes, there's still development going on. I don't think Lars is very focused on Gnus right now, but I run all changes by him first.  He fixes bugs, but as far as I know, I'm the only one adding features right now, which is a terrifying thought."

-   Q1: How much of this 90's funny code :) can be replaced and how much will have to stay forever?

    -   Eventually I think we can get most of it out of there. I was
    
    -   happy to be able to replace obarrays-as-hashtables with real
    
    -   hashtables, though that was a very painful process


## Notes

-   Famous last words:  "Sometimes the only thing that's worse than not knowing why something doesn't work is not knowing why it does work."


<a id="pad33"></a>

# [33: Fermin MF: Maxima a computer algebra system in Emacs](https://emacsconf.org/2020/schedule/33)


## Questions

-   Q9 Is it is possible to include maxima in org files similar to jupyter notebooks? (Does ob-maxima have support for the :results graphics header argument of org-src blocks?)

-   Q8 Are you planning to upstream your package into Maxima? (would be nice :)

-   Q7 In which University do you start to use Maxima?

-   Q6. Is there support for images in maxima-mode?

-   Q5: Is Maxima's  syntax a strict infix lisp syntax or are there exceptions and special cases? Yes I mean Maxima itself.

-   Q4. Is maxima easy to get into in your opinion? (has its quirks though!, mailing list is usually helpful)

-   Q3: Do you plan to amend ob-maxima to support named session for maxima code blocks in org mode (e.g. begin\_src maxima :session  **my-maxima**)? (the current implementation supports exactly onesession named **maxima**)

-   Q2: how does maxima compare to sagemath in emacs? does maxima have more support because it is written in common lisp whereas sage math is written in python?

-   Q1: So I am an avid octave user right now (had a matlab lesson in uni and so I knew the basics and it was easy to get into), what would you say are the advantages of Maxima over Octave as from my understanding they are pretty similar. I would be interested in trying it out but I am not sure if its worth it compared to Octave. (Octave is a matlab "clone", not meant for analytic calculations, more matrix multiplications etc.)


<a id="pad34"></a>

# [34: Matthew Zeng: Extend Emacs to Modern GUI Applications with EAF](https://emacsconf.org/2020/schedule/34)

-   Actual start and end time (EST): Start 2020-11-29T16:05; Stop 2020-11-29T16:28


## Questions

-   Q9: Do you think that this tecnology could to be on core of Emacs any time? or fork of Emacs?

    -   Not yet and I don't know if it ever will, since EAF uses many other dependencies that one needs to install themselves (see README); and I don't think all of them is GPL (though using open source licenses)

-   Q8: I use pdf-tools currently for my pdfs inside Emacs, would you consider this a better alternative to that and if so why? Although I am definitely trying it because the browser looks incredible, possibly the best implementation of an Emacs browser I have seen, I would love to hear your opinion on the pdfs compared to something like pdf-tools.

    -   PDF-tools is great, it would be an awesome option if you can't run EAF on your machine. However EAF PDF Viewer is just **a lot faster and smoother** as it uses PyMuPDF as its backend.
    
        -   Oh, thats great actually, I have noticed it being a little choppy at times, I am excited to try EAF in general because it looks awesome and if its faster than pdf-tools I will probably also switch to it for my pdfs. Thanks a lot for the talk, one of my favourites in this EmacsConf, it gave me a lot of great tools to try inside Emacs!!
        
        -   Thank you!!!
    
    -   Also because pdf-tools is much older than EAF, it had more attention and more people working on it, so there are definitely more features than the current EAF

-   Q7: Can you use the PDF viewer as a viewer for LaTeX files, with reverse search support with e.g. AucTeX?

    -   You could do that with some simple elisp functions, and EAF PDF Viewer now updates itself automatically whenever there is a change to the file
    
    -   Reverse search is currently not available, we need more people to help us work on it! :-)

-   Q6: What javascript engine is the web browser in EAF using? Also, what web browser engine is it using?

    -   QtWebEngine,. (from the Qt Wiki: )
    
        -   Qt WebEngine uses code from the Chromium project. However, it is not containing all of Chrome/Chromium;
        
        -   Auxiliary services that talk to Google platforms are stripped out (nice)
        
        -   The codebase is modularized to allow use of system libraries like OpenSSL
        
        -   Binary files are stripped out

-   Q5: Does the web rendering happen in a subprocess, or can loading a big page cause emacs to lag?

    -   Not at all! And that's one of the biggest advantage of the EAF project, it utilizes all the powerful Python features, like multithreading.

-   Q4: Do you have control over the javascript that  runs on these pages? Also is there a blocklist feature? (True ad blocking might be impossible, I understand)

    -   As my talk just (or will be shortly) mentioned, you can disable javascript altogether. So far there isn't a blocklist implemented, but I don't see a reason not to be able to implement this feature in the near future. EAF itself uses Javascript (free code) to implement some browser features (like the Vimium binding), so turning off Javascript will make the feature stop working as well.

-   Q3: (Feel free to ignore this one if it is off-topic) How big is free software movement in China? Is there any organisation like FSF there?

    -   Very recent years there are A LOT of open source movement in China, however not free software strictly speaking;
    
    -   There are a lot of open source clubs in the chinese unversities now that people actually starting to get interested about open source in general, that's a huge improvement than decades ago i'd say. There are still many places to improve.
    
    -   Although not Free Software Foundation, literally this year the first ever open source foundation is established in China, called OpenAtom Foundation: <https://www.openatom.org/#/> (in chinese)

-   Q2: Is there anyway to implement EAF without the reparenting behavior from X11?

    -   That's one of the challenges right now to get EAF working on other platforms. We're always looking for people to help out.
    
        -   Are there any ideas on this at all? I can try to help out but don't know what's even been tried (and perhaps has already been ruled out)
        
            -   So EAF is currently using \`QWindow::setParent \`, not Xreparent, so it in theory should be able to support at least Windows (iirc it provided API for setParent function to interact with)
            
            -   However QWindow::setParent doesn't work on native wayland, you can get more context in here: <https://github.com/manateelazycat/emacs-application-framework/issues/449>

-   Q1: Have you experimented with using Hy (aka Hylang, a Lisp that compiles to/runs in Python) for EAF, to avoid having to write "real Python"?

    -   Not yet! Will have a look into it later :-)


## Notes

-   <https://github.com/manateelazycat/emacs-application-framework>


<a id="pad35"></a>

# [35: Zachary Kanfer: WAVEing at Repetitive Repetitive Repetitive Music](https://emacsconf.org/2020/schedule/35)

-   Actual start and end time (EST): Start 2020-11-29T16:29; Stop 2020-11-29T16:46


## Questions (note that we don't have audio out from Zachary's computer in BigBlueButton, so any music demos will need to wait for a recorded video)

-   Q9 : Any MIDI mapping possibilities?  (Sorry Q8)

-   Q8: What were some of the challenges with writing a special-mode for Emacs? I'm interested in getting into this in the future, but I'm not really sure where to start.

    -   That'd be awesome, thanks! Will do
    
    -   I used define-derived-mode (<https://www.gnu.org/software/emacs/manual/html_node/elisp/Derived-Modes.html>) to make this mode. It's really useful! For more information, I recorded a talk about making major modes (<https://www.youtube.com/watch?v=gk39mp8Vy4M>) a few years ago, at an EmacsNYC (<https://emacsnyc.org/>) meeting.

-   Q6: Do you think would be possible to add a set of recorded sounds in order to use those?

    -   Yes! Part of zmusic is tooling to make wave files, so it should be possible to slice-and-dice input data, and output valid wave files.

-   Q7: have you written any actual songs (in RRRM/WAVEing)?   Can you play one ?

-   Q5: Are there any open source musical instrument sample libraries that could be used? E.g. "play A 440 on Piano sample 1" to provide better quality notes than built-in tones

    -   Experimentation would be fun. However, the nice part about Emacs is that it doesn't have any external dependencies, you only need a way to play WAVes.

-   Q4: What is your musical background? Do you play any instruments?

    -   Random instruments, started with recorder, played cello for a long time, now playing guitar.

-   Q3: Any chance for an Emacs tracker/mod player? (plays several samples arranged in the same top-down fashion with effects applied to them for chiptune and keygen music)

-   Q2: Will you play us another song? (RIP ears — who needs 'em, this is awesome! it is!)

    -   UPDATE: can confirm, it was easy to play a song myself :-)  Very nice!
    
    -   However git clone <https://hg.sr.ht/~zck/zmusic> didn't work, I wonder if I'm doing it wrong
    
        -   Had to browse to <https://hg.sr.ht/~zck/zmusic/browse/zmusic.el> and copy/paste.
        
        -   It's mercurial! (I have Opinions about version control systems). Try \`hg clone\` instead, or copy/paste from the link directly.
        
        -   BAM! hg clone works fine
        
            -   Hooray!

-   Q1: Why do you go top-to-bottom for time progression and left-to-right for low-to-high in stead of doing it pivoted? (e.g. higher is higher tone, left-to-right is time progression). This is awesome by the way!(+1)

    -   The initial app (the inspiration) worked this way. It is definitely something worth looking into.


## Notes

-   notes, references, and links at <https://zck.me/emacsconf2020>


<a id="pad42"></a>

# Closing remarks (Sunday)

-   Start: 2020-11-29T16:48; Q&A: ~2020-11-29T17:05; Stop: 2020-11-29T17:24.

> Emacs is very, very complicated.  And using computers is hard.  With Emacs we have an ideal opportunity to learn from our errors. To take on hard work with diverse groups.  And to effect lasting solutions.  To make Emacs, and thereby any word-or-software-thing, in practically any human and spoken language, easier to learn and to use.  Forever. Life doesn't come with warning labels or margin notes.  We have a blank map and an uncertain number of batteries for the torch. But there's a light in the darkness.  It's freedom.  It's the idea of giving to people something that cannot be taken away.

&#x2013;Corwin Brust, as read by Leo Vivier


## Stats:

-   16 talks today, 37 total

-   Peak of 320 viewers of /main.webm and 15 viewers of /main-480p.webm (last year: ~270)

-   126 people on the Etherpad


## Next steps:

-   Emacs meetups - there are a few linked to in the Emacs News Highlights talk <https://github.com/sachac/emacsconf-2020-emacs-news-highlights>

-   Collaborative pad: <https://etherpad.wikimedia.org/p/emacsconf-2020>

    -   Meta-discussion at the end - add things that worked well, things that can be even better
    
    -   We'll make a copy and post it to <https://emacsconf.org/2020>

-   We'll be posting videos and other resources to <https://emacsconf.org/2020> over the next few weeks.

-   Follow-up questions

    -   If you spoke at the conference, please feel free to add follow-up information to your talk's page or contact an organizer to add things for you
    
    -   If you have questions, check the individual talk page for follow-up info or search for the speaker elsewhere

-   Mailing list for updates: <https://lists.gnu.org/mailman/listinfo/emacsconf-discuss>


## Thanks again

-   the Free Software Foundation, especially the tech team, for support and sharing their BigBlueButton host

-   Volunteers: bandali, bhavin192, bremner, dto, jcorneli, mplsCorwin, publicvoit, sachac, seabass, zaeph

    -   #emacsconf-accessible - thanks to jcorneli, seabass, dto

-   Thank you to everyone!


## Oops! The stream will be quickly restored so that we can play wasamasa's demo


## Questions

-   Q16: Will you publish the Etherpad as-is, or will you clean it up a little bit, e.g. fix spelling miztekes, grammar bad, identifiy answers to the questions and similar? (That might be time consuming)

-   Q15: Will the Etherpad be archived somewhere on emacsconf.org?

    -   Yes, we'll link to it from emacsconf.org/2020 like last year, and we can copy the sections to the individual talk pages as well

-   Q14: Also, it's bandali's birthday tomorrow! =) - sachac

    -   Happy birthday bandali!! Its not early, for me its already after 12 :D
    
    -   Happy birthday!!

-   Q13: wasamasa's demos will be played after the closing remarks

-   Q12: Congratulations on another emacsconf everybody! - <3 brett

-   Q11: Many people seem to be interested in the video's that will be available later. I've got recordings of the entire conference and the ability to share them now. Do I have permission to do so? Is this OK copyright wise?

    -   The videos are CC By ShareAlike, although it might be nice to have people linking to the emacsconf.org site and video archive so that they can discover the other talks from the previous years, so it might be nice to wait
    
    -   So if I share a folder with the video's including a readme with the licence and a link to emacsconf.org its ok?
    
        -   let's check with bandali, it would be nice to have help getting stuff out =)
        
        -   @OP: The team would welcome help very much. Feel free to contact Amin on bandali@gnu.org
        
        -   I'll do the upload and will post the link in #emacsconf-org so you can see if its to everyone's liking. Also i'm happy to help with the cutting process.
    
    -   Most of last year's conference is also there

-   Q10: Favorite moments/talks from this the past two days?

    -   Aside from all the awesomeness of the talks, I really appreciated how y'all kept things pretty friendly and respectful and kind. =) - sachac

-   Q9: It's not a question but Sacha Chua, I am one of the people that created Emacs Planet in Spanish. Could you visit it and include in your news? :-)

    -   oh, <http://planet.emacs-es.org/> is down right now, do I have the right URL? it's only temporally -
    
    -   Sure, I can pull in the RSS . Thanks, the next week will works.

-   Q8:  Thanks a lot for eveything these last two days!! This conference was so epic, I loved it. <del>+</del>

-   Q7: Sacha, have you thought of organizing the whole library of Emacs News, so people could find things by category/topic (other than searching across all the web pages)?

    -   <http://github.com/sachac/emacs-news> - happy parsing

-   Q6: Great conference thank you very much. The schedule of the emacsconf this year is not so APAC-friendly. I wonder whether there is any plan to accommodate the APAC timezone in some way?

    -   Sure, want to organize one? =) - sachac
    
        -   I'll help (orgg) (thanks I'll get in touch - dragestil)

-   Q5: Why Corwin Brust use Windows?

    -   It's currently a necessity.

-   Q4: Are there any tools that you wish existed in Emacs that would help with organizing these confs?

    -   dungeon-mode as colaboration space?  meet there and build groups?  let emacs be THE GAME?+1 +1
    
    -   answer from random user: etherpad org-mode! Live-editing an org-file together!+1 (please somebody work on this project so that we get a good solution here!)
    
        -   Well, yeah, but that's pie-in-the-sky&#x2026;  Maybe next decade?  haha :)
        
            -   There's already a project that has started some work on etherpad+Emacs: <https://github.com/zzkt/ethermacs>, but it's currently on hiatus and doesn't support collaborative editing. Maybe a challenge for someone who wants to tinker with Emacs Lisp? :)
            
                -   Wow, that's great!
        
        -   Look at crdt.el — it is very close to ready. Ray (RSP) and I were using it for some of our work together on ob-servant.  Qiantan is responsive to bug reports, and has support for Org mode as a priority
        
            -   We weren't quite sure how it might deal with 100+ people, but maybe! (also, ob-servant is a great name =) )
            
                -   Only 100 choose 100 ways to find out :-)&#x2026;
                
                -   But yeah to be clear it definitely wasn't ready for this year. Maybe next year!
                
                    -   On ob-servant, all credit to Ray for the clever name (and 99% of the programming as well!)
                    
                        -   [Also looking forward to seeing crdt.el connect with emacs-tree-sitter — sync the tree!&#x2026;]

-   Q3: Amin, are you wearing a suit too next year?

-   Q2: Where do y'all see Emacs going in the next year?

    -   More awesomeness!

-   Q1: Why is Leo so sexy?  Too Sexy even? I want a Leo Twitch Channel to can see he all days! Bandali isn't bad either!!!!

    -   <https://www.youtube.com/watch?v=P5mtclwloEQ>


<a id="pad-well"></a>

# General Feedback: What went well?


## Pre-recording the talks was a win &#x2026; less chance of failure live.


## I really liked how questions where approached with this Etherpad. I think it is a very smart idea and better than most things I have seen in other kind of conferences. This is very nice and organized. Really excited for tommorow, could only watch the second half of the stream today (looking forward to see the rest when uploaded) but the talks where awesome. Thanks for everything. +1


## "here is a link for mpv" approach to livestreaming is much appreciated +1+1+1+1


## bandali super helpful and responsive with AV issues +1


## the timestamps on all talks in etherpad are very welcome!

-   Sorry, I missed the first few talks to time-stamp :-(

    -   Ah, don't worry. How did you even do that? I saw some $&#x2026; magic?
    
        -   $$tt is mapped to the current second like 2020-11-28T22.43.55 via autokey (Linux)
        
            -   See <https://karl-voit.at/apps-I-am-using/> for "Snippets"
            
            -   Got it👍


## I love having the Etherpad available immediately during and after talks. I know recordings and more are coming out later, but having access to notes, questions, answers and links is amazing!


## The streaming setup is probably the best result I've seen when doing it with free software. Is the source/config available somewhere? Particularly curious about usage of gstreamer/icecast. Would love to see an organizer post-mortem talk/post so others can reproduce and improve on.

-   (See colophon below)


## Karl's Etherpad maintenance tasks during the event (for reference)

-   when a new talk starts:

    -   clear authorship colors by clicking the "strikethrough-eye" in the icon bar
    
    -   add current line number (approx) at the very top of the Pad to ease navigation
    
    -   cut title of upcoming talk and paste it in order to colorize the heading to ease navigation
    
    -   log starting time
    
        -   Karl was using an adapted ISO format like "2020-11-29T20.06.49" and manually corrected it from CET to EST (EST = CET-6hrs)

-   log Q&A start time (if any Q&A)

-   log end time


## We managed to get the alternate stream up and running! I just need to remember that my laptop has a mute microphone shortcut instead of fussing around with muting in both OBS and BigBlueButton&#x2026; - sachac


## Low-resolution stream was appreciated, and running it on live0 worked fine.


## Super-nice to have so many people helping out. zaeph was monitoring audio, calling up speakers (yay emergency contact info), keeping track of the time, checking in people&#x2026; jcorneli, dto, and seabass were describing things in #emacsconf-accessible. - sachac


## HUGE improvements / gains since 2013 :-)  Which was awesome too — the first Emacs Conf!  — but WOW this is a truly international event w/ 100+ participants at any given time.  Amazing work. -Jcorneli


<a id="pad-improve"></a>

# General Feedback: What to improve?


## A few speakers jumped right into their talks without providing enough context. +1+1+1Perhaps the organizers can introduce the topic with a summary?

-   +1: A short introduction on the topic might be helpful. "Hi, I'm <XYZ> and I'm going to talk about <ABC>, a <TYU>".

    -   Added to pre-talk tech check


## why are talks starting ahead of the schedule? what if i want to skip some and come back later? can i count on the schedule being follwed?

-   From conference experience I recommend showing up a talk earlier than planned :>

-   Maybe add "roughly" infront of the very specific time-stamps of the schedule to emphasize its character of not being exactly planned?

    -   Sure, I'll add bold to "Please note that the times on this schedule are a rough approximation, and that the talks might be rearranged or dropped depending on speaker availability.", and move the disclaimer from the bottom of the individual talk pages further up.
    
        -   Since we've had the disclaimer and from my personal experience I know that people likely miss such disclaimers, I do think that "2:18 PM" -> "~2:18 PM" would be more visible.
        
            -   Added ~ =)


## Maybe provide the talk list as an org-file with timestamps? That way we can add it to our agenda :)

-   Sure, you can look at 2020/submissions.org in the git repository you can check out via the instructions at <https://emacsconf.org/edit/>

    -   Oh, wow. Thansk! Completely missed <https://git.emacsconf.org/emacsconf-wiki/tree/2020/submissions.org> . Now I only need to come up with some elisp to change all timestamps into my timezone. :)
    
        -   See above discussion about the approximateness of the times. =) Just tune in when you want, and then check the schedule to see roughly where we are in terms of talk order, maybe? - SC
        
            -   Good point, thanks :)


## Etherpad

-   "Put your questions below, most recent on top" did not work as expected because when a user is pressing RET on the line before the first itemize item, you end up without an itemize line. Speakers were not picking the questions from the bottom.

    -   Speakers probably don't have time to answer everything live, but they can review the pad for unanswered questions after the conference.
    
    -   Example:
    
        -   \*\* Questions
        
            -   Q2: sample text   <&#x2013; people started the first question here despite of three indicators right below, above and in-line
            
            -   Q1: sample text
            
            -   (please add your question on the top of the list)
    
    -   It turned out to work better with the following template - very nice!
    
        -   \*\* Questions
        
            -   Q4:
            
            -   Q3:
            
            -   Q2: sample text
            
            -   Q1: sample text
            
            -   (please add your question on the top of the list)

-   Some questions were missed as subquestions were added with the same format as answers. Maybe we should prefix questions with "Q: " for better identification of questions? +1+1

-   I guess that changes in Etherpad before the current viewport will shift the view slightly. E.g. add 10 lines at the top, and those who view lines ~100 will still look at line ~100, but at the contents of line 90. This probably confuses both moderators and speakers slightly and thus leads to a "small" re-synchronization issue for readers. If we reuse Etherpad next year, it would be great if a) there was an auto-scroll functionality (so that you always stay on the same content) and b) a way to create sections (and fold them in your personal view). It's also easier to jump to the current talk if the sections were indexed.

-   Maybe have an etherpad per talk. That way, colors don't need to get deleted inbetween talks. A "meta" etherpad could contain meta information (like this general feedback) and also a link to the current etherpad. That way, one doesn't need the sections I mentioned above.

-   Unmoderated etherpad worked great until bad faith questions started with RMS. This could have used a moderation process.

    -   I think it generally went well, and I'm glad that speakers and participants were pretty good at being civil and respectful. I think it's okay that people ask off-topic questions, like the way sometimes people were curious about what people used to draw boxes or highlight things on their screen. Even the tougher questions for rms were phrased more politely than they could have otherwise been, so I appreciate the thoughtfulness people put in. We'll make it clear that speakers can answer questions in any order and focus on any questions they like. I'm glad so many people wanted to talk to the speakers, and that the speakers were able to answer so many questions. We can also respectfully ask speakers if they want to be open to all questions, or to focus on just a few. - sachac


## It is a little difficult to keep up with the talks, IRC, and the Etherpad especially with just one monito. Love the Etherpad though.

-   Karl thinks that chatting needs to have a separate place from the Etherpad. So I'd pleadge to keep it that way.

-   Don't disagree, but too many questions were asked on IRC instead of the Etherpad.

    -   IRC can be too hard for speakers to monitor, so maybe we can ask more volunteers to copy questions to the Etherpad. What's a good way to manage this?
    
        -   Maybe use a template like "Q: (from IRC's <username>): &#x2026;.."? That could prevent duplicate questions.
        
            -   I'm convinced that this would help a lot but I don't think that we can "enforce" people to stick to that pattern. Too many people are joining throughout the day and therefore we'd have to remind people all the time (in case the other Q:-examples do not provide enough clues).

-   I gave up trying to monitor all three areas and decided to watch the chat as well as the presentations.


## Diversity

-   What does it mean to be an Emacs user? What do others think about Emacs users? Do they think we're all men and free software zealots? I think it's very important to figure out why more women are not wanting to present at this conference. What is it about our community that's blocking women from presenting at EmacsConf? Let's try to work on that over the year so we can be better prepared for next year's conference.

    -   How many women submitted proposals that were turned down? — this would be an interesting question for a "community" discussion (as below&#x2026;)
    
        -   We managed to not turn down **any** proposals! We squeezed all of them in! Mwahahaha! - sachac
    
    -   Also, the question above should probably be generalized to cover "who participates in discussions about Emacs&#x2026; in any venue?"
    
    -   The initial question was definitely incomplete as any numbers are by themselves useless.  Absolute counts and relative percentages would be more educational.
    
    -   Is something blocking women from presenting?
    
        -   Well, there are probably all sorts of structural issues: disproprotionate effects of COVID-related changes (ex: I'm not going to get a babysitter so that I can work on Emacs things), general life/culture things (ex: I'm the primary caregiver of a young child), so even if the Emacs community is super nice (or at least the parts of it I focus on), it's just tough to make time! =) Anyway, if you know more women who might have something interesting to share, maybe you can keep an eye out for the next call for proposals,  encourage them to submit something, and help figure out how to make time for them to be able to do so? - sachac

-   I was uncomfortable to see people hijacking RMS's talk to ask questions of a personal nature. This doesn't mean questions and concerns about diversity (or sexual harrassment allegations, etc.) shouldn't be addressed! However, a Paparazzi-style confrontation in a Q&A section isn't very professional (unless you're a professional Paparazzi) and I think "call out culture" doesn't actually match the ethos of Emacs. +1+1

    -   The action item that I'd suggest would be to have a "community discussion" section that is done in the form of a round table (maybe before the main conference starts for next time — this time it could be an optional "announced" unconference/breakout session). It might be enough for the organizers to have a public Jitsi call advertised, and invite people to join a conversation they were going to have anyway.  This way, anyone with an interest in "community stuff" will have a chance to make themselves heard (by someone): and the code of conduct could also be discussed or clarified at that time.
    
    -   Disclosure: I am personally VERY interested in "community stuff", and would be happy to contribute to helping such an event! Or if someone wants to follow up with me about this 1-to-1, please feel free! — Joe / jcorneli / joseph.corneli@hyperreal.enterprises
    
        -   Let's start a public video chat conversation around this!  (How to have more on-going user engagement, keep it fun, diverse, etc.)[corwin]. +1
    
    -   Sounds like fun. =) Feel free to put together something like this next time! - sachac
    
        -   Will do! -J


## Music

-   bandali could add the URLs to the pieces of music he was using which was appreciated very much

-   <http://churls.world/casiopeia%20-%20basement%20days/basement-days.html> Casiopeia web interface and metadata created with Emacs


## Maybe <https://github.com/wwmm/pulseeffects> auto gain and compressor can help with the different audio levels of speakers and pre-recorded videos


## Maybe some question moderation since some did not seem to be related to the prior talk.


## I would have liked some structured breaks. I wanted to see as many talks as possible, however I didn't have as much time between talks as I would have liked to take care of my body.

-   We actually had a lunch break this time, yay! =) And most of the talks were prerecorded (usually with a heads-up), so if there's a talk you're less interested in, that's a perfect time to step away. - sachac


<a id="pad-colophon"></a>

# Colophon


## BigBlueButton (thanks to Free Software Foundation)


## gstreamer for streaming


## Icecast for broadcast


## Etherpad for collaborative pad from <https://etherpad.wikimedia.org/>


## Ikiwiki for wiki