diff options
Diffstat (limited to '')
| -rw-r--r-- | 2026/talks.md | 12 | ||||
| -rw-r--r-- | 2026/talks/align.md | 59 | ||||
| -rw-r--r-- | 2026/talks/anju.md | 26 | ||||
| -rw-r--r-- | 2026/talks/bible.md | 64 | ||||
| -rw-r--r-- | 2026/talks/bone.md | 74 | ||||
| -rw-r--r-- | 2026/talks/cadet.md | 51 | ||||
| -rw-r--r-- | 2026/talks/compile.md | 46 | ||||
| -rw-r--r-- | 2026/talks/dnd.md | 45 | ||||
| -rw-r--r-- | 2026/talks/emacspeak.md | 30 | ||||
| -rw-r--r-- | 2026/talks/ffs.md | 37 | ||||
| -rw-r--r-- | 2026/talks/ghostel.md | 44 | ||||
| -rw-r--r-- | 2026/talks/hutch.md | 61 | ||||
| -rw-r--r-- | 2026/talks/hyperbole.md | 80 | ||||
| -rw-r--r-- | 2026/talks/koutliner.md | 45 | ||||
| -rw-r--r-- | 2026/talks/listen.md | 38 | ||||
| -rw-r--r-- | 2026/talks/local.md | 33 | ||||
| -rw-r--r-- | 2026/talks/mobile.md | 26 | ||||
| -rw-r--r-- | 2026/talks/open-mic.md | 21 | ||||
| -rw-r--r-- | 2026/talks/os.md | 45 | ||||
| -rw-r--r-- | 2026/talks/planning.md | 37 | ||||
| -rw-r--r-- | 2026/talks/plots.md | 62 | ||||
| -rw-r--r-- | 2026/talks/portable.md | 37 | ||||
| -rw-r--r-- | 2026/talks/rau.md | 39 | ||||
| -rw-r--r-- | 2026/talks/sat-close.md | 21 | ||||
| -rw-r--r-- | 2026/talks/sat-open.md | 21 | ||||
| -rw-r--r-- | 2026/talks/sun-close.md | 21 | ||||
| -rw-r--r-- | 2026/talks/sun-open.md | 21 | ||||
| -rw-r--r-- | 2026/talks/team.md | 109 | ||||
| -rw-r--r-- | 2026/talks/writing.md | 64 |
29 files changed, 1269 insertions, 0 deletions
diff --git a/2026/talks.md b/2026/talks.md new file mode 100644 index 00000000..ab27161d --- /dev/null +++ b/2026/talks.md @@ -0,0 +1,12 @@ +We're getting ready for EmacsConf 2026. Want to propose a talk? +[[Check out our call for participation|/2026/cfp]] and submit your proposal +by Friday, September 18, 2026! + +Here are some of the talks we've accepted so far: + +[[!inline pages="internal(2026/schedule-details)" raw="yes"]] + +Want to help make EmacsConf even awesomer? [[Volunteer!|/volunteer]] + +We hope to see you all around on Dec 12-13 for EmacsConf 2026! + diff --git a/2026/talks/align.md b/2026/talks/align.md new file mode 100644 index 00000000..8a78d763 --- /dev/null +++ b/2026/talks/align.md @@ -0,0 +1,59 @@ +[[!meta title="Column-aligning text in Emacs"]] +[[!meta copyright="Copyright © 2026 Jeff Trull"]] +[[!inline pages="internal(2026/info/align-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. ---> + + +# Column-aligning text in Emacs +Jeff Trull (he/him) - Pronunciation: rhymes with "hull" and "dull", Mastodon: @jaafar@hachyderm.io Blog: <http://jefftrull.github.io/> Email: <mailto:edaskel@att.net> + +[[!inline pages="internal(2026/info/align-before)" raw="yes"]] + +Emacs has a rich set of features for manipulating ordinary text. The "fill" +features align text at the right or left edges of a paragraph, while +"indent" adds space at the start of a line based on the level within an +outline, or the depth of a block in code. + +Emacs also has a framework for lining up text **inside** a line to match +adjacent lines, creating the appearance of columns. For example, some +coders like to have equal signs in a series of assignment statements line +up, like this: + + apple = 12; + rambutan = 42; + +The [align.el family of functions](https://www.gnu.org/software/emacs/manual///html_node/emacs/Code-Alignment.html) provides functions like align, which is the entry point for mode-based code alignment, as well as align-regexp, which gives interactive, user-defined access to the same features. +The presenter will give a basic introduction to the user-facing features before diving into a technical explanation of how to use the framework at the Lisp level to create your own alignment rules and features. +The technical portion will touch on packages like rx and peg in addition to align.el. + +Format: **20 minutes** and outline: + +- Motivation: the uses of (column) alignment +- Built-in align: features you can use out-of-the-box in programming modes + +- Customizing built-in align + - align-regexp for interactive alignment + - customizing align-rules-list for modes +- align.el for the ELisp coder + - Readable regexp with rx + - Example: Creating org-mode tables from columns + - Example: peg parsers as an alternative to regexp + +About the speaker: + +Jeff is a long-time Emacs user working on improving his ELisp skills. +The dominance of VSCode makes him sad. + +He discovered the align.el framework while trying to improve Emacs +formatting support for a C++ library he uses, Boost.SML +<https://github.com/boost-ext/sml>. + + + +[[!inline pages="internal(2026/info/align-after)" raw="yes"]] + +[[!inline pages="internal(2026/info/align-nav)" raw="yes"]] + + diff --git a/2026/talks/anju.md b/2026/talks/anju.md new file mode 100644 index 00000000..033837a5 --- /dev/null +++ b/2026/talks/anju.md @@ -0,0 +1,26 @@ +[[!meta title="Revisiting Emacs Mouse Interactions with Anju"]] +[[!meta copyright="Copyright © 2026 Charles Y. Choi"]] +[[!inline pages="internal(2026/info/anju-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. ---> + + +# Revisiting Emacs Mouse Interactions with Anju +Charles Y. Choi - IRC: kickingvegas, Website: <http://yummymelon.com/devnull/> Mastodon: @kickingvegas@sfba.social, <mailto:kickingvegas@gmail.com> + +[[!inline pages="internal(2026/info/anju-before)" raw="yes"]] + +Anju (안주) is a project to align mouse interactions in Emacs with contemporary expectations in 2026. Effort towards this alignment is made in the areas of context-sensitive menus, de-emphasis of middle mouse button usage, support for direct manipulation, and re-organization of the main menu bar. The features offered by Anju are opinionated, but avoids unconventional behavior. Anju aspires to bring a calmer mouse experience to Emacs. + +This talk will present an overview of Anju (<https://kickingvegas.github.io/anju/>), describing its design decisions and implementation. + +About the speaker: Charles Choi is a Computer Engineer and Emacs enthusiast. + + + +[[!inline pages="internal(2026/info/anju-after)" raw="yes"]] + +[[!inline pages="internal(2026/info/anju-nav)" raw="yes"]] + + diff --git a/2026/talks/bible.md b/2026/talks/bible.md new file mode 100644 index 00000000..cf50fbf1 --- /dev/null +++ b/2026/talks/bible.md @@ -0,0 +1,64 @@ +[[!meta title="bible-gateway: A Two-Edged Sword in Emacs"]] +[[!meta copyright="Copyright © 2026 Kristjon Ciko"]] +[[!inline pages="internal(2026/info/bible-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. ---> + + +# bible-gateway: A Two-Edged Sword in Emacs +Kristjon Ciko (he/him) - <mailto:kristjoc@uio.no> + +[[!inline pages="internal(2026/info/bible-before)" raw="yes"]] + +`bible-gateway` is a simple Emacs package that fetches content from +<https://BibleGateway.com> — verses, passages, search results — directly +into Emacs. + +Unlike other approaches to reading Bible text in Emacs, it doesn't +require installing extra modules, downloading zip files of Bible text, +maintaining a local database, or signing up for an API key or +subscription. Everything happens over plain HTTP/HTML scraping. It +stores nothing on disk except a small cache for the verse of the day, so +Emacs doesn't refetch it on every startup. It supports 14 Bible versions +in different languages that are in the public domain, all fetched live, +with no per-language downloads. + +In this short talk, I'll go through the main features with quick demos: + +- Verse of the day, usable as an emacs-dashboard footer or a `*scratch*` buffer message + +- Insert a Bible passage at point + +- Read a passage in a dedicated buffer, with n/p verse-by-verse navigation + +- Listen to a Bible chapter as audio, opened in the browser + +- Search the Bible by keyword, with clickable, paginated results + +- Follow a daily reading plan from a CSV file, with automatic progress tracking + +- Compare two Bible translations side by side in one window + +- Memorise verses using a touch-typing practice mode with live feedback + +- Switch between the 14 supported Bible versions/languages + +About the speaker: + +I am a postdoc at the University of Oslo, working on networking, +transport protocols, and Wi-Fi. I have been using Emacs since 2020, and +I now use it for nearly everything — email, Zulip, org-mode, LaTeX, and +coding in C/C++, Python, and various scripting languages. I initially +built the bible-gateway package to show the verse of the day in the +emacs-dashboard footer. Over time it grew into a fuller toolkit for +daily Bible reading, preparing devotions, and memorising Scripture — all +without leaving Emacs. + + + +[[!inline pages="internal(2026/info/bible-after)" raw="yes"]] + +[[!inline pages="internal(2026/info/bible-nav)" raw="yes"]] + + diff --git a/2026/talks/bone.md b/2026/talks/bone.md new file mode 100644 index 00000000..06e67545 --- /dev/null +++ b/2026/talks/bone.md @@ -0,0 +1,74 @@ +[[!meta title="BONE and gnaw.el: tracking what matters"]] +[[!meta copyright="Copyright © 2026 Bastien Guerry"]] +[[!inline pages="internal(2026/info/bone-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. ---> + + +# BONE and gnaw.el: tracking what matters +Bastien Guerry (he) - IRC: bzg, <https://bzg.fr>, <mailto:bzg@bzg.fr> + +[[!inline pages="internal(2026/info/bone-before)" raw="yes"]] + +Most free software projects use three communication channels: one for +general feedback, one for bug reports, and one for contributions. +Projects that use patches instead of pull/merge requests (e.g. Emacs) +can reduce this to two channels: a discussion list and a bug tracker. +Some opinionated projects (e.g. Org mode) use only one channel: a +mailing list for general discussions, bug reports and patches. This +makes it easy for everyone to track everything. However, this requires +a tool to help filter all the input. The Org mode tracker uses BONE +for this filtering, and Org mode contributors can use gnaw.el as a +BONE client. + +BONE (Backlog Of Notable Emails) is a bug tracker written in Clojure +that watches a project's mailing list. An email whose subject starts +with [BUG], [PATCH] or [FR] becomes a report. Replies update it with a +small, fixed vocabulary: "Confirmed.", "Acked.", "Owned.", "Closed.", +plus the usual review trailers like Reviewed-by:. Nobody creates an +account, nobody fills a form, nobody leaves their mail client. The +mailbox stays the single source of truth: the tracker database can be +rebuilt from the archive at any time. BONE then exports the reports as +static HTML, RSS, Org and, most importantly, plain reports.json files +that anyone can fetch and reuse. + +gnaw.el is the Emacs client for BONE. M-x gnaw opens a report browser +listing the bugs, patches and feature requests of the sources you +follow, across projects. From that buffer you can search reports, read +the underlying emails in Gnus, notmuch or mu4e, view and apply patches +directly into a local git repository, open attachments, and organize +your own work with local sticky and dismiss marks. + +The talk will: + +- show BONE in action on a real mailing list, from the tagged email to + the exported reports; +- demo gnaw.el: browsing, searching, reading, applying a patch, all + from Emacs; +- discuss the pros and cons of using this tool for Org mode. + +The audience is anyone who maintains or contributes to a project +through a mailing list, anyone who is tired of forge accounts, and +anyone curious about what a tracker looks like when it is derived from +the conversation instead of replacing it. + +Links: + +- [BONE - Reports - Org mode ML](https://tracker.orgmode.org) +- BONE: <https://codeberg.org/bzg/bone> +- gnaw.el: <https://codeberg.org/bzg/gnaw.el> +- The essay behind the idea: + <https://bzg.fr/en/notes/the-issue-with-issue-trackers/> + +About the speaker: + +Bastien Guerry has been maintaining Org mode from 2011 until 2025. + + + +[[!inline pages="internal(2026/info/bone-after)" raw="yes"]] + +[[!inline pages="internal(2026/info/bone-nav)" raw="yes"]] + + diff --git a/2026/talks/cadet.md b/2026/talks/cadet.md new file mode 100644 index 00000000..44710960 --- /dev/null +++ b/2026/talks/cadet.md @@ -0,0 +1,51 @@ +[[!meta title="My Space Cadet Deck - an Android Stream Deck replacement with deep Emacs integration"]] +[[!meta copyright="Copyright © 2026 Andy Drop"]] +[[!inline pages="internal(2026/info/cadet-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. ---> + + +# My Space Cadet Deck - an Android Stream Deck replacement with deep Emacs integration +Andy Drop (he/him) - Web: <https://plaindrops.de> Fediverse: SpaceCadet@chaos.social, <mailto:SpaceCadet@plaindrops.de> + +[[!inline pages="internal(2026/info/cadet-before)" raw="yes"]] + +After spending more time configuring my original Stream Deck than +actually using it, I realized I’d rather build my own from scratch—just +to spend even more time configuring it. + +This talk is a love letter to over-engineering. I’ll walk you through +how I turned an old Android tablet into a programmable macro pad, +complete with custom Emacs keybindings, because why use a keyboard when +you can tap a screen like a caffeinated octopus? + +Expect: + +- *Software hacks* (SDD (Swearword Driven development), and questionable +life choices). +- *Emacs sorcery* (yes, it /does/ control my music, launch terminals, +and occasionally insult me). +- *Self-deprecating humor* (because if I can’t laugh at my own failures, +who can?). + +Warning: May cause sudden urges to automate everything. Side effects +include increased caffeine consumption, mild obsession with keyboards, +and the occasional existential crisis when you realize you’ve spent +three hours tweaking a button that saves you 10 seconds. + +About the speaker: + +I'm a passionate Emacs user and developer, tinkering with hardware to +integrate it with Emacs. My talk introduces the SpaceCadet Deck, my +Android-based Stream Deck alternative, and its deep integration with +Emacs. I'll share my intention of building this customizable input +device, highlighting its potential to enhance workflows. Expect live +demos and practical tips. + + +[[!inline pages="internal(2026/info/cadet-after)" raw="yes"]] + +[[!inline pages="internal(2026/info/cadet-nav)" raw="yes"]] + + diff --git a/2026/talks/compile.md b/2026/talks/compile.md new file mode 100644 index 00000000..89e8fd1e --- /dev/null +++ b/2026/talks/compile.md @@ -0,0 +1,46 @@ +[[!meta title="Beyond Shell History: Saving Compilation Output in Emacs"]] +[[!meta copyright="Copyright © 2026 Jonathan Otsuka"]] +[[!inline pages="internal(2026/info/compile-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. ---> + + +# Beyond Shell History: Saving Compilation Output in Emacs +Jonathan Otsuka (he/him) - Pronunciation: O-tsu-ka, https://github.com/djgoku/compilation-history + +[[!inline pages="internal(2026/info/compile-before)" raw="yes"]] + +I often want to look up a command I ran earlier and see what it printed. +Shell history gives me the command, but not its output. Emacs compilation +buffers have both, but once the buffer is gone, I need somewhere else to look. + +I built `compilation-history` to save that information. It stores each +compilation in SQLite, including the command, output, exit code, timing, +working directory, and Git context. I can search previous runs, reopen their +output, and run a command again without having to piece it together from +memory or notes. + +I'll show how I use the package and how it saves and displays previous runs. +I'll also show how I use it with AI coding agents. You can use +`emacs-mcp-server` or just plain `emacsclient` to have an agent run commands +through `compilation-start`. Those commands end up in the same history as my own, +so I can go back and check what a test, build, or diagnostic command printed +after the agent session is over. + +About the speaker: + +Jonathan Otsuka is a software engineer who enjoys working with Emacs +Lisp and Elixir. His open-source projects include +\`compilation-history\`, \`sops\` for editing encrypted files in Emacs, +and, more recently, \`misemacs\`, a tool for creating reproducible, +self-contained Emacs builds. away from the keyboard, he enjoys +swimming and cycling. + + + +[[!inline pages="internal(2026/info/compile-after)" raw="yes"]] + +[[!inline pages="internal(2026/info/compile-nav)" raw="yes"]] + + diff --git a/2026/talks/dnd.md b/2026/talks/dnd.md new file mode 100644 index 00000000..09c9ac70 --- /dev/null +++ b/2026/talks/dnd.md @@ -0,0 +1,45 @@ +[[!meta title="DnD and Org Roam: Becoming a Better DM with Emacs"]] +[[!meta copyright="Copyright © 2026 James R. Stoup"]] +[[!inline pages="internal(2026/info/dnd-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. ---> + + +# DnD and Org Roam: Becoming a Better DM with Emacs +James R. Stoup - <https://github.com/james-stoup>, <mailto:jrstoup@gmail.com> + +[[!inline pages="internal(2026/info/dnd-before)" raw="yes"]] + +Being a Dungeon Master can be quite challenging. You are +expected to build a world, populate it with NPCs, and craft storylines, all +the while keeping track of various plot threads, magic items, and player +quests. It can quickly become overwhelming. Most DMs use a combination of +paper handouts, notebooks, websites, and note taking software to keep track +of everything. But there is a better way. + +Using Org Mode and Org Roam, we can create a system for tracking the game +in real time. Giving the DM (or player) the tools needed to record and link +relevant notes, without slowing things down. Additionally, we are going to +show off Org Roam's backlink visualization system for quickly discovering +links in your data. + +There are lots of tutorials on Org Roam that focus on the Zettelkasten +method. And while that is useful, most users aren't writing research +papers. This is a tutorial for the rest of us, a fun walk-through that +shows off the power of Org Roam via a realistic use case. + +About the speaker: + +My name is James Stoup and I have been writing software for +20 years. I have really fallen in love with Emacs & Org Mode these past few +years, so in my spare time I enjoy writing tutorials to help others get +into it as well. + + + +[[!inline pages="internal(2026/info/dnd-after)" raw="yes"]] + +[[!inline pages="internal(2026/info/dnd-nav)" raw="yes"]] + + diff --git a/2026/talks/emacspeak.md b/2026/talks/emacspeak.md new file mode 100644 index 00000000..c96fd0b5 --- /dev/null +++ b/2026/talks/emacspeak.md @@ -0,0 +1,30 @@ +[[!meta title="Multi-dimensional information processing with Emacs and Emacspeak: a blind man's perspective"]] +[[!meta copyright="Copyright © 2026 Arkadiusz"]] +[[!inline pages="internal(2026/info/emacspeak-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. ---> + + +# Multi-dimensional information processing with Emacs and Emacspeak: a blind man's perspective +Arkadiusz (Nuno) - <https://swietnicki.dev> + +[[!inline pages="internal(2026/info/emacspeak-before)" raw="yes"]] + +Emacs is a tool that is extremely suitable to be operated by a fully +blind person. In this talk I would like to demonstrate one of its +strongest features, which is audio font locking. Using this mechanism +the user can get information in two dimensions, that is: "Information +snippet" as well as its metadata, carried by the font. In this talk, I +would like to briefly compare how blind people retrieve information +versus how the sighted do it, then briefly compare Emacs to other +traditional tools. At the end I am going to showcase a couple of +practical points: messages management with Telega, file navigation with +Dired and retrieving contact data with BBDB, all while using only speech +and sounds. + +[[!inline pages="internal(2026/info/emacspeak-after)" raw="yes"]] + +[[!inline pages="internal(2026/info/emacspeak-nav)" raw="yes"]] + + diff --git a/2026/talks/ffs.md b/2026/talks/ffs.md new file mode 100644 index 00000000..b4d5b08d --- /dev/null +++ b/2026/talks/ffs.md @@ -0,0 +1,37 @@ +[[!meta title="Plain text presentations in GNU Emacs with ffs"]] +[[!meta copyright="Copyright © 2026 Amin Bandali"]] +[[!inline pages="internal(2026/info/ffs-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. ---> + + +# Plain text presentations in GNU Emacs with ffs +Amin Bandali (he/him) - IRC: bandali, <https://www.kelar.org/~bandali>, <mailto:bandali@gnu.org> + +[[!inline pages="internal(2026/info/ffs-before)" raw="yes"]] + +This talk introduces ffs, a package that provides a simple +presentation mode which can be applied to any buffer for reading, +writing, editing, and presenting slides. Slides are separated +using the `page-delimiter`, by default the `^L` character, known +as the form feed. + +- Manual: <https://www.kelar.org/~bandali/ffs/ffs.html> +- GNU ELPA: <https://elpa.gnu.org/packages/ffs.html> + +About the speaker: + +Amin Bandali is a computing scientist and activist for user freedom, +and a participant in various free software projects and communities. + +In this talk, Bandali will demonstrate configuring and using ffs for +minimalist presentations in GNU Emacs. + + + +[[!inline pages="internal(2026/info/ffs-after)" raw="yes"]] + +[[!inline pages="internal(2026/info/ffs-nav)" raw="yes"]] + + diff --git a/2026/talks/ghostel.md b/2026/talks/ghostel.md new file mode 100644 index 00000000..6f4dee27 --- /dev/null +++ b/2026/talks/ghostel.md @@ -0,0 +1,44 @@ +[[!meta title="Ghost in the Shell: a libghostty powered terminal for Emacs"]] +[[!meta copyright="Copyright © 2026 Daniel Kraus"]] +[[!inline pages="internal(2026/info/ghostel-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. ---> + + +# Ghost in the Shell: a libghostty powered terminal for Emacs +Daniel Kraus (he/him) - IRC: dakra, @dakra@fosstodon.org, <mailto:daniel@kraus.my> + +[[!inline pages="internal(2026/info/ghostel-before)" raw="yes"]] + +Ghostel is a terminal emulator built on libghostty-vt, the VT engine behind the Ghostty terminal. + +This talk gives an overview of the features Ghostel and its extensions provide. +I briefly cover what Emacs offers out of the box (term, shell) and the existing alternatives (vterm, eat), +and explain why a new terminal emulator for Emacs is still needed. + +Most of the talk is demos. +Some show what the libghostty engine makes possible, others what Emacs Lisp integration +makes possible. An external terminal can give you the first but not the second. +The terminals inside Emacs give you the second but not the first. +Ghostel is the only one where you get both in the same buffer. + +To try it yourself you can install Ghostel from melpa or from +GitHub: <https://github.com/dakra/ghostel> + +About the speaker: + +Daniel Kraus discovered Emacs over 25 years ago and is the author of numerous Emacs +packages and other free software. Professionally he works with Python, Java and +TypeScript, but privately he favors Lisps, mainly Clojure and Elisp. + +In this talk he introduces Ghostel, a terminal emulator for Emacs built on the VT engine +from Ghostty, and demos what it makes possible that no other terminal can. + + + +[[!inline pages="internal(2026/info/ghostel-after)" raw="yes"]] + +[[!inline pages="internal(2026/info/ghostel-nav)" raw="yes"]] + + diff --git a/2026/talks/hutch.md b/2026/talks/hutch.md new file mode 100644 index 00000000..aa8b1e3a --- /dev/null +++ b/2026/talks/hutch.md @@ -0,0 +1,61 @@ +[[!meta title="hutch: code reviews for the mildly disenfranchised"]] +[[!meta copyright="Copyright © 2026 Akshay Gupta"]] +[[!inline pages="internal(2026/info/hutch-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. ---> + + +# hutch: code reviews for the mildly disenfranchised +Akshay Gupta (he/him) - Pronunciation: "UCK-shay", IRC: kitallis, Bluesky: repartee.party Homepage: <https://kitallis.in>, <mailto:mail@kitallis.in> + +[[!inline pages="internal(2026/info/hutch-before)" raw="yes"]] + +We're here today, roughly 500 days <https://en.wikipedia.org/wiki/List_of_large_language_models#2025> in, and coding agents are genuinely more productive than, previously, instructed <https://www.youtube.com/watch?v=U_cSLPv34xk>. They are now driving much of our daily work, helping us organize, process information and be more useful overall, and, with this brainwave of an opening, I present yet another attempt at wedging large languages, agents, coding harnesses etcetera inside our beloved buffers, or something. + +But hopefully, an unseemly angle to consider, first. + +I continue to hand-write and often, hand-commit code. I prefer the pedagogical aspect of AI more than the task completing automaton aspects. The latter has driven all sorts of explosion of tooling around not just writing, but reviewing code too. Like review agents jumping in, before your colleagues do, and plopping gobs of logorrhea across twenty pull requests before you have had a chance to wake up and look at your phone. This works, sometimes, for some people. But if you're like me, you still have people looking at code before they are deployed to users, and for that, it's overall better if you respect those people and their time. + +This is where hutch slides in. + +hutch <https://github.com/adjaecent/magit-hutch> is a Magit-induced, buffer-local interface over LLM review output. Instead of the review living on code-forges as comments for everyone to see, it appears patch-shaped (usually) within Magit's transient blocks and can be triaged and applied directly within emacs, **before** you commit and push. + +Here's an example workflow: + +Imagine you've just finished implementing a function. Before committing, you ask hutch to review the diff through the Magit buffer. You get a new actionable buffer back: + + src/infirmary.rb + @@ ... + - def eligible?(user) = user.age >= 18 && user.age < 18 + + def eligible?(user) = user.age >= 18 && user.age < 65 + + [hutch] This condition can literally never be true + [hutch] Did you mean `user.age < 65`? + [hutch] apply suggestion? [y]es [n]o [e]dit + +You can now accept, reject, or investigate each suggestion without leaving the Magit workflow. If the suggestions are useful, hutch can turn them into patches and apply; if it's nonsense, you dismiss it right there. None of it leaves your safe space. + +The talk walks through how it works and when it doesn't: + +- tour of the workflow: how to use hutch, when to use hutch, how to approve and reject things +- patches over comments: hutch biasing outputs towards actionable items, rather than just prose +- tools: guardrails, every agent loop earning its keep, gptel's state-machine +- evals: how does it stack up against other external tooling on recognized benchmarks +- dead-on-arrival: where it fails and why this is only useful if you work in a specific niche way + +This is a Magit and review-workflow talk that happens to involve an LLM, it doesn't purport any arguments about whether you should or shouldn't use AI with emacs. + +**Note:** The hutch package is available on MELPA <https://melpa.org/#/hutch>. + +About the speaker: + +Modern day aesthetically-relevant hacker. Long-time Clojure and Ruby programmer, reluctant polyglot by way of building high-throughput backends. Recently wound-down my startup Tramline, a mobile release orchestration tool, now kept alive as open source. Emacs and Magit are my daily drivers. + + + +[[!inline pages="internal(2026/info/hutch-after)" raw="yes"]] + +[[!inline pages="internal(2026/info/hutch-nav)" raw="yes"]] + + diff --git a/2026/talks/hyperbole.md b/2026/talks/hyperbole.md new file mode 100644 index 00000000..c899dfd1 --- /dev/null +++ b/2026/talks/hyperbole.md @@ -0,0 +1,80 @@ +[[!meta title="Hyperbole, My Dear Watson"]] +[[!meta copyright="Copyright © 2026 Charlie Holland"]] +[[!inline pages="internal(2026/info/hyperbole-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. ---> + + +# Hyperbole, My Dear Watson +Charlie Holland (he/him/his) - <https://chiply.dev>, <https://github.com/chiply>, <https://reddit.com/u/misterchiply>, <mailto:mister.chiply@gmail.com> + +[[!inline pages="internal(2026/info/hyperbole-before)" raw="yes"]] + +In the talk, I want to build the same set of notes twice, once in plain Org +and once in Org + GNU Hyperbole, and this talk will demonstrate the utility +of adding Hyperbole to the typical org workflow. The subject matter (the +thing I'm taking notes on in the demo) is the Sherlock Holmes canon, which +I selected deliberately as it contains sixty public-domain stories, on +Project Gutenberg as plain text. This avoids copyright issues and also +allows users to follow along with a note taking workflow on a complex +resource for free. + +The thesis is that Org simply 'reads' text, while Hyperbole's added value +is that it 'recognizes' text. In Org, a link is markup you have to +explicitly type into a document, whereas in Hyperbole it is a pattern +already in the text you read or type, and becomes live in any buffer (org, +markdown, eww, epud, etc…). + +My contrived note taking on the Sherlock canon will make the benefits of +Hyperbole clear. + +- In my notes, concepts and character names will be noted as CamelCase + +WikiWords. Once created, these will show up highlighted in any EPUB file, +EWW page, etc…. + +- HyWiki links these for free in my personal notes, but in Doyle's text + +they are not written in CamelCase, so a simple alias extension to +Hyperbole's HyWiki makes it as so that "Sherlock Holmes" will show up as a +match for the "SherlockHolmes" WikiWord in any buffer, which will serve as +an extensibility demo that resolves a common pain point with HyWiki. + +- Other elements of the canon are WikiWords already in-place. Sherlockians + +have cited the stories by four-letter code since 1947, so I will define a +button with `defil` that makes every "(SCAN)", for a example, a live +citation. + +- The Gutenberg text must stay untouched, so annotations I create will live + +in an explicit-button file beside it. + +- Holmes's docketed index of "men and things" will be an additional demo + +for HyRolo. + +Act I shows four frictions with Org alone, and Act II removes them one +Hyperbole mechanism at a time. I close with what Org does better, which +alternatives to Hyperbole address each friction (org-roam, org-remark, +denote, org-transclusion), and why Hyperbole's uniform mechanism over all +text in every buffer is still a differentiator. The idea is that I'm +promoting Org plus Hyperbole, not Org versus Hyperbole. + +About the speaker: + +Charlie Holland writes +about Emacs and knowledge management at [chiply.dev](https://chiply.dev), where this talk caps a +four-part series on GNU Hyperbole. Charlie builds the same notes on the +Sherlock Holmes canon twice, in Org and then in Org plus Hyperbole, to show +the value that a mature hypertext system can bring to your note taking +workflow. + + + +[[!inline pages="internal(2026/info/hyperbole-after)" raw="yes"]] + +[[!inline pages="internal(2026/info/hyperbole-nav)" raw="yes"]] + + diff --git a/2026/talks/koutliner.md b/2026/talks/koutliner.md new file mode 100644 index 00000000..d6f9c6bf --- /dev/null +++ b/2026/talks/koutliner.md @@ -0,0 +1,45 @@ +[[!meta title="Hyperbole Koutliner: The Best Autonumbered, Hyperlinking Outliner for Emacs"]] +[[!meta copyright="Copyright © 2026 Bob Weiner"]] +[[!inline pages="internal(2026/info/koutliner-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. ---> + + +# Hyperbole Koutliner: The Best Autonumbered, Hyperlinking Outliner for Emacs +Bob Weiner - Pronunciation: Wine-urr, <https://gnu.org/s/hyperbole/man/hyperbole.html#Koutliner>, <mailto:rsw@gnu.org> + +[[!inline pages="internal(2026/info/koutliner-before)" raw="yes"]] + +The Koutliner (pronounced Kay-outliner) is a powerful, easy-to-use +multi-level autonumbered outliner for producing structured documents +in Emacs. + +Learn how to use the Koutliner for critical outlines that must have +unique, legal-style autonumbering for each section, simple +cross-references, automatic permanent hyperlink anchors and outline +view control via single alpha characters. + +Learn when to use the Koutliner and when to use Org mode for outlining. + +The Koutliner is just one part of the extensive Hyperbole package +designed to handle many of your everyday information management and +hyperlinking needs. See: <https://gnu.org/s/hyperbole/man/hyperbole.html>. + +About the speaker: + +Bob Weiner is a software developer who designs powerful, flexible +easy-to-use systems that work out of the box with few dependencies. + +He developed the the Koutliner as part of the Hyperbole package prior to +the advent of Org mode, when he needed an Emacs-based outliner with +legal-styled numbering. Let's see how it differs from Org mode and +how it can help you in rapidly structuring thoughts or notes. + + + +[[!inline pages="internal(2026/info/koutliner-after)" raw="yes"]] + +[[!inline pages="internal(2026/info/koutliner-nav)" raw="yes"]] + + diff --git a/2026/talks/listen.md b/2026/talks/listen.md new file mode 100644 index 00000000..32e95936 --- /dev/null +++ b/2026/talks/listen.md @@ -0,0 +1,38 @@ +[[!meta title="Controlling Emacs by voice using Emacslisten"]] +[[!meta copyright="Copyright © 2026 Erik Präntare"]] +[[!inline pages="internal(2026/info/listen-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. ---> + + +# Controlling Emacs by voice using Emacslisten +Erik Präntare - Pronunciation: Erik Prenn-tah-reh, <https://emacslisten.org> and <https://pranta.re>, <mailto:erik@prantare.xyz> + +[[!inline pages="internal(2026/info/listen-before)" raw="yes"]] + +After suffering from repetitive strain injury, I started using speech +recognition software to do my computing. To give me an environment I +could mold to my needs, I also started using Emacs. + +The software integration for voice recognition in Emacs was clunky to +use, so I started developing packages to improve this. This has +culminated in Emacslisten, an environment for driving Emacs by voice. +Emacslisten includes macros for defining spoken command grammars in +Elisp, along with a predefined command grammar for navigating Emacs +and editing text. Emacslisten also provides a graphical overlay for +referring to different parts of the buffer. + +About the speaker: + +My name is Erik Präntare. I am currently pursuing a PhD in static +program analysis. Emacs is what has allowed me to keep working with +computers even after my injury. + + + +[[!inline pages="internal(2026/info/listen-after)" raw="yes"]] + +[[!inline pages="internal(2026/info/listen-nav)" raw="yes"]] + + diff --git a/2026/talks/local.md b/2026/talks/local.md new file mode 100644 index 00000000..158775d8 --- /dev/null +++ b/2026/talks/local.md @@ -0,0 +1,33 @@ +[[!meta title="Local File History Possibilities in Emacs"]] +[[!meta copyright="Copyright © 2026 Wouter Groeneveld"]] +[[!inline pages="internal(2026/info/local-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. ---> + + +# Local File History Possibilities in Emacs +Wouter Groeneveld - <https://brainbaking.com>, <mailto:wouter@brainbaking.com> + +[[!inline pages="internal(2026/info/local-before)" raw="yes"]] + +Emacs offers a myriad of ways to keep track of previous versions +of your document: through tilde-like backup files, auto-save +files, and of course the extensive built-in undo history +system. Navigating that can be a chore unless you install +something like vundo to visualize the undo tree. But with a huge +undo-limit, even vundo can become unwieldy. What if we can conjure +up a way to diff between the current document and the state it was +in ten or twenty minutes ago, not unlike IntelliJ's local history +system? Using a combination of Consult (preview) and diff-buff, +that can be easily done! In this lightning talk, we'll explore how +to quickly browse through diff history and roll back using +built-in Emacs tooling. + + + +[[!inline pages="internal(2026/info/local-after)" raw="yes"]] + +[[!inline pages="internal(2026/info/local-nav)" raw="yes"]] + + diff --git a/2026/talks/mobile.md b/2026/talks/mobile.md new file mode 100644 index 00000000..000c8ee6 --- /dev/null +++ b/2026/talks/mobile.md @@ -0,0 +1,26 @@ +[[!meta title="How I fixed Org Mode's biggest mobile and collaboration problems"]] +[[!meta copyright="Copyright © 2026 bashbunni"]] +[[!inline pages="internal(2026/info/mobile-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 I fixed Org Mode's biggest mobile and collaboration problems +bashbunni (she/her) - <https://bashbunni.dev/> has all of my links + email + +[[!inline pages="internal(2026/info/mobile-before)" raw="yes"]] + +Productivity apps are one of the first project ideas that come to mind for new developers. Clearly, staying organized is a problem that a lot of people have and feel that what’s out there isn’t quite meeting their needs. On top of that, many existing task management systems require a lot of upkeep. Since first trying org mode in 2024, I knew immediately that this would bring value to my workflow. It’s quick to make, modify, label, and find tasks and org agenda takes care of making it all cohesive with smaller scoped task views so you’re not overwhelmed. It was all great until the first hurdle arose: how do I share the status of these things with my teammates? Then the next: how can I update tasks on the go from my phone? For a while I mostly ignored those issues and kept using it anyway. This month I decided to tackle those problems head on and see if there is truly a viable way to make org mode seamlessly integrate into more team-based or remote workflows. Here’s what I found. + +About the speaker: + +bashbunni is a software developer and content creator. She shares her live process of learning and tinkering with new programs on Twitch and YouTube. Her community is a space for thoughtful discussion on overlooked ethical and privacy issues in tech, reminding her audience to hold companies accountable and keep a healthy amount of skepticism. She uses her platforms to support open source projects and help increase adoption of those tools. Recently, she has created content to bring attention to Doom Emacs, NixOS, and Elm. She shares her software development learning journey to encourage others in their pursuits. + + + +[[!inline pages="internal(2026/info/mobile-after)" raw="yes"]] + +[[!inline pages="internal(2026/info/mobile-nav)" raw="yes"]] + + diff --git a/2026/talks/open-mic.md b/2026/talks/open-mic.md new file mode 100644 index 00000000..333909f2 --- /dev/null +++ b/2026/talks/open-mic.md @@ -0,0 +1,21 @@ +[[!meta title="Open session"]] +[[!meta copyright="Copyright © 2026 Participants"]] +[[!inline pages="internal(2026/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(2026/info/open-mic-before)" raw="yes"]] + + + + +[[!inline pages="internal(2026/info/open-mic-after)" raw="yes"]] + +[[!inline pages="internal(2026/info/open-mic-nav)" raw="yes"]] + + diff --git a/2026/talks/os.md b/2026/talks/os.md new file mode 100644 index 00000000..3ded2bac --- /dev/null +++ b/2026/talks/os.md @@ -0,0 +1,45 @@ +[[!meta title="Emacs everywhere: A fun romp through esoteric operating systems"]] +[[!meta copyright="Copyright © 2026 Aaron Grothe"]] +[[!inline pages="internal(2026/info/os-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 everywhere: A fun romp through esoteric operating systems +Aaron Grothe (he/him) - Pronunciation: Grow-Thee, <https://www.grothe.us> LinkedIn: <https://www.linkedin.com/in/aaron-grothe/>, <mailto:ajgrothe@yahoo.com> + +[[!inline pages="internal(2026/info/os-before)" raw="yes"]] + +One of the greatest running jokes and truest philosophies in the tech world is that Emacs isn’t just a text editor; it’s an operating system that happens to lack a good text editor. But a corollary to this philosophy is that the real Emacs can run on virtually any operating system ever conceived.Or can it? +This talk is a lighthearted, deeply technical, and fun exploration of running full, uncompromised GNU Emacs on some of the most esoteric, vintage, and fringe operating systems in existence. If you have ever wondered whether a legendary text editor from the 1970s can comfortably coexist with modern hobbyist kernels or forgotten platforms, this is the session for you. + +The Journey Across the Fringe + +We will kick off our adventure by looking past the usual Linux, macOS, and Windows environments to explore how Emacs behaves in the wild. Our tour will take us across a fascinating spectrum of platforms, including: + +- Haiku OS: The spiritual successor to BeOS, known for its incredible snappiness and unique interface design. +- ReactOS: The open-source effort to build an operating system binary-compatible with Windows NT. +- AROS (Amiga Research Operating System): Keeping the legendary Amiga spirit alive on modern hardware. +- GNU Hurd: The long-standing microkernel-based alternative to the Linux kernel, staying true to the core GNU philosophy. +- Termux on Android: Bridging the gap between pocket mobile computing and serious Unix environments. + +By examining these systems, the goal isn't just to marvel at technical trivia, but to discover the genuine boundaries of where Emacs succeeds, where it struggles, and what these edge cases reveal about portability and modern software design.The Redox OS Frontier and the WASM StopgapNo exploration of modern alternative operating systems would be complete without looking at Redox OS, an innovative, microkernel-based operating system written entirely in Rust. Currently, Redox OS cannot run a native version of Emacs out of the box. + +However, necessity is the mother of invention. To ensure nobody leaves without their text editor fix, we will demonstrate running Emacs compiled to WebAssembly (WASM) directly inside a browser on Redox OS. While we anticipate native Redox OS support arriving in the next 18 to 24 months, WASM serves as a brilliant, functional stopgap in the meantime. + +Conclusion + +Emacs in the 2020s is entirely a choice, just as choosing to daily-drive or tinker with an esoteric operating system is a choice. Together, they form an unexpectedly delightful combination for hackers, hobbyists, and digital archaeologists alike.Attendees will leave this talk with a fresh appreciation for software portability, a smile on their faces, and perhaps a new spark of inspiration to find a weird operating system for their own weekend tinkering. + +About the speaker: + +Welcome, brave souls, to an eccentric journey into digital omnipresence! While others debate modern IDEs, true enlightenment lies in the extensible glory of Emacs. But why stop at mainstream systems? Today, we boldly venture where few dare to tread: running Emacs on obscure, esoteric operating systems Haiku, ReactOS and others. Prepare for a delightfully chaotic exploration of stubborn survival and our ultimate, unstoppable blueprint for total world domination—one bizarre kernel at a time. Resistance is futile! Aaron Grothe has been a developer for years and has been an Emacs users for a very long time. It was his first full screen editor and it will probably be his last :-) + + + +[[!inline pages="internal(2026/info/os-after)" raw="yes"]] + +[[!inline pages="internal(2026/info/os-nav)" raw="yes"]] + + diff --git a/2026/talks/planning.md b/2026/talks/planning.md new file mode 100644 index 00000000..896bd4d6 --- /dev/null +++ b/2026/talks/planning.md @@ -0,0 +1,37 @@ +[[!meta title="The Emacs Planning Habits of a Questionably Effective Person: My 40-year journey of planning with Emacs, Org Mode, paper journals, etc."]] +[[!meta copyright="Copyright © 2026 George Jones"]] +[[!inline pages="internal(2026/info/planning-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. ---> + + +# The Emacs Planning Habits of a Questionably Effective Person: My 40-year journey of planning with Emacs, Org Mode, paper journals, etc. +George Jones - <mailto:gmj@pobox.com> + +[[!inline pages="internal(2026/info/planning-before)" raw="yes"]] + +This is the story of my 40+ year journey using planning tools, many of them inside Emacs since the advent of Org Mode. This is not a "now I know how to plan things perfectly" talk. I will demo Emacs planning workflows and tools I use, that I have used, and that I'm experimenting with now. You are probably a better planner than I am. You probably get more things done than I do. Sometimes getting things done is the point. Sometimes shiny objects are the point. Sometimes avoiding shiny objects is the point. I'll touch on all that. + +Here are some of the "Try this at home, kids" things I will touch on: + +- Org and Denote capture templates +- My custom `org-todo-keywords` +- The Org Agenda: Per-project files vs. a single `diary.org` +- Habits, schedules, and weekly "DONE" and "Worked On" summaries +- Migrating to Denote +- "Strange new worlds" with AI/gptel creeping into my workflows + +Sometimes life happens outside Emacs. I admit it. I will touch on how my daily paper journaling and other inputs interact with my Emacs workflows. + +About the speaker: + +George Jones has been noodling around Emacsen since the TECO days (pre GNU) and had a bit to do with MicroEmacs finding its way onto the Amiga and USENET. Since the advent of Org mode much of his planning happens there. In this talk George will run through demos of current workflows with capture templates, custom TODO keywords, Org Agenda, habits, schedules and the use of newcomers including denote and gptel. + + + +[[!inline pages="internal(2026/info/planning-after)" raw="yes"]] + +[[!inline pages="internal(2026/info/planning-nav)" raw="yes"]] + + diff --git a/2026/talks/plots.md b/2026/talks/plots.md new file mode 100644 index 00000000..4286d63e --- /dev/null +++ b/2026/talks/plots.md @@ -0,0 +1,62 @@ +[[!meta title="Plots with ROOTs: Resilient data visualization with Emacs, Org and gnuplot"]] +[[!meta copyright="Copyright © 2026 Lukas C. Bossert"]] +[[!inline pages="internal(2026/info/plots-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. ---> + + +# Plots with ROOTs: Resilient data visualization with Emacs, Org and gnuplot +Lukas C. Bossert (he/him) - <mailto:bossert@itc.rwth-aachen.de> + +[[!inline pages="internal(2026/info/plots-before)" raw="yes"]] + +A figure in a report is easy to copy—and surprisingly easy to detach +from the data, decisions and code that produced it. What would change if +the plot were a reproducible result of the document rather than an image +pasted into it? + +This talk develops a small report in Org mode, moving from a named table +to gnuplot figures and publication outputs. Working in Doom Emacs, I +will demonstrate direct table plotting, explicit plotting code with Org +Babel, and reusable figure styles through Noweb references. A single +corrected value provides the central demonstration: after re-execution, +the figure and calculated summary change together, while the +interpretation still requires human review. + +The workflow is guided by ROOT [1] —Robust, Open, Ongoing and +Time-tested— my framework for thinking about resilient technologies. +Rather than equating resilience with the age of a tool, I ask whether a +workflow can be inspected, understood, repaired and handed over. Keeping +data, plotting instructions and explanation connected is one practical +response. + +The talk also addresses the less glamorous parts of reproducibility: +hidden session state, stale results, external dependencies, output +formats and the difference between regenerating a figure and exporting a +document. + +Participants will leave with a small Org-based example and a pattern +they can adapt for research reports, teaching materials or personal +data. Basic familiarity with Org mode is helpful; no prior experience +with gnuplot is required. The demonstration uses Doom Emacs, but the +underlying workflow is not Doom-specific. + +[1] <https://doi.org/10.5281/zenodo.17157587> + +About the speaker: + +Lukas C. Bossert works in research data management at RWTH Aachen +University’s IT Center. The ROOT concept—Robust, Open, Ongoing and +Time-tested—asks how digital workflows can remain understandable, +maintainable and reusable. In “Plots with ROOTs,” Lukas demonstrates a +report-building workflow that keeps data, plotting instructions and +explanations connected through Emacs, Org and gnuplot. + + + +[[!inline pages="internal(2026/info/plots-after)" raw="yes"]] + +[[!inline pages="internal(2026/info/plots-nav)" raw="yes"]] + + diff --git a/2026/talks/portable.md b/2026/talks/portable.md new file mode 100644 index 00000000..7f502be2 --- /dev/null +++ b/2026/talks/portable.md @@ -0,0 +1,37 @@ +[[!meta title="Emacs as my portable user space across operating platforms"]] +[[!meta copyright="Copyright © 2026 Mohammed Ismail Ansari"]] +[[!inline pages="internal(2026/info/portable-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 my portable user space across operating platforms +Mohammed Ismail Ansari - <https://myterminal.me>, <mailto:mail@myterminal.me> + +[[!inline pages="internal(2026/info/portable-before)" raw="yes"]] + +In the talk, I'll cover my brief experience using Emacs across three +major operating systems, how it influenced the other tools within my +toolset, my effort to share my configuration with the rest of us, and +eventually super-emacs: my attempt at a minimal but feature-full +starter pack for Emacs that I've been maintaining for over a decade +now. + +About the speaker: I, Mohammed Ismail Ansari (aka myTerminal), come +from an academic background in Electronics Engineering, and have been +working professionally as a software engineer since seventeen years. +I love to create and experiment with all kinds of machines, not just +computers, enjoying the exploration and tinkering process. In the +recent years I've also discovered my interest in personal +productivity, and pairing them with some of the core elements within +my toolset, including Linux, Emacs, and many other open-source +software everything fits in place as if it was supposed to be. + + + +[[!inline pages="internal(2026/info/portable-after)" raw="yes"]] + +[[!inline pages="internal(2026/info/portable-nav)" raw="yes"]] + + diff --git a/2026/talks/rau.md b/2026/talks/rau.md new file mode 100644 index 00000000..554d1bcf --- /dev/null +++ b/2026/talks/rau.md @@ -0,0 +1,39 @@ +[[!meta title="Emacs as a Window Manager and concurrency"]] +[[!meta copyright="Copyright © 2026 Thomas Koch"]] +[[!inline pages="internal(2026/info/rau-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 Window Manager and concurrency +Thomas Koch - <https://blog.koch.ro>, <mailto:thomas@koch.ro> + +[[!inline pages="internal(2026/info/rau-before)" raw="yes"]] + +Rau is one of three different Wayland Window Manager projects active right now +and the only one written only in Elisp (at the moment). + +I'll present the current state of Rau, compare it with the other two projects +(Reka, EWM) and discuss some difficulties encountered with a focus on +concurrency and Emacs. + +Rau is already fully functional for daily use. The single threaded nature of +Emacs however is a major issue that will require to move the major part of Rau +from Elisp into an Emacs module and thus into another language. + +<https://github.com/thkoch2001/rau> + +About the speaker: + +Thomas Koch has a preference for logic, correctness and elegance. +Therefore, he likes Haskell, Emacs, Nix, Postgres and tries to help the success of <https://github.com/axiosoph/axios>. +He deeply values open, respectful discussions with people of diverse perspectives. + + + +[[!inline pages="internal(2026/info/rau-after)" raw="yes"]] + +[[!inline pages="internal(2026/info/rau-nav)" raw="yes"]] + + diff --git a/2026/talks/sat-close.md b/2026/talks/sat-close.md new file mode 100644 index 00000000..12eeb9f2 --- /dev/null +++ b/2026/talks/sat-close.md @@ -0,0 +1,21 @@ +[[!meta title="Saturday closing remarks / open session"]] +[[!meta copyright="Copyright © 2026 ${speakers}"]] +[[!inline pages="internal(2026/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 / open session + + +[[!inline pages="internal(2026/info/sat-close-before)" raw="yes"]] + + + + +[[!inline pages="internal(2026/info/sat-close-after)" raw="yes"]] + +[[!inline pages="internal(2026/info/sat-close-nav)" raw="yes"]] + + diff --git a/2026/talks/sat-open.md b/2026/talks/sat-open.md new file mode 100644 index 00000000..d67255b4 --- /dev/null +++ b/2026/talks/sat-open.md @@ -0,0 +1,21 @@ +[[!meta title="Saturday opening remarks"]] +[[!meta copyright="Copyright © 2026 Sacha Chua"]] +[[!inline pages="internal(2026/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 +Sacha Chua + +[[!inline pages="internal(2026/info/sat-open-before)" raw="yes"]] + + + + +[[!inline pages="internal(2026/info/sat-open-after)" raw="yes"]] + +[[!inline pages="internal(2026/info/sat-open-nav)" raw="yes"]] + + diff --git a/2026/talks/sun-close.md b/2026/talks/sun-close.md new file mode 100644 index 00000000..3568cf20 --- /dev/null +++ b/2026/talks/sun-close.md @@ -0,0 +1,21 @@ +[[!meta title="Sunday closing remarks"]] +[[!meta copyright="Copyright © 2026 ${speakers}"]] +[[!inline pages="internal(2026/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(2026/info/sun-close-before)" raw="yes"]] + + + + +[[!inline pages="internal(2026/info/sun-close-after)" raw="yes"]] + +[[!inline pages="internal(2026/info/sun-close-nav)" raw="yes"]] + + diff --git a/2026/talks/sun-open.md b/2026/talks/sun-open.md new file mode 100644 index 00000000..4a3dc64e --- /dev/null +++ b/2026/talks/sun-open.md @@ -0,0 +1,21 @@ +[[!meta title="Sunday opening remarks"]] +[[!meta copyright="Copyright © 2026 Sacha Chua"]] +[[!inline pages="internal(2026/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 +Sacha Chua + +[[!inline pages="internal(2026/info/sun-open-before)" raw="yes"]] + + + + +[[!inline pages="internal(2026/info/sun-open-after)" raw="yes"]] + +[[!inline pages="internal(2026/info/sun-open-nav)" raw="yes"]] + + diff --git a/2026/talks/team.md b/2026/talks/team.md new file mode 100644 index 00000000..22284ca4 --- /dev/null +++ b/2026/talks/team.md @@ -0,0 +1,109 @@ +[[!meta title="Beyond the Chatbot: Team-Oriented AI in Emacs"]] +[[!meta copyright="Copyright © 2026 Mohsen BANAN"]] +[[!inline pages="internal(2026/info/team-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. ---> + + +# Beyond the Chatbot: Team-Oriented AI in Emacs +Mohsen BANAN (he/him) - Pronunciation: MO-HH-SS-EN, <https://github.com/mohsenBanan> + +[[!inline pages="internal(2026/info/team-before)" raw="yes"]] + +Subtitle: Durable, transferable AI context with the org-based bisos.aiActivity + +In these early days, none of us can claim to have figured out the right way +to +collaborate with our AI-Assistants (Claude, etc.). The common workflows are +rudimentary: a back-and-forth chat that produces some result, which you +then try +to preserve in a CLAUDE.md; or "make a Plan, then build it." Integration of +AI +into our digital ecosystems and our usage environments remains primitive, +individualistic, and experimental. + +Emacs is omni-moded. Over the past 40+ years people have added a mode for +anything and everything, so layering AI-Assistants on top of all of those +modes +is the natural and instinctive model for Emacs. This omni-context, +editor-centered, integrated usage environment now supports AI across all +work +contexts — software development (in any language), content creation and +publishing (such as LaTeX), sophisticated email management (like Gnus), and +task +and time management (using org-mode) — consistently, naturally, and +intuitively. The richness of this convivial aspect of Emacs is unique; +those who +think only in terms of the likes of VS-Code don't know what they are +missing. + +Integration of AI into Emacs has multiple dimensions. This talk organizes +them +into three: + +1. Emacs packages, modes, and interfaces for talking to existing LLM-AIs — + gptel, aidermacs, claude-code.el, and many more. + +2. MCPs that expose Emacs' editing-oriented capabilities, and MCPs that + give AIs + full or partial access to the Lisp engine (and to Emacs applications) — + e.g. claude-code-ide.el and monet. + +3. AI-Workflows for establishing transferable, team-oriented long contexts + that survive across sessions, machines, and even a change of AI-Assistant. + +First I survey (1) and (2) — the fast-moving landscape of Emacs AI packages — and make the case that we do not yet have a framework for layering and modularizing these efforts. +A great deal of duplicated and disjoint work is in progress. +At this stage, that is not necessarily a bad thing. + +The emphasis of this presentation is on (3). +Here the real problem is continuity across a discontinuity: Claude doesn't remember yesterday, and a colleague can read your code but not how you collaborated with your AI to produce it. +I introduce an org-mode-based set of tools centered on bisos.aiActivity — a move beyond the chatbot toward AI that is convivial (shaped by its user, not the reverse), collaborative (many sessions and many colleagues toward shared goals), and cumulative (each participant profits from the others' AI interactions). + +aiActivity has two parts: + +1. bisos.aiActivity — a PyPI package (the thin execution engine), + installed with: + + pipx install bisos.aiActivity + + Sources: <https://github.com/bisos-pip/aiActivity> +2. A set of templates — where the compounding value lives. The reference + templates tree is public and meant to be forked and adapted: + + <https://github.com/bxexamples/aiActivityTemplates> + +The templates encode: + +- AI-Activity — the kind of work being done (e.g. bisos-pip, lcnt), + symlinked from a shared tree so refinements propagate to every project. +- AI-WorkPlan — this specific effort, broken into Stages and TODOs. +- AI-DevStatus — a working-state handoff to the next AI-session or colleague. +- A set of Skills and a set of Commands. + +The model rests on org-mode, deliberately, not Markdown: real TODO state +machines, scheduling, cross-referencing anchors, archiving, and dynamic +blocks. +Projects are decomposed with a hierarchical, tree-and-siblings model +(initiate / initiateSub), so a base repo and its subprojects each carry +their own +plan while inheriting shared conventions. For Emacs package development, we +can +build directly on this. + +bisos.aiActivity originates in — and its default templates encode the +conventions of — the Libre-Halaal ByStar/BISOS (ByStar Internet Services +OS) +digital ecosystem (<https://github.com/bisos>, <https://www.by-star.net>), whose +Emacs-based usage environment is Blee (<https://github.com/bx-blee>). None of +that is a prerequisite: the tool is org-mode based and the templates are +open. +Take them, adapt them — and if you try it, let me know what breaks. + + +[[!inline pages="internal(2026/info/team-after)" raw="yes"]] + +[[!inline pages="internal(2026/info/team-nav)" raw="yes"]] + + diff --git a/2026/talks/writing.md b/2026/talks/writing.md new file mode 100644 index 00000000..6b0400bd --- /dev/null +++ b/2026/talks/writing.md @@ -0,0 +1,64 @@ +[[!meta title="Close the writing accountability gap with Emacs"]] +[[!meta copyright="Copyright © 2026 Blaine Mooers"]] +[[!inline pages="internal(2026/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. ---> + + +# Close the writing accountability gap with Emacs +Blaine Mooers (he, him) - Pronunciation: Mooers is spoken as "Mores", <mailto:blaine-mooers@ou.edu> + +[[!inline pages="internal(2026/info/writing-before)" raw="yes"]] + +This 20-minute talk introduces writing-schedule.el and writing-habit.el available on GitHub at MooersLab. +These tools address the challenge of managing multiple writing projects in parallel and measuring adherence to the writing schedule. +These measurements provide valuable feedback that you can use to close the gap between your planned and actual writing activity. +You can use this to make your writing habit antifragile, growing stronger in response to disruptions. + +These tools address also address the seemingly unsolvable problem of managing multiple parallel writing projects in academia. +This issue is also widespread in other walks of life. +Emacs can address this issue. + +Writing projects can span multiple days, weeks, months, and even years before they are finished. +Long-running projects need to move forward steadily, while shorter writing projects have many deadlines. +You can focus on only one project at a time, but you can make progress on two to four projects in a day by adhering to a schedule. +Scheduling recurring events with time blocks is a popular approach to handling parallel projects. +However, setting time blocks on paper or in an electronic application (e.g., iCal, gCal, or Outlook Express) quickly becomes tedious. +We harness Emacs to cut the time spent scheduling the upcoming week in half. + +The package writing-schedule.el uses an org-mode table to plan the week's writing. +Single letters are mapped to specific projects and added to cells of the table to assign time blocks to specific writing projects. +You can quickly reassign the letters to a different project if you will use similar time slots in the upcoming week. + +You can use a table from the prior year as a template because the pattern of discretionary time available for writing is likely similar from year to year. +You can create template files to reflect seasonal fluctuations in discretionary time available for writing. +Writing schedule tables can accommodate 1-7 day work weeks. +The information in the org-table can be exported as a list of scheduled TODOs for org-agenda, to a PDF file in the time-blocking format advocated by Calvin Newport, and to an .ics file for importing into iCal, gCal, or Outlook calendar. +You can shift the time blocks as the day progresses to reflect what really happened. + +The time blocks are assigned to different writing activities: generative writing, editing, and support activities. +You can schedule these activities to match your daily pattern of alertness and energy. +Morning larks can assign generative writing to the early hours of the day; night owls can assign generative writing to the late hours. +Both groups do editing best at peak alertness, usually between 9:30 and 11:30 A.M. +They can assign support writing activities to the afternoons. + +This is the ideal pattern, but real-life obligations disrupt it. +The record for the past week is compared with the planned events to measure adherence to the writing schedule using the dashboard produced by the package writing-habit.el. +The package provides several bar plots comparing time scheduled and time spent by project and by writing activity. + +About the speaker: + +Blaine Mooers is an associate professor 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. +An avid Emacs, LaTeX, Clojure, and Python user for many years, he builds tools that optimize scientific workflows, including writing workflows. +In this talk, he shares writing-schedule.el, which brings time blocking to org-agenda, and the template system he uses to schedule a week in minutes. +His aim is an antifragile writing habit that grows stronger through the disruptions of academic life. + + + +[[!inline pages="internal(2026/info/writing-after)" raw="yes"]] + +[[!inline pages="internal(2026/info/writing-nav)" raw="yes"]] + + |
