diff options
Diffstat (limited to '2025/talks')
36 files changed, 2788 insertions, 0 deletions
diff --git a/2025/talks/authoring.md b/2025/talks/authoring.md new file mode 100644 index 00000000..c5120713 --- /dev/null +++ b/2025/talks/authoring.md @@ -0,0 +1,30 @@ +[[!meta title="How Emacs became my authoring playground—no Lisp required"]] +[[!meta copyright="Copyright © 2025 Uli"]] +[[!inline pages="internal(2025/info/authoring-nav)" raw="yes"]] + +<!-- Initially generated with emacsconf-publish-talk-page and then left alone for manual editing --> +<!-- You can manually edit this file to update the abstract, add links, etc. ---> + + +# How Emacs became my authoring playground—no Lisp required +Uli - Pronunciation: 'u:li, IRC: rhaen, Mastodon: <https://digitalcourage.social/@rhaen> + +[[!inline pages="internal(2025/info/authoring-before)" raw="yes"]] + +In this talk, I will share the story of my journey with Emacs as a writer, author, and storyteller. Over the years, I have crafted a personal workflow to write technical articles, analyses, and handouts using Emacs, Pandoc, Org Mode, and Zotero. I’ll demonstrate how this setup enables me to easily produce documents in PDF, DOCX, and EPUB formats on macOS and Unix-like systems—with potential extensions to Windows. + +Rather than diving deep into complex Org Mode customizations, my approach focuses on maintaining flexibility in translating documents between formats. This workflow, developed incrementally over several years, illustrates how you can build a comfortable and efficient writing environment in Emacs without needing perfect Lisp mastery or an encyclopedic knowledge of Emacs internals. + +I'll introduce the key packages I use and how they weave together into a cohesive personal authoring system—proving that Emacs can be a powerful yet approachable tool for writers. This talk is not a deep technical dive but a practical exploration of methodology and workflow that can inspire writers to harness Emacs in their own unique ways. + +About the speaker: + +I'm a writer with a strong passion for open-source software. As an agile coach, I enjoy helping people work together. I truly believe in the power of free code and prefer platforms like Codeberg over GitHub, just as I find Mastodon a friendlier space compared to X. I’m also deeply interested in audio and love capturing the world around me through my field recording podcast. At the heart of everything I do is combining these passions into practical workflows—especially using Emacs as a powerful and flexible tool to bring my ideas to life. + + + +[[!inline pages="internal(2025/info/authoring-after)" raw="yes"]] + +[[!inline pages="internal(2025/info/authoring-nav)" raw="yes"]] + + diff --git a/2025/talks/bibliography.md b/2025/talks/bibliography.md new file mode 100644 index 00000000..4c597cdf --- /dev/null +++ b/2025/talks/bibliography.md @@ -0,0 +1,83 @@ +[[!meta title="An enhanced bibliography in org-mode for scientific research and self-directed learning"]] +[[!meta copyright="Copyright © 2025 Blaine Mooers"]] +[[!inline pages="internal(2025/info/bibliography-nav)" raw="yes"]] + +<!-- Initially generated with emacsconf-publish-talk-page and then left alone for manual editing --> +<!-- You can manually edit this file to update the abstract, add links, etc. ---> + + +# An enhanced bibliography in org-mode for scientific research and self-directed learning +Blaine Mooers (he/him) - <mailto:blaine-mooers@ouhsc.edu> + +[[!inline pages="internal(2025/info/bibliography-before)" raw="yes"]] + +This 20-minute talk introduces a modernized approach to creating annotated bibliographies using Org-mode. +This new approach overcomes the limitations of traditional BibTeX-based methods. +Unlike classical annotated bibliographies, this system supports rich content including text-wrapped figures, tables, code listings, equations, and appendices. +These features transform static reference collections into visual knowledge repositories. + +The presentation will demonstrate how this system leverages Org-mode's unique capabilities, particularly literate programming, to enable real-time data transformation and visualization from cited papers. +I introduce a modular architecture to overcome BibTeX's whitespace limitations in the annotation field, which stores notes for assembling annotated bibliographies in the classical approach. + +Key features of the new approach include: + +- A modular design that supports the reuse of annotation files between bibliographies and with literature notes in org-roam and denote +- Support for including figures, tables, equations, code listings, and literature programming blocks +- Citation key injection into subsection headings +- Automated PDF downloading, relabeling, and storing +- Property drawers for keywords, links to annotation note files to ease making further edits, and links to PDF documents +- Specialized sorting function for bibliography organization (by author, year, or keywords) +- Inclusion of a table of contents with hyperlinks +- Specialized glossaries for acronyms, software packages, equations, and mathematical notation + +I will address how this approach complements, rather than replaces, modern personal knowledge management systems like org-roam and denote. +This approach strengthens project-focused knowledge organization. +I will discuss the practical benefits, including improved visual memory reinforcement through embedded figures and reduced context switching during in-depth academic work. + +I will share the implementation details of the Emacs Lisp functions that power this system (available as a package). +The presentation will include demonstrations of how these functions streamline everyday tasks such as adding new entries, navigating between bibliography and source material, and preparing project-specific BibTeX files. +These functions reduce the friction in the academic reading and writing workflow. + +For those interested in adopting this approach, I will discuss adaptations for various workflows and address practical considerations, such as copyright implications when sharing illustrated bibliographies. +The talk will conclude with thoughts on how this system supports different reading styles (reference, survey, and deep reading) as identified by Stephen Heard in his 2022 book "A Scientist's Guide to Writing". +This approach is particularly valuable for researchers, graduate students, and knowledge workers who need to maintain project-specific literature collections. +The approach recognizes the reality that most scientists do not need access to their entire knowledge corpus when working on a specific paper. +Instead, they need a visually reinforced understanding of a targeted subset of the literature. + +The format is a 20-minute talk presented as a narrated slideshow. The outline follows: + +- The role of the annotated bibliography in my three-pronged approach to scientific writing project management, which I introduced last year in my talk about writing logs. +- My innovative use of a modular approach, along with numerous enhancements, promotes deep work. +- Why make an annotated bibliography in the Age of Zettelkastens and Generative AI? +- Why not assemble a notebook instead? +- The classic annotated bibliography and its deficits (i.e., why I developed the enhanced bibliography). +- The advantages of Org-mode for making this annotated bibliography. +- Defining the scope of the enhanced bibliography: research program level versus writing project-specific. +- Tour of the master org file that controls the assembly of the final PDF. +- Project file tree and version control with helper functions. +- The annotation file and accommodation of three levels of detail for reference, survey, and deep reading. +- Demonstrations of creating an entry by wrapping a citar, org-ref, and org-cite citekeys. +- Show how to use literature programming to carry out further analyses using data from a specific paper. +- Show integration with Zettelkasten by including annotation org files in literature notes. +- Feeding annotation files into generative AI for help with querying, brainstorming, planning, and synthesis. +- How does working on an annotated bibliography fit into my weekly writing schedule? +- Tour of the GitHub repository for this project. +- Copyright of figures and limits on sharing the enhanced bibliography in public. +- Summary +- Acknowledgements + +About the speaker: + +Blaine Mooers is an associate professor in the Department of Biochemistry and Physiology at the University of Oklahoma Health Campus, where he specializes in macromolecular crystallography. His research focuses on RNA structures and protein-drug complexes important in cancer. +As an avid Emacs user for five years and LaTeX and Python user for 15 years, Dr. Mooers has developed tools to optimize scientific writing workflows. +In this talk, he shares his system for managing academic literature using Org-mode, which he developed as a solution to his frustration with traditional annotated bibliographies. +This new approach enhances scientific creativity and productivity by combining visual memory reinforcement with project-focused knowledge organization. +This approach addresses the challenging reality of scientific research, where focus is often more valuable than breadth. + + + +[[!inline pages="internal(2025/info/bibliography-after)" raw="yes"]] + +[[!inline pages="internal(2025/info/bibliography-nav)" raw="yes"]] + + diff --git a/2025/talks/blee-lcnt.md b/2025/talks/blee-lcnt.md new file mode 100644 index 00000000..3f2925e0 --- /dev/null +++ b/2025/talks/blee-lcnt.md @@ -0,0 +1,119 @@ +[[!meta title="Blee-LCNT: An Emacs-centered content production and self-publication framework"]] +[[!meta copyright="Copyright © 2025 Mohsen BANAN"]] +[[!inline pages="internal(2025/info/blee-lcnt-nav)" raw="yes"]] + +<!-- Initially generated with emacsconf-publish-talk-page and then left alone for manual editing --> +<!-- You can manually edit this file to update the abstract, add links, etc. ---> + + +# Blee-LCNT: An Emacs-centered content production and self-publication framework +Mohsen BANAN (he/him) - Pronunciation: MO-HH-SS-EN, <http://mohsen.1.banan.byname.net> + +[[!inline pages="internal(2025/info/blee-lcnt-before)" raw="yes"]] + +In a sense this is yet another talk about how you +can use Emacs to produce fancy presentations like +this or write complex books and self-publish them. +But our approach is fundamentally different. + +Many talks at previous Emacs Conferences have +described how Emacs and org-mode can be extended +to facilitate content production by adding more to +Emacs. Our approach is that of putting a smaller +Emacs at the core of something bigger. That +something bigger is an autonomy oriented digital +ecosystem called "ByStar" which is uniformly built +with a layer on top of Debian called BISOS (ByStar +Internet Services OS). + +At Emacs Conf-2024 the title of my talk was "About Blee" – +<https://emacsconf.org/2024/talks/blee>. +Blee (ByStar Libre-Halaal Emacs Environment) is that +smaller Emacs packaging that positions Emacs at the core of BISOS and +ByStar. BISOS and Blee are intertwined and +ByStar is about autonomy oriented unified platforms for developing and +delivering both internet services and +software-service continuums. + +This talk is about Content Production and Self-Publication capabilities of +Blee and BISOS. + +Blee-LCNT is LaTeX centric. The original text is always in COMEEGA-LaTeX – +LaTeX augmented by Org-Mode. This is +the inverse direction of exporting LaTeX from Org-Mode. For typesetting, +the LaTeX syntax is far more powerful than +org-mode. And with COMEEGA-LaTeX, you can also benefit from all that +org-mode offers. The scope of Blee-LCNT is all +types of content from presentations to videos to books to name-tags and +business cards. + +LaTeX to HTML translation is done with HeVeA. For +presentation/screen-casting, the original text is then augmented +in layers by images, audio voice-overs, screen captures, videos and +captions. The Beamer LaTeX file is then +processed by both LaTeX and HeVeA. LaTeX produced slides are then absorbed +in html by HeVeA as images. HeVeA output +is destined to be dispensed by Reveal.js. The video is then just a screen +capture of the autoplay of reveal file. +Viewing presentations in their original Reveal form makes for an even +richer experience. + +All of this involves a whole lot of integration and scripting. But all of +that has been done and you can get it all +in one shot by just running one script. + +To get started with BISOS, Blee, and ByStar, visit +<https://github.com/bxgenesis/start>. From a vanilla Debian 13 +installation ("Fresh-Debian"), you can bootstrap BISOS and Blee (with +Emacs-30) in one step by running the +raw-bisos.sh script. It produces "Raw-BISOS" which includes "Raw-Blee". + +You can then add the LaTeX sources for your content as ByStar Portable +Objects (BPO) to BISOS and process +your content with Blee-LCNT. + +All of this and more has been documented in a book that was produced by +Blee-LCNT itself. +The title of that book is: + +Nature of Polyexistentials: +Basis for Abolishment of the Western Intellectual Property Rights Regime +And Introduction of the Libre-Halaal ByStar Digital Ecosystem + +- On Line US Edition: <https://github.com/bxplpc/120033> – Download: + +<https://raw.github.com/bxplpc/120033/main/pdf/c-120033-1_05-book-8.5x11-col-emb-pub.pdf> + +- On Line International Edition: <https://github.com/bxplpc/120074> – + +Download: +<https://raw.github.com/bxplpc/120074/main/pdf/c-120074-1_05-book-a4-col-emb-pub.pdf> +DOI: <https://doi.org/10.5281/zenodo.8003846> + +- US Edition Book Prints At Amazon: <https://www.amazon.com/dp/1960957015> +- International Edition Book Prints in Iran: + +<https://jangal.com/fa/product/252689/nature-of-polyexistentials> + +I welcome your thoughts and feedback, especially if you experiment with +Blee, +BISOS, ByStar, and the model and the concept of Libre-Halaal +Polyexistentials. + +## Discussion / notes + +- Q: all the outputs and the inputs that you mentioned, where are they? + - So they are on GitHub, and this is in one of my slides. I mentioned the URL for it. I'll show you that as well. So the URL for it is https://github.com/bxplpc/180068, which is the handle for this talk. In there, you have all the PDFs and the HTMLs, a citation, a bib input, and also the sources. So if you were to go to the PDF, you will see um, both the article presentation and the beamer, let's take a quick look at the beamer, which is what you have seen. So. And as far as the sources are, there are two primary files. This presentation, left to right, is the one that includes all the LaTeX packages. We might as well take a quick look. So what's in there is primarily the use packages. And then it dispatches to bodyPresArt, and this is where the code is. And I walked through this briefly. So, notice here again that this is a mixture of LaTeX and Org. Each of the presentation slides are here. For example, my introduction is just a video that gets included. And then the notes that I use, the voiceover, is also included in the LaTeX file. Let me... It'll probably be easy to take those voiceover notes and then align them with a tool like Aeneas to make subtitles for your videos. Exactly, and that is what I do. So there is a way to gather them all as P-notes. And so all the P-notes get together in a single file, and then you feed that to Aeneas, and it will align them. And then there is the work of using your subed to just get the right sort of line length on them. But you did all of that for me this year, Sacha. Thank you very much. It was just a matter of not having time. Otherwise, I planned to do it myself. It's all right. It was very easy since he provided the full narration. I still need to tweak it sometimes, so I often use the waveforms in subed to find the right starting time and ending time for things. But it is so nice to have a presentation where you can experience it in different forms, as an article, as a video, as a post with links and everything. Very handy. Right, and in case a teacher uses this for class lectures, then the student profits from all sorts. The article presentation format is very useful for a student to add their own notes to it and the rest. Exactly as you said, having multiple forms is great. Video has its place, reveal has its place, PDF has its place, article has its place. All of them work together. +- Q: what changes have you seen in the culture while developing all + these things like libre-halal system and now blee-lcnt? + - A: We learn from one another. And what I'm doing may be considered just a stepwise increment, but the cultural input is that we really should start thinking about providing solutions as opposed to packages. The FOSS culture is really limited in its scope to packages or even if when you think something very large like Debian, which is a collection of packages. And it is still choice oriented, as opposed to solution oriented. Yeah. Are there any additional topics or questions? Otherwise, I'll just add a few additional concepts. + - I agree with 'Solutions over Packages' phrase :) + - Thank you Mohsen +- Q: Really interesting stuff, thank you for your talk :) Given that large AI companies are openly stealing IP and copyright, thereby eroding the authority of such law (and eroding truth itself as well), can you see a future where IP & copyright flaw become untenable and what sort of onwards effect might that have? Apologies if this is outside of the scope of your talk + - So yeah, over the past two years, something huge has happened. And what I am seeing in there as a solution is essentially comes down to a talk that was given maybe two years ago by someone at EmacsConf, and its label was attribution-based economics. In my thinking, intellectual property as a whole is invalid. But that means that through something like a Affero GPL, you focus on attribution basing, proper attribution basing. If somebody has done some work, it should be clear, no matter what, that that work is his. And that we already, even prior to AI, we were seeing this. We were seeing large GitHub repos with hundreds of authors. And it was utterly unclear as to who would own this whole thing. And any piece of it is not of significance. What is of significance is the whole thing. So moving towards that attribution based economics is key. And then once we do that, and then we accept AI as a reality. AI should still take very seriously and conform to attribution-based economics. In other words, what is generated by the machine should not be claimed to be no one's or the machine owners, the AI owners. It should still clearly be attributed to the people who contributed in its creation. This all becomes very muddy, very clear, and I don't have a simple or clear answer to it. But the perimeters of the solution lie in rejection of intellectual property, replacement of the intellectual property with attribution-based economics, and restrictions on AI use of not properly attributed content. Yeah, I'd say that would be, it's a complicated topic and I would simply say I haven't figured it out at all. I just have a perimeter set of concepts that can be used to drive it. + +[[!inline pages="internal(2025/info/blee-lcnt-after)" raw="yes"]] + +[[!inline pages="internal(2025/info/blee-lcnt-nav)" raw="yes"]] + + diff --git a/2025/talks/bookclub-tapas.md b/2025/talks/bookclub-tapas.md new file mode 100644 index 00000000..5d0574b1 --- /dev/null +++ b/2025/talks/bookclub-tapas.md @@ -0,0 +1,73 @@ +[[!meta title="Bookclub tapas"]] +[[!meta copyright="Copyright © 2025 Maddie Sullivan"]] +[[!inline pages="internal(2025/info/bookclub-tapas-nav)" raw="yes"]] + +<!-- Initially generated with emacsconf-publish-talk-page and then left alone for manual editing --> +<!-- You can manually edit this file to update the abstract, add links, etc. ---> + + +# Bookclub tapas +Maddie Sullivan (she/her) - IRC: ElephantErgo, <https://ElephantErgonomics.com>, <mailto:hello@ElephantErgonomics.com> + +[[!inline pages="internal(2025/info/bookclub-tapas-before)" raw="yes"]] + +I've been experimenting with a new programming methodology that I've +stumbled upon. I call it "Bookclub Tapas". It is comprised of two parts, +"Bookclub" and "Tapas". Together, they form a literate-inspired, +Agile-inspired development method which centers around developer +self-reflection as a means to chip away at identifying powerful custom-fit +abstractions. + +Bookclub turns literate programming on its head by having the target +audience of the source document's commentary be its own developer. Bookclub +files contain source code, issue tracking, research, feature requests, and +reflections on the development process all seamlessly integrated into a +single file. Developers no longer have to worry about keeping track of what +they want to be doing, why they want to do something, or even the full +picture of how to go about doing something, because the Bookclub file acts +in cooperative conversation with the developer as a living record of their +hopes, intentions, and efforts. + +Tapas is the idea that instead of writing stand-alone programs, we write +library ecosystems. Instead of getting ahead of ourselves by trying +immediately to write large programs to solve large problems, we instead +focus on writing abstractions that reduce the scale of our problem. Our +goal is to identify what sort of tool would make the problem at hand +trivial to solve, implement said tool, and even work recursively to +implement tools to implement our tools. Our goal is that each next level of +abstraction is roughly a three-line trivial case of the level of +abstraction below, and eventually the solution to our initial problem is +itself trivial. + +Over the course of the talk, I intend to dive into what is Bookclub, what +is Tapas, what do they look like when used together, and why they provide a +meaningful set of methodologies both for getting real work done and also +elevating the programming process' beauty. I will use a live demo centered +around light development on a real-life yet-to-be-released Emacs Lisp +package. I intend to showcase how Org Babel enables Bookclub by allowing +for incredibly malleable documents that seamlessly integrate source code, +documentation, issue tracking, research, and even the build process. I also +intend to showcase how the Emacs Lisp macro system enables Tapas by +allowing us to recontextualize and reinvent syntax in order to build +powerful, composable abstractions that do exactly what the context calls +for while using phrasing that is both natural and intuitive. + +About the speaker: + +Hi! I'm Maddie Sullivan, my pronouns are she/her, my handle is +ElephantErgonomics (ElephantErgo on IRC), and my email is +hello@ElephantErgonomics.com. My talk is on a programming methodology I've +stumbled into that I've come to call "Bookclub Tapas". It's inspired by +literate, agile, and last year's Emacsconf! I've had great success with it +for my personal development process, and I'm hoping you can get something +out of it as well. I'll be laying out what it is, how I found it, why Emacs +makes an awesome environment for it, and how you can get started with it +too! + + + +[[!inline pages="internal(2025/info/bookclub-tapas-after)" raw="yes"]] + +[[!inline pages="internal(2025/info/bookclub-tapas-nav)" raw="yes"]] + + diff --git a/2025/talks/calc.md b/2025/talks/calc.md new file mode 100644 index 00000000..d7a6faee --- /dev/null +++ b/2025/talks/calc.md @@ -0,0 +1,60 @@ +[[!meta title="Basic Calc functionality for engineering or electronics"]] +[[!meta copyright="Copyright © 2025 Christopher Howard"]] +[[!inline pages="internal(2025/info/calc-nav)" raw="yes"]] + +<!-- Initially generated with emacsconf-publish-talk-page and then left alone for manual editing --> +<!-- You can manually edit this file to update the abstract, add links, etc. ---> + + +# Basic Calc functionality for engineering or electronics +Christopher Howard (he/him) - IRC: lispmacs or lispmacs[work], gemini capsule: gemini://gem.librehacker.com, <mailto:christopher@librehacker.com> + +[[!inline pages="internal(2025/info/calc-before)" raw="yes"]] + +An introduction to some of the basic Algebra and Calculus functionality in Calc, as might be useful in engineering or electronics. + +About the speaker: + +Christopher Howard is a simulator technician in Fairbanks, Alaska, and a GNU Emacs user for a little over a decade. My technical interests are focused on analog computing and modeling with differential equations. + +## Discussion / notes + +- Q: How sophisticated an ordinary differential equation solver would + be useful? There are some C libraries one ould try to build upon, + but there are many corner cases, stiff, non-stiff is one + categorization, but an explicit Runge Kutta would work for many + non-stiff equations + - A: I don't really have any opinions right now about the + approximation methods. For me, what I really want is one of + those old style languages where you basically just type in the + list of differential equations and don't have to do any other + computer programming, or know the details of another programming + language. I played around a bit with python-dda, though it has + some deficiencies. There are some graphical free software + programs where you do this sort of thing with blocks, but they + all depend on Java which is problematic in Guix. +- Q: Is there a way to see the input of a custom function? E.g. if you + forget the order of f and C in the example you showed + - A: Let's see... there is calc-user-define-edit. One calc also + view the file where the definitions are stored, though that is a + somewhat obscure format. +- Q: Have you tried interacting with calc via org-babel (first thing + that came to mind when you said that you'd like to annotate + values)? Any thoughts on that? How about rendering gnuplots on org + documents via calc? + - A: I played around with babel once like two years ago, trying to see if it would make more sense to use babel or one of those jupiter notepad things. But I guess I haven't really had any need to play around with either one since then. I don't really have any need to produce plots on org documents right now, but it is an interesting idea. +- Q: Who is in charge of calc development anyway? Is there an active maintainer? +- Nice talk. +- Thanks for the cool talk! I've been using Calc quite a lot recently for linear algebra work. I also use it quite often for unit conversion. There's a package called calc-currency which is very useful but unfortunately does not seem to be maintained anymore. +- I'm going to have to rewatch this talk. +- thanks for your talk! Calc strikes me as one of those really powerful things I should spend time learning a little more about one of these days =) +- calc is suprisingly good at datetime math. +- I mostly use it for that and unit conversion. I don't do any fancy calculus like lispmacs did in his talk. +- Funny, I'm studying computer engineering and just a few weeks ago I'd decided to properly learn how to use calc myself. +- Interesting descriptions of stargazing on Christopher Howard's gemlog + +[[!inline pages="internal(2025/info/calc-after)" raw="yes"]] + +[[!inline pages="internal(2025/info/calc-nav)" raw="yes"]] + + diff --git a/2025/talks/claude-code.md b/2025/talks/claude-code.md new file mode 100644 index 00000000..0e4c198c --- /dev/null +++ b/2025/talks/claude-code.md @@ -0,0 +1,69 @@ +[[!meta title="emacs-claude-code: Intelligent Claude Integration for Emacs"]] +[[!meta copyright="Copyright © 2025 Yusuke Watanabe"]] +[[!inline pages="internal(2025/info/claude-code-nav)" raw="yes"]] + +<!-- Initially generated with emacsconf-publish-talk-page and then left alone for manual editing --> +<!-- You can manually edit this file to update the abstract, add links, etc. ---> + + +# emacs-claude-code: Intelligent Claude Integration for Emacs +Yusuke Watanabe (he/him) - Pronunciation: you-SKAY wah-tah-NAH-bay, GitHub: <https://github.com/ywatanabe1989/emacs-claude-code>, <mailto:ywatanabe@alumni.u-tokyo.ac.jp> + +[[!inline pages="internal(2025/info/claude-code-before)" raw="yes"]] + +As AI coding assistants become essential development tools, integrating +them seamlessly into our Emacs workflows becomes crucial. This talk +introduces emacs-claude-code, a package that transforms how Emacs users +interact with Claude Code through intelligent automation and enhanced vterm +integration. + +The main challenge with terminal-based AI assistants is the repetitive +manual interaction required. Claude Code presents various prompts (Y/N +choices, waiting states, continuation prompts) that interrupt the +development flow. emacs-claude-code solves this by introducing smart +auto-response patterns that recognize Claude's state and respond +appropriately, allowing developers to maintain focus on their code rather +than managing the AI interface. + +Key features I'll demonstrate include: + +1. **Intelligent Auto-Response System**: Automatically handles Claude's various prompt states (INITIAL WAITING, Y/N, Y/Y/N, WAITING) with customizable responses. This allows uninterrupted AI-assisted coding sessions. + +1. **Centralized Buffer Management**: A dashboard view of all Claude sessions showing their current state, auto-response status, and last interaction time. Users can quickly navigate between multiple AI conversations and toggle automation settings. + +1. **Yank-as-File Functionality**: Elegantly handles large code snippets by saving them as files instead of cluttering the terminal, with full TRAMP support for remote development. + +1. **Periodic Command Automation**: Executes custom commands at specified interaction intervals, perfect for maintaining context or triggering regular actions like compacting conversation history. + +The package leverages Emacs' powerful vterm-mode to create a robust +integration layer. I'll share implementation details about state detection +using regular expressions, buffer management techniques, and the advice +system used for seamless clipboard integration. + +Beyond the technical implementation, I'll discuss practical workflows that +emerge from this integration, including custom Claude commands (stored as +Markdown files) that can be triggered automatically based on context. The +talk will include a live demonstration showing how these features work +together to create a fluid AI-assisted development experience. + +This project embodies the Emacs philosophy of extensibility and automation, +making cutting-edge AI tools work the way Emacs users expect - efficiently, +automatically, and under their complete control. + +About the speaker: + +I'm Yusuke Watanabe, a researcher who uses Emacs for both academic work and +software development. After experiencing friction with manual Claude Code +interactions, I developed emacs-claude-code to automate repetitive tasks +and integrate AI assistance smoothly into Emacs workflows. This project +represents my approach to making modern AI tools work within the Emacs +ecosystem while maintaining the editor's core principles of efficiency and +user control. + + + +[[!inline pages="internal(2025/info/claude-code-after)" raw="yes"]] + +[[!inline pages="internal(2025/info/claude-code-nav)" raw="yes"]] + + diff --git a/2025/talks/commonlisp.md b/2025/talks/commonlisp.md new file mode 100644 index 00000000..df968e08 --- /dev/null +++ b/2025/talks/commonlisp.md @@ -0,0 +1,88 @@ +[[!meta title="Common lisp images communicating like-a-human through shared emacs slime and eev"]] +[[!meta copyright="Copyright © 2025 screwlisp"]] +[[!inline pages="internal(2025/info/commonlisp-nav)" raw="yes"]] + +<!-- Initially generated with emacsconf-publish-talk-page and then left alone for manual editing --> +<!-- You can manually edit this file to update the abstract, add links, etc. ---> + + +# Common Lisp images communicating like-a-human through shared emacs slime and eev +screwlisp (he/him, they/them) - IRC: screwlisp, <https://gamerplus.org/@screwlisp>, <https://screwlisp.small-web.org/> + +[[!inline pages="internal(2025/info/commonlisp-before)" raw="yes"]] + +Demos a typical orgmode user's regular useages, segueing into Eduardo Ochs' +eev executable-logs emacs style generally emphasising language/target +interoperability ANSI common lisp / C / emacs lisp / org-mode / eev homed +around eev. + +On the theory that an agent is intelligent to the extent it is +human-relatable, an autonomous software agent is started which receives +messages pushed to an emacs lisp list, but otherwise does its own thing +using eev eepitch, just like the human does. + +Good as a normal lisp-user emacs example underscoring the org-mode and eev +focused talks feeding into using software agents that use emacs/eev exactly +like the human does via my port to emacs of Sandewall's 2014 Leonardo +system software-individuals release. + +Naturalistic style. + +- Blog <https://screwlisp.small-web.org> +- Mastodon <https://gamerplus.org/@screwlisp> + +Some related blog articles. + +- <https://screwlisp.small-web.org/software-individuals/same-universe-multiple-agents> +- <https://screwlisp.small-web.org/software-individuals/trivial-program-that-never-stops> +- <https://screwlisp.small-web.org/software-individuals/fipa> +- <https://codeberg.org/tfw/pawn-75> + +Weekly shows past. + +- <https://communitymedia.video/c/screwtape_channel/videos> +- <https://toobnix.org/a/screwtape/videos> + + +Q&A will be on IRC and in LambdaMOO. + +**Q&A in LambdaMOO**: + +As an experiment, screwlisp will also be taking +questions from LambdaMOO. Here's how to join: + +1. Use `M-x telnet` to connect to `lambda.moo.mud.org 8888`. Alternatively, you can use a web-based client like https://mudslinger.net/play/ or rmoo.el (see rmoo.el note below) +2. `connect Guest` to connect as a guest. If that doesn't work, please ask in `#emacsconf-org` and we'll try to get you sorted out. +3. Agree to the terms by typing `YES`. +4. Teleport to where the speaker is by typing `@join screwtape`. + +To say something, start with `"` and omit the ending quotation mark, like this: `"Hello everyone!`. To say something to a specific person, start with a backtick (`` ` ``) and the person's nick, then your message, like this: `` `sachac I made it to LambdaMOO``. Use `help communication` to learn more about other communication tools, such as `:` for emoting and `whisper` for sending private messages. + +rmoo.el note: You may need to define process-kill-without-query if it doesn't exist on your computer. Here's a use-package declaration that might be a good starting point. If your version of use-package doesn't support `:vc` yet, you can check out the code from https://github.com/toddsundsted/rmoo and add it to your load-path, or use `M-x telnet` for now. + +``` +(use-package rmoo + :vc "https://github.com/toddsundsted/rmoo" + :init + (unless (fboundp 'process-kill-without-query) + (defun process-kill-without-query (process &optional flag) + (set-process-query-on-exit-flag process nil) + t)) + :config + (rmoo-worlds-add-new-moo "LambdaMOO" "lambda.moo.mud.org" "8888")) +``` + +You can also ask questions via BigBlueButton, Etherpad, or IRC, and the host will try to make sure your question gets to the speaker. Enjoy! + +About the speaker: + +Flocking lisp images with Screwlisp (Lispy Gopher Climate and +<https://screwlisp.small-web.org/>). + + + +[[!inline pages="internal(2025/info/commonlisp-after)" raw="yes"]] + +[[!inline pages="internal(2025/info/commonlisp-nav)" raw="yes"]] + + diff --git a/2025/talks/completion.md b/2025/talks/completion.md new file mode 100644 index 00000000..a074b568 --- /dev/null +++ b/2025/talks/completion.md @@ -0,0 +1,36 @@ +[[!meta title="corfu+yasnippet: Easier than I thought"]] +[[!meta copyright="Copyright © 2025 Pedro A. Aranda Gutiérrez"]] +[[!inline pages="internal(2025/info/completion-nav)" raw="yes"]] + +<!-- Initially generated with emacsconf-publish-talk-page and then left alone for manual editing --> +<!-- You can manually edit this file to update the abstract, add links, etc. ---> + + +# corfu+yasnippet: Easier than I thought +Pedro A. Aranda Gutiérrez (he, him) - <mailto:paaguti@gmail.com> + +[[!inline pages="internal(2025/info/completion-before)" raw="yes"]] + +I describe my experience in "getting rid" of company-mode and +transitioning to corfu. I now have yasnippets integrated with +a couple lines Emacs Lisp. The main advantage is that with I +need less packages and configuration, specially on master. +The talk will include some code snippets that show it was +easier than expectedand a life demo. + +20 minutes (with demo) + +About the speaker: + +After 30 years using Emacs, professionally and for my PhD, I'm currenly +quite involved in org-mode, where I'm revamping the LaTeX backend. +To do this, I needed a new approach to auto-completion because +company-mode started requiring too much code and integration. + + + +[[!inline pages="internal(2025/info/completion-after)" raw="yes"]] + +[[!inline pages="internal(2025/info/completion-nav)" raw="yes"]] + + diff --git a/2025/talks/gardening.md b/2025/talks/gardening.md new file mode 100644 index 00000000..a7b8c2a2 --- /dev/null +++ b/2025/talks/gardening.md @@ -0,0 +1,56 @@ +[[!meta title="Gardening in Emacs: A Windows user's tale of tending, tweaking, and triumph"]] +[[!meta copyright="Copyright © 2025 Marco Bresciani"]] +[[!inline pages="internal(2025/info/gardening-nav)" raw="yes"]] + +<!-- Initially generated with emacsconf-publish-talk-page and then left alone for manual editing --> +<!-- You can manually edit this file to update the abstract, add links, etc. ---> + + +# Gardening in Emacs: A Windows user's tale of tending, tweaking, and triumph +Marco Bresciani - Pronunciation: [mˈarko breʃˈanɪ](https://unalengua.com/ipa-translate?hl=en&ttsLocale=it-IT&voiceId=Giorgio&sl=it&text=Marco%20Bresciani&ttsMode=word&speed=3), [Delta Chat](https://i.delta.chat/#F4A07D3A629AC049257C7D02271C8AB34DA36085&i=BzsU0ErXsb1QHvQVnkVpKC3N&s=8DaaDMCc1_yNnJOTv9OO5AFD&a=26sjhl7dn%40nine.testrun.org&n=MB), [@AAMfP@fosstodon.org](https://fosstodon.org/@AAMfP), [marcoxbresciani.codeberg.page](https://marcoxbresciani.codeberg.page/) + + + +[[!inline pages="internal(2025/info/gardening-before)" raw="yes"]] + +I'm a not-ashamed Windows user, both at +work and at home, since forever. I also like portable applications, to +bring everything I need, everywhere, on my tiny USB thumb drive. +And now also Emacs is there, on my USB! + +I'm also not the blogger type of person: I've tried, for a time. I +stopped at entry ~8 of a "100 days blogging" saga. + +But I actually immediately fell in love with the (possibly slower pace) +digital garden concept and since I wanted to try Emacs, I decided to +catch two pigeons with one stone. + +This is the story of how I learned the very basics of Emacs and Org Mode, +from how to save and exit to how to change letters case of a whole region +or the (long searched for) fill-paragraph feature. + +This is the story of how I learned Org Mode publishing configuration and +tricks, to create my digital garden, give it a structure and make it +freely available for anyone to read (and hopefully enjoy) in HTML format. +This is the story of how I added Japanese furigana and PlantUML diagrams +and a <del>one</del> few clicks-away "go to market" strategy. + +This is the story of my digital garden, how I tend to it while learning +the tool(s) I'm using to care of my garden, Emacs and Org Mode. +And this is the story of how I ask for your help, to continue learning +Emacs and Org Mode. + +About the speaker: + +20+ years software +developer and Vi user during university life, now moved to the dark side +of agile coaching as Scrum Master. +Started learning Emacs by chance since I wanted to try it since ages. + + + +[[!inline pages="internal(2025/info/gardening-after)" raw="yes"]] + +[[!inline pages="internal(2025/info/gardening-nav)" raw="yes"]] + + diff --git a/2025/talks/gmail.md b/2025/talks/gmail.md new file mode 100644 index 00000000..2768748b --- /dev/null +++ b/2025/talks/gmail.md @@ -0,0 +1,64 @@ +[[!meta title="org-gmail: A Deep Integration of Gmail into Your Org Mode"]] +[[!meta copyright="Copyright © 2025 Bala Ramadurai"]] +[[!inline pages="internal(2025/info/gmail-nav)" raw="yes"]] + +<!-- Initially generated with emacsconf-publish-talk-page and then left alone for manual editing --> +<!-- You can manually edit this file to update the abstract, add links, etc. ---> + + +# org-gmail: A Deep Integration of Gmail into Your Org Mode +Bala Ramadurai (he/him) - <https://balaramadurai.net>, <mailto:bala@balaramadurai.net> + +[[!inline pages="internal(2025/info/gmail-before)" raw="yes"]] + +For many, email is the starting point for tasks, projects, and reference +material. While Emacs has powerful, full-featured mail clients like Gnus +and mu4e, they are designed to manage the entire email workflow. + +org-gmail offers a different approach: it is not a replacement for a full +mail client, but a tool for deeply **integrating** your most important emails +into your Org Mode knowledge base. + +This talk will introduce org-gmail, a package that allows users to fetch +entire Gmail threads or individual messages and save them as entries in Org +mode files. The core idea is to triage emails in the Gmail interface and +pull relevant threads into Org Mode, where they can be linked to tasks, +notes, and projects. + +We will explore the key features of the package, including: + +- Fetching emails by label and syncing new messages for previously downloaded labels. +- Managing labels directly from Emacs, including creating, deleting, editing, and bulk-moving threads between labels, which updates both Gmail and the corresponding :LABEL: properties in your Org files. +- Performing common email actions from within Org Mode, such as replying, forwarding (delegating), snoozing (deferring), and moving messages to the trash. +- Integrating emails into a task management workflow by creating actionable sub-tasks that appear in the agenda. + +The session will demonstrate practical use cases for both Getting Things +Done (GTD) and the P.A.R.A. method (Tiago Forte). For GTD, we'll show how +to process a Gmail inbox, download actionable emails into an Org file, and +then defer, delegate, or create TODO items. For P.A.R.A., we'll demonstrate +how to label emails according to projects and areas, and how to archive +them systematically using the bulk-move feature. + +By the end of the talk, attendees will understand the unique workflow +org-gmail enables and how it can help them turn their email into a +structured, actionable part of their Org Mode system. + +About the speaker: + +Bala Ramadurai is an entrepreneur, professor, author, coach, consultant, +and podcaster. He is the CEO of Spirelia, a company that helps innovate. He +has authored a book called Karmic Design Thinking and holds 3 patents. + +In this talk, Bala will introduce org-gmail, a package he developed to +seamlessly integrate Gmail with Org Mode. You will learn how to transform +your important emails into actionable tasks and reference material, +leveraging the power of Org Mode for a more organized and productive +workflow that supports methodologies like GTD and P.A.R.A. + + + +[[!inline pages="internal(2025/info/gmail-after)" raw="yes"]] + +[[!inline pages="internal(2025/info/gmail-nav)" raw="yes"]] + + diff --git a/2025/talks/gnus.md b/2025/talks/gnus.md new file mode 100644 index 00000000..b1d37df5 --- /dev/null +++ b/2025/talks/gnus.md @@ -0,0 +1,94 @@ +[[!meta title="Reading and writing emails in GNU Emacs with Gnus"]] +[[!meta copyright="Copyright © 2025 Amin Bandali"]] +[[!inline pages="internal(2025/info/gnus-nav)" raw="yes"]] + +<!-- Initially generated with emacsconf-publish-talk-page and then left alone for manual editing --> +<!-- You can manually edit this file to update the abstract, add links, etc. ---> + + +# Reading and writing emails in GNU Emacs with Gnus +Amin Bandali (he/him) - IRC: bandali, <https://kelar.org/~bandali>, <mailto:bandali@gnu.org> + +[[!inline pages="internal(2025/info/gnus-before)" raw="yes"]] + +Gnus has had the reputation of being difficult to grasp and +configure. The myriad of configuration options of its many major +and minor modes which afford Gnus its high degree of customizability +can also seem overwhelming and daunting for folks looking to learn +about and use it to build a workflow for doing email in GNU Emacs. + +This talk aims to provide a high-level outline of some of the key +concepts in Gnus, and a roadmap for approaching and configuring Gnus +and Message to your liking so that you, too, can read, compose, and +send emails with GNU Emacs. + +About the speaker: + +Amin Bandali is a computing scientist and activist for user freedom, +and a participant in various free software projects and communities. +Bandali wears a few hats around the GNU Project and is a volunteer +member of the Free Software Foundation SysOps team, a core organizer +of EmacsConf, a Debian Developer and a contributor to the Trisquel +GNU/Linux distribution. + +In this talk, Bandali will go over configuring Gnus and Message for +reading and composing emails, showcasing one of many approaches for +using GNU Emacs for email communications. + + +## Discussion / notes + +- bandali: here's the talk page on my site, along with the sample init and authinfo files: https://kelar.org/~bandali/2025/12/06/emacsconf-2025-gnus.html + +- Q: I noticed that it took a considerable amount of time to send + email. Is it possible to configure gnus to use an external smtp + client to send emails? (thanks! I agree, even on thunderbird it's + slow sometimes). + - A: Right, yes, it definitely is possible. In fact, in the past, I've used, I believe, MSMTP, which is a small SMTP implementation that's independent of Emacs. So you can do that. It's also possible to, pointed to have it use the sendmail binary on your system. If you have a local MTA mail transfer agents like Exim or Postfix installed and configure. I believe that should also dispatch and return instantaneously and then have Postfix or Exim deal with sending the message on their terms without blocking Emacs. I don't know, it depends. Normally it's not always that slow. Sometimes it is. I think it also depends on the load on your mail server. Sometimes it's instantaneous, sometimes not. So I hope that helps. +- Q: Is the dovecot workaround actually a solution? I haven't tried + it, but if it works smoothly I'll surely do so. + - A: It is, it really is. I've actually been using that setup for many years. I can't remember. Oh, I believe it's Eric Abramson who first shared instructions on how to set this up. Let's see if I can find it. There we go. Yeah, this is it. I'll share this on IRC as well. Yeah, so Dovecot is very, very efficient. It's written in C. And yeah, when you point Gnus to an IMAP server like Dovecot, dealing with email is pretty instantaneous. This article or post by Eric is great. Although I will say that there was a recent major release of Dovecot. I can't remember if it's 2.4 or 2.5. and it's a breaking change. They change a lot of the configuration syntax, so there's a high likelihood that this drop-in configuration won't work, even though that's what I used as my starting point a couple years ago. I will be writing an article on my personal site to go over how to configure recent versions of Dovecot for such a setup, for a local setup. +- Q: Do you have experience with mu4e or Notmuch, and why would you say + Gnus is worth using compared to these? + - A: I do have experience with these, although it goes back many years, and I'm sure both of these have evolved since, and they're great pieces of software in their own rights. And actually I did use them in that order. Like I first tried Mu4e in Emacs, when I started using email in Emacs, then I tried Notmuch for a while, and then I went to Gnus. They're great. They have like pros and cons. Mu4e, I believe, has excellent maildir handling directly, if I'm not mistaken, unlike Gnus, so you can point it directly to your maildirs locally, and it should work fine, if I'm remembering correctly. Notmuch is also excellent. The thing with Notmuch is that it uses Xapien for indexing and searching email. It's tag-based, so you can tag messages. And then, yeah, it's amazing for tagging and searching capabilities, very powerful search features. And my reason for trying Gnus and then, I don't know, eventually liking it was couple of years ago, I went through this kind of phase of trying and trying to like use and stick with packages that are built into GNU Emacs as much as possible. No particular reason that I would like, you know, recommend people do that per se, but yeah, that's just what I wanted to do. Cause I noticed my configurations were like growing unwieldy. So I, like many others declared, Emacs in its bankruptcy, in its file bankruptcy, and configure things from scratch and try to use whatever that Emacs had to offer built in itself, and then only reach for a couple of external packages here and there. So that's what I went to. That's how I ended up on Gnu's. And it's been very nice. I've tried a few other email clients since then, temporarily, like I tried AERC, A-E-R-C, which is not built into Emacs, but I don't know, I keep coming back to Gnus. It's great to have it all, to be able to do all these things from within GNU Emacs. +- Q: At my organization, we're forced to use OAuth with outlook and + they've also blacklisted all email clients except thunderbird (but + they don't support it, only the webmail or the outlook app). Do you + know if this is something that can be circumvented in Gnus? (I've + tried it with notmuch for example, and it never worked. Even K-mail + on android didn't work). But this specific to IT at my org. I'll + ask on IRC. Thanks! + - A: So if I'm pretty sure, at least with the recent Emacs versions, Gnus does support xOAuth as a backend. So I think you should be able to do that even with just the things, the machinery built into Emacs. Even so, I think there are external packages and programs. One of them I think comes from this Cyrus IMAP world of things that implement like XOAuth. So you should be able to do that. You should be able to use that to get authenticated to your organization's mail server. But I've never tried that myself. In terms of like blacklisting all email clients, I don't know how they would do it outside of, you know, this kind of authentication thingy. If, you know, they check the user agent header or something, that's pretty easy to customize and set. With Gnus, you can set, define a posting style to set a custom user agent. So, yeah, that's as far as I know. Thunderbird is pretty nice too. Like I reach out for it sometimes when I'm in a rush or can't, don't have the time to like set up Gnus with like some new like IMAP server or something. I reach for it sometimes, but yeah, I primarily use Gnus. I see. So the question says they tried it with not much and it never worked. Even KML on Android didn't work. Right. Yeah, I'm not sure. If you can like provide maybe more details as to like what doesn't work or if you get any particular error messages or like how they're trying to like prevent you from using it, then maybe folks could have some ideas of maybe how to get around that. ... So the organization is doing some kind of check during setting up of OAuth. So I think how that works is sometimes these email clients, I think at least this is the case for Gmail or something, where a project such as Thunderbird needs to apply for some kind of token to be able to authenticate and connect its users to a mail server. So all I will say is that Thunderbird is free software and the sources are available and you might be able to find the token that they use and yeah. + +- excellent introduction to gnus! thanks!! +- Very nice talk! Thank you. +- Really good introduction, this will be my go to link from now whenever someone asks "how to use gnus". +- great - going to finally be brave and give gnus a look after that, no excuse not to anymore +- I really enjoyed, from time to time I came across to gnus, but I don't have the time to tune it and I keep with mu4e+mbsync to handle my email +- Yes, it covered the key points very well and should hopefully encourage others to start using gnus. +- https://ericabrahamsen.net/tech/2014/oct/gnus-dovecot-lucene.html +- okay thanks, will do gnus + dovecot ater the conf. +- For me, the key feature of gnus is scoring (both manual and adaptive)! +- I use davmail to access Outlook from gnus. +- Looking forward to more videos on GNUS from you! Excellent talk!! +- +1. Excellent introduction. If I would have had such a tutorial some + 15 years ago when I first used Gnus, my learning curve would not + have been that steep. Thanks! Hope it will help new users. So, + spread the word about your talk! +- Fantastic presentation! +- Thanks for this talk, I liked that you started with a clean setup + and built from that. Reading and writing emails in Emacs is + definately not straighforward, I find it frustating that there are + so many pieces to put together, and a bunch of documentation to + read. I admit I find Gnus overwhelming. Still, like you said, this + is built-in into Emacs, and it can be used to read different type of + contents, like emails and newgroups, rss feeds, etc. Looking forward + to more documentation and tutorials from you, thanks again! +- BTW, I would have like to see a quick demo of Gnus while it is fully + configured and tweaked, just to tease me to bother using it! + +[[!inline pages="internal(2025/info/gnus-after)" raw="yes"]] + +[[!inline pages="internal(2025/info/gnus-nav)" raw="yes"]] + + diff --git a/2025/talks/graphics.md b/2025/talks/graphics.md new file mode 100644 index 00000000..34ba2314 --- /dev/null +++ b/2025/talks/graphics.md @@ -0,0 +1,23 @@ +[[!meta title="Modern Emacs/Elisp hardware/software accelerated graphics"]] +[[!meta copyright="Copyright © 2025 Emanuel Berg"]] +[[!inline pages="internal(2025/info/graphics-nav)" raw="yes"]] + +<!-- Initially generated with emacsconf-publish-talk-page and then left alone for manual editing --> +<!-- You can manually edit this file to update the abstract, add links, etc. ---> + + +# Modern Emacs/Elisp hardware/software accelerated graphics +Emanuel Berg (he/him) - Pronunciation: Swenglish, IRC: lacni, <https://dataswamp.org/~incal>, <mailto:incal@dataswamp.org> + +[[!inline pages="internal(2025/info/graphics-before)" raw="yes"]] + +Modern graphics with Emacs with hardware/software acceleration + +- <https://dataswamp.org/~incal/tmp/greeting.webm> +- <https://dataswamp.org/~incal/tmp/kitty-vt.webm> shows the software can be used from a -nw Emacs + +[[!inline pages="internal(2025/info/graphics-after)" raw="yes"]] + +[[!inline pages="internal(2025/info/graphics-nav)" raw="yes"]] + + diff --git a/2025/talks/greader.md b/2025/talks/greader.md new file mode 100644 index 00000000..341d4642 --- /dev/null +++ b/2025/talks/greader.md @@ -0,0 +1,41 @@ +[[!meta title="GNU Emacs Greader (Gnamù Reader) mode is the best Emacs mode in existence"]] +[[!meta copyright="Copyright © 2025 Yuval Langer"]] +[[!inline pages="internal(2025/info/greader-nav)" raw="yes"]] + +<!-- Initially generated with emacsconf-publish-talk-page and then left alone for manual editing --> +<!-- You can manually edit this file to update the abstract, add links, etc. ---> + + +# GNU Emacs Greader (Gnamù Reader) mode is the best Emacs mode in existence +Yuval Langer (he/him) - Pronunciation: /juval/ /lˈangeʁ/, IRC: cow_2001, +[@mu@posting.solutions](https://posting.solutions/users/mu), <mailto:yuval.langer@gmail.com> + +[[!inline pages="internal(2025/info/greader-before)" raw="yes"]] + +<https://gitlab.com/michelangelo-rodriguez/greader> + +A short talk explaining why Greader mode is needed, demonstrating its normal +use, some interesting features, some interesting customization variables, and +so on. Greader is a text-to-speech minor mode written by Michelangelo +Rodriguez. For various reasons, I find it hard reading long things on the +computer screen. Using Greader greatly helps me with that. I use it to read +sites on EWW, books with Nov.el, blogs with Elfeed, and various other texts I +copy from other programs and yank to a randomly named `C-x b alsdkfjoewjfocm RET` buffer. The author had also provided some interesting features he would +like me to cover. + +About the speaker: + +I am a mere user who loves reading, but damned to be a slow reader. Alas! +Thankfully, there's Emacs and Greader mode. + +Note: This talk will be narrated by a +text-to-speech engine because of a request from +the speaker. + + + +[[!inline pages="internal(2025/info/greader-after)" raw="yes"]] + +[[!inline pages="internal(2025/info/greader-nav)" raw="yes"]] + + diff --git a/2025/talks/hyperboleqa.md b/2025/talks/hyperboleqa.md new file mode 100644 index 00000000..31f02953 --- /dev/null +++ b/2025/talks/hyperboleqa.md @@ -0,0 +1,71 @@ +[[!meta title="Questions and answers to help you fly with Hyperbole"]] +[[!meta copyright="Copyright © 2025 Bob Weiner"]] +[[!inline pages="internal(2025/info/hyperboleqa-nav)" raw="yes"]] + +<!-- Initially generated with emacsconf-publish-talk-page and then left alone for manual editing --> +<!-- You can manually edit this file to update the abstract, add links, etc. ---> + + +# Questions and answers to help you fly with Hyperbole +Bob Weiner - Pronunciation: Wine-er, <https://savannah.gnu.org/projects/hyperbole/> , <https://rswgnu.github.io/hyperbole/man/hyperbole.html> , <mailto:rsw@gnu.org> + +[[!inline pages="internal(2025/info/hyperboleqa-before)" raw="yes"]] + +RSW, the autthor of Hyperbole, will answer your questions on Hyperbole +live and demonstrate how it can make you more productive. + +Hyperbole is an extensive, easy-to-use package that brings +hypertextual information management across all of Emacs to files with +minimal or no markup, including source code files. It works with all +modern versions of Emacs and does not require the use of any +third-party packages or compiled modules. Its keyboard-driven +minibuffer menus let you learn the key bindings for one set of +features at a time. Its global minor mode lets you turn on and off +its features with a single command. + +Many people express interest in Hyperbole but find its breadth makes +it difficult for them to get started with it. Or they struggle to +find specific workflows because of its infinite flexibility. This Q +and A session is intended to help people over this initial hump by +covering introductory topics such as the Action Key and how Implicit +Buttons in your existing documents act as hyperlinks automatically. +If more advanced topics are of interest, we could even answer +questions such as: + +- How can I quickly turn my Lisp expressions into hypertext buttons? + +- Can I point Hyperbole at thousands of Org files and have it quickly + jump to arbitrary sections in the files without any prior indexing + or need for a database system? + +- Can Hyperbole build a wiki with Org files, automatically + highlighting WikiWord references with no special markup and then + publish it to the web? + +- When programming, can Hyperbole help me rapidly select, move and + display programmatic information? + +- What if I need an entire outline with builtin hyperlink anchors + and automatic paragraph numbering? + +- So Hyperbole just augments everything I do in Org mode already? + +The session will be driven by the topics that participants want to +know about, so come with your questions and lets dive in together to +see whether its all just Hyperbole. + +About the speaker: + +Bob Weiner (rsw) has been developing hypertextual systems since the +dawn of the web in 1991 and using Emacs since 1982, though the other +day someone said I look 28-years-old, so neither I nor Hyperbole feel +that old. We have gained some perspective through the years, so maybe +I can help you learn something new or see something in a new way. + + + +[[!inline pages="internal(2025/info/hyperboleqa-after)" raw="yes"]] + +[[!inline pages="internal(2025/info/hyperboleqa-nav)" raw="yes"]] + + diff --git a/2025/talks/juicemacs.md b/2025/talks/juicemacs.md new file mode 100644 index 00000000..d724ad33 --- /dev/null +++ b/2025/talks/juicemacs.md @@ -0,0 +1,74 @@ +[[!meta title="Juicemacs: Exploring Speculative JIT Compilation for ELisp in Java"]] +[[!meta copyright="Copyright © 2025 Kana"]] +[[!inline pages="internal(2025/info/juicemacs-nav)" raw="yes"]] + +<!-- Initially generated with emacsconf-publish-talk-page and then left alone for manual editing --> +<!-- You can manually edit this file to update the abstract, add links, etc. ---> + + +# Juicemacs: Exploring Speculative JIT Compilation for ELisp in Java +Kana (they/them) - IRC: kanakana, Blog: https://kyo.iroiro.party - ActivityPub: @kana@f.iroiro.party - Bluesky: @kana.iroiro.party, <mailto:kana@iroiro.party> + +[[!inline pages="internal(2025/info/juicemacs-before)" raw="yes"]] + +Just-in-time (JIT) compilation helps dynamic languages run fast, and +speculative compilation makes them run faster, as has been showcased +by JVMs, LuaJIT, JavaScript engines, and many more JIT runtimes. +However, Emacs native-compilation, despite its JIT compilation +(`native-comp-jit-compilation`), does not speculate about runtime +execution, making it effectively a JIT-ish AOT (ahead-of-time) +compiler. By introducing a speculative runtime for ELisp, we could +potentially improve ELisp performance even further, with many new +optimization opportunities. + +Juicemacs is my work-in-progress toy project re-implementing Emacs in +Java. At its centre sits an ELisp JIT runtime powered by Graal +Truffle, a JIT interpreter framework based on partial evaluation and +Futamura projections. This talk will cover the following along with +some demonstrations: + +- What is Juicemacs and its ambition? How compatible is it (or does + it plan to be) with GNU Emacs and how feature-complete is it now? + +- What is speculative compilation? How is it useful for an ELisp JIT + runtime? + +- How is the performance of Juicemacs compared to Emacs nativecomp? + How do we interpret the benchmarks? + +- What is Truffle and partial evaluation? What is needed if we are + to implement a speculative runtime in C without Truffle? + +- What JIT techniques and other things does Juicemacs plan to + explore? How to get involved? + +Relevant links: + +- Accompanying blog post (slides + transcript + more discussions): + <https://kyo.iroiro.party/en/posts/juicemacs-exploring-jit-for-elisp/> + (scheduled to become available after the talk) + +- Project repository: <https://github.com/gudzpoz/Juicemacs> or + <https://codeberg.org/gudzpoz/Juicemacs> + +- ERT testing results: <https://emacsen.de/dev/tests/> + +- Zulip chat (devlog + discussions): <https://juice.zulipchat.com> + +About the speaker: + +Hello! This is Kana, an Emacs hobbyist and Java lover from China. A +few years ago I discovered the Truffle JIT compilation framework and +have since hoped to implement a JIT runtime myself. Last year I +finally started implementing one for ELisp, called Juicemacs, and +have made some progress. In this talk I will share what I've learned +during the journey, including how three interpreters out of four (or +more?) in Emacs are implemented in Juicemacs and how speculative +compilation can make some optimizations possible. + + +[[!inline pages="internal(2025/info/juicemacs-after)" raw="yes"]] + +[[!inline pages="internal(2025/info/juicemacs-nav)" raw="yes"]] + + diff --git a/2025/talks/languages.md b/2025/talks/languages.md new file mode 100644 index 00000000..4a54d73e --- /dev/null +++ b/2025/talks/languages.md @@ -0,0 +1,57 @@ +[[!meta title="Studying foreign languages with Emacs, Org Mode and gptel"]] +[[!meta copyright="Copyright © 2025 Marek"]] +[[!inline pages="internal(2025/info/languages-nav)" raw="yes"]] + +<!-- Initially generated with emacsconf-publish-talk-page and then left alone for manual editing --> +<!-- You can manually edit this file to update the abstract, add links, etc. ---> + + +# Studying foreign languages with Emacs, Org Mode and gptel +Marek (he/him) - https://github.com/keram, <mailto:nospam.keram@gmail.com> + +[[!inline pages="internal(2025/info/languages-before)" raw="yes"]] + +This talk will demonstrate the workflow I’ve built +around Emacs and Org mode for creating and +managing multilingual texts. My focus is on +English, Mandarin Chinese, and Pinyin (the +Romanized system for Chinese). A key part of this +setup is a custom major mode derived from +`text-mode`, designed to handle language switching +and structured study notes more effectively. On +top of this, I use `gptel` as a writing companion: +it helps catch typos, grammar mistakes, and subtle +issues that arise when switching between +languages. + +Beyond editing, I’ll show how I publish my study +notes to the web: +<https://keram.github.io/ihl-hanyu/index.html> . By +combining Org’s export features with a small +amount of custom JavaScript, I’ve added +interactive functionality such as text-to-speech +playback and vocabulary practice exercises. + +Attendees will see how these tools and techniques can be combined to: + +- Customize Emacs for multilingual writing and study workflows. +- Use Org mode as a framework for language learning materials. +- Leverage `gptel` for proofreading and feedback. +- Enrich exported Org documents with lightweight web enhancements. + +The talk will be of interest to language learners, Emacs users curious +about publishing workflows, and anyone who wants to see +how Emacs can as a personal learning environment. + +About the speaker: + +I am GNU Emacs enthusiast living in London, UK. Using Emacs for years for +work, personal life and study. + + + +[[!inline pages="internal(2025/info/languages-after)" raw="yes"]] + +[[!inline pages="internal(2025/info/languages-nav)" raw="yes"]] + + diff --git a/2025/talks/latex.md b/2025/talks/latex.md new file mode 100644 index 00000000..bd15369f --- /dev/null +++ b/2025/talks/latex.md @@ -0,0 +1,50 @@ +[[!meta title="LaTeX export in org-mode: the overhaul"]] +[[!meta copyright="Copyright © 2025 Pedro A. Aranda Gutiérrez"]] +[[!inline pages="internal(2025/info/latex-nav)" raw="yes"]] + +<!-- Initially generated with emacsconf-publish-talk-page and then left alone for manual editing --> +<!-- You can manually edit this file to update the abstract, add links, etc. ---> + + +# LaTeX export in org-mode: the overhaul +Pedro A. Aranda Gutiérrez (he, him) - paaguti@gmail.com, <mailto:paaguti@gmail.com> + +[[!inline pages="internal(2025/info/latex-before)" raw="yes"]] + +During the last year, the LaTeX backend in Org mode has received an overhaul. +The objectives, while keeping backward compatibility, were: + +- Better integration of the font-management features and packages with + lualatex/xelatex +- Reducing the amount of `#+LATEX_HEADER:` lines and avoiding to have to + include a pure LaTeX file to profit from them +- Flexibility, while using native Emacs Lisp features, like file/directory + local variables + +In this talk, I will present the new font management features in the LaTeX +backend and show a couple of examples of what can be achieved. + +About the speaker: + +After 30 years using Emacs, professionally and for my PhD, I'm currently +quite involved in org-mode, where I'm revamping the LaTeX backend. + +## Discussion / notes + +- Not a question but I will start using LaTeX fonts in org now +- Q: How's about video (mp4) support for ox-latex? I start to give + presentations with many videos. This is something that really push + me back using ox-latex. + - A: Experiment with a LaTeX file and then try to include the + relevant snippets in #+BEGIN_EXPORT latex + - [https://github.com/pdfpc/pdfpc/](https://github.com/pdfpc/pdfpc/) + can embed and play videos. For Org, latex fragments work fine. + - Thank you for all your information, I will try it and see. + Thank you. + + +[[!inline pages="internal(2025/info/latex-after)" raw="yes"]] + +[[!inline pages="internal(2025/info/latex-nav)" raw="yes"]] + + diff --git a/2025/talks/life.md b/2025/talks/life.md new file mode 100644 index 00000000..335676d3 --- /dev/null +++ b/2025/talks/life.md @@ -0,0 +1,92 @@ +[[!meta title="From FRDCSA to FLP2: Building AI-Powered Life Planning Systems in Emacs - A Journey from Research to Real-World Impact"]] +[[!meta copyright="Copyright © 2025 Andrew John Dougherty"]] +[[!inline pages="internal(2025/info/life-nav)" raw="yes"]] + +<!-- Initially generated with emacsconf-publish-talk-page and then left alone for manual editing --> +<!-- You can manually edit this file to update the abstract, add links, etc. ---> + + +# From FRDCSA to FLP2: Building AI-Powered Life Planning Systems in Emacs - A Journey from Research to Real-World Impact +Andrew John Dougherty (he/him) - Pronunciation: Andrew DOW-er-tee, IRC: aindilis, Website: <https://frdcsa.org> GitHub: <https://github.com/aindilis>, <mailto:adougher9@gmail.com> + +[[!inline pages="internal(2025/info/life-before)" raw="yes"]] + +Six years after my EmacsConf 2019 presentation on the Formalized Research +Database (FRDCSA), I return to share the evolution of this ambitious +project into the Free Life Planner (FLP) - a comprehensive AI-powered +system designed to help people manage the complex logistics of daily life, +from basic survival to thriving in challenging circumstances. + +This talk chronicles the development journey from FRDCSA's initial vision +of collecting and integrating all free software AI systems, to FLP's +practical focus on solving real-world problems like homelessness, medical +crises, and financial hardship. I'll demonstrate how Emacs serves as both +the development environment and user interface for a system that now +encompasses over 1000 subsystems including meal planning, financial +forecasting, medical management, and emergency preparedness. + +Key highlights include: + +Technical Architecture: How we've built FLP using SWI-Prolog as the core +reasoning engine, with Emacs providing the primary interface through 4680+ +custom ELisp functions. I'll show the integration of modern LLMs (Llama3, +DeepSeek-Prover-V2, etc) with classical AI planning systems (PDDL planners, +behavior trees, agent-based systems) all orchestrated through Emacs. + +Security Evolution: The transition from the original internet-connected +FRDCSA/FLP to air-gapped systems, and the development of FRKCSA/FLP2 as +open-source, internet-facing reboots. How we balance powerful AI +capabilities with privacy and security concerns. + +Real-World Impact: Using generative AI and our PresGen presentation system, +I'll showcase documented case studies where FLP has helped users navigate +homelessness, medical crises, and benefit loss scenarios. These aren't +hypothetical use cases - they represent the system's practical application +to urgent human needs. + +Emacs Integration: Deep dive into our Emacs-based development workflow, +including the CLEAR book reader for academic research, Verber planning +domain editor, UniLang integration for multi-system communication, and our +Academician mode for synchronized document processing. How Emacs serves as +mission control for a complex AI ecosystem. + +AI Planning Systems: Demonstration of how we've integrated automated +planning, temporal reasoning, and contingency planning into daily life +management. Users can ask "How do I get through the next month if I lose my +job?" and receive detailed, executable plans. + +Community Building: How FLP facilitates mutual aid networks and community +resilience, turning individual survival into collective thriving. The +system doesn't just help people - it helps them help each other. + +Future Directions: The roadmap for FLP2, including improved security +models, enhanced AI integration, and broader accessibility. How we're +preparing for a world where AI-powered life assistance could become a +virtual social safety net. + +This presentation will use our PresGen system to generate slides +dynamically, incorporating the latest AI developments and real user +feedback. Attendees will see both the technical implementation and the +humanitarian vision that drives this project - demonstrating how Emacs can +be the foundation for transformative social technology. + +About the speaker: + +Andrew Dougherty is the creator of the FRDCSA (Formalized Research +Database: Cluster, Study and Apply) and Free Life Planner projects. For +over 25 years, he has worked on integrating AI systems to solve real-world +problems, with a focus on helping vulnerable populations navigate complex +life challenges. His work spans automated planning, knowledge +representation, and practical AI applications. Andrew presented FRDCSA at +EmacsConf 2019 and has continued developing these systems with Emacs as the +primary development and deployment environment. He believes in using AI +technology to strengthen communities and provide practical assistance to +those who need it most. + + + +[[!inline pages="internal(2025/info/life-after)" raw="yes"]] + +[[!inline pages="internal(2025/info/life-nav)" raw="yes"]] + + diff --git a/2025/talks/llm.md b/2025/talks/llm.md new file mode 100644 index 00000000..f9b5633a --- /dev/null +++ b/2025/talks/llm.md @@ -0,0 +1,42 @@ +[[!meta title="Emacs, editors, and LLM driven workflows"]] +[[!meta copyright="Copyright © 2025 Andrew Hyatt"]] +[[!inline pages="internal(2025/info/llm-nav)" raw="yes"]] + +<!-- Initially generated with emacsconf-publish-talk-page and then left alone for manual editing --> +<!-- You can manually edit this file to update the abstract, add links, etc. ---> + + +# Emacs, editors, and LLM driven workflows +Andrew Hyatt (he/him) - @andrewhyatt.bsky.social, <mailto:ahyatt@gmail.com> + +[[!inline pages="internal(2025/info/llm-before)" raw="yes"]] + +This talk will outline the major ways LLMs are changing the world of +editors. There are a few different ways that LLMs are being used now: +smart completion, smart feedback, ad-hoc addition and transformation, and +out-of-band instructions which are typically done outside of the editor. +What are the current Emacs solutions for these, and what does it mean for +Emacs? + +- Intro and state of the art of LLMs and their workflow modalities that are currently used +- Smart completion: Emacs solutions and demo +- Smart feedback: Emacs solutions and demo +- Ad-hoc addition and transformation: Gptel, ellama, and other tools; several demos +- Out-of-band instructions: Aider, Claude Code, and more. +- Thoughts for what it an editor is for, for those working with LLMs +- Possible futures, and what these mean for Emacs, for editors in general, and for free software. + +About the speaker: + +Andrew Hyatt is a software engineer, and Emacs package author (llm, +websocket, vecdb, ekg, and more). LLMs have already transformed how many +people write and edit text. This talk explores the major workflows that +have developed and examines what these mean for Emacs. + + + +[[!inline pages="internal(2025/info/llm-after)" raw="yes"]] + +[[!inline pages="internal(2025/info/llm-nav)" raw="yes"]] + + diff --git a/2025/talks/modern.md b/2025/talks/modern.md new file mode 100644 index 00000000..e13e6ade --- /dev/null +++ b/2025/talks/modern.md @@ -0,0 +1,114 @@ +[[!meta title="Some problems of modernizing Emacs"]] +[[!meta copyright="Copyright © 2025 Eduardo Ochs"]] +[[!inline pages="internal(2025/info/modern-nav)" raw="yes"]] + +<!-- Initially generated with emacsconf-publish-talk-page and then left alone for manual editing --> +<!-- You can manually edit this file to update the abstract, add links, etc. ---> + + +# Some problems of modernizing Emacs +Eduardo Ochs (he/him) - Pronunciation: Oks, IRC: edrx, <http://anggtwu.net/>, more info at <http://anggtwu.net/contact.html>., <mailto:eduardoochs@gmail.com> + +[[!inline pages="internal(2025/info/modern-before)" raw="yes"]] + +<https://anggtwu.net/emacsconf2025.html> + +This talk is going to be a reworked version of the incomplete video +in <http://anggtwu.net/2025-modern.html>. I will start by presenting +several notions of "simplicity" and "elegance", and show that when I +started learning Elisp it was "simple" and "elegant" in a way that +it no longer is; then I will show how to fix some tiny parts of the +problem by 1) using functions based on \`cl-prin1', 2) redefining +some printing methods with "(cl-defmethod cl-print-object …)", and 3) using Common Lisp to understand some recent parts of Elisp that are not well-documented. + +About the speaker: + +Eduardo is the author of an Emacs package called eev that makes +total sense to a handful of people and no sense at all to +practically everyone else - except for one part of eev, called +"eepitch". He intends to explain the reasons for that in his talk. + +## Discussion / notes + +- Q: [from IRC] why the lambda representation has recently changed + to vector-like? + - A: It is easier to debug Emacs if different kinds of objects + have different types... keeping everything as lists is better + for quick-and-dirty code, but the developers wanted something + that felt less "dirty"... +- Q: Do you have hints for integrating eev into an already existing + workflow? + - A: I need to understand the other workflows to see what I can + recommend... can we discuss that on chat? If your workflow + includes Org code blocks then I will learn a lot from your + workflow too... + - I was hoping for some document with some general notes or ideas. + Right now eev feels very 'dominant'. While it works great I + find it difficult to mix eev and other Emacs tools + - Which other tools? Can we discuss examples? I was able to + integrate eev with practically all the other packages the I + know... +- Q: [from IRC] What do you think of org-mode and its executable src + blocks? That seems to overlap with what eev seemed to provide. + - A: I need to learn more about Org and source blocks!!! The + problem is that every time that I tried to learn source blocks I + started to ask many technical questions about the details and + got lost in a big maze of rabbit holes... see: + <[https://anggtwu.net/2021-org-for-non-users.html](https://anggtwu.net/2021-org-for-non-users.html)> - + I even tried to write functions that would display the data + structures behind source blocks, but at some point I gave up and + decided that I would only come back when I had people who could + help me... =( + - A: in short: when I tried to use Org mode I was always asking the wrong questions and trying to understand internal details that the developers treated as very advanced +- Q: I just tested on SBCL, Guile and Chez Scheme, and all of them use + opaque objects for functions (Chez: `#<procedure square>`, SBCL: + `#<FUNCTION F>`). Why is Emacs Lisp changing to using + semi-opaque vectors considered so bad? (Or is just making them fully + opaque better for beginners?) + - Note: on SBCL you can inspect that function object and see + both the lisp code and the machine code it compiles to + - A: It is not bad at all! +- Q: What defines `find-classtree'? + +- I must confess I am still confused about eev. same with hyperbole. + - A: eev doesn't make any sense from the description and the sales blurbs, all the few people who learned it learned it from the tutorials. but that video has a big example that is very easy to run it the person has eev installed - it starts a bit after 13:00. +- I often find myself wishing other systems had a help system like Emacs. +- It took me about 5 years to move from Space & Doom to vanilla Emacs 🤣 + - Now that I think about it, it was about the same for me. + - it was less about learning elisp and more about finding the motivation & internal justification to start from scratch. David Wilson's tutorials helped propel me as well + - did you switch from vim/evil bindings to "Emacs Standard" bindings? + - The Doom & Spacemacs Frameworks obfuscate how vanilla Emacs actually works... and so after a while it became a barrier + - not really, I use evil when writing code but tend to stick to vanilla bindings for most other buffers + - My own motivation was that one day Spacemacs broke an important org-mode keybinding (M-RET) in a way that I couldn't work around. I had managed to learn a decent amount of Elisp by then, so I decided to go try my first vanilla config. + - I think it took me a few months + - me similar: I use evil mode for all prose and programming buffers but Emacs modes for everything else. + - I had installed too many packages that I didn't understand at all + - I was really unhappy with performance as I started to rely more on LSP modes (this was before the bytecode implementation). Switching to vanilla & moving to Eglot really helped with that, then of course the bytecode changes make it a non-issue now + - thanks! just started using emacs about 4-5 months ago via Doom. But I can't help think I've skipped some important learnings. + - I was quite happy when I got my first taste of native compilation. It improved Elisp performance tremendously. + - I really recommend giving vanilla a try! You can use this trick to setup a parallel config so you can try it out before scrapping your current setup: https://stackoverflow.com/a/58039656/315827 + - That SO strikes me as slightly more complicated that necessary.. I would usually do it inline, like: emacs -Q -eval '(setq user-emacs-directory "~/emacs.1.d")' [filename, maybe] + - There is also the --init-dir flag. + - Fair comment, with your version it could be nice to build a shell function or alias so you can have multiple configs at one time + - shell function or alias is a great idea! taking a note to set that up for myself! +- Q: following along a little using IELM... which version of Emacs was used in the recording? My (symbol-function 'foo) is giving #f(lambda (a b) [t] (+ a b)) + - A: 31 + - I get #[(a b) ((+ a b)) (t)] (not nil for the last vector element as shown in the presentation) + - Emacs 31 would be a development build (vs from the release branch) so it's possible two different builds of 31 could have subtle differences depending on which commit was the last included in the given builds. +- A: the demo is here + - https://anggtwu.net/2025-modern/00-try-this.html + - https://anggtwu.net/2025-modern/00-try-this + - I think that people can run the demo with just this (find-wget "https://anggtwu.net/2025-modern/00-try-this") except for one line that with give an error because it depends on a function that is not in ELPA - actually not even on the github version yet... + - if anyone has eev installed and wants to try it please tell me... I think that one line of the demo calls a function that is not in the version of eev that is ELPA yet +- Q: What do the leading red * in the left window mean? + - A: https://anggtwu.net/eepitch.html#test-blocks +- I was using eev for a month or so then my guix package broke and I am too lazy to fix it +- Very informative talk. +- Thank you edrx! eev has been on my list of things to check for some time! +- Super cool seeing pieces of the workflow with eev, gives me some ideas! + +[[!inline pages="internal(2025/info/modern-after)" raw="yes"]] + +[[!inline pages="internal(2025/info/modern-nav)" raw="yes"]] + + diff --git a/2025/talks/n-angulator.md b/2025/talks/n-angulator.md new file mode 100644 index 00000000..9b1044b7 --- /dev/null +++ b/2025/talks/n-angulator.md @@ -0,0 +1,28 @@ +[[!meta title="Org-mode GTD vs N-angulator GTD"]] +[[!meta copyright="Copyright © 2025 Kevin Haddock"]] +[[!inline pages="internal(2025/info/n-angulator-nav)" raw="yes"]] + +<!-- Initially generated with emacsconf-publish-talk-page and then left alone for manual editing --> +<!-- You can manually edit this file to update the abstract, add links, etc. ---> + + +# Org-mode GTD vs N-angulator GTD +Kevin Haddock - <mailto:kevinbanjo@gmail.com> + +[[!inline pages="internal(2025/info/n-angulator-before)" raw="yes"]] + +Typical real-world GTD operations are compared in org-mode and N-Angulator + +EmacsConf 2021 talk on N-Angulator: <https://emacsconf.org/2021/talks/nangulator/> + +About the speaker: + +Long term emacs enthusiast showcases the power of his prototype +n-dimentional metadata indexer in a real world application + + +[[!inline pages="internal(2025/info/n-angulator-after)" raw="yes"]] + +[[!inline pages="internal(2025/info/n-angulator-nav)" raw="yes"]] + + diff --git a/2025/talks/open-mic.md b/2025/talks/open-mic.md new file mode 100644 index 00000000..53ffb322 --- /dev/null +++ b/2025/talks/open-mic.md @@ -0,0 +1,28 @@ +[[!meta title="Open session"]] +[[!meta copyright="Copyright © 2025 Participants"]] +[[!inline pages="internal(2025/info/open-mic-nav)" raw="yes"]] + +<!-- Initially generated with emacsconf-publish-talk-page and then left alone for manual editing --> +<!-- You can manually edit this file to update the abstract, add links, etc. ---> + + +# Open session +Participants + +[[!inline pages="internal(2025/info/open-mic-before)" raw="yes"]] + + +## Discussion / notes + +- this is shoshin here I'm pretty sure, with links to various stuff of his https://cicadas.surf/~shoshin/ oh, also, shoshin spotted again here https://mathstodon.xyz/@shoshin@buzz.cicadas.surf +- Q: What are some of the efforts going on to make more "modern UIs" in Emacs? By "modern UIs" I mean not just text-based. Kind of like webpages. + - I think quite a few talks on the dev track were concerned with that. +- I ask because sometimes I get jealous of my VSCode / Cursor friends when I look at their screen and see all kinds of interactive content. Also in the future, if AI models start returning interactive outputs instead of just text then Emacs will be at a disadvantage because it won't be able to render them. +- I encourge Emacs Carnival entries this month: https://curious.port111.com/2025/11/01/emacs-carnival-december-the-people.html + - I welcome your submission this month. Some of the most interesting people I've known are emacs people. I'm betting that's true for others too. + +[[!inline pages="internal(2025/info/open-mic-after)" raw="yes"]] + +[[!inline pages="internal(2025/info/open-mic-nav)" raw="yes"]] + + diff --git a/2025/talks/org-babel.md b/2025/talks/org-babel.md new file mode 100644 index 00000000..adc75eaf --- /dev/null +++ b/2025/talks/org-babel.md @@ -0,0 +1,108 @@ +[[!meta title="Making Org-Babel Reactive"]] +[[!meta copyright="Copyright © 2025 Abhinav Tushar"]] +[[!inline pages="internal(2025/info/org-babel-nav)" raw="yes"]] + +<!-- Initially generated with emacsconf-publish-talk-page and then left alone for manual editing --> +<!-- You can manually edit this file to update the abstract, add links, etc. ---> + + +# Making Org-Babel Reactive +Abhinav Tushar (he/him) - <https://lepisma.xyz>, [@lepisma@mathstodon.xyz](https://mathstodon.xyz/@lepisma), <mailto:abhinav@lepisma.xyz> + +[[!inline pages="internal(2025/info/org-babel-before)" raw="yes"]] + +In Org mode, you can add and execute small snippets of code using +Org-Babel. This lets you have an extremely useful mixed-language notebook like +environment inside Emacs. These days, many notebook systems provide fully +reactive notebooks where changes made in any cell or variable propagate to its +dependents without manual execution. This pattern is very useful for exploratory +data analysis, visualization, and many other use-cases that notebooks are +generally good for. + +Unsurprisingly, we can enable such reactivity in Org-Babel without too much +effort. In this talk, I will cover how to do that while also adding certain +other interaction niceties to make full use of the resultant reactivity. + +About the speaker: + +I am a programmer and machine learning engineer, and I have enjoyed working with +Org-Babel code blocks inside my writings. Other notebooks and platforms have +recently started to adopt fully reactive computation, which is something I have +liked a lot for exploratory analysis. In this talk, I will show how to add +similar reactivity in Org-Babel. + +## Discussion / notes + +- Q: Is there a web page describing this topic? + - A: The repository readme is here + [https://dev.lepisma.xyz/git/ob-rx/](https://dev.lepisma.xyz/git/ob-rx/) + but not sure if you meant any other kind of description. +- Q: If I understand correctly, recomputation happens upon saving; why + not tie it to C-c C-c instead? + - A: You can tie the (interactive) function it to C-c C-c too, I + usually prefer on-save reactivity when I need reactivity. +- Q: You mentioned that you are working on something similar for + JS\... what do you have now? (Thanks! =)) + - A: I don't have something public but I am using a webkit child + frame to show up d3 plots. Will add this in ob-rx once I have it + stable. +- Q: If this could work on C-c C-c and as a minor mode, then it could + perhaps be contributed upstream! Is that planned? + - A: Not thought about it, maybe. +- Q:Is it possible to do something reactive with :result file :file + my-generated.file (?) - yes you got it, it's just I make + intermediate compilation steps in org sometimes using that. + - A: Yes, the core mechanism is to just control the order of + execution for code blocks. So any normal workflow involving + files will also work. I have tried a few file workflows and + ended up needing ob-async so that Emacs doesn't get stuck. But + I am not sure if I understood your exact use case (?). +- Q:how does it handle circular dependencies? + - A: I haven't checked if my approach gets stuck in circular + dependencies (it should), but usually when I am writing + org-babel notebooks, I end up not having circular dependencies. + The check for this should be easy enough though and the + minor-mode could warn if it detects a circular dep. Will add + this in later versions. +- Q: How to get the block dependence plot? Very nice. + - It's a small piece of graphviz code in the minor mode, here + [https://git.sr.ht/\~lepisma/ob-rx/tree/master/item/ob-rx.el#L118](https://git.sr.ht/~lepisma/ob-rx/tree/master/item/ob-rx.el#L118) + - Thank you. +- Q: I'm curious what packages you're using for org appeance. It + looks like a mix of org-modern and some other packages. (Yes I am + also interested in your overall emacs theme) + - A: So my config is here + [https://git.sr.ht/\~lepisma/rogue/tree](https://git.sr.ht/~lepisma/rogue/tree) + but maybe the core part of the look is based on my older blog + + + + +- I'm really looking forward to this talk. +- Excited to see reactivity in org-babel! +- Your emacs theme is very pleasing!! +- I will try this type of dependence block. It looks like it can save + a lots of mental effort to organize my data. +- Excellent talk! +- [https://dev.lepisma.xyz/git/ob-rx](https://dev.lepisma.xyz/git/ob-rx) + \<- source code +- Cool project! +- Great talk and beautiful Emacs! +- This seems to add useful features to org-babel, great job! +- Very cool! +- Very interesting ! +- https://dev.lepisma.xyz/git/ob-rx/ +- this looks useful. +- I'm quite fond of Pluto.jl in Julia, so it'd be nice to have something like this that I can use from inside Emacs. + - Yeah, it also reminded me of Pluto + - But I really prefer working from inside Emacs, so I don't use Pluto that much. This is great + - It could hopefully minimize my usage of rstudio + - I was thinking something like that too for the R folk + - Indeed, rstudio is nice, but it is not emacs +- excellent talk by tushar + +[[!inline pages="internal(2025/info/org-babel-after)" raw="yes"]] + +[[!inline pages="internal(2025/info/org-babel-nav)" raw="yes"]] + + diff --git a/2025/talks/private-ai.md b/2025/talks/private-ai.md new file mode 100644 index 00000000..55660ac2 --- /dev/null +++ b/2025/talks/private-ai.md @@ -0,0 +1,32 @@ +[[!meta title="Emacs and private AI: a great match"]] +[[!meta copyright="Copyright © 2025 Aaron Grothe"]] +[[!inline pages="internal(2025/info/private-ai-nav)" raw="yes"]] + +<!-- Initially generated with emacsconf-publish-talk-page and then left alone for manual editing --> +<!-- You can manually edit this file to update the abstract, add links, etc. ---> + + +# Emacs and private AI: a great match +Aaron Grothe (he/him) - Pronunciation: Air-un Grow-the, <https://www.grothe.us> LinkedIn: <https://www.linkedin.com/in/aaron-grothe/>, <mailto:ajgrothe@yahoo.com> + +[[!inline pages="internal(2025/info/private-ai-before)" raw="yes"]] + +When experimenting with using AI with Emacs, many users have concerns. A few of the concerns that people have are the possibility of their information being shared with the AI provider (either to train newer models, or as a potential revenue source), the possibility of running up unpredictable costs with their cloud provider, and the potential environmental impact of using cloud AI. Using Private/Local AI models provide an AI environment that the user can fully control. User can add to it incrementally over time as their skills and experience grows. This talk will be a quick intro to using Ollama Buddy, Ellama, and gptel to add the ability to have a private AI integrated into your Emacs session. We’ll start with the basics and show people how they can add AI to their workflow safely and securely. Hopefully, people will come away from the talk feeling better about our AI futures. + +The talk will start with a simple implementation: Ollama and Ollama Buddy and a couple of models. After that it will build on that +for the rest of the 20 minutes. + +The goal is show the users multiple ways of using AI with Emacs and let them make their own choices. + +About the speaker: + +AI is everywhere and everyone is trying to figure out how to use it better. This talk will be a quick introduction to showing some +of the tools and techniques that a user can do to integrate AI privately and securely into their Emacs workflow. The goal is to help people take the first steps on what will hopefully be a productive journey. + + + +[[!inline pages="internal(2025/info/private-ai-after)" raw="yes"]] + +[[!inline pages="internal(2025/info/private-ai-nav)" raw="yes"]] + + diff --git a/2025/talks/python.md b/2025/talks/python.md new file mode 100644 index 00000000..59381c09 --- /dev/null +++ b/2025/talks/python.md @@ -0,0 +1,26 @@ +[[!meta title="Interactive Python programming in Emacs"]] +[[!meta copyright="Copyright © 2025 David Vujic"]] +[[!inline pages="internal(2025/info/python-nav)" raw="yes"]] + +<!-- Initially generated with emacsconf-publish-talk-page and then left alone for manual editing --> +<!-- You can manually edit this file to update the abstract, add links, etc. ---> + + +# Interactive Python programming in Emacs +David Vujic (he/him) - Mastodon <https://mastodon.nu/@davidvujic> + +[[!inline pages="internal(2025/info/python-before)" raw="yes"]] + +Learning Lisp was an eye opener for me. The Interactive way of writing code is Amazing. Emacs has great support for this in general already. For Python, there's limitations and I have looked for ways to make Python development more interactive (and fun). Python is what I do at work and in Open Source projects. It has lead me to develop Emacs features specific for Python: evaluating code with visual feedback, modify a running Python app without restarts, and some LLM support. I will demo and talk about what I have developed to make Python development interactive and joyful. + +About the speaker: + +My name is David and I'm a software developer. Colleagues and friends may know me as an early adopter of agile ideas and test driven development. I am passionate about things like that, and share the things I learn to the community and the people I work with. My favorite programming languages are Python and Clojure. On my spare time I practice outdoor Parkour & contribute to Open Source. + + + +[[!inline pages="internal(2025/info/python-after)" raw="yes"]] + +[[!inline pages="internal(2025/info/python-nav)" raw="yes"]] + + diff --git a/2025/talks/reader.md b/2025/talks/reader.md new file mode 100644 index 00000000..52ad2f55 --- /dev/null +++ b/2025/talks/reader.md @@ -0,0 +1,222 @@ +[[!meta title="An introduction to the Emacs Reader"]] +[[!meta copyright="Copyright © 2025 Divyá"]] +[[!inline pages="internal(2025/info/reader-nav)" raw="yes"]] + +<!-- Initially generated with emacsconf-publish-talk-page and then left alone for manual editing --> +<!-- You can manually edit this file to update the abstract, add links, etc. ---> + + +# An introduction to the Emacs Reader +Divyá - IRC: divya, Website: <https://www.phimulambda.org> Mastodon: <https://mathstodon.xyz/@divyaranjan>, <mailto:divya@subvertising.org> + +[[!inline pages="internal(2025/info/reader-before)" raw="yes"]] + +<https://codeberg.org/divyaranjan/emacs-reader> + +This talk will introduce a new document reader that I have been building for Emacs since the last few months. I will showcase the basic features of the document reader, how well it integrates with Emacs and the performance and other improvements that it provides in comparision to the existing document viewing options such as DocView, PDF Tools and others. + +I will also describe the core architectural decisions that were made, specficially the fact that it is a dynamic module and the pains and pleasures of interfacing Emacs with C and vice-versa. + +I will give a high-level tour of the codebase, which is pretty small as of now (<3K LOC), so that if a fellow Emacs developer wishes to contribute, they know where and how to get started. + +In conclusion, I'll summarize the current features we're in the process of developing, what challenges we're facing in diong so, and what we wish to work on for the upcoming versions of the package. + +About the speaker: + +I’m Divyá from India. My background has been as a mathematics teacher and now I'm a programmer. I’ve been hacking on free software as a hobby and, for the past three to four years, living inside Emacs. I loved reading PDFs in Emacs via pdf-tools, but poor hardware and maintenance gaps pushed me to build a faster reader. I learned MuPDF and Emacs Dynamic Modules and wrote The Emacs Reader: a dynamic-module-based, high-performance, resource-friendly document viewer for Emacs that supports PDFs and other formats (EPUB, CBZ) while integrating natively with Emacs. + +## Discussion / notes + +- Q: Is there scope for integrating the C library into Emacs itself + with muPDF becoming an optional dependency? + - A: That will entail having a pdf engine integrated into Emacs + source-tree, not sure if that\'s a good idea. +- Q: The dynamic modules sound great, and it\'s amazing they\'re there + since 2017. Why is it so slow to take off, do you think? Is there + prior art with them? + - A: Mostly because Elisp is so nice to use for almost everything + you need to do in Emacs. It\'s only in very specific cases that + you require to care about real-time latency and memory + efficiency. And packages like libvterm and others do use it for + such purposes. +- Q: How is pdf-tools difficult to install? I install it using the + built in package manager. Looking at the emacs-reader installation + instructions, I don\'t see how install it that easily. I don\'t use + use-package or straight. Question answered in presentation. +- A: Just the list of dependencies required to build epdfinfo itself + makes it difficult, and when you install pdf-tools it does a huge + autotools build as well. Emacs Reader only (and will always) depends + on MuPDF (and Emacs too.). +- Q: What tool(s) did you use to measure the memory usage between the + three packages? + - A: Valgrind\'s massif + massif-visualizer + - I've been using perf and then visualizing with hotspot when debugging FFI in Common Lisp... it's felt successful + - (I've never had success with valgrind, but I've not dug deep with it) + - I discovered perf only recently when I had a deep need for low-level optimisation (which is not something I often need) - it's a really nice workflow! +- Q: How is the conversion between ELisp and the foreign language type + system done? For example when interfacing with a C++ library that + makes heavy use of C++ object system and templates? + - A: Basically, dynamic modules make you write Emacs Lisp in your + language. Consult the blogpost above for a more elaborate and + complete explanation. +- Q: pdf-tools renders high quality images. Does emacs-reader do that? + - A: Yes! We can render high-quality images just fine! +- Q: Can one look at pdf metadata with emacs-reader? Can annotations + be added? Does it understand forms? Can it handle encrypted pdfs? + - A: Support for all of this is planned. +- Q: I installed emacs-reader already. It is as promised :) Great job! + How can I associate odt files to open with emacs-reader? + - A: It should just work with the **find-file** command**.** +- Q: If a pdf file is open in emacs-reader and I regenerate the pdf + with some changes, does emacs-reader actually refresh the pdf on its + own or do I have to reload the pdf? + - A: Yes if it\'s a complete file with the same filename, but no + if it\'s still being created with LaTeX - we need SyncTeX for + that +- Q: What are the challenges with integrating with SyncTeX and AucTeX? + This would be great to see as pdf-tools handles this well. + - A: Planned, no major obstacles anticipated. The only reason we + haven\'t done it yet is more important highlighting and text + selection features planned. +- Q: Loved that presentation! Will you be giving another talk on the + architecture you went over? A deep-dive there would be awesome. + - A: Not at EmacsConf, but check out my streaming sessions at + [https://tv.dyne.org/c/phimulambda](https://tv.dyne.org/c/phimulambda) + and I can talk about it there. +- Q: Is there search functionality? Something like isearch and occur? + - A: Not as such yet. But it is HIGH PRIORITY. +- Q: Does dynamic module prevent customization that Elisp usually + provide? (Advices, Hooks, etc). + - A: No, you can do everything on the Elisp side that you want. On + the dynamic side, it\'s a bit more tricky, not much support + there right now. +- Q: Follow-up on dynamic module: Do you usually create an Elisp shim + from the FFI and then use them with Elisp code? + - A: Yes, we usually wrap dynamic module functions in Elisp to + make sure the foreign function gets called when it\'s needed. +- Q: Is searching on the roadmap? Or is it already available as a + feature? Thanks! + - A: YES! HIGH PRIORITY \<3 +- Q: Will there be occur like searching? + - A: YES! Basically everything in PDF Tools is planned! +- Q: What is your timing expectation for it to appear on ELPA? + - A: By next major release, which will be in 1-2 months. +- Q: is this essentially FFI? + - A: Yup +- Q: interesting.. is that how webkit integration works? + - (audience): not really. +- Q: thank you. Are there other packages that use dynamic modules? + - (audience): Yes, vterm also uses a C module +- Q: Has any work been done to make org-noter work with emacs reader? + - (audience): not yet. It is in the plans, though. + - (audience): Nice. That would allow me to switch, because I use org-noter quite a bit. +- Q: Are any of you doing simple editing of PDFs in Emacs? I'm thinking about form-filling, adding signatures, that sort of thing + - A: that's something I'd also like to integrate once we have other basic features ready + - (audience): not yet. We do want to add annotation support though. Not sure if that's the same thing. + - I don't believe it is, but I could be mistaken + - A: slightly, but not exactly, mupdf does support forms and signatures so we shouldn't have much issues except making it work with emacs. + - I'm not fond of annotations, because it mutates the original PDF. +- Q: From the example when calling page 56, is there another thread immediately fetching the next 5 pages for cache? + - A: yeah indeed I'll talk about it later in the slides, you'll have to build mupdf from scratch in that case. + - A: there are multiple threads competing to fill the cache window, depending upon how long it takes to render each slice. +- Q: here is a question that I am a bit embarassed to ask... is there an easy way to install emacs-reader with package-vc without use-package? + - yes! + - I am asking just because I've been postponing learning use-package for ages + - you can use just package-vc totally. use-package uses package-vc under the hood anyway + - I tried this - (package-vc-install "https://codeberg.org/divyaranjan/emacs-reader") + - you need to do a build step. you can just go and do it manually +- Q: how does the dark mode compare to midnight mode in pdf-tools? + - it is simply inverting the colors + - Q: so it does not support setting the foreground and background colours? + - It does not. + - pdf-tools has pdf-view-themed-minor-mode that tries to match a PDF with the current theme. It's kinda nice. I'm glad Emacs Reader is aiming to have something similar in the near future. + - dark mode intergration with the dark themes would be cool +- Q: that is a question that I've had for ages - how do we handle that PDFs that (La)TeX generates one page at a time, and that will be broken until the last page is generated... + - using synctex +- Q: I will try to attend one of your streamings... where can I find info about them? + - A: https://tv.dyne.org/c/phimulambda + - we also have an IRC at #phi-mu-lambda you're also welcomed there edrx +- Q: Oh, emacs reader can open epubs? I use nov.el for that, and it has trouble sometimes with complex epubs. + - yup it can :D + - it comes for free with mupdf + - I mean if mupdf supports it, emacs reader will to + - the only thing we don't support is djvu, but i have plans of making it supported in upstream mupdf + - Oh cool, I didn't know about the other formats! + +- [https://codeberg.org/divyaranjan/emacs-reader](https://codeberg.org/divyaranjan/emacs-reader) + - [https://mupdf.com/](https://mupdf.com/) + - [https://www.phimulambda.org/blog/emacs-dynamic-module.html](https://www.phimulambda.org/blog/emacs-dynamic-module.html) + \<\-- that\'s a nice blog post. +- Love this arch diagram step through +- The linked blog for dynamic modules: + [https://www.phimulambda.org/blog/emacs-dynamic-module.html](https://www.phimulambda.org/blog/emacs-dynamic-module.html) +- You can set the maximum ram usage in Okular settings. If it is + configured to load the entire document scrolling is instant even in + large documents \[not the author: this is only relevant to hugely + beefy machines, surely? And it sounds like the Reader does it + naturally, if you will\] + +- 16GB of RAM goes a long way even for huge documents like technical + datasheets or photo pdfs. Just be careful not to open too many of + them while also having a lot of browser tabs. +- Looks like Reader simply displays the old page until the new one is + ready. While better than showing a white page it\'s not instant like + Okular +- A: Emacs reader doesn\'t require 16GB RAM to do that same, because + it doesn\'t need to cache everything at once, unlike Okular. The + talk shows a video demonstration of it getting stuck when not + configured to use maximum ram (in which it caches the pages.). +- I didn't realize pdf-tools was using so much RAM. + - I definitely noticed, lol + - The memory graphs are already a very compelling point for emacs reader. I will definitely give this a try. + - If you are dealing with large PDFs you *really* feel the difference + - For doc-view yes. For pdf-tools I have noticed it, but very rarely. + - But yeah, it is interesting how much memory it's taking + - I will definitely try this + - pdf tool caches the pages. once you are moving too fast, it is almost as slow as doc view, because it doesn't have it cached anymore +- This look promising! Dealing with PDFs is an important part of the + things I do with Emacs (academic work). Certainly that Pdf-tools was + already a much needed improvement to Doc-View - for example, not + being able to select text was quite an issue. So when you get text + selection and annotations working, I will be certainly looking + forward your library. +- Great talk about emacs-reader. Looking forward to using it. +- Thank you for making this! :-) +- Really tasteful typography on your slides divya + - A: Thank you it's all in Org :) +- I like pdf-tools, but I'm open to trying something new. +- pdf-tools mostly works well, but these points are very much valid +- also have been fairly satisfied with pdf-tools and avoided installation pain because the package manager of choice makes it easy, intrigued by reader and curious to try regardless though +- I've been using emacs-reader for some time - I have packaged it for nix, although I haven't submitted it to nixpkgs in the hope that emacs-reader will one day end up in ELPA/MELPA. https://git.sr.ht/~johnhamelink/nix/tree/master/item/home/modules/emacs/src/epkgs/reader.nix +- Love this arch diagram step through +- Org-noter integration would be very good + - I am also a big org-noter user + - A: I used pdf-tools for several years, indeed I love org-noter as well. certainly a priority integration for us. +- I like the use of diagrams in this talk. It makes it easier to understand. + - I just realized the thread pool has a bunch of "threads" in it! + - That's what those were! I was thinking, "What does 'S' stand for?" +- very impressive work, I'll have to try this later +- Very nice. I'm definitely giving this a try. +- On my OS: MuPDF version 1.19.0 too old. Require ≥ 1.26.0. + - yueah that is a major problem +- Already looks very promising and the upcoming features are likely to make me switch completely from pdf-tools. +- Exciting project! +- very cool! +- Playing with mupdf standalone, epubs look very nice! +- very nice talk. +- great talk divya! great talk indeed! +- Great talk, thank you! +- I'm sold on Emacs Reader. (looking forward to org-noter support) +- fantastic talk! many claps! =) +- Super cool, emacs-reader on the list to try, we'll see if I can get it installed before the ELPA release + +- I'm super excited about this 😊 +- great presentation 👏 +- Great talk about emacs-reader. Looking forward to using it. + + +[[!inline pages="internal(2025/info/reader-after)" raw="yes"]] + +[[!inline pages="internal(2025/info/reader-nav)" raw="yes"]] + + diff --git a/2025/talks/reference.md b/2025/talks/reference.md new file mode 100644 index 00000000..128a94ec --- /dev/null +++ b/2025/talks/reference.md @@ -0,0 +1,192 @@ +[[!meta title="Emacs as a fully-fledged reference manager"]] +[[!meta copyright="Copyright © 2025 Vidianos Giannitsis"]] +[[!inline pages="internal(2025/info/reference-nav)" raw="yes"]] + +<!-- Initially generated with emacsconf-publish-talk-page and then left alone for manual editing --> +<!-- You can manually edit this file to update the abstract, add links, etc. ---> + + +# Emacs as a fully-fledged reference manager +Vidianos Giannitsis (he/him) - IRC: vidianos, <https://github.com/Vidianos-Giannitsis>. Vidianos Giannitsis on LinkedIn <mailto:vidianosgiannitsis@gmail.com> + +[[!inline pages="internal(2025/info/reference-before)" raw="yes"]] + +Even though all of my note-taking and literature organization +infrastructure has been in Emacs for a few years, I haven't been able to +make myself independent from a literature manager (Zotero in my case) +until recently. Zotero was just too convenient. You can capture articles +seamlessly (although downloading attachments didn't always work as +intended), organize them in directories and take a quick look at your +lists to determine what to read next, before you move on to actually +reading them and taking notes. + +This year, I finally decided that I am tired of this and I will find a +way to do this fully in Emacs. This talk will be discussing my findings +in this regard. A lot of this was built in Ebib. It turns out that a lot +of what I considered useful for this workflow was already available +through this excellent software, built inside Emacs. Not everything +worked as I wanted on installation, but naturally, this is Emacs, so I +just hacked my way through getting the exact behaviour I wanted. This +required integration with other tools and especially a closer +interaction between Ebib and Org-roam. This came out incredible and I am +now very happy with using it, so I thought I should also showcase it in +EmacsConf! + +With this integration ready, only capturing articles from the web +remains. Zotra can capture articles in a way about as seamless as +Zotero's (it actually uses Zotero's translators, but from Emacs). +Attachments remain a problem sometimes, but that's publishers making +attachments hard to get because third party software can't see that you +have full access to them, so I have decided to do those mostly manually, +I often did that with Zotero anyways. + +Relevant links: + +- [Zotra - Capturing Articles](https://github.com/mpedramfar/zotra) +- [Ebib - Organizing literature before and after reading](https://joostkremers.github.io/ebib/) +- [Org-Roam - The missing link to create an effective reading list](https://www.orgroam.com/) +- [Bibtex Completion - Useful tools for manipulating literature](https://github.com/tmalsburg/helm-bibtex) +- [Ebib section of Dotfiles/emacs/.emacs.d/libs/zettelkasten.org at master · Vidianos-Giannitsis/Dotfiles · GitHub](https://github.com/Vidianos-Giannitsis/Dotfiles/blob/master/emacs/.emacs.d/libs/zettelkasten.org#ebib) + +About the speaker: + +I'm Vidianos and I'm currently doing my PhD in KU Leuven in Belgium. +Working on research means I have a need for good tools to help me with +my research. I have been using Emacs for roughly 5 years now and I can +confidently say it is the number one tool that helps me with this +research. This talk will be all about how it helps me and about finally +being able to remove external reference managers from my workflow, +something I have wanted for years, but that I haven't managed to do +before this. + +## Discussion / notes + +- Check out the ebib manual for an explanation of the features I + showed and more! + [https://joostkremers.github.io/ebib/ebib-manual.html](https://joostkremers.github.io/ebib/ebib-manual.html). + - Also my ebib config for the custom things [https://github.com/Vidianos-Giannitsis/Dotfiles/blob/master/emacs/.emacs.d/libs/zettelkasten.org#ebib](https://github.com/Vidianos-Giannitsis/Dotfiles/blob/master/emacs/.emacs.d/libs/zettelkasten.org#ebib) +- My 2022 talk if you're interested in the rest of my workflow + regarding scientific literature + [https://emacsconf.org/2022/talks/science/](https://emacsconf.org/2022/talks/science/) +- Use link to directly download bib info to the library is cool. I + always did that manually. +- The reading list, for me every download item will directly inside a + manuscript. + +- Q: Which version of \`org-ref\` you are using? I am so dependent on + org-ref and org-mode, so that I had huge resistant to update + \`org-mode\`, \`org-ref\`, \`ivy-bibtex.el\`, etc + - A: I'm not sure how recently I updated, so it may not be + master, but I generally try to keep up to date with the packages + I use. I generally haven't had many problems, unless when there + is a new major version, which may need an afternoon to confirm + everything works. + - Thanks for sharing this. +- Q: Have you try ivy-bibtex/bibtex-completion.el, how it compares to + ebib? + - A: I think they are not mutually exclusive. I typically use + ivy-bibtex to find an article quickly, to initialize a + literature note (integration with org-roam-bibtex) or to add a + pdf to the entry, where it will automatically rename it as it + should. ebib is more of a tool to manage the .bib file more, + find an entry with full text search (instead of just + Author/Title search) and reading list management. There may be + some overlap, but I use both a lot. + - Got it, quick check with ivy-bibtex etc. + - ebib is for heavy lifting for academics +- Q: Do you find showing abstract on your navigation panel helpful? I + always delete all the abstract info in my bib to make things little + concise. Just want to know you thoughts on this. + - A: I like showing the abstract. It can be long and reduce + visibility, but the whole point of searching with the navigation + panel inside ebib is that I cannot easily find it through an + Author/Title search. Therefore, the abstract is often the next + line of search where you will find what you were looking for, so + for me it is helpful. I sometimes also use the small comments I + leave on the annote entry for this purpose. + - Try to find relevent info using search. Abstract helps you + search better. + - annotation entry also help +- Q: it seems that there's a meta problem here: too much + information. Do your tools reduce cognitive load? + - A: There is definitely too much information, but that is an + innate problem of handling a lot of literature. I think these + tools can reduce cognitive load, because things don't stay in + my mind. They can be moved to the computer, which can handle + more overload than my brain. So it is to a large extent the + externalization that reduces the load, because too much + information is a reality with literature. + - thanks. Sounds like externalizing the problem is the point. +- Q: When you download a new article, how do you integrate its file to + your database? For example, do you move and rename the file + manually? + - A:Find the file in ivy-bibtex, run M-o, select l (add PDF to + library), find from file (f), find where you saved it and it + will be renamed automatically. It is not moved automatically, + but the rest of my packages know to find it in the folder I save + initially. You may look at the README of the package for more + details, it is one of the more well written ones in my opinion + ([https://github.com/tmalsburg/helm-bibtex](https://github.com/tmalsburg/helm-bibtex)). + - Ok, I see, Ivy-bibtex has a function for this, thanks! +- Q: What about annotations with ereaders. veiwng and taking on emacs + or erader touchscreen highlighting and notes, org-noter I think + would be an alternative out of ebook anotation alternative? + - A: I do not use an ereader. For touchscreen, I have a tablet, + which runs Emacs natively and I can work with org-noter with + touch, but in that case, nothing in the general workflow + changes. For books, I know org-noter also works with epub files, + so you can also directly take the notes there. If you use an + ereader for annotating that doesn't run Emacs, this is + obviously more complex. +- Q: How well do you feel about making notes an web sites, pdf, + videos, I know pdf is ussaly good but others I am less sure about? + - (Not the author) i always try to convert it to pdf, so only one + file format to worry about. Video is another story. + - I agree with the above comment. PDF is just the easiest to deal + with in general, so I try to go for it. For taking notes on web + sites, there is org-roam-protocol + ([https://www.orgroam.com/manual.html#org_002droam_002dprotocol](https://www.orgroam.com/manual.html#org_002droam_002dprotocol) + although I personally don't use it a lot. Video is much more + complex, but in practice, I tend to not annotate videos + directly, with a timestamp, but rather to take crude notes on + paper during the video and organize them online at a later + point. +- Q: how do you add a new article from scratch, a pdf that you did not + have in your bib file? How do you generate the 'bib' entry with + metadata and abstract? + - (Not the author) He mentioned he uses Zotra, which does that. + [https://github.com/mpedramfar/zotra](https://github.com/mpedramfar/zotra) + - Yes, this is my approach. Specifically the function + zotra-add-entry. +- Q: When you fact check every details for a bib entry? The author + names, published journal, doi stuff. Always painful for me when I + need to upload a final version of a manuscript. Tons of work. Maybe + I can do it at the download step. + - A: I haven't worried about that, because I think automatically added + bib entries work well. But Org-ref has a tool to automatically check + it. I generally think it is best to do it directly when you add + them. + - [https://github.com/jkitchin/org-ref/blob/master/org-ref-bibtex.el#L119](https://github.com/jkitchin/org-ref/blob/master/org-ref-bibtex.el#L119) + - Yes, i did it manully, so some time I have issues. + +- Comment: I just use Org headings for all the metadata. Why bother with bib files. https://0x0.st/Kvbi.txt + With Org, you can search through notes and title and metadata together. I use org-ql, but you can use anything that can search Org headings. And use attachments. can also directly export to .bib from org. with headings, reading list is just natural - assign todo to heading + - A: You can move this all to org, yes, but I think .bib is very ubiquitous and a lot of tools work well with it, so I haven't really felt the need to move away from it. It is an interesting approach though. I have seen some others use it as well + - A: Making a reading list is easy indeed. The primary goal of my additions were to be able to manipulate it without ever worrying about the file itself. I find it works better/faster for me if I can always access the content I want without opening the file. Which is mostly what the code I wrote for this does. +- I noticed that his command searches are automatically prefixed with "^" to prevent more generalized matching (e.g. all comands that have "copy") + - A: I believe that is done automatically by counsel-M-x. It served for something, but I don't remember exactly why. +- Q: for viewing pdfs, do you use pdf-tools? I always found it clunky imo. + - A: Yes, its pdf-tools With org-noter to take notes side by side. And I haven't had any problems with it. It generally works well. + - (audience): I tend to always call out to the external PDF viewers. + - (audience): maybe I didn't try it well enough, but I just prefer external viewers. pdf-tools feels like an image viewer to me + - A: Some external viewers can have more features, but again, the problem comes down to it not being Emacs :D Being in Emacs is better than not being in Emacs. + - A: Are you sure you are talking about pdf-tools and not doc-view? Because those problems are very much in doc-view, but I wouldn't say for pdf-tools. +- It's always interesting to watch other people work in their emacs environment. +- Thanks for the talk! There was a lot to digest, I'll have to rewatch it. + + +[[!inline pages="internal(2025/info/reference-after)" raw="yes"]] + +[[!inline pages="internal(2025/info/reference-nav)" raw="yes"]] + + diff --git a/2025/talks/sat-close.md b/2025/talks/sat-close.md new file mode 100644 index 00000000..b4c6f458 --- /dev/null +++ b/2025/talks/sat-close.md @@ -0,0 +1,33 @@ +[[!meta title="Saturday closing remarks"]] +[[!meta copyright="Copyright © 2025 ${speakers}"]] +[[!inline pages="internal(2025/info/sat-close-nav)" raw="yes"]] + +<!-- Initially generated with emacsconf-publish-talk-page and then left alone for manual editing --> +<!-- You can manually edit this file to update the abstract, add links, etc. ---> + + +# Saturday closing remarks + + +[[!inline pages="internal(2025/info/sat-close-before)" raw="yes"]] + +## Discussion / notes + +- Wooooooo! Thanks all! Looking forward to tmmr +- 🎉 Thank you everyone :) Lots of really interesting stuff! +- Excited for another day of EmacsConf tomorrow +- It's been very interesting today +- thank you for the conference +- you all did great +- This is one of the most organized conferences I have attended and it is like that every year +- Y'all deserve amazing props +- Had a lot of fun today and looking forward to more sessions tomorrow. Thanks to organisers and presenters! +- Also want to thank you for making the videos available on many different mediums just-in-time. + + + +[[!inline pages="internal(2025/info/sat-close-after)" raw="yes"]] + +[[!inline pages="internal(2025/info/sat-close-nav)" raw="yes"]] + + diff --git a/2025/talks/sat-open.md b/2025/talks/sat-open.md new file mode 100644 index 00000000..723867b5 --- /dev/null +++ b/2025/talks/sat-open.md @@ -0,0 +1,21 @@ +[[!meta title="Saturday opening remarks"]] +[[!meta copyright="Copyright © 2025 ${speakers}"]] +[[!inline pages="internal(2025/info/sat-open-nav)" raw="yes"]] + +<!-- Initially generated with emacsconf-publish-talk-page and then left alone for manual editing --> +<!-- You can manually edit this file to update the abstract, add links, etc. ---> + + +# Saturday opening remarks + + +[[!inline pages="internal(2025/info/sat-open-before)" raw="yes"]] + + + + +[[!inline pages="internal(2025/info/sat-open-after)" raw="yes"]] + +[[!inline pages="internal(2025/info/sat-open-nav)" raw="yes"]] + + diff --git a/2025/talks/schemacs.md b/2025/talks/schemacs.md new file mode 100644 index 00000000..62ca5321 --- /dev/null +++ b/2025/talks/schemacs.md @@ -0,0 +1,90 @@ +[[!meta title="One year progress update Schemacs (formerly Gypsum)"]] +[[!meta copyright="Copyright © 2025 Ramin Honary"]] +[[!inline pages="internal(2025/info/schemacs-nav)" raw="yes"]] + +<!-- Initially generated with emacsconf-publish-talk-page and then left alone for manual editing --> +<!-- You can manually edit this file to update the abstract, add links, etc. ---> + + +# One year progress update Schemacs (formerly Gypsum) +Ramin Honary (he/him) - Pronunciation: "Rah-mean" (hard-H) "Ho-na-ree", Mastodon (preferred): ; blog: <https://tilde.town/~ramin_hal9001>; Codeberg: <https://codeberg.org/ramin_hal9001/schemacs> - SourceHut: <https://sr.ht/~ramin_hal9001> + + + +[[!inline pages="internal(2025/info/schemacs-before)" raw="yes"]] + +During EmacsConf 2024 last year I presented my work on a +clone of GNU Emacs written in Scheme which also clones the +Emacs Lisp programming language. In this talk, I will +briefly present an overview of the project similar to the +talk I gave last year, and then discuss the progress that +I have made on this project in the past year. + +To quote the description from the presentation I gave last +year: + +> Unlike other editors which only clone the Emacs +> keybindings (Edwin, Jed, jEdit, Jove, Lem, MG, Yi, +> Zile), I hope my Emacs clone will also fully clone the +> Emacs Lisp programming language well enough that many of +> the packages in ELPA, Non-GNU ELPA, and perhaps even +> MELPA, can be used in [Schemacs, formerly "Gypsum"] +> without any modification. I would also like to talk a +> little bit about how I am implementing it (the software +> architecture), and invite others to contribute. +> +> I think my project is of interest to many Emacs users +> because, firstly, I have personally spoken with a +> relatively large number of people who have expressed +> interest in making Emacs programmable in Scheme. +> Secondly, there is a good amount of prior art for Scheme +> implementations of Emacs. There are even builds of Emacs +> that link to Guile which provides a "scheme-eval" +> built-in function that translates between Elisp data +> types and Scheme data types. The Guile compiler itself +> ships with an Emacs Lisp compiler as well, although it +> does not provide enough of Emacs's built-in functions to +> be of much use. + +The progress I have made so far: + +- Ported all Guile-specific parts of the Emacs Lisp + interpreter to fully standards-compliant R7RS Scheme + code. The interpreter now runs on a few different + Scheme implementations, not just Guile. The GUI remains + Guile-only for now. + +- Implemented a new R7RS-compliant lexer and parser which + constructs an Abstract Syntax Tree (AST) data structure, + making it easier to find the source of errors and + produce informative back traces. + +- Implemented enough of the Emacs Lisp interpreter to be + able to load the "subr.el" source file, this defines + what you might call the "core" of the Emacs Lisp + language, including macros such as "defun" and "lambda." + +My primary goal continues to be to make it as easy as +possible for other people to contribute to this +project. Pretty soon it should be possible to run the +Emacs Regression Test suite (ERT) in the cloned Emacs Lisp +interpreter. Once this is done, we can run the same test +code used during the building and testing GNU Emacs to +test Schemacs. Hopefilly then, anyone will be able to +select a failing test, write code to make the test pass, +and submit a patch. + +About the speaker: + +I am Ramin Honary, I am have been professional software +engineer for 17 years and I have always had a passion for +functional programming languages, especially Haskell and +the Lisp family of languages. + + + +[[!inline pages="internal(2025/info/schemacs-after)" raw="yes"]] + +[[!inline pages="internal(2025/info/schemacs-nav)" raw="yes"]] + + diff --git a/2025/talks/sun-close.md b/2025/talks/sun-close.md new file mode 100644 index 00000000..3f029db3 --- /dev/null +++ b/2025/talks/sun-close.md @@ -0,0 +1,21 @@ +[[!meta title="Sunday closing remarks"]] +[[!meta copyright="Copyright © 2025 ${speakers}"]] +[[!inline pages="internal(2025/info/sun-close-nav)" raw="yes"]] + +<!-- Initially generated with emacsconf-publish-talk-page and then left alone for manual editing --> +<!-- You can manually edit this file to update the abstract, add links, etc. ---> + + +# Sunday closing remarks + + +[[!inline pages="internal(2025/info/sun-close-before)" raw="yes"]] + + + + +[[!inline pages="internal(2025/info/sun-close-after)" raw="yes"]] + +[[!inline pages="internal(2025/info/sun-close-nav)" raw="yes"]] + + diff --git a/2025/talks/sun-open.md b/2025/talks/sun-open.md new file mode 100644 index 00000000..854236fe --- /dev/null +++ b/2025/talks/sun-open.md @@ -0,0 +1,21 @@ +[[!meta title="Sunday opening remarks"]] +[[!meta copyright="Copyright © 2025 ${speakers}"]] +[[!inline pages="internal(2025/info/sun-open-nav)" raw="yes"]] + +<!-- Initially generated with emacsconf-publish-talk-page and then left alone for manual editing --> +<!-- You can manually edit this file to update the abstract, add links, etc. ---> + + +# Sunday opening remarks + + +[[!inline pages="internal(2025/info/sun-open-before)" raw="yes"]] + + + + +[[!inline pages="internal(2025/info/sun-open-after)" raw="yes"]] + +[[!inline pages="internal(2025/info/sun-open-nav)" raw="yes"]] + + diff --git a/2025/talks/swanky.md b/2025/talks/swanky.md new file mode 100644 index 00000000..de939730 --- /dev/null +++ b/2025/talks/swanky.md @@ -0,0 +1,49 @@ +[[!meta title="Swanky Python: Interactive development for Python"]] +[[!meta copyright="Copyright © 2025 Scott Zimmermann"]] +[[!inline pages="internal(2025/info/swanky-nav)" raw="yes"]] + +<!-- Initially generated with emacsconf-publish-talk-page and then left alone for manual editing --> +<!-- You can manually edit this file to update the abstract, add links, etc. ---> + + +# Swanky Python: Interactive development for Python +Scott Zimmermann (he/him) - <mailto:sczi@disroot.org> + +[[!inline pages="internal(2025/info/swanky-before)" raw="yes"]] + +Project repository: <https://codeberg.org/sczi/swanky-python/> + +I'm working on a development environment for +Python based on Emacs' SLIME mode for Common Lisp. +In this talk I'll demonstrate some of its +features, like an object inspector, interactive +backtrace buffer, thread and async task viewer, +and function tracer. I'll also discuss its +implementation and limitations, along with future +directions for the project. + +This project aims to bring a Lisp and Smalltalk +inspired style of development to Python. You get a +faster feedback loop by developing inside a +running python process without needing to restart +your program and lose state on changes, allowing +you to immediately inspect the results of code you +write. We can also provide more advanced tooling +based on runtime introspection, as we have more +information available at runtime than is available +to traditional tools based on static analysis of +source code, mainly we have the actual values of +variables rather than just their types. + +About the speaker: + +Python is eating the world. Emacs is eating my computing environment. I'm +attempting to get them working together. + + + +[[!inline pages="internal(2025/info/swanky-after)" raw="yes"]] + +[[!inline pages="internal(2025/info/swanky-nav)" raw="yes"]] + + diff --git a/2025/talks/weights.md b/2025/talks/weights.md new file mode 100644 index 00000000..ea1c2908 --- /dev/null +++ b/2025/talks/weights.md @@ -0,0 +1,88 @@ +[[!meta title="Weightlifting Tracking with Emacs on Android"]] +[[!meta copyright="Copyright © 2025 Zachary Romero"]] +[[!inline pages="internal(2025/info/weights-nav)" raw="yes"]] + +<!-- Initially generated with emacsconf-publish-talk-page and then left alone for manual editing --> +<!-- You can manually edit this file to update the abstract, add links, etc. ---> + + +# Weightlifting Tracking with Emacs on Android +Zachary Romero - <https://zacromero.com/>, <mailto:zacromero@posteo.com> + +[[!inline pages="internal(2025/info/weights-before)" raw="yes"]] + +The package covered in the talk can be found at <https://github.com/zkry/org-fit> + +Emacs on Android opens up a world of new possibilities for replacing +proprietary software with free alternatives. One such use case is +using Emacs and org-mode to replace the popular weightlifting tracking +apps like Hevy and Strong. + +Org-mode provides a solid foundation to replicate these apps +functionalities but by itself is cumbersome to use in the middle of a +workout. With the help of Elisp however, we can provide an experience +as seamless as these paid apps, but with added flexibility and +freedom. + +This talk will go over the package itself as well as the way org-mode +can be used as the foundation for applications on top of it. + +About the speaker: + +I'm Zachary Romero, a software developer and Emacs enthusiast. I've +been weightlifting for about three years when I grew tired of the +many apps constantly trying to push subscriptions. Knowing the many +things org-mode can do, I set about trying to replicate the same +functionality in Emacs. + +## Discussion / notes + +- Q: Very cool! It would be nice to build some One-rep max calculation + formulae into calc + - A: +- Q:Do you have plans to extend this to clock-report kind of + reporting? graphical reports, etc? + - A: Yes, yeah, exactly. Graphical reports. These are all something that, It currently doesn't have, and these nice apps do have. They have charts of all kinds. You can see your progress from week to week on various exercise. They have charts galore, all these fancy apps. And in theory, it wouldn't be hard at all to like, 'cause like, you know, there's gnuplot. There's those, and then they have like very good packages on any of them. So, I mean, I assume integration would be pretty seamless. So yes, that is definitely on the list of things I want to do. +- Q: Have you ever wanted to modify the functionality on your mobile + device while working out? Any good or challenging experiences or + tips with that? + - A: Yeah, that's actually funny. There was a time where, yeah, I mean, like debugging, there was like some bug I was having with my code. And so I have, in the middle of a workout, yeah, start, like, open up the debugger and kind of, and the cool thing is that, I mean, the biggest thing, like, the biggest thing by far is unexpected keyboard. <https://github.com/Julow/Unexpected-Keyboard> Like, I can't state how, I don't know how much Unexpected Keyboard is, because, like, with Unexpected, with the Unexpected, with that keyboard, you can literally just, like, it's, it's not hard at all to, like, you can do M-x or C-M-x or you know C-u C-M-x to debug, like, you can do all the key bindings with unexpected keyboard. There's no problem whatsoever with that part. The only part is muscle memory. It's because you get the muscle memory of the emacs key binding and so you have to kind of like yeah... I mean that translation is actually kind of you have to think about it like, like, okay, what was that key binding again? And you have to kind of like do it with your fingers. And it was like doing it on the, on Android is, I mean, it takes a little longer and it's just a different, yeah, different set of different muscle memory. +- Q: Sorry, if you covered this, but does the rest timer end with an audible notification at the end of the time? + - A: That's the cool thing. So with the Emacs, with the Android notification settings, you can, I can show that again in more detail. So bonus settings, apps, pick the app, notifications. And then here we get that org-fit-rest-over. And so here you can set, for example, whether it's a silent notification. And so this won't, this won't make it make noise. You can do... or like make it have a noise, and so you can have it make sure it's popped on the screen and then you can just pick whatever ringtone you want, and you can make it look like yeah. Then obviously you have the whole volume setting, so you can, when you're working you can just set the volume pretty high, so if you do happen to set your phone kind of away, you set the volume high, maybe make a really annoying sound, a loud sound you won't miss. And then, yeah, you'll be set. So that works. That was actually one of the biggest surprises. I wasn't expecting that to work so nice. +- Q: You mentioned file sync, what have you found works well for you? + - A: So in terms of what, yeah, I did have to play around with this a lot, but Syncthing Fork is what I eventually settled on. I mean, this is another thing that, I mean, I don't, it wouldn't nearly be as usable, like Emacs wouldn't be nearly usable without it. So Syncthing Fork essentially, okay. And then I also have like a droplet on DigitalOcean, just like, so that's kind of like the whole, that's kind of like what bridges it together. So like, so my Emacs can sync to that, and then my machine also syncs to that. And so I don't have to have them both on the same time. It's just there, that copy. And so that works pretty well. I also found that editing code in general, I think this also goes with the development experience question. +- Q: HAve you tried other keyboards such as Hacker\'s keyboard + - A: Not recently. I haven't, so I couldn't compare them. + - Q: Another keyboard question - have you tried the \"flickboard\" + on f-droid? It\'s the craziest keyboard, you use one thumb + - A: Oh, that is interesting. Let me see. Flickboard. Flickboard. Yeah, I'll have to try that. I'm curious to get the key bindings done. I wonder if the key bindings and all that work. I hope that's interesting. I'll definitely look into that. +- Q: This user interface is simplified but still keyboard based, can + you think of ways to make it more touch based? + - A: So the only thing currently, I think, of specific touch-based functionality I have, which, so this is like, so let's see, it's C-x C-+, That key binding wrong, what was it? Okay, whatever. Yeah, so in terms of touch commands, so pressing on a headline will actually unfold it and move your cursor to the next field that you, yeah, so like, yeah, at the beginning of the table. So like, there's that, yeah, and so. It sounds like that is something you're thinking about. Yeah, exactly. Like, you know, maybe like a little thing at the bottom, like, so this thing has the, this app has this, if you notice, like, if you do something, it has this rest timer at the bottom. So I mean, it wouldn't be, it wouldn't be pretty, it wouldn't be, it seems quite doable to just have like, maybe something at the bottom, like for a timer, and then you can just like plus 15 seconds or cancel it or, you know, just, and then those could all be just like touch based. And so, yeah. And then obviously just like, just like classic Emacs, the Emacs, like clicking actions, they just, yeah, they work just fine. Like, so there's no like weird Android touch thing you have to worry about. +- Q: I\'m curious about the development experience. Do you do + everything on the phone? + - A: And that's the thing. None of my development in general is done on the phone. just because, for one, my muscle memory isn't there, and two, just in general, typing on a virtual keyboard on the phone, it's just really slow. So yeah, all the development is done on my machine, but then there's the problem of you have to have an init.l in your Android, and so you're going to have to write, you know, I found like you'd have to like, when you first get Emacs set up, you might have to like write some, I don't know, like you'll kind of have to like get into your init file and then just like, maybe just like start to put things together. But the cool thing is with Syncthing Fork, I'm syncing my, I'm setting it to load off of a sync directory. Like this, this init file, my Android file is synced with my machine. So if I wanted to, I could just edit it on my machine and just have that synced automatically. So that makes like the whole, like in it, cause like it's, it's such a, like, that is one of the, it's just like get in, sit writing your init.el in Emacs on Android is just kind of a... + + [Corwin]: I think that's like. That's an extremely good tip, right? That if we're, as we're exploring Android, we want to think about that as adding support for another port of Emacs. So the whole dance of, oh, I took, you know, I took, you know, I took my init and I wanted to use it on BSD after mostly using GNU Linux. Now we're going in and we're looking at our Emacs. all of our Emacs and it stuff and thinking about compatibility, turning features on and off based on the OS that we're running underneath and so on. I think that's pretty heads up advice. +- Q: Have you thought about integrating cardio tracking like timed runs, bike rides, etc? + - A: Yes, I definitely thought about that. And that might be another thing where a touch interface might be helpful. I don't know if I can easily pull it up, but the app itself, oh yeah, here it is. So you can see kind of how they have, and you can kind of see how this fits. This is like an org, you can see that these are just tables, right? This is just like this whole interface in general, just like kind of screams like an org mode, file with you have you have your different headings like here's a warm-up heading and then you have the tables and you know you could just like envision how you could have a org table with one of the columns called time and then you could just imagine like there'd be a button there and you can just have it click, and then you'd have a timer in the background that would update this timer. It's so, I mean, conceptually, there's nothing really, it conceptually maps really well to this. So yeah, I mean, that's definitely something. +- Q: Seems like a great use case to combine with some of the other + talks like Ramin\'s UI demos, maybe some speech/LLM stuff. And + Hyperbole\'s M-RET! + - A: +- Q: emacs on android can be installed on a GrapheneOS-set up device too, can't it? + - yes it is available in f-droid + - Oh man... I haven't used a smartphone in a while, but I'm really excited to take advantage of all of the Emacs features people have made once I pick one back up. I got a Linux phone that should hopefully be arriving relatively soon here 😊 + - Touch seems so wildly usable nowadays. That's so awesome 😊 + - which one? I'm using the Jolla C2 Community Edition with SailfishOS + - Oh nice! 😊 I ordered a FuriPhone quite a while ago, but it got really hit hard by tariffs. It seems like it's finally happening now 😊 + - Oh I saw that one :) I think its quite a bit more powerful than my one + - I'm so looking forward to it. 🙂 I think it'll have a *little* performance bump coming from my original PinePhone 😛 + - next to the fully fledged Emacs, an app on Android like beorg on iOS would be great companion. when using orgmode content especially as todo/checklist tool, then an app designed for mobile UI with touch operations is key for easy use onthego. +- I'm very interested in this as I work on similar problems in this space at work + +[[!inline pages="internal(2025/info/weights-after)" raw="yes"]] + +[[!inline pages="internal(2025/info/weights-nav)" raw="yes"]] + + diff --git a/2025/talks/writing.md b/2025/talks/writing.md new file mode 100644 index 00000000..476d2123 --- /dev/null +++ b/2025/talks/writing.md @@ -0,0 +1,40 @@ +[[!meta title="A Writing Day in the Life with Org-Mode"]] +[[!meta copyright="Copyright © 2025 Jeremy Friesen"]] +[[!inline pages="internal(2025/info/writing-nav)" raw="yes"]] + +<!-- Initially generated with emacsconf-publish-talk-page and then left alone for manual editing --> +<!-- You can manually edit this file to update the abstract, add links, etc. ---> + + +# A Writing Day in the Life with Org-Mode +Jeremy Friesen - Pronunciation: Jair-ah-mee Free-sen, <https://takeonrules.com>, <mailto:jeremy@jeremyfriesen.com> + +[[!inline pages="internal(2025/info/writing-before)" raw="yes"]] + +In this talk, I’ll walk through my daily writing and organization using +Org-Mode. Building from the basics of the Org-Mode ecosystem, we’ll look at a +the parts that I’ve assembled to create a “rich for me” writing experience. + +This will be a tour of my writing ecosystem, from capturing books by ISBN, +tracking quotes I find meaningful, utilizing abbreviations (and clarifications), +exporting a journal node to a blog post, toot-ing about a blog post, and +printing my monthly journal entries with references to books I finished. + +The goal is not to say “this is the way” but to show a bit of “this is my way.” +And from there to have further conversation about ideas we each might +incorporate into our writing processes. + +About the speaker: + +I’ve always aspired to be a writer. And while I haven’t published long-form +material, I’ve been consistently writing for over a decade. In 2023, I talked +about how Emacs super-charges my writing. And I want to revisit that +conversation and walk through a day in the writing life. + + + +[[!inline pages="internal(2025/info/writing-after)" raw="yes"]] + +[[!inline pages="internal(2025/info/writing-nav)" raw="yes"]] + + diff --git a/2025/talks/zettelkasten.md b/2025/talks/zettelkasten.md new file mode 100644 index 00000000..0ee51214 --- /dev/null +++ b/2025/talks/zettelkasten.md @@ -0,0 +1,453 @@ +[[!meta title="Zettelkasten for Regular Emacs Hackers"]] +[[!meta copyright="Copyright © 2025 Christian Tietze"]] +[[!inline pages="internal(2025/info/zettelkasten-nav)" raw="yes"]] + +<!-- Initially generated with emacsconf-publish-talk-page and then left alone for manual editing --> +<!-- You can manually edit this file to update the abstract, add links, etc. ---> + + +# Zettelkasten for Regular Emacs Hackers +Christian Tietze (he) - [@ctietze@mastodon.social](https://mastodon.social/@ctietze) <https://christiantietze.de> <https://zettelkasten.de>, <mailto:hi@christiantietze.de> + +[[!inline pages="internal(2025/info/zettelkasten-before)" raw="yes"]] + +There's this one thing you can do with your Emacs that is not chiefly a technological problem to solve: thinking through writing. + +Emacs offers a malleable environment where you can tweak every key stroke, and every pixel on screen to your needs. + +Since we're all here at EmacsConf, the intention is clear: to use and enjoy Emacs, and spend our lives in this amazing environment. + +While it's easy to ditch modern UI conveniences and pull technology like email, chat, database and server management, and editing book drafts into Emacs – well, these are tasks that have been implemented, for which there exist alternatives, and which you can teach Emacs to do in a similar way. + +Oversimplifying: we can copy and tweak existing solutions and have a good life. + +Now while everyone's email needs to use the same protocol, everyone's approach to _thinking_ is different. There's no cookie cutter solution to merely rewrite in Emacs Lisp. We all need to figure out how to do this on our own, and then find an implementation that suits our needs. (Including using paper, but we're not talking about paper here.) + +**This is where I want to show you one simple foundational method to deep thinking, understanding, and problem solving:** create yourself a Zettelkasten, an environment of linked notes that scales well over decades, so that you can take it with you into retirement and beyond for a lifelong journey of learning. + +For this presentation, I merely assume that you agree that writing improves the quality and depth of thought. I also assume that you know how to type and move around in Emacs. The rest is just convention, and we'll walk through a couple of examples and exercises together so that after this talk, you're equipped with the simple tools that help you unlock new insights in your future. + +## About Christian + +Christian is a macOS/iOS developer with a strong focus on user experience and clean architecture. Driven by a passion for accessibility and performance, Christian has shipped many apps and authored three technical books and 895+ blog posts, helping developers world-wide to realize their app ideas with a deep understand for the technologies they use. In 2013, Christian wrote about the Zettelkasten topic on his own personal blog and eventually moved everything over to <https://zettelkasten.de> where he and Sascha continue to teach and write. + +## Code and Notes from the Talk + +### Minimal Emacs + Denote Configuration + +This is the relevant configuration Christian used in the Emacs demo. Save this to a folder as `init.el`, and launch via: + + $ emacs -nw --init-directory . init.el + +`init.el` contents: + +```elisp +(load-theme 'modus-vivendi-tinted) ;; Dark theme to match dark slides +(menu-bar-mode -1) ;; Disable topmost menu bar + +(package-refresh-contents) + +(use-package denote + :ensure t + :hook (dired-mode . denote-dired-mode) + :bind + (("C-c n n" . denote) + ("C-c n r" . denote-rename-file) + ("C-c n l" . denote-link) + ("C-c n c" . denote-link-after-creating) + ("C-c n b" . denote-backlinks) + ("C-c n d" . denote-dired) + ("C-c n g" . denote-grep)) + :config + (setq denote-directory (expand-file-name "./notes/")) + + ;; Automatically rename Denote buffers when opening them so that + ;; instead of their long file name they have, for example, a literal + ;; "[D]" followed by the file's title. Read the doc string of + ;; `denote-rename-buffer-format' for how to modify this. + (denote-rename-buffer-mode 1)) + +;; For the demo, I forced notes to show in full screen by default. +(setopt display-buffer-alist nil) +(add-to-list 'display-buffer-alist + '("^[D] " ;; Denote buffer name prefix + (display-buffer-reuse-mode-window display-buffer-full-frame) + )) +``` + +### Notes created during the demo + +These are the notes Christian created during the recording. The recording was sped up 3x--4x, so this could be nicer to read than having to squint at the video: + +#### `20251121T204827--mechanics-and-habits-to-use-a-zettelkasten__zettelkasten.org` + +```org +#+title: Mechanics and habits to use a Zettelkasten +#+date: [2025-11-21 Fri 20:48] +#+filetags: :zettelkasten: +#+identifier: 20251121T204827 + +Essential: +- Write: put in effort; [[denote:20251121T205045][GIGO]] +- Connect: Link notes to create trails +- Correct: Improve as you go + +Additional: +- Design for use: give things a purpose, e.g. blog about it +- Create structure. [[denote:20251121T205312][Types of structures in a Zettelkasten]]: design new entry points and trails +- Start in the Zettelkasten: use the system to learn, make it grow, get better +- Start with a link: keeps your notes connected. [[denote:20251121T210416][Create notes as link first to avoid orphans]] + +Tool doesn't matter as much. Small files are good. [[denote:20251121T210107][Use Denote in Emacs]] + +(Christian Tietze: Zettelkasten for Regular Emacs Hackers, EmacsConf 2025) +``` + +#### `20251121T205045--gigo__programming_quality.org` + +```org +#+title: Garbage in, garbage out +#+date: [2025-11-21 Fri 20:50] +#+filetags: :programming:quality: +#+identifier: 20251121T205045 + +The principle known as "Garbage In, Garbage Out" (GIGO) in computer +programming states that for any system, the quality of output is +directly depending on the quality of input. + +See: https://en.wikipedia.org/wiki/Garbase_in,_garbage_out +``` + +#### `20251121T205312--types-of-structures-in-a-zettelkasten__structure_zettelkasten.org` + +```org +#+title: Types of structures in a Zettelkasten +#+date: [2025-11-21 Fri 20:53] +#+filetags: :structure:zettelkasten: +#+identifier: 20251121T205312 + +Non-comprehensive list of structures that could be used in a Zettelkasten: + +- Opposition pair: 1 note for the pair, 1 note per position/opposition each; pro/contra +- Table of contents: list of topics/headings + - an outline for a writing project + - recreation of a book's contents (so I can write in detail about the book); +- Argument: recreation of a distilled form to get to a conclusion; + list premises and evidence, and how these support the conclusion + - Counter-argument: address parts of the original argument to support another + view and test the argument's strength +- Table of things +- Graphics, like a concept map, Mind-Map, diagram: visually bring + elements into a relation, then write about the relation and the elements + +Metaphors: +- Iceberg: visibile tip with hidden depth; someting that appears small + but is large; good metaphor for obstacles +- Black box: focus on inputs and outputs, and ignore the 'how' in the middle + - e.g. most Emacs Lisp functions (hoping the documentation is good) +- [[denote:20251121T205739][Atom, molecule, organism]]: how small parts compose to larger parts, + which compose to even larger pieces + + +(Christian Tietze: Zettelkasten for Regular Emacs Hackers, EmacsConf 2025) +``` + +#### `20251121T205739--atom-molecule-organism-metaphor__composition_recursion.org` + +```org +#+title: Atom, molecule, organism metaphor +#+date: [2025-11-21 Fri 20:57] +#+filetags: :composition:recursion: +#+identifier: 20251121T205739 + +Atom: smallest part, indivisible elements +Molecule: comprised of atoms; structure added to combine elements +Organism: comprised of molecules; different level of analysis, irreducible to molecules/atoms + +This can be used e.g. for programming: functions compose into larger +functions which compose into packages. + +Actual biological organisms also work in such a way. Organs are part +of bodily functions (high abstraction), but from a chemical or +physical perspective, you can decompose them into atoms. That doesn't +tell you anything about the organ's function. +``` + +#### `20251121T210107--denoteel-for-zettelkasten-in-emacs__denote_emacs_zettelkasten.org` + +```org +#+title: Denote.el for Zettelkasten in Emacs +#+date: [2025-11-21 Fri 21:01] +#+filetags: :denote:emacs:zettelkasten: +#+identifier: 20251121T210107 + +While not shipping with Emacs out of the box, Denote is easy to install and a great start to manage notes: + +- it comes with unified way to create new notes, and hides time-stamped ID's with "[D]" in buffer lists +- it can manage links, and show incoming links to notes ("backlinks") +- it supports quickly adding links, and creating links _first_ out of + the box -- it just creates the note immediately, so you don't notice + - [[denote:20251121T210416][Create notes as link first to avoid orphans]] + +* Example configuration + +#+BEGIN_SRC elisp +(use-package denote + :ensure t + :hook (dired-mode . denote-dired-mode) + :bind + (("C-c n n" . denote) + ("C-c n r" . denote-rename-file) + ("C-c n l" . denote-link) + ("C-c n c" . denote-link-after-creating) + ("C-c n b" . denote-backlinks) + ("C-c n d" . denote-dired) + ("C-c n g" . denote-grep)) + :config + (setq denote-directory (expand-file-name "./notes/")) + + ;; Automatically rename Denote buffers when opening them so that + ;; instead of their long file name they have, for example, a literal + ;; "[D]" followed by the file's title. Read the doc string of + ;; `denote-rename-buffer-format' for how to modify this. + (denote-rename-buffer-mode 1)) +#+END_SRC +``` + +#### `20251121T210416--create-notes-as-link-first-to-avoid-orphans__linking_zettelkasten.org` + +```org +#+title: Create notes as link first to avoid orphans +#+date: [2025-11-21 Fri 21:04] +#+filetags: :linking:zettelkasten: +#+identifier: 20251121T210416 + +Recommended practice by Christian Tietze: start a new note with a link +first from some place, any place, then create the file to match that +link (which would initially lead nowhere). + +- Reduces orphans in the Zettelkasten by guaranteeing every note to + have at least one link. +- Supposedly teaches you to think about possible connections early, + which makes the network better. + +A very loosey-goosey approach, when taken literally and used +liberally: it doesn't matter where you are, just leave a forward link +to something you wish existed. Even if it doesn't fit the current +note. After all, you came up with the idea just now -- so maybe +there's a connection that you just can't spell out, yet? +``` + +## Discussion / notes + +- Q: I wonder what they use for the fancy animations (what is your + presenation software stack?) +- A: Apple Keynote -- sorry for the proprietary product, I'm + just fastest with that. PowerPoint also works, and when + PowerPoint can do, LibreOffice can also do. It's more about + sticking to a few simple transitions and timings, like fading + and directional movement/wiping, and you're good. Read + "slide:ology", that's amazing and full of great examples. +- Q: Are you not a fan of using *, **, *** headings in + org-mode? (It's interesting to see how people have different + styles of writing org content.) + - A: Didn't see a need for hierarchical structure for the + presentation. Also I'm leaning towards sequential writing, i.e. + 'notes as blog post' pattern, or in our technical terms: "A + Zettel should be like a StackOverflow post: a self-contained + answer, specific to the question, with references to learn more + if needed." An outline doesn't fit that well. + - Fair enough. Thanks. +- Q: can you use org files and all its features inside denote? + - A: Yes, this is an org file and Denote uses Org headings. +- Q: Where/how do you like to capture fleeting notes? + - A: Uses small paper notes. (Also don't get hung-up on + terminology like this please :)) +- Q: Zettelkasten feels like a very "cagey" approach to note-taking + and knowledge management. Doesn't it restrict one to think in + certain ways rather than what feels natural to someone? + - A: Take that feeling of being caged in as feedback to adjust the + process. Otherwise, the rules I subject myself to are voluntary. + I give my best during the writing stage, which is 'cagey' and + taking more effort, too, for the benefit of my research in the + long run. + - Makes sense. Thanks! I'll give another shot to zettelkasten and + rewatch your talk! +- Q: How does denote compare to org-roam? + - A: Denote is smaller, allows finding notes, but gets out of your + way otherwise. +- Q:I noticed that the wikipedia link you wrote was typed wrongly - + and it got me thinking about how to deal with broken links at scale? + Do you have any thoughts on this? What about archival? + - A: Use any script to automate fixing broken links +- Q:When I completely re-worked my config some two years ago, I also + tried out some of these packages for making notes in Emacs. But none + of them actually fit my purpose because **I do not like the idea of + splitting up my ideas**. I am writing prose, I collect material, + reading lists and so on in **just one big file** everything fits in. + In this notebook.org file I do archiving from time to time in a + monthly basis, and I search these files in Finder on macOS to find + older notes I would like to go back to. So, if I write a paper, + it's basically an extract from my old notes that only have one + structure, viz. when I took them. **Time structures my thought, and + my notes.** But they would get lost if I split them up in a + network-like structure like a wiki, or even a zettelkasten. My 2 ct. + BTW, I work on legal and sociological topics. I'm a lawyer by + training. + - A:Cool! Happy for you :) See Twyla Tharpe. +- Q:How Zettelkasten is useful for highly mathematical STEM academic + fields like computer science or engineering fields? Like when + studying a STEM field, what should we make notes of? The important + bits are interconnected in a heirarchy, usually chapters of a book (1 -> 2 + -> 3). Main points are usually dense, highly context-dependent + sentences. One feels like he is copying information to another box. + It's usually not possible to reword scietific results in ones own + words. + - A: (probably by oliver epper!! )Zettelkasten is great for + Mathematics and incredible for CS. With org-babel you can have + living source code that you can execute from the note. + (Zettelkasten using denote, using org is the link here). You can + even use Agda if you want to have living proofs in your note. + Even inline LaTeX is an option for beautiful commutative + diagrams or math terms. Quote the sentence as is and add ...? + - A: foundational knowledge is important for tests mostly; and + eventually becomes your inventory of skills (you can do X proofs + from the top of your head). Copy box: fridge me + - see appendix A below: local link in supply chain of + knowledge + - engagement doing the work of not copying, but rephrasing, + organizing, but sometimes also retyping alone + +- Q: In your experience, would you say that you re-use most of your + notes? Watching your demo, I though that more notes your create, + less you might re-use them... Thanks for sharing! + - A: No, that'd be impossible. I have 11k notes. "Most" would + be 50%, 5500 of them. I can't use that many things most of the + time, it's impossible. Focuses shift, and I go from one + department to another, metaphorically, as the hours, days, weeks + pass. + +- 2:09 PM EST Q: How are notes structured and accessed when the notes + grow from 10K to 100K notes. + - A: Like a fractal; self-similar structures + +- 2:13 PM EST Q: Not a Question but I would be very interested in your + thought on this video by Westenberg :- + [https://www.youtube.com/watch?v=CjSWwmg-JRM](https://www.youtube.com/watch?v=CjSWwmg-JRM) + , Why I Deleted My Second Brain: A Journey Back to Real Thinking + - A: dunno, probably a lot of collection, not a lot of thinking in + the ZK to some purpose that worked...? Usually, posts/videos + like this conflate note taking as a dumping ground for 'stuff' + with something that is valuable in the long term. + +- Q: Is there a danger that with a Zettlekasten-process, that the + process gets a bit in the way of the content? + - A: STrive for speed of thought tools, not e.g. typewriter. THEN: + reduce ritual and ceremony. + +- Q: How do you navigate looking at all posts with certain tags (this + might be in emacs already; new to emacs ;)) + - A:I don't; tags are just a way to loosely group notes (and + stuff in general) so that you can find potentially relevant + pieces of information more quickly. To navigate, use links. + Create nativigational aids. +- Q: I thought denote uses md files + - I think it can use either markdown or org. + - denote is agnostic to the format + - and I already use org-roam but this makes me think I may want to switch. + - denote is more minimal + - Denote is simpler + - Org-roam feels more hackable for me + - org-roam tries to implement Roam Research + - I'm just used to org-roam since years + - after some research I went with org-roam just beacuse it handles org files. boy if I knew that back then + - I have a lot of stuff that depends on org-roam, because it does more than just the zettelkasten. It is more of a database structure. +- His slides are very aesthetic. +- all these speakers need to provide there emacs ui setup in emacsconf + repo + - it was a compliment, all of them have eye-candy emacs +- How did I not know the guy who runs zettelkasten.de was an Emacs + user. (It makes total sense, but I didn't know until now.) + - oh wow, is that a video editing thing or an Emacs thing? + - the video-editing is really great +- So meta! Loved seeing how they turned a zettelkasten into a talk. +- Very, very interesting talk! +- I'm going to have to rewatch this one a couple times. There's so + much good stuff here. I don't know if the Zettelkasten idea has + every fully "clicked" for me, but I think this is the closest + I've been to "getting it" +- (add-hook 'org-mode-hook #'visual-line-mode) +- oh yeah I have started to download the webpages I refer to + - I use wget manually though. +- I have tried zettelkasten through org-roam before. it felt too overwhelming, so I just do "bunch of org files in a directory" now + - I think everyone has to find their own style. + - org-roam can feel confusing in the beginning, I do get that + - I feel like it is okay to just do what you feel suits you and slowly improve your flow + - I am very addicted to it at this point, but I understand this + - it doesn't have to use the hottest thing in the market + - I don't do second brain thing now, I just write whenever I want to + - I use org capture to maintain a journal and separate org files later. + - I always start with writing and link things after I have a first draft of a file + - I can confirm that 2k notes need to be very well organized to not get lost. Once you get to the point where your notes grow too fast, you really need a very good structure +- it is an org file? + - it looks like an org file. He just doesn't use headings that much. +- I'm going to have to rewatch this one a couple times. There's so much good stuff here. I don't know if the Zettelkasten idea has every fully "clicked" for me, but I think this is the closest I've been to "getting it" 🙂 +- Excellent talk (slides and presentation itself). 👏 +- agreed, it's going to require several listens! +- easily one of the best talks during emacsconf +- Thanks for the talk! +- lol, 'so is wearing underwear' + - Amazing parallelisms +- "so is brushing your teeth everyday" +- Q: does christian make videos too + - I have seen them somewhere +- the point of zettelkasten is to see varying differences between various notes and make interesting connections. so the only 'cage' is to just write notes, the creativity will happen when you see the interesting connections. + - as luhmann put it: "without noticing differences, one cannot think" +- so far this talk has been very good +- off topic, but I really dig there overall room aesthetics +- https://github.com/yibie/org-supertag + - it's by the emacs-china guy + - though I don't like the ai integration in there + + + + +Appendix A: +# 202402121625 Zettelkasten can be the fridge-like buffer of knowledge +#zettelkasten + +Any local knowledge database serves as a **buffer** between all +available information sources on the internet and actual problems that +have been solved. + +> [T]here's no "local link" in this supply chain that we've +developed. Google is the closest link, meaning we use the massive, +unsorted network that is the Internet and Google's interpretation of our +problem as our "second brain".[#20240212ds][] + +A Zettelkasten, as a trusted system[[201304061037]] for information +retrieval, becomes the first line of defense when looking for a +solution: + + Problem → Zettelkasten → Google + +As Aseem Thakar points out, we don't go foraging in the woods whenever +we get hungry, but instead go to the fridge in our apartment, then head +to the supermarket if we don't find anything there, then maybe check +out farms if the market is empty.[#20240212ds][] Defaulting to web +search for a solution and never building up a local storage buffer of +answers to our problems would be similar. + +[#20240212ds]: Aseem Thakar: "How to build a second brain as a +software developer", 2021-09-26, +<[https://aseemthakar.com/how-to-build-a-second-brain-as-a-software-developer/](https://aseemthakar.com/how-to-build-a-second-brain-as-a-software-developer/)> + + + + + +[[!inline pages="internal(2025/info/zettelkasten-after)" raw="yes"]] + +[[!inline pages="internal(2025/info/zettelkasten-nav)" raw="yes"]] + + |
