<?xml version="1.0" encoding="UTF-8" standalone="no"?><?xml-stylesheet href="/assets/rss.xsl" type="text/xsl"?><rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" version="2.0">
<channel>
	<title>Sacha Chua</title>
	<atom:link href="https://sachachua.com/blog/feed/index.xml" rel="self" type="application/rss+xml"/>
	<atom:link href="https://sachachua.com" rel="alternate" type="text/html"/>
	<link>https://sachachua.com/blog/feed/index.xml</link>
	<description>Emacs, sketches, and life</description>
  
	<lastBuildDate>Mon, 02 Nov 2026 14:20:32 GMT</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>daily</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>11ty</generator>
  <item>
		<title>2026-11-02 Emacs news</title>
		<link>https://sachachua.com/blog/2026/11/2026-11-02-emacs-news/</link>
		
		<pubDate>Mon, 02 Nov 2026 14:20:32 GMT</pubDate>
    <category>emacs</category>
<category>emacs-news</category>
		<guid isPermaLink="false">https://sachachua.com/blog/2026/11/2026-11-02-emacs-news/</guid>
		<description><![CDATA[<p>
Belated happy 50th birthday, Emacs!
</p>

<p>
In other news, you can now reach Emacs News at <a href="https://emacs.news">https://emacs.news</a>. Enjoy!
</p>

<ul class="org-ul">
<li>Upcoming events (<a href="https://emacslife.com/calendar/emacs-calendar.ics">iCal file</a>, <a href="https://emacslife.com/calendar/">Org</a>):
<ul class="org-ul">
<li><a href="https://mailb.org/pipermail/emacs-berlin/2026/001405.html">[emacs-berlin] 40c3 Assembly?</a> (<a href="https://toot.berlin/@emacs/117511804875631981">@emacs@toot.berlin</a>)</li>
<li>EmacsATX: Emacs Social <a href="https://www.meetup.com/emacsatx/events/316464081/">https://www.meetup.com/emacsatx/events/316464081/</a> Thu Nov 5 1600 America/Vancouver - 1800 America/Chicago - 1900 America/Toronto &ndash; Fri Nov 6 0000 Etc/UTC - 0100 Europe/Berlin - 0530 Asia/Kolkata - 0800 Asia/Singapore</li>
<li>M-x Research: TBA <a href="https://m-x-research.github.io/">https://m-x-research.github.io/</a> Fri Nov 6 0800 America/Vancouver - 1000 America/Chicago - 1100 America/Toronto - 1600 Etc/UTC - 1700 Europe/Berlin - 2130 Asia/Kolkata &ndash; Sat Nov 7 0000 Asia/Singapore</li>
<li>Emacs.si (in person): Emacs.si meetup #11 2026 (v #živo) <a href="https://dogodki.kompot.si/events/b6afef85-3b06-44b8-af29-e8dcaabcab8a">https://dogodki.kompot.si/events/b6afef85-3b06-44b8-af29-e8dcaabcab8a</a> Mon Nov 9 1900 CET</li>
<li>Emacs Berlin: In-Person-Only Emacs-Berlin Stammtisch <a href="https://emacs-berlin.org/">https://emacs-berlin.org/</a> Tue Nov 10 1900 Europe/Berlin</li>
<li>OrgMeetup (virtual) <a href="https://orgmode.org/worg/orgmeetup.html">https://orgmode.org/worg/orgmeetup.html</a> Wed Nov 11 0800 America/Vancouver - 1000 America/Chicago - 1100 America/Toronto - 1600 Etc/UTC - 1700 Europe/Berlin - 2130 Asia/Kolkata &ndash; Thu Nov 12 0000 Asia/Singapore</li>
<li>Emacs Paris: S: Emacs workshop in Paris (online) <a href="https://emacs-doctor.com/">https://emacs-doctor.com/</a> Thu Nov 12 0830 America/Vancouver - 1030 America/Chicago - 1130 America/Toronto - 1630 Etc/UTC - 1730 Europe/Berlin - 2200 Asia/Kolkata &ndash; Fri Nov 13 0030 Asia/Singapore</li>
<li>Atelier Emacs Montpellier (in person) <a href="https://lebib.org/date/atelier-emacs">https://lebib.org/date/atelier-emacs</a> Fri Nov 13 1800 Europe/Paris</li>
</ul></li>
<li>Beginner:
<ul class="org-ul">
<li><a href="https://pablomurad.com/emacs-for-the-curious/">Emacs for the curious: install it, survive it, keep it · Pablo Murad</a> (<a href="https://murad.social/@pablo/statuses/01M5XQ5NK3EDD3N0D8J3HQQBGZ">@pablo@murad.social</a>)</li>
</ul></li>
<li>Emacs configuration:
<ul class="org-ul">
<li><a href="https://www.thenautilus.net/cgit/emacs/tree/init.el">init.el - emacs - My EMACS configuration</a> (<a href="https://s.thenautilus.net/notes/asvsgrhcip">@dakkar@s.thenautilus.net</a>)</li>
</ul></li>
<li>Appearance:
<ul class="org-ul">
<li><a href="https://ray-on-emacs.blogspot.com/2026/10/highlight-active-emacs-window.html">Raymond Zeitler: Highlight Active Emacs Window</a> (<a href="https://irreal.org/blog/?p=14188">Irreal</a>)</li>
<li><a href="https://github.com/EstebanJTrabajos/meeting-mode">meeting-mode: Highlight the what's in focus during screen sharing</a> (<a href="https://www.reddit.com/r/emacs/comments/1xhbdtn/meetingmode_highlight_the_whats_in_focus_during/">Reddit</a>)</li>
<li><a href="https://rahuljuliato.com/posts/emacs-font-cycle-transient">Test-Driving Fonts in Emacs with a Transient Menu</a></li>
<li><a href="https://www.jamescherti.com/emacs-terminal-colors-el/">terminal-colors.el - Make your Emacs terminal color scheme look like a real terminal (vterm, eat, term, and ansi-color)</a> (<a href="https://www.reddit.com/r/emacs/comments/1xjqse1/terminalcolorsel_make_your_emacs_terminal_color/">Reddit</a>)</li>
<li><a href="https://github.com/Mark44928/Greenit">Greenit – a green-shifted terminal + Emacs theme family (dark &amp; light) and more.</a> (<a href="https://www.reddit.com/r/unixporn/comments/1xk0mwf/oc_greenit_a_greenshifted_terminal_vim_theme/">Reddit</a>)</li>
<li><a href="https://github.com/szymonwilczek/au-themes">au-mysterium: a new low-glare theme for Halloween</a> (<a href="https://www.reddit.com/r/emacs/comments/1xkhqdu/aumysterium_a_new_lowglare_theme_for_halloween/">Reddit</a>)</li>
<li><a href="https://protesilaos.com/codelog/2026-10-31-emacs-ef-halloween-dark/">Protesilaos: Emacs: ef-halloween-dark is in ef-themes.git</a></li>
<li><a href="https://protesilaos.com/codelog/2026-10-29-emacs-live-ef-themes-diff-magit-colors/">Protesilaos: Emacs live refining ‘ef-themes’ Diff/Magit colours at 2026-10-29 18:00 Europe/Athens</a> (<a href="https://www.youtube.com/watch?v=JnDcXPzFsfA">YouTube</a> 02:14:56)</li>
<li><a href="https://protesilaos.com/codelog/2026-10-31-emacs-live-ef-themes-halloween/">Protesilaos: Emacs live new Halloween theme for ‘ef-themes’ at 2026-10-31 14:00 Europe/Athens</a> (<a href="https://www.youtube.com/watch?v=_sUctSSXBhU">YouTube</a> 02:35:51)</li>
</ul></li>
<li>Navigation:
<ul class="org-ul">
<li><a href="https://github.com/jamescherti/quick-fasd.el/">quick-fasd.el - Easily navigate your file system by using Fasd [Release 1.0.4]​</a> (<a href="https://www.reddit.com/r/emacs/comments/1xi4v35/quickfasdel_easily_navigate_your_file_system_by/">Reddit</a>)</li>
<li><a href="https://emacs.dyerdwelling.family/emacs/20261025153614-emacs&#45;&#45;stop-going-to-the-top-isearch-allow-motion/">James Dyer: Stop Going to the Top: isearch-allow-motion in Emacs</a> (<a href="https://irreal.org/blog/?p=14180">Irreal</a>)</li>
</ul></li>
<li>Hyperbole:
<ul class="org-ul">
<li><a href="http://www.gnu.org/s/hyperbole/HY-NEWS.html">GNU Hyperbole Release 9.3.2 is available</a> (<a href="https://www.reddit.com/r/emacs/comments/1xh5jhz/gnu_hyperbole_release_932_is_available/">Reddit</a>)</li>
</ul></li>
<li>Dired:
<ul class="org-ul">
<li><a href="http://yummymelon.com/devnull/announcing-mdired.html">Charles Choi: Announcing mdired, or adding a chainsaw to Dired</a></li>
<li><a href="https://codeberg.org/emacs-weirdware/dired-mime">emacs-weirdware/dired-mime: MIME support for Emacs and Dired - Codeberg.org</a> (<a href="https://retro.social/@ieure/117542483889724907">@ieure@retro.social</a>)</li>
<li><a href="https://github.com/jwiegley/dired-filetags">jwiegley/dired-filetags: Add-on for dired that implements Karl Voit's filetags utility · GitHub</a></li>
</ul></li>
<li>Writing:
<ul class="org-ul">
<li><a href="https://mbork.pl/2026-10-26_Unicode_punctuation_in_Emacs">Marcin Borkowski: Unicode punctuation in Emacs</a> (<a href="https://irreal.org/blog/?p=14182">Irreal</a>)</li>
<li><a href="https://github.com/agzam/mw-thesaurus.el">Improvements in mw-thesaurus</a> (<a href="https://www.reddit.com/r/emacs/comments/1xlphzv/improvements_in_mwthesaurus/">Reddit</a>)</li>
<li><a href="https://www.youtube.com/watch?v=hlKeFUQXJok">"Obsidian is bloated," so use XML</a> (07:48)</li>
</ul></li>
<li>Denote:
<ul class="org-ul">
<li><a href="https://protesilaos.com/codelog/2026-10-30-emacs-live-denote-refinements/">Protesilaos: Emacs live refinements for Denote at 2026-10-30 14:45 Europe/Athens</a> (<a href="https://www.youtube.com/watch?v=VgL7usTlpsc">YouTube</a>, 01:51:30)</li>
</ul></li>
<li>Org Mode:
<ul class="org-ul">
<li><a href="https://blog.tecosaur.net/tmio/2026-11-01-previewing.html">This Month in Org: November 2026: Fabulously Fancy Fragments</a> (<a href="https://www.reddit.com/r/orgmode/comments/1xla0fi/this_month_in_org_november_2026/">r/orgmode</a>, <a href="https://www.reddit.com/r/emacs/comments/1xla0se/this_month_in_org_november_2026/">r/emacs</a>)</li>
<li><a href="https://karthinks.com/software/understanding-org-latex-preview/">Understanding Org's LaTeX previews - karthinks</a> (<a href="https://www.reddit.com/r/emacs/comments/1xlbe8v/understanding_orgs_latex_previews_karthinks/">Reddit</a>)</li>
<li><a href="https://ohyecloudy.com/emacsian/2026/10/31/org-gcal/">org-gcal - Google Calendar 이벤트도 Emacs 품 안으로 - (emacsian ohyecloudy)</a> (<a href="https://bsky.app/profile/ohyecloudy.bsky.social">@ohyecloudy.bsky.social</a>)</li>
<li><a href="https://github.com/cosmicz/dorg">DOrg 0.2: a structured query-and-edit API for your Org data plane, from Elisp or the CLI</a> (<a href="https://www.reddit.com/r/emacs/comments/1xg8xhk/dorg_02_a_structured_queryandedit_api_for_your/">Reddit</a>)</li>
<li><a href="https://github.com/kristijanhusak/org-lsp">Orgmode LSP - Language server for Orgmode</a> (<a href="https://www.reddit.com/r/orgmode/comments/1xltea0/orgmode_lsp_language_server_for_orgmode/">Reddit</a>)</li>
</ul></li>
<li>Coding:
<ul class="org-ul">
<li><a href="https://www.bounga.org/unix/2026/11/01/moving-from-asdf-to-mise/">Nicolas Cavigneaux: Leaving asdf for mise</a> - dev tools, env vars, tasks</li>
<li><a href="https://www.youtube.com/watch?v=q-cw7r_Dk94">Emacs: Git Rebase with Magit (4 Real Scenarios)</a> (12:29, <a href="https://www.reddit.com/r/emacs/comments/1xle1cl/rebasing_with_magit_4_real_scenarios/">Reddit</a>)</li>
<li><a href="https://codeberg.org/martianh/fj.el">fj.el 0.49 - forgejo / codeberg client: jump to issue, own repo</a> (<a href="https://todon.nl/@mousebot/117535274011221945">@mousebot@todon.nl</a>)</li>
<li><a href="https://www.youtube.com/watch?v=BDn8ak-8yIs">EmacsConf 2026: El Remoto: browse any GitHub repos without cloning them - Ag</a> (12:11) Ag is sharing this talk early as an experiment, feel free to to start trying it out</li>
<li><a href="https://github.com/dkdwn/licensel">licensel an Emacs package for inserting common software license texts into the current buffer.</a> (<a href="https://www.reddit.com/r/emacs/comments/1xlfbmv/licensel_an_emacs_package_for_inserting_common/">Reddit</a>)</li>
<li><a href="https://github.com/benvvalk/tree-guide.el">Better lisp editing with `tree-guide.el` (and other packages)</a> (<a href="https://www.youtube.com/watch?v=5qgXUH5pHOk">YouTube, </a><a href="https://www.reddit.com/r/emacs/comments/1xgxy9a/better_lisp_editing_with_treeguideel_and_other/">Reddit</a>)</li>
<li><a href="https://www.youtube.com/watch?v=mFbIvl76CnI">Run interactive Clojure workflows from Emacs w/ Admin Delux</a> (09:01)</li>
</ul></li>
<li>Web:
<ul class="org-ul">
<li><a href="https://github.com/jamescherti/proxymacs.el">proxymacs.el - An Emacs package that configures the HTTP/HTTPS/SOCKS proxy with optional authentication</a> (<a href="https://www.reddit.com/r/emacs/comments/1xiv97d/proxymacsel_an_emacs_package_that_configures_the/">Reddit</a>)</li>
</ul></li>
<li>Mail, news, and chat:
<ul class="org-ul">
<li><a href="https://sachachua.com/blog/2026/10/emacsconf-using-message-sent-hook-to-run-buffer-specific-code-to-keep-track-of-e-mailed-schedules/">Sacha Chua: EmacsConf: Using message-sent-hook to run buffer-specific code to keep track of e-mailed schedules</a></li>
<li><a href="https://www.jordiinglada.net/sblog/rss-feeds-emacs.html">Reading RSS feeds with Emacs</a> (2014, <a href="https://social.lol/@swrogers/117515193185688699">@swrogers@social.lol</a>)</li>
</ul></li>
<li>Doom Emacs:
<ul class="org-ul">
<li><a href="https://www.bounga.org/emacs/2026/10/31/revisiting-my-doom-emacs-configuration/">Nicolas Cavigneaux: Revisiting My Doom Emacs Configuration</a></li>
</ul></li>
<li>Multimedia:
<ul class="org-ul">
<li><a href="https://pranta.re/posts/emacs-and-its-many-interfaces.html">Emacs and its many (inter)faces</a> (<a href="https://www.reddit.com/r/emacs/comments/1xge1u2/emacs_and_its_many_interfaces/">Reddit</a>)</li>
</ul></li>
<li>EXWM:
<ul class="org-ul">
<li><a href="https://www.draketo.de/software/emacs-tipps#exwm-session-guix-slim">EXWM as default session on Guix with slim</a></li>
</ul></li>
<li>LLMs:
<ul class="org-ul">
<li><a href="https://kitallis.in/p/hutch-a-local-code-review-interface-for-magit/">hutch: local code reviews in emacs for the mildly disenfranchised — kitallis.in</a> (<a href="https://lobste.rs/s/vqm1fy/hutch_local_code_reviews_emacs_for_mildly">lobste.rs</a>)</li>
<li><a href="https://www.reddit.com/r/emacs/comments/1xidevi/how_i_streamlined_prs_waiting_for_review_with_mu/">How I streamlined PRs waiting for review with mu + Org-mode + AI</a></li>
<li><a href="https://www.youtube.com/watch?v=XQkrRuYp7FM">Supertag 0.4 for Emacs: one sentence, one interface for each kind of Org note</a> (09:19)
<ul class="org-ul">
<li><a href="https://www.youtube.com/watch?v=KPAyaC6Dx_Q">(update) Supertag 0.4.0: lifestreams-style  stream-agent, summary</a> (03:47, <a href="https://www.reddit.com/r/emacs/comments/1xgoisv/update_supertag_040_lifestreamsstyle_streamagent/">Reddit</a>)</li>
</ul></li>
<li><a href="https://github.com/aavanian/claude-archive.el">aavanian/claude-archive.el: Browse, search and read your claude.ai conversation exports in Emacs. · GitHub</a> (<a href="https://bsky.app/profile/alexandre.avanian.net">@alexandre.avanian.net</a>)</li>
</ul></li>
<li>Community:
<ul class="org-ul">
<li><a href="https://www.technologyreview.com/2026/10/20/1145399/emacs-turns-50/">EMACS turns 50</a> (<a href="https://news.ycombinator.com/item?id=50273171">HN</a>, <a href="https://www.reddit.com/r/emacs/comments/1xh8hu2/emacs_turns_50/">r/emacs</a>, <a href="https://lobste.rs/s/uimyck/emacs_turns_50">lobste.rs</a>, <a href="https://www.reddit.com/r/emacs/comments/1xhxqfr/emacs_turns_50/">r/emacs again</a>, <a href="https://programming.dev/post/58838726?scrollToComments=true">programming.dev</a> <a href="https://irreal.org/blog/?p=14184">Irreal</a>)
<ul class="org-ul">
<li><a href="https://www.theregister.com/applications/2026/11/01/mother-of-all-editors-emacs-is-50/5306727">'Mother of all editors' Emacs is 50</a></li>
<li><a href="https://linuxfr.org/news/emacs-a-50-ans">Emacs a 50 ans - LinuxFr.org</a> (<a href="https://mamot.fr/@benzogaga33/117546536414454403">@benzogaga33@mamot.fr</a>)</li>
<li><a href="https://somoslibres.org/15-nieuws/gnu/15024-emacs-50-anos-historia-editor-gnu-linux-programacion">Emacs cumple 50 años: la historia del editor que sobrevivió a cinco décadas de informática - Somos Libres</a> (<a href="https://bsky.app/profile/elfolio.bsky.social">@elfolio.bsky.social</a>, <a href="https://bsky.app/profile/dogvilia.bsky.social">@dogvilia.bsky.social</a>)</li>
</ul></li>
<li><a href="https://youtu.be/Sw6sCMIypmk">Emacs for Everything - Why Sacha Chua Still Lives in Emacs After 20+ Years</a> (01:47:55, <a href="https://www.reddit.com/r/emacs/comments/1xkmz33/emacs_for_everything_why_sacha_chua_still_lives/">Reddit</a>)
<ul class="org-ul">
<li><a href="https://sachachua.com/blog/2026/11/my-chat-with-linkarzu/">Sacha Chua: My chat with Linkarzu</a></li>
<li><a href="https://www.youtube.com/watch?v=cZ_ZjzKujQg">Yay Emacs 47: Editing the VTT for my chat with Linkarzu</a> (01:56:24) livestream includes some Q&amp;A on voice</li>
<li><a href="https://youtu.be/Xk02luunlfc">Emacs Voice Control With Local AI on a 2018 Laptop - Sacha Chua's Setup</a> (<a href="https://www.reddit.com/r/emacs/comments/1xioxc5/emacs_voice_control_with_local_ai_on_a_2018/">Reddit</a>)</li>
<li><a href="https://sachachua.com/blog/2026/10/clip-emacs-voice-control-describing-my-setup-during-linkarzu-s-livestream/">Sacha Chua: Clip: Emacs voice control - describing my setup during Linkarzu's livestream</a></li>
<li><a href="https://www.youtube.com/watch?v=5n-ZvHfWBFk">Yay Emacs 46: Tinkering with my speech+typing workflows</a> (02:05:58)</li>
</ul></li>
<li><a href="https://blog.psy-q.ch/posts/seven-months-pregnant-with-an-emacs-config/">I Was Seven Months Pregnant With an Emacs Config | Psy-Q's Braindump</a> (<a href="https://bsky.app/profile/psy-q.ch">@psy-q.ch</a>)</li>
<li><a href="https://badore.codeberg.page/2026-10-25_hello_world.html">Badore: (message "hello world")</a></li>
<li><a href="https://sachachua.com/blog/2026/10/emacs-news/">Sacha Chua: emacs.news</a></li>
</ul></li>
<li>Other:
<ul class="org-ul">
<li><a href="https://www.reddit.com/r/emacs/comments/1xi4r8q/teleprompterel_turn_any_emacs_buffer_into_a/">teleprompter.el: turn any Emacs buffer into a teleprompter</a></li>
<li><a href="https://badore.codeberg.page/2026-10-26_keep_lines.html">Badore: M-x keep-lines</a></li>
<li><a href="https://github.com/kickingvegas/anju/discussions/204">v1.10.0 · kickingvegas/anju - mouse menus: single/double-click behavior, Org block context, window layouts</a> (<a href="https://sfba.social/@kickingvegas/117531206977805828">@kickingvegas@sfba.social</a>)</li>
<li><a href="https://ray-on-emacs.blogspot.com/2026/10/the-future-of-human-interface-for-emacs.html">Raymond Zeitler: The Future of Human Interface for Emacs</a></li>
<li><a href="https://github.com/gsilvers/emacs-termux-builder">Emacs + Termux Builder</a> (<a href="https://www.reddit.com/r/emacs/comments/1xj0n1e/emacs_termux_builder/">Reddit</a>)</li>
<li><a href="https://www.bounga.org/emacs/2026/11/01/emacs-everywhere-on-macos-with-shortcuts/">Nicolas Cavigneaux: Emacs Everywhere on macOS with Shortcuts</a></li>
</ul></li>
<li>Emacs development:
<ul class="org-ul">
<li><a href="https://git.savannah.gnu.org/cgit/emacs.git/commit/etc/NEWS?id=5890c75b3e8ec94b3875c31e09dea11781f111f6">Support Kitty Keyboard Protocol disambiguation of escape codes</a></li>
<li><a href="https://git.savannah.gnu.org/cgit/emacs.git/commit/etc/NEWS?id=d39145fffd311a840010f5647ee61f8f74bc2260">Add mass unit 'stone' to calc (bug#82145)</a></li>
<li><a href="https://git.savannah.gnu.org/cgit/emacs.git/commit/etc/NEWS?id=8811a4f971261b51941726388e5afaf60397d101">etc/emacsclient.desktop: Replace &ndash;display with &ndash;reuse-frame</a></li>
<li><a href="https://git.savannah.gnu.org/cgit/emacs.git/commit/etc/NEWS?id=f2568db52eb1503f98085a74467d55e9f65f2248">Add refactor.el; move generic code actions machinery out of Eglot</a></li>
</ul></li>
<li>New packages:
<ul class="org-ul">
<li><a target="_blank" href="https://melpa.org/#/japanese-menu">japanese-menu</a>: Japanese menu translation (MELPA)</li>
<li><a target="_blank" href="https://melpa.org/#/mdired">mdired</a>: SIMD-style commands for marked Dired items (MELPA)</li>
<li><a target="_blank" href="https://melpa.org/#/perl-live">perl-live</a>: Evaluate Perl in persistent project sessions (MELPA)</li>
<li><a target="_blank" href="https://elpa.gnu.org/packages/refactor.html">refactor</a>: Language-agnostic refactoring interface (GNU ELPA)</li>
<li><a target="_blank" href="https://melpa.org/#/xdg-redirect">xdg-redirect</a>: Redirect Emacs files to XDG directories (MELPA)</li>
</ul></li>
</ul>

<p>
Links from <a href="https://www.reddit.com/r/emacs">reddit.com/r/emacs</a>, <a href="https://www.reddit.com/r/orgmode">r/orgmode</a>, <a href="https://www.reddit.com/r/spacemacs">r/spacemacs</a>, <a href="https://mastodon.social/tags/emacs">Mastodon #emacs</a>, <a href="https://bsky.app/hashtag/emacs">Bluesky #emacs</a>, <a href="https://hn.algolia.com/?query=emacs&amp;sort=byDate&amp;prefix&amp;page=0&amp;dateRange=all&amp;type=story">Hacker News</a>, <a href="https://lobste.rs/search?q=emacs&amp;what=stories&amp;order=newest">lobste.rs</a>, <a href="https://programming.dev/c/emacs?dataType=Post&amp;page=1&amp;sort=New">programming.dev</a>, <a href="https://lemmy.world/c/emacs">lemmy.world</a>, <a href="https://lemmy.ml/c/emacs?dataType=Post&amp;page=1&amp;sort=New">lemmy.ml</a>, <a href="https://planet.emacslife.com">planet.emacslife.com</a>, <a href="https://www.youtube.com/playlist?list=PL4th0AZixyREOtvxDpdxC9oMuX7Ar7Sdt">YouTube</a>, <a href="http://git.savannah.gnu.org/cgit/emacs.git/log/etc/NEWS">the Emacs NEWS file</a>, <a href="https://emacslife.com/calendar/">Emacs Calendar</a>, and <a href="https://lists.gnu.org/archive/html/emacs-devel/2026-11">emacs-devel</a>. Thanks to Andrés Ramírez for emacs-devel links. Do you have an Emacs-related link or announcement? Please e-mail me at <a href="mailto:sacha@sachachua.com">sacha@sachachua.com</a>. Thank you!
</p>
<div><a href="https://sachachua.com/blog/2026/11/2026-11-02-emacs-news/index.org">View Org source for this post</a></div>
<p>You can <a href="mailto:sacha@sachachua.com?subject=Comment%20on%20https%3A%2F%2Fsachachua.com%2Fblog%2F2026%2F11%2F2026-11-02-emacs-news%2F&body=Name%20you%20want%20to%20be%20credited%20by%20(if%20any)%3A%20%0AMessage%3A%20%0ACan%20I%20share%20your%20comment%20so%20other%20people%20can%20learn%20from%20it%3F%20Yes%2FNo%0A">e-mail me at sacha@sachachua.com</a>.</p>]]></description>
		<dc:creator>Sacha Chua</dc:creator><enclosure length="235261" type="application/octet-stream" url="https://emacslife.com/calendar/emacs-calendar.ics"/></item><item>
		<title>Transcript for my chat with Linkarzu about the Neovim and Emacs communities, voice control, and other topics</title>
		<link>https://sachachua.com/blog/2026/11/my-chat-with-linkarzu/</link>
		
		<pubDate>Sun, 01 Nov 2026 14:03:33 GMT</pubDate>
    <category>emacs</category>
<category>community</category>
		<guid isPermaLink="false">https://sachachua.com/blog/2026/11/my-chat-with-linkarzu/</guid>
		<description><![CDATA[<p>
</p><div class="yt-video"><iframe width="456" height="315" title="YouTube video player" src="https://www.youtube-nocookie.com/embed/Sw6sCMIypmk?enablejsapi=1" frameborder="0" allowfullscreen=""></iframe><a href="https://www.youtube.com/watch?v=Sw6sCMIypmk">Watch on YouTube</a></div>
<p></p>

<p>
I've updated the transcript below, but it might take Linkarzu a little while to apply it to the YouTube video, so it might not be in sync yet. Enjoy!
</p>

<p>
<a href="https://sachachua.com/blog/2026/11/my-chat-with-linkarzu/Emacs%20for%20Everything%20-%20Why%20Sacha%20Chua%20Still%20Lives%20in%20Emacs%20After%2020+%20Years%20[Sw6sCMIypmk].vtt">Download the transcript</a> or <a href="https://sachachua.com/blog/feed/index.xml#ID-linkarzu-transcript">read it online (with screenshots)</a>
</p>

<p>
</p><ul class="org-ul">
<li><span class="audio-time" data-start="0.531" data-stop="3.273">0:00</span> Linux is the library that Emacs uses to talk to my hardware</li>
<li><span class="audio-time" data-start="5.575" data-stop="9.638">0:05</span> Highlight: AI churn</li>
<li><span class="audio-time" data-start="17.724" data-stop="18.964">0:17</span> Highlight: Maybe your editor makes you grumpy</li>
<li><span class="audio-time" data-start="21.426" data-stop="24.167">0:21</span> Highlight: Words are hard</li>
<li><span class="audio-time" data-start="26.689" data-stop="28.650">0:26</span> Highlight: shelling out to Emacs from Vim</li>
<li><span class="audio-time" data-start="39.355" data-stop="41.876">0:39</span> Highlight: My husband</li>
<li><span class="audio-time" data-start="46.318" data-stop="48.979">0:46</span> Highlight: automation</li>
<li><span class="audio-time" data-start="60.782" data-stop="62.623">1:00</span> Highlight: Thumbnail: my daughter rates it 0 out of 5</li>
<li><span class="audio-time" data-start="74.658" data-stop="77.520">1:14</span> Sacha's idea for monitoring six EmacsConf calls at once</li>
<li><span class="audio-time" data-start="187.355" data-stop="190.937">3:07</span> frazzor749</li>
<li><span class="audio-time" data-start="207.525" data-stop="211.931">3:27</span> Intro</li>
<li><span class="audio-time" data-start="307.453" data-stop="310.154">5:07</span> Weekly news</li>
<li><span class="audio-time" data-start="327.245" data-stop="331.169">5:27</span> EmacsConf</li>
<li><span class="audio-time" data-start="560.225" data-stop="562.428">9:20</span> Cross-pollination</li>
<li><span class="audio-time" data-start="721.123" data-stop="723.746">12:01</span> Not Emacs vs Neovim; it's about what we can imagine</li>
<li><span class="audio-time" data-start="740.552" data-stop="742.635">12:20</span> What's the catch?</li>
<li><span class="audio-time" data-start="785.659" data-stop="787.760">13:05</span> Unix Power Tools</li>
<li><span class="audio-time" data-start="842.651" data-stop="844.673">14:02</span> What is Meta x?</li>
<li><span class="audio-time" data-start="864.026" data-stop="865.787">14:24</span> Searching handwritten sketches: Evernote to ripgrep</li>
<li><span class="audio-time" data-start="963.471" data-stop="965.753">16:03</span> Manila to Toronto</li>
<li><span class="audio-time" data-start="1010.197" data-stop="1012.678">16:50</span> Not about converting people, but about finding the tools that fit you best</li>
<li><span class="audio-time" data-start="1043.993" data-stop="1044.935">17:23</span> What do I do right now?</li>
<li><span class="audio-time" data-start="1118.281" data-stop="1120.381">18:38</span> Learning French</li>
<li><span class="audio-time" data-start="1137.111" data-stop="1138.152">18:57</span> Sitting out the AI churn</li>
<li><span class="audio-time" data-start="1210.377" data-stop="1212.758">20:10</span> Thanking YouTube members</li>
<li><span class="audio-time" data-start="1260.120" data-stop="1263.341">21:00</span> Backstory of real-time speech-to-text transcript</li>
<li><span class="audio-time" data-start="1395.496" data-stop="1396.657">23:15</span> Demo: real-time transcript and instant replay in Emacs</li>
<li><span class="audio-time" data-start="1443.028" data-stop="1445.410">24:03</span> Demo: Video editing witin Emacs</li>

<li><span class="audio-time" data-start="1671.988" data-stop="1674.590">27:51</span> Demo: generating video title cards from WebVTT in Emacs</li>

<li><span class="audio-time" data-start="1746.012" data-stop="1748.232">29:06</span> fframes, generative AI</li>
<li><span class="audio-time" data-start="1789.522" data-stop="1790.983">29:49</span> Demo: Stepping through SVGs in Emacs</li>
<li><span class="audio-time" data-start="1796.204" data-stop="1797.463">29:56</span> I draw on an iPad with Noteful</li>

<li><span class="audio-time" data-start="1820.900" data-stop="1823.281">30:20</span> Light themes and dark themes</li>
<li><span class="audio-time" data-start="1858.789" data-stop="1860.210">30:58</span> Art and stick figures</li>
<li><span class="audio-time" data-start="1918.772" data-stop="1921.155">31:58</span> Linkarzu's video editing workflow</li>
<li><span class="audio-time" data-start="1985.842" data-stop="1988.023">33:05</span> Local CPU-only speech recognition in Emacs</li>
<li><span class="audio-time" data-start="2115.143" data-stop="2117.664">35:15</span> Sharing speech commands</li>
<li><span class="audio-time" data-start="2174.227" data-stop="2176.868">36:14</span> Speech commands and more shortcuts</li>
<li><span class="audio-time" data-start="2183.952" data-stop="2185.593">36:23</span> Having fun with speech commands</li>
<li><span class="audio-time" data-start="2221.403" data-stop="2223.365">37:01</span> Dictionaries for correcting speech recognition</li>
<li><span class="audio-time" data-start="2299.115" data-stop="2300.436">38:19</span> Demo: Adding a misrecognized term to my common edits dictionary</li>
<li><span class="audio-time" data-start="2397.355" data-stop="2399.416">39:57</span> Turning video transcripts into searchable blog posts</li>
<li><span class="audio-time" data-start="2527.287" data-stop="2530.650">42:07</span> Demo: Saving and cropping screenshots from a video at a timestamp</li>
<li><span class="audio-time" data-start="2602.260" data-stop="2603.080">43:22</span> Demo: M-x doctor with speech in and out</li>

<li><span class="audio-time" data-start="2649.580" data-stop="2651.541">44:09</span> Demo: speech-enabled conversation with a large language model in French</li>
<li><span class="audio-time" data-start="2746.878" data-stop="2749.919">45:46</span> Linux setup: XFCE, X11 and Emacs on top</li>
<li><span class="audio-time" data-start="2838.682" data-stop="2840.683">47:18</span> Automating other apps with Emacs; X11 versus Wayland for automation</li>
<li><span class="audio-time" data-start="2955.009" data-stop="2958.070">49:15</span> Just a regular laptop keyboard</li>
<li><span class="audio-time" data-start="2996.749" data-stop="2999.589">49:56</span> Using Emacspeak to deal with laptop screen failure</li>
<li><span class="audio-time" data-start="3105.392" data-stop="3106.992">51:45</span> Anticipating physical and cognitive challenges</li>
<li><span class="audio-time" data-start="3157.368" data-stop="3159.329">52:37</span> Describing Emacspeak</li>
<li><span class="audio-time" data-start="3231.338" data-stop="3232.880">53:51</span> Linkarzu adjusts his electric sitting/standing desk</li>
<li><span class="audio-time" data-start="3253.870" data-stop="3255.052">54:13</span> Parenting and fragmented time</li>
<li><span class="audio-time" data-start="3335.965" data-stop="3339.186">55:35</span> Org Mode helps me stay sane</li>
<li><span class="audio-time" data-start="3380.663" data-stop="3381.643">56:20</span> Capturing tasks while away from the computer: Linkarzu uses speech</li>
<li><span class="audio-time" data-start="3412.838" data-stop="3415.540">56:52</span> I use Orgzly Revived, sometimes with dictation</li>
<li><span class="audio-time" data-start="3465.076" data-stop="3467.899">57:45</span> I want to get the hang of Emacs's Android port</li>
<li><span class="audio-time" data-start="3482.871" data-stop="3484.652">58:02</span> Demo: Speech commands on my computer: Remind me&hellip;</li>

<li><span class="audio-time" data-start="3590.155" data-stop="3594.137">59:50</span> My Emacs configuration keeps growing</li>
<li><span class="audio-time" data-start="3661.507" data-stop="3663.488">1:01:01</span> What about EXWM, the Emacs X11 window manager?</li>
<li><span class="audio-time" data-start="3715.605" data-stop="3719.407">1:01:55</span> AI and the Emacs community</li>
<li><span class="audio-time" data-start="3909.639" data-stop="3912.480">1:05:09</span> Using large language models when learning a language</li>
<li><span class="audio-time" data-start="3958.143" data-stop="3960.023">1:05:58</span> LLMs for troubleshooting</li>
<li><span class="audio-time" data-start="3973.226" data-stop="3975.827">1:06:13</span> LLMs for proofs of concepts</li>
<li><span class="audio-time" data-start="4083.786" data-stop="4085.487">1:08:03</span> Kids' obsessions: Harry Potter, Pokemon, Wings of Fire</li>
<li><span class="audio-time" data-start="4179.191" data-stop="4181.052">1:09:39</span> Claude and animating my sketches based on a reverse-engineered format</li>
<li><span class="audio-time" data-start="4317.852" data-stop="4320.253">1:11:57</span> Differences between models?</li>
<li><span class="audio-time" data-start="4392.903" data-stop="4396.204">1:13:12</span> Looking ahead at AI and programming</li>
<li><span class="audio-time" data-start="4486.865" data-stop="4490.007">1:14:46</span> AI-generated code, slop PRs and the Lisp Curse in Emacs</li>
<li><span class="audio-time" data-start="4660.119" data-stop="4663.061">1:17:40</span> Maintainers and large language models</li>
<li><span class="audio-time" data-start="4784.378" data-stop="4789.701">1:19:44</span> Thumbnails</li>
<li><span class="audio-time" data-start="4899.615" data-stop="4902.556">1:21:39</span> Advice for Emacs beginners: connect with people</li>
<li><span class="audio-time" data-start="4996.963" data-stop="4999.604">1:23:16</span> The Neovim community could use a blog aggregator like Planet Emacslife</li>
<li><span class="audio-time" data-start="5043.421" data-stop="5045.102">1:24:03</span> Why Emacs News</li>
<li><span class="audio-time" data-start="5116.641" data-stop="5117.021">1:25:16</span> Neovim and Emacs community cultures</li>
<li><span class="audio-time" data-start="5401.204" data-stop="5403.726">1:30:01</span> Not just about plugins, but also workflows and stories</li>
<li><span class="audio-time" data-start="5462.382" data-stop="5465.884">1:31:02</span> Planning an Emacs and Neovim panel with Prot</li>
<li><span class="audio-time" data-start="5770.998" data-stop="5774.260">1:36:10</span> AI agents versus Emacs as an interface toolkit</li>
<li><span class="audio-time" data-start="5852.111" data-stop="5854.713">1:37:32</span> Example: managing the schedule for EmacsConf</li>
<li><span class="audio-time" data-start="5949.429" data-stop="5950.230">1:39:09</span> Workflows for planning livestreams</li>

<li><span class="audio-time" data-start="6064.741" data-stop="6066.041">1:41:04</span> Speech synthesis in Emacs: whispering slide hints</li>
<li><span class="audio-time" data-start="6119.200" data-stop="6121.941">1:41:59</span> Speech synthesis and chat</li>
<li><span class="audio-time" data-start="6216.724" data-stop="6218.365">1:43:36</span> Comparing text-to-speech models</li>
<li><span class="audio-time" data-start="6241.646" data-stop="6244.068">1:44:01</span> Using speech synthesis as another information channel</li>
<li><span class="audio-time" data-start="6292.224" data-stop="6295.647">1:44:52</span> Automation</li>
<li><span class="audio-time" data-start="6427.217" data-stop="6430.458">1:47:07</span> Clipping</li>
</ul>

<p></p>

<details class="code-details"><a name="ID-linkarzu-transcript"></a><summary>Transcript and screenshots</summary>
<p>
</p><div class="full-transcript"><p></p><div class="transcript-heading"><span class="audio-time" data-start="0.000000">0:00</span> <strong>Linux is the library that Emacs uses to talk to my hardware</strong></div><p></p><span class="audio-time caption" data-speaker="Sacha" data-start="0.531000" data-stop="3.273000"><strong class="speaker-name">Sacha:</strong>  At the moment, Linux is the library that</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3.353000" data-stop="4.794000">Emacs uses to talk to my hardware.</span> <p></p><div class="transcript-heading"><span class="audio-time" data-start="5.000000">0:05</span> <strong>Highlight: AI churn</strong></div><p></p><span class="audio-time caption" data-speaker="Sacha" data-start="5.575000" data-stop="9.638000"><strong class="speaker-name">Sacha:</strong>  I'm going to sit out all the AI churn.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="9.918000" data-stop="11.019000">I'll figure that out.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="11.559000" data-stop="13.861000">And then I will check back in next year, a couple</span> <span class="audio-time caption" data-speaker="Sacha" data-start="13.881000" data-stop="16.643000">of years, maybe never, and see if there's</span> <span class="audio-time caption" data-speaker="Sacha" data-start="16.683000" data-stop="17.704000">anything else I can help with.</span> <p></p><div class="transcript-heading"><span class="audio-time" data-start="17.000000">0:17</span> <strong>Highlight: Maybe your editor makes you grumpy</strong></div><p></p><span class="audio-time caption" data-speaker="Sacha" data-start="17.724000" data-stop="18.964000"><strong class="speaker-name">Sacha:</strong>  Hypothesis number two.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="19.044000" data-stop="20.626000">Maybe your editor makes you grumpy.</span> <p></p><div class="transcript-heading"><span class="audio-time" data-start="21.000000">0:21</span> <strong>Highlight: Words are hard</strong></div><p></p><span class="audio-time caption" data-speaker="Sacha" data-start="21.426000" data-stop="24.167000"><strong class="speaker-name">Sacha:</strong>  Turns out I cannot say start streaming reliably.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="24.227000" data-stop="25.808000">Sometimes I say start screaming.</span> <p></p><div class="transcript-heading"><span class="audio-time" data-start="26.000000">0:26</span> <strong>Highlight: shelling out to Emacs from Vim</strong></div><p></p><span class="audio-time caption" data-speaker="Sacha" data-start="26.689000" data-stop="28.650000"><strong class="speaker-name">Sacha:</strong> And the guy hemmed and hawed and eventually</span> <span class="audio-time caption" data-speaker="Sacha" data-start="28.710000" data-stop="31.331000">admitted that he had actually shelled out the</span> <span class="audio-time caption" data-speaker="Sacha" data-start="31.431000" data-stop="34.973000">Emacs to run the code and evaluate it and then</span> <span class="audio-time caption" data-speaker="Sacha" data-start="34.993000" data-stop="37.814000">get the image, get the layout back and then put</span> <span class="audio-time caption" data-speaker="Sacha" data-start="37.854000" data-stop="38.674000">it in Vim.</span> <p></p><div class="transcript-heading"><span class="audio-time" data-start="39.000000">0:39</span> <strong>Highlight: My husband</strong></div><p></p><span class="audio-time caption" data-speaker="Sacha" data-start="39.355000" data-stop="41.876000"><strong class="speaker-name">Sacha:</strong> I came here for my masters and stuck around</span> <span class="audio-time caption" data-speaker="Sacha" data-start="41.936000" data-stop="44.277000">because of my husband who is coincidentally a</span> <span class="audio-time caption" data-speaker="Sacha" data-start="44.397000" data-stop="45.278000">Neovim user.</span> <p></p><div class="transcript-heading"><span class="audio-time" data-start="46.000000">0:46</span> <strong>Highlight: automation</strong></div><p></p><span class="audio-time caption" data-speaker="Sacha" data-start="46.318000" data-stop="48.979000"><strong class="speaker-name">Sacha:</strong>  I find myself automating things that really</span> <span class="audio-time caption" data-speaker="Sacha" data-start="49.899000" data-stop="52.420000">aren't technically justified by how often I do</span> <span class="audio-time caption" data-speaker="Sacha" data-start="52.500000" data-stop="55.541000">it, but because all those little bits of code add</span> <span class="audio-time caption" data-speaker="Sacha" data-start="55.681000" data-stop="60.062000">up and they become useful in a combinatorial way.</span> <p></p><div class="transcript-heading"><span class="audio-time" data-start="60.000000">1:00</span> <strong>Highlight: Thumbnail: my daughter rates it 0 out of 5</strong></div><p></p><span class="audio-time caption" data-speaker="Sacha" data-start="60.782000" data-stop="62.623000"><strong class="speaker-name">Sacha:</strong> So you got like a zero out of five.</span> <p></p><span class="audio-time caption" data-speaker="Linkarzu" data-start="65.724000" data-stop="66.964000"><strong class="speaker-name">Linkarzu:</strong>  A zero out of five.</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="67.404000" data-stop="70.345000">And it's one of my favorite ones, Sacha, come on.</span> <p></p><div class="transcript-heading"><span class="audio-time" data-start="74.000000">1:14</span> <strong>Sacha's idea for monitoring six EmacsConf calls at once</strong></div><p></p><span class="audio-time caption" data-speaker="Sacha" data-start="74.658000" data-stop="77.520000"><strong class="speaker-name">Sacha:</strong>  In fact, I have EmacsConf coming up, right?</span> <span class="audio-time caption" data-speaker="Sacha" data-start="77.600000" data-stop="79.762000">And sometimes we get to the point of having six</span> <span class="audio-time caption" data-speaker="Sacha" data-start="79.822000" data-stop="81.123000">simultaneous conversations.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="82.644000" data-stop="84.505000">I might have to actually monitor all of them.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="84.765000" data-stop="87.147000">So I'm thinking of making myself a little overlay</span> <span class="audio-time caption" data-speaker="Sacha" data-start="87.167000" data-stop="92.151000">that lets me tab to the different web conferences</span> <span class="audio-time caption" data-speaker="Sacha" data-start="92.271000" data-stop="94.633000">and then do something fancy with the audio stream</span> <span class="audio-time caption" data-speaker="Sacha" data-start="94.653000" data-stop="96.834000">so I can isolate it and maybe have some speech</span> <span class="audio-time caption" data-speaker="Sacha" data-start="96.874000" data-stop="98.476000">recognition running on all of them in the</span> <span class="audio-time caption" data-speaker="Sacha" data-start="98.516000" data-stop="100.957000">background so that if somebody says, "Help, Sacha!",</span> <span class="audio-time caption" data-speaker="Sacha" data-start="101.818000" data-stop="103.339000">I can just pop them right up.</span> <p></p><span class="audio-time caption" data-speaker="Linkarzu" data-start="104.740000" data-stop="107.001000"><strong class="speaker-name">Linkarzu:</strong>  Oh yeah, quite interesting.</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="107.041000" data-stop="111.143000">So I don't like doing an intro and all of that</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="111.203000" data-stop="113.844000">stuff, so thank you for being here.</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="113.864000" data-stop="115.925000">Sacha, this is the first time that you've been on</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="115.945000" data-stop="116.786000">the channel, right?</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="117.606000" data-stop="118.506000"><strong class="speaker-name">Sacha:</strong>  Yeah, yeah.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="118.526000" data-stop="120.808000">I mean, you've had plenty of time, so you've</span> <span class="audio-time caption" data-speaker="Sacha" data-start="121.348000" data-stop="123.989000">certainly crossed over into the Emacs community</span> <span class="audio-time caption" data-speaker="Sacha" data-start="124.049000" data-stop="124.769000">and things like that.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="125.410000" data-stop="129.311000">But I'm not sure, am I the oldest Emacs user</span> <span class="audio-time caption" data-speaker="Sacha" data-start="129.351000" data-stop="130.172000">you've had so far?</span> <p></p><span class="audio-time caption" data-speaker="Linkarzu" data-start="131.338000" data-stop="133.420000"><strong class="speaker-name">Linkarzu:</strong>  The Professor, he's like 80 years old.</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="133.620000" data-stop="136.363000">But you're not talking about age, your age, but</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="136.383000" data-stop="138.145000">you're talking about Emacs, right?</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="138.585000" data-stop="139.685000"><strong class="speaker-name">Sacha:</strong>  [He would] definitely have been</span> <span class="audio-time caption" data-speaker="Sacha" data-start="139.686000" data-stop="140.888000">using it for longer than I am.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="140.928000" data-stop="141.948000">I'm a relative newbie</span> <span class="audio-time caption" data-speaker="Sacha" data-start="141.949000" data-stop="143.570000">compared to those folks, right?</span> <p></p><span class="audio-time caption" data-speaker="Linkarzu" data-start="144.031000" data-stop="145.893000"><strong class="speaker-name">Linkarzu:</strong>  No, I was just playing.</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="146.273000" data-stop="148.675000">I always play that he's like 80 years old, but</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="148.916000" data-stop="149.897000">no, he's not.</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="150.517000" data-stop="151.919000">You know the Professor by any chance?</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="152.627000" data-stop="154.908000"><strong class="speaker-name">Sacha:</strong>  I came across some of your videos</span> <span class="audio-time caption" data-speaker="Sacha" data-start="154.909000" data-stop="155.249000">with him.</span> <p></p><span class="audio-time caption" data-speaker="Linkarzu" data-start="155.529000" data-stop="155.889000"><strong class="speaker-name">Linkarzu:</strong>  Okay.</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="156.150000" data-stop="159.532000">That is why I found out about you.</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="159.632000" data-stop="161.493000">Because he was like, you should check Sacha</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="161.533000" data-stop="162.154000">Chua's blog.</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="162.174000" data-stop="164.516000">And I was like, who is Sacha?</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="164.716000" data-stop="166.637000">You know, because I knew Prot, I knew, you know,</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="166.657000" data-stop="170.340000">the system crafters, DistroTube, stuff like that.</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="170.400000" data-stop="172.481000">But he is the one that mentioned Sacha.</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="172.541000" data-stop="174.443000">And I was like, okay... How do you pronounce your</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="174.483000" data-stop="175.043000">name, by the way?</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="175.223000" data-stop="176.224000">Is it Sacha?</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="176.444000" data-stop="176.885000">Sacha?</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="177.165000" data-stop="178.005000">Am I saying it wrong?</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="178.826000" data-stop="181.432000"><strong class="speaker-name">Sacha:</strong>  Sacha Chua.</span> <p></p><span class="audio-time caption" data-speaker="Linkarzu" data-start="181.632000" data-stop="182.573000"><strong class="speaker-name">Linkarzu:</strong>  Sacha Chua.</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="182.793000" data-stop="184.754000">Okay, okay.</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="184.794000" data-stop="186.935000">So, the professor is definitely not 80.</span> <p></p><div class="transcript-heading"><span class="audio-time" data-start="187.000000">3:07</span> <strong>frazzor749</strong></div><p></p><span class="audio-time caption" data-speaker="Linkarzu" data-start="187.355000" data-stop="190.937000"><strong class="speaker-name">Linkarzu:</strong> You see what frazzor749... frazzor749 is an Emacs user,</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="191.137000" data-stop="192.158000">the guy in chat there.</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="192.778000" data-stop="193.819000"><strong class="speaker-name">Sacha:</strong>  Oh yeah!</span> <span class="audio-time caption" data-speaker="Sacha" data-start="194.519000" data-stop="196.400000">Yeah, yeah, frazzor749.</span> <p></p><span class="audio-time caption" data-speaker="Linkarzu" data-start="196.520000" data-stop="197.120000"><strong class="speaker-name">Linkarzu:</strong>  I'm going to</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="197.121000" data-stop="198.441000">convert him to Neovim.</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="198.621000" data-stop="201.403000"><strong class="speaker-name">Sacha:</strong>  No, he's been helping me</span> <span class="audio-time caption" data-speaker="Sacha" data-start="201.423000" data-stop="201.983000">with French.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="202.203000" data-stop="202.844000">Leave him alone.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="202.864000" data-stop="203.364000">He's mine.</span> <p></p><span class="audio-time caption" data-speaker="Linkarzu" data-start="203.384000" data-stop="203.984000"><strong class="speaker-name">Linkarzu:</strong>  Okay, you know him?</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="204.164000" data-stop="204.544000">You know him?</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="204.985000" data-stop="205.465000"><strong class="speaker-name">Sacha:</strong>  Hands off.</span> <p></p><div class="transcript-heading"><span class="audio-time" data-start="207.000000">3:27</span> <strong>Intro</strong></div><p></p><span class="audio-time caption" data-speaker="Linkarzu" data-start="207.525000" data-stop="211.931000"><strong class="speaker-name">Linkarzu:</strong>  Okay, let me just play a little video of what I</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="211.991000" data-stop="213.493000">know about you.</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="213.753000" data-stop="215.055000">You're going to see it in the background.</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="215.556000" data-stop="217.538000">It's going to be a little bit confusing, okay?</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="217.999000" data-stop="220.642000">But this is just so that people have a little bit</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="220.803000" data-stop="223.867000">of context on who Sacha is, okay?</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="224.187000" data-stop="225.248000"><strong class="speaker-name">Sacha:</strong>  I'll try not to laugh too much.</span> <p></p><span class="audio-time caption" data-speaker="Linkarzu" data-start="225.909000" data-stop="228.712000"><strong class="speaker-name">Linkarzu:</strong>  Okay, so what do I know about Sacha?</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="229.132000" data-stop="230.254000">She has a YouTube channel.</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="230.594000" data-stop="233.998000">You have close to 5000 subscribers, right?</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="234.398000" data-stop="237.721000">Also, you have a blog, which is pretty popular</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="237.982000" data-stop="238.322000">out there.</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="239.383000" data-stop="243.407000">You do EmacsConf, which I don't know what it is.</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="243.647000" data-stop="246.189000">I'm curious to hear about it a little bit more.</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="246.830000" data-stop="248.511000">And I've seen your livestreams.</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="248.932000" data-stop="250.893000">I've seen that you speak in French.</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="250.973000" data-stop="254.056000">So I'm like, is French her main language?</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="254.116000" data-stop="256.458000">Is English her main language?</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="258.140000" data-stop="261.101000">You've been doing Emacs for, you mentioned, 25</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="261.221000" data-stop="261.523000">years.</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="261.642000" data-stop="262.123000">Is that right?</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="263.104000" data-stop="263.865000"><strong class="speaker-name">Sacha:</strong>  Yeah, it's about...</span> <p></p><span class="audio-time caption" data-speaker="Linkarzu" data-start="264.522000" data-stop="265.502000"><strong class="speaker-name">Linkarzu:</strong>  Okay, okay.</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="266.123000" data-stop="268.943000">And I heard about you because of the professor.</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="269.223000" data-stop="272.745000">He mentioned your blog in one of the live streams</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="272.885000" data-stop="273.285000">we had.</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="274.285000" data-stop="275.986000">And I think that's about it.</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="276.406000" data-stop="278.406000">I don't know, like, a lot more.</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="278.686000" data-stop="282.247000">And that's what this call is for, you know, to</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="282.748000" data-stop="284.748000">get to know you a little bit more.</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="284.968000" data-stop="287.409000">Like, on the Neovim side of things, I don't know</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="287.469000" data-stop="288.549000">if a lot of people know you.</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="288.589000" data-stop="290.930000">On the Emacs side of things, you seem to be</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="290.990000" data-stop="291.630000">pretty popular.</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="291.850000" data-stop="293.271000">So...</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="294.725000" data-stop="296.249000">You want to share a little bit about you.</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="296.510000" data-stop="298.033000">Like, who is Sacha?</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="298.334000" data-stop="299.718000">You can share your screen if you want.</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="299.818000" data-stop="301.522000">You can share your blog post if you have some</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="301.663000" data-stop="302.806000">notes or something like that.</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="303.327000" data-stop="303.868000">It's up to you.</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="304.931000" data-stop="306.172000"><strong class="speaker-name">Sacha:</strong>  I think you've already covered all the</span> <span class="audio-time caption" data-speaker="Sacha" data-start="306.192000" data-stop="306.752000">basics.</span> <p></p><div class="transcript-heading"><span class="audio-time" data-start="307.000000">5:07</span> <strong>Weekly news</strong></div><p></p><span class="audio-time caption" data-speaker="Sacha" data-start="307.453000" data-stop="310.154000"><strong class="speaker-name">Sacha:</strong> I've been enjoying playing around with Emacs for</span> <span class="audio-time caption" data-speaker="Sacha" data-start="310.174000" data-stop="314.017000">the past 25 years and I love putting together a</span> <span class="audio-time caption" data-speaker="Sacha" data-start="314.077000" data-stop="314.897000">weekly newsletter.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="314.937000" data-stop="317.619000">I'm going to try to convince you or someone in</span> <span class="audio-time caption" data-speaker="Sacha" data-start="317.659000" data-stop="319.420000">your community to put together a newsletter like</span> <span class="audio-time caption" data-speaker="Sacha" data-start="319.460000" data-stop="322.862000">that for Vim because it's such a great way to</span> <span class="audio-time caption" data-speaker="Sacha" data-start="322.902000" data-stop="324.623000">come across all the interesting things that</span> <span class="audio-time caption" data-speaker="Sacha" data-start="324.663000" data-stop="325.564000">people are sharing.</span> <p></p><div class="transcript-heading"><span class="audio-time" data-start="327.000000">5:27</span> <strong>EmacsConf</strong></div><p></p><span class="audio-time caption" data-speaker="Sacha" data-start="327.245000" data-stop="331.169000"><strong class="speaker-name">Sacha:</strong> Because I also want to encourage people to get</span> <span class="audio-time caption" data-speaker="Sacha" data-start="331.210000" data-stop="333.172000">cool demos out of their head and off their</span> <span class="audio-time caption" data-speaker="Sacha" data-start="333.212000" data-stop="335.634000">computers and into a form other people can watch.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="336.235000" data-stop="339.158000">I help organize EmacsConf, which is a yearly</span> <span class="audio-time caption" data-speaker="Sacha" data-start="340.139000" data-stop="340.840000">Emacs party.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="341.917000" data-stop="344.200000">We're just sharing the cool things that we've</span> <span class="audio-time caption" data-speaker="Sacha" data-start="344.220000" data-stop="346.322000">come up with and meeting people with similar</span> <span class="audio-time caption" data-speaker="Sacha" data-start="346.403000" data-stop="346.863000">interests.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="347.344000" data-stop="348.185000">It's all online.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="349.266000" data-stop="352.630000">And then I get to turn all of those into captions</span> <span class="audio-time caption" data-speaker="Sacha" data-start="352.690000" data-stop="354.672000">so that people can search them afterwards.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="354.972000" data-stop="355.633000">It's a lot of fun.</span> <p></p><span class="audio-time caption" data-speaker="Linkarzu" data-start="356.054000" data-stop="357.475000"><strong class="speaker-name">Linkarzu:</strong>  Is it like a live stream?</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="357.595000" data-stop="358.857000">Is it like a video thing?</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="358.937000" data-stop="359.618000">Or what is it?</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="360.150000" data-stop="362.632000"><strong class="speaker-name">Sacha:</strong>  Yeah, we're live streaming on December</span> <span class="audio-time caption" data-speaker="Sacha" data-start="362.672000" data-stop="363.713000">12 and 13.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="364.814000" data-stop="366.595000">We have two days of two tracks.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="366.615000" data-stop="369.597000">That's how much people want to talk about Emacs.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="370.518000" data-stop="373.540000">It's kind of like NeovimConf, except we actually</span> <span class="audio-time caption" data-speaker="Sacha" data-start="373.600000" data-stop="374.880000">run everything on time.</span> <p></p><span class="audio-time caption" data-speaker="Linkarzu" data-start="374.880000" data-stop="375.780000"><strong class="speaker-name">Linkarzu:</strong>  Oh!</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="377.502000" data-stop="378.503000">Who copied who?</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="378.743000" data-stop="380.623000">Did you copy Neovim or Neovim copied?</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="380.643000" data-stop="383.344000"><strong class="speaker-name">Sacha:</strong>  No, this iteration has been since 2019.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="383.384000" data-stop="385.325000">The first one was in 2013.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="387.165000" data-stop="389.926000">So this one's been running since 2019 completely</span> <span class="audio-time caption" data-speaker="Sacha" data-start="390.006000" data-stop="391.807000">online and completely free.</span> <p></p><span class="audio-time caption" data-speaker="Linkarzu" data-start="392.267000" data-stop="394.467000"><strong class="speaker-name">Linkarzu:</strong>  And where can we watch it?</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="395.348000" data-stop="398.088000">Is it in your channel or is there an official</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="398.288000" data-stop="399.029000">YouTube channel?</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="399.269000" data-stop="399.809000"><strong class="speaker-name">Sacha:</strong>  All right.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="400.689000" data-stop="403.592000">So we have like this whole thing, right?</span> <span class="audio-time caption" data-speaker="Sacha" data-start="404.393000" data-stop="406.615000">It can be watched using entirely free and open</span> <span class="audio-time caption" data-speaker="Sacha" data-start="406.635000" data-stop="407.375000">source software.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="407.796000" data-stop="409.416000">If you go to https://emacsconf.org,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="409.417000" data-stop="410.618000">you can find all the details.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="410.678000" data-stop="413.681000">So people can watch it using MPV or VLC or</span> <span class="audio-time caption" data-speaker="Sacha" data-start="413.701000" data-stop="414.121000">whatever.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="414.181000" data-stop="415.923000">We'll stream it over Icecast.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="416.323000" data-stop="418.105000">But of course, since a lot of people come through</span> <span class="audio-time caption" data-speaker="Sacha" data-start="418.145000" data-stop="420.227000">YouTube, I'll also restream it through the</span> <span class="audio-time caption" data-speaker="Sacha" data-start="420.347000" data-stop="421.468000">EmacsConf channel.</span> <p></p><span class="audio-time caption" data-speaker="Linkarzu" data-start="422.168000" data-stop="424.871000"><strong class="speaker-name">Linkarzu:</strong>  Oh, so it has a YouTube channel,</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="425.091000" data-stop="425.791000">EmacsConf.</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="426.590000" data-stop="429.015000"><strong class="speaker-name">Sacha:</strong>  Yes, which we don't actually talk about</span> <span class="audio-time caption" data-speaker="Sacha" data-start="429.075000" data-stop="431.400000">much, but if you search for it, you'll find it.</span> <p></p><span class="audio-time caption" data-speaker="Linkarzu" data-start="432.772000" data-stop="433.293000"><strong class="speaker-name">Linkarzu:</strong>  Where is it?</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="433.513000" data-stop="434.073000">Is it here?</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="434.133000" data-stop="435.635000"><strong class="speaker-name">Sacha:</strong>  I do not need to tell you how to use</span> <span class="audio-time caption" data-speaker="Sacha" data-start="435.675000" data-stop="437.576000">YouTube to search for things.</span> <p></p><span class="audio-time caption" data-speaker="Linkarzu" data-start="437.656000" data-stop="437.716000"><strong class="speaker-name">Linkarzu:</strong>  Oh!</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="438.557000" data-stop="440.219000">Oh, man.</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="440.739000" data-stop="441.219000">Okay.</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="441.740000" data-stop="443.642000">Let me see.</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="443.762000" data-stop="445.483000"><strong class="speaker-name">Sacha:</strong>  Now that it's possible to use Canvas</span> <span class="audio-time caption" data-speaker="Sacha" data-start="445.924000" data-stop="448.105000">inside Emacs to play things, people have been</span> <span class="audio-time caption" data-speaker="Sacha" data-start="448.125000" data-stop="449.507000">playing Doom in Emacs.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="450.528000" data-stop="453.110000">I'm pretty sure someone could probably write a</span> <span class="audio-time caption" data-speaker="Sacha" data-start="453.170000" data-stop="456.032000">player to watch EmacsConf from within Emacs,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="456.112000" data-stop="457.454000">which I think would be super cool.</span> <p></p><span class="audio-time caption" data-speaker="Linkarzu" data-start="459.124000" data-stop="459.645000"><strong class="speaker-name">Linkarzu:</strong>  Oh, really?</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="459.965000" data-stop="460.926000">Okay, it's crazy.</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="461.146000" data-stop="462.827000">I think, well, people have been</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="462.828000" data-stop="464.690000">playing Doom on Neovim.</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="464.930000" data-stop="467.153000">Like, we won that one, I think.</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="470.629000" data-stop="471.750000">Okay, let me see.</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="471.770000" data-stop="474.934000">EmacsConf, so it has its own YouTube channel.</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="475.454000" data-stop="477.757000">So, okay.</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="478.197000" data-stop="480.639000">This is all the previous events,</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="480.640000" data-stop="482.460000">right? Interesting.</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="482.560000" data-stop="485.064000"><strong class="speaker-name">Sacha:</strong>  Yeah, those are my notes and how it's run.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="485.545000" data-stop="486.886000">It's surprising...</span> <span class="audio-time caption" data-speaker="Sacha" data-start="486.986000" data-stop="489.129000">Going back to Neovim...</span> <span class="audio-time caption" data-speaker="Sacha" data-start="490.049000" data-stop="491.189000">There was a NeovimConf</span> <span class="audio-time caption" data-speaker="Sacha" data-start="491.190000" data-stop="492.070000">and there hasn't been one,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="492.110000" data-stop="492.791000">what's up with that?</span> <span class="audio-time caption" data-speaker="Sacha" data-start="492.831000" data-stop="494.371000">Come on, you know, you can do it again.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="495.352000" data-stop="497.113000">Although actually I should probably be bugging</span> <span class="audio-time caption" data-speaker="Sacha" data-start="497.373000" data-stop="500.194000">Prime and TJ about that, maybe?</span> <span class="audio-time caption" data-speaker="Sacha" data-start="501.175000" data-stop="503.556000">Anyway, so our experience with EmacsConf is that</span> <span class="audio-time caption" data-speaker="Sacha" data-start="503.616000" data-stop="506.858000">it's totally possible to run a very fun online</span> <span class="audio-time caption" data-speaker="Sacha" data-start="506.898000" data-stop="509.719000">conference about a text editor for a shoestring</span> <span class="audio-time caption" data-speaker="Sacha" data-start="509.759000" data-stop="512.799000">budget and totally volunteer labor.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="514.616000" data-stop="515.217000">Worth a try.</span> <p></p><span class="audio-time caption" data-speaker="Linkarzu" data-start="515.738000" data-stop="516.078000"><strong class="speaker-name">Linkarzu:</strong>  Okay.</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="516.398000" data-stop="518.279000">When was the last NeovimConf?</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="518.339000" data-stop="519.260000">By the way, you're right.</span> <p></p><span class="audio-time caption" data-speaker="Linkarzu" data-start="519.560000" data-stop="522.060000"><strong class="speaker-name">Linkarzu:</strong> Last year, I think there was no,</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="522.061000" data-stop="523.761000">there was not a NeovimConf.</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="523.802000" data-stop="525.923000">I'm not exactly sure when the last one was.</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="525.943000" data-stop="526.344000">I don't know.</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="526.384000" data-stop="527.864000"><strong class="speaker-name">Sacha:</strong>  Maybe it's because you lost bashbunni</span> <span class="audio-time caption" data-speaker="Sacha" data-start="527.904000" data-stop="528.945000">and then everyone gave up hope.</span> <p></p><span class="audio-time caption" data-speaker="Linkarzu" data-start="529.585000" data-stop="532.421000"><strong class="speaker-name">Linkarzu:</strong>  Right?</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="532.541000" data-stop="533.922000">That is actually true.</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="534.423000" data-stop="537.264000">And who is invited for this EmacsConf,</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="537.265000" data-stop="537.926000">the next one?</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="537.986000" data-stop="538.466000"><strong class="speaker-name">Sacha:</strong>  Everyone!</span> <span class="audio-time caption" data-speaker="Sacha" data-start="538.847000" data-stop="540.268000">We actually get a lot of people who are</span> <span class="audio-time caption" data-speaker="Sacha" data-start="540.288000" data-stop="542.130000">interested in other editors as well, and</span> <span class="audio-time caption" data-speaker="Sacha" data-start="542.170000" data-stop="544.111000">sometimes they present things too.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="544.812000" data-stop="547.414000">I can probably squeeze an extra talk into the</span> <span class="audio-time caption" data-speaker="Sacha" data-start="547.454000" data-stop="549.256000">schedule if I really need, you know, if someone</span> <span class="audio-time caption" data-speaker="Sacha" data-start="549.276000" data-stop="550.237000">comes up with a really good one.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="550.717000" data-stop="555.181000">But in the past, we've had talks about Guilemacs,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="556.102000" data-stop="558.443000">remacs, which is a Rust port,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="558.444000" data-stop="559.385000">things like that too.</span> <p></p><div class="transcript-heading"><span class="audio-time" data-start="560.000000">9:20</span> <strong>Cross-pollination</strong></div><p></p><span class="audio-time caption" data-speaker="Sacha" data-start="560.225000" data-stop="562.428000"><strong class="speaker-name">Sacha:</strong> But of course most of it is Emacs and Org Mode.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="562.448000" data-stop="565.311000">I have this afternoon of very interesting</span> <span class="audio-time caption" data-speaker="Sacha" data-start="565.391000" data-stop="568.754000">Org Mode talks and I want to attend all of them.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="569.815000" data-stop="571.837000">As I mentioned, bashbunni is speaking there, but</span> <span class="audio-time caption" data-speaker="Sacha" data-start="571.937000" data-stop="575.761000">also Ihor Radchenko, the current maintainer of Org</span> <span class="audio-time caption" data-speaker="Sacha" data-start="575.781000" data-stop="578.364000">Mode has a talk on how he deals with</span> <span class="audio-time caption" data-speaker="Sacha" data-start="579.525000" data-stop="581.669000">an overwhelming task inbox and lots of stresses</span> <span class="audio-time caption" data-speaker="Sacha" data-start="582.130000" data-stop="584.794000">and how he makes sense of that in Org.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="584.834000" data-stop="588.220000">And now that heisenbug is working on org.nvim, a</span> <span class="audio-time caption" data-speaker="Sacha" data-start="588.240000" data-stop="590.283000">lot of the workflow things might be easy to</span> <span class="audio-time caption" data-speaker="Sacha" data-start="590.323000" data-stop="591.685000">translate into your setup.</span> <p></p><span class="audio-time caption" data-speaker="Linkarzu" data-start="592.153000" data-stop="592.553000"><strong class="speaker-name">Linkarzu:</strong>  Exactly.</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="592.593000" data-stop="594.154000">What do you think about that betrayal?</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="594.574000" data-stop="597.736000">I asked Prot, you know, because Heisenbug is</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="597.756000" data-stop="599.376000">betraying Emacs.</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="599.436000" data-stop="600.857000"><strong class="speaker-name">Sacha:</strong>  No, no, I think it's wonderful.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="601.237000" data-stop="603.478000">I think it's fantastic to have more people be</span> <span class="audio-time caption" data-speaker="Sacha" data-start="603.538000" data-stop="605.879000">able to take these interesting workflow ideas and</span> <span class="audio-time caption" data-speaker="Sacha" data-start="605.919000" data-stop="608.401000">experiment with them in the environment that they</span> <span class="audio-time caption" data-speaker="Sacha" data-start="608.521000" data-stop="611.002000">particularly like or are familiar with.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="611.422000" data-stop="615.264000">So yeah, I mean, you tried Emacs, you gave it a</span> <span class="audio-time caption" data-speaker="Sacha" data-start="615.304000" data-stop="617.764000">a fair shake over several weeks.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="618.125000" data-stop="620.985000">You're finding that your local maximum of</span> <span class="audio-time caption" data-speaker="Sacha" data-start="621.085000" data-stop="624.086000">enjoying how you've set up your Neovim shortcuts</span> <span class="audio-time caption" data-speaker="Sacha" data-start="624.126000" data-stop="625.726000">and your environment and all that stuff still</span> <span class="audio-time caption" data-speaker="Sacha" data-start="625.766000" data-stop="626.687000">works out better for you.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="627.087000" data-stop="628.047000">That's fantastic.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="628.587000" data-stop="631.828000">I'd love to see if there are any cool ideas that</span> <span class="audio-time caption" data-speaker="Sacha" data-start="631.868000" data-stop="634.288000">you want to steal from either the things that</span> <span class="audio-time caption" data-speaker="Sacha" data-start="634.308000" data-stop="636.589000">you've explored or from a conversation or</span> <span class="audio-time caption" data-speaker="Sacha" data-start="636.689000" data-stop="639.309000">anywhere else that you can translate into your</span> <span class="audio-time caption" data-speaker="Sacha" data-start="639.389000" data-stop="639.910000">environment.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="640.370000" data-stop="643.410000">Then we can then go steal those ideas back</span> <span class="audio-time caption" data-speaker="Sacha" data-start="643.510000" data-stop="644.571000">with extra icing on top,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="646.331000" data-stop="648.012000">which the Emacs community loves to do</span> <span class="audio-time caption" data-speaker="Sacha" data-start="648.013000" data-stop="648.954000">on a regular basis.</span> <p></p><span class="audio-time caption" data-speaker="Linkarzu" data-start="649.314000" data-stop="650.895000"><strong class="speaker-name">Linkarzu:</strong>  Yeah, I see that a lot.</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="651.756000" data-stop="654.879000">Stuff porting over either from Emacs to Neovim or</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="654.919000" data-stop="656.540000">from Neovim to Emacs, you know?</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="656.640000" data-stop="658.322000">Like, yeah.</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="658.502000" data-stop="659.903000">I think it's cool, you know?</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="660.404000" data-stop="662.145000">I also agree to that, 100%.</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="662.365000" data-stop="666.369000">If Neovim becomes better, Emacs becomes better and</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="666.389000" data-stop="667.650000">the other way around, right?</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="668.010000" data-stop="669.091000"><strong class="speaker-name">Sacha:</strong>  Yeah, absolutely.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="669.431000" data-stop="672.392000">And you know it's entirely possible that once</span> <span class="audio-time caption" data-speaker="Sacha" data-start="672.432000" data-stop="675.654000">people get used to using org.nvim and they're</span> <span class="audio-time caption" data-speaker="Sacha" data-start="675.674000" data-stop="679.636000">like capturing new notes and tasks from their</span> <span class="audio-time caption" data-speaker="Sacha" data-start="679.696000" data-stop="682.097000">mail, because you have notmuch.nvim, and their</span> <span class="audio-time caption" data-speaker="Sacha" data-start="682.137000" data-stop="684.138000">feed reader, because you also have a feed reader</span> <span class="audio-time caption" data-speaker="Sacha" data-start="684.198000" data-stop="686.819000">inside nvim, and then they're like, oh you know I</span> <span class="audio-time caption" data-speaker="Sacha" data-start="686.859000" data-stop="690.701000">want to do this from my whatever it is and either</span> <span class="audio-time caption" data-speaker="Sacha" data-start="690.741000" data-stop="693.763000">you'll be able to vibe-code or actually write</span> <span class="audio-time caption" data-speaker="Sacha" data-start="694.103000" data-stop="694.623000">such a plugin,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="694.863000" data-stop="696.384000">or you'll be like, you know, why don't I just use</span> <span class="audio-time caption" data-speaker="Sacha" data-start="696.404000" data-stop="698.386000">that other editor that already has five</span> <span class="audio-time caption" data-speaker="Sacha" data-start="698.426000" data-stop="702.469000">different implementations of this?</span> <p></p><span class="audio-time caption" data-speaker="Linkarzu" data-start="702.849000" data-stop="705.171000"><strong class="speaker-name">Linkarzu:</strong>  Yeah, I think that is a good entry</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="705.211000" data-stop="706.452000">point into Emacs.</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="706.512000" data-stop="709.655000">The org.nvim plugin, it's going</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="709.695000" data-stop="710.836000">to help with friction.</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="710.936000" data-stop="712.937000">People that are in Neovim are going to start</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="712.957000" data-stop="716.720000">wondering, okay, what else is Emacs capable of,</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="717.100000" data-stop="717.381000">right?</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="717.561000" data-stop="719.963000">And they will probably finally do the switch.</span> <p></p><div class="transcript-heading"><span class="audio-time" data-start="721.000000">12:01</span> <strong>Not Emacs vs Neovim; it's about what we can imagine</strong></div><p></p><span class="audio-time caption" data-speaker="Sacha" data-start="721.123000" data-stop="723.746000"><strong class="speaker-name">Sacha:</strong>  And really, it's not so much an Emacs</span> <span class="audio-time caption" data-speaker="Sacha" data-start="723.766000" data-stop="725.007000">versus Neovim thing, right?</span> <span class="audio-time caption" data-speaker="Sacha" data-start="725.047000" data-stop="727.228000">It's more about what can we imagine?</span> <span class="audio-time caption" data-speaker="Sacha" data-start="727.489000" data-stop="728.670000">What can we try out?</span> <span class="audio-time caption" data-speaker="Sacha" data-start="728.750000" data-stop="731.452000">How can we build our tools to reduce the friction</span> <span class="audio-time caption" data-speaker="Sacha" data-start="731.532000" data-stop="733.974000">and make more things possible and more fun?</span> <p></p><span class="audio-time caption" data-speaker="Linkarzu" data-start="734.755000" data-stop="736.336000"><strong class="speaker-name">Linkarzu:</strong>  <p>
Yeah, 100%.</p>
</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="736.976000" data-stop="739.378000">And I have a question for you.</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="739.398000" data-stop="739.639000"><strong class="speaker-name">Sacha:</strong>  Yes.</span> <p></p><div class="transcript-heading"><span class="audio-time" data-start="740.000000">12:20</span> <strong>What's the catch?</strong></div><p></p><span class="audio-time caption" data-speaker="Linkarzu" data-start="740.552000" data-stop="742.635000"><strong class="speaker-name">Linkarzu:</strong>  I live in the third world, and we</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="742.675000" data-stop="745.198000">have a saying here, if it sounds too good to be</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="745.238000" data-stop="747.180000">true, it probably is not.</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="747.620000" data-stop="750.043000">Like, what's the catch with Emacs?</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="750.364000" data-stop="751.525000">Why do you do all this?</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="751.825000" data-stop="755.490000">Like, what do you gain out of all of this work</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="755.530000" data-stop="756.631000">that you put into Emacs?</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="757.011000" data-stop="758.113000">And why do you do it?</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="759.412000" data-stop="760.313000"><strong class="speaker-name">Sacha:</strong>  It tickles my brain.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="760.413000" data-stop="761.173000">It's just fun.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="765.576000" data-stop="768.458000">Ever since I started, I've been fascinated by how</span> <span class="audio-time caption" data-speaker="Sacha" data-start="769.159000" data-stop="773.961000">I can both shape the tools to fit my quirks,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="773.962000" data-stop="776.804000">fit the strange things that no software company is</span> <span class="audio-time caption" data-speaker="Sacha" data-start="776.864000" data-stop="778.005000">ever going to anticipate,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="778.525000" data-stop="781.387000">and also, I've always been fascinated by how</span> <span class="audio-time caption" data-speaker="Sacha" data-start="781.567000" data-stop="782.788000">other people do this too.</span> <p></p><div class="transcript-heading"><span class="audio-time" data-start="785.000000">13:05</span> <strong>Unix Power Tools</strong></div><p></p><span class="audio-time caption" data-speaker="Sacha" data-start="785.659000" data-stop="787.760000"><strong class="speaker-name">Sacha:</strong> I came from a third world too, right?</span> <span class="audio-time caption" data-speaker="Sacha" data-start="788.100000" data-stop="789.120000">I grew up in Manila.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="789.701000" data-stop="795.003000">And as a 17 or 18 year old student, I was trying</span> <span class="audio-time caption" data-speaker="Sacha" data-start="795.023000" data-stop="797.324000">to read through all the computer science books in</span> <span class="audio-time caption" data-speaker="Sacha" data-start="797.344000" data-stop="799.245000">the very, very small university library.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="799.365000" data-stop="801.065000">Well, it's a big university library for the</span> <span class="audio-time caption" data-speaker="Sacha" data-start="801.085000" data-stop="803.606000">Philippines, but the computer science section was</span> <span class="audio-time caption" data-speaker="Sacha" data-start="803.666000" data-stop="806.427000">only so big because it's hard to order books when</span> <span class="audio-time caption" data-speaker="Sacha" data-start="806.447000" data-stop="807.048000">you're far away.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="807.808000" data-stop="809.689000">And one of those books was Unix Power Tools.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="810.589000" data-stop="813.430000">They had a chapter on Emacs, of course, and one</span> <span class="audio-time caption" data-speaker="Sacha" data-start="813.470000" data-stop="817.852000">of the things in it was just this throwaway</span> <span class="audio-time caption" data-speaker="Sacha" data-start="817.892000" data-stop="819.752000">mention of, oh yeah, if you have plenty of time</span> <span class="audio-time caption" data-speaker="Sacha" data-start="819.772000" data-stop="821.433000">to waste, check out M-x doctor.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="822.433000" data-stop="823.133000">And I was like, what?</span> <span class="audio-time caption" data-speaker="Sacha" data-start="823.634000" data-stop="826.294000">Back then I was, like, what kind of editor has</span> <span class="audio-time caption" data-speaker="Sacha" data-start="826.394000" data-stop="827.615000">this kind of stuff in it?</span> <span class="audio-time caption" data-speaker="Sacha" data-start="828.175000" data-stop="830.097000">As I've gotten to know people and their</span> <span class="audio-time caption" data-speaker="Sacha" data-start="830.177000" data-stop="832.179000">customizations and the things that they've built</span> <span class="audio-time caption" data-speaker="Sacha" data-start="832.199000" data-stop="834.322000">to support their lives, I've just become more and</span> <span class="audio-time caption" data-speaker="Sacha" data-start="834.342000" data-stop="836.584000">more fascinated by what people can do with it.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="837.125000" data-stop="839.808000">So I do a lot of things for free for Emacs</span> <span class="audio-time caption" data-speaker="Sacha" data-start="840.288000" data-stop="842.630000">because it's a wonderful community.</span> <p></p><div class="transcript-heading"><span class="audio-time" data-start="842.000000">14:02</span> <strong>What is Meta x?</strong></div><p></p><span class="audio-time caption" data-speaker="Linkarzu" data-start="842.651000" data-stop="844.673000"><strong class="speaker-name">Linkarzu:</strong>  Okay. What is M-x, by the way?</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="845.717000" data-stop="849.379000"><strong class="speaker-name">Sacha:</strong>  M-x is the totally old way of saying</span> <span class="audio-time caption" data-speaker="Sacha" data-start="849.539000" data-stop="851.560000">Alt X because apparently there were fancy</span> <span class="audio-time caption" data-speaker="Sacha" data-start="851.600000" data-stop="853.661000">keyboards where the Alt key was called Meta back</span> <span class="audio-time caption" data-speaker="Sacha" data-start="853.681000" data-stop="854.701000">then.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="854.901000" data-stop="858.243000">And so M-x or Alt X is the way you call</span> <span class="audio-time caption" data-speaker="Sacha" data-start="858.283000" data-stop="859.964000">commands by name if you don't remember the</span> <span class="audio-time caption" data-speaker="Sacha" data-start="859.984000" data-stop="861.685000">keyboard shortcut or if they don't have a</span> <span class="audio-time caption" data-speaker="Sacha" data-start="861.705000" data-stop="863.045000">keyboard shortcut in the first place.</span> <p></p><span class="audio-time caption" data-speaker="Linkarzu" data-start="863.306000" data-stop="863.606000"><strong class="speaker-name">Linkarzu:</strong>  Okay.</span> <p></p><div class="transcript-heading"><span class="audio-time" data-start="864.000000">14:24</span> <strong>Searching handwritten sketches: Evernote to ripgrep</strong></div><p></p><span class="audio-time caption" data-speaker="Linkarzu" data-start="864.026000" data-stop="865.787000"><strong class="speaker-name">Linkarzu:</strong> In the video that played at the beginning when I</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="865.887000" data-stop="867.807000">was talking about</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="867.808000" data-stop="869.307000">what I know about you,</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="869.308000" data-stop="872.090000">one of your most popular videos is Evernote.</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="872.710000" data-stop="874.694000">Like, what's up with that?</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="875.416000" data-stop="875.877000">You know?</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="876.318000" data-stop="878.302000">I guess it started before Emacs, right?</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="878.998000" data-stop="881.219000"><strong class="speaker-name">Sacha:</strong>  No, no, that was actually in between.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="881.379000" data-stop="883.639000">So around the time that I was doing a lot of</span> <span class="audio-time caption" data-speaker="Sacha" data-start="883.699000" data-stop="886.860000">drawings, I wanted to figure out if there was a</span> <span class="audio-time caption" data-speaker="Sacha" data-start="886.900000" data-stop="888.900000">way that I could search through my drawings.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="889.020000" data-stop="893.461000">Evernote at that time had a way to just dump all</span> <span class="audio-time caption" data-speaker="Sacha" data-start="893.481000" data-stop="895.602000">of your sketches into it. Then it would do the</span> <span class="audio-time caption" data-speaker="Sacha" data-start="895.702000" data-stop="898.683000">optical character recognition on handwriting, so I</span> <span class="audio-time caption" data-speaker="Sacha" data-start="898.723000" data-stop="902.464000">could theoretically search for text and see which</span> <span class="audio-time caption" data-speaker="Sacha" data-start="902.504000" data-stop="904.344000">sketches of mine had that text in it.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="904.744000" data-stop="907.404000">I find that writing on a tablet</span> <span class="audio-time caption" data-speaker="Sacha" data-start="907.405000" data-stop="908.605000">or on paper scanned in</span> <span class="audio-time caption" data-speaker="Sacha" data-start="909.465000" data-stop="912.287000">is a great way to explore a thought non-linearly,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="913.027000" data-stop="914.928000">because my mind likes to jump all over the place.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="915.608000" data-stop="917.909000">I wanted to be able to search them.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="918.269000" data-stop="919.910000">I couldn't figure out how to do the OCR of</span> <span class="audio-time caption" data-speaker="Sacha" data-start="919.950000" data-stop="921.751000">handwriting all the way back then, because this</span> <span class="audio-time caption" data-speaker="Sacha" data-start="921.791000" data-stop="923.952000">was, what, 2018 or something?</span> <span class="audio-time caption" data-speaker="Sacha" data-start="924.012000" data-stop="926.113000">Actually, older than that.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="926.473000" data-stop="927.613000">Much, much older than that, I think.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="928.774000" data-stop="930.015000">So I used Evernote for that.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="930.215000" data-stop="933.636000">But then, of course, Evernote got worse, like</span> <span class="audio-time caption" data-speaker="Sacha" data-start="933.696000" data-stop="935.297000">many subscription services do.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="935.837000" data-stop="937.258000">I haven't used it in ages.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="938.820000" data-stop="942.624000">But now I can use either Google Cloud Vision</span> <span class="audio-time caption" data-speaker="Sacha" data-start="942.684000" data-stop="946.008000">to do the OCR of my handwriting to get the text</span> <span class="audio-time caption" data-speaker="Sacha" data-start="946.068000" data-stop="948.231000">out of it, or I can use speech recognition to</span> <span class="audio-time caption" data-speaker="Sacha" data-start="948.271000" data-stop="952.175000">just blergh all the text in my sketch and then have</span> <span class="audio-time caption" data-speaker="Sacha" data-start="952.195000" data-stop="954.038000">the plain text that I can just ripgrep through</span> <span class="audio-time caption" data-speaker="Sacha" data-start="954.098000" data-stop="954.759000">or search through.</span> <p></p><span class="audio-time caption" data-speaker="Linkarzu" data-start="955.280000" data-stop="956.442000"><strong class="speaker-name">Linkarzu:</strong>  I'm interested in that.</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="956.462000" data-stop="959.385000">You're going to demo the speech-to-text thing that</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="959.405000" data-stop="960.507000">you set up, right?</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="960.727000" data-stop="962.529000">You have something... Oh yeah, I totally can.</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="962.770000" data-stop="963.090000">Okay.</span> <p></p><div class="transcript-heading"><span class="audio-time" data-start="963.000000">16:03</span> <strong>Manila to Toronto</strong></div><p></p><span class="audio-time caption" data-speaker="Linkarzu" data-start="963.471000" data-stop="965.753000"><strong class="speaker-name">Linkarzu:</strong> Now, you mentioned that you grew up in Manila,</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="966.014000" data-stop="966.254000">right?</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="966.534000" data-stop="969.859000">Manila, where do you live right now in case that</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="969.879000" data-stop="970.439000">you want to share it?</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="970.540000" data-stop="972.222000">I'm not sure if that's private or...</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="972.442000" data-stop="972.842000"><strong class="speaker-name">Sacha:</strong>  I don't know.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="973.602000" data-stop="974.763000">I live in Toronto now.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="974.863000" data-stop="977.383000">I came here for my master's and stuck around</span> <span class="audio-time caption" data-speaker="Sacha" data-start="977.443000" data-stop="979.784000">because of my husband who is coincidentally a</span> <span class="audio-time caption" data-speaker="Sacha" data-start="979.904000" data-stop="981.764000">Neovim user.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="982.605000" data-stop="983.885000">Somehow we managed to get along.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="985.305000" data-stop="985.825000">Yes, yes.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="986.005000" data-stop="987.726000">So I'm here in Toronto and I have learned to put</span> <span class="audio-time caption" data-speaker="Sacha" data-start="987.766000" data-stop="988.326000">up with winter.</span> <p></p><span class="audio-time caption" data-speaker="Linkarzu" data-start="989.126000" data-stop="989.466000"><strong class="speaker-name">Linkarzu:</strong>  Okay.</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="989.826000" data-stop="991.987000">And for how long have you been there in Toronto?</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="992.729000" data-stop="994.450000"><strong class="speaker-name">Sacha:</strong>  I moved here in 2005.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="994.890000" data-stop="996.911000">Actually, my main reason for staying here was the</span> <span class="audio-time caption" data-speaker="Sacha" data-start="996.951000" data-stop="999.412000">Toronto Public Library, which is amazing.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1000.112000" data-stop="1002.874000">And then of course, I met</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1002.894000" data-stop="1003.774000">my husband afterwards.</span> <p></p><span class="audio-time caption" data-speaker="Linkarzu" data-start="1004.995000" data-stop="1007.356000"><strong class="speaker-name">Linkarzu:</strong>  He's from Canada?</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="1008.116000" data-stop="1009.096000"><strong class="speaker-name">Sacha:</strong>  Yes. He's from Canada.</span> <p></p><span class="audio-time caption" data-speaker="Linkarzu" data-start="1009.577000" data-stop="1009.877000"><strong class="speaker-name">Linkarzu:</strong>  Okay.</span> <p></p><div class="transcript-heading"><span class="audio-time" data-start="1010.000000">16:50</span> <strong>Not about converting people, but about finding the tools that fit you best</strong></div><p></p><span class="audio-time caption" data-speaker="Linkarzu" data-start="1010.197000" data-stop="1012.678000"><strong class="speaker-name">Linkarzu:</strong> Now with all of this power and influence that you</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="1012.738000" data-stop="1016.440000">have, why haven't you turned him to the, to the</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="1016.560000" data-stop="1017.280000">Emacs side?</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="1017.520000" data-stop="1018.961000">Is it because Neovim is better?</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="1019.907000" data-stop="1020.706000"><strong class="speaker-name">Sacha:</strong>  No, it's because</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1020.707000" data-stop="1022.088000">it's not about that, right?</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1022.108000" data-stop="1024.468000">It's about figuring out what kind of tool fits</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1024.548000" data-stop="1025.428000">you really well.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1026.008000" data-stop="1028.809000">For us, for example, he picked up using</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1028.929000" data-stop="1029.729000">Ledger from me.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1030.309000" data-stop="1033.970000">I like using the Ledger command line tool, also</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1033.990000" data-stop="1037.211000">by John Wiegley, to manage my finances.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1037.271000" data-stop="1038.951000">That's something he uses as well, because it's</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1039.011000" data-stop="1039.570000">plain text.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1039.611000" data-stop="1041.892000">But he can do that within Vim perfectly fine.</span> <p></p><div class="transcript-heading"><span class="audio-time" data-start="1043.000000">17:23</span> <strong>What do I do right now?</strong></div><p></p><span class="audio-time caption" data-speaker="Linkarzu" data-start="1043.993000" data-stop="1044.935000"><strong class="speaker-name">Linkarzu:</strong>  Okay, okay.</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="1045.494000" data-stop="1048.396000">You went there for your masters.</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="1048.717000" data-stop="1052.059000">What do you do if you want to share with us?</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="1052.079000" data-stop="1053.720000">What do you do right now?</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="1056.642000" data-stop="1057.543000"><strong class="speaker-name">Sacha:</strong>  I'm retiring today!</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1058.824000" data-stop="1061.585000">I'm wrapping up my consulting contract.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1061.685000" data-stop="1068.770000">So over the past 14 years, I've been on this</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1069.170000" data-stop="1071.232000">four-year experiment with semi-retirement.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1072.072000" data-stop="1073.651000">Sorry, five-year experiment with</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1073.652000" data-stop="1074.212000">semi-retirement.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1074.252000" data-stop="1076.073000">It got interrupted by parenting, and so it just</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1076.093000" data-stop="1078.833000">kept extending, in which the little bit of</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1078.873000" data-stop="1081.174000">consulting that I was doing was mostly focused on</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1081.274000" data-stop="1082.733000">coming up with web prototypes,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1082.734000" data-stop="1085.595000">doing some data analysis.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1085.635000" data-stop="1087.615000">The data analysis part, my proudest moment was</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1087.695000" data-stop="1089.915000">figuring out this complicated common table</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1089.955000" data-stop="1092.876000">expression in PostgreSQL so that you could do</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1092.996000" data-stop="1094.455000">this recursive query and</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1094.456000" data-stop="1096.957000">report by organizational chart.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1097.237000" data-stop="1097.757000">Fancy stuff.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1098.937000" data-stop="1102.198000">Anyway, so this and that, some JavaScript and HTML</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1102.218000" data-stop="1104.718000">and whatever, to basically take whatever crazy</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1104.778000" data-stop="1108.179000">ideas my client had and see what I could do to</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1108.239000" data-stop="1110.359000">automate it or build it on top of this other</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1110.399000" data-stop="1112.940000">person's system, the vendor's system, which was</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1113.000000" data-stop="1116.141000">poorly documented but still had a REST API.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1116.301000" data-stop="1118.041000">Anyway, that sort of stuff.</span> <p></p><div class="transcript-heading"><span class="audio-time" data-start="1118.000000">18:38</span> <strong>Learning French</strong></div><p></p><span class="audio-time caption" data-speaker="Sacha" data-start="1118.281000" data-stop="1120.381000"><strong class="speaker-name">Sacha:</strong> And then for the rest of the time, just tinkering</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1120.401000" data-stop="1121.981000">around with Emacs, writing things,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1121.982000" data-stop="1122.602000">learning French.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1123.242000" data-stop="1124.222000">It's not my main language.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1124.262000" data-stop="1125.743000">You can probably tell because of my terrible</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1125.783000" data-stop="1127.063000">pronunciation, but that's okay.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1127.083000" data-stop="1127.763000">I'm working on it.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1128.745000" data-stop="1130.410000">And I'm learning that because my daughter is</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1130.470000" data-stop="1131.292000">learning that in school.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1131.332000" data-stop="1133.659000">I figured it's good for her to have someone to</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1133.679000" data-stop="1134.060000">talk to.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1134.722000" data-stop="1136.045000">So there are many things to keep me busy.</span> <p></p><div class="transcript-heading"><span class="audio-time" data-start="1137.000000">18:57</span> <strong>Sitting out the AI churn</strong></div><p></p><span class="audio-time caption" data-speaker="Linkarzu" data-start="1137.111000" data-stop="1138.152000"><strong class="speaker-name">Linkarzu:</strong>  Oh, okay, okay.</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="1138.813000" data-stop="1142.515000">So you do consulting then, right?</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="1142.776000" data-stop="1143.776000"><strong class="speaker-name">Sacha:</strong>  I did consulting.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1143.876000" data-stop="1145.638000">I am now experimenting with not doing any</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1145.678000" data-stop="1146.138000">consulting.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1146.178000" data-stop="1150.241000">I'm going to sit out all the AI churn, you know,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1150.301000" data-stop="1152.063000">you all figure that out.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1152.163000" data-stop="1154.444000">Then I will check back in next year, a couple</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1154.484000" data-stop="1157.247000">of years, when maybe never, and see if there's</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1157.267000" data-stop="1158.287000">anything else I can help with.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1158.307000" data-stop="1159.969000">In the meantime, I can just hack on the things</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1160.009000" data-stop="1160.829000">that I want to hack on.</span> <p></p><span class="audio-time caption" data-speaker="Linkarzu" data-start="1161.930000" data-stop="1162.311000"><strong class="speaker-name">Linkarzu:</strong>  Okay.</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="1162.531000" data-stop="1163.812000">What are you going to do?</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="1163.912000" data-stop="1164.313000">YouTube?</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="1164.673000" data-stop="1165.634000">Emacs?</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="1165.834000" data-stop="1167.256000">What's the plan?</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="1167.336000" data-stop="1169.438000"><strong class="speaker-name">Sacha:</strong>  Have fun?</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1169.578000" data-stop="1171.320000">We like biking.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1171.340000" data-stop="1172.501000">We like going outside.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1172.841000" data-stop="1174.343000">I like writing and drawing.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1174.964000" data-stop="1177.887000">I can always find things to tinker with in Emacs.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1178.387000" data-stop="1180.630000">Coming up with ideas for things to do is never</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1180.690000" data-stop="1181.450000">really a problem.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1181.871000" data-stop="1182.732000">It's more like...</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1185.491000" data-stop="1187.813000">Trying to finish enough of those things so I can</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1187.853000" data-stop="1189.694000">post them and make them something that other</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1189.714000" data-stop="1192.275000">people might be able to learn from or build on,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1192.456000" data-stop="1192.756000">right?</span> <p></p><span class="audio-time caption" data-speaker="Linkarzu" data-start="1193.156000" data-stop="1195.137000"><strong class="speaker-name">Linkarzu:</strong>  Yeah, yeah, okay.</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="1197.218000" data-stop="1198.599000">I had something for you.</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="1198.659000" data-stop="1199.800000">I had a question for you.</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="1199.840000" data-stop="1201.161000">I just...</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="1201.801000" data-stop="1202.762000">Hold on, let me think.</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="1203.262000" data-stop="1203.862000">Let me think.</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="1205.403000" data-stop="1206.884000">Oh, you were talking about something.</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="1206.944000" data-stop="1209.566000">Oh, but before we continue, Sacha, just...</span> <p></p><div class="transcript-heading"><span class="audio-time" data-start="1210.000000">20:10</span> <strong>Thanking YouTube members</strong></div><p></p><span class="audio-time caption" data-speaker="Linkarzu" data-start="1210.377000" data-stop="1212.758000"><strong class="speaker-name">Linkarzu:</strong> Let me thank my YouTube members.</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="1212.979000" data-stop="1214.740000">The CEOs are shown on the screen.</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="1215.040000" data-stop="1216.900000">@web2three, https://web2three.com,</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="1216.901000" data-stop="1219.301000">Ted, https://cpnllc.com,</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="1219.302000" data-stop="1220.683000">and also Gallo.</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="1221.064000" data-stop="1222.364000">These are the three CEOs.</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="1222.524000" data-stop="1224.346000">And I just want to thank the rest of the YouTube</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="1224.366000" data-stop="1227.147000">members, which are the ones that are shown here.</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="1227.247000" data-stop="1231.050000">So just appreciate each one of the members for</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="1231.350000" data-stop="1232.150000">supporting the channel.</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="1232.370000" data-stop="1235.072000">Okay, so back to this here.</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="1235.312000" data-stop="1237.634000">That's just my little announcement that I do</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="1237.654000" data-stop="1239.775000">there on every live stream.</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="1241.925000" data-stop="1242.366000"><strong class="speaker-name">Sacha:</strong>  All right.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1243.087000" data-stop="1245.050000">So, what do you want to go into?</span> <p></p><span class="audio-time caption" data-speaker="Linkarzu" data-start="1245.290000" data-stop="1245.771000"><strong class="speaker-name">Linkarzu:</strong>  Yeah.</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="1245.991000" data-stop="1247.814000">I want to take a look at what you were sharing a</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="1247.854000" data-stop="1249.977000">moment ago.</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="1250.638000" data-stop="1252.600000">The speech-to-text,</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="1252.601000" data-stop="1254.824000">and it happens in real time, right?</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="1255.645000" data-stop="1258.858000"><strong class="speaker-name">Sacha:</strong>  All right.</span> <p></p><div class="transcript-heading"><span class="audio-time" data-start="1260.000000">21:00</span> <strong>Backstory of real-time speech-to-text transcript</strong></div><p></p><span class="audio-time caption" data-speaker="Sacha" data-start="1260.120000" data-stop="1263.341000"><strong class="speaker-name">Sacha:</strong> Like many things in Emacs, this came out of a</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1263.441000" data-stop="1265.982000">bunch of small seemingly unrelated hacks.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1266.643000" data-stop="1270.365000">One was I was having this conversation with a</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1270.405000" data-stop="1273.247000">French tutor and I was like, man, I am having a</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1273.287000" data-stop="1275.408000">hard time making sure... Like, he would switch into</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1275.508000" data-stop="1276.969000">lecture mode and I was trying to have more</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1277.029000" data-stop="1277.708000">conversation mode</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1277.709000" data-stop="1280.311000">so I could practice some more, right?</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1280.371000" data-stop="1283.713000">So I think I've got this right.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1285.652000" data-stop="1287.694000">Hang on a second... Stats...</span> <p></p><span class="audio-time caption" data-speaker="Linkarzu" data-start="1288.155000" data-stop="1288.694000"><strong class="speaker-name">Linkarzu:</strong>  You let me know</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="1288.695000" data-stop="1291.798000">when I switch to your screen.</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="1292.378000" data-stop="1294.280000"><strong class="speaker-name">Sacha:</strong>  Okay. Feel free to share my screen.</span> <p></p><span class="audio-time caption" data-speaker="Linkarzu" data-start="1294.580000" data-stop="1297.143000"><strong class="speaker-name">Linkarzu:</strong>  Okay. Let's see here. There we go.</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="1298.012000" data-stop="1301.455000"><strong class="speaker-name">Sacha:</strong>  Anyway, so I had a large language model</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1301.495000" data-stop="1304.778000">generate a Python server because sometimes I'm</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1304.818000" data-stop="1307.701000">like, I just want a proof of concept for this.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1308.102000" data-stop="1310.484000">I don't necessarily know all the details of how</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1310.524000" data-stop="1312.345000">to work with the Silero voice activity</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1312.346000" data-stop="1312.946000">detection thing.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1312.986000" data-stop="1315.248000">Anyway, so make me a server that can listen to my</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1315.348000" data-stop="1317.831000">audio devices in real time without messing up my</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1320.273000" data-stop="1322.015000">actual microphone use if I'm on stream.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1322.435000" data-stop="1324.376000">Okay, so I have this Python server, and then I</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1324.396000" data-stop="1325.897000">wanted to visualize it within Emacs.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1325.937000" data-stop="1327.738000">Okay, I got that visualizing inside Emacs.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1328.098000" data-stop="1331.720000">And then I wanted to say, all right, you know,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1332.020000" data-stop="1333.861000">why don't I have speech recognition listening on</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1333.901000" data-stop="1338.824000">this thing so that if I say something, it can</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1338.884000" data-stop="1339.905000">check it off.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1340.005000" data-stop="1341.686000">Like playing Bingo, you know, if I say it, then</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1341.966000" data-stop="1343.727000">it gives me a note that I've actually said that</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1343.767000" data-stop="1344.847000">word or phrase.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1344.987000" data-stop="1347.289000">And so it could show me a list of the words or</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1347.329000" data-stop="1349.530000">phrases that I still want to say in conversation.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1350.090000" data-stop="1352.232000">And then as we were preparing for this</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1352.272000" data-stop="1354.094000">conversation, I was like, you know what would be</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1354.114000" data-stop="1357.457000">really cool is if I could have that speech</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1357.497000" data-stop="1360.440000">recognition, which is running anyway, give me a</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1360.500000" data-stop="1364.524000">transcript of the current conversation in a way</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1364.604000" data-stop="1367.927000">that I could then clip if I wanted to, because</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1368.007000" data-stop="1371.389000">sometimes I'll be doing a live stream</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1371.390000" data-stop="1371.891000">and I'd be like,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1372.411000" data-stop="1374.291000">You know, that was a really cool demo and I</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1374.311000" data-stop="1376.492000">should grab that so that I can just grab the</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1376.512000" data-stop="1381.113000">screenshot or put it into a blog post or just get</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1381.173000" data-stop="1384.714000">a text or extract a clip out of it, turn it into</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1384.734000" data-stop="1385.474000">a video, right?</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1387.134000" data-stop="1390.134000">And so now I have this thing where,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1390.135000" data-stop="1390.835000">hang on a second.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1391.295000" data-stop="1394.756000">If I'm somewhere else, for example, it's easy for</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1394.796000" data-stop="1395.376000">me to get to.</span> <p></p><div class="transcript-heading"><span class="audio-time" data-start="1395.000000">23:15</span> <strong>Demo: real-time transcript and instant replay in Emacs</strong></div><p></p><span class="audio-time caption" data-speaker="Sacha" data-start="1395.496000" data-stop="1396.657000"><strong class="speaker-name">Sacha:</strong> I have a voice command for it.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1397.177000" data-stop="1399.839000">Prepare to fast forward.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1399.840000" data-stop="1401.728000">Which is of course a [Spaceballs] reference.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1401.828000" data-stop="1403.689000">It'll show me then this thing.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1404.609000" data-stop="1410.311000">And if we are... Let me load this real quick.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1411.231000" data-stop="1414.512000">And it will show me the video that we have, or at</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1414.552000" data-stop="1416.353000">least the recording that I've got of it.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1417.073000" data-stop="1418.474000">That's on the right side here.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1418.494000" data-stop="1420.454000">This MPV is controlled by Emacs.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1421.194000" data-stop="1424.735000">And if I go here.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1425.335000" data-stop="1426.636000">Let's say this one.</span> <p></p><a href="https://sachachua.com/blog/2026/11/my-chat-with-linkarzu/Emacs%20for%20Everything%20-%20Why%20Sacha%20Chua%20Still%20Lives%20in%20Emacs%20After%2020+%20Years%20[Sw6sCMIypmk]-00-23-46-884.jpg"><img loading="lazy" target="_blank" src="https://sachachua.com/blog/2026/11/my-chat-with-linkarzu/Emacs%20for%20Everything%20-%20Why%20Sacha%20Chua%20Still%20Lives%20in%20Emacs%20After%2020+%20Years%20[Sw6sCMIypmk]-00-23-46-884.jpg" alt="image from video 00:23:46.884" data-time="00:23:46.884"></a><span class="audio-time caption" data-speaker="Sacha" data-start="1426.876000" data-stop="1428.337000"><strong class="speaker-name">Sacha:</strong> So here's your waveform for it.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1429.158000" data-stop="1430.979000">If I play it back, which is of course the</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1431.039000" data-stop="1432.139000">Spaceball reference,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1432.140000" data-stop="1434.001000">it will show me then this thing.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1434.762000" data-stop="1438.444000">I can copy the text if I wanted to, or I can</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1438.885000" data-stop="1442.027000">extract this into its own video.</span> <p></p><div class="transcript-heading"><span class="audio-time" data-start="1443.000000">24:03</span> <strong>Demo: Video editing witin Emacs
</strong></div><p></p><a href="https://sachachua.com/blog/2026/11/my-chat-with-linkarzu/Emacs%20for%20Everything%20-%20Why%20Sacha%20Chua%20Still%20Lives%20in%20Emacs%20After%2020+%20Years%20[Sw6sCMIypmk]-00-24-13-994.jpg"><img loading="lazy" target="_blank" src="https://sachachua.com/blog/2026/11/my-chat-with-linkarzu/Emacs%20for%20Everything%20-%20Why%20Sacha%20Chua%20Still%20Lives%20in%20Emacs%20After%2020+%20Years%20[Sw6sCMIypmk]-00-24-13-994.jpg" alt="image from video 00:24:13.994" data-time="00:24:13.994"></a><span class="audio-time caption" data-speaker="Sacha" data-start="1443.028000" data-stop="1445.410000"><strong class="speaker-name">Sacha:</strong> Of course I do my editing within Emacs.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1446.573000" data-stop="1448.432000">This is what my video editing</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1448.433000" data-stop="1449.454000">looks like within Emacs.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1449.554000" data-stop="1452.634000">I can just copy and paste the subtitle cues</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1452.635000" data-stop="1453.475000">that I want.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1453.995000" data-stop="1456.115000">I tell it where I want the output to be.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1456.175000" data-stop="1458.276000">I tell it what audio that I want to use in case</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1458.316000" data-stop="1459.036000">I've replaced it.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1459.856000" data-stop="1462.057000">Here, for example, I'm using the same audio as</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1462.117000" data-stop="1465.758000">well as the video from a previous live stream</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1465.918000" data-stop="1466.718000">recorded session.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1467.538000" data-stop="1470.820000">and then I can just reorder things, clip things,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1470.920000" data-stop="1472.581000">change the timestamps here.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1473.122000" data-stop="1476.424000">If I want to cut from</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1476.464000" data-stop="1480.226000">there onwards, sample bits of it and so on,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1481.707000" data-stop="1483.408000">it's something I can do.</span> <p></p><span class="audio-time caption" data-speaker="Linkarzu" data-start="1485.230000" data-stop="1487.331000"><strong class="speaker-name">Linkarzu:</strong>  Can you remove words as well or just</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="1487.691000" data-stop="1488.652000">entire sentences?</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="1490.108000" data-stop="1493.050000"><strong class="speaker-name">Sacha:</strong>  One way to do that is to split at</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1493.110000" data-stop="1493.611000">that point.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1493.711000" data-stop="1496.012000">So for example, if I want to remove definitely,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1497.353000" data-stop="1499.574000">let's load this one so we can see where I am.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1500.135000" data-stop="1501.335000">I can follow along here.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1501.355000" data-stop="1503.597000">So this is my livestream from yesterday.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1504.420000" data-stop="1509.560000">"My bottleneck is definitely thinking speed."</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1510.321000" data-stop="1511.722000">So here's definitely, right?</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1511.742000" data-stop="1514.523000">This is the start of "definitely thinking speed".</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1515.884000" data-stop="1516.985000">If I split here,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1518.692000" data-stop="1525.176000">and I split at the end of "thinking speed", I</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1525.196000" data-stop="1527.577000">can say let's skip this.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1529.939000" data-stop="1535.042000">And I think, assuming I haven't broken...</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1535.082000" data-stop="1536.823000">"My bottleneck is thinking speed."</span> <p></p><span class="audio-time caption" data-speaker="Linkarzu" data-start="1537.798000" data-stop="1541.181000"><strong class="speaker-name">Linkarzu:</strong>  Okay. Yeah.</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="1541.261000" data-stop="1542.522000">Just a little tail there, but I get it.</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="1542.583000" data-stop="1543.003000"><strong class="speaker-name">Sacha:</strong>  Yeah.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1543.423000" data-stop="1544.925000">It's just a matter of</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1546.186000" data-stop="1547.707000">choosing the right timestamp.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1548.348000" data-stop="1549.289000">"Thinking speed."</span> <p></p><span class="audio-time caption" data-speaker="Linkarzu" data-start="1549.729000" data-stop="1552.531000"><strong class="speaker-name">Linkarzu:</strong>  So that is pretty interesting</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="1552.532000" data-stop="1553.513000">and based.</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="1553.713000" data-stop="1557.155000">So you do all of your videos in Emacs,</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="1557.156000" data-stop="1558.017000">edit all of them there.</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="1558.157000" data-stop="1559.018000"><strong class="speaker-name">Sacha:</strong>  Yeah, pretty much.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1559.158000" data-stop="1564.721000">Well, it started because in 2020, I think,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1564.722000" data-stop="1567.864000">I wanted to make a presentation for EmacsConf.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1568.585000" data-stop="1571.327000">And I wanted to record my audio and then just add</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1571.367000" data-stop="1572.408000">the visuals on top of it.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1572.908000" data-stop="1574.910000">But I don't like clicking the mouse because I'm</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1574.970000" data-stop="1576.170000">on a Lenovo ThinkPad.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1576.171000" data-stop="1577.592000">The tiny little pointer is handy, but...</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1578.780000" data-stop="1580.814000">if I use a separate mouse, it's annoying.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1580.834000" data-stop="1582.496000">Anyway. Clicking is annoying, especially since</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1582.876000" data-stop="1584.597000">I'm so used to being able to automate everything</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1584.617000" data-stop="1585.518000">with keyboard shortcuts.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1586.019000" data-stop="1587.923000">So I said, why don't I use Emacs for</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1588.124000" data-stop="1590.650000">video editing and audio editing?</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1590.730000" data-stop="1591.853000">So what I can do then</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1592.743000" data-stop="1597.024000">is I can take my audio recording... Or actually,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1597.025000" data-stop="1599.586000">I can record from Emacs itself</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1599.587000" data-stop="1601.827000">and then I can edit it</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1601.828000" data-stop="1604.208000">to remove the oopses and the false starts</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1604.209000" data-stop="1606.210000">and change all the things that I want to.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1606.891000" data-stop="1609.111000">Then I can add the images or videos</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1609.112000" data-stop="1611.112000">that I want for each clip</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1611.113000" data-stop="1612.633000">and it will automatically speed up</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1612.634000" data-stop="1616.536000">or slow down the video to fit the</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1616.596000" data-stop="1617.717000">duration of the audio.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1618.737000" data-stop="1620.639000">So if I'm saying, you know, this is a quick</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1620.659000" data-stop="1622.300000">preview of the conference schedule, et cetera,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1622.340000" data-stop="1626.183000">then it speeds up the scrolling</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1626.223000" data-stop="1628.024000">automatically so I don't have to worry about</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1628.125000" data-stop="1629.846000">doing it fast enough if I want to.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1630.066000" data-stop="1631.887000">I can also tell it to play this original speed.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1632.588000" data-stop="1636.631000">That has just grown since then.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1637.111000" data-stop="1638.431000">Every time I want to do something else...</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1638.432000" data-stop="1639.572000">Like now I'm thinking,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1639.573000" data-stop="1640.514000">you know what would be really cool</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1640.554000" data-stop="1643.857000">is if I could add a title card very easily, right?</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1643.917000" data-stop="1646.719000">So let me go to, let me start a new thing here.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1650.257000" data-stop="1651.278000">WebVTT.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1651.898000" data-stop="1653.739000">So if I want to say, I want to add a title</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1653.779000" data-stop="1657.001000">card that says "Hello world", right?</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1657.941000" data-stop="1659.322000">Oh, I need to actually save it.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1660.202000" data-stop="1663.704000">Let's save it as, hang on a sec.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1664.505000" data-stop="1665.345000">Breathe, Sacha.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1665.405000" data-stop="1666.005000">It's okay.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1666.105000" data-stop="1667.086000">test.vtt.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1667.166000" data-stop="1667.766000">Yeah, that one.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1667.946000" data-stop="1668.246000">Okay.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1669.327000" data-stop="1669.727000">All right.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1670.067000" data-stop="1670.928000">So now I have a test.</span> <p></p><div class="transcript-heading"><span class="audio-time" data-start="1671.000000">27:51</span> <strong>Demo: generating video title cards from WebVTT in Emacs
</strong></div><p></p><a href="https://sachachua.com/blog/2026/11/my-chat-with-linkarzu/Emacs%20for%20Everything%20-%20Why%20Sacha%20Chua%20Still%20Lives%20in%20Emacs%20After%2020+%20Years%20[Sw6sCMIypmk]-00-27-53-964.jpg"><img loading="lazy" target="_blank" src="https://sachachua.com/blog/2026/11/my-chat-with-linkarzu/Emacs%20for%20Everything%20-%20Why%20Sacha%20Chua%20Still%20Lives%20in%20Emacs%20After%2020+%20Years%20[Sw6sCMIypmk]-00-27-53-964.jpg" alt="image from video 00:27:53.964" data-time="00:27:53.964"></a><span class="audio-time caption" data-speaker="Sacha" data-start="1671.988000" data-stop="1674.590000"><strong class="speaker-name">Sacha:</strong> If I say Hello World, then it just calls</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1674.790000" data-stop="1676.911000">ImageMagick to create this file here.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1677.711000" data-stop="1679.012000">If I open that file,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1681.185000" data-stop="1682.185000">it's super simple.</span> <p></p><a href="https://sachachua.com/blog/2026/11/my-chat-with-linkarzu/Emacs%20for%20Everything%20-%20Why%20Sacha%20Chua%20Still%20Lives%20in%20Emacs%20After%2020+%20Years%20[Sw6sCMIypmk]-00-28-03-807.jpg"><img loading="lazy" target="_blank" src="https://sachachua.com/blog/2026/11/my-chat-with-linkarzu/Emacs%20for%20Everything%20-%20Why%20Sacha%20Chua%20Still%20Lives%20in%20Emacs%20After%2020+%20Years%20[Sw6sCMIypmk]-00-28-03-807.jpg" alt="image from video 00:28:03.807" data-time="00:28:03.807"></a><span class="audio-time caption" data-speaker="Sacha" data-start="1682.285000" data-stop="1684.646000"><strong class="speaker-name">Sacha:</strong> It's just white text and a black background using</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1684.666000" data-stop="1687.067000">my custom font, because I went to the trouble of</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1687.527000" data-stop="1690.407000">figuring out how to make a font with my</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1690.467000" data-stop="1692.588000">handwriting and then kern it using Org Mode.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1692.628000" data-stop="1693.408000">Because why not?</span> <p></p><span class="audio-time caption" data-speaker="Linkarzu" data-start="1694.828000" data-stop="1698.189000"><strong class="speaker-name">Linkarzu:</strong>  Okay.</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="1698.609000" data-stop="1699.990000"><strong class="speaker-name">Sacha:</strong>  That's ready.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1700.030000" data-stop="1700.610000">Then I can pop that in and I can say, you</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1700.630000" data-stop="1702.871000">know, this is a test here.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1703.371000" data-stop="1705.191000">Let’s do a <code>subed-record</code> here.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1707.352000" data-stop="1708.472000">"This is a test here."</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1709.950000" data-stop="1713.551000">And then that audio here,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1713.552000" data-stop="1715.994000">it becomes a whole thing.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1716.714000" data-stop="1718.514000">If I compile this,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1718.515000" data-stop="1721.557000">I think it will just make a thing.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1721.677000" data-stop="1723.037000">Let's put it into</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1723.038000" data-stop="1725.699000"><code>#+OUTPUT: test.webm</code>, sure.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1728.801000" data-stop="1729.982000">All right.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1730.202000" data-stop="1731.583000">mpv test.webm</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1733.084000" data-stop="1734.204000">"This is a test here."</span> <p></p><span class="audio-time caption" data-speaker="Linkarzu" data-start="1735.145000" data-stop="1740.442000"><strong class="speaker-name">Linkarzu:</strong>  I see. Pretty cool.</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="1740.962000" data-stop="1744.265000">Have you seen...</span> <p></p><div class="transcript-heading"><span class="audio-time" data-start="1746.000000">29:06</span> <strong>fframes, generative AI</strong></div><p></p><span class="audio-time caption" data-speaker="Sacha" data-start="1746.012000" data-stop="1748.232000"><strong class="speaker-name">Sacha:</strong>  If I can figure out</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1748.233000" data-stop="1750.072000">how to get fframes,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1750.073000" data-stop="1751.353000">that thing that you're using...</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1753.254000" data-stop="1755.573000">If I can figure out how to get that working,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1755.574000" data-stop="1756.715000">that might be interesting too.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1757.175000" data-stop="1758.814000">Although, I have to say,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1758.815000" data-stop="1761.815000">I'm very attached to my stick figures</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1761.816000" data-stop="1763.176000">and the way that I like to draw things.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1763.696000" data-stop="1766.757000">And I have tried using generative models to say,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1766.777000" data-stop="1767.677000">"Okay, here's my sketch.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1768.017000" data-stop="1770.498000">Can you animate this SVG, move</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1770.518000" data-stop="1771.318000">things around or whatever."</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1771.518000" data-stop="1773.158000">It keeps trying to rewrite things to plain text.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1773.178000" data-stop="1774.839000">I'm like, no, I want my actual paths.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1775.339000" data-stop="1776.779000">So I have to fiddle with it some more.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1777.259000" data-stop="1779.199000">In the meantime, however,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1779.200000" data-stop="1780.820000">I can animate things myself,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1780.920000" data-stop="1781.740000">thank you very much.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1782.601000" data-stop="1787.442000">Like, for example, this... animate...</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1787.462000" data-stop="1788.962000">let's go with that one.</span> <p></p><div class="transcript-heading"><span class="audio-time" data-start="1789.000000">29:49</span> <strong>Demo: Stepping through SVGs in Emacs</strong></div><p></p><span class="audio-time caption" data-speaker="Sacha" data-start="1789.522000" data-stop="1790.983000"><strong class="speaker-name">Sacha:</strong> "Some things that work really well."</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1791.563000" data-stop="1793.063000">This is within Emacs again.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1793.483000" data-stop="1795.784000">I can just highlight the different things.</span> <p></p><div class="transcript-heading"><span class="audio-time" data-start="1796.000000">29:56</span> <strong>I draw on an iPad with Noteful
</strong></div><p></p><a href="https://sachachua.com/blog/2026/11/my-chat-with-linkarzu/Sw6sCMIypmk%20-%20Emacs%20for%20Everything%20-%20Why%20Sacha%20Chua%20Still%20Lives%20in%20Emacs%20After%2020+%20Years-00-30-21-862.jpg"><img loading="lazy" target="_blank" src="https://sachachua.com/blog/2026/11/my-chat-with-linkarzu/Sw6sCMIypmk%20-%20Emacs%20for%20Everything%20-%20Why%20Sacha%20Chua%20Still%20Lives%20in%20Emacs%20After%2020+%20Years-00-30-21-862.jpg" alt="image from video 00:30:21.862" data-time="00:30:21.862"></a><span class="audio-time caption" data-speaker="Linkarzu" data-start="1796.204000" data-stop="1797.463000"><strong class="speaker-name">Linkarzu:</strong>  How do you do your drawings,</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="1797.464000" data-stop="1797.924000">by the way?</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="1798.084000" data-stop="1800.025000">Like, do you have like a tablet or something?</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="1800.937000" data-stop="1801.497000"><strong class="speaker-name">Sacha:</strong>  Oh yeah, yeah.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1801.617000" data-stop="1804.578000">I use Noteful on an iPad.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1805.058000" data-stop="1809.839000">I used to draw using Krita on a Lenovo X230</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1809.879000" data-stop="1813.120000">tablet PC, but at the moment I can just use the</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1813.180000" data-stop="1814.540000">iPad with Noteful.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1814.580000" data-stop="1816.941000">Currently I'm drawing in dark mode because you</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1816.981000" data-stop="1818.240000">have a dark mode channel,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1818.241000" data-stop="1820.960000">so I have things like my sketches.</span> <p></p><div class="transcript-heading"><span class="audio-time" data-start="1820.000000">30:20</span> <strong>Light themes and dark themes</strong></div><p></p><span class="audio-time caption" data-speaker="Linkarzu" data-start="1820.900000" data-stop="1823.281000"><strong class="speaker-name">Linkarzu:</strong>  Emacs users like to</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="1823.282000" data-stop="1824.603000">flashbang people, right?</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="1824.623000" data-stop="1826.004000">They like the white?</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="1826.345000" data-stop="1830.007000">Is it to tell apart from the Neovim</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="1830.047000" data-stop="1830.468000">community?</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="1830.608000" data-stop="1832.950000">What's up with the white themes?</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="1833.970000" data-stop="1836.032000"><strong class="speaker-name">Sacha:</strong>  I mean, I tend to use dark mode now most</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1836.052000" data-stop="1838.534000">of the time too, because I figure most people</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1838.574000" data-stop="1842.157000">will be watching my stream when late at night</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1842.177000" data-stop="1843.538000">they're just relaxing or whatever.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1845.159000" data-stop="1847.440000">But I guess different people work</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1847.441000" data-stop="1848.401000">with different setups.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1848.962000" data-stop="1852.224000">I do like the way that with modus-themes and</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1852.284000" data-stop="1854.706000">all the other themes in Emacs, it's super easy to</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1854.726000" data-stop="1856.848000">pick one of these dark</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1856.888000" data-stop="1857.768000">themes and just go with it.</span> <p></p><span class="audio-time caption" data-speaker="Linkarzu" data-start="1858.329000" data-stop="1858.569000"><strong class="speaker-name">Linkarzu:</strong>  Okay.</span> <p></p><div class="transcript-heading"><span class="audio-time" data-start="1858.000000">30:58</span> <strong>Art and stick figures</strong></div><p></p><span class="audio-time caption" data-speaker="Linkarzu" data-start="1858.789000" data-stop="1860.210000"><strong class="speaker-name">Linkarzu:</strong> So you do it on the iPad then.</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="1860.250000" data-stop="1862.812000">I have to convince my wife that we need an iPad</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="1862.892000" data-stop="1863.613000">for the family.</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="1865.325000" data-stop="1867.750000">I don't know how to draw.</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="1867.990000" data-stop="1868.571000">I'm pretty bad.</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="1868.651000" data-stop="1870.174000"><strong class="speaker-name">Sacha:</strong>  I don't really know how to draw either,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1870.274000" data-stop="1872.318000">but somehow people have paid me to do so.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1872.438000" data-stop="1873.420000">I don't know what's going on there.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1874.221000" data-stop="1876.726000">But yeah, I'm really only drawing stick figures.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1876.826000" data-stop="1877.206000">It's fine.</span> <p></p><span class="audio-time caption" data-speaker="Linkarzu" data-start="1877.734000" data-stop="1878.155000"><strong class="speaker-name">Linkarzu:</strong>  Okay.</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="1878.375000" data-stop="1880.797000">Yeah, no, my drawing is like, you have no idea.</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="1881.618000" data-stop="1883.960000">I lack creativity when it comes to that.</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="1884.220000" data-stop="1886.241000">My wife paints.</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="1886.242000" data-stop="1888.344000">She paints pretty good stuff.</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="1888.624000" data-stop="1890.005000">My daughter paints.</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="1890.366000" data-stop="1892.448000">Well, these are my daughter's paintings, the ones</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="1892.468000" data-stop="1893.389000">that are back here.</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="1894.710000" data-stop="1895.871000">I guess you cannot see them.</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="1897.292000" data-stop="1898.334000">You can see them there in the</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="1898.354000" data-stop="1898.734000">background.</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="1898.935000" data-stop="1902.440000">She's learning, you know, but me... Nice!</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="1902.520000" data-stop="1903.742000"><strong class="speaker-name">Sacha:</strong>  I see very vivid colors.</span> <p></p><span class="audio-time caption" data-speaker="Linkarzu" data-start="1904.002000" data-stop="1907.547000"><strong class="speaker-name">Linkarzu:</strong>  Yeah, she loves rainbows and a lot of</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="1907.587000" data-stop="1909.190000">vivid colors, but I can't.</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="1909.550000" data-stop="1910.431000">I'm pretty bad at it.</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="1910.732000" data-stop="1913.376000">Now, how do you do this</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="1915.069000" data-stop="1916.589000">speech-recognition thing</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="1916.590000" data-stop="1917.872000">because I do something similar.</span> <p></p><div class="transcript-heading"><span class="audio-time" data-start="1918.000000">31:58</span> <strong>Linkarzu's video editing workflow</strong></div><p></p><span class="audio-time caption" data-speaker="Linkarzu" data-start="1918.772000" data-stop="1921.155000"><strong class="speaker-name">Linkarzu:</strong> Let me tell you a bit about what I do with my</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="1921.375000" data-stop="1922.356000">video workflow.</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="1922.616000" data-stop="1924.778000">I got tired of editing videos.</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="1924.858000" data-stop="1925.318000">I'm done.</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="1925.599000" data-stop="1928.822000">Like, it is a time consuming process coming up</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="1928.862000" data-stop="1929.402000">with clips.</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="1929.682000" data-stop="1930.863000">You've been there, right?</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="1930.883000" data-stop="1933.886000">You have been doing that for quite a long time,</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="1934.026000" data-stop="1935.227000">way longer than me, right?</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="1936.028000" data-stop="1938.571000">I just got tired and I was like, I don't want to</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="1938.591000" data-stop="1939.212000">do this anymore.</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="1940.153000" data-stop="1942.375000">Never, ever, ever again.</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="1942.816000" data-stop="1945.278000">I need to come up with a method that allows me to</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="1945.659000" data-stop="1947.901000">create clips out of a live stream.</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="1948.362000" data-stop="1949.583000">All of it, AI.</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="1950.144000" data-stop="1951.885000">AI did all of it for me.</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="1952.026000" data-stop="1953.047000">It hasn't been easy.</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="1953.207000" data-stop="1954.568000">It's been months.</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="1954.749000" data-stop="1956.691000">I've been stuck for months.</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="1957.291000" data-stop="1959.912000">But I don't do stuff real time the way that</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="1959.952000" data-stop="1960.752000">you're doing right now.</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="1961.033000" data-stop="1963.453000">The transcription happens when we're done with</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="1963.473000" data-stop="1966.955000">the call and the process starts automatically and</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="1967.295000" data-stop="1969.416000">a few hours after I have the clips in my</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="1969.456000" data-stop="1972.237000">dashboard that I can upload if I want, right?</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="1972.277000" data-stop="1973.938000">But it's not real time.</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="1974.198000" data-stop="1977.719000">I saw how you did it on</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="1977.759000" data-stop="1979.400000">your side and it's pretty accurate.</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="1979.740000" data-stop="1981.400000">Like, what's the magic?</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="1981.781000" data-stop="1982.781000">What are you doing there?</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="1983.161000" data-stop="1985.302000">You're sending it somewhere, right?</span> <p></p><div class="transcript-heading"><span class="audio-time" data-start="1985.000000">33:05</span> <strong>Local CPU-only speech recognition in Emacs</strong></div><p></p><span class="audio-time caption" data-speaker="Sacha" data-start="1985.842000" data-stop="1988.023000"><strong class="speaker-name">Sacha:</strong>  No, no, this is an entirely local model</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1988.203000" data-stop="1990.343000">and I'm running it in a computer</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1990.344000" data-stop="1991.725000">with hardly any GPU.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1991.785000" data-stop="1994.346000">So I'm actually just making it use CPU only for</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1994.386000" data-stop="1998.048000">the speech recognition because I have a Lenovo</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1998.108000" data-stop="2002.130000">P52 from 2018, I think.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2002.170000" data-stop="2004.932000">So it doesn't do this GPU thing very well.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2005.592000" data-stop="2007.553000">I think you're usually on a Mac, so you're</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2007.593000" data-stop="2008.674000">spoiled for choices there.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2009.114000" data-stop="2011.576000">But speech recognition has gotten really good</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2011.696000" data-stop="2012.897000">over the last few years.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2013.377000" data-stop="2015.278000">And I'm using Orukeet at the moment.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2015.338000" data-stop="2017.439000">It's a multilingual model, so it can handle my</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2017.799000" data-stop="2021.261000">poor French pronunciations just as fine as my</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2021.302000" data-stop="2021.802000">English ones.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2022.602000" data-stop="2024.563000">I can press my keyboard shortcut.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2024.663000" data-stop="2027.685000">For example, I can say, "This is a test during</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2027.725000" data-stop="2028.746000">a chat with Linkarzu."</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2030.410000" data-stop="2033.893000">Then, because I've modified my dictionary,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2034.713000" data-stop="2038.737000">your channel name actually shows up properly.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2039.557000" data-stop="2043.000000">"We are talking about speech-to-text, dictation,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2043.040000" data-stop="2044.241000">all sorts of other things like that."</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2045.182000" data-stop="2045.842000">Where's my phone?</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2050.126000" data-stop="2051.206000">It's pretty accurate.</span> <p></p><span class="audio-time caption" data-speaker="Linkarzu" data-start="2051.607000" data-stop="2052.947000"><strong class="speaker-name">Linkarzu:</strong>  It's extremely accurate.</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="2053.368000" data-stop="2054.309000">What's the name you said?</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="2054.329000" data-stop="2057.792000">Because I use Wispr Flow, a local model as well.</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="2058.092000" data-stop="2059.913000">I do the transcript locally on my Mac.</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="2060.194000" data-stop="2062.514000">Wispr Flow is what the AI decided to use.</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="2062.576000" data-stop="2066.418000">And I'm like, oh, it gets it. But not...</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="2067.369000" data-stop="2067.768000"><strong class="speaker-name">Sacha:</strong>  Yeah.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2067.829000" data-stop="2070.610000">The model I'm currently using is called Orukeet.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2071.112000" data-stop="2075.494000">I think it's based on Parakeet, but it's been</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2075.534000" data-stop="2078.837000">tweaked for more performance and less memory.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2079.237000" data-stop="2081.378000">But there are so many new models coming out.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2081.438000" data-stop="2083.699000">It's really quite interesting because every day</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2083.760000" data-stop="2085.581000">or every other day, there's like, oh, try this</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2085.661000" data-stop="2086.322000">new model.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2087.161000" data-stop="2090.405000">I'm not good enough to keep on top of all those</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2090.445000" data-stop="2092.927000">changes. If I can manage to get the AI to generate</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2092.967000" data-stop="2095.909000">me a server that has an OpenAI interface, I</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2095.949000" data-stop="2098.732000">can plop it right into my Emacs setup and it will</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2098.812000" data-stop="2099.372000">just work.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2099.633000" data-stop="2100.713000">So I'm happy with that.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2101.454000" data-stop="2103.655000">This is fast enough that</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2103.656000" data-stop="2104.857000">I can use it to think.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2105.317000" data-stop="2108.120000">Then, when I have the text, I can rearrange it</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2108.200000" data-stop="2109.100000">however I'd like.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2109.501000" data-stop="2111.843000">For example, "prepare to fast forward."</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2114.083000" data-stop="2114.683000">We're here.</span> <p></p><div class="transcript-heading"><span class="audio-time" data-start="2115.000000">35:15</span> <strong>Sharing speech commands</strong></div><p></p><span class="audio-time caption" data-speaker="Linkarzu" data-start="2115.143000" data-stop="2117.664000"><strong class="speaker-name">Linkarzu:</strong>  I have a similar command.</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="2118.445000" data-stop="2119.345000">Let me see if it works.</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="2119.365000" data-stop="2119.745000">Hold on.</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="2120.366000" data-stop="2124.987000">You see my terminal right now, right?</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="2125.067000" data-stop="2125.308000">Yes.</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="2125.408000" data-stop="2126.548000">I don't know if you can see my screen.</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="2126.768000" data-stop="2127.568000">Let me see if it works.</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="2127.588000" data-stop="2127.909000">Hold on.</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="2129.529000" data-stop="2131.990000">Virgin mode off.</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="2132.891000" data-stop="2133.511000"><strong class="speaker-name">Sacha:</strong>  Yeah, yeah, yeah.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2133.971000" data-stop="2134.411000">I saw that.</span> <p></p><span class="audio-time caption" data-speaker="Linkarzu" data-start="2134.491000" data-stop="2137.533000"><strong class="speaker-name">Linkarzu:</strong>  It didn't work.</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="2137.953000" data-stop="2140.634000">It changes my wallpaper and it changes my...</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="2142.084000" data-stop="2143.005000"><strong class="speaker-name">Sacha:</strong>  I have one too.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2143.425000" data-stop="2143.785000">Laser.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2144.326000" data-stop="2146.687000">Look. I changed my cursor to a laser</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2146.688000" data-stop="2147.968000">so I can say,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2147.969000" data-stop="2149.310000">here's my mouse cursor, right?</span> <p></p><span class="audio-time caption" data-speaker="Linkarzu" data-start="2149.670000" data-stop="2154.674000"><strong class="speaker-name">Linkarzu:</strong>  Okay, pretty cool.</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="2154.714000" data-stop="2156.075000"><strong class="speaker-name">Sacha:</strong>  Yeah.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2156.115000" data-stop="2156.114000">So the nice thing about it...</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2156.115000" data-stop="2156.916000">Oh, it's still listening.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2159.938000" data-stop="2162.600000">Let me just turn off laser mode here.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2163.581000" data-stop="2165.442000">Laser. Laser. Laser.</span> <p></p><span class="audio-time caption" data-speaker="Linkarzu" data-start="2166.543000" data-stop="2167.564000"><strong class="speaker-name">Linkarzu:</strong>  It happens to me as well.</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="2167.644000" data-stop="2168.805000"><strong class="speaker-name">Sacha:</strong>  Edit retry.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2170.785000" data-stop="2171.285000">Laser.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2172.306000" data-stop="2173.266000">Okay, there you go.</span> <p></p><div class="transcript-heading"><span class="audio-time" data-start="2174.000000">36:14</span> <strong>Speech commands and more shortcuts</strong></div><p></p><span class="audio-time caption" data-speaker="Sacha" data-start="2174.227000" data-stop="2176.868000"><strong class="speaker-name">Sacha:</strong> The nice thing about speech commands is that</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2177.108000" data-stop="2180.330000">it opens up a whole lot of other ways to run</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2180.370000" data-stop="2182.571000">commands without necessarily having to memorize</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2182.611000" data-stop="2183.532000">keyboard shortcuts.</span> <p></p><div class="transcript-heading"><span class="audio-time" data-start="2183.000000">36:23</span> <strong>Having fun with speech commands</strong></div><p></p><span class="audio-time caption" data-speaker="Sacha" data-start="2183.952000" data-stop="2185.593000"><strong class="speaker-name">Sacha:</strong> You can have more fun with it too.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2185.993000" data-stop="2187.914000">So for example, now I have this command.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2189.535000" data-stop="2191.756000">It turns out I cannot say "start streaming"</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2191.836000" data-stop="2192.376000">reliably.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2192.416000" data-stop="2193.996000">Sometimes I say "start screaming."</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2194.856000" data-stop="2197.656000">I know sometimes I accidentally say that,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2197.657000" data-stop="2198.597000">and sometimes that's what</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2198.677000" data-stop="2200.078000">the speech recognition hears.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2200.478000" data-stop="2202.878000">So instead my command for starting to stream</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2203.398000" data-stop="2206.039000">(because of course Emacs controls my OBS through</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2206.079000" data-stop="2208.339000">websockets) is "let's go live".</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2208.860000" data-stop="2211.759000">My command for stopping the stream</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2211.760000" data-stop="2212.740000">is "over and out",</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2213.401000" data-stop="2215.201000">just because it's a little more fun to say.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2215.281000" data-stop="2217.582000">It becomes easier for me to remember what I need</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2217.602000" data-stop="2218.942000">to say in order to make this happen.</span> <p></p><span class="audio-time caption" data-speaker="Linkarzu" data-start="2220.083000" data-stop="2220.943000"><strong class="speaker-name">Linkarzu:</strong>  Yeah, yeah.</span> <p></p><div class="transcript-heading"><span class="audio-time" data-start="2221.000000">37:01</span> <strong>Dictionaries for correcting speech recognition</strong></div><p></p><span class="audio-time caption" data-speaker="Linkarzu" data-start="2221.403000" data-stop="2223.365000"><strong class="speaker-name">Linkarzu:</strong> Now, why is it accurate?</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="2223.545000" data-stop="2226.587000">And how do you do, you have a dictionary of</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="2226.667000" data-stop="2229.849000">the difficult words?</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="2229.889000" data-stop="2232.270000">Like if I say Neovim, it doesn't get it.</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="2232.430000" data-stop="2236.233000">It says Neovim, or it just puts whatever it</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="2236.373000" data-stop="2237.573000">wants, whenever it wants.</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="2237.633000" data-stop="2239.735000">Sometimes it puts something random out there.</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="2240.255000" data-stop="2243.057000">What do you do for yours?</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="2243.157000" data-stop="2244.778000"><strong class="speaker-name">Sacha:</strong>  Neovim is okay, I guess.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2245.742000" data-stop="2246.862000">Let's see if it does a thing.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2247.102000" data-stop="2249.643000">Yeah, it got that without my needing to correct</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2249.683000" data-stop="2249.923000">things.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2249.983000" data-stop="2252.444000">Let's make a harder word.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2253.705000" data-stop="2255.305000">Anti-disestablishmentarianism.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2256.266000" data-stop="2256.826000">Close enough.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2257.066000" data-stop="2259.607000">Okay, you know, that requires very little editing.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2259.647000" data-stop="2261.407000">What is a difficult word?</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2262.468000" data-stop="2264.568000">Oh, actually, let's make a different name.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2265.289000" data-stop="2266.769000">Sometimes it gets Prot's name wrong.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2267.349000" data-stop="2269.070000">Prot does a lot of videos on Emacs.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2269.691000" data-stop="2270.772000">Oh no, it got him too.</span> <p></p><span class="audio-time caption" data-speaker="Linkarzu" data-start="2271.292000" data-stop="2274.853000"><strong class="speaker-name">Linkarzu:</strong>  Yeah, yeah, yeah.</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="2275.094000" data-stop="2277.215000"><strong class="speaker-name">Sacha:</strong>  If there was a thing that is difficult</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2277.235000" data-stop="2278.895000">to say...</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2281.116000" data-stop="2283.698000">heisenbug is making org.nvim.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2284.718000" data-stop="2285.018000">That one.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2285.118000" data-stop="2285.839000">Okay, here we go.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2286.459000" data-stop="2288.020000">heisenbug is making org.nvim.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2290.168000" data-stop="2291.850000">I mean, it's getting him, so...</span> <p></p><span class="audio-time caption" data-speaker="Linkarzu" data-start="2292.010000" data-stop="2293.311000"><strong class="speaker-name">Linkarzu:</strong>  Okay, yeah, yeah, yeah.</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="2294.872000" data-stop="2295.332000">I get it.</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="2295.873000" data-stop="2297.854000">So, it's a local model.</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="2298.155000" data-stop="2298.635000">Interesting.</span> <p></p><div class="transcript-heading"><span class="audio-time" data-start="2299.000000">38:19</span> <strong>Demo: Adding a misrecognized term to my common edits dictionary</strong></div><p></p><span class="audio-time caption" data-speaker="Linkarzu" data-start="2299.115000" data-stop="2300.436000"><strong class="speaker-name">Linkarzu:</strong>  Do you feed it a dictionary at some point?</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="2300.496000" data-stop="2301.137000"><strong class="speaker-name">Sacha:</strong>  It is a local model.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2301.237000" data-stop="2302.398000">If I do need to change things...</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2302.698000" data-stop="2304.460000">Let's say</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2304.480000" data-stop="2305.941000">for example, okay, "Orgzly Revived".</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2305.961000" data-stop="2306.962000">It probably can't get that one.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2307.522000" data-stop="2310.785000">"I use Orgzly Revived on my phone to check my tasks."</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2311.736000" data-stop="2312.637000">Oh yeah, so here, right?</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2312.697000" data-stop="2313.898000">It says "Orgsley Revived."</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2313.978000" data-stop="2314.918000">What is that even?</span> <p></p><a href="https://sachachua.com/blog/2026/11/my-chat-with-linkarzu/Emacs%20for%20Everything%20-%20Why%20Sacha%20Chua%20Still%20Lives%20in%20Emacs%20After%2020+%20Years%20[Sw6sCMIypmk]-00-38-41-277.jpg"><img loading="lazy" target="_blank" src="https://sachachua.com/blog/2026/11/my-chat-with-linkarzu/Emacs%20for%20Everything%20-%20Why%20Sacha%20Chua%20Still%20Lives%20in%20Emacs%20After%2020+%20Years%20[Sw6sCMIypmk]-00-38-41-277.jpg" alt="image from video 00:38:41.277" data-time="00:38:41.277"></a><span class="audio-time caption" data-speaker="Sacha" data-start="2315.399000" data-stop="2318.361000"><strong class="speaker-name">Sacha:</strong> But I can press <code>C-;</code> and it uses</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2318.621000" data-stop="2322.864000">substitute. "Orgzly Revived" here.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2323.385000" data-stop="2325.686000">What that does, in addition to the</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2325.726000" data-stop="2328.428000">substitutions that happen throughout the buffer,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2328.448000" data-stop="2330.570000">so for example, if I'm adding a transcript, it</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2330.590000" data-stop="2333.992000">will change that all throughout the transcript.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2334.272000" data-stop="2336.714000">I've also added some code (because this is Emacs,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2336.754000" data-stop="2337.595000">I can just do that)</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2337.935000" data-stop="2341.297000">that saves this in common errors or commonly</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2341.337000" data-stop="2342.338000">misrecognized words.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2342.758000" data-stop="2345.680000">And then when I recognize text, whether it's</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2345.700000" data-stop="2348.501000">before a voice command or if I'm just doing this</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2348.561000" data-stop="2350.462000">or whatever, it will apply</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2350.463000" data-stop="2354.045000">all of those common fixes, common edits.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2354.465000" data-stop="2355.005000">Here we go.</span> <p></p><a href="https://sachachua.com/blog/2026/11/my-chat-with-linkarzu/Emacs%20for%20Everything%20-%20Why%20Sacha%20Chua%20Still%20Lives%20in%20Emacs%20After%2020+%20Years%20[Sw6sCMIypmk]-00-39-19-107.jpg"><img loading="lazy" target="_blank" src="https://sachachua.com/blog/2026/11/my-chat-with-linkarzu/Emacs%20for%20Everything%20-%20Why%20Sacha%20Chua%20Still%20Lives%20in%20Emacs%20After%2020+%20Years%20[Sw6sCMIypmk]-00-39-19-107.jpg" alt="image from video 00:39:19.107" data-time="00:39:19.107"></a><span class="audio-time caption" data-speaker="Sacha" data-start="2355.045000" data-stop="2359.048000"><strong class="speaker-name">Sacha:</strong> So it automatically adds it to this thing here</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2359.108000" data-stop="2362.089000">which gets saved automatically for me.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2362.610000" data-stop="2366.152000">And that's the change that I've just added.</span> <p></p><span class="audio-time caption" data-speaker="Linkarzu" data-start="2366.994000" data-stop="2370.017000"><strong class="speaker-name">Linkarzu:</strong>  Interesting. Pretty cool.</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="2370.117000" data-stop="2371.879000"><strong class="speaker-name">Sacha:</strong>  It's really nice to have that kind of</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2371.939000" data-stop="2376.923000">[dictionary] shortcut built into the way that I edit</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2376.963000" data-stop="2377.304000">things.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2377.444000" data-stop="2380.366000">All I know is I just hit <code>C-;</code> and</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2380.747000" data-stop="2382.048000">put in what it's supposed to be.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2382.588000" data-stop="2385.531000">Then it gets not only fixed in my current</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2385.571000" data-stop="2387.333000">file, but in the future as well.</span> <p></p><span class="audio-time caption" data-speaker="Linkarzu" data-start="2387.953000" data-stop="2390.873000"><strong class="speaker-name">Linkarzu:</strong>  Yeah, I need to work on</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="2390.874000" data-stop="2392.474000">my transcript game.</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="2393.214000" data-stop="2393.634000">Local models?</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="2394.075000" data-stop="2396.035000"><strong class="speaker-name">Sacha:</strong>  Oh, yeah, it's so cool.</span> <p></p><div class="transcript-heading"><span class="audio-time" data-start="2397.000000">39:57</span> <strong>Turning video transcripts into searchable blog posts</strong></div><p></p><span class="audio-time caption" data-speaker="Sacha" data-start="2397.355000" data-stop="2399.416000"><strong class="speaker-name">Sacha:</strong> One of the reasons why I love transcripts is that</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2400.216000" data-stop="2401.576000">it's so much easier to search, right?</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2402.056000" data-stop="2406.696000">Whenever I do an interview or whatever,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2406.697000" data-stop="2407.898000">the fun part for me is</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2407.958000" data-stop="2410.538000">actually going over the transcript and turning it</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2410.618000" data-stop="2413.119000">into something that I can use.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2413.719000" data-stop="2419.161000">Let me show you proj/yay-emacs/index.org.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2419.742000" data-stop="2423.825000">So these are, for example, my recent chats.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2424.526000" data-stop="2428.149000">In order to include the transcript in my blog</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2428.189000" data-stop="2430.591000">post about this, all I need to say is captions,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2431.152000" data-stop="2432.953000">and I give it the link to the transcript.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2433.414000" data-stop="2434.935000">And that turns into...</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2435.235000" data-stop="2436.036000">Hang on a second.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2436.116000" data-stop="2436.657000">Let me...</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2438.939000" data-stop="2440.520000">I should have a <code>C-. b</code> here.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2442.121000" data-stop="2442.722000">Was it this one?</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2445.305000" data-stop="2446.845000">Okay, so that turns into</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2446.846000" data-stop="2450.810000">this kind of blog post. Right?</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2451.771000" data-stop="2453.712000">You have the embedded video.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2454.033000" data-stop="2455.114000">You have the chapters.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2455.414000" data-stop="2458.557000">Clicking on the chapter link will advance to that.</span> <p></p><a href="https://sachachua.com/blog/2026/11/my-chat-with-linkarzu/Emacs%20for%20Everything%20-%20Why%20Sacha%20Chua%20Still%20Lives%20in%20Emacs%20After%2020+%20Years%20[Sw6sCMIypmk]-00-41-02-126.jpg"><img loading="lazy" target="_blank" src="https://sachachua.com/blog/2026/11/my-chat-with-linkarzu/Emacs%20for%20Everything%20-%20Why%20Sacha%20Chua%20Still%20Lives%20in%20Emacs%20After%2020+%20Years%20[Sw6sCMIypmk]-00-41-02-126.jpg" alt="image from video 00:41:02.126" data-time="00:41:02.126"></a><span class="audio-time caption" data-speaker="Sacha" data-start="2458.597000" data-stop="2460.298000"><strong class="speaker-name">Sacha:</strong> And then you have the whole transcript right here.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2462.109000" data-stop="2463.290000">with screenshots.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2464.591000" data-stop="2471.377000">So then people who don't want to listen through</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2471.437000" data-stop="2474.360000">an entire hour-long video can just jump to the</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2474.400000" data-stop="2477.082000">interesting parts themselves.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2477.102000" data-stop="2480.425000">I think these ones also go back to the video</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2480.485000" data-stop="2482.066000">up there, which someday I'm going to figure out</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2482.106000" data-stop="2483.627000">how to make a nice sticky display for.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2484.608000" data-stop="2487.731000">Clearly I need to fix that because it's not</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2487.811000" data-stop="2489.392000">actually on that thing over there.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2490.553000" data-stop="2493.837000">Theoretically, if I'm publishing it right, this</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2493.857000" data-stop="2496.440000">time I think I've been trying to host the videos</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2496.580000" data-stop="2498.582000">on the Internet Archive so people you have to</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2498.642000" data-stop="2500.604000">watch on YouTube if they don't want to.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2501.225000" data-stop="2504.949000">But yes, so the idea there is the video gives you</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2504.989000" data-stop="2506.811000">so much text that you can then share.</span> <p></p><span class="audio-time caption" data-speaker="Linkarzu" data-start="2507.411000" data-stop="2512.055000"><strong class="speaker-name">Linkarzu:</strong>  Yeah.  Or edit a video way faster.</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="2512.675000" data-stop="2515.498000">Before I came up with this automated thing for</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="2515.538000" data-stop="2517.759000">creating my clips, I used to do that in DaVinci,</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="2517.880000" data-stop="2519.981000">you know, because DaVinci has like a transcript</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="2520.121000" data-stop="2522.122000">feature and you can...</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="2522.123000" data-stop="2526.787000">but I'd just rather not touch it at all.</span> <p></p><div class="transcript-heading"><span class="audio-time" data-start="2527.000000">42:07</span> <strong>Demo: Saving and cropping screenshots from a video at a timestamp</strong></div><p></p><span class="audio-time caption" data-speaker="Sacha" data-start="2527.287000" data-stop="2530.650000"><strong class="speaker-name">Sacha:</strong>  Screenshots are super easy for me to do because</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2530.790000" data-stop="2531.550000">Emacs, of course.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2531.951000" data-stop="2533.912000">So like, for example, if I wanted here,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2535.654000" data-stop="2537.456000">If I wanted to take a different screenshot here,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2537.536000" data-stop="2539.617000">I can say save screenshot.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2540.318000" data-stop="2542.259000">And then it takes the screenshot</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2542.260000" data-stop="2543.101000">and it does that thing.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2543.181000" data-stop="2548.305000">If I wanted to crop it, I can say crop to</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2548.345000" data-stop="2550.828000">this and crop to that.</span> <p></p><span class="audio-time caption" data-speaker="Linkarzu" data-start="2551.828000" data-stop="2552.549000"><strong class="speaker-name">Linkarzu:</strong>  Oh, okay.</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="2555.053000" data-stop="2556.632000"><strong class="speaker-name">Sacha:</strong>  Actually I can say,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2556.633000" data-stop="2559.913000">just crop the screenshot.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2559.914000" data-stop="2561.394000">If I say screenshot crop,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2561.395000" data-stop="2562.455000">it will crop the screenshot.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2562.855000" data-stop="2563.774000">If I just say crop,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2563.775000" data-stop="2566.596000">it will crop the whole video to that section.</span> <p></p><span class="audio-time caption" data-speaker="Linkarzu" data-start="2567.796000" data-stop="2569.977000"><strong class="speaker-name">Linkarzu:</strong>  Oh, I see. I see what you're saying.</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="2570.017000" data-stop="2572.577000">That specific segment only, right?</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="2572.617000" data-stop="2575.777000"><strong class="speaker-name">Sacha:</strong>  Yeah. So text as a medium for video editing,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2575.778000" data-stop="2577.039000">it's actually really powerful.</span> <p></p><span class="audio-time caption" data-speaker="Linkarzu" data-start="2578.319000" data-stop="2579.279000"><strong class="speaker-name">Linkarzu:</strong>  Yeah, exactly.</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="2579.619000" data-stop="2580.119000">Yep, 100% agree.</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="2583.262000" data-stop="2585.524000">What other tricks do you want to show us there?</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="2585.704000" data-stop="2590.228000">What other things do you want to brag about your</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="2590.348000" data-stop="2592.891000">Emacs workflow?</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="2593.291000" data-stop="2594.052000"><strong class="speaker-name">Sacha:</strong>  It's really hard to say.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2596.758000" data-stop="2599.519000">I told you how doctor was the beginning of my of</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2599.559000" data-stop="2600.659000">my experience.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2601.579000" data-stop="2602.240000">Yes, yes.</span> <p></p><div class="transcript-heading"><span class="audio-time" data-start="2602.000000">43:22</span> <strong>Demo: M-x doctor with speech in and out
</strong></div><p></p><a href="https://sachachua.com/blog/2026/11/my-chat-with-linkarzu/Emacs%20for%20Everything%20-%20Why%20Sacha%20Chua%20Still%20Lives%20in%20Emacs%20After%2020+%20Years%20[Sw6sCMIypmk]-00-43-59-345.jpg"><img loading="lazy" target="_blank" src="https://sachachua.com/blog/2026/11/my-chat-with-linkarzu/Emacs%20for%20Everything%20-%20Why%20Sacha%20Chua%20Still%20Lives%20in%20Emacs%20After%2020+%20Years%20[Sw6sCMIypmk]-00-43-59-345.jpg" alt="image from video 00:43:59.345" data-time="00:43:59.345"></a><span class="audio-time caption" data-speaker="Sacha" data-start="2602.260000" data-stop="2603.080000"><strong class="speaker-name">Sacha:</strong> So this is a doctor.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2603.120000" data-stop="2607.221000">You can say things like, I'm feeling happy today,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2607.421000" data-stop="2608.402000">as I said, right?</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2609.182000" data-stop="2612.763000">And then it uses that to generate its response.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2612.883000" data-stop="2614.503000">But I have this conversation mode.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2616.924000" data-stop="2620.665000">Yes, especially when I get to tinker with Emacs.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2622.406000" data-stop="2625.447000">And then... What happened when you get to tinker</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2625.467000" data-stop="2626.047000">with Emacs?</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2627.215000" data-stop="2629.036000">Does the TTS come through?</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2629.256000" data-stop="2631.036000">Yeah, it does.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2631.216000" data-stop="2634.057000">The reason I did this was because after I</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2634.097000" data-stop="2636.437000">showed off my vocal commands to Emacs Paris, they</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2636.457000" data-stop="2638.238000">were like, oh, you know, what if you can have a</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2638.278000" data-stop="2638.898000">conversation?</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2639.338000" data-stop="2641.418000">So I was like, okay, let's come back full circle</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2641.458000" data-stop="2643.919000">to the thing that got me curious about Emacs in</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2643.939000" data-stop="2647.220000">the first place and voice enable that.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2647.580000" data-stop="2649.560000">And then, of course, this is a very old AI.</span> <p></p><div class="transcript-heading"><span class="audio-time" data-start="2649.000000">44:09</span> <strong>Demo: speech-enabled conversation with a large language model in French</strong></div><p></p><span class="audio-time caption" data-speaker="Sacha" data-start="2649.580000" data-stop="2651.541000"><strong class="speaker-name">Sacha:</strong> It's much more interesting if you apply it to the</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2651.661000" data-stop="2652.401000">new models.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2652.981000" data-stop="2656.282000">So if I want to, for example, practice French.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2657.522000" data-stop="2661.843000">This is one of my voice commands here.</span> <p></p><span class="audio-time caption" data-speaker="Computer" data-start="2665.044000" data-stop="2666.605000"><strong class="speaker-name">Computer:</strong>  "I would appreciate it if you would continue."</span> <span class="audio-time caption" data-speaker="Computer" data-start="2667.565000" data-stop="2668.225000">Okay, here we are.</span> <span class="audio-time caption" data-speaker="Computer" data-start="2668.865000" data-stop="2673.447000">Then I might say, "Je parle avec Linkarzu."</span> <span class="audio-time caption" data-speaker="Computer" data-start="2674.027000" data-stop="2677.208000">And then I think, there you go.</span> <span class="audio-time caption" data-speaker="Computer" data-start="2678.968000" data-stop="2680.889000">It will eventually, maybe?</span> <span class="audio-time caption" data-speaker="Computer" data-start="2683.047000" data-stop="2685.611000"></span> <span class="audio-time caption" data-speaker="Computer" data-start="2685.911000" data-stop="2688.354000">C'est toujours enrichissant de partager, toucher</span> <span class="audio-time caption" data-speaker="Computer" data-start="2688.394000" data-stop="2689.576000">ses passions en direct.</span> <span class="audio-time caption" data-speaker="Computer" data-start="2689.836000" data-stop="2692.159000">Quels sujets abordez-vous ensemble aujourd'hui ?</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="2692.649000" data-stop="2693.009000"><strong class="speaker-name">Sacha:</strong>  All right.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2693.749000" data-stop="2697.491000">So this now uses a large language model.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2697.531000" data-stop="2701.512000">This one uses Gemini because gptel makes it super</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2701.552000" data-stop="2703.833000">easy to plug in different models.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2704.113000" data-stop="2707.194000">So, if I wanted to practice French but I don't</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2707.234000" data-stop="2710.815000">necessarily want to bug people because I take a</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2710.855000" data-stop="2712.636000">while to think about my words and sometimes I'm</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2712.656000" data-stop="2714.776000">looking stuff up, then at least I can simulate</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2714.796000" data-stop="2715.837000">that kind of conversation.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2715.897000" data-stop="2718.437000">There are gazillion apps that will sell you a</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2718.477000" data-stop="2719.578000">subscription to do this.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2720.318000" data-stop="2722.760000">But because it's here and it's plain text and I</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2722.800000" data-stop="2725.442000">can control it, then I can more easily go through</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2725.482000" data-stop="2729.684000">it afterwards and analyze the vocabulary or</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2731.265000" data-stop="2733.287000">correct the things that it didn't get right,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2733.427000" data-stop="2736.309000">which I know is because of the speech recognition</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2736.369000" data-stop="2737.870000">and not because of me or whatever.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2739.111000" data-stop="2741.292000">So it's so much fun to be able to tinker with</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2741.352000" data-stop="2743.494000">Emacs to do what I wanted to do.</span> <p></p><span class="audio-time caption" data-speaker="Linkarzu" data-start="2744.537000" data-stop="2746.658000"><strong class="speaker-name">Linkarzu:</strong>  Yeah, pretty powerful.</span> <p></p><div class="transcript-heading"><span class="audio-time" data-start="2746.000000">45:46</span> <strong>Linux setup: XFCE, X11 and Emacs on top</strong></div><p></p><span class="audio-time caption" data-speaker="Linkarzu" data-start="2746.878000" data-stop="2749.919000"><strong class="speaker-name">Linkarzu:</strong> I have a question about your operating system.</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="2750.419000" data-stop="2752.280000">What did you go with?</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="2752.520000" data-stop="2753.621000">I see this is Linux.</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="2753.821000" data-stop="2755.221000">I would assume it's Linux, right?</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="2755.582000" data-stop="2757.803000">Of course, it must be Linux.</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="2758.163000" data-stop="2759.743000"><strong class="speaker-name">Sacha:</strong>  This is Linux.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2759.983000" data-stop="2763.025000">I used to be in Kubuntu because I liked KDE, but</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2763.065000" data-stop="2767.227000">when I recently upgraded to the latest version of</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2767.247000" data-stop="2769.909000">Ubuntu, then I broke everything. I was</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2769.949000" data-stop="2772.351000">like, okay, this Wayland stuff is getting in the</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2772.391000" data-stop="2774.292000">way of the automation that I like doing.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2774.813000" data-stop="2777.735000">So I'm back to X11. I was like, hey, let's try</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2777.775000" data-stop="2778.815000">something a little more lightweight.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2778.855000" data-stop="2782.098000">This is the XFCE Window Manager at the moment.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2782.278000" data-stop="2783.278000">I'm still settling into it.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2783.298000" data-stop="2784.639000">There are lots of little things that I'm learning</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2784.659000" data-stop="2786.961000">how to configure, but yeah, just Linux.</span> <p></p><span class="audio-time caption" data-speaker="Linkarzu" data-start="2787.648000" data-stop="2789.870000"><strong class="speaker-name">Linkarzu:</strong>  Okay, Linux, Kubuntu.</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="2790.050000" data-stop="2792.192000">Why did you decide to go with that distro?</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="2792.473000" data-stop="2795.816000">Is there a specific reason or no?</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="2796.036000" data-stop="2798.778000"><strong class="speaker-name">Sacha:</strong>  No, it's more like, well, my husband</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2798.818000" data-stop="2802.081000">happened to have an install USB lying around.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2804.444000" data-stop="2810.049000">I used to be on Debian unstable,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2811.858000" data-stop="2814.919000">and then I switched to Ubuntu. It's just one</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2814.939000" data-stop="2816.560000">of those things that I haven't bothered enough</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2816.600000" data-stop="2819.982000">about to change, on account of changing requires</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2820.022000" data-stop="2822.823000">me to go reinstall a lot of things</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2822.824000" data-stop="2824.824000">and then get my Emacs working the way</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2824.825000" data-stop="2825.966000">that I want it to do again.</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="2826.526000" data-stop="2829.648000"><strong class="speaker-name">Sacha:</strong> At the moment, Linux is the library that Emacs</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2829.708000" data-stop="2830.768000">uses to talk to my hardware.</span> <p></p><span class="audio-time caption" data-speaker="Linkarzu" data-start="2832.118000" data-stop="2834.119000"><strong class="speaker-name">Linkarzu:</strong>  Yeah, it's just the base, right?</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="2834.359000" data-stop="2836.761000">You just want something where you can run Emacs</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="2836.961000" data-stop="2837.561000">on, right?</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="2837.941000" data-stop="2838.242000"><strong class="speaker-name">Sacha:</strong>  Yes.</span> <p></p><div class="transcript-heading"><span class="audio-time" data-start="2838.000000">47:18</span> <strong>Automating other apps with Emacs; X11 versus Wayland for automation</strong></div><p></p><span class="audio-time caption" data-speaker="Sacha" data-start="2838.682000" data-stop="2840.683000"><strong class="speaker-name">Sacha:</strong> I want something where I can let Emacs</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2840.723000" data-stop="2842.984000">control as much of my computer as possible.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2843.485000" data-stop="2847.967000">So for example, when I set up the BigBlueButton</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2848.007000" data-stop="2850.729000">web conference rooms for EmacsConf, I do that in</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2850.809000" data-stop="2853.810000">Firefox because I can have Emacs control Firefox</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2854.151000" data-stop="2856.192000">so that it can click through the different</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2856.632000" data-stop="2859.734000">screens and set all the moderator access codes or</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2859.754000" data-stop="2861.415000">whatever else and confirm the settings.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2861.915000" data-stop="2863.597000">I don't have to do that kind of clicking and</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2863.617000" data-stop="2864.337000">typing myself.</span> <p></p><span class="audio-time caption" data-speaker="Linkarzu" data-start="2865.598000" data-stop="2865.918000"><strong class="speaker-name">Linkarzu:</strong>  Okay.</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="2866.239000" data-stop="2869.802000">And you mentioned that you switched back to X11</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="2869.862000" data-stop="2872.584000">because Wayland was getting in the way.</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="2872.924000" data-stop="2874.726000">Can you share a little bit more about that?</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="2874.746000" data-stop="2875.767000">I'm not a Linux user.</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="2876.087000" data-stop="2877.228000">I'm a Mac OS user.</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="2877.508000" data-stop="2880.831000">But I know about the words that you're mentioning</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="2880.851000" data-stop="2883.733000">because all of the guests that I bring over talk</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="2883.753000" data-stop="2886.356000">about it and I'm like, okay, so they're like, okay, got it.</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="2886.376000" data-stop="2887.637000">So what happened there?</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="2888.973000" data-stop="2891.318000"><strong class="speaker-name">Sacha:</strong>  I think it's just a different security</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2891.358000" data-stop="2891.999000">model, right?</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2892.039000" data-stop="2893.722000">So for Wayland, which is one of the</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2895.487000" data-stop="2898.968000">like the window system compositors(?),</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2899.048000" data-stop="2901.969000">how stuff shows up on your screen.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2902.929000" data-stop="2905.870000">The way that it's conceptualized is every</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2905.970000" data-stop="2908.350000">application is sandboxed, so it shouldn't be able</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2908.370000" data-stop="2910.711000">to mess around with other applications' windows,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2911.231000" data-stop="2912.612000">which is more secure. Great.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2913.052000" data-stop="2915.152000">But I actually do want my Emacs to mess around</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2915.172000" data-stop="2916.352000">with other people's windows,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2916.353000" data-stop="2917.192000">and I want things to be...</span> <p></p><span class="audio-time caption" data-speaker="Linkarzu" data-start="2917.193000" data-stop="2918.633000"><strong class="speaker-name">Linkarzu:</strong>  Emacs is the king, right?</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="2918.733000" data-stop="2920.814000">Emacs has to be able to do anything</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="2920.874000" data-stop="2921.654000">it wants, right?</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="2922.054000" data-stop="2922.494000"><strong class="speaker-name">Sacha:</strong>  Yeah, yeah.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2922.634000" data-stop="2924.274000">And I want that to happen without</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2924.275000" data-stop="2925.376000">a gazillion prompts.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2925.836000" data-stop="2927.717000">"Are you sure you want to let..."</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2927.718000" data-stop="2930.218000">Yes, I want it to do the typing</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2930.219000" data-stop="2933.081000">so that I don't have to do the typing.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2935.202000" data-stop="2936.743000">So yeah, it's pretty good.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2937.684000" data-stop="2941.567000">Maybe someday X11 will totally shut down and then</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2941.607000" data-stop="2942.287000">I'll have to move.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2942.347000" data-stop="2944.588000">But I can give people a few more years or</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2944.608000" data-stop="2946.830000">whatever to figure out the automation and</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2946.870000" data-stop="2948.851000">accessibility parts that I would need in order to</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2948.891000" data-stop="2949.992000">do that kind of automation.</span> <p></p><span class="audio-time caption" data-speaker="Linkarzu" data-start="2950.906000" data-stop="2951.867000"><strong class="speaker-name">Linkarzu:</strong>  Okay, okay.</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="2952.367000" data-stop="2954.989000">So you're in Kubuntu, you're on X11.</span> <p></p><div class="transcript-heading"><span class="audio-time" data-start="2955.000000">49:15</span> <strong>Just a regular laptop keyboard</strong></div><p></p><span class="audio-time caption" data-speaker="Linkarzu" data-start="2955.009000" data-stop="2958.070000"><strong class="speaker-name">Linkarzu:</strong> Then I also wanted to ask you, do you use like</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="2958.371000" data-stop="2961.532000">one of these special keyboards that all the cool</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="2961.573000" data-stop="2963.754000">kids use or are you just a normal keyboard?</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="2964.745000" data-stop="2965.786000"><strong class="speaker-name">Sacha:</strong>  I'm just on my laptop.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2965.806000" data-stop="2967.726000">Yeah. I'm going to tilt the screen down</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2967.727000" data-stop="2968.848000">and mess things up.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2968.948000" data-stop="2970.149000">See, that's it.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2970.309000" data-stop="2971.170000">That's the thing.</span> <p></p><span class="audio-time caption" data-speaker="Linkarzu" data-start="2971.510000" data-stop="2973.791000"><strong class="speaker-name">Linkarzu:</strong>  The laptop keyboard.</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="2974.352000" data-stop="2977.634000">Has it ever caused any issues for you?</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="2977.854000" data-stop="2981.317000">Like hand pain, wrist pain or something like that?</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="2982.423000" data-stop="2984.024000"><strong class="speaker-name">Sacha:</strong>  No, the only wrist pain I got was from</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2984.064000" data-stop="2985.945000">lifting my daughter the wrong way, which gave me</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2985.985000" data-stop="2987.605000">the de Quervain's tenosynovitis.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2987.665000" data-stop="2990.245000">Do not pick up your kids without</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2990.246000" data-stop="2991.467000">paying attention to how you do it.</span> <p></p><span class="audio-time caption" data-speaker="Linkarzu" data-start="2991.487000" data-stop="2992.166000"><strong class="speaker-name">Linkarzu:</strong>  Because you hold them</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="2992.167000" data-stop="2992.767000">like this, right?</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="2992.827000" data-stop="2994.368000">That happened to my wife as well.</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="2994.568000" data-stop="2996.589000"><strong class="speaker-name">Sacha:</strong>  Yeah, yeah, yeah.</span> <p></p><div class="transcript-heading"><span class="audio-time" data-start="2996.000000">49:56</span> <strong>Using Emacspeak to deal with laptop screen failure</strong></div><p></p><span class="audio-time caption" data-speaker="Sacha" data-start="2996.749000" data-stop="2999.589000"><strong class="speaker-name">Sacha:</strong> But I've been interested in accessibility</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2999.590000" data-stop="3000.291000">for a while.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3000.811000" data-stop="3002.571000">Also partially because of...</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3004.993000" data-stop="3006.594000">So, okay, so here's what happened.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3007.034000" data-stop="3009.655000">In about third or fourth year of</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3009.755000" data-stop="3012.517000">university, I was also on a laptop, and my</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3012.597000" data-stop="3014.978000">screen stopped working occasionally. It would</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3014.998000" data-stop="3017.039000">glitch out, and I could not see.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3017.740000" data-stop="3019.441000">I mean, it would be super low contrast, and you</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3019.461000" data-stop="3021.082000">could see things if you look at it from the right</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3021.222000" data-stop="3024.424000">angle, but it would just glitch out like that.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3024.504000" data-stop="3026.564000">I could plug in an external monitor, sure,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3026.565000" data-stop="3028.585000">but I can't plug in an external monitor</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3028.586000" data-stop="3029.486000">in the middle of class.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3029.527000" data-stop="3031.247000">I'm not going to lug a monitor around, right?</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3032.559000" data-stop="3035.723000">And while I did experiment with a head-mounted</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3035.763000" data-stop="3038.166000">display as part of my curiosity into wearable</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3038.206000" data-stop="3041.750000">computing, that is also fairly obvious</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3041.751000" data-stop="3042.872000">and large and awkward.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3044.714000" data-stop="3046.717000">You know that smart glasses video that you had?</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3046.777000" data-stop="3049.000000">Okay, now they can pass off as glasses, right?</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3049.060000" data-stop="3051.523000">But back then it was a huge Borg-like thing.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3052.959000" data-stop="3054.860000">But fortunately, Emacs has Emacspeak.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3055.401000" data-stop="3059.205000">So I was using speech synthesis to code and to</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3059.225000" data-stop="3061.887000">take notes and do all those other things, which</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3061.927000" data-stop="3062.768000">was fantastic.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3062.868000" data-stop="3063.869000">It actually worked.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3064.009000" data-stop="3065.751000">It worked so well that I was like, you know what?</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3065.771000" data-stop="3068.594000">I could use this to listen to manuals and write</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3068.674000" data-stop="3070.596000">notes and look up things while I'm walking around</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3070.876000" data-stop="3072.658000">because all I need is a portable keyboard.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3073.158000" data-stop="3074.540000">They make one-handed keyboards.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3075.680000" data-stop="3080.281000">And a pair of earphones, and nobody can tell that</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3080.361000" data-stop="3083.262000">I'm actually reading, well, having read to me</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3084.002000" data-stop="3086.463000">some kind of... This is me going</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3086.483000" data-stop="3089.262000">through the Emacs manual</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3089.263000" data-stop="3090.384000">while walking around, right?</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3092.284000" data-stop="3093.364000">Anyway, so, accessibility.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3093.884000" data-stop="3096.145000">The text-to-speech part is very interesting</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3096.185000" data-stop="3098.025000">and there are a lot of people who are using Emacs</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3098.125000" data-stop="3100.786000">even if they're blind or visually-impaired.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3100.846000" data-stop="3103.187000">all this stuff is actually surprisingly useful</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3103.267000" data-stop="3104.347000">also for people who aren't.</span> <p></p><div class="transcript-heading"><span class="audio-time" data-start="3105.000000">51:45</span> <strong>Anticipating physical and cognitive challenges</strong></div><p></p><span class="audio-time caption" data-speaker="Sacha" data-start="3105.392000" data-stop="3106.992000"><strong class="speaker-name">Sacha:</strong> The speech recognition stuff</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3106.993000" data-stop="3108.514000">I think will be very helpful</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3108.515000" data-stop="3110.256000">in case something happens to my hands.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3110.296000" data-stop="3112.818000">People have accidents or people get sick.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3112.858000" data-stop="3115.100000">My mom has Parkinson's, so her tremors make it</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3115.140000" data-stop="3117.042000">really hard for her to type or tap things.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3117.602000" data-stop="3121.446000">It's amazing that we can keep modifying the</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3121.486000" data-stop="3125.208000">tools to make this kind of speech input,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3125.209000" data-stop="3126.930000">voice commands a lot easier.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3128.992000" data-stop="3132.354000">There's also physical decline and there's</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3132.414000" data-stop="3133.314000">cognitive decline.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3133.814000" data-stop="3135.955000">I've had to deal with brain fog as part of the</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3135.995000" data-stop="3137.776000">sleep deprivation of early parenting.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3138.276000" data-stop="3141.238000">So I know my ability to memorize things and my</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3141.278000" data-stop="3144.739000">ability to type while I'm talking is nowhere near</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3145.620000" data-stop="3148.821000">what I would have in an ideal world.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3149.582000" data-stop="3152.263000">It's great to be able to modify my</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3152.483000" data-stop="3154.984000">computing environment to adapt to these changes</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3155.064000" data-stop="3156.505000">and to the changes that I anticipate.</span> <p></p><div class="transcript-heading"><span class="audio-time" data-start="3157.000000">52:37</span> <strong>Describing Emacspeak</strong></div><p></p><span class="audio-time caption" data-speaker="Linkarzu" data-start="3157.368000" data-stop="3159.329000"><strong class="speaker-name">Linkarzu:</strong>  Oh, and you mentioned Emacspeak.</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="3159.510000" data-stop="3160.670000">So what is it then?</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="3160.710000" data-stop="3164.473000">It's just accessibility option in Emacs that</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="3164.593000" data-stop="3167.675000">reads your screen or something?</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="3168.936000" data-stop="3170.057000"><strong class="speaker-name">Sacha:</strong>  It can read a whole thing.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3170.137000" data-stop="3172.298000">It can read character by character to give you</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3172.418000" data-stop="3174.680000">audio feedback.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3174.840000" data-stop="3177.022000">You can go by word or by sentence as you're</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3177.062000" data-stop="3178.162000">navigating around the text.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3178.523000" data-stop="3181.785000">I don't have it set up in this one, but I think I</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3181.805000" data-stop="3184.207000">have a different profile where I have it set up,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3184.247000" data-stop="3188.268000">because by default, when you launch it,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3188.269000" data-stop="3189.950000">it reads all of Emacs to you.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3190.430000" data-stop="3192.131000">It doesn't just say the text.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3192.572000" data-stop="3195.634000">It will also give you auditory icons.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3195.734000" data-stop="3198.195000">So for example, if something is bold, you can</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3198.255000" data-stop="3200.397000">have it say it in a different voice.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3200.497000" data-stop="3203.819000">If something is italicized, you can have it say</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3203.859000" data-stop="3205.460000">it in a higher pitch or something else.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3206.120000" data-stop="3208.562000">If there are icons, it can play sounds instead of</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3208.602000" data-stop="3209.302000">those icons.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3209.782000" data-stop="3212.103000">So it gives people who are blind</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3212.104000" data-stop="3213.545000">this much richer experience.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3214.585000" data-stop="3218.548000">I love the fact that Emacs has these things</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3218.608000" data-stop="3220.330000">with all these different kinds of needs.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3220.990000" data-stop="3222.171000">I've used it.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3222.271000" data-stop="3222.932000">It's great.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3223.352000" data-stop="3226.715000">I found that when I was using it, I could listen</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3226.755000" data-stop="3229.997000">to things at 300 words a minute or even higher,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3230.117000" data-stop="3231.318000">and I would still understand.</span> <p></p><div class="transcript-heading"><span class="audio-time" data-start="3231.000000">53:51</span> <strong>Linkarzu adjusts his electric sitting/standing desk</strong></div><p></p><span class="audio-time caption" data-speaker="Linkarzu" data-start="3231.338000" data-stop="3232.880000"><strong class="speaker-name">Linkarzu:</strong>  I'm sorry.</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="3232.960000" data-stop="3236.943000">It's just my desk going down because I try to...</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="3237.103000" data-stop="3240.405000"><strong class="speaker-name">Sacha:</strong>  I thought you were like genuflecting in</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3240.445000" data-stop="3241.987000">front of Emacs is awesome.</span> <p></p><span class="audio-time caption" data-speaker="Linkarzu" data-start="3244.472000" data-stop="3248.239000"><strong class="speaker-name">Linkarzu:</strong>  Yeah, I just try to, you know, adopt</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="3248.419000" data-stop="3250.143000">different positions throughout the day.</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="3250.824000" data-stop="3251.305000">There's a question.</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="3251.325000" data-stop="3251.986000">Oh yeah, for sure.</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="3252.607000" data-stop="3253.770000">You do it as well?</span> <p></p><div class="transcript-heading"><span class="audio-time" data-start="3253.000000">54:13</span> <strong>Parenting and fragmented time</strong></div><p></p><span class="audio-time caption" data-speaker="Linkarzu" data-start="3253.870000" data-stop="3255.052000"><strong class="speaker-name">Linkarzu:</strong> How long do you spend sitting?</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="3255.172000" data-stop="3256.956000">Like, do you spend sitting most of the day?</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="3258.167000" data-stop="3259.788000"><strong class="speaker-name">Sacha:</strong>  Most of the time, actually, I have to go</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3259.848000" data-stop="3261.209000">help out the kiddo, right?</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3262.150000" data-stop="3264.612000">So that keeps me away from the computer, which is</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3264.712000" data-stop="3267.715000">one of the reasons why I've had to learn how to</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3267.775000" data-stop="3269.796000">deal with very fragmented time.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3270.637000" data-stop="3272.719000">Not much time sitting in front of the computer to</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3272.779000" data-stop="3273.619000">focus on something.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3273.699000" data-stop="3276.501000">Everything that I want to do has to be something</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3276.521000" data-stop="3278.542000">that I can do in 5, 10, 15 minutes,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3278.543000" data-stop="3279.444000">maybe 30 minutes.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3279.964000" data-stop="3284.706000">At the moment, she's fairly independent, but I</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3284.746000" data-stop="3286.566000">can still be interrupted by somebody who needs</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3286.626000" data-stop="3289.287000">breakfast or somebody who needs a hug and</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3289.307000" data-stop="3289.727000">whatever.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3289.907000" data-stop="3292.048000">So I need to be able to capture a thought, get it</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3292.088000" data-stop="3294.048000">out of the way and work on things in tiny chunks.</span> <p></p><span class="audio-time caption" data-speaker="Linkarzu" data-start="3295.089000" data-stop="3297.809000"><strong class="speaker-name">Linkarzu:</strong>  I've seen my wife, how she handles</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="3297.869000" data-stop="3298.950000">things and I'm like, man...</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="3299.690000" data-stop="3302.711000">It's a lot of mental overhead.</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="3304.952000" data-stop="3308.593000">That's a whole other conversation.</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="3309.234000" data-stop="3312.255000">Men are the ones that make progress, build their</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="3312.515000" data-stop="3313.774000">professional careers,</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="3313.775000" data-stop="3317.177000">and wives usually take care of the kids.</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="3319.537000" data-stop="3320.798000">It's a huge sacrifice.</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="3320.858000" data-stop="3321.778000">What do you think?</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="3321.798000" data-stop="3323.219000">How do you feel about all that?</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="3324.162000" data-stop="3327.083000"><strong class="speaker-name">Sacha:</strong>  I signed up for it totally knowing what</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3327.143000" data-stop="3328.023000">I was getting into.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3328.323000" data-stop="3330.304000">I was like, okay, there's a lot involved in being</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3330.364000" data-stop="3331.844000">the default parent, right?</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3331.864000" data-stop="3334.985000">The primary person who patches up [owies]...</span> <p></p><div class="transcript-heading"><span class="audio-time" data-start="3335.000000">55:35</span> <strong>Org Mode helps me stay sane</strong></div><p></p><span class="audio-time caption" data-speaker="Sacha" data-start="3335.965000" data-stop="3339.186000"><strong class="speaker-name">Sacha:</strong> But I think partly because of Org Mode and Emacs,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3339.866000" data-stop="3341.986000">it's been very helpful to me</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3341.987000" data-stop="3344.207000">to be able to say, "Yeah, that's a great idea.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3344.267000" data-stop="3346.448000">I'm going to write that down in my phone or on my</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3346.488000" data-stop="3349.609000">computer. Usually on my phone back in early</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3349.669000" data-stop="3351.849000">parenting days, because I'm away from my computer,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3351.889000" data-stop="3353.630000">I'm at the playground or whatever else, right?</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3354.150000" data-stop="3357.031000">So the fact that I can capture a note</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3357.032000" data-stop="3359.352000">into Org Mode and then know that</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3359.353000" data-stop="3360.512000">I can get back to it</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3360.513000" data-stop="3362.573000">in several years when I have more free time</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3362.574000" data-stop="3364.674000">or that Org Mode can keep track</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3364.675000" data-stop="3365.636000">of the deadlines that</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3365.696000" data-stop="3367.577000">might be a year from now, like when I need to</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3367.957000" data-stop="3370.858000">renew my passport and just have that surface the</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3370.918000" data-stop="3373.059000">reminder at the right time, with the notes on</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3373.099000" data-stop="3375.420000">exactly what I need to do and the links to</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3375.440000" data-stop="3376.341000">wherever I need to go.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3376.801000" data-stop="3379.022000">I think that has been very, very helpful for me.</span> <p></p><div class="transcript-heading"><span class="audio-time" data-start="3380.000000">56:20</span> <strong>Capturing tasks while away from the computer: Linkarzu uses speech</strong></div><p></p><span class="audio-time caption" data-speaker="Linkarzu" data-start="3380.663000" data-stop="3381.643000"><strong class="speaker-name">Linkarzu:</strong>  Good point that you brought up.</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="3381.663000" data-stop="3384.544000">Quite a few days ago, I just</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="3384.624000" data-stop="3388.425000">came up... Well, the clanker came up with a method,</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="3388.426000" data-stop="3391.807000">we could say, of me just tapping it, saying something</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="3391.847000" data-stop="3395.148000">to it, and when I come to my computer, the task is</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="3395.208000" data-stop="3396.889000">there in Neovim. Right?</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="3397.509000" data-stop="3401.031000">Because I forget. I'm outside. I have</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="3401.071000" data-stop="3403.331000">to remember this. I'm not going to remember</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="3403.371000" data-stop="3404.731000">it. It's just going to go away.</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="3404.732000" data-stop="3406.993000">So I do it on the phone, shows up in Neovim,</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="3407.833000" data-stop="3409.975000">and it's a huge benefit.</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="3410.155000" data-stop="3412.317000">How do you do it?</span> <p></p><div class="transcript-heading"><span class="audio-time" data-start="3412.000000">56:52</span> <strong>I use Orgzly Revived, sometimes with dictation</strong></div><p></p><span class="audio-time caption" data-speaker="Sacha" data-start="3412.838000" data-stop="3415.540000"><strong class="speaker-name">Sacha:</strong>  For my phone, I often just put it into</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3415.560000" data-stop="3418.023000">Orgzly Revived, sometimes with dictation,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3418.063000" data-stop="3419.984000">sometimes just typing in a few keywords to help</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3420.024000" data-stop="3420.545000">me remember.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3421.005000" data-stop="3422.547000">A lot of times it's, you know, if I'm coming</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3422.607000" data-stop="3423.346000">across...</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3423.347000" data-stop="3424.689000">Orgzly Revived?</span> <p></p><span class="audio-time caption" data-speaker="Linkarzu" data-start="3425.069000" data-stop="3425.449000"><strong class="speaker-name">Linkarzu:</strong>  What is it?</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="3425.930000" data-stop="3428.192000"><strong class="speaker-name">Sacha:</strong>  O-G-R-Z-L-Y. [clearly can't spell on stream]</span> <p></p><span class="audio-time caption" data-speaker="Linkarzu" data-start="3428.212000" data-stop="3430.774000"><strong class="speaker-name">Linkarzu:</strong>  If you want to show it, I don't know.</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="3432.456000" data-stop="3433.477000"><strong class="speaker-name">Sacha:</strong>  It's on my phone.</span> <p></p><span class="audio-time caption" data-speaker="Linkarzu" data-start="3436.760000" data-stop="3438.393000"><strong class="speaker-name">Linkarzu:</strong>  Is it like an app?</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="3438.960000" data-stop="3441.139000"><strong class="speaker-name">Sacha:</strong>  Yeah. So I use an Android phone.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3441.379000" data-stop="3444.720000">Now there are actually a gazillion apps that</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3445.060000" data-stop="3447.321000">talk Org Mode and can synchronize with your files</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3447.361000" data-stop="3447.841000">and whatever.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3448.281000" data-stop="3451.162000">I'm currently still just using Orgzly Revived as</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3451.202000" data-stop="3453.222000">an app on my phone with Syncthing.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3453.862000" data-stop="3457.303000">Syncthing being the free synchronization that I</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3457.343000" data-stop="3459.744000">can use to just get my files back and forth.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3461.133000" data-stop="3463.215000">But there are lots of other alternatives, so you</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3463.235000" data-stop="3464.576000">can find something that fits you well.</span> <p></p><div class="transcript-heading"><span class="audio-time" data-start="3465.000000">57:45</span> <strong>I want to get the hang of Emacs's Android port</strong></div><p></p><span class="audio-time caption" data-speaker="Sacha" data-start="3465.076000" data-stop="3467.899000"><strong class="speaker-name">Sacha:</strong> I am very tempted to figure out, finally, how to</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3468.099000" data-stop="3471.401000">use Emacs native, because there's an Emacs port</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3471.482000" data-stop="3472.142000">for Android.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3473.183000" data-stop="3475.725000">Especially if I can get my speech synthesis and</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3475.785000" data-stop="3477.466000">speech recognition working on it, I think that</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3477.486000" data-stop="3480.069000">would be amazing to have this kind of</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3480.189000" data-stop="3482.451000">conversation with Emacs along the way.</span> <p></p><div class="transcript-heading"><span class="audio-time" data-start="3482.000000">58:02</span> <strong>Demo: Speech commands on my computer: Remind me...
</strong></div><p></p><a href="https://sachachua.com/blog/2026/11/my-chat-with-linkarzu/Emacs%20for%20Everything%20-%20Why%20Sacha%20Chua%20Still%20Lives%20in%20Emacs%20After%2020+%20Years%20[Sw6sCMIypmk]-00-58-36-054.jpg"><img loading="lazy" target="_blank" src="https://sachachua.com/blog/2026/11/my-chat-with-linkarzu/Emacs%20for%20Everything%20-%20Why%20Sacha%20Chua%20Still%20Lives%20in%20Emacs%20After%2020+%20Years%20[Sw6sCMIypmk]-00-58-36-054.jpg" alt="image from video 00:58:36.054" data-time="00:58:36.054"></a><span class="audio-time caption" data-speaker="Sacha" data-start="3482.871000" data-stop="3484.652000"><strong class="speaker-name">Sacha:</strong> And then on the computer, if I need to capture</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3484.692000" data-stop="3486.554000">something quickly, ooh, I can show you this one.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3487.555000" data-stop="3488.035000">Let's see.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3490.397000" data-stop="3492.998000">"Remind me to put together a quick description of</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3493.278000" data-stop="3496.418000">my to-do workflow."</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3498.399000" data-stop="3501.759000">It will take that note and it will stick it</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3501.919000" data-stop="3503.660000">into an inbox.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3504.380000" data-stop="3511.301000">Here I'm in live mode so my public tasks don't</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3511.341000" data-stop="3512.961000">get mixed in with my private tasks.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3513.001000" data-stop="3514.682000">If I do an agenda, it should just be limited to</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3514.702000" data-stop="3515.322000">the public stuff.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3516.042000" data-stop="3519.844000">Anyway, so the "Remind me" created the note for me.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3520.045000" data-stop="3525.148000">It includes the audio in case the speech</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3525.188000" data-stop="3526.769000">recognition didn't get anything right.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3527.169000" data-stop="3529.490000">It includes a screenshot so that in case I'm</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3529.550000" data-stop="3531.552000">doing this from a different application, because</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3531.592000" data-stop="3534.133000">my keyboard shortcut is global, I can still see</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3534.153000" data-stop="3537.075000">the context and go find that sort of stuff.</span> <p></p><span class="audio-time caption" data-speaker="Linkarzu" data-start="3539.208000" data-stop="3541.470000"><strong class="speaker-name">Linkarzu:</strong>  Quite interesting, quite advanced,</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="3541.630000" data-stop="3542.411000">quite complex.</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="3542.792000" data-stop="3545.935000">It must have taken you months, years to set all</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="3545.975000" data-stop="3546.536000">of this up.</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="3547.317000" data-stop="3548.819000"><strong class="speaker-name">Sacha:</strong>  As I said, I can only work in like 30</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3548.859000" data-stop="3549.399000">minutes or so.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3549.459000" data-stop="3553.204000">So this one, I think was a 10, 15 minute hack.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3556.308000" data-stop="3558.069000">Little bits of time.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3558.169000" data-stop="3560.050000">This link here to whatever I was looking at, you</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3560.070000" data-stop="3561.991000">got that free from Org Mode.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3562.091000" data-stop="3565.114000">This thing here with the recording, I got that</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3565.174000" data-stop="3567.815000">because I already wanted to save my recordings</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3567.875000" data-stop="3568.176000">anyway.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3568.196000" data-stop="3570.257000">So it was just a matter of adding a link to the</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3570.397000" data-stop="3571.678000">file name that I already had saved.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3572.258000" data-stop="3574.680000">This screenshot, you know, another five minutes</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3575.040000" data-stop="3577.482000">because I already had Spectacle capturing the</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3577.502000" data-stop="3578.963000">screenshot of both screens.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3580.063000" data-stop="3581.364000">So it's fairly simple.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3582.025000" data-stop="3584.646000">It will even work for things like, remind me next</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3584.686000" data-stop="3586.547000">month to follow up with Linkarzu to see whether</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3586.587000" data-stop="3587.508000">he's switched to Emacs.</span> <p></p><div class="transcript-heading"><span class="audio-time" data-start="3590.000000">59:50</span> <strong>My Emacs configuration keeps growing</strong></div><p></p><span class="audio-time caption" data-speaker="Linkarzu" data-start="3590.155000" data-stop="3594.137000"><strong class="speaker-name">Linkarzu:</strong>  I mean your entire Emacs config.</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="3594.537000" data-stop="3596.858000">Has it taken you years to adapt it?</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="3597.258000" data-stop="3601.620000"><strong class="speaker-name">Sacha:</strong>  It just keeps growing, right?</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3602.580000" data-stop="3603.381000">I have an idea.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3603.561000" data-stop="3608.923000">It takes me 5, 15, 10 minutes to put it in and</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3609.923000" data-stop="3610.744000">then it just accretes.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3611.144000" data-stop="3613.145000">I can't make very big changes because</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3613.865000" data-stop="3615.726000">If I try to work on something big</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3615.727000" data-stop="3617.147000">and then I get interrupted,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3617.148000" data-stop="3618.569000">the Ovsiankina effect makes me</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3618.609000" data-stop="3619.150000">very grumpy.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3619.310000" data-stop="3620.750000">I have an unfinished task and</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3620.751000" data-stop="3622.212000">it's like nagging at me.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3622.633000" data-stop="3624.473000">So it has to be always small chunks,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3624.474000" data-stop="3626.375000">but Emacs makes it super easy to work</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3626.376000" data-stop="3627.617000">in those tiny, tiny chunks.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3627.957000" data-stop="3629.979000">So this one here, for example, it says, remind me</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3630.359000" data-stop="3631.560000">next month, et cetera, et cetera.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3631.600000" data-stop="3633.142000">And it has scheduled it for next month.</span> <p></p><span class="audio-time caption" data-speaker="Linkarzu" data-start="3633.682000" data-stop="3636.140000"><strong class="speaker-name">Linkarzu:</strong>  That's pretty cool.</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="3636.180000" data-stop="3637.480000"><strong class="speaker-name">Sacha:</strong>  I'm not actually going to pressure you</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3637.500000" data-stop="3638.421000">to switch to Emacs.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3638.461000" data-stop="3640.741000">You can keep using Neovim and just borrow all the</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3640.761000" data-stop="3641.541000">interesting ideas.</span> <p></p><span class="audio-time caption" data-speaker="Linkarzu" data-start="3642.301000" data-stop="3643.542000"><strong class="speaker-name">Linkarzu:</strong>  Org.nvim is there.</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="3643.982000" data-stop="3646.882000">I can adapt it to do this, you know.</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="3648.703000" data-stop="3650.443000">There's a question in chat.</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="3650.643000" data-stop="3654.424000">I ignore chat unless they bring the coin, okay?</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="3654.604000" data-stop="3657.645000">But there is one question that I will allow this</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="3657.765000" data-stop="3658.885000">peasant in.</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="3658.885000" data-stop="3661.186000">in our conversation.</span> <p></p><div class="transcript-heading"><span class="audio-time" data-start="3661.000000">1:01:01</span> <strong>What about EXWM, the Emacs X11 window manager?</strong></div><p></p><span class="audio-time caption" data-speaker="Linkarzu" data-start="3661.507000" data-stop="3663.488000"><strong class="speaker-name">Linkarzu:</strong> frazzor749 is asking, we were talking about window</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="3663.508000" data-stop="3663.908000">managers.</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="3664.289000" data-stop="3667.170000">What about EXWM when we were talking about</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="3668.091000" data-stop="3669.292000">Wayland and all that stuff?</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="3670.292000" data-stop="3672.114000"><strong class="speaker-name">Sacha:</strong>  There are window managers written in</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3672.134000" data-stop="3677.837000">Emacs Lisp and people who use EXWM really like it.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3677.877000" data-stop="3680.438000">There's actually even an EWM as well right now,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3680.439000" data-stop="3681.680000">I think.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3681.840000" data-stop="3683.220000">I remember playing around with it</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3683.221000" data-stop="3684.001000">a couple of times.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3685.322000" data-stop="3687.243000">Maybe I should check it out again.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3687.843000" data-stop="3689.483000">The first time that I played around with it,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3689.484000" data-stop="3691.244000">my laptop was even older than this one</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3691.245000" data-stop="3692.105000">and not as capable.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3692.505000" data-stop="3697.306000">So maybe now that I am on a 2018 laptop,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3697.307000" data-stop="3698.828000">it might work better for me.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3699.988000" data-stop="3702.009000">Because it is nice to be able to...</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3702.369000" data-stop="3703.168000">It would be great to be able to</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3703.169000" data-stop="3705.990000">just press <code>C-x b</code> and switch to another application</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3705.991000" data-stop="3707.451000">just like I switch to other buffers.</span> <p></p><span class="audio-time caption" data-speaker="Linkarzu" data-start="3709.172000" data-stop="3713.734000"><strong class="speaker-name">Linkarzu:</strong>  Yep. Moving on to other topics.</span> <p></p><div class="transcript-heading"><span class="audio-time" data-start="3715.000000">1:01:55</span> <strong>AI and the Emacs community</strong></div><p></p><span class="audio-time caption" data-speaker="Linkarzu" data-start="3715.605000" data-stop="3719.407000"><strong class="speaker-name">Linkarzu:</strong> How do you feel about all of this new world that</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="3719.447000" data-stop="3722.209000">we're in, AI-related stuff?</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="3722.309000" data-stop="3725.510000">I've seen that it's evolving quite fast and</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="3726.711000" data-stop="3728.412000">software is changing.</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="3728.472000" data-stop="3731.073000">The way that we look at software is changing.</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="3731.193000" data-stop="3734.275000">It used to be something that only a small set of</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="3734.295000" data-stop="3735.816000">people could do in the past.</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="3736.096000" data-stop="3738.898000">Now, people like me or anyone else, even frazzor749,</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="3739.178000" data-stop="3744.060000">can vibe-slop solutions and have them up in minutes.</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="3745.321000" data-stop="3747.402000">Does that make you feel something?</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="3747.422000" data-stop="3749.442000">Does that make you feel sad, happy?</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="3749.462000" data-stop="3750.662000">How do you feel about all this?</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="3752.003000" data-stop="3754.043000"><strong class="speaker-name">Sacha:</strong>  I love seeing the comments from people</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3754.123000" data-stop="3756.684000">who are like, "You know, I had a hard time</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3756.704000" data-stop="3758.765000">getting started with Emacs before, but now I can</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3759.065000" data-stop="3762.505000">ask an LLM to generate me something or explain to</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3762.686000" data-stop="3764.945000">me, explain something to me</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3764.946000" data-stop="3766.847000">and I can get it working."</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3767.167000" data-stop="3767.887000">So that's great.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3768.547000" data-stop="3771.628000">But I also like the fact that the people who do</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3771.688000" data-stop="3773.668000">not want any of this stuff to happen to their</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3773.708000" data-stop="3777.769000">particular Emacs can get together and find each</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3777.869000" data-stop="3782.750000">other and say, you know what, if Emacs adopts AI</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3783.050000" data-stop="3785.630000">more than I'm comfortable with, I commit to</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3786.090000" data-stop="3789.391000">figuring things out the human way and continue to</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3789.411000" data-stop="3790.251000">build it without that.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3790.311000" data-stop="3792.811000">So I love the fact that there are choices and</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3792.911000" data-stop="3795.432000">people can make a choice that fits them.</span> <p></p><span class="audio-time caption" data-speaker="Linkarzu" data-start="3796.477000" data-stop="3796.717000"><strong class="speaker-name">Linkarzu:</strong>  Okay.</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="3796.737000" data-stop="3798.399000"><strong class="speaker-name">Sacha:</strong>  It's very exciting to see the ideas that</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3798.419000" data-stop="3799.199000">people come up with.</span> <p></p><span class="audio-time caption" data-speaker="Linkarzu" data-start="3799.760000" data-stop="3800.100000"><strong class="speaker-name">Linkarzu:</strong>  Okay.</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="3800.640000" data-stop="3802.101000">And you also have the choice?</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="3802.622000" data-stop="3802.822000"><strong class="speaker-name">Sacha:</strong>  Yeah.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3802.862000" data-stop="3804.763000">Sometimes it's hard to read the code because it's</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3804.984000" data-stop="3808.786000">super long. Like, you have that example from</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3808.826000" data-stop="3811.008000">someone on your chat, right?</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3811.028000" data-stop="3813.590000">Okay, you can generate a 3000 line</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3814.511000" data-stop="3817.313000">module, but really you might only need 200 and</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3817.533000" data-stop="3819.635000">that 200 is a lot easier to read.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3820.035000" data-stop="3820.655000">Maybe it was 300.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3820.735000" data-stop="3820.996000">Okay.</span> <p></p><span class="audio-time caption" data-speaker="Linkarzu" data-start="3822.637000" data-stop="3823.237000"><strong class="speaker-name">Linkarzu:</strong>  No, he said 3000.</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="3823.257000" data-stop="3823.578000">He said 3000.</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="3824.198000" data-stop="3824.578000"><strong class="speaker-name">Sacha:</strong>  No, no, no.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3824.598000" data-stop="3827.779000">His final, going from 3000 to</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3827.799000" data-stop="3829.540000">something like 200 to 300 lines.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3830.120000" data-stop="3833.782000">Because if you know what else is out there and</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3834.282000" data-stop="3838.183000">how you can hook into it, then it doesn't have to</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3838.523000" data-stop="3839.804000">build everything from scratch.</span> <p></p><span class="audio-time caption" data-speaker="Linkarzu" data-start="3843.746000" data-stop="3846.288000"><strong class="speaker-name">Linkarzu:</strong>  We also have Prot as an option</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="3846.408000" data-stop="3849.129000">because he does his coaching sessions.</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="3849.189000" data-stop="3851.111000">You can learn about Emacs with Prot.</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="3851.431000" data-stop="3852.972000">We're going to put his link somewhere in here.</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="3853.212000" data-stop="3855.313000">I always leave the link in all of my video</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="3855.333000" data-stop="3857.755000">descriptions and all that stuff.</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="3859.816000" data-stop="3862.177000">How do you feel about AI?</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="3862.878000" data-stop="3863.998000">What do you think is going to happen</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="3863.999000" data-stop="3865.179000">in the future?</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="3865.299000" data-stop="3866.660000">Have you ever thought about it?</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="3867.220000" data-stop="3869.122000">How do you see software?</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="3871.225000" data-stop="3873.006000"><strong class="speaker-name">Sacha:</strong>  I have no idea what's going to happen in</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3873.026000" data-stop="3873.686000">the near future.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3874.827000" data-stop="3877.148000">I know there's a lot of froth and a lot of like</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3877.788000" data-stop="3880.529000">weird pressure from other people to use it or not</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3880.609000" data-stop="3881.169000">use it or whatever.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3882.450000" data-stop="3885.051000">I think the business world has sort of tied</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3885.091000" data-stop="3886.032000">itself in knots.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3886.092000" data-stop="3887.812000">We're just going to have to see how all of that</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3887.892000" data-stop="3888.753000">stuff works out.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3889.773000" data-stop="3894.674000">In terms of using it myself, I use a very limited</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3895.355000" data-stop="3896.215000">set of functionalities.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3896.295000" data-stop="3898.775000">Just the things that I can understand, again,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3898.776000" data-stop="3900.976000">5 to 15, 30 minutes at a time.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3901.616000" data-stop="3905.237000">I am not at the point where I can just trust the</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3905.317000" data-stop="3907.298000">agent to run by itself and come back</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3907.818000" data-stop="3909.259000">tomorrow with results.</span> <p></p><div class="transcript-heading"><span class="audio-time" data-start="3909.000000">1:05:09</span> <strong>Using large language models when learning a language</strong></div><p></p><span class="audio-time caption" data-speaker="Sacha" data-start="3909.639000" data-stop="3912.480000"><strong class="speaker-name">Sacha:</strong> I'm trying to learn French.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3912.960000" data-stop="3914.761000">I don't need anything fancy.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3914.801000" data-stop="3919.602000">I just need to know how to make my paragraph less</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3919.962000" data-stop="3921.203000">grammatically terrible.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3922.777000" data-stop="3925.339000">The nice thing about large language models is</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3925.359000" data-stop="3926.740000">that it tries to bring it towards</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3926.741000" data-stop="3927.682000">that average, right?</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3927.702000" data-stop="3930.665000">It can explain things or at least... There are a</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3930.685000" data-stop="3932.526000">number of times that even with my beginner level,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3933.187000" data-stop="3935.369000">I can say, you know, that doesn't seem right.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3935.469000" data-stop="3937.211000">Then I can go and dig up the actual</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3937.271000" data-stop="3940.154000">explanation and compare it against human examples,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3940.214000" data-stop="3945.139000">and ask my tutor, whom I meet twice a week and pay</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3945.259000" data-stop="3946.060000">actual money to.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3947.120000" data-stop="3951.361000">But the fact that I can do this at 11 p.m. or</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3952.281000" data-stop="3956.122000">whenever I'm free is helpful when it comes to</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3956.162000" data-stop="3957.683000">getting that kind of instant feedback.</span> <p></p><div class="transcript-heading"><span class="audio-time" data-start="3958.000000">1:05:58</span> <strong>LLMs for troubleshooting</strong></div><p></p><span class="audio-time caption" data-speaker="Sacha" data-start="3958.143000" data-stop="3960.023000"><strong class="speaker-name">Sacha:</strong> I use it for troubleshooting sometimes</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3960.103000" data-stop="3962.284000">because I'm like, I don't know what this error</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3962.304000" data-stop="3962.904000">message is.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3963.264000" data-stop="3965.244000">Doing the exact search is not going to get me</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3965.785000" data-stop="3966.485000">the right answer.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3966.605000" data-stop="3969.205000">But how would I start to understand this?</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3969.265000" data-stop="3970.546000">What questions would I ask?</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3970.986000" data-stop="3972.886000">That's sort of helpful there.</span> <p></p><div class="transcript-heading"><span class="audio-time" data-start="3973.000000">1:06:13</span> <strong>LLMs for proofs of concepts</strong></div><p></p><span class="audio-time caption" data-speaker="Sacha" data-start="3973.226000" data-stop="3975.827000"><strong class="speaker-name">Sacha:</strong> And for proofs of concept where, you know,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3978.228000" data-stop="3981.389000">I do not know enough about FFmpeg or Matplotlib</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3981.890000" data-stop="3986.032000">or Python's internals to do some of the things</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3986.052000" data-stop="3987.833000">that I want to do off the top of my head.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3988.793000" data-stop="3991.954000">So I'm like, okay, I will see.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3992.415000" data-stop="3994.276000">If I tried myself and I'm not getting anywhere,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3994.316000" data-stop="3995.956000">then I can say, okay, generate me a thing.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3996.317000" data-stop="3998.016000">And then I can try to see, okay,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3998.017000" data-stop="3998.878000">how is it doing that?</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3998.978000" data-stop="3999.918000">Why is it doing that?</span> <span class="audio-time caption" data-speaker="Sacha" data-start="4001.099000" data-stop="4003.080000">And build on that.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="4003.961000" data-stop="4007.815000">I like to keep things within one or two screens</span> <span class="audio-time caption" data-speaker="Sacha" data-start="4007.835000" data-stop="4008.819000">that I can actually read.</span> <p></p><span class="audio-time caption" data-speaker="Linkarzu" data-start="4010.332000" data-stop="4013.413000"><strong class="speaker-name">Linkarzu:</strong>  Okay, okay, okay.</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="4013.653000" data-stop="4015.293000">Yep, I started like that as well.</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="4015.413000" data-stop="4018.954000">I didn't trust it too much at the beginning, but</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="4018.994000" data-stop="4021.514000">it's been progressing and I think you just get</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="4022.175000" data-stop="4025.835000">more dependent on it, you know, and more and more</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="4025.875000" data-stop="4031.577000">and more and, you know, but it's gotten better.</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="4031.637000" data-stop="4033.557000">Do you use a specific model?</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="4036.431000" data-stop="4041.652000"><strong class="speaker-name">Sacha:</strong>  I use Gemini when I feel like it.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="4041.692000" data-stop="4046.794000">The usage levels are quite high in the free tier.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="4047.914000" data-stop="4050.715000">Sometimes I'll use Claude as well.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="4054.636000" data-stop="4056.437000">My daughter has a subscription to Claude.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="4056.457000" data-stop="4058.157000">We pay for a subscription to Claude for my</span> <span class="audio-time caption" data-speaker="Sacha" data-start="4058.177000" data-stop="4060.658000">daughter because she likes generating interactive</span> <span class="audio-time caption" data-speaker="Sacha" data-start="4061.198000" data-stop="4063.719000">stories to help her learn French vocabulary.</span> <p></p><span class="audio-time caption" data-speaker="Linkarzu" data-start="4064.175000" data-stop="4065.256000"><strong class="speaker-name">Linkarzu:</strong>  Okay, okay.</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="4065.996000" data-stop="4067.777000"><strong class="speaker-name">Sacha:</strong>  Which is great because then it can</span> <span class="audio-time caption" data-speaker="Sacha" data-start="4067.817000" data-stop="4070.038000">phrase everything in Pokémon terms.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="4070.058000" data-stop="4072.280000">So that's easier for her to pay attention to.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="4073.580000" data-stop="4077.583000">When she's asleep or when she's watching</span> <span class="audio-time caption" data-speaker="Sacha" data-start="4077.603000" data-stop="4081.305000">Pokémon, then I can use it without stepping on</span> <span class="audio-time caption" data-speaker="Sacha" data-start="4081.345000" data-stop="4082.305000">her budget.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="4082.325000" data-stop="4083.446000">Stepping on her usage, right?</span> <p></p><div class="transcript-heading"><span class="audio-time" data-start="4083.000000">1:08:03</span> <strong>Kids' obsessions: Harry Potter, Pokemon, Wings of Fire</strong></div><p></p><span class="audio-time caption" data-speaker="Linkarzu" data-start="4083.786000" data-stop="4085.487000"><strong class="speaker-name">Linkarzu:</strong>  Is she into Harry Potter, your</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="4085.507000" data-stop="4086.548000">daughter, or not at all?</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="4087.048000" data-stop="4088.249000"><strong class="speaker-name">Sacha:</strong>  Only briefly.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="4088.569000" data-stop="4091.270000">Pokemon remains her current main interest.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="4091.390000" data-stop="4093.752000">She is the sort of person who reads the entire</span> <span class="audio-time caption" data-speaker="Sacha" data-start="4093.792000" data-stop="4096.733000">wiki and stuffs all of the factoids</span> <span class="audio-time caption" data-speaker="Sacha" data-start="4096.734000" data-stop="4097.354000">into her brain.</span> <p></p><span class="audio-time caption" data-speaker="Linkarzu" data-start="4097.774000" data-stop="4099.895000"><strong class="speaker-name">Linkarzu:</strong>  Oh, my daughter is in her Harry</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="4099.955000" data-stop="4101.276000">Potter phase right now.</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="4101.555000" data-stop="4103.077000">My wife bought all the books.</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="4103.096000" data-stop="4105.658000">I don't know, it's seven books, I think. Right?</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="4106.719000" data-stop="4109.881000">And the condition is, once you read a book, we</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="4109.902000" data-stop="4112.162000">can watch the movie, right?</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="4112.542000" data-stop="4114.785000">She's read like four, I think, and they're</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="4114.845000" data-stop="4118.886000">huge books and I'm like, man, that's tough.</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="4119.127000" data-stop="4121.109000">But she's in that phase right now.</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="4121.540000" data-stop="4124.161000"><strong class="speaker-name">Sacha:</strong>  Yeah. The novel series</span> <span class="audio-time caption" data-speaker="Sacha" data-start="4124.162000" data-stop="4125.143000">that my daughter is currently</span> <span class="audio-time caption" data-speaker="Sacha" data-start="4125.203000" data-stop="4127.365000">looping over is Wings of Fire.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="4127.625000" data-stop="4129.466000">She's been into it before.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="4129.647000" data-stop="4131.147000">So now we've checked out all the books</span> <span class="audio-time caption" data-speaker="Sacha" data-start="4131.148000" data-stop="4131.809000">from the library.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="4131.908000" data-stop="4132.890000">I love the library.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="4132.930000" data-stop="4134.890000">It saves me so much money.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="4135.152000" data-stop="4137.292000">So she's reading that.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="4137.374000" data-stop="4138.715000">There are graphic novels as well.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="4138.854000" data-stop="4140.756000">It's great because then, you know, it makes it...</span> <span class="audio-time caption" data-speaker="Sacha" data-start="4141.577000" data-stop="4142.277000">There are graphic novels</span> <span class="audio-time caption" data-speaker="Sacha" data-start="4142.278000" data-stop="4144.760000">for the first seven or so books.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="4145.841000" data-stop="4147.181000">I've also checked out</span> <span class="audio-time caption" data-speaker="Sacha" data-start="4147.182000" data-stop="4148.582000">the graphic novels in French.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="4150.283000" data-stop="4151.903000">I get to read them and learn things.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="4152.243000" data-stop="4152.944000">She's reading it.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="4152.984000" data-stop="4155.063000">Because we're so familiar with the story...</span> <span class="audio-time caption" data-speaker="Sacha" data-start="4155.064000" data-stop="4157.464000">I like to learn about the things</span> <span class="audio-time caption" data-speaker="Sacha" data-start="4157.465000" data-stop="4158.925000">that my daughter is interested in.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="4158.984000" data-stop="4161.385000">So for example, when she was into Rubik's cubes,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="4161.785000" data-stop="4162.805000">I learned how to cube too.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="4162.986000" data-stop="4165.966000">I played around with using Org Mode to help</span> <span class="audio-time caption" data-speaker="Sacha" data-start="4166.006000" data-stop="4167.367000">me learn cubing.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="4167.506000" data-stop="4169.167000">She's into Minecraft.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="4169.187000" data-stop="4170.287000">We play Minecraft together.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="4171.528000" data-stop="4177.889000">Now she's into Wings of Fire and we read that</span> <span class="audio-time caption" data-speaker="Sacha" data-start="4177.908000" data-stop="4178.408000">together too.</span> <p></p><div class="transcript-heading"><span class="audio-time" data-start="4179.000000">1:09:39</span> <strong>Claude and animating my sketches based on a reverse-engineered format</strong></div><p></p><span class="audio-time caption" data-speaker="Linkarzu" data-start="4179.191000" data-stop="4181.052000"><strong class="speaker-name">Linkarzu:</strong>  Okay. Now you mentioned</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="4181.053000" data-stop="4182.654000">that you use Claude sometimes.</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="4182.796000" data-stop="4184.216000">How do you feel about it?</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="4184.417000" data-stop="4187.301000">Have you tried the latest Opus 5.5 one?</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="4187.682000" data-stop="4189.663000">And if you compare it to other models, do you</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="4189.724000" data-stop="4190.484000">feel a difference?</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="4190.505000" data-stop="4193.408000">Do you feel that it's like really smart or it's</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="4193.448000" data-stop="4195.932000">like, nah, what do you think?</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="4196.753000" data-stop="4198.934000"><strong class="speaker-name">Sacha:</strong>  Well, let me give an example of</span> <span class="audio-time caption" data-speaker="Sacha" data-start="4198.974000" data-stop="4200.735000">something I was playing around with recently.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="4201.095000" data-stop="4203.415000">So I mentioned that I use Noteful on my iPad</span> <span class="audio-time caption" data-speaker="Sacha" data-start="4203.416000" data-stop="4203.916000">to sketch.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="4204.416000" data-stop="4205.677000">One of the things that I've always been curious</span> <span class="audio-time caption" data-speaker="Sacha" data-start="4205.737000" data-stop="4208.058000">about is what can I do with the stroke data since</span> <span class="audio-time caption" data-speaker="Sacha" data-start="4208.098000" data-stop="4209.218000">it's recorded it somewhere.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="4210.018000" data-stop="4212.239000">I came across another person's repository where</span> <span class="audio-time caption" data-speaker="Sacha" data-start="4212.259000" data-stop="4214.520000">they had used a large language model, probably</span> <span class="audio-time caption" data-speaker="Sacha" data-start="4214.540000" data-stop="4217.542000">Claude even, to reverse-engineer the format in</span> <span class="audio-time caption" data-speaker="Sacha" data-start="4217.602000" data-stop="4219.541000">order to create something</span> <span class="audio-time caption" data-speaker="Sacha" data-start="4219.542000" data-stop="4220.883000">where you give it your notebook,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="4221.343000" data-stop="4222.924000">your handwritten notebook, and it will</span> <span class="audio-time caption" data-speaker="Sacha" data-start="4223.004000" data-stop="4226.947000">generate quizzes and summaries and etc,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="4226.948000" data-stop="4228.928000">and then put that back in the notebook</span> <span class="audio-time caption" data-speaker="Sacha" data-start="4228.929000" data-stop="4230.610000">so it looks handwritten,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="4230.611000" data-stop="4233.212000">so that you can do the quiz</span> <span class="audio-time caption" data-speaker="Sacha" data-start="4233.213000" data-stop="4235.153000">on the iPad with a pencil and all that.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="4235.154000" data-stop="4238.657000">The repository had a description of the reverse</span> <span class="audio-time caption" data-speaker="Sacha" data-start="4238.717000" data-stop="4241.760000">engineered format. So, on my phone, I said,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="4241.780000" data-stop="4243.381000">can you take a look at this repository</span> <span class="audio-time caption" data-speaker="Sacha" data-start="4244.382000" data-stop="4246.183000">and see if you can use the reverse-engineered</span> <span class="audio-time caption" data-speaker="Sacha" data-start="4246.223000" data-stop="4252.208000">format in order to take the notebook and create</span> <span class="audio-time caption" data-speaker="Sacha" data-start="4252.268000" data-stop="4255.531000">an SVG using centerline strokes instead of fills?</span> <span class="audio-time caption" data-speaker="Sacha" data-start="4255.671000" data-stop="4257.933000">The way that the export usually works is you</span> <span class="audio-time caption" data-speaker="Sacha" data-start="4257.993000" data-stop="4261.076000">export a PDF, but when you get it into an SVG</span> <span class="audio-time caption" data-speaker="Sacha" data-start="4261.156000" data-stop="4263.898000">editor, it's all paths with fills in them.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="4264.218000" data-stop="4265.198000">But I want strokes</span> <span class="audio-time caption" data-speaker="Sacha" data-start="4265.199000" data-stop="4267.320000">so that if I want to animate it,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="4267.321000" data-stop="4268.821000">I can animate it in the direction</span> <span class="audio-time caption" data-speaker="Sacha" data-start="4268.822000" data-stop="4269.403000">I was drawing,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="4270.536000" data-stop="4273.279000">instead of the character just appearing.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="4273.600000" data-stop="4277.023000">It did that. I gave it some files and it</span> <span class="audio-time caption" data-speaker="Sacha" data-start="4277.124000" data-stop="4280.067000">actually showed me also some videos of it</span> <span class="audio-time caption" data-speaker="Sacha" data-start="4280.187000" data-stop="4283.911000">animating, so that I could visually verify that it</span> <span class="audio-time caption" data-speaker="Sacha" data-start="4283.951000" data-stop="4285.433000">was doing what I wanted it to do.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="4285.833000" data-stop="4287.814000">Theoretically, there are some Python scripts</span> <span class="audio-time caption" data-speaker="Sacha" data-start="4287.834000" data-stop="4289.315000">that I might try out later on.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="4290.295000" data-stop="4292.277000">I like the fact that I can do that sort of thing</span> <span class="audio-time caption" data-speaker="Sacha" data-start="4292.397000" data-stop="4294.718000">from my phone to try things out.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="4295.078000" data-stop="4297.779000">At the same time, also, it's fine for the things</span> <span class="audio-time caption" data-speaker="Sacha" data-start="4297.819000" data-stop="4299.660000">that I don't know much about.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="4300.061000" data-stop="4301.941000">But for Emacs, it's like Prot said,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="4301.942000" data-stop="4303.182000">this is the fun part.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="4303.242000" data-stop="4305.363000">For him, it's his video game, right?</span> <span class="audio-time caption" data-speaker="Sacha" data-start="4305.804000" data-stop="4307.685000">For the stuff that I like to hack,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="4308.425000" data-stop="4311.567000">I want to actually go do the digging around and</span> <span class="audio-time caption" data-speaker="Sacha" data-start="4311.627000" data-stop="4314.409000">come across the things that I wouldn't have even</span> <span class="audio-time caption" data-speaker="Sacha" data-start="4314.709000" data-stop="4315.770000">thought to ask for.</span> <p></p><div class="transcript-heading"><span class="audio-time" data-start="4317.000000">1:11:57</span> <strong>Differences between models?</strong></div><p></p><span class="audio-time caption" data-speaker="Linkarzu" data-start="4317.852000" data-stop="4320.253000"><strong class="speaker-name">Linkarzu:</strong>  And do you feel like Claude is</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="4320.774000" data-stop="4323.916000">smarter than other models?</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="4324.336000" data-stop="4328.219000">Or you don't feel that too much of a difference?</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="4329.549000" data-stop="4337.176000"><strong class="speaker-name">Sacha:</strong>  I did more of a comparison back some</span> <span class="audio-time caption" data-speaker="Sacha" data-start="4337.216000" data-stop="4339.678000">time ago when we were deciding whether to go with</span> <span class="audio-time caption" data-speaker="Sacha" data-start="4339.718000" data-stop="4342.140000">a Gemini subscription or a Claude subscription</span> <span class="audio-time caption" data-speaker="Sacha" data-start="4342.180000" data-stop="4344.182000">from my daughter as an incentive for her</span> <span class="audio-time caption" data-speaker="Sacha" data-start="4344.762000" data-stop="4347.203000">keeping her grades up and doing stuff.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="4347.223000" data-stop="4349.484000">We trust her to manage it reasonably well.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="4349.524000" data-stop="4353.446000">We've had these conversations about AI usage and</span> <span class="audio-time caption" data-speaker="Sacha" data-start="4354.426000" data-stop="4356.267000">she's very proud of the fact that she doesn't use</span> <span class="audio-time caption" data-speaker="Sacha" data-start="4356.307000" data-stop="4358.968000">it for doing her homework, even though apparently</span> <span class="audio-time caption" data-speaker="Sacha" data-start="4359.468000" data-stop="4361.608000">in grade 5, some of her classmates</span> <span class="audio-time caption" data-speaker="Sacha" data-start="4361.609000" data-stop="4362.708000">are already getting reminded</span> <span class="audio-time caption" data-speaker="Sacha" data-start="4362.709000" data-stop="4363.388000">by their teacher</span> <span class="audio-time caption" data-speaker="Sacha" data-start="4363.389000" data-stop="4364.530000">not to do that, right?</span> <span class="audio-time caption" data-speaker="Sacha" data-start="4365.690000" data-stop="4369.313000">Anyway, so we generated some samples of creative</span> <span class="audio-time caption" data-speaker="Sacha" data-start="4369.353000" data-stop="4371.814000">writing based on the prompts that she had.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="4371.815000" data-stop="4373.235000">We did a blind comparison,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="4373.236000" data-stop="4374.396000">and she liked Claude more.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="4374.957000" data-stop="4377.218000">So that was her reason for doing that.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="4377.579000" data-stop="4380.040000">For me, in terms of the small generation tasks</span> <span class="audio-time caption" data-speaker="Sacha" data-start="4380.100000" data-stop="4384.523000">that I trust the AI with or I ask the large</span> <span class="audio-time caption" data-speaker="Sacha" data-start="4384.543000" data-stop="4386.925000">language model to do, there hasn't been that much</span> <span class="audio-time caption" data-speaker="Sacha" data-start="4386.945000" data-stop="4387.445000">of a difference.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="4387.546000" data-stop="4390.428000">I'm sure people doing fancy agentic workflows</span> <span class="audio-time caption" data-speaker="Sacha" data-start="4390.468000" data-stop="4392.029000">will have different experiences.</span> <p></p><div class="transcript-heading"><span class="audio-time" data-start="4392.000000">1:13:12</span> <strong>Looking ahead at AI and programming</strong></div><p></p><span class="audio-time caption" data-speaker="Linkarzu" data-start="4392.903000" data-stop="4396.204000"><strong class="speaker-name">Linkarzu:</strong>  Yeah, I've noticed how it, how smart</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="4396.244000" data-stop="4398.244000">it got and that's the reason why I was asking and</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="4398.304000" data-stop="4400.445000">it makes me excited, but it makes me kind of</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="4400.505000" data-stop="4401.745000">worried as well at the same time.</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="4401.825000" data-stop="4406.347000">I don't want to be pessimistic but you know, I</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="4406.427000" data-stop="4410.288000">see how good it got in the past few months and it</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="4410.368000" data-stop="4410.908000">makes me think:</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="4411.568000" data-stop="4412.850000">how better is it going to get?</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="4412.990000" data-stop="4416.453000">Like, what am I going to be needed for then, like,</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="4416.714000" data-stop="4418.434000">in a couple of months, a couple of years,</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="4418.435000" data-stop="4420.478000">you know? So, I don't know.</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="4420.578000" data-stop="4421.739000">I'm in that phase right now.</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="4421.859000" data-stop="4424.261000">It's exciting because I can</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="4424.281000" data-stop="4425.062000">do way more stuff.</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="4425.202000" data-stop="4428.446000">But what's going to be the point then,</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="4428.646000" data-stop="4429.887000">in a couple of years?</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="4429.947000" data-stop="4430.968000">So, I don't know.</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="4431.089000" data-stop="4433.171000">It's just me, baby, thinking about it.</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="4433.957000" data-stop="4435.559000"><strong class="speaker-name">Sacha:</strong>  There are a lot of people dealing with</span> <span class="audio-time caption" data-speaker="Sacha" data-start="4436.000000" data-stop="4438.884000">uncertainty and existential crises and I have no</span> <span class="audio-time caption" data-speaker="Sacha" data-start="4438.984000" data-stop="4440.866000">idea what that future is going to look like.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="4442.108000" data-stop="4444.311000">Although to be fair,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="4444.391000" data-stop="4445.912000">people in other industries</span> <span class="audio-time caption" data-speaker="Sacha" data-start="4445.913000" data-stop="4449.478000">that people in IT have automated away</span> <span class="audio-time caption" data-speaker="Sacha" data-start="4450.964000" data-stop="4451.424000">have had to deal with</span> <span class="audio-time caption" data-speaker="Sacha" data-start="4451.425000" data-stop="4452.967000">that kind of existential crisis before.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="4453.528000" data-stop="4456.072000">So it's our turn now, I guess.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="4457.153000" data-stop="4460.217000">I'm semi-retired and professionally irrelevant,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="4460.218000" data-stop="4461.639000">so I can step out here</span> <span class="audio-time caption" data-speaker="Sacha" data-start="4461.640000" data-stop="4464.103000">and just wait for the dust to settle, right?</span> <p></p><span class="audio-time caption" data-speaker="Linkarzu" data-start="4466.666000" data-stop="4468.428000"><strong class="speaker-name">Linkarzu:</strong>  Yeah, you have it figured out</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="4468.488000" data-stop="4469.229000">already, I guess.</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="4469.489000" data-stop="4472.652000">Like the professor, he's 80, he's retired already.</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="4472.692000" data-stop="4474.873000">Like he can just go to Hawaii,</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="4474.874000" data-stop="4477.997000">drink his piña coladas and just enjoy life, you know.</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="4478.037000" data-stop="4481.219000">But we're still working and</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="4481.220000" data-stop="4483.322000">still trying to figure things out.</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="4483.963000" data-stop="4484.924000">Yeah, I don't know.</span> <p></p><div class="transcript-heading"><span class="audio-time" data-start="4486.000000">1:14:46</span> <strong>AI-generated code, slop PRs and the Lisp Curse in Emacs</strong></div><p></p><span class="audio-time caption" data-speaker="Sacha" data-start="4486.865000" data-stop="4490.007000"><strong class="speaker-name">Sacha:</strong>  What's important to me is to help us</span> <span class="audio-time caption" data-speaker="Sacha" data-start="4490.087000" data-stop="4492.068000">figure these things out together.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="4492.148000" data-stop="4494.589000">For example, I'm focused on the Emacs community</span> <span class="audio-time caption" data-speaker="Sacha" data-start="4494.649000" data-stop="4496.849000">and there are big debates about</span> <span class="audio-time caption" data-speaker="Sacha" data-start="4496.850000" data-stop="4498.090000">"Should we allow it?</span> <span class="audio-time caption" data-speaker="Sacha" data-start="4498.190000" data-stop="4501.712000">How should we help make sure that package</span> <span class="audio-time caption" data-speaker="Sacha" data-start="4501.752000" data-stop="4503.593000">maintainers aren't overloaded,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="4503.653000" data-stop="4505.514000">they're not overwhelmed with a lot of</span> <span class="audio-time caption" data-speaker="Sacha" data-start="4505.994000" data-stop="4507.335000">slop PR requests?"</span> <span class="audio-time caption" data-speaker="Sacha" data-start="4509.496000" data-stop="4511.137000">It's great to have all these announcements of new</span> <span class="audio-time caption" data-speaker="Sacha" data-start="4511.157000" data-stop="4514.939000">packages, but if it's just entirely generated,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="4514.979000" data-stop="4518.441000">then it tends to fall off and not get maintained.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="4519.862000" data-stop="4521.883000">In the Emacs community, because it's so easy to</span> <span class="audio-time caption" data-speaker="Sacha" data-start="4521.943000" data-stop="4523.884000">build something for yourself, we've always had</span> <span class="audio-time caption" data-speaker="Sacha" data-start="4523.924000" data-stop="4524.864000">this challenge of</span> <span class="audio-time caption" data-speaker="Sacha" data-start="4526.545000" data-stop="4528.867000">making something that other people can use anyway.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="4528.967000" data-stop="4531.789000">So there's an essay with the title, I think, The</span> <span class="audio-time caption" data-speaker="Sacha" data-start="4531.849000" data-stop="4534.090000">Lisp Curse, or if you search for those keywords,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="4534.110000" data-stop="4535.371000">The Lisp Curse, you'll find it.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="4535.811000" data-stop="4539.333000">It talks about the fact that because it's so</span> <span class="audio-time caption" data-speaker="Sacha" data-start="4539.513000" data-stop="4542.055000">powerful, it's hard for people to come together</span> <span class="audio-time caption" data-speaker="Sacha" data-start="4542.135000" data-stop="4543.096000">and decide on something.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="4543.556000" data-stop="4545.457000">With large language models and the ease of</span> <span class="audio-time caption" data-speaker="Sacha" data-start="4545.477000" data-stop="4548.319000">generating code, that's basically the same</span> <span class="audio-time caption" data-speaker="Sacha" data-start="4548.359000" data-stop="4549.460000">problem scaled up.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="4550.215000" data-stop="4553.919000">Which is something that we're used to in the</span> <span class="audio-time caption" data-speaker="Sacha" data-start="4553.960000" data-stop="4557.404000">sense that many times something that's tailored</span> <span class="audio-time caption" data-speaker="Sacha" data-start="4557.424000" data-stop="4561.308000">to you, that's customized to fit you, it works</span> <span class="audio-time caption" data-speaker="Sacha" data-start="4561.348000" data-stop="4563.411000">really well for you, but it's hard to translate</span> <span class="audio-time caption" data-speaker="Sacha" data-start="4563.431000" data-stop="4564.092000">to somebody else.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="4564.292000" data-stop="4567.035000">Just like if you're prompting a large language</span> <span class="audio-time caption" data-speaker="Sacha" data-start="4567.095000" data-stop="4568.437000">model to create an app for you,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="4568.777000" data-stop="4570.499000">it might not necessarily be something that</span> <span class="audio-time caption" data-speaker="Sacha" data-start="4570.599000" data-stop="4572.241000">somebody else can just pick up and run with.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="4572.561000" data-stop="4574.183000">It might not necessarily be something that</span> <span class="audio-time caption" data-speaker="Sacha" data-start="4574.203000" data-stop="4576.365000">you're going to use for six months or a year.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="4576.706000" data-stop="4579.127000">It might just be something that you use today,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="4579.128000" data-stop="4581.470000">and it gets your problem solved today,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="4581.471000" data-stop="4582.211000">and that's okay.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="4583.853000" data-stop="4585.974000">For me, the fact that people</span> <span class="audio-time caption" data-speaker="Sacha" data-start="4585.975000" data-stop="4587.276000">are exchanging these ideas</span> <span class="audio-time caption" data-speaker="Sacha" data-start="4587.277000" data-stop="4588.517000">and they're asking what ifs</span> <span class="audio-time caption" data-speaker="Sacha" data-start="4588.518000" data-stop="4590.018000">and they can actually get to the point</span> <span class="audio-time caption" data-speaker="Sacha" data-start="4590.019000" data-stop="4591.660000">where there's code to help them</span> <span class="audio-time caption" data-speaker="Sacha" data-start="4591.661000" data-stop="4593.462000">test those what ifs</span> <span class="audio-time caption" data-speaker="Sacha" data-start="4593.463000" data-stop="4595.305000">and help them refine their ideas...</span> <span class="audio-time caption" data-speaker="Sacha" data-start="4595.825000" data-stop="4596.946000">That part is exciting</span> <span class="audio-time caption" data-speaker="Sacha" data-start="4596.947000" data-stop="4597.887000">and I'm curious to see</span> <span class="audio-time caption" data-speaker="Sacha" data-start="4597.888000" data-stop="4598.748000">what people do with it.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="4599.269000" data-stop="4601.952000">At the same time, the people who want to stay</span> <span class="audio-time caption" data-speaker="Sacha" data-start="4602.012000" data-stop="4604.154000">with the code that they can read and understand...</span> <span class="audio-time caption" data-speaker="Sacha" data-start="4604.274000" data-stop="4605.736000">When they read the code</span> <span class="audio-time caption" data-speaker="Sacha" data-start="4606.396000" data-stop="4607.437000">of other people, even...</span> <span class="audio-time caption" data-speaker="Sacha" data-start="4607.557000" data-stop="4608.756000">If they read the code of other people,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="4608.757000" data-stop="4610.257000">which is something I love doing,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="4610.258000" data-stop="4611.758000">you get the sense of</span> <span class="audio-time caption" data-speaker="Sacha" data-start="4611.759000" data-stop="4614.400000">what other people are thinking about things.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="4614.500000" data-stop="4615.459000">The kinds of needs</span> <span class="audio-time caption" data-speaker="Sacha" data-start="4615.460000" data-stop="4616.680000">that shape this code</span> <span class="audio-time caption" data-speaker="Sacha" data-start="4616.681000" data-stop="4617.601000">to be what it is.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="4618.202000" data-stop="4620.442000">The little choices that they make</span> <span class="audio-time caption" data-speaker="Sacha" data-start="4620.443000" data-stop="4622.183000">in their variable names</span> <span class="audio-time caption" data-speaker="Sacha" data-start="4622.184000" data-stop="4624.025000">or the way that things fit together.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="4624.565000" data-stop="4626.645000">I think that's also a wonderful thing</span> <span class="audio-time caption" data-speaker="Sacha" data-start="4626.646000" data-stop="4628.707000">that I don't want to lose if</span> <span class="audio-time caption" data-speaker="Sacha" data-start="4629.307000" data-stop="4633.089000">it's just generated really, really long libraries</span> <span class="audio-time caption" data-speaker="Sacha" data-start="4633.209000" data-stop="4635.769000">that are not doing things as beautifully</span> <span class="audio-time caption" data-speaker="Sacha" data-start="4635.770000" data-stop="4637.931000">as they could be.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="4639.772000" data-stop="4642.513000">I'm glad that there are people who try things out</span> <span class="audio-time caption" data-speaker="Sacha" data-start="4642.573000" data-stop="4646.855000">and also disclose that they've used AI to</span> <span class="audio-time caption" data-speaker="Sacha" data-start="4646.875000" data-stop="4647.435000">generate things.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="4647.855000" data-stop="4649.456000">I'm also glad that there are people who are</span> <span class="audio-time caption" data-speaker="Sacha" data-start="4649.516000" data-stop="4651.137000">manually crafting things that they love.</span> <p></p><span class="audio-time caption" data-speaker="Linkarzu" data-start="4651.678000" data-stop="4652.478000"><strong class="speaker-name">Linkarzu:</strong>  You get to know them</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="4652.479000" data-stop="4653.439000">really well, right?</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="4653.459000" data-stop="4655.119000">When you see their code, it's like, oh,</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="4655.120000" data-stop="4655.901000">I know this person.</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="4655.961000" data-stop="4657.341000">I know him better than</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="4657.342000" data-stop="4658.602000">talking to the person, okay?</span> <p></p><div class="transcript-heading"><span class="audio-time" data-start="4660.000000">1:17:40</span> <strong>Maintainers and large language models</strong></div><p></p><span class="audio-time caption" data-speaker="Linkarzu" data-start="4660.119000" data-stop="4663.061000"><strong class="speaker-name">Linkarzu:</strong> How do you feel about maintainers on the Emacs</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="4663.141000" data-stop="4666.624000">side of things with all of the code that can be</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="4666.784000" data-stop="4670.807000">easily generated right now and having to deal</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="4670.927000" data-stop="4671.388000">with that?</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="4671.448000" data-stop="4673.209000">I don't know if you maintain any packages or not,</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="4673.269000" data-stop="4675.631000">but I would assume you know that big package</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="4675.651000" data-stop="4679.094000">maintainers must be going through a really</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="4679.214000" data-stop="4681.616000">difficult phase right now, because everyone is</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="4681.636000" data-stop="4684.818000">sending PRs, everyone has great ideas and they</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="4684.858000" data-stop="4685.679000">need to filter,</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="4686.687000" data-stop="4689.270000">go through all of that code and clean it up.</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="4690.852000" data-stop="4691.913000">How do you feel about all that?</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="4692.013000" data-stop="4694.256000">They need to triage all that, right?</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="4694.396000" data-stop="4698.220000">Do you have any thoughts on Emacs maintainers in</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="4698.380000" data-stop="4699.642000">all of this slop?</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="4700.642000" data-stop="4704.383000"><strong class="speaker-name">Sacha:</strong>  I was a little amused by the exchange in</span> <span class="audio-time caption" data-speaker="Sacha" data-start="4704.483000" data-stop="4708.165000">Org Mode, where I think John Wiegley was proposing</span> <span class="audio-time caption" data-speaker="Sacha" data-start="4708.225000" data-stop="4711.126000">something that was partially generated by a large</span> <span class="audio-time caption" data-speaker="Sacha" data-start="4711.166000" data-stop="4713.666000">language, or actually maybe entirely generated by</span> <span class="audio-time caption" data-speaker="Sacha" data-start="4713.686000" data-stop="4714.647000">a large language model.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="4715.107000" data-stop="4718.028000">And it was there as a kind of an example.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="4719.228000" data-stop="4722.209000">And after some back and forth, Ihor started using</span> <span class="audio-time caption" data-speaker="Sacha" data-start="4722.289000" data-stop="4723.670000">an LLM to review it.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="4726.634000" data-stop="4728.415000">We're definitely experimenting with how to deal</span> <span class="audio-time caption" data-speaker="Sacha" data-start="4728.455000" data-stop="4731.597000">with this kind of thing where the changes might</span> <span class="audio-time caption" data-speaker="Sacha" data-start="4731.617000" data-stop="4735.260000">be harder to understand because the volume is</span> <span class="audio-time caption" data-speaker="Sacha" data-start="4735.340000" data-stop="4739.463000">higher, the logic is harder to talk through.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="4740.804000" data-stop="4744.887000">But not being a maintainer of any very popular</span> <span class="audio-time caption" data-speaker="Sacha" data-start="4744.967000" data-stop="4748.869000">projects myself, I have no idea the kind of</span> <span class="audio-time caption" data-speaker="Sacha" data-start="4748.889000" data-stop="4749.970000">things that people are going through.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="4751.031000" data-stop="4752.352000">I do know that it</span> <span class="audio-time caption" data-speaker="Sacha" data-start="4753.852000" data-stop="4755.553000">is something that we want to be thoughtful</span> <span class="audio-time caption" data-speaker="Sacha" data-start="4755.613000" data-stop="4758.895000">about because maintainers are volunteers.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="4759.235000" data-stop="4760.475000">We don't want people to burn out.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="4760.535000" data-stop="4762.756000">We also don't want contributors to burn out.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="4763.257000" data-stop="4767.799000">We want people to be able to experiment and</span> <span class="audio-time caption" data-speaker="Sacha" data-start="4767.859000" data-stop="4769.959000">communicate thoughtfully and kindly.</span> <p></p><span class="audio-time caption" data-speaker="Linkarzu" data-start="4771.740000" data-stop="4772.481000"><strong class="speaker-name">Linkarzu:</strong>  Okay.</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="4772.801000" data-stop="4775.202000">Now, two more questions that I have for you and</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="4775.242000" data-stop="4776.522000">I'll let you go.</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="4777.043000" data-stop="4778.922000">The first one that I have is...</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="4778.923000" data-stop="4779.684000">Where is this thing?</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="4779.744000" data-stop="4780.144000">Hold on.</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="4783.037000" data-stop="4783.918000">Where is this thing?</span> <p></p><div class="transcript-heading"><span class="audio-time" data-start="4784.000000">1:19:44</span> <strong>Thumbnails</strong></div><p></p><span class="audio-time caption" data-speaker="Linkarzu" data-start="4784.378000" data-stop="4789.701000"><strong class="speaker-name">Linkarzu:</strong> What did you think about the thumbnail that we</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="4789.721000" data-stop="4790.382000">came up with?</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="4791.463000" data-stop="4793.264000"><strong class="speaker-name">Sacha:</strong>  You know, some people in the community</span> <span class="audio-time caption" data-speaker="Sacha" data-start="4793.284000" data-stop="4795.846000">were like, "Uh, what's up with that thumbnail?"</span> <span class="audio-time caption" data-speaker="Sacha" data-start="4798.067000" data-stop="4799.468000">Linkarzu likes to have fun with his</span> <span class="audio-time caption" data-speaker="Sacha" data-start="4799.548000" data-stop="4800.669000">AI-generated thumbnails.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="4801.289000" data-stop="4804.411000">But my daughter would like to say that she's</span> <span class="audio-time caption" data-speaker="Sacha" data-start="4804.471000" data-stop="4806.733000">never seen me do the [eyebrow] thing.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="4807.703000" data-stop="4810.625000">Also, she feels that the AI makes my eyes too big</span> <span class="audio-time caption" data-speaker="Sacha" data-start="4811.466000" data-stop="4813.126000">and she's not used to seeing</span> <span class="audio-time caption" data-speaker="Sacha" data-start="4813.127000" data-stop="4816.569000">my braid on that side.</span> <p></p><span class="audio-time caption" data-speaker="Linkarzu" data-start="4817.129000" data-stop="4818.490000"><strong class="speaker-name">Linkarzu:</strong>  Okay. That's good.</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="4818.630000" data-stop="4820.472000"><strong class="speaker-name">Sacha:</strong>  So you got like a zero out of five.</span> <p></p><span class="audio-time caption" data-speaker="Linkarzu" data-start="4823.566000" data-stop="4824.987000"><strong class="speaker-name">Linkarzu:</strong>  A zero out of five,</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="4824.988000" data-stop="4827.156000">and it's one of my favourite ones,</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="4827.157000" data-stop="4828.407000">Sacha, come on.</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="4828.408000" data-stop="4831.076000">Like, man, I don't know.</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="4831.040000" data-stop="4833.400000"><strong class="speaker-name">Sacha:</strong>  I'm not sure I've ever made that face.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="4833.400000" data-stop="4835.720000">I tried a couple of times afterwards,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="4835.720000" data-stop="4837.480000">but I think I just looked very confused.</span> <p></p><span class="audio-time caption" data-speaker="Linkarzu" data-start="4838.940000" data-stop="4840.640000"><strong class="speaker-name">Linkarzu:</strong>  What are these guys doing?</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="4840.819000" data-stop="4844.321000">Yeah, my channel is really random.</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="4844.401000" data-stop="4848.044000">I don't know why people still follow it, but AI</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="4848.144000" data-stop="4850.025000">helps me with ideas that I have.</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="4850.065000" data-stop="4854.167000">I had this idea in mind and I was like...</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="4854.168000" data-stop="4855.308000">I can bring those.</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="4856.369000" data-stop="4858.651000">Okay, that's enough with the thumbnail.</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="4858.851000" data-stop="4863.374000">Now, the final thing before I let you go is what</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="4863.454000" data-stop="4865.375000">would you recommend someone</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="4867.070000" data-stop="4869.293000">new into Emacs?</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="4869.653000" data-stop="4870.894000">What would you tell them?</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="4870.975000" data-stop="4872.216000">Hey, go and learn this.</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="4872.276000" data-stop="4874.098000">Go and read my blog post.</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="4874.398000" data-stop="4875.039000">What do you think?</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="4875.540000" data-stop="4878.783000">Someone just watching this video not knowing what</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="4878.963000" data-stop="4884.189000">Emacs is but they were captivated by the wild</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="4884.249000" data-stop="4885.530000">things that you do in Emacs</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="4885.531000" data-stop="4886.292000">and they're going to be, like,</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="4886.812000" data-stop="4888.354000">I want to be that Chad.</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="4888.534000" data-stop="4891.778000">I want to be the Giga Stacey.</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="4891.798000" data-stop="4894.620000">Because it's Giga Chad and Giga Stacey</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="4894.621000" data-stop="4896.804000">I think is the female version of it.</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="4896.864000" data-stop="4898.246000">So what would you say to them?</span> <p></p><div class="transcript-heading"><span class="audio-time" data-start="4899.000000">1:21:39</span> <strong>Advice for Emacs beginners: connect with people</strong></div><p></p><span class="audio-time caption" data-speaker="Sacha" data-start="4899.615000" data-stop="4902.556000"><strong class="speaker-name">Sacha:</strong>  I would say go connect with people.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="4902.656000" data-stop="4904.897000">Now, it's very difficult sometimes to find an</span> <span class="audio-time caption" data-speaker="Sacha" data-start="4904.997000" data-stop="4907.718000">Emacs user in your physical location, but there</span> <span class="audio-time caption" data-speaker="Sacha" data-start="4907.778000" data-stop="4910.018000">are meetups and there's Reddit and there's like,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="4910.038000" data-stop="4912.319000">you know, there's EmacsConf and there are</span> <span class="audio-time caption" data-speaker="Sacha" data-start="4912.339000" data-stop="4914.920000">virtual meetups, as I mentioned, there are</span> <span class="audio-time caption" data-speaker="Sacha" data-start="4914.940000" data-stop="4917.080000">mailing lists, there's IRC channels.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="4917.601000" data-stop="4920.221000">It's because Emacs can be really overwhelming if</span> <span class="audio-time caption" data-speaker="Sacha" data-start="4920.241000" data-stop="4921.642000">you're learning it by yourself.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="4922.422000" data-stop="4924.143000">There are all sorts of things</span> <span class="audio-time caption" data-speaker="Sacha" data-start="4924.144000" data-stop="4925.364000">that you might not even know</span> <span class="audio-time caption" data-speaker="Sacha" data-start="4925.365000" data-stop="4927.826000">to ask for or explore,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="4927.827000" data-stop="4930.529000">because you don't even know it's possible.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="4931.230000" data-stop="4935.133000">For me, learning Emacs in the community has</span> <span class="audio-time caption" data-speaker="Sacha" data-start="4935.213000" data-stop="4936.754000">been really helpful.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="4936.854000" data-stop="4938.516000">I feel like I've barely scratched the surface,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="4938.556000" data-stop="4940.517000">because I'm always being inspired by other people</span> <span class="audio-time caption" data-speaker="Sacha" data-start="4941.018000" data-stop="4942.738000">who are sharing the cool projects</span> <span class="audio-time caption" data-speaker="Sacha" data-start="4942.739000" data-stop="4943.539000">that they're working on</span> <span class="audio-time caption" data-speaker="Sacha" data-start="4943.540000" data-stop="4945.340000">or the ideas that they're building</span> <span class="audio-time caption" data-speaker="Sacha" data-start="4945.341000" data-stop="4946.723000">by themselves or with assistance.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="4947.263000" data-stop="4949.645000">Definitely, large language models can help</span> <span class="audio-time caption" data-speaker="Sacha" data-start="4949.685000" data-stop="4952.306000">with some of it, but it's still limited to what</span> <span class="audio-time caption" data-speaker="Sacha" data-start="4952.326000" data-stop="4952.967000">you can ask.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="4953.527000" data-stop="4958.050000">So if you can hook up with the blog posts or with</span> <span class="audio-time caption" data-speaker="Sacha" data-start="4958.150000" data-stop="4960.111000">the IRC channels and all these other ways to</span> <span class="audio-time caption" data-speaker="Sacha" data-start="4960.331000" data-stop="4962.533000">connect with the Emacs community, I think that</span> <span class="audio-time caption" data-speaker="Sacha" data-start="4962.593000" data-stop="4965.074000">makes Emacs learning a lot more fun and a lot</span> <span class="audio-time caption" data-speaker="Sacha" data-start="4965.094000" data-stop="4965.735000">more effective.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="4966.535000" data-stop="4967.247000">As you mentioned,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="4967.248000" data-stop="4968.836000">Prot does have a coaching service,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="4968.837000" data-stop="4970.638000">so that might be an excellent way to start.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="4971.439000" data-stop="4973.620000">If your budget doesn't extend to €10 an hour,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="4973.740000" data-stop="4977.763000">then you can always try IRC or other places</span> <span class="audio-time caption" data-speaker="Sacha" data-start="4977.803000" data-stop="4978.424000">through the meetups.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="4978.464000" data-stop="4980.425000">People often bring their questions there as well</span> <span class="audio-time caption" data-speaker="Sacha" data-start="4981.186000" data-stop="4983.507000">and learn from the kinds of cool things that</span> <span class="audio-time caption" data-speaker="Sacha" data-start="4983.527000" data-stop="4984.208000">people are sharing.</span> <p></p><span class="audio-time caption" data-speaker="Linkarzu" data-start="4985.288000" data-stop="4986.790000"><strong class="speaker-name">Linkarzu:</strong>  Okay, amazing, Sacha.</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="4986.810000" data-stop="4988.231000"><strong class="speaker-name">Sacha:</strong>  Which actually brings me to stuff that I</span> <span class="audio-time caption" data-speaker="Sacha" data-start="4988.271000" data-stop="4991.132000">want to pick your brain about</span> <span class="audio-time caption" data-speaker="Sacha" data-start="4991.133000" data-stop="4993.034000">before I let you go either.</span> <p></p><div class="transcript-heading"><span class="audio-time" data-start="4996.000000">1:23:16</span> <strong>The Neovim community could use a blog aggregator like Planet Emacslife</strong></div><p></p><span class="audio-time caption" data-speaker="Sacha" data-start="4996.963000" data-stop="4999.604000"><strong class="speaker-name">Sacha:</strong> The Neovim community does YouTube really well,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="5000.425000" data-stop="5001.766000">which is cool.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="5002.146000" data-stop="5006.649000">But there's one Reddit post asking, hey, is there</span> <span class="audio-time caption" data-speaker="Sacha" data-start="5006.669000" data-stop="5008.691000">a Planet Emacslife equivalent for Vim?</span> <span class="audio-time caption" data-speaker="Sacha" data-start="5008.931000" data-stop="5011.673000">Basically an aggregator that brings together Vim</span> <span class="audio-time caption" data-speaker="Sacha" data-start="5011.693000" data-stop="5015.516000">blogs or what's going on in this conference stuff.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="5015.816000" data-stop="5018.498000">I would like the Neovim community to be more</span> <span class="audio-time caption" data-speaker="Sacha" data-start="5018.578000" data-stop="5019.959000">vibrant and better connected.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="5020.980000" data-stop="5022.461000">I mean, not that you really need that help.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="5022.481000" data-stop="5024.042000">You've got way more users than the Emacs</span> <span class="audio-time caption" data-speaker="Sacha" data-start="5024.062000" data-stop="5024.923000">community and that's fine.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="5025.203000" data-stop="5027.645000">But it'd be really interesting to see people</span> <span class="audio-time caption" data-speaker="Sacha" data-start="5027.665000" data-stop="5031.228000">sharing blog posts and sharing cool ideas.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="5031.288000" data-stop="5034.310000">There's r/neovim, but you know, there's got to</span> <span class="audio-time caption" data-speaker="Sacha" data-start="5034.350000" data-stop="5036.592000">be so much more that people can share with each</span> <span class="audio-time caption" data-speaker="Sacha" data-start="5036.672000" data-stop="5039.474000">other and bounce ideas off each other and have</span> <span class="audio-time caption" data-speaker="Sacha" data-start="5039.495000" data-stop="5040.976000">those kinds of conversations about.</span> <p></p><span class="audio-time caption" data-speaker="Linkarzu" data-start="5041.860000" data-stop="5043.181000"><strong class="speaker-name">Linkarzu:</strong>  You have a really good point.</span> <p></p><div class="transcript-heading"><span class="audio-time" data-start="5043.000000">1:24:03</span> <strong>Why Emacs News</strong></div><p></p><span class="audio-time caption" data-speaker="Linkarzu" data-start="5043.421000" data-stop="5045.102000"><strong class="speaker-name">Linkarzu:</strong> This is why you do your blog posts.</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="5045.362000" data-stop="5046.082000">Is that right?</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="5046.242000" data-stop="5049.124000">Like you try to aggregate all of the different</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="5049.504000" data-stop="5052.306000">Emacs-related news, videos, articles, whatever,</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="5052.446000" data-stop="5053.985000">anything Emacs-related,</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="5053.986000" data-stop="5056.108000">you put it in your blog post.</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="5056.348000" data-stop="5056.708000"><strong class="speaker-name">Sacha:</strong>  Yeah, it's...</span> <span class="audio-time caption" data-speaker="Sacha" data-start="5057.008000" data-stop="5058.969000">It's kind of like having a water cooler, right,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="5059.289000" data-stop="5059.909000">if you have a place</span> <span class="audio-time caption" data-speaker="Sacha" data-start="5059.910000" data-stop="5061.430000">where you can bump into other people.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="5061.851000" data-stop="5063.832000">And that Emacs News there, which is the second</span> <span class="audio-time caption" data-speaker="Sacha" data-start="5063.892000" data-stop="5067.654000">link on this page title, that takes me just about</span> <span class="audio-time caption" data-speaker="Sacha" data-start="5067.774000" data-stop="5070.414000">an hour or two to put together,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="5070.415000" data-stop="5072.355000">depending on how distracted I am</span> <span class="audio-time caption" data-speaker="Sacha" data-start="5072.356000" data-stop="5073.476000">by all the cool ideas</span> <span class="audio-time caption" data-speaker="Sacha" data-start="5073.477000" data-stop="5074.297000">that I come across.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="5074.737000" data-stop="5076.278000">I've done this on livestream so people can</span> <span class="audio-time caption" data-speaker="Sacha" data-start="5076.318000" data-stop="5079.280000">laugh at my "Ooh, shiny!".</span> <span class="audio-time caption" data-speaker="Sacha" data-start="5081.701000" data-stop="5085.062000">It's built on top of a fair bit of automation.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="5085.102000" data-stop="5087.604000">I just upvote links on Reddit.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="5087.844000" data-stop="5089.565000">The calendar comes in automatically.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="5089.665000" data-stop="5091.806000">The stuff on the blog posts comes in automatically.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="5092.186000" data-stop="5093.947000">I just categorize things so that people who are</span> <span class="audio-time caption" data-speaker="Sacha" data-start="5094.007000" data-stop="5096.268000">interested in a particular subject area don't</span> <span class="audio-time caption" data-speaker="Sacha" data-start="5096.308000" data-stop="5098.309000">have to wade through 60 to 70 links.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="5098.389000" data-stop="5100.410000">They can focus on one category if they want to.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="5100.930000" data-stop="5102.831000">But it should not be impossible to do something</span> <span class="audio-time caption" data-speaker="Sacha" data-start="5102.871000" data-stop="5104.072000">like this for Vim.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="5104.513000" data-stop="5108.475000">I'm sure that maybe, especially with org.nvim</span> <span class="audio-time caption" data-speaker="Sacha" data-start="5108.816000" data-stop="5109.635000">and other things,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="5109.636000" data-stop="5110.896000">maybe people will post more notes,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="5110.897000" data-stop="5112.678000">because literate programming is an</span> <span class="audio-time caption" data-speaker="Sacha" data-start="5112.898000" data-stop="5115.540000">excellent way to make things clear to yourself</span> <span class="audio-time caption" data-speaker="Sacha" data-start="5115.620000" data-stop="5116.381000">and to other people.</span> <p></p><div class="transcript-heading"><span class="audio-time" data-start="5116.000000">1:25:16</span> <strong>Neovim and Emacs community cultures</strong></div><p></p><span class="audio-time caption" data-speaker="Linkarzu" data-start="5116.641000" data-stop="5117.021000"><strong class="speaker-name">Linkarzu:</strong>  Hate?</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="5117.421000" data-stop="5118.842000">It's like, I don't know, there's</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="5119.863000" data-stop="5122.806000">a lot of crazy people on the Neovim subreddit.</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="5123.046000" data-stop="5126.629000">I don't know if that's a particularity of</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="5126.870000" data-stop="5128.491000">Neovim users.</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="5128.691000" data-stop="5131.274000">We're all toxic and we just hate each other.</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="5132.115000" data-stop="5133.436000"><strong class="speaker-name">Sacha:</strong>  Yeah, maybe you should just come over to</span> <span class="audio-time caption" data-speaker="Sacha" data-start="5133.456000" data-stop="5135.137000">the Emacs community. We have hot chocolate.</span> <p></p><span class="audio-time caption" data-speaker="Linkarzu" data-start="5135.838000" data-stop="5137.939000"><strong class="speaker-name">Linkarzu:</strong>  Now, I have gone to the</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="5137.940000" data-stop="5139.442000">Emacs side of things.</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="5139.922000" data-stop="5143.306000">Apart from frazzor749, I think he's an Emacs user</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="5143.326000" data-stop="5145.228000">because he's abusive.</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="5146.790000" data-stop="5148.271000">That's in Spanish.</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="5148.311000" data-stop="5150.954000">I don't know how to translate it.</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="5151.034000" data-stop="5151.555000">He's mean.</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="5151.935000" data-stop="5152.676000">He's mean to me.</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="5152.956000" data-stop="5155.058000">But if you go to the</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="5155.939000" data-stop="5158.882000">Emacs subreddit, it's like rainbows and</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="5158.922000" data-stop="5161.044000">butterflies. Everyone's like...</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="5161.404000" data-stop="5164.145000">There's not a lot of hate</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="5164.146000" data-stop="5166.848000">and it's something that...</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="5166.849000" data-stop="5170.191000">I always wonder why does that happen?</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="5170.472000" data-stop="5172.793000">Like, it's not moderators,</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="5172.794000" data-stop="5173.514000">it's just people.</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="5173.815000" data-stop="5175.516000">Is it just because it's old people?</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="5177.998000" data-stop="5180.442000">Like the professor, he doesn't want to fight</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="5180.482000" data-stop="5180.882000">anymore.</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="5180.942000" data-stop="5181.663000">He's old enough.</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="5181.724000" data-stop="5183.506000">He's just, he retired already.</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="5183.566000" data-stop="5186.610000">He's just ready to pass to the next life.</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="5190.420000" data-stop="5191.817000"><strong class="speaker-name">Sacha:</strong>  Hypothesis number two,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="5191.818000" data-stop="5193.420000">maybe your editor makes you grumpy.</span> <p></p><span class="audio-time caption" data-speaker="Linkarzu" data-start="5196.356000" data-stop="5198.257000"><strong class="speaker-name">Linkarzu:</strong>  Right? It could be.</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="5198.517000" data-stop="5200.999000"><strong class="speaker-name">Sacha:</strong>  I don't know.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="5201.179000" data-stop="5203.100000">When I talk to people, they say,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="5203.120000" data-stop="5205.421000">"Working on Emacs, tweaking my Emacs is fun.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="5205.561000" data-stop="5206.502000">It's relaxing.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="5206.642000" data-stop="5211.405000">It's what I do because I enjoy doing it."</span> <span class="audio-time caption" data-speaker="Sacha" data-start="5214.086000" data-stop="5214.806000">I don't know.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="5215.307000" data-stop="5217.788000">I think for Emacs, because we're so used to</span> <span class="audio-time caption" data-speaker="Sacha" data-start="5220.159000" data-stop="5222.703000">feeling like our customizations are actually very</span> <span class="audio-time caption" data-speaker="Sacha" data-start="5222.723000" data-stop="5224.885000">personal... They're us figuring out</span> <span class="audio-time caption" data-speaker="Sacha" data-start="5224.886000" data-stop="5225.786000">how to build up tools</span> <span class="audio-time caption" data-speaker="Sacha" data-start="5225.787000" data-stop="5227.890000">so they support us better.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="5227.910000" data-stop="5230.233000">We have no idea whether it'll work for</span> <span class="audio-time caption" data-speaker="Sacha" data-start="5230.253000" data-stop="5231.934000">somebody else, but if it's useful,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="5231.935000" data-stop="5233.417000">here, have it. It's a gift.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="5235.480000" data-stop="5236.920000">For me, the feeling of</span> <span class="audio-time caption" data-speaker="Sacha" data-start="5236.921000" data-stop="5239.481000">being in the Emacs community is,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="5239.482000" data-stop="5241.984000">it just feels like we're sharing</span> <span class="audio-time caption" data-speaker="Sacha" data-start="5242.084000" data-stop="5243.544000">all these things that we've figured out</span> <span class="audio-time caption" data-speaker="Sacha" data-start="5243.545000" data-stop="5244.724000">for ourselves</span> <span class="audio-time caption" data-speaker="Sacha" data-start="5244.725000" data-stop="5245.445000">in the hopes that</span> <span class="audio-time caption" data-speaker="Sacha" data-start="5245.446000" data-stop="5246.846000">it might help somebody else.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="5247.487000" data-stop="5250.447000">And it pays off often enough that...</span> <span class="audio-time caption" data-speaker="Sacha" data-start="5250.448000" data-stop="5251.468000">I might share something</span> <span class="audio-time caption" data-speaker="Sacha" data-start="5251.469000" data-stop="5253.029000">and then several years later</span> <span class="audio-time caption" data-speaker="Sacha" data-start="5253.030000" data-stop="5254.671000">someone will come across the same blog post</span> <span class="audio-time caption" data-speaker="Sacha" data-start="5254.711000" data-stop="5257.191000">and say, oh yeah, I took that idea,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="5257.192000" data-stop="5258.032000">I built on top of it,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="5258.033000" data-stop="5259.312000">and now you can do mind maps in Emacs,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="5259.313000" data-stop="5261.495000">because yes, why not?</span> <span class="audio-time caption" data-speaker="Sacha" data-start="5263.056000" data-stop="5264.578000">I was like, wow, that's amazing.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="5265.099000" data-stop="5266.782000">So for us, there's always been a community of</span> <span class="audio-time caption" data-speaker="Sacha" data-start="5266.882000" data-stop="5272.249000">sharing, and knowing that there's no guarantee</span> <span class="audio-time caption" data-speaker="Sacha" data-start="5272.289000" data-stop="5274.192000">it'll work for anyone else, but it's amazing if</span> <span class="audio-time caption" data-speaker="Sacha" data-start="5274.232000" data-stop="5274.552000">it does.</span> <p></p><span class="audio-time caption" data-speaker="Linkarzu" data-start="5275.179000" data-stop="5275.479000"><strong class="speaker-name">Linkarzu:</strong>  Uh-huh.</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="5275.959000" data-stop="5279.341000">Or is there a cult and people are all connected</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="5279.441000" data-stop="5281.342000">and when someone is misbehaving, they get</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="5281.422000" data-stop="5282.283000">punished publicly?</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="5282.503000" data-stop="5285.023000">Like Prot in the thumbnail, it's like,</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="5285.024000" data-stop="5286.685000">it's time you get punished, my boy.</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="5286.985000" data-stop="5289.967000"><strong class="speaker-name">Sacha:</strong>  I was trying to find that bashbunni</span> <span class="audio-time caption" data-speaker="Sacha" data-start="5290.147000" data-stop="5293.849000">video clip where she says, something</span> <span class="audio-time caption" data-speaker="Sacha" data-start="5293.869000" data-stop="5295.730000">along the lines of, "It's not a cult, but have you</span> <span class="audio-time caption" data-speaker="Sacha" data-start="5295.950000" data-stop="5297.511000">heard about our Lord and Savior Org Mode?"</span> <span class="audio-time caption" data-speaker="Sacha" data-start="5303.394000" data-stop="5307.217000">It's fun. I've met some of the nicest people</span> <span class="audio-time caption" data-speaker="Sacha" data-start="5307.317000" data-stop="5309.318000">in the Emacs community. I love the fact that</span> <span class="audio-time caption" data-speaker="Sacha" data-start="5309.358000" data-stop="5312.060000">this little corner of the internet is about</span> <span class="audio-time caption" data-speaker="Sacha" data-start="5312.200000" data-stop="5314.901000">sharing what works for you and imagining what</span> <span class="audio-time caption" data-speaker="Sacha" data-start="5314.921000" data-stop="5317.623000">could be even better and being inspired by what</span> <span class="audio-time caption" data-speaker="Sacha" data-start="5317.683000" data-stop="5319.044000">other people are doing with their lives.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="5319.564000" data-stop="5320.945000">So that part is really cool.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="5321.545000" data-stop="5324.047000">I hope that you have or can develop something</span> <span class="audio-time caption" data-speaker="Sacha" data-start="5324.067000" data-stop="5325.588000">like that for Neovim as well.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="5326.228000" data-stop="5329.831000">I think that, you know, you've definitely got the</span> <span class="audio-time caption" data-speaker="Sacha" data-start="5329.931000" data-stop="5331.532000">videos and the reacts going.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="5332.312000" data-stop="5334.453000">It'll be interesting to see if blog posts could</span> <span class="audio-time caption" data-speaker="Sacha" data-start="5334.473000" data-stop="5335.574000">make things more searchable.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="5336.174000" data-stop="5338.576000">And for you, you have a lot of text that comes</span> <span class="audio-time caption" data-speaker="Sacha" data-start="5338.616000" data-stop="5339.336000">out of your videos.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="5339.356000" data-stop="5340.977000">You could certainly get started with that.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="5341.338000" data-stop="5343.999000">For us, we also have code.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="5345.240000" data-stop="5347.182000">Because it's a lot about personalization and</span> <span class="audio-time caption" data-speaker="Sacha" data-start="5347.222000" data-stop="5348.383000">configuration, right?</span> <span class="audio-time caption" data-speaker="Sacha" data-start="5348.984000" data-stop="5351.246000">So we have this long tradition of literate</span> <span class="audio-time caption" data-speaker="Sacha" data-start="5351.266000" data-stop="5353.348000">programming and sharing the snippets of your</span> <span class="audio-time caption" data-speaker="Sacha" data-start="5354.029000" data-stop="5356.471000">config with an explanation in it.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="5357.212000" data-stop="5360.375000">I'm curious to see what that could happen,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="5361.096000" data-stop="5363.158000">what that could do with the Vim community as well.</span> <p></p><span class="audio-time caption" data-speaker="Linkarzu" data-start="5363.478000" data-stop="5364.759000"><strong class="speaker-name">Linkarzu:</strong>  Yeah, you have a point.</span> <p></p><a href="https://sachachua.com/blog/2026/11/my-chat-with-linkarzu/Emacs%20for%20Everything%20-%20Why%20Sacha%20Chua%20Still%20Lives%20in%20Emacs%20After%2020+%20Years%20[Sw6sCMIypmk]-01-29-24-985.jpg"><img loading="lazy" target="_blank" src="https://sachachua.com/blog/2026/11/my-chat-with-linkarzu/Emacs%20for%20Everything%20-%20Why%20Sacha%20Chua%20Still%20Lives%20in%20Emacs%20After%2020+%20Years%20[Sw6sCMIypmk]-01-29-24-985.jpg" alt="image from video 01:29:24.985" data-time="01:29:24.985"></a><span class="audio-time caption" data-speaker="Linkarzu" data-start="5364.959000" data-stop="5369.223000"><strong class="speaker-name">Linkarzu:</strong> There's this dotfyle thing that came up like some</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="5369.243000" data-stop="5371.184000">years ago, but I think it's just mainly an</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="5371.404000" data-stop="5374.787000">automated thing that pulls up GitHub repos.</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="5374.927000" data-stop="5378.950000">I don't think it has like an actual person that</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="5378.970000" data-stop="5382.313000">is behind it, pulling up news and aggregating all</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="5382.333000" data-stop="5382.613000">the stuff.</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="5382.873000" data-stop="5385.155000">There needs to be a human that does this, that</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="5385.395000" data-stop="5388.177000">adds the touch and adds the love that you do on</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="5388.197000" data-stop="5389.098000">the Emacs side of things.</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="5389.678000" data-stop="5391.199000">I'm not willing to take that job.</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="5391.499000" data-stop="5393.840000">I don't know if someone on the Neovim community</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="5394.121000" data-stop="5401.044000">is willing to do it, because, yeah.</span> <p></p><div class="transcript-heading"><span class="audio-time" data-start="5401.000000">1:30:01</span> <strong>Not just about plugins, but also workflows and stories</strong></div><p></p><span class="audio-time caption" data-speaker="Sacha" data-start="5401.204000" data-stop="5403.726000"><strong class="speaker-name">Sacha:</strong>  It's not just about the plugins or the</span> <span class="audio-time caption" data-speaker="Sacha" data-start="5403.746000" data-stop="5404.266000">code, right?</span> <span class="audio-time caption" data-speaker="Sacha" data-start="5404.366000" data-stop="5406.847000">For me, what's really interesting are the</span> <span class="audio-time caption" data-speaker="Sacha" data-start="5407.408000" data-stop="5409.369000">workflows that people have around it.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="5409.569000" data-stop="5411.430000">You can look at someone's keyboard shortcuts, but</span> <span class="audio-time caption" data-speaker="Sacha" data-start="5411.490000" data-stop="5413.951000">it's when they tell a story of how they're doing</span> <span class="audio-time caption" data-speaker="Sacha" data-start="5414.011000" data-stop="5416.153000">it or when they show a video, but then you're</span> <span class="audio-time caption" data-speaker="Sacha" data-start="5416.173000" data-stop="5417.733000">like, wait, wait, back up a little bit.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="5417.773000" data-stop="5420.875000">How did you do that thing, right?</span> <span class="audio-time caption" data-speaker="Sacha" data-start="5420.995000" data-stop="5422.015000">A lot of the times,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="5422.016000" data-stop="5424.156000">we learn about our tools best</span> <span class="audio-time caption" data-speaker="Sacha" data-start="5424.157000" data-stop="5425.758000">when we're looking over the shoulder of</span> <span class="audio-time caption" data-speaker="Sacha" data-start="5425.818000" data-stop="5427.498000">somebody else who's using it,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="5427.499000" data-stop="5428.899000">and we're seeing the kinds of things</span> <span class="audio-time caption" data-speaker="Sacha" data-start="5428.900000" data-stop="5432.421000">that they might completely forget to mention</span> <span class="audio-time caption" data-speaker="Sacha" data-start="5432.422000" data-stop="5433.622000">because to them,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="5433.623000" data-stop="5434.964000">they already take it for granted.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="5435.684000" data-stop="5440.047000">I love that kind of sharing that people have</span> <span class="audio-time caption" data-speaker="Sacha" data-start="5440.247000" data-stop="5443.388000">in meetups, at conferences, in video comments,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="5443.389000" data-stop="5446.350000">in blog posts, where we're just sharing,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="5446.351000" data-stop="5447.771000">okay, this is what I've figured out</span> <span class="audio-time caption" data-speaker="Sacha" data-start="5447.772000" data-stop="5449.793000">about how to use things.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="5450.094000" data-stop="5452.655000">If you have any other questions... Often it's</span> <span class="audio-time caption" data-speaker="Sacha" data-start="5452.675000" data-stop="5454.056000">like, what font is that?</span> <p></p><span class="audio-time caption" data-speaker="Linkarzu" data-start="5455.517000" data-stop="5456.378000"><strong class="speaker-name">Linkarzu:</strong>  What font is that?</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="5456.398000" data-stop="5457.278000">That's a common one.</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="5457.298000" data-stop="5459.099000">What color scheme is that?</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="5459.139000" data-stop="5459.720000"><strong class="speaker-name">Sacha:</strong>  People share.</span> <p></p><span class="audio-time caption" data-speaker="Linkarzu" data-start="5460.320000" data-stop="5462.342000"><strong class="speaker-name">Linkarzu:</strong>  Okay. All right, Sacha. Amazing.</span> <p></p><div class="transcript-heading"><span class="audio-time" data-start="5462.000000">1:31:02</span> <strong>Planning an Emacs and Neovim panel with Prot</strong></div><p></p><span class="audio-time caption" data-speaker="Linkarzu" data-start="5462.382000" data-stop="5465.884000"><strong class="speaker-name">Linkarzu:</strong> Do you have any other topics before we wrap it up</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="5465.984000" data-stop="5467.845000">or something else that you would like to discuss?</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="5467.865000" data-stop="5469.726000">Because I've been asking all the questions and</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="5470.327000" data-stop="5472.168000">you can ask whatever you want as well.</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="5474.795000" data-stop="5477.598000"><strong class="speaker-name">Sacha:</strong>  I'm already thinking of several</span> <span class="audio-time caption" data-speaker="Sacha" data-start="5477.678000" data-stop="5482.103000">follow-up things that I want to explore before</span> <span class="audio-time caption" data-speaker="Sacha" data-start="5482.303000" data-stop="5483.184000">our next conversation.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="5483.204000" data-stop="5484.705000">We'll probably have another conversation</span> <span class="audio-time caption" data-speaker="Sacha" data-start="5484.706000" data-stop="5485.246000">in the future.</span> <p></p><span class="audio-time caption" data-speaker="Linkarzu" data-start="5485.667000" data-stop="5486.728000"><strong class="speaker-name">Linkarzu:</strong>  With Prot, right?</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="5486.828000" data-stop="5488.210000">We can have a conversation with Prot.</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="5488.490000" data-stop="5489.651000">I was thinking as well.</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="5490.492000" data-stop="5492.713000">about Neovim versus Emacs.</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="5492.733000" data-stop="5494.533000">Because I did that video,</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="5494.534000" data-stop="5496.095000">I think it was over a year ago.</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="5496.475000" data-stop="5498.036000">There were four guests, right?</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="5498.496000" data-stop="5500.617000">The people in the comments were like, but you</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="5500.657000" data-stop="5501.938000">should have invited Prot.</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="5502.178000" data-stop="5503.618000">You should have invited Prot</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="5503.619000" data-stop="5505.980000">or the SystemCrafters guy, you know?</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="5506.220000" data-stop="5507.441000">Now I can have eight guests.</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="5507.501000" data-stop="5510.282000">Imagine four on the Emacs side of things and four</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="5510.383000" data-stop="5511.543000">on the Neovim side of things.</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="5511.563000" data-stop="5513.164000">The powerful ones, you know?</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="5513.764000" data-stop="5514.305000">That would be...</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="5515.225000" data-stop="5517.725000"><strong class="speaker-name">Sacha:</strong>  It's not even really Neovim versus Emacs</span> <span class="audio-time caption" data-speaker="Sacha" data-start="5517.786000" data-stop="5518.906000">who's got the best tool.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="5519.346000" data-stop="5521.645000">I think it's more like, okay,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="5521.646000" data-stop="5522.826000">you've got Neovim stuff.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="5522.846000" data-stop="5523.347000">That's cool.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="5523.387000" data-stop="5524.587000">And you've got Emacs stuff.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="5524.787000" data-stop="5525.227000">That's cool.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="5525.327000" data-stop="5528.788000">How can we inspire each other?</span> <span class="audio-time caption" data-speaker="Sacha" data-start="5529.308000" data-stop="5531.348000">How can we be like, oh, that's a great idea.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="5531.368000" data-stop="5532.408000">I've got something similar.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="5532.448000" data-stop="5533.388000">That's a little like this.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="5533.688000" data-stop="5534.748000">I'm going to yoink your idea</span> <span class="audio-time caption" data-speaker="Sacha" data-start="5534.749000" data-stop="5535.889000">and smoosh it into this one.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="5536.289000" data-stop="5538.649000">Then we're going to see what we can make this.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="5539.210000" data-stop="5540.749000">I think that kind of back and forth</span> <span class="audio-time caption" data-speaker="Sacha" data-start="5540.750000" data-stop="5541.590000">would be amazing.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="5541.950000" data-stop="5544.250000">Even in preparation for this conversation,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="5544.251000" data-stop="5545.850000">I've had a lot of fun tinkering with</span> <span class="audio-time caption" data-speaker="Sacha" data-start="5545.851000" data-stop="5551.151000">my video editing workflow, with the conversations,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="5551.152000" data-stop="5552.391000">the live transcriptions,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="5552.392000" data-stop="5555.093000">the animation of SVGs in Emacs,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="5555.333000" data-stop="5557.893000">the reordering of group elements inside an SVG</span> <span class="audio-time caption" data-speaker="Sacha" data-start="5557.894000" data-stop="5561.394000">so that I don't have to use Inkscape</span> <span class="audio-time caption" data-speaker="Sacha" data-start="5561.395000" data-stop="5562.395000">to manually order things,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="5562.475000" data-stop="5566.796000">I can just use Org Mode and shuffle items around</span> <span class="audio-time caption" data-speaker="Sacha" data-start="5566.836000" data-stop="5570.477000">in the list in order to get my SVG to animate in</span> <span class="audio-time caption" data-speaker="Sacha" data-start="5570.497000" data-stop="5571.577000">the order that I wanted to.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="5573.598000" data-stop="5576.439000">Oh, and I have this thing now also now where I</span> <span class="audio-time caption" data-speaker="Sacha" data-start="5576.479000" data-stop="5578.620000">can give it a YouTube URL and it opens a</span> <span class="audio-time caption" data-speaker="Sacha" data-start="5578.640000" data-stop="5581.921000">transcript for that video, so that I can clip</span> <span class="audio-time caption" data-speaker="Sacha" data-start="5582.001000" data-stop="5585.963000">things out of your most recent stuff directly</span> <span class="audio-time caption" data-speaker="Sacha" data-start="5586.003000" data-stop="5587.503000">from your YouTube channel without having to</span> <span class="audio-time caption" data-speaker="Sacha" data-start="5587.523000" data-stop="5589.324000">download it or run the transcription myself</span> <span class="audio-time caption" data-speaker="Sacha" data-start="5589.344000" data-stop="5591.905000">because YouTube has auto subs and chapters,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="5592.005000" data-stop="5593.386000">thank you.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="5593.586000" data-stop="5596.807000">So yeah, I've had a lot of fun preparing for this</span> <span class="audio-time caption" data-speaker="Sacha" data-start="5596.867000" data-stop="5598.108000">conversation and I think</span> <span class="audio-time caption" data-speaker="Sacha" data-start="5598.808000" data-stop="5599.828000">as we get more people</span> <span class="audio-time caption" data-speaker="Sacha" data-start="5599.829000" data-stop="5602.070000">talking and exchanging ideas,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="5602.071000" data-stop="5603.912000">we'll have even more ideas to explore.</span> <p></p><span class="audio-time caption" data-speaker="Linkarzu" data-start="5604.353000" data-stop="5606.534000"><strong class="speaker-name">Linkarzu:</strong>  Yeah. I always do the versus thing,</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="5606.535000" data-stop="5607.375000">but it's not a versus.</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="5607.415000" data-stop="5610.137000">If you go and take a look at that old video,</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="5610.558000" data-stop="5612.518000">there was not like a debate, like,</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="5612.519000" data-stop="5613.800000">my tool is better than yours.</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="5613.881000" data-stop="5615.962000">It was friendly.</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="5616.283000" data-stop="5618.544000">It was a pretty friendly conversation.</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="5619.405000" data-stop="5622.186000"><strong class="speaker-name">Sacha:</strong>  I want Neovim to thrive and all the</span> <span class="audio-time caption" data-speaker="Sacha" data-start="5622.226000" data-stop="5624.727000">other Vim variants and all the other editors that</span> <span class="audio-time caption" data-speaker="Sacha" data-start="5624.747000" data-stop="5626.186000">people come up with,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="5626.187000" data-stop="5627.206000">because people are always</span> <span class="audio-time caption" data-speaker="Sacha" data-start="5627.207000" data-stop="5628.907000">choosing these tools for their reasons</span> <span class="audio-time caption" data-speaker="Sacha" data-start="5628.908000" data-stop="5630.468000">and they're perfectly wonderful reasons.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="5630.908000" data-stop="5633.048000">I want to see what extent</span> <span class="audio-time caption" data-speaker="Sacha" data-start="5633.049000" data-stop="5633.969000">we can take it, right?</span> <span class="audio-time caption" data-speaker="Sacha" data-start="5634.449000" data-stop="5635.870000">How awesome can it get?</span> <span class="audio-time caption" data-speaker="Sacha" data-start="5636.510000" data-stop="5637.709000">And then of course,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="5637.710000" data-stop="5639.030000">if there's a really awesome idea,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="5639.031000" data-stop="5639.950000">chances are someone in Emacs</span> <span class="audio-time caption" data-speaker="Sacha" data-start="5639.951000" data-stop="5641.490000">is going to be like, oh yeah,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="5641.491000" data-stop="5643.632000">I can do that in about 15 lines of Emacs Lisp.</span> <p></p><span class="audio-time caption" data-speaker="Linkarzu" data-start="5644.232000" data-stop="5649.657000"><strong class="speaker-name">Linkarzu:</strong>  Oh yeah. Spicy takes there.</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="5650.818000" data-stop="5652.119000"><strong class="speaker-name">Sacha:</strong>  Who knows, right?</span> <span class="audio-time caption" data-speaker="Sacha" data-start="5652.559000" data-stop="5655.721000">Sometimes it might be that we'll call out</span> <span class="audio-time caption" data-speaker="Sacha" data-start="5655.722000" data-stop="5656.183000">to something.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="5656.543000" data-stop="5659.085000">Bastien Guerry was telling me, and I'm going to see</span> <span class="audio-time caption" data-speaker="Sacha" data-start="5659.465000" data-stop="5661.867000">if I remember this correctly, because he was</span> <span class="audio-time caption" data-speaker="Sacha" data-start="5661.887000" data-stop="5663.269000">telling me this anecdote in French,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="5664.438000" data-stop="5666.119000">which I only partially understand.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="5666.159000" data-stop="5668.820000">He was telling me that he was at a TupperVim</span> <span class="audio-time caption" data-speaker="Sacha" data-start="5669.240000" data-stop="5670.180000">community meeting.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="5671.421000" data-stop="5673.901000">They were sharing Vim tips and he was like,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="5673.981000" data-stop="5675.142000">"Oh, that's a really nice table.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="5675.222000" data-stop="5676.982000">How did you get it to display so nicely?"</span> <span class="audio-time caption" data-speaker="Sacha" data-start="5677.503000" data-stop="5679.463000">And the guy hemmed and hawed and eventually</span> <span class="audio-time caption" data-speaker="Sacha" data-start="5679.523000" data-stop="5682.144000">admitted that he had actually shelled out to</span> <span class="audio-time caption" data-speaker="Sacha" data-start="5682.244000" data-stop="5685.786000">Emacs to run the code and evaluate it and then</span> <span class="audio-time caption" data-speaker="Sacha" data-start="5685.806000" data-stop="5688.627000">get the layout back and then put</span> <span class="audio-time caption" data-speaker="Sacha" data-start="5688.667000" data-stop="5689.467000">it in Vim.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="5690.367000" data-stop="5695.050000">It's totally possible to borrow ideas and use</span> <span class="audio-time caption" data-speaker="Sacha" data-start="5695.070000" data-stop="5697.131000">them back and forth, even to the extent of</span> <span class="audio-time caption" data-speaker="Sacha" data-start="5697.632000" data-stop="5700.893000">calling the other plugin in order to just get the</span> <span class="audio-time caption" data-speaker="Sacha" data-start="5700.934000" data-stop="5701.414000">stuff done.</span> <p></p><span class="audio-time caption" data-speaker="Linkarzu" data-start="5701.814000" data-stop="5703.095000"><strong class="speaker-name">Linkarzu:</strong>  Yeah, I see that a lot.</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="5703.375000" data-stop="5705.036000">People are switching between two.</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="5705.316000" data-stop="5706.377000">Like, there's some</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="5707.477000" data-stop="5710.299000">people that switch to Helix for some reason.</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="5710.319000" data-stop="5711.639000">I don't know if you've heard about Helix.</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="5712.740000" data-stop="5713.380000">It's fine, whatever.</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="5713.420000" data-stop="5716.402000">But I've seen that crossover a lot.</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="5716.582000" data-stop="5718.902000">People switch from Neovim to Emacs,</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="5718.903000" data-stop="5722.105000">then they go from Emacs to Neovim and they're like this.</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="5722.325000" data-stop="5724.966000">That cross-pollination, is that how</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="5725.006000" data-stop="5725.446000">you say it?</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="5725.686000" data-stop="5728.788000">Helps both tools, right?</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="5729.713000" data-stop="5731.234000"><strong class="speaker-name">Sacha:</strong>  And it's plain text and you can ship</span> <span class="audio-time caption" data-speaker="Sacha" data-start="5731.254000" data-stop="5732.094000">things back and forth.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="5732.655000" data-stop="5736.196000">If you are a large-language-model-using person,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="5736.197000" data-stop="5737.898000">you can just use AI to translate code</span> <span class="audio-time caption" data-speaker="Sacha" data-start="5737.918000" data-stop="5739.899000">back and forth to... Who knows, we'll see.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="5740.399000" data-stop="5745.783000">If you want to use emacsclient or an</span> <span class="audio-time caption" data-speaker="Sacha" data-start="5745.903000" data-stop="5748.004000">embedded process or whatever else, that's also</span> <span class="audio-time caption" data-speaker="Sacha" data-start="5748.044000" data-stop="5748.604000">totally cool.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="5748.644000" data-stop="5751.086000">Whatever gets a job done and whatever lets you</span> <span class="audio-time caption" data-speaker="Sacha" data-start="5751.126000" data-stop="5752.687000">explore that idea, right?</span> <p></p><span class="audio-time caption" data-speaker="Linkarzu" data-start="5753.817000" data-stop="5754.378000"><strong class="speaker-name">Linkarzu:</strong>  Yep, yep, yep.</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="5754.959000" data-stop="5756.240000">One final thought that I have.</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="5756.520000" data-stop="5760.024000">What do you think about editors and terminals?</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="5760.404000" data-stop="5764.108000">Because people say like, okay, maybe I live in a</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="5764.148000" data-stop="5765.670000">bubble, you know, but on Twitter...</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="5766.717000" data-stop="5767.937000">Yeah, I think we live in a bubble.</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="5768.918000" data-stop="5770.358000">And that's what I get surrounded with.</span> <p></p><div class="transcript-heading"><span class="audio-time" data-start="5770.000000">1:36:10</span> <strong>AI agents versus Emacs as an interface toolkit</strong></div><p></p><span class="audio-time caption" data-speaker="Linkarzu" data-start="5770.998000" data-stop="5774.260000"><strong class="speaker-name">Linkarzu:</strong> But people is like, why do you still use a</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="5774.280000" data-stop="5775.120000">terminal, right?</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="5775.640000" data-stop="5777.281000">Now it's all about agents.</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="5778.101000" data-stop="5779.520000">Why do you use an editor</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="5779.521000" data-stop="5780.762000">in this day and age, right?</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="5780.782000" data-stop="5783.002000">There's a lot of people that actually don't use</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="5783.043000" data-stop="5785.003000">them because they are full agentic now.</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="5785.383000" data-stop="5786.004000">What do you think</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="5789.495000" data-stop="5794.020000">the future looks like for Emacs and Neovim and</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="5794.040000" data-stop="5795.781000">terminals?</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="5795.782000" data-stop="5797.444000">Neovim needs a terminal, right?</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="5797.484000" data-stop="5800.607000">So it's like that's what gives it</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="5800.608000" data-stop="5802.450000">superpowers as well.</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="5802.550000" data-stop="5803.952000">Do you have any thoughts you want to share on</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="5803.972000" data-stop="5804.152000">that?</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="5805.857000" data-stop="5808.819000"><strong class="speaker-name">Sacha:</strong>  I like the way that Emacs gives me kind</span> <span class="audio-time caption" data-speaker="Sacha" data-start="5808.859000" data-stop="5812.482000">of an interface toolkit if I want to edit videos</span> <span class="audio-time caption" data-speaker="Sacha" data-start="5812.562000" data-stop="5816.285000">as text or if I want to look at my agenda or if I</span> <span class="audio-time caption" data-speaker="Sacha" data-start="5816.365000" data-stop="5819.987000">want to make a buffer with buttons that I can</span> <span class="audio-time caption" data-speaker="Sacha" data-start="5820.027000" data-stop="5820.508000">click on.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="5821.749000" data-stop="5823.630000">It gives me a bit more of that richness and</span> <span class="audio-time caption" data-speaker="Sacha" data-start="5823.690000" data-stop="5826.552000">flexibility that going with either a</span> <span class="audio-time caption" data-speaker="Sacha" data-start="5826.612000" data-stop="5832.917000">conversational chat agent interface doesn't, or I</span> <span class="audio-time caption" data-speaker="Sacha" data-start="5832.957000" data-stop="5836.539000">would have to have the agent generate me a whole</span> <span class="audio-time caption" data-speaker="Sacha" data-start="5836.599000" data-stop="5838.681000">interface and then I would have to tell it, okay,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="5838.701000" data-stop="5841.723000">but I want it to behave this way, and then I</span> <span class="audio-time caption" data-speaker="Sacha" data-start="5841.763000" data-stop="5844.225000">wouldn't be able to integrate it as easily with</span> <span class="audio-time caption" data-speaker="Sacha" data-start="5844.245000" data-stop="5845.306000">the rest of my stuff.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="5846.106000" data-stop="5848.348000">I don't think, for me at least, that agents</span> <span class="audio-time caption" data-speaker="Sacha" data-start="5848.388000" data-stop="5849.309000">are quite there yet.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="5849.869000" data-stop="5850.770000">I'll give you an example.</span> <p></p><div class="transcript-heading"><span class="audio-time" data-start="5852.000000">1:37:32</span> <strong>Example: managing the schedule for EmacsConf</strong></div><p></p><span class="audio-time caption" data-speaker="Sacha" data-start="5852.111000" data-stop="5854.713000"><strong class="speaker-name">Sacha:</strong> So I'm organizing EmacsConf, right, and I need</span> <span class="audio-time caption" data-speaker="Sacha" data-start="5854.733000" data-stop="5857.495000">to keep track of the schedules that I've emailed</span> <span class="audio-time caption" data-speaker="Sacha" data-start="5857.535000" data-stop="5860.837000">speakers because that way I can tell if I've</span> <span class="audio-time caption" data-speaker="Sacha" data-start="5860.857000" data-stop="5864.120000">changed the schedule whether I need to email them</span> <span class="audio-time caption" data-speaker="Sacha" data-start="5864.160000" data-stop="5865.681000">again with a new schedule, right?</span> <span class="audio-time caption" data-speaker="Sacha" data-start="5865.921000" data-stop="5866.382000">Makes sense.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="5867.142000" data-stop="5869.965000">Because I also do my email within Emacs, I</span> <span class="audio-time caption" data-speaker="Sacha" data-start="5870.005000" data-stop="5872.767000">can set it up so that when I send the email, not</span> <span class="audio-time caption" data-speaker="Sacha" data-start="5872.827000" data-stop="5874.589000">when I've composed the email, because if I've</span> <span class="audio-time caption" data-speaker="Sacha" data-start="5874.629000" data-stop="5876.871000">composed the email using my mail merge but then I</span> <span class="audio-time caption" data-speaker="Sacha" data-start="5876.891000" data-stop="5878.533000">get distracted and I change my mind, it doesn't</span> <span class="audio-time caption" data-speaker="Sacha" data-start="5878.613000" data-stop="5879.614000">actually get sent yet, right?</span> <span class="audio-time caption" data-speaker="Sacha" data-start="5880.174000" data-stop="5882.837000">Only after I send the email will it go and update</span> <span class="audio-time caption" data-speaker="Sacha" data-start="5882.877000" data-stop="5886.240000">that specific talk's details in my Org Mode file</span> <span class="audio-time caption" data-speaker="Sacha" data-start="5886.300000" data-stop="5888.202000">with all of my conference talk information,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="5888.442000" data-stop="5888.882000">naturally.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="5890.184000" data-stop="5893.126000">And then that will be saved for the next time</span> <span class="audio-time caption" data-speaker="Sacha" data-start="5893.146000" data-stop="5894.727000">that I move the schedule around.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="5895.147000" data-stop="5897.989000">Now I guess theoretically someone could have an</span> <span class="audio-time caption" data-speaker="Sacha" data-start="5898.309000" data-stop="5900.691000">agent that says okay I give you access to my</span> <span class="audio-time caption" data-speaker="Sacha" data-start="5900.791000" data-stop="5903.873000">email, I give you access to the conference</span> <span class="audio-time caption" data-speaker="Sacha" data-start="5903.913000" data-stop="5908.035000">schedule web system or whatever database,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="5908.036000" data-stop="5911.178000">and then I want you to update the database</span> <span class="audio-time caption" data-speaker="Sacha" data-start="5911.179000" data-stop="5912.920000">in case this happens,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="5913.480000" data-stop="5915.201000">but it would be a lot more opaque to me.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="5915.261000" data-stop="5918.562000">I wouldn't be able to say, I want to do that</span> <span class="audio-time caption" data-speaker="Sacha" data-start="5918.563000" data-stop="5920.023000">but I also want these other things to happen</span> <span class="audio-time caption" data-speaker="Sacha" data-start="5920.083000" data-stop="5922.203000">and I want the SVG to show up</span> <span class="audio-time caption" data-speaker="Sacha" data-start="5922.204000" data-stop="5923.905000">and I want the wiki to be changed.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="5924.365000" data-stop="5926.025000">There's a lot of moving parts,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="5926.026000" data-stop="5928.326000">and it's a lot harder for me to think of</span> <span class="audio-time caption" data-speaker="Sacha" data-start="5928.327000" data-stop="5930.027000">how to get in there and change things</span> <span class="audio-time caption" data-speaker="Sacha" data-start="5930.028000" data-stop="5931.428000">in case there's a bug</span> <span class="audio-time caption" data-speaker="Sacha" data-start="5931.429000" data-stop="5933.428000">or in case I wanted to see</span> <span class="audio-time caption" data-speaker="Sacha" data-start="5933.429000" data-stop="5934.270000">what else is possible.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="5935.447000" data-stop="5937.389000">I like the fact that Emacs lets me</span> <span class="audio-time caption" data-speaker="Sacha" data-start="5937.390000" data-stop="5941.917000">build these interfaces using keyboard shortcuts</span> <span class="audio-time caption" data-speaker="Sacha" data-start="5941.918000" data-stop="5944.201000">and voice commands now, and all these other things.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="5944.202000" data-stop="5947.106000">It feels like it's all together,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="5947.107000" data-stop="5947.708000">and I don't have to</span> <span class="audio-time caption" data-speaker="Sacha" data-start="5947.748000" data-stop="5948.830000">keep reinventing the wheel.</span> <p></p><div class="transcript-heading"><span class="audio-time" data-start="5949.000000">1:39:09</span> <strong>Workflows for planning livestreams
</strong></div><p></p><a href="https://sachachua.com/blog/2026/11/my-chat-with-linkarzu/Emacs%20for%20Everything%20-%20Why%20Sacha%20Chua%20Still%20Lives%20in%20Emacs%20After%2020+%20Years%20[Sw6sCMIypmk]-01-39-34-385.jpg"><img loading="lazy" target="_blank" src="https://sachachua.com/blog/2026/11/my-chat-with-linkarzu/Emacs%20for%20Everything%20-%20Why%20Sacha%20Chua%20Still%20Lives%20in%20Emacs%20After%2020+%20Years%20[Sw6sCMIypmk]-01-39-34-385.jpg" alt="image from video 01:39:34.385" data-time="01:39:34.385"></a><span class="audio-time caption" data-speaker="Linkarzu" data-start="5949.429000" data-stop="5950.230000"><strong class="speaker-name">Linkarzu:</strong>  Yeah, yep.</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="5950.630000" data-stop="5952.131000">I do kind of something similar.</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="5952.231000" data-stop="5954.512000">This is the way that I schedule live streams now,</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="5954.692000" data-stop="5955.333000">you know?</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="5955.433000" data-stop="5957.054000">I have a snippet, Neovim.</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="5957.314000" data-stop="5958.554000">So I just type something here,</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="5958.555000" data-stop="5960.995000">live stream with a guest, open terminal,</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="5960.996000" data-stop="5962.777000">or if it's a solo live stream,</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="5962.778000" data-stop="5964.178000">that's going to add my snippets.</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="5965.139000" data-stop="5968.160000">And I just fill it up and I have a key map</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="5968.161000" data-stop="5968.961000">that I execute.</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="5969.302000" data-stop="5972.164000">It schedules the live stream, sends emails to the</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="5972.184000" data-stop="5974.125000">guests, if there are guests, you know?</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="5974.385000" data-stop="5975.145000"><strong class="speaker-name">Sacha:</strong>  Yeah, I got that too.</span> <p></p><span class="audio-time caption" data-speaker="Linkarzu" data-start="5975.726000" data-stop="5976.186000"><strong class="speaker-name">Linkarzu:</strong>  You have that?</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="5976.686000" data-stop="5979.068000">So it's one of the things that I'm...</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="5979.859000" data-stop="5981.800000"><strong class="speaker-name">Sacha:</strong>  Do you have it also update your YouTube</span> <span class="audio-time caption" data-speaker="Sacha" data-start="5982.500000" data-stop="5984.041000">stream description through API?</span> <p></p><span class="audio-time caption" data-speaker="Linkarzu" data-start="5984.801000" data-stop="5986.982000"><strong class="speaker-name">Linkarzu:</strong>  Yeah, the title, the description is</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="5987.122000" data-stop="5987.762000">right here.</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="5988.562000" data-stop="5992.724000"><strong class="speaker-name">Sacha:</strong>  Yeah. What else do I have in mine?</span> <span class="audio-time caption" data-speaker="Sacha" data-start="5993.084000" data-stop="5997.086000">Mine, I have it do the time zone conversions</span> <span class="audio-time caption" data-speaker="Sacha" data-start="5997.166000" data-stop="5998.966000">because I really suck at time zone conversions.</span> <p></p><span class="audio-time caption" data-speaker="Linkarzu" data-start="5999.326000" data-stop="6003.331000"><strong class="speaker-name">Linkarzu:</strong>  I choose UTC and I tell guests, you know?</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="6003.332000" data-stop="6005.041000">UTC it is.</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="6005.042000" data-stop="6008.612000"><strong class="speaker-name">Sacha:</strong>  But I also like including the gazillion</span> <span class="audio-time caption" data-speaker="Sacha" data-start="6008.632000" data-stop="6011.654000">time zone translations in the description so that</span> <span class="audio-time caption" data-speaker="Sacha" data-start="6011.674000" data-stop="6014.155000">people don't have to do the UTC conversion</span> <span class="audio-time caption" data-speaker="Sacha" data-start="6014.195000" data-stop="6014.836000">themselves.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="6015.616000" data-stop="6019.019000">So based on the timestamp for the event, I have</span> <span class="audio-time caption" data-speaker="Sacha" data-start="6019.039000" data-stop="6021.941000">this thing that allows me to pick up the</span> <span class="audio-time caption" data-speaker="Sacha" data-start="6023.902000" data-stop="6026.903000">time zone translations, because I use that for</span> <span class="audio-time caption" data-speaker="Sacha" data-start="6026.983000" data-stop="6028.923000">EmacsConf and then I just generalize it so I can</span> <span class="audio-time caption" data-speaker="Sacha" data-start="6028.963000" data-stop="6029.664000">use it for everything.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="6030.484000" data-stop="6032.284000">That can go into the YouTube description.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="6033.225000" data-stop="6036.346000">Then I have the same entry get turned into</span> <span class="audio-time caption" data-speaker="Sacha" data-start="6036.366000" data-stop="6039.386000">the blog post afterwards because I can publish</span> <span class="audio-time caption" data-speaker="Sacha" data-start="6039.426000" data-stop="6041.887000">that with a transcript and the screenshots as I</span> <span class="audio-time caption" data-speaker="Sacha" data-start="6041.907000" data-stop="6042.507000">showed you before.</span> <p></p><span class="audio-time caption" data-speaker="Linkarzu" data-start="6042.968000" data-stop="6044.448000"><strong class="speaker-name">Linkarzu:</strong>  Okay. Automation.</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="6044.488000" data-stop="6045.748000">It's all about automation.</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="6045.768000" data-stop="6047.489000"><strong class="speaker-name">Sacha:</strong>  It is. It absolutely is.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="6048.769000" data-stop="6050.851000">Oh, and the thing that I have which also lets me</span> <span class="audio-time caption" data-speaker="Sacha" data-start="6050.891000" data-stop="6053.873000">copy the chat and then if I paste it in, then I</span> <span class="audio-time caption" data-speaker="Sacha" data-start="6053.893000" data-stop="6056.775000">can have it reformatted so that it looks nicer</span> <span class="audio-time caption" data-speaker="Sacha" data-start="6056.795000" data-stop="6058.236000">because otherwise when you paste it in, there's</span> <span class="audio-time caption" data-speaker="Sacha" data-start="6058.256000" data-stop="6059.257000">lots of spaces and stuff.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="6059.277000" data-stop="6061.499000">But that's a fairly easy text transformation thing,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="6061.899000" data-stop="6063.340000">so you should be able to do something like that</span> <span class="audio-time caption" data-speaker="Sacha" data-start="6063.360000" data-stop="6063.801000">just fine.</span> <p></p><div class="transcript-heading"><span class="audio-time" data-start="6064.000000">1:41:04</span> <strong>Speech synthesis in Emacs: whispering slide hints</strong></div><p></p><span class="audio-time caption" data-speaker="Linkarzu" data-start="6064.741000" data-stop="6066.041000"><strong class="speaker-name">Linkarzu:</strong>  Let me show you something cool</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="6066.042000" data-stop="6066.382000">as well.</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="6066.483000" data-stop="6070.365000">heisenbug, can you please send us a speech to</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="6070.405000" data-stop="6072.087000">text command in chat?</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="6072.807000" data-stop="6073.927000"><strong class="speaker-name">Sacha:</strong>  Oh, yeah, I saw that one.</span> <p></p><span class="audio-time caption" data-speaker="Linkarzu" data-start="6074.168000" data-stop="6075.788000"><strong class="speaker-name">Linkarzu:</strong>  You should be able to hear it as well.</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="6075.968000" data-stop="6076.428000">You've seen it?</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="6076.468000" data-stop="6078.669000"><strong class="speaker-name">Sacha:</strong>  Yeah, I've heard that before in your</span> <span class="audio-time caption" data-speaker="Sacha" data-start="6078.729000" data-stop="6080.410000">other videos, which is actually...</span> <span class="audio-time caption" data-speaker="Sacha" data-start="6081.870000" data-stop="6084.611000">So one time I was giving an in-person</span> <span class="audio-time caption" data-speaker="Sacha" data-start="6084.631000" data-stop="6086.671000">presentation with Emacs, well,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="6086.672000" data-stop="6088.351000">about Emacs at one of the DemoCamps,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="6088.352000" data-stop="6089.613000">back when DemoCamp was a thing.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="6090.273000" data-stop="6092.295000">Because I wasn't entirely sure about my</span> <span class="audio-time caption" data-speaker="Sacha" data-start="6092.375000" data-stop="6094.856000">ability to remember what my next slide was going</span> <span class="audio-time caption" data-speaker="Sacha" data-start="6094.876000" data-stop="6098.439000">to be about, I had Emacs do the speech synthesis</span> <span class="audio-time caption" data-speaker="Sacha" data-start="6098.559000" data-stop="6102.421000">of a hint for my next slide in the [background],</span> <span class="audio-time caption" data-speaker="Sacha" data-start="6102.422000" data-stop="6105.444000">in my earbuds &#45;&#45; earphones, back then.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="6105.864000" data-stop="6106.904000">And someone was like,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="6106.905000" data-stop="6108.486000">"Is Emacs telling you what to say?"</span> <span class="audio-time caption" data-speaker="Sacha" data-start="6113.037000" data-stop="6114.958000">Because speech synthesis is</span> <span class="audio-time caption" data-speaker="Sacha" data-start="6115.078000" data-stop="6116.779000">another channel that you can use to get</span> <span class="audio-time caption" data-speaker="Sacha" data-start="6116.819000" data-stop="6117.439000">information.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="6118.279000" data-stop="6119.060000">So that's very cool.</span> <p></p><div class="transcript-heading"><span class="audio-time" data-start="6119.000000">1:41:59</span> <strong>Speech synthesis and chat</strong></div><p></p><span class="audio-time caption" data-speaker="Sacha" data-start="6119.200000" data-stop="6121.941000"><strong class="speaker-name">Sacha:</strong> I have been tempted to come up with something</span> <span class="audio-time caption" data-speaker="Sacha" data-start="6122.021000" data-stop="6124.902000">similar because I sometimes forget to check chat.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="6125.742000" data-stop="6127.863000">But it's possible, for example, to have it say,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="6128.203000" data-stop="6131.405000">okay, say it out to me first and then maybe I'll</span> <span class="audio-time caption" data-speaker="Sacha" data-start="6131.445000" data-stop="6133.306000">hit a keyboard shortcut and then it will say it</span> <span class="audio-time caption" data-speaker="Sacha" data-start="6133.386000" data-stop="6134.525000">again on the main channel</span> <span class="audio-time caption" data-speaker="Sacha" data-start="6134.526000" data-stop="6135.667000">that will go out in the stream.</span> <p></p><span class="audio-time caption" data-speaker="Linkarzu" data-start="6135.727000" data-stop="6137.587000"><strong class="speaker-name">Linkarzu:</strong>  So it's safe. Yeah.</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="6139.008000" data-stop="6140.388000">It becomes a mess because...</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="6140.389000" data-stop="6142.190000">I have it limited to members now.</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="6142.451000" data-stop="6144.632000">Only members can send the say command.</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="6145.533000" data-stop="6149.214000">When I was in the early testing phase,</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="6149.215000" data-stop="6152.217000">I enabled it for everyone. Guess what?</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="6152.297000" data-stop="6154.998000">The bots found it and they started sending</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="6154.999000" data-stop="6157.080000">say commands. Like it's going to happen, you know,</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="6157.081000" data-stop="6158.542000">and it's just going to run out of control.</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="6159.733000" data-stop="6161.914000"><strong class="speaker-name">Sacha:</strong>  The other reason why you can have that, right...</span> <span class="audio-time caption" data-speaker="Sacha" data-start="6161.934000" data-stop="6164.954000">So you have the chat and you have the TTS</span> <span class="audio-time caption" data-speaker="Sacha" data-start="6164.955000" data-stop="6166.095000">so that you know that something has happened</span> <span class="audio-time caption" data-speaker="Sacha" data-start="6166.096000" data-stop="6166.876000">in the chat,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="6167.376000" data-stop="6169.657000">but then you can trigger it to play in the</span> <span class="audio-time caption" data-speaker="Sacha" data-start="6169.717000" data-stop="6171.558000">channel when you want to,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="6172.118000" data-stop="6174.478000">possibly with a completion interface.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="6174.479000" data-stop="6175.939000">You can select which utterance</span> <span class="audio-time caption" data-speaker="Sacha" data-start="6175.940000" data-stop="6178.101000">you want to have at the right time.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="6178.201000" data-stop="6180.060000">So if people are having questions,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="6180.061000" data-stop="6182.181000">you know that the question is there,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="6182.182000" data-stop="6183.502000">but you can pick which question</span> <span class="audio-time caption" data-speaker="Sacha" data-start="6183.503000" data-stop="6184.882000">you want to focus on first,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="6184.883000" data-stop="6186.963000">or you can wait for the natural pause</span> <span class="audio-time caption" data-speaker="Sacha" data-start="6186.964000" data-stop="6188.485000">in the conversation in</span> <span class="audio-time caption" data-speaker="Sacha" data-start="6188.545000" data-stop="6190.934000">order to have your speech synthesis.</span> <p></p><span class="audio-time caption" data-speaker="Linkarzu" data-start="6190.935000" data-stop="6193.268000"><strong class="speaker-name">Linkarzu:</strong>  Yeah, that's a good idea.</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="6193.288000" data-stop="6193.748000">It makes sense.</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="6194.549000" data-stop="6195.009000"><strong class="speaker-name">Sacha:</strong>  Yeah, right.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="6195.069000" data-stop="6197.110000">So this back and forth</span> <span class="audio-time caption" data-speaker="Sacha" data-start="6197.170000" data-stop="6200.413000">brainstorming, it's totally possible to implement</span> <span class="audio-time caption" data-speaker="Sacha" data-start="6200.473000" data-stop="6201.413000">it in either way.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="6201.954000" data-stop="6204.574000">I would end up implementing it in Emacs,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="6204.575000" data-stop="6205.815000">of course, because then it can hook into</span> <span class="audio-time caption" data-speaker="Sacha" data-start="6205.816000" data-stop="6206.997000">all of my other stuff.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="6207.297000" data-stop="6209.719000">But you can certainly implement it in whatever it</span> <span class="audio-time caption" data-speaker="Sacha" data-start="6209.799000" data-stop="6212.361000">is that you're using to listen to the TTS.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="6212.401000" data-stop="6214.862000">Is that https://socialstream.ninja maybe?</span> <p></p><span class="audio-time caption" data-speaker="Linkarzu" data-start="6215.083000" data-stop="6215.743000"><strong class="speaker-name">Linkarzu:</strong>  SocialStream.</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="6215.763000" data-stop="6216.243000">Yep, yep, yep.</span> <p></p><div class="transcript-heading"><span class="audio-time" data-start="6216.000000">1:43:36</span> <strong>Comparing text-to-speech models</strong></div><p></p><span class="audio-time caption" data-speaker="Linkarzu" data-start="6216.724000" data-stop="6218.365000"><strong class="speaker-name">Linkarzu:</strong> I send it to Gemini.</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="6220.687000" data-stop="6222.529000">That's why it sounds accurate.</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="6222.589000" data-stop="6225.391000">I think Gemini is a pretty good one for that.</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="6225.411000" data-stop="6226.172000"><strong class="speaker-name">Sacha:</strong>  Yeah, it's pretty good.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="6226.692000" data-stop="6228.973000">Yeah, for local speech-to-text,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="6228.974000" data-stop="6231.277000">I've been using Kokoro.</span> <p></p><span class="audio-time caption" data-speaker="Linkarzu" data-start="6231.537000" data-stop="6232.898000"><strong class="speaker-name">Linkarzu:</strong>  But it sounds a little bit robotic,</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="6232.978000" data-stop="6234.199000">right? Yep, yep.</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="6234.600000" data-stop="6237.801000"><strong class="speaker-name">Sacha:</strong>  Yeah. Gemini is pretty good.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="6237.802000" data-stop="6239.924000">There are so many different options now.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="6240.325000" data-stop="6241.105000">It's fantastic.</span> <p></p><div class="transcript-heading"><span class="audio-time" data-start="6241.000000">1:44:01</span> <strong>Using speech synthesis as another information channel</strong></div><p></p><span class="audio-time caption" data-speaker="Sacha" data-start="6241.646000" data-stop="6244.068000"><strong class="speaker-name">Sacha:</strong> It does give you the other channel.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="6244.248000" data-stop="6247.891000">Back a long time ago, in fourth year university,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="6247.951000" data-stop="6248.452000">so 2003 or 2002,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="6252.655000" data-stop="6254.476000">I was monitoring IRC.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="6254.516000" data-stop="6256.137000">I had a lot of fun hanging out in IRC.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="6256.177000" data-stop="6258.998000">I set up my Emacspeak so that if</span> <span class="audio-time caption" data-speaker="Sacha" data-start="6259.638000" data-stop="6261.838000">somebody mentioned me in the channel,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="6261.839000" data-stop="6265.281000">it would say something. I could then go and study,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="6265.341000" data-stop="6267.502000">but I had this thing of distraction.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="6267.522000" data-stop="6269.383000">If someone wanted to talk to me</span> <span class="audio-time caption" data-speaker="Sacha" data-start="6269.423000" data-stop="6270.844000">specifically, I could hear about it.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="6271.724000" data-stop="6273.986000">Likewise, having it announce things like</span> <span class="audio-time caption" data-speaker="Sacha" data-start="6274.006000" data-stop="6278.510000">"compilation is done" meant that during</span> <span class="audio-time caption" data-speaker="Sacha" data-start="6278.530000" data-stop="6281.052000">the nights where I was staying up late and</span> <span class="audio-time caption" data-speaker="Sacha" data-start="6281.092000" data-stop="6283.273000">catching little micro-naps while waiting</span> <span class="audio-time caption" data-speaker="Sacha" data-start="6283.333000" data-stop="6287.357000">for my code to finish, I could just have that</span> <span class="audio-time caption" data-speaker="Sacha" data-start="6287.397000" data-stop="6290.179000">micro-nap and then wake up when the ding or the</span> <span class="audio-time caption" data-speaker="Sacha" data-start="6290.479000" data-stop="6291.400000">announcement went off.</span> <p></p><div class="transcript-heading"><span class="audio-time" data-start="6292.000000">1:44:52</span> <strong>Automation</strong></div><p></p><span class="audio-time caption" data-speaker="Linkarzu" data-start="6292.224000" data-stop="6295.647000"><strong class="speaker-name">Linkarzu:</strong>  Oh, yeah. Like I say, automation.</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="6295.807000" data-stop="6298.569000">Once you try automating stuff like Emacs,</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="6298.570000" data-stop="6300.531000">Neovim... I think that's why we love the tools</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="6300.532000" data-stop="6302.993000">so much, because they just allow you to do</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="6302.994000" data-stop="6304.315000">whatever you want to do.</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="6304.375000" data-stop="6305.636000">There's no limits.</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="6305.856000" data-stop="6307.557000">No. You can do that.</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="6307.558000" data-stop="6309.299000">Up to you, up to whatever you want to do, right?</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="6310.379000" data-stop="6312.600000"><strong class="speaker-name">Sacha:</strong>  Yeah. And the nice thing about this,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="6312.601000" data-stop="6314.302000">even if you're just smoothing things</span> <span class="audio-time caption" data-speaker="Sacha" data-start="6314.303000" data-stop="6315.645000">over a little at a time...</span> <span class="audio-time caption" data-speaker="Sacha" data-start="6316.606000" data-stop="6319.087000">It's very tempting to fall down</span> <span class="audio-time caption" data-speaker="Sacha" data-start="6319.088000" data-stop="6319.869000">the rabbit hole, right?</span> <span class="audio-time caption" data-speaker="Sacha" data-start="6319.889000" data-stop="6322.251000">You spend the next two hours</span> <span class="audio-time caption" data-speaker="Sacha" data-start="6322.252000" data-stop="6323.233000">tweaking something.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="6323.754000" data-stop="6324.715000">This is my life, right?</span> <span class="audio-time caption" data-speaker="Sacha" data-start="6325.335000" data-stop="6327.558000">But it is also possible to try to be slightly</span> <span class="audio-time caption" data-speaker="Sacha" data-start="6327.598000" data-stop="6329.159000">disciplined about it and say, okay, I'm going to</span> <span class="audio-time caption" data-speaker="Sacha" data-start="6329.239000" data-stop="6331.001000">just modify one thing.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="6331.662000" data-stop="6333.984000">I'm going to write one function or whatever,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="6334.104000" data-stop="6335.645000">make this one little bit better.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="6336.066000" data-stop="6337.867000">Then the next time you do it, you do another</span> <span class="audio-time caption" data-speaker="Sacha" data-start="6337.927000" data-stop="6338.348000">little bit.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="6338.728000" data-stop="6342.371000">So there's that XKCD automation grid</span> <span class="audio-time caption" data-speaker="Sacha" data-start="6342.411000" data-stop="6344.092000">of when it makes sense to automate something.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="6344.172000" data-stop="6347.115000">I find myself automating things that really</span> <span class="audio-time caption" data-speaker="Sacha" data-start="6348.036000" data-stop="6350.718000">aren't technically justified by how often I do it.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="6351.198000" data-stop="6353.921000">But because all those little bits of code add up</span> <span class="audio-time caption" data-speaker="Sacha" data-start="6354.141000" data-stop="6358.603000">and they become useful in a combinatorial way...</span> <span class="audio-time caption" data-speaker="Sacha" data-start="6358.663000" data-stop="6360.304000">It's not just linearly adding up.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="6360.744000" data-stop="6361.644000">Each little bit of code</span> <span class="audio-time caption" data-speaker="Sacha" data-start="6361.645000" data-stop="6363.885000">becomes a piece I can use somewhere else,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="6363.886000" data-stop="6365.026000">for a purpose that's completely</span> <span class="audio-time caption" data-speaker="Sacha" data-start="6365.126000" data-stop="6367.307000">unexpected at that moment.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="6367.687000" data-stop="6368.788000">It becomes so powerful.</span> <p></p><span class="audio-time caption" data-speaker="Linkarzu" data-start="6369.276000" data-stop="6370.677000"><strong class="speaker-name">Linkarzu:</strong>  Yeah, it does.</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="6370.877000" data-stop="6374.160000">If I need to prepare for a livestream, there's a</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="6374.200000" data-stop="6375.642000">lot of applications that you need to open.</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="6375.662000" data-stop="6376.603000">You need to open OBS.</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="6376.843000" data-stop="6379.325000">I need to open Chrome where the conversation</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="6379.365000" data-stop="6380.786000">between the two of us is happening.</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="6381.026000" data-stop="6382.408000">I need to open Socialstream.</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="6382.668000" data-stop="6386.611000">I need to open 10 or more than 10 applications.</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="6387.392000" data-stop="6390.295000">So I automated that.</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="6390.695000" data-stop="6392.236000">Even YouTube Studio is open.</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="6393.197000" data-stop="6396.679000">All of it, because it's annoying, but</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="6396.719000" data-stop="6397.640000">it's... Yeah, yeah.</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="6398.180000" data-stop="6399.801000"><strong class="speaker-name">Sacha:</strong>  I have a "Prepare to go live."</span> <span class="audio-time caption" data-speaker="Sacha" data-start="6402.323000" data-stop="6404.484000">It does it automatically for me too.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="6404.664000" data-stop="6408.966000">It brings up the live streaming dashboard.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="6409.867000" data-stop="6412.028000">It double-checks all these other things.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="6412.629000" data-stop="6414.930000">Then it copies the description over in case</span> <span class="audio-time caption" data-speaker="Sacha" data-start="6414.970000" data-stop="6416.411000">I'm doing a spontaneous live stream.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="6416.891000" data-stop="6420.293000">Then I can verify that and then I can say,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="6420.333000" data-stop="6421.334000">okay, "Let's go live."</span> <p></p><span class="audio-time caption" data-speaker="Linkarzu" data-start="6423.495000" data-stop="6424.175000"><strong class="speaker-name">Linkarzu:</strong>  All right, Sacha.</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="6424.856000" data-stop="6425.916000">Amazing conversation.</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="6426.136000" data-stop="6426.817000">Thank you very much.</span> <p></p><div class="transcript-heading"><span class="audio-time" data-start="6427.000000">1:47:07</span> <strong>Clipping</strong></div><p></p><span class="audio-time caption" data-speaker="Linkarzu" data-start="6427.217000" data-stop="6430.458000"><strong class="speaker-name">Linkarzu:</strong> We're going to see if the editing workflow works.</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="6430.618000" data-stop="6432.780000">We're going to see a clip of this later today.</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="6432.860000" data-stop="6434.540000">Hopefully.</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="6434.700000" data-stop="6436.301000">We're going to see who gets it out first.</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="6436.621000" data-stop="6437.242000">That's a race.</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="6437.382000" data-stop="6439.363000"><strong class="speaker-name">Sacha:</strong>  Oh, I'm allowed to clip yours?</span> <p></p><span class="audio-time caption" data-speaker="Linkarzu" data-start="6439.643000" data-stop="6439.943000"><strong class="speaker-name">Linkarzu:</strong>  Yeah.</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="6440.463000" data-stop="6441.124000">You can clip it.</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="6441.264000" data-stop="6441.884000">It's fine.</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="6442.004000" data-stop="6442.905000">It's completely fine.</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="6443.385000" data-stop="6443.765000"><strong class="speaker-name">Sacha:</strong>  All right.</span> <p></p><span class="audio-time caption" data-speaker="Linkarzu" data-start="6443.845000" data-stop="6445.206000"><strong class="speaker-name">Linkarzu:</strong>  You're going to win. Emacs.</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="6445.246000" data-stop="6447.467000"><strong class="speaker-name">Sacha:</strong>  I already have my real-time transcript.</span> <p></p><span class="audio-time caption" data-speaker="Linkarzu" data-start="6448.067000" data-stop="6449.388000"><strong class="speaker-name">Linkarzu:</strong>  You already won. Yeah.</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="6451.235000" data-stop="6451.676000"><strong class="speaker-name">Sacha:</strong>  I don't know.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="6451.916000" data-stop="6455.660000">I trust your editing chops, but I love being able</span> <span class="audio-time caption" data-speaker="Sacha" data-start="6455.680000" data-stop="6456.280000">to pull things out.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="6456.340000" data-stop="6458.262000">I do want to make sure that all the cool</span> <span class="audio-time caption" data-speaker="Sacha" data-start="6458.302000" data-stop="6460.565000">things that people can build on will be available</span> <span class="audio-time caption" data-speaker="Sacha" data-start="6460.645000" data-stop="6461.245000">as text.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="6461.586000" data-stop="6463.428000">I will go and edit the transcript and then you</span> <span class="audio-time caption" data-speaker="Sacha" data-start="6463.468000" data-stop="6464.268000">can use that too.</span> <p></p><span class="audio-time caption" data-speaker="Linkarzu" data-start="6464.689000" data-stop="6465.009000"><strong class="speaker-name">Linkarzu:</strong>  Okay.</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="6465.530000" data-stop="6466.010000">Amazing.</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="6466.110000" data-stop="6467.472000">Sacha, thank you very much.</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="6467.532000" data-stop="6468.793000">Hope you have a wonderful day.</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="6469.073000" data-stop="6470.094000">Thanks chat as well.</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="6470.495000" data-stop="6472.357000">Talk to you later.</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="6472.377000" data-stop="6474.179000"><strong class="speaker-name">Sacha:</strong>  All right. Okay. Bye.</span></div>
<p></p>


<a name="end-linkarzu-transcript"></a></details>

<p>
Related:
</p>

<ul class="org-ul">
<li><a href="https://sachachua.com/blog/2026/10/clip-emacs-voice-control-describing-my-setup-during-linkarzu-s-livestream/">Clip: Emacs voice control - describing my setup during Linkarzu's livestream</a></li>
<li><a href="https://sachachua.com/blog/2026/10/upcoming-chat-with-linkarzu-about-using-emacs-for-25-years/">Upcoming chat with linkarzu about using Emacs for 25 years</a></li>
<li><a href="https://sachachua.com/blog/2026/10/emacs-carnival-oct-2026-exploring-keys-and-voice-input-in-emacs/">Emacs Carnival Oct 2026: Exploring keys and voice input in Emacs</a></li>
</ul>
<div><a href="https://sachachua.com/blog/2026/11/my-chat-with-linkarzu/index.org">View Org source for this post</a></div>
<p>You can <a href="https://social.sachachua.com/@sacha/statuses/01M6EXP769FCD99HN5TD5R656P" target="_blank" rel="noopener noreferrer">comment on Mastodon</a> or <a href="mailto:sacha@sachachua.com?subject=Comment%20on%20https%3A%2F%2Fsachachua.com%2Fblog%2F2026%2F11%2Fmy-chat-with-linkarzu%2F&body=Name%20you%20want%20to%20be%20credited%20by%20(if%20any)%3A%20%0AMessage%3A%20%0ACan%20I%20share%20your%20comment%20so%20other%20people%20can%20learn%20from%20it%3F%20Yes%2FNo%0A">e-mail me at sacha@sachachua.com</a>.</p>]]></description>
		<dc:creator>Sacha Chua</dc:creator><enclosure length="183801" type="application/octet-stream" url="https://sachachua.com/blog/2026/11/my-chat-with-linkarzu/Emacs%20for%20Everything%20-%20Why%20Sacha%20Chua%20Still%20Lives%20in%20Emacs%20After%2020+%20Years%20[Sw6sCMIypmk].vtt"/></item><item>
		<title>emacs.news</title>
		<link>https://sachachua.com/blog/2026/10/emacs-news/</link>
		
		<pubDate>Sat, 31 Oct 2026 13:46:49 GMT</pubDate>
    <category>emacs</category>
		<guid isPermaLink="false">https://sachachua.com/blog/2026/10/emacs-news/</guid>
		<description><![CDATA[<p>
Now you can use <a href="https://emacs.news">emacs.news</a> to get to <a href="https://sachachua.com/blog/category/emacs-news">Emacs News</a>.
That should save some clicking/typing.
It redirects to my blog category at the moment, so the URL doesn't show emacs.news after you get there, but I've added it to the note at the top of that category page to help people find out about the shortcut.
</p>

<p>
Thanks to <a href="https://xenodium.com/">@xenodium</a> for the nudge!
</p>
<div><a href="https://sachachua.com/blog/2026/10/emacs-news/index.org">View Org source for this post</a></div>
<p>You can <a href="mailto:sacha@sachachua.com?subject=Comment%20on%20https%3A%2F%2Fsachachua.com%2Fblog%2F2026%2F10%2Femacs-news%2F&body=Name%20you%20want%20to%20be%20credited%20by%20(if%20any)%3A%20%0AMessage%3A%20%0ACan%20I%20share%20your%20comment%20so%20other%20people%20can%20learn%20from%20it%3F%20Yes%2FNo%0A">e-mail me at sacha@sachachua.com</a>.</p>]]></description>
		<dc:creator>Sacha Chua</dc:creator><enclosure length="764" type="application/octet-stream" url="https://sachachua.com/blog/2026/10/emacs-news/index.org"/></item><item>
		<title>Clip: Emacs voice control - describing my setup during Linkarzu's livestream</title>
		<link>https://sachachua.com/blog/2026/10/clip-emacs-voice-control-describing-my-setup-during-linkarzu-s-livestream/</link>
		
		<pubDate>Thu, 29 Oct 2026 19:53:50 GMT</pubDate>
    <category>emacs</category>
<category>speech</category>
<category>speech-recognition</category>
		<guid isPermaLink="false">https://sachachua.com/blog/2026/10/clip-emacs-voice-control-describing-my-setup-during-linkarzu-s-livestream/</guid>
		<description><![CDATA[<div class="media-post" id="orge3d3b0b">
<p>
</p><div class="yt-video"><iframe width="456" height="315" title="YouTube video player" src="https://www.youtube-nocookie.com/embed/Xk02luunlfc?enablejsapi=1" frameborder="0" allowfullscreen=""></iframe><a href="https://sachachua.com/blog/feed/Xk02luunlfc">Watch on YouTube</a></div>
<p></p>

<p>
linkarzu wins the clip-off thanks to his fancy AI-powered clipping process!
Here's a snippet from our conversation today.
He'll be posting more clips, and I'm also going to edit the transcript of the conversation.
Fun fun fun!
</p>

<p>
Additional notes:
</p>

<ul class="org-ul">
<li><a href="https://sachachua.com/dotemacs#navigation-substitution">Substitution</a>: I use <code>(add-hook 'substitute-post-replace-functions #'sacha-substitute-save-common-edits)</code> to save the changes. <a href="https://sachachua.com/dotemacs#navigation-substitution">sacha-substitute-save-common-edits</a>
<a href="https://sachachua.com/dotemacs#edit-text">Edit text</a> has functions like <code>sacha-subed-fix-common-errors-in-text</code> that apply those changes to my speech recognition results and <code>sacha-subed-fix-common-errors-from-start</code> that apply them to already-prepared transcripts. I really like how I can mark a region and use that to define the substitution, like changing "tug a" to "toggle".</li>

<li><a href="https://github.com/sachac/whisper.el/">sachac/whisper.el</a> has my fork of <a href="https://github.com/natrys/whisper.el">natrys/whisper.el</a> to support voice commands. <a href="https://codeberg.org/sachac/speech-input">speech-input</a> has a bunch of other things, too, and of course <a href="https://sachachua.com/dotemacs/">my Emacs config</a>.</li>

<li>I've been using <a href="https://github.com/ErikPrantare/phony.el">phony</a> to define more voice commands using a parser.</li>

<li>Apparently I cannot spell when thinking out loud. It is <a href="https://www.orgzlyrevived.com/">Orgzly Revived</a>, not ogrzly.</li>

<li>This actually doesn't use generative AI in the sense of Gemini or Claude, except for the conversational French demo. I use a local speech recognition model (currently <a href="https://sachachua.com/blog/2026/10/clip-emacs-voice-control-describing-my-setup-during-linkarzu-s-livestream/emacsconf-subed.el">Orukeet</a>) and local speech synthesis (<a href="https://github.com/remsky/Kokoro-FastAPI">Kokoro FastAPI</a>), So depending on your feelings about large language models, the models might be small enough to be fine with you. Alternatively, there are classical approaches to both speech recognition and speech synthesis like <a href="https://kaldi-asr.org/">kaldi</a> and <a href="https://github.com/espeak-ng/espeak-ng">espeak-ng</a>.</li>
</ul>

<details class="code-details"><summary>Transcript and screenshots</summary>
<p>
</p><div class="full-transcript"><p></p><div class="transcript-heading"><span class="audio-time" data-start="0.000000">0:00</span> <strong>Voice commands that mishear</strong></div><p></p><span class="audio-time caption" data-speaker="Sacha" data-start="0.000000" data-stop="0.888000"><strong class="speaker-name">Sacha:</strong>  It turns out I cannot</span> <span class="audio-time caption" data-speaker="Sacha" data-start="0.948000" data-stop="3.229000">say start streaming reliably. Sometimes</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3.289000" data-stop="4.599000">I say start screaming.</span> <p></p><span class="audio-time caption" data-speaker="Linkarzu" data-start="4.600000" data-stop="6.218000"><strong class="speaker-name">Linkarzu:</strong>  Or like if I say Neovim,</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="6.838000" data-stop="7.819000">it doesn't get it. It</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="7.839000" data-stop="9.559000">says "New of him".</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="9.952000" data-stop="10.553000">I want to take a</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="10.593000" data-stop="11.374000">look at what you were</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="11.414000" data-stop="12.276000">sharing a moment ago.</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="14.579000" data-stop="16.121000">The speech to text,</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="16.542000" data-stop="18.985000">and it happens in real time, right?</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="18.986000" data-stop="20.287000"><strong class="speaker-name">Sacha:</strong>  Oh yeah, yeah.</span> <p></p><div class="transcript-heading"><span class="audio-time" data-start="20.000000">0:20</span> <strong>How the live transcript works</strong></div><p></p><span class="audio-time caption" data-speaker="Linkarzu" data-start="20.499000" data-stop="21.880000"><strong class="speaker-name">Linkarzu:</strong>  But I don't do stuff</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="22.020000" data-stop="23.141000">real-time the way that</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="23.161000" data-stop="24.263000">you're doing right now.</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="24.264000" data-stop="25.696000">The transcription happens</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="25.697000" data-stop="27.161000">when we're done with the call</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="27.162000" data-stop="29.344000">and the process starts automatically.</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="30.005000" data-stop="31.446000">And a few hours after,</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="31.586000" data-stop="32.506000">I have the clips in</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="32.526000" data-stop="33.727000">my dashboard that I can</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="33.847000" data-stop="35.448000">upload if I want, right?</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="35.468000" data-stop="37.489000">But it's not real-time and</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="37.509000" data-stop="39.170000">I'm like, oh, and I saw</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="39.851000" data-stop="40.911000">how you did it on</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="40.951000" data-stop="41.892000">your side and it's pretty</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="42.152000" data-stop="43.133000">accurate. Like,</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="43.773000" data-stop="44.613000">what's the magic?</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="44.994000" data-stop="45.994000">What are you doing there?</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="46.375000" data-stop="47.315000">You're sending it</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="47.675000" data-stop="48.882000">somewhere, right?</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="48.883000" data-stop="50.758000"><strong class="speaker-name">Sacha:</strong>  No, this is an entirely local</span> <span class="audio-time caption" data-speaker="Sacha" data-start="50.818000" data-stop="51.999000">model and I'm running</span> <span class="audio-time caption" data-speaker="Sacha" data-start="52.740000" data-stop="53.701000">it in a computer with</span> <span class="audio-time caption" data-speaker="Sacha" data-start="53.761000" data-stop="55.323000">hardly any GPU. So I'm</span> <span class="audio-time caption" data-speaker="Sacha" data-start="55.363000" data-stop="56.324000">actually just making it use</span> <span class="audio-time caption" data-speaker="Sacha" data-start="56.404000" data-stop="57.285000">CPU only</span> <span class="audio-time caption" data-speaker="Sacha" data-start="58.226000" data-stop="59.868000">for the speech recognition because</span> <span class="audio-time caption" data-speaker="Sacha" data-start="59.888000" data-stop="62.531000">I have a Lenovo P52 from</span> <span class="audio-time caption" data-speaker="Sacha" data-start="62.571000" data-stop="63.091000">2018, I think.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="64.773000" data-stop="65.734000">So it doesn't</span> <span class="audio-time caption" data-speaker="Sacha" data-start="66.455000" data-stop="67.798000">do this GPU thing very well.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="67.799000" data-stop="68.817000">I think you're usually</span> <span class="audio-time caption" data-speaker="Sacha" data-start="68.857000" data-stop="70.738000">On a Mac, so you're</span> <span class="audio-time caption" data-speaker="Sacha" data-start="70.798000" data-stop="71.899000">spoiled for choices there.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="72.320000" data-stop="73.861000">But speech recognition has gotten</span> <span class="audio-time caption" data-speaker="Sacha" data-start="74.021000" data-stop="75.442000">really good over the last</span> <span class="audio-time caption" data-speaker="Sacha" data-start="75.483000" data-stop="76.103000">few years.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="76.583000" data-stop="78.025000">I'm using Orukeet at</span> <span class="audio-time caption" data-speaker="Sacha" data-start="78.065000" data-stop="78.545000">the moment.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="78.546000" data-stop="79.727000">It's a multilingual model,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="79.728000" data-stop="80.667000">so it can handle my</span> <span class="audio-time caption" data-speaker="Sacha" data-start="81.027000" data-stop="82.529000">poor French pronunciations</span> <span class="audio-time caption" data-speaker="Sacha" data-start="83.369000" data-stop="84.470000">just as fine as my</span> <span class="audio-time caption" data-speaker="Sacha" data-start="84.510000" data-stop="85.031000">English ones.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="85.791000" data-stop="86.732000">I can press my</span> <span class="audio-time caption" data-speaker="Sacha" data-start="87.033000" data-stop="87.882000">keyboard shortcut.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="87.883000" data-stop="88.554000">For example,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="88.594000" data-stop="89.114000">I can say,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="90.015000" data-stop="90.896000">this is a test during</span> <span class="audio-time caption" data-speaker="Sacha" data-start="90.916000" data-stop="91.877000">a chat with linkarzu.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="93.612000" data-stop="94.974000">And then, because</span> <span class="audio-time caption" data-speaker="Sacha" data-start="94.975000" data-stop="97.094000">I've modified my dictionary,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="97.114000" data-stop="99.375000">your channel name actually shows</span> <span class="audio-time caption" data-speaker="Sacha" data-start="99.455000" data-stop="101.496000">up properly. Oh, okay. Okay,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="101.516000" data-stop="103.417000">okay, okay. We are talking</span> <span class="audio-time caption" data-speaker="Sacha" data-start="103.497000" data-stop="105.786000">about speech-to-text, dictation,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="105.787000" data-stop="105.814000">all sorts of other things like that.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="105.815000" data-stop="109.080000">Oh, where's my phone?</span> <p></p><span class="audio-time caption" data-speaker="Linkarzu" data-start="111.601000" data-stop="113.403000"><strong class="speaker-name">Linkarzu:</strong>  Okay, yeah, so it just</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="113.423000" data-stop="113.715000">puts it in.</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="113.716000" data-stop="114.424000">It's pretty accurate.</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="114.805000" data-stop="116.293000">It's extremely accurate.</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="116.294000" data-stop="117.187000">What's the name</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="117.228000" data-stop="118.849000">you said? Because I use</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="118.889000" data-stop="120.751000">Wispr Flow, a local model as</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="120.791000" data-stop="122.213000">well. I do the transcript</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="122.253000" data-stop="124.135000">locally on my Mac. Wispr Flow</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="124.255000" data-stop="125.417000">is what the AI decided</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="125.437000" data-stop="126.157000">to use and I'm like,</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="126.578000" data-stop="129.581000">oh, it gets it, but not...</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="130.562000" data-stop="131.823000"><strong class="speaker-name">Sacha:</strong>  Yeah, the model I'm currently</span> <span class="audio-time caption" data-speaker="Sacha" data-start="131.923000" data-stop="133.923000">using is called Orukeet.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="135.784000" data-stop="136.865000">I think it's based on</span> <span class="audio-time caption" data-speaker="Sacha" data-start="136.945000" data-stop="138.985000">Parakeet, but it's been tweaked</span> <span class="audio-time caption" data-speaker="Sacha" data-start="139.026000" data-stop="140.206000">for more performance</span> <span class="audio-time caption" data-speaker="Sacha" data-start="140.686000" data-stop="141.466000">and less memory.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="141.760000" data-stop="142.640000">But there are so many</span> <span class="audio-time caption" data-speaker="Sacha" data-start="142.820000" data-stop="143.928000">new models coming out.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="143.929000" data-stop="145.347000">It's really quite interesting</span> <span class="audio-time caption" data-speaker="Sacha" data-start="145.348000" data-stop="147.042000">because every day or every other day,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="147.062000" data-stop="148.122000">there's like, oh, try this</span> <span class="audio-time caption" data-speaker="Sacha" data-start="148.182000" data-stop="149.203000">new model.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="149.683000" data-stop="151.984000">I'm not good enough to</span> <span class="audio-time caption" data-speaker="Sacha" data-start="152.025000" data-stop="152.745000">keep on top of all</span> <span class="audio-time caption" data-speaker="Sacha" data-start="152.785000" data-stop="153.806000">those changes. If I can</span> <span class="audio-time caption" data-speaker="Sacha" data-start="153.846000" data-stop="154.906000">manage to get the AI</span> <span class="audio-time caption" data-speaker="Sacha" data-start="154.946000" data-stop="155.647000">to generate me</span> <span class="audio-time caption" data-speaker="Sacha" data-start="156.027000" data-stop="157.068000">a server that has an</span> <span class="audio-time caption" data-speaker="Sacha" data-start="157.188000" data-stop="158.428000">OpenAI interface, I</span> <span class="audio-time caption" data-speaker="Sacha" data-start="158.468000" data-stop="159.609000">can plop it right into</span> <span class="audio-time caption" data-speaker="Sacha" data-start="159.649000" data-stop="160.470000">my Emacs setup</span> <span class="audio-time caption" data-speaker="Sacha" data-start="160.870000" data-stop="161.930000">and it will just work.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="162.151000" data-stop="163.231000">So I'm happy with that.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="163.972000" data-stop="165.921000">And this is fast enough</span> <span class="audio-time caption" data-speaker="Sacha" data-start="165.922000" data-stop="167.374000">that I can use it to think</span> <span class="audio-time caption" data-speaker="Sacha" data-start="167.854000" data-stop="168.694000">and then when I have</span> <span class="audio-time caption" data-speaker="Sacha" data-start="168.714000" data-stop="169.255000">the text,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="169.635000" data-stop="171.096000">I can rearrange it however</span> <span class="audio-time caption" data-speaker="Sacha" data-start="171.176000" data-stop="171.636000">I'd like.</span> <p></p><div class="transcript-heading"><span class="audio-time" data-start="172.000000">2:52</span> <strong>Playing with voice commands</strong></div><p></p><span class="audio-time caption" data-speaker="Sacha" data-start="172.036000" data-stop="172.897000"><strong class="speaker-name">Sacha:</strong> So for example,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="173.357000" data-stop="174.398000">"prepare to fast forward."</span> <span class="audio-time caption" data-speaker="Sacha" data-start="176.625000" data-stop="177.305000">We're here.</span> <p></p><span class="audio-time caption" data-speaker="Linkarzu" data-start="177.665000" data-stop="178.785000"><strong class="speaker-name">Linkarzu:</strong>  I have a similar command.</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="179.053000" data-stop="179.687000">Let me see if it</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="179.707000" data-stop="180.347000">works. Hold on.</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="181.007000" data-stop="183.528000">You see my terminal right now, right?</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="185.688000" data-stop="186.368000">Yes. I don't know if</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="186.408000" data-stop="187.168000">you can see my screen.</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="187.396000" data-stop="188.396000">Virgin mode off.</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="189.436000" data-stop="191.197000"><strong class="speaker-name">Sacha:</strong>  Mm hmm. Yeah, yeah, yeah.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="191.297000" data-stop="191.777000">I saw that.</span> <p></p><span class="audio-time caption" data-speaker="Linkarzu" data-start="191.815000" data-stop="192.433000"><strong class="speaker-name">Linkarzu:</strong>  It didn't work.</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="193.213000" data-stop="196.854000">But it changes my wallpaper and</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="196.914000" data-stop="197.874000">it changes my...</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="199.343000" data-stop="200.304000"><strong class="speaker-name">Sacha:</strong>  I have one too.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="200.704000" data-stop="201.084000">Laser.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="201.610000" data-stop="202.430000">Look, I changed</span> <span class="audio-time caption" data-speaker="Sacha" data-start="202.450000" data-stop="203.471000">my cursor to a</span> <span class="audio-time caption" data-speaker="Sacha" data-start="203.511000" data-stop="204.792000">laser so I can say,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="204.852000" data-stop="205.892000">here's my mouse</span> <span class="audio-time caption" data-speaker="Sacha" data-start="205.932000" data-stop="206.573000">cursor, right?</span> <p></p><span class="audio-time caption" data-speaker="Linkarzu" data-start="206.953000" data-stop="209.855000"><strong class="speaker-name">Linkarzu:</strong>  Okay. Pretty cool.</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="211.344000" data-stop="212.384000"><strong class="speaker-name">Sacha:</strong>  Yeah, so the nice thing</span> <span class="audio-time caption" data-speaker="Sacha" data-start="212.424000" data-stop="212.805000">about it...</span> <span class="audio-time caption" data-speaker="Sacha" data-start="213.265000" data-stop="214.185000">Oh, it's still listening.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="214.206000" data-stop="216.567000">Okay.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="217.208000" data-stop="217.948000">Let me just turn off</span> <span class="audio-time caption" data-speaker="Sacha" data-start="217.988000" data-stop="218.909000">laser mode here. Oh,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="219.489000" data-stop="219.929000">ah!</span> <span class="audio-time caption" data-speaker="Sacha" data-start="220.850000" data-stop="222.717000">Laser. Laser. Laser.</span> <p></p><span class="audio-time caption" data-speaker="Linkarzu" data-start="223.816000" data-stop="224.657000"><strong class="speaker-name">Linkarzu:</strong>  It happens to me as</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="224.697000" data-stop="225.170000">well.</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="225.171000" data-stop="228.580000"><strong class="speaker-name">Sacha:</strong>  Edit, retry. Laser.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="229.601000" data-stop="230.602000">Yeah, okay, there you go.</span> <p></p><div class="transcript-heading"><span class="audio-time" data-start="231.000000">3:51</span> <strong>Speech commands enable more shortcuts</strong></div><p></p><span class="audio-time caption" data-speaker="Sacha" data-start="231.463000" data-stop="232.844000"><strong class="speaker-name">Sacha:</strong> The nice thing about</span> <span class="audio-time caption" data-speaker="Sacha" data-start="232.904000" data-stop="234.486000">speech commands is that it</span> <span class="audio-time caption" data-speaker="Sacha" data-start="234.606000" data-stop="235.887000">opens up a whole lot</span> <span class="audio-time caption" data-speaker="Sacha" data-start="235.927000" data-stop="237.609000">of other ways to run</span> <span class="audio-time caption" data-speaker="Sacha" data-start="237.669000" data-stop="239.450000">commands without necessarily having to</span> <span class="audio-time caption" data-speaker="Sacha" data-start="239.511000" data-stop="240.832000">memorize keyboard shortcuts.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="241.232000" data-stop="241.993000">And you can have more</span> <span class="audio-time caption" data-speaker="Sacha" data-start="242.093000" data-stop="242.914000">fun with it too.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="243.274000" data-stop="244.475000">So for example, now I</span> <span class="audio-time caption" data-speaker="Sacha" data-start="244.515000" data-stop="245.196000">have this command.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="246.817000" data-stop="247.717000">It turns out I cannot</span> <span class="audio-time caption" data-speaker="Sacha" data-start="247.777000" data-stop="250.058000">say "start streaming" reliably. Sometimes</span> <span class="audio-time caption" data-speaker="Sacha" data-start="250.118000" data-stop="252.198000">I say start screaming. Or</span> <span class="audio-time caption" data-speaker="Sacha" data-start="252.238000" data-stop="253.099000">at least that's... Well,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="253.459000" data-stop="254.539000">I know sometimes I accidentally</span> <span class="audio-time caption" data-speaker="Sacha" data-start="254.579000" data-stop="255.559000">say that and sometimes that's</span> <span class="audio-time caption" data-speaker="Sacha" data-start="255.599000" data-stop="257.380000">what the speech recognition hears.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="257.740000" data-stop="258.940000">So instead, my command for</span> <span class="audio-time caption" data-speaker="Sacha" data-start="259.000000" data-stop="260.160000">starting this stream,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="260.680000" data-stop="262.341000">because of course Emacs controls</span> <span class="audio-time caption" data-speaker="Sacha" data-start="262.421000" data-stop="263.961000">my OBS through WebSockets,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="264.441000" data-stop="265.641000">is "let's go live".</span> <span class="audio-time caption" data-speaker="Sacha" data-start="266.142000" data-stop="267.042000">And my command</span> <span class="audio-time caption" data-speaker="Sacha" data-start="267.482000" data-stop="269.162000">for stopping the stream is</span> <span class="audio-time caption" data-speaker="Sacha" data-start="269.362000" data-stop="270.042000">"over and out".</span> <span class="audio-time caption" data-speaker="Sacha" data-start="270.663000" data-stop="271.543000">And just because it's a</span> <span class="audio-time caption" data-speaker="Sacha" data-start="271.563000" data-stop="272.523000">little more fun to say,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="272.563000" data-stop="273.523000">it becomes easier for me</span> <span class="audio-time caption" data-speaker="Sacha" data-start="273.543000" data-stop="274.684000">me to remember what I</span> <span class="audio-time caption" data-speaker="Sacha" data-start="274.724000" data-stop="275.524000">need to say in order</span> <span class="audio-time caption" data-speaker="Sacha" data-start="275.544000" data-stop="276.184000">to make this happen.</span> <p></p><div class="transcript-heading"><span class="audio-time" data-start="277.000000">4:37</span> <strong>Does it handle hard words?</strong></div><p></p><span class="audio-time caption" data-speaker="Linkarzu" data-start="277.364000" data-stop="278.225000"><strong class="speaker-name">Linkarzu:</strong>  Yeah, yeah, yeah.</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="278.685000" data-stop="278.865000">Now,</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="279.585000" data-stop="280.926000">why is it accurate? And</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="281.333000" data-stop="282.733000">you have a dictionary of</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="282.873000" data-stop="283.594000">like the</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="285.494000" data-stop="286.815000">difficult words. Like if I</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="286.835000" data-stop="287.415000">say Neovim,</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="288.035000" data-stop="289.016000">it doesn't get it. It</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="289.036000" data-stop="290.756000">says "New of him",</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="291.136000" data-stop="292.597000">or it just puts whatever</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="292.677000" data-stop="294.077000">it wants, whenever it wants.</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="294.117000" data-stop="295.698000">Sometimes it puts something random</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="295.858000" data-stop="296.238000">out there.</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="296.718000" data-stop="297.579000">What do you do for</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="297.599000" data-stop="298.805000">yours?</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="298.806000" data-stop="301.360000"><strong class="speaker-name">Sacha:</strong>  "Neovim is okay, I guess."</span> <span class="audio-time caption" data-speaker="Sacha" data-start="302.235000" data-stop="302.995000">Let's see if it does</span> <span class="audio-time caption" data-speaker="Sacha" data-start="303.075000" data-stop="304.780000">a thing. Yeah, it got</span> <span class="audio-time caption" data-speaker="Sacha" data-start="304.800000" data-stop="305.801000">that without my needing to</span> <span class="audio-time caption" data-speaker="Sacha" data-start="305.821000" data-stop="306.821000">correct things. Let's pick a</span> <span class="audio-time caption" data-speaker="Sacha" data-start="306.881000" data-stop="307.582000">harder word.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="310.184000" data-stop="311.805000">Anti-disestablishmentarianism.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="312.770000" data-stop="314.292000">Close enough. Okay, you know,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="314.312000" data-stop="315.653000">that requires very little</span> <span class="audio-time caption" data-speaker="Sacha" data-start="315.753000" data-stop="317.094000">editing. What's a</span> <span class="audio-time caption" data-speaker="Sacha" data-start="317.194000" data-stop="319.655000">difficult word? Oh, actually, let's</span> <span class="audio-time caption" data-speaker="Sacha" data-start="319.675000" data-stop="321.057000">pick a different name.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="321.777000" data-stop="323.278000">Sometimes it gets Prot's name wrong.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="323.859000" data-stop="324.619000">"Prot does a lot of</span> <span class="audio-time caption" data-speaker="Sacha" data-start="324.659000" data-stop="325.580000">videos on Emacs."</span> <span class="audio-time caption" data-speaker="Sacha" data-start="326.177000" data-stop="329.680000">Oh, no, it got him too.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="330.220000" data-stop="332.863000">If there was a thing that</span> <span class="audio-time caption" data-speaker="Sacha" data-start="333.063000" data-stop="334.284000">is difficult to say...</span> <span class="audio-time caption" data-speaker="Sacha" data-start="334.651000" data-stop="335.812000">What was that? Okay.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="336.293000" data-stop="338.855000">"Heisenbug is making org.nvim."</span> <span class="audio-time caption" data-speaker="Sacha" data-start="339.596000" data-stop="341.017000">That one. Okay, here we go.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="341.627000" data-stop="343.649000">"Heisenbug is making org.nvim."</span> <span class="audio-time caption" data-speaker="Sacha" data-start="345.318000" data-stop="346.539000">I mean, it's getting him.</span> <p></p><div class="transcript-heading"><span class="audio-time" data-start="351.000000">5:51</span> <strong>Thanking sponsors and members</strong></div><p></p><span class="audio-time caption" data-speaker="Linkarzu" data-start="351.225000" data-stop="352.133000"><strong class="speaker-name">Linkarzu:</strong>  Let me thank my</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="352.993000" data-stop="354.934000">YouTube members, the CEOs are</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="354.974000" data-stop="356.374000">shown on screen, web2three,</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="356.634000" data-stop="358.034000">web2trhee.com, TED,</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="358.354000" data-stop="360.835000">cpnllc.com, and also</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="361.195000" data-stop="361.535000">Gallo,</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="361.915000" data-stop="363.235000">these are the three CEOs,</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="363.395000" data-stop="364.015000">and I just want to</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="364.035000" data-stop="364.895000">thank the rest of the</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="364.915000" data-stop="365.575000">YouTube members,</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="366.016000" data-stop="367.396000">which are the ones that are</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="367.456000" data-stop="368.316000">shown here, so</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="368.776000" data-stop="369.996000">just appreciate</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="370.516000" data-stop="371.496000">each one of the members</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="371.576000" data-stop="373.497000">for supporting the channel, okay?</span> <p></p><div class="transcript-heading"><span class="audio-time" data-start="374.000000">6:14</span> <strong>Fixing misrecognized words with a shortcut</strong></div><p></p><span class="audio-time caption" data-speaker="Linkarzu" data-start="374.248000" data-stop="377.473000"><strong class="speaker-name">Linkarzu:</strong>  So, it's a local model, interesting.</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="377.493000" data-stop="378.454000">It is a local model.</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="378.474000" data-stop="379.234000">Do you feed it a</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="379.274000" data-stop="380.073000">dictionary at some point?</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="380.074000" data-stop="380.935000"><strong class="speaker-name">Sacha:</strong>  If I do need to change</span> <span class="audio-time caption" data-speaker="Sacha" data-start="380.975000" data-stop="382.216000">things... Okay, so if I</span> <span class="audio-time caption" data-speaker="Sacha" data-start="382.276000" data-stop="383.177000">need to change things, let's</span> <span class="audio-time caption" data-speaker="Sacha" data-start="383.197000" data-stop="384.438000">say for example, Orgzly</span> <span class="audio-time caption" data-speaker="Sacha" data-start="384.478000" data-stop="385.478000">Revived, you probably can't get</span> <span class="audio-time caption" data-speaker="Sacha" data-start="385.498000" data-stop="385.818000">that one.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="386.359000" data-stop="387.479000">"I use Orgzly Revived on</span> <span class="audio-time caption" data-speaker="Sacha" data-start="387.519000" data-stop="388.460000">my phone to</span> <span class="audio-time caption" data-speaker="Sacha" data-start="388.940000" data-stop="389.641000">check my tasks."</span> <span class="audio-time caption" data-speaker="Sacha" data-start="390.583000" data-stop="391.504000">Oh yeah, so here, right?</span> <p></p><a href="https://sachachua.com/blog/2026/10/clip-emacs-voice-control-describing-my-setup-during-linkarzu-s-livestream/Xk02luunlfc%20-%20Emacs%20Voice%20Control%20With%20Local%20AI%20on%20a%202018%20Laptop%20-%20Sacha%20Chua's%20Setup.vtt-00-06-33-143.jpg"><img loading="lazy" target="_blank" src="https://sachachua.com/blog/2026/10/clip-emacs-voice-control-describing-my-setup-during-linkarzu-s-livestream/Xk02luunlfc%20-%20Emacs%20Voice%20Control%20With%20Local%20AI%20on%20a%202018%20Laptop%20-%20Sacha%20Chua's%20Setup.vtt-00-06-33-143.jpg" alt="image from video 00:06:33.143" data-time="00:06:33.143"></a><span class="audio-time caption" data-speaker="Sacha" data-start="391.544000" data-stop="393.005000"><strong class="speaker-name">Sacha:</strong> It says Orgsley Revived. What</span> <span class="audio-time caption" data-speaker="Sacha" data-start="393.125000" data-stop="393.765000">is that even?</span> <span class="audio-time caption" data-speaker="Sacha" data-start="394.226000" data-stop="396.516000">But I can press Ctrl+; and</span> <span class="audio-time caption" data-speaker="Sacha" data-start="396.517000" data-stop="398.129000">it uses substitute.el.</span> <p></p><a href="https://sachachua.com/blog/2026/10/clip-emacs-voice-control-describing-my-setup-during-linkarzu-s-livestream/Xk02luunlfc%20-%20Emacs%20Voice%20Control%20With%20Local%20AI%20on%20a%202018%20Laptop%20-%20Sacha%20Chua's%20Setup.vtt-00-06-40-066.jpg"><img loading="lazy" target="_blank" src="https://sachachua.com/blog/2026/10/clip-emacs-voice-control-describing-my-setup-during-linkarzu-s-livestream/Xk02luunlfc%20-%20Emacs%20Voice%20Control%20With%20Local%20AI%20on%20a%202018%20Laptop%20-%20Sacha%20Chua's%20Setup.vtt-00-06-40-066.jpg" alt="image from video 00:06:40.066" data-time="00:06:40.066"></a><span class="audio-time caption" data-speaker="Sacha" data-start="398.729000" data-stop="400.570000"><strong class="speaker-name">Sacha:</strong> Orgzly Revived here. And</span> <span class="audio-time caption" data-speaker="Sacha" data-start="403.032000" data-stop="404.213000">what that does, in addition</span> <span class="audio-time caption" data-speaker="Sacha" data-start="404.273000" data-stop="406.415000">to the substitutions that happen</span> <span class="audio-time caption" data-speaker="Sacha" data-start="406.435000" data-stop="407.515000">throughout the buffer, so for</span> <span class="audio-time caption" data-speaker="Sacha" data-start="407.555000" data-stop="408.416000">example, if I'm adding a</span> <span class="audio-time caption" data-speaker="Sacha" data-start="408.476000" data-stop="408.936000">transcript,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="409.357000" data-stop="410.718000">it will change that all</span> <span class="audio-time caption" data-speaker="Sacha" data-start="410.778000" data-stop="411.578000">throughout the</span> <span class="audio-time caption" data-speaker="Sacha" data-start="412.339000" data-stop="414.080000">transcript. I've also added some</span> <span class="audio-time caption" data-speaker="Sacha" data-start="414.160000" data-stop="415.561000">code because this is Emacs,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="415.601000" data-stop="416.402000">I can just do that.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="416.782000" data-stop="418.443000">that saves this in common</span> <span class="audio-time caption" data-speaker="Sacha" data-start="418.543000" data-stop="421.185000">errors or commonly misrecognized words.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="421.586000" data-stop="423.307000">And then when I recognize text,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="424.148000" data-stop="425.168000">whether it's before a voice</span> <span class="audio-time caption" data-speaker="Sacha" data-start="425.188000" data-stop="425.849000">command or</span> <span class="audio-time caption" data-speaker="Sacha" data-start="426.489000" data-stop="427.350000">if I'm just doing this</span> <span class="audio-time caption" data-speaker="Sacha" data-start="427.410000" data-stop="427.870000">or whatever, it</span> <span class="audio-time caption" data-speaker="Sacha" data-start="428.771000" data-stop="429.712000">will apply all of those</span> <span class="audio-time caption" data-speaker="Sacha" data-start="429.752000" data-stop="430.512000">common fixes.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="431.913000" data-stop="432.874000">Common edits.</span> <p></p><a href="https://sachachua.com/blog/2026/10/clip-emacs-voice-control-describing-my-setup-during-linkarzu-s-livestream/Xk02luunlfc%20-%20Emacs%20Voice%20Control%20With%20Local%20AI%20on%20a%202018%20Laptop%20-%20Sacha%20Chua's%20Setup.vtt-00-07-16-061.jpg"><img loading="lazy" target="_blank" src="https://sachachua.com/blog/2026/10/clip-emacs-voice-control-describing-my-setup-during-linkarzu-s-livestream/Xk02luunlfc%20-%20Emacs%20Voice%20Control%20With%20Local%20AI%20on%20a%202018%20Laptop%20-%20Sacha%20Chua's%20Setup.vtt-00-07-16-061.jpg" alt="image from video 00:07:16.061" data-time="00:07:16.061"></a><span class="audio-time caption" data-speaker="Sacha" data-start="433.314000" data-stop="434.115000"><strong class="speaker-name">Sacha:</strong> Here we go. So it</span> <span class="audio-time caption" data-speaker="Sacha" data-start="434.195000" data-stop="435.416000">automatically adds it</span> <span class="audio-time caption" data-speaker="Sacha" data-start="436.056000" data-stop="438.118000">to this thing here, which</span> <span class="audio-time caption" data-speaker="Sacha" data-start="438.178000" data-stop="439.118000">gets saved</span> <span class="audio-time caption" data-speaker="Sacha" data-start="439.338000" data-stop="440.439000">automatically for me.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="440.939000" data-stop="442.300000">And that's the change</span> <span class="audio-time caption" data-speaker="Sacha" data-start="442.340000" data-stop="444.482000">that I've just added.</span> <p></p><span class="audio-time caption" data-speaker="Linkarzu" data-start="445.323000" data-stop="448.706000"><strong class="speaker-name">Linkarzu:</strong>  Interesting. Pretty cool.</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="448.726000" data-stop="449.606000"><strong class="speaker-name">Sacha:</strong>  So it's really nice to</span> <span class="audio-time caption" data-speaker="Sacha" data-start="449.647000" data-stop="452.909000">have that kind of [dictionary] shortcut</span> <span class="audio-time caption" data-speaker="Sacha" data-start="453.890000" data-stop="454.871000">built into the way that</span> <span class="audio-time caption" data-speaker="Sacha" data-start="454.911000" data-stop="455.992000">I edit things. All I</span> <span class="audio-time caption" data-speaker="Sacha" data-start="456.032000" data-stop="457.993000">know is I just hit Ctrl+;</span> <span class="audio-time caption" data-speaker="Sacha" data-start="458.554000" data-stop="459.714000">and put in what it's</span> <span class="audio-time caption" data-speaker="Sacha" data-start="459.734000" data-stop="460.395000">supposed to be.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="460.915000" data-stop="462.156000">And then it gets</span> <span class="audio-time caption" data-speaker="Sacha" data-start="462.157000" data-stop="463.397000">not only fixed in</span> <span class="audio-time caption" data-speaker="Sacha" data-start="463.437000" data-stop="464.818000">my current file, but in</span> <span class="audio-time caption" data-speaker="Sacha" data-start="464.838000" data-stop="465.699000">the future as well.</span> <p></p><span class="audio-time caption" data-speaker="Linkarzu" data-start="466.380000" data-stop="468.962000"><strong class="speaker-name">Linkarzu:</strong>  Yeah, I need to</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="469.002000" data-stop="470.843000">work on my transcript game.</span> <p></p><div class="transcript-heading"><span class="audio-time" data-start="471.000000">7:51</span> <strong>How the live transcript began</strong></div><p></p><span class="audio-time caption" data-speaker="Sacha" data-start="471.339000" data-stop="474.321000"><strong class="speaker-name">Sacha:</strong>  Like many things in Emacs,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="474.381000" data-stop="476.121000">this came out of a</span> <span class="audio-time caption" data-speaker="Sacha" data-start="476.202000" data-stop="478.383000">bunch of small, seemingly unrelated</span> <span class="audio-time caption" data-speaker="Sacha" data-start="478.423000" data-stop="478.743000">hacks.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="479.383000" data-stop="481.044000">One was, I was having</span> <span class="audio-time caption" data-speaker="Sacha" data-start="481.064000" data-stop="483.445000">this conversation with a French</span> <span class="audio-time caption" data-speaker="Sacha" data-start="483.505000" data-stop="484.406000">tutor and I was like,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="484.906000" data-stop="486.027000">man, I am having a</span> <span class="audio-time caption" data-speaker="Sacha" data-start="486.067000" data-stop="487.067000">hard time making sure... Like,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="487.507000" data-stop="488.568000">he would switch into lecture</span> <span class="audio-time caption" data-speaker="Sacha" data-start="488.588000" data-stop="489.328000">mode and I was trying</span> <span class="audio-time caption" data-speaker="Sacha" data-start="489.348000" data-stop="490.629000">to have more conversation mode</span> <span class="audio-time caption" data-speaker="Sacha" data-start="490.669000" data-stop="493.577000">so I could practice some more, right?</span> <span class="audio-time caption" data-speaker="Sacha" data-start="493.578000" data-stop="496.472000">So I think I've got this right.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="496.896000" data-stop="498.437000">Anyway, so I had</span> <span class="audio-time caption" data-speaker="Sacha" data-start="499.317000" data-stop="500.918000">a large language model generate</span> <span class="audio-time caption" data-speaker="Sacha" data-start="501.038000" data-stop="502.959000">a Python server, because sometimes</span> <span class="audio-time caption" data-speaker="Sacha" data-start="502.979000" data-stop="505.139000">I'm like, I just want</span> <span class="audio-time caption" data-speaker="Sacha" data-start="505.179000" data-stop="506.540000">a proof of concept for this.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="506.920000" data-stop="508.401000">I don't necessarily know all</span> <span class="audio-time caption" data-speaker="Sacha" data-start="508.421000" data-stop="509.421000">the details of how to</span> <span class="audio-time caption" data-speaker="Sacha" data-start="509.461000" data-stop="510.742000">work with the Silero voice</span> <span class="audio-time caption" data-speaker="Sacha" data-start="510.802000" data-stop="511.856000">activity detection thing.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="511.857000" data-stop="513.423000">Anyway, so make me a server that</span> <span class="audio-time caption" data-speaker="Sacha" data-start="513.443000" data-stop="514.423000">can listen to my audio</span> <span class="audio-time caption" data-speaker="Sacha" data-start="514.463000" data-stop="515.744000">devices in real time without</span> <span class="audio-time caption" data-speaker="Sacha" data-start="515.784000" data-stop="518.125000">messing up my</span> <span class="audio-time caption" data-speaker="Sacha" data-start="519.085000" data-stop="520.366000">actual microphone use if I'm</span> <span class="audio-time caption" data-speaker="Sacha" data-start="520.426000" data-stop="520.826000">on stream.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="521.266000" data-stop="521.966000">Okay, so I have this</span> <span class="audio-time caption" data-speaker="Sacha" data-start="522.006000" data-stop="523.207000">Python server and then I</span> <span class="audio-time caption" data-speaker="Sacha" data-start="523.247000" data-stop="524.227000">wanted to visualize it within</span> <span class="audio-time caption" data-speaker="Sacha" data-start="524.267000" data-stop="525.187000">Emacs. I got</span> <span class="audio-time caption" data-speaker="Sacha" data-start="525.227000" data-stop="527.008000">that visualizing inside Emacs.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="527.048000" data-stop="527.908000">Then I wanted to say,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="528.648000" data-stop="530.369000">all right, you know,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="530.849000" data-stop="531.609000">why don't I have speech</span> <span class="audio-time caption" data-speaker="Sacha" data-start="531.649000" data-stop="533.130000">recognition listening on this thing</span> <span class="audio-time caption" data-speaker="Sacha" data-start="533.170000" data-stop="533.930000">so that if I say</span> <span class="audio-time caption" data-speaker="Sacha" data-start="534.010000" data-stop="538.420000">something, it can check it off,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="538.421000" data-stop="539.818000">like playing bingo, you know,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="539.819000" data-stop="540.852000">if I say it, then it</span> <span class="audio-time caption" data-speaker="Sacha" data-start="540.892000" data-stop="541.813000">gives me a note that</span> <span class="audio-time caption" data-speaker="Sacha" data-start="541.833000" data-stop="542.833000">I've actually said that word</span> <span class="audio-time caption" data-speaker="Sacha" data-start="543.153000" data-stop="544.073000">or phrase. And so</span> <span class="audio-time caption" data-speaker="Sacha" data-start="544.734000" data-stop="545.274000">it could show me a</span> <span class="audio-time caption" data-speaker="Sacha" data-start="545.314000" data-stop="546.134000">list of the words or</span> <span class="audio-time caption" data-speaker="Sacha" data-start="546.154000" data-stop="547.214000">phrases that I still want</span> <span class="audio-time caption" data-speaker="Sacha" data-start="547.255000" data-stop="548.355000">to say in conversation.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="548.915000" data-stop="549.336000">And then, as</span> <span class="audio-time caption" data-speaker="Sacha" data-start="550.317000" data-stop="551.719000">we're preparing for this conversation,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="551.739000" data-stop="552.620000">I was like, you know</span> <span class="audio-time caption" data-speaker="Sacha" data-start="552.640000" data-stop="553.622000">what would be really cool</span> <span class="audio-time caption" data-speaker="Sacha" data-start="554.122000" data-stop="555.204000">is if I could</span> <span class="audio-time caption" data-speaker="Sacha" data-start="555.605000" data-stop="556.841000">have that speech recognition,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="556.842000" data-stop="558.469000">which is running anyway,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="558.929000" data-stop="560.171000">give me a transcript of</span> <span class="audio-time caption" data-speaker="Sacha" data-start="560.231000" data-stop="561.673000">the current conversation in a</span> <span class="audio-time caption" data-speaker="Sacha" data-start="562.174000" data-stop="563.808000">way that I can use it.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="563.809000" data-stop="565.017000">I could then clip</span> <span class="audio-time caption" data-speaker="Sacha" data-start="565.137000" data-stop="565.998000">if I wanted to</span> <span class="audio-time caption" data-speaker="Sacha" data-start="566.479000" data-stop="567.760000">because sometimes I'll be</span> <span class="audio-time caption" data-speaker="Sacha" data-start="567.880000" data-stop="570.302000">doing a live stream and</span> <span class="audio-time caption" data-speaker="Sacha" data-start="570.342000" data-stop="570.723000">I'd be like,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="571.243000" data-stop="572.044000">you know, that was a</span> <span class="audio-time caption" data-speaker="Sacha" data-start="572.084000" data-stop="573.125000">really cool demo and I</span> <span class="audio-time caption" data-speaker="Sacha" data-start="573.165000" data-stop="574.326000">should grab that. So that</span> <span class="audio-time caption" data-speaker="Sacha" data-start="574.446000" data-stop="575.347000">I can just grab the</span> <span class="audio-time caption" data-speaker="Sacha" data-start="575.367000" data-stop="576.428000">screenshot or</span> <span class="audio-time caption" data-speaker="Sacha" data-start="577.269000" data-stop="578.150000">put it into</span> <span class="audio-time caption" data-speaker="Sacha" data-start="579.051000" data-stop="579.831000">a blog post or just</span> <span class="audio-time caption" data-speaker="Sacha" data-start="579.851000" data-stop="581.633000">get a text or extract</span> <span class="audio-time caption" data-speaker="Sacha" data-start="582.073000" data-stop="582.854000">a clip out of it,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="582.914000" data-stop="584.316000">turn it into a video, right?</span> <span class="audio-time caption" data-speaker="Sacha" data-start="585.957000" data-stop="586.997000">And so now I have</span> <span class="audio-time caption" data-speaker="Sacha" data-start="587.037000" data-stop="588.318000">this thing where,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="588.859000" data-stop="589.679000">hang on a second,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="590.139000" data-stop="591.821000">if I'm somewhere else, for</span> <span class="audio-time caption" data-speaker="Sacha" data-start="591.881000" data-stop="592.321000">example,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="593.081000" data-stop="593.822000">it's easy for me to</span> <span class="audio-time caption" data-speaker="Sacha" data-start="593.862000" data-stop="593.885000">get to.</span> <p></p><div class="transcript-heading"><span class="audio-time" data-start="593.000000">9:53</span> <strong>Prepare to fast forward</strong></div><p></p><span class="audio-time caption" data-speaker="Sacha" data-start="593.886000" data-stop="594.622000"><strong class="speaker-name">Sacha:</strong> I have a</span> <span class="audio-time caption" data-speaker="Sacha" data-start="594.662000" data-stop="595.503000">voice command for it.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="596.023000" data-stop="597.284000">"Prepare to fast forward",</span> <span class="audio-time caption" data-speaker="Sacha" data-start="598.765000" data-stop="599.525000">which is of course a</span> <span class="audio-time caption" data-speaker="Sacha" data-start="599.586000" data-stop="600.592000">Spaceballs reference.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="600.593000" data-stop="601.427000">It'll show me then</span> <span class="audio-time caption" data-speaker="Sacha" data-start="601.867000" data-stop="602.547000">this thing.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="603.428000" data-stop="607.030000">And if we are... Let me load this</span> <span class="audio-time caption" data-speaker="Sacha" data-start="607.451000" data-stop="609.172000">real quick.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="610.042000" data-stop="611.083000">It will show me</span> <span class="audio-time caption" data-speaker="Sacha" data-start="611.143000" data-stop="612.745000">the video that we have</span> <span class="audio-time caption" data-speaker="Sacha" data-start="613.125000" data-stop="614.166000">or at least the recording</span> <span class="audio-time caption" data-speaker="Sacha" data-start="614.186000" data-stop="615.187000">that I've got of it.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="615.908000" data-stop="617.089000">That's on the right side.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="617.109000" data-stop="618.511000">Here, this MPV is controlled</span> <span class="audio-time caption" data-speaker="Sacha" data-start="618.531000" data-stop="619.291000">by Emacs.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="620.032000" data-stop="623.540000">If I go here...</span> <span class="audio-time caption" data-speaker="Sacha" data-start="624.180000" data-stop="625.690000">Let's say this one.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="625.691000" data-stop="627.163000">So here's your waveform for it.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="627.183000" data-stop="628.457000">If I play it back:</span> <span class="audio-time caption" data-speaker="Sacha" data-start="628.458000" data-stop="629.665000">"which is of course</span> <span class="audio-time caption" data-speaker="Sacha" data-start="629.705000" data-stop="630.904000">a Spaceballs reference",</span> <span class="audio-time caption" data-speaker="Sacha" data-start="630.905000" data-stop="632.848000">it'll show me then this thing.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="633.608000" data-stop="636.291000">And I can copy the text if I</span> <span class="audio-time caption" data-speaker="Sacha" data-start="636.331000" data-stop="637.291000">wanted to, or I can</span> <span class="audio-time caption" data-speaker="Sacha" data-start="637.732000" data-stop="638.553000">extract this</span> <span class="audio-time caption" data-speaker="Sacha" data-start="639.333000" data-stop="640.875000">into its own video.</span> <p></p><div class="transcript-heading"><span class="audio-time" data-start="641.000000">10:41</span> <strong>Talking with Emacs
</strong></div><p></p><a href="https://sachachua.com/blog/2026/10/clip-emacs-voice-control-describing-my-setup-during-linkarzu-s-livestream/Xk02luunlfc%20-%20Emacs%20Voice%20Control%20With%20Local%20AI%20on%20a%202018%20Laptop%20-%20Sacha%20Chua's%20Setup.vtt-00-00-00-000.jpg"><img loading="lazy" target="_blank" src="https://sachachua.com/blog/2026/10/clip-emacs-voice-control-describing-my-setup-during-linkarzu-s-livestream/Xk02luunlfc%20-%20Emacs%20Voice%20Control%20With%20Local%20AI%20on%20a%202018%20Laptop%20-%20Sacha%20Chua's%20Setup.vtt-00-00-00-000.jpg" alt="image from video 00:00:00.000" data-time="00:00:00.000"></a><span class="audio-time caption" data-speaker="Linkarzu" data-start="641.222000" data-stop="642.383000"><strong class="speaker-name">Linkarzu:</strong>  What other tricks do you</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="642.423000" data-stop="643.504000">want to show us there?</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="643.644000" data-stop="644.785000">What other things do you</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="644.805000" data-stop="646.287000">want to share about,</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="647.088000" data-stop="649.390000">brag about your Emacs workflow?</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="650.001000" data-stop="650.801000"><strong class="speaker-name">Sacha:</strong>  It's really hard to say.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="653.447000" data-stop="654.388000">I told you how M-x doctor</span> <span class="audio-time caption" data-speaker="Sacha" data-start="654.408000" data-stop="655.629000">was the beginning of my</span> <span class="audio-time caption" data-speaker="Sacha" data-start="656.449000" data-stop="657.230000">experience, right?</span> <p></p><span class="audio-time caption" data-speaker="Linkarzu" data-start="657.231000" data-stop="657.970000"><strong class="speaker-name">Linkarzu:</strong>  Your journey, yep.</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="658.270000" data-stop="659.371000"><strong class="speaker-name">Sacha:</strong>  Yes, yes. So this is</span> <span class="audio-time caption" data-speaker="Sacha" data-start="659.431000" data-stop="660.252000">the doctor. You can say</span> <span class="audio-time caption" data-speaker="Sacha" data-start="660.312000" data-stop="660.912000">things like,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="661.953000" data-stop="664.215000">"I'm feeling happy today," as</span> <span class="audio-time caption" data-speaker="Sacha" data-start="664.295000" data-stop="665.115000">I said, right?</span> <span class="audio-time caption" data-speaker="Sacha" data-start="665.896000" data-stop="666.917000">And then it uses that</span> <span class="audio-time caption" data-speaker="Sacha" data-start="666.977000" data-stop="668.578000">to generate its response.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="669.598000" data-stop="671.220000">But I have this conversation mode.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="673.621000" data-stop="674.782000">"Yes, especially when I get</span> <span class="audio-time caption" data-speaker="Sacha" data-start="674.822000" data-stop="675.783000">to tinker with Emacs."</span> <span class="audio-time caption" data-speaker="Sacha" data-start="679.095000" data-stop="681.340000">And then, uh... "What happened</span> <span class="audio-time caption" data-speaker="Sacha" data-start="681.380000" data-stop="682.162000">when you get to tinker</span> <span class="audio-time caption" data-speaker="Sacha" data-start="682.182000" data-stop="682.743000">with Emacs?"</span> <span class="audio-time caption" data-speaker="Sacha" data-start="683.550000" data-stop="685.450000">Did that...? Does the TTS come</span> <span class="audio-time caption" data-speaker="Sacha" data-start="685.470000" data-stop="686.731000">through? Yeah, it does.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="687.911000" data-stop="688.591000">And the reason I</span> <span class="audio-time caption" data-speaker="Sacha" data-start="689.391000" data-stop="690.652000">did this was because after</span> <span class="audio-time caption" data-speaker="Sacha" data-start="690.692000" data-stop="691.572000">I showed off my vocal</span> <span class="audio-time caption" data-speaker="Sacha" data-start="691.592000" data-stop="693.152000">commands to Emacs Paris, they</span> <span class="audio-time caption" data-speaker="Sacha" data-start="693.172000" data-stop="694.233000">were like, oh, you know,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="694.313000" data-stop="694.873000">what if you can have</span> <span class="audio-time caption" data-speaker="Sacha" data-start="694.893000" data-stop="695.613000">a conversation? So</span> <span class="audio-time caption" data-speaker="Sacha" data-start="696.113000" data-stop="696.813000">I was like, OK, let's</span> <span class="audio-time caption" data-speaker="Sacha" data-start="697.173000" data-stop="698.253000">come back full circle to</span> <span class="audio-time caption" data-speaker="Sacha" data-start="698.293000" data-stop="699.534000">the thing that got me</span> <span class="audio-time caption" data-speaker="Sacha" data-start="699.574000" data-stop="700.734000">curious about Emacs in the</span> <span class="audio-time caption" data-speaker="Sacha" data-start="700.754000" data-stop="702.554000">first place, and</span> <span class="audio-time caption" data-speaker="Sacha" data-start="703.015000" data-stop="703.895000">voice enable that.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="704.275000" data-stop="705.175000">And then, of course, this</span> <span class="audio-time caption" data-speaker="Sacha" data-start="705.235000" data-stop="706.255000">is a very old AI.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="706.295000" data-stop="707.216000">It's much more interesting if</span> <span class="audio-time caption" data-speaker="Sacha" data-start="707.256000" data-stop="708.256000">you apply it to the</span> <span class="audio-time caption" data-speaker="Sacha" data-start="708.356000" data-stop="709.096000">new models.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="709.676000" data-stop="711.857000">So if I want to, for example,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="712.277000" data-stop="712.957000">practice French.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="714.217000" data-stop="715.657000">This is one of</span> <span class="audio-time caption" data-speaker="Sacha" data-start="716.858000" data-stop="718.558000">my voice commands here.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="719.558000" data-stop="720.211000">Then I can...</span> <p></p><span class="audio-time caption" data-speaker="Doctor" data-start="720.212000" data-stop="720.679000"><strong class="speaker-name">Doctor:</strong>  "What would</span> <span class="audio-time caption" data-speaker="Doctor" data-start="720.739000" data-stop="721.919000">happen? I would</span> <span class="audio-time caption" data-speaker="Doctor" data-start="721.959000" data-stop="722.799000">appreciate it if you would</span> <span class="audio-time caption" data-speaker="Doctor" data-start="722.839000" data-stop="723.319000">continue."</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="724.259000" data-stop="724.919000"><strong class="speaker-name">Sacha:</strong>  Okay, here we are.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="725.560000" data-stop="726.380000">Then I might say,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="728.340000" data-stop="730.161000">"Je parle avec linkarzu."</span> <span class="audio-time caption" data-speaker="Sacha" data-start="730.721000" data-stop="732.022000">And then I think...</span> <span class="audio-time caption" data-speaker="Sacha" data-start="733.322000" data-stop="733.942000">There you go. It</span> <span class="audio-time caption" data-speaker="Sacha" data-start="734.740000" data-stop="735.741000">will eventually...</span> <span class="audio-time caption" data-speaker="Sacha" data-start="736.292000" data-stop="736.632000">Maybe? Thank you.</span> <p></p><a href="https://sachachua.com/blog/2026/10/clip-emacs-voice-control-describing-my-setup-during-linkarzu-s-livestream/Xk02luunlfc%20-%20Emacs%20Voice%20Control%20With%20Local%20AI%20on%20a%202018%20Laptop%20-%20Sacha%20Chua's%20Setup.vtt-00-12-18-696.jpg"><img loading="lazy" target="_blank" src="https://sachachua.com/blog/2026/10/clip-emacs-voice-control-describing-my-setup-during-linkarzu-s-livestream/Xk02luunlfc%20-%20Emacs%20Voice%20Control%20With%20Local%20AI%20on%20a%202018%20Laptop%20-%20Sacha%20Chua's%20Setup.vtt-00-12-18-696.jpg" alt="image from video 00:12:18.696" data-time="00:12:18.696"></a><span class="audio-time caption" data-speaker="Gemini" data-start="738.688000" data-stop="740.750000"><strong class="speaker-name">Gemini:</strong>  "Ah, c'est super de discuter</span> <span class="audio-time caption" data-speaker="Gemini" data-start="740.790000" data-stop="742.652000">avec lui ! C'est toujours enrichissant</span> <span class="audio-time caption" data-speaker="Gemini" data-start="742.672000" data-stop="744.514000">de partager (to share) ses passions</span> <span class="audio-time caption" data-speaker="Gemini" data-start="744.574000" data-stop="746.092000">en direct. Quel sujet</span> <span class="audio-time caption" data-speaker="Gemini" data-start="746.093000" data-stop="747.757000">abordez-vous ensemble aujourd'hui?"</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="748.307000" data-stop="749.708000"><strong class="speaker-name">Sacha:</strong>  Alright, so</span> <span class="audio-time caption" data-speaker="Sacha" data-start="750.808000" data-stop="752.249000">this now uses a large</span> <span class="audio-time caption" data-speaker="Sacha" data-start="752.309000" data-stop="753.769000">language model. This one uses</span> <span class="audio-time caption" data-speaker="Sacha" data-start="754.310000" data-stop="756.791000">Gemini because gptel makes it</span> <span class="audio-time caption" data-speaker="Sacha" data-start="756.851000" data-stop="757.851000">super easy to plug in</span> <span class="audio-time caption" data-speaker="Sacha" data-start="757.871000" data-stop="758.551000">different models.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="759.752000" data-stop="760.572000">So if I wanted</span> <span class="audio-time caption" data-speaker="Sacha" data-start="760.612000" data-stop="761.533000">to practice</span> <span class="audio-time caption" data-speaker="Sacha" data-start="762.013000" data-stop="763.394000">French, but I don't necessarily</span> <span class="audio-time caption" data-speaker="Sacha" data-start="763.414000" data-stop="764.254000">want to bug people</span> <span class="audio-time caption" data-speaker="Sacha" data-start="765.675000" data-stop="766.695000">because I take a while</span> <span class="audio-time caption" data-speaker="Sacha" data-start="766.735000" data-stop="767.695000">to think about my words</span> <span class="audio-time caption" data-speaker="Sacha" data-start="767.775000" data-stop="768.976000">and sometimes I'm looking stuff up,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="769.396000" data-stop="770.076000">then at least I can</span> <span class="audio-time caption" data-speaker="Sacha" data-start="770.116000" data-stop="771.497000">simulate that kind of conversation.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="771.557000" data-stop="772.417000">And there are a gazillion</span> <span class="audio-time caption" data-speaker="Sacha" data-start="772.558000" data-stop="773.857000">apps that will sell you</span> <span class="audio-time caption" data-speaker="Sacha" data-start="773.858000" data-stop="775.179000">a subscription to do this.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="775.939000" data-stop="777.220000">But because it's here and</span> <span class="audio-time caption" data-speaker="Sacha" data-start="777.280000" data-stop="778.400000">it's plain text and I</span> <span class="audio-time caption" data-speaker="Sacha" data-start="778.460000" data-stop="779.441000">can control it, then I</span> <span class="audio-time caption" data-speaker="Sacha" data-start="779.461000" data-stop="781.181000">can more easily go through it</span> <span class="audio-time caption" data-speaker="Sacha" data-start="781.261000" data-stop="784.883000">afterwards and analyze the vocabulary</span> <span class="audio-time caption" data-speaker="Sacha" data-start="785.163000" data-stop="787.784000">or correct the things</span> <span class="audio-time caption" data-speaker="Sacha" data-start="787.824000" data-stop="788.945000">that it didn't get right,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="789.085000" data-stop="790.245000">which I know is because</span> <span class="audio-time caption" data-speaker="Sacha" data-start="790.345000" data-stop="792.086000">of the speech recognition and</span> <span class="audio-time caption" data-speaker="Sacha" data-start="792.126000" data-stop="792.927000">not because of me or</span> <span class="audio-time caption" data-speaker="Sacha" data-start="792.947000" data-stop="793.507000">whatever, right?</span> <span class="audio-time caption" data-speaker="Sacha" data-start="794.787000" data-stop="795.648000">So it's so much fun</span> <span class="audio-time caption" data-speaker="Sacha" data-start="795.688000" data-stop="796.668000">to be able to tinker</span> <span class="audio-time caption" data-speaker="Sacha" data-start="796.748000" data-stop="798.229000">with Emacs to do what</span> <span class="audio-time caption" data-speaker="Sacha" data-start="798.329000" data-stop="799.169000">I wanted to do.</span> <p></p><div class="transcript-heading"><span class="audio-time" data-start="799.000000">13:19</span> <strong>Life in tiny time chunks</strong></div><p></p><span class="audio-time caption" data-speaker="Linkarzu" data-start="799.596000" data-stop="800.857000"><strong class="speaker-name">Linkarzu:</strong>  How long do you spend</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="800.897000" data-stop="801.877000">sitting? Like do you spend</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="801.897000" data-stop="803.058000">sitting most of the day?</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="804.327000" data-stop="805.448000"><strong class="speaker-name">Sacha:</strong>  Most of the time, actually,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="805.468000" data-stop="806.149000">I have to go help</span> <span class="audio-time caption" data-speaker="Sacha" data-start="806.209000" data-stop="807.370000">out the kiddo, right?</span> <span class="audio-time caption" data-speaker="Sacha" data-start="808.331000" data-stop="809.672000">So that keeps me away</span> <span class="audio-time caption" data-speaker="Sacha" data-start="809.712000" data-stop="810.753000">from the computer, which is</span> <span class="audio-time caption" data-speaker="Sacha" data-start="810.853000" data-stop="811.894000">one of the reasons why</span> <span class="audio-time caption" data-speaker="Sacha" data-start="812.415000" data-stop="813.736000">I've had to learn how</span> <span class="audio-time caption" data-speaker="Sacha" data-start="813.776000" data-stop="815.938000">to deal with very fragmented time.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="816.799000" data-stop="817.980000">Not much time sitting in</span> <span class="audio-time caption" data-speaker="Sacha" data-start="818.000000" data-stop="818.881000">front of the computer to</span> <span class="audio-time caption" data-speaker="Sacha" data-start="818.921000" data-stop="820.422000">focus on something. Everything that</span> <span class="audio-time caption" data-speaker="Sacha" data-start="820.562000" data-stop="821.183000">I want to do</span> <span class="audio-time caption" data-speaker="Sacha" data-start="821.583000" data-stop="822.764000">has to be something that</span> <span class="audio-time caption" data-speaker="Sacha" data-start="822.784000" data-stop="823.265000">I can do in 5,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="823.325000" data-stop="824.286000">10, 15 minutes, maybe 30</span> <span class="audio-time caption" data-speaker="Sacha" data-start="824.326000" data-stop="824.966000">minutes.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="826.267000" data-stop="826.747000">There might be...</span> <span class="audio-time caption" data-speaker="Sacha" data-start="827.208000" data-stop="828.048000">At the moment,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="828.088000" data-stop="830.850000">she is fairly independent, but I</span> <span class="audio-time caption" data-speaker="Sacha" data-start="830.890000" data-stop="831.970000">can still be interrupted by</span> <span class="audio-time caption" data-speaker="Sacha" data-start="832.030000" data-stop="833.671000">somebody who needs breakfast or</span> <span class="audio-time caption" data-speaker="Sacha" data-start="833.711000" data-stop="834.772000">somebody who needs a hug</span> <span class="audio-time caption" data-speaker="Sacha" data-start="834.832000" data-stop="836.573000">and whatever. So I need to</span> <span class="audio-time caption" data-speaker="Sacha" data-start="836.613000" data-stop="837.573000">be able to capture a</span> <span class="audio-time caption" data-speaker="Sacha" data-start="837.613000" data-stop="838.434000">thought, get it out of</span> <span class="audio-time caption" data-speaker="Sacha" data-start="838.474000" data-stop="839.214000">the way and work on</span> <span class="audio-time caption" data-speaker="Sacha" data-start="839.234000" data-stop="840.195000">things in tiny chunks.</span> <p></p><span class="audio-time caption" data-speaker="Linkarzu" data-start="841.261000" data-stop="841.702000"><strong class="speaker-name">Linkarzu:</strong>  I've seen</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="842.122000" data-stop="843.944000">my wife, how she handles</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="844.004000" data-stop="845.045000">things. And I'm like, man,</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="845.865000" data-stop="846.266000">it's a lot of</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="847.226000" data-stop="848.868000">mental overhead, you know?</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="849.858000" data-stop="852.179000">That's a whole other</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="852.219000" data-stop="853.521000">conversation to say, see,</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="854.141000" data-stop="855.482000">men are the ones that</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="855.582000" data-stop="857.944000">make progress, build their professional</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="858.004000" data-stop="859.546000">careers and wives, you know,</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="859.606000" data-stop="860.707000">usually take care of the kids.</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="861.347000" data-stop="865.200000">It's a huge sacrifice.</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="865.201000" data-stop="866.291000">What do you think?</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="866.325000" data-stop="866.956000">How do you feel about</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="866.976000" data-stop="867.257000">all that?</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="868.183000" data-stop="869.184000"><strong class="speaker-name">Sacha:</strong>  I signed up for it</span> <span class="audio-time caption" data-speaker="Sacha" data-start="869.306000" data-stop="870.908000">totally knowing what I was</span> <span class="audio-time caption" data-speaker="Sacha" data-start="870.948000" data-stop="872.210000">getting into. I was like,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="872.267000" data-stop="873.447000">okay, there's a lot involved</span> <span class="audio-time caption" data-speaker="Sacha" data-start="873.487000" data-stop="875.168000">in being the default parent,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="875.228000" data-stop="876.008000">right? The primary</span> <span class="audio-time caption" data-speaker="Sacha" data-start="876.788000" data-stop="878.549000">person who patches up.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="879.529000" data-stop="880.329000">But I think</span> <span class="audio-time caption" data-speaker="Sacha" data-start="880.850000" data-stop="882.150000">partly because of Org Mode</span> <span class="audio-time caption" data-speaker="Sacha" data-start="882.190000" data-stop="882.730000">and Emacs,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="883.013000" data-stop="884.454000">it's been very, very helpful</span> <span class="audio-time caption" data-speaker="Sacha" data-start="884.594000" data-stop="885.554000">to me to be able</span> <span class="audio-time caption" data-speaker="Sacha" data-start="885.574000" data-stop="885.874000">to say,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="886.254000" data-stop="887.375000">"Yeah, that's a great idea.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="887.415000" data-stop="888.135000">I'm going to write that</span> <span class="audio-time caption" data-speaker="Sacha" data-start="888.175000" data-stop="889.355000">down in my phone or</span> <span class="audio-time caption" data-speaker="Sacha" data-start="889.395000" data-stop="890.456000">on my computer" - usually on</span> <span class="audio-time caption" data-speaker="Sacha" data-start="890.476000" data-stop="891.196000">my phone back in the early</span> <span class="audio-time caption" data-speaker="Sacha" data-start="891.536000" data-stop="891.976000">parenting days.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="894.217000" data-stop="895.098000">I'm away from my computer.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="895.118000" data-stop="896.779000">I'm at the playground.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="897.300000" data-stop="898.220000">So the fact that I</span> <span class="audio-time caption" data-speaker="Sacha" data-start="898.260000" data-stop="898.981000">can capture</span> <span class="audio-time caption" data-speaker="Sacha" data-start="899.561000" data-stop="900.903000">a note into Org Mode</span> <span class="audio-time caption" data-speaker="Sacha" data-start="901.283000" data-stop="902.544000">and then know that I</span> <span class="audio-time caption" data-speaker="Sacha" data-start="902.604000" data-stop="903.525000">can get back to it</span> <span class="audio-time caption" data-speaker="Sacha" data-start="903.645000" data-stop="905.186000">in several years when I</span> <span class="audio-time caption" data-speaker="Sacha" data-start="905.226000" data-stop="906.027000">have more free time,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="906.427000" data-stop="907.308000">or that Org Mode can</span> <span class="audio-time caption" data-speaker="Sacha" data-start="907.348000" data-stop="908.569000">keep track of the deadlines</span> <span class="audio-time caption" data-speaker="Sacha" data-start="908.649000" data-stop="909.590000">that might be a year</span> <span class="audio-time caption" data-speaker="Sacha" data-start="909.630000" data-stop="910.430000">from now, like when I</span> <span class="audio-time caption" data-speaker="Sacha" data-start="910.490000" data-stop="910.731000">need to</span> <span class="audio-time caption" data-speaker="Sacha" data-start="911.111000" data-stop="912.032000">renew my passport,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="912.452000" data-stop="913.933000">and just have that surface</span> <span class="audio-time caption" data-speaker="Sacha" data-start="913.953000" data-stop="914.874000">the reminder, at the right</span> <span class="audio-time caption" data-speaker="Sacha" data-start="914.914000" data-stop="916.195000">time with the notes on</span> <span class="audio-time caption" data-speaker="Sacha" data-start="916.255000" data-stop="917.436000">exactly what I need to do,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="917.936000" data-stop="918.857000">and the links to wherever</span> <span class="audio-time caption" data-speaker="Sacha" data-start="918.877000" data-stop="919.518000">I need to go, I</span> <span class="audio-time caption" data-speaker="Sacha" data-start="920.058000" data-stop="921.259000">think that has been very,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="921.299000" data-stop="922.160000">very helpful for me.</span> <p></p><div class="transcript-heading"><span class="audio-time" data-start="923.000000">15:23</span> <strong>Capturing tasks on phone and computer</strong></div><p></p><span class="audio-time caption" data-speaker="Linkarzu" data-start="923.000000" data-stop="924.641000"><strong class="speaker-name">Linkarzu:</strong>  Good point that you brought</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="924.721000" data-stop="925.961000">up because I don't know,</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="926.381000" data-stop="927.241000">quite a few days ago</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="927.281000" data-stop="928.381000">I just came up, well,</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="928.742000" data-stop="930.642000">the clanker came up with a</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="931.022000" data-stop="932.202000">method, we could say,</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="932.563000" data-stop="934.003000">of me just tapping it,</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="934.263000" data-stop="935.323000">saying something to it,</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="935.783000" data-stop="936.543000">and when I come to</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="936.563000" data-stop="938.284000">my computer, the task is</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="938.364000" data-stop="939.404000">there in Neovim,</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="939.784000" data-stop="941.645000">right? Yes. Because I forget,</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="941.925000" data-stop="943.865000">I'm outside, I'm like, okay,</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="943.945000" data-stop="944.946000">I have to remember this,</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="944.966000" data-stop="945.886000">I have to, I'm not</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="945.906000" data-stop="946.926000">gonna remember it, it's just</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="946.966000" data-stop="948.126000">gonna go away. So I</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="948.146000" data-stop="948.827000">do it on the phone,</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="949.287000" data-stop="950.167000">shows up in Neovim.</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="951.767000" data-stop="953.176000">It's a huge benefit.</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="953.177000" data-stop="953.908000">How do you do it</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="955.989000" data-stop="957.269000"><strong class="speaker-name">Sacha:</strong>  For my phone, I often</span> <span class="audio-time caption" data-speaker="Sacha" data-start="957.330000" data-stop="958.650000">just put it into</span> <span class="audio-time caption" data-speaker="Sacha" data-start="958.670000" data-stop="961.131000">Orgzly Revived, sometimes with dictation,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="961.191000" data-stop="962.291000">sometimes just typing in a</span> <span class="audio-time caption" data-speaker="Sacha" data-start="962.331000" data-stop="963.252000">few keywords to help me</span> <span class="audio-time caption" data-speaker="Sacha" data-start="963.292000" data-stop="965.112000">remember. A lot of times,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="965.132000" data-stop="966.233000">if I'm coming across...</span> <p></p><span class="audio-time caption" data-speaker="Linkarzu" data-start="966.453000" data-stop="968.614000"><strong class="speaker-name">Linkarzu:</strong>  Orgzly Revived, what is it?</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="969.074000" data-stop="972.519000"><strong class="speaker-name">Sacha:</strong>  (Hah, I clearly can't spell) ogrzly?</span> <p></p><span class="audio-time caption" data-speaker="Linkarzu" data-start="972.520000" data-stop="973.586000"><strong class="speaker-name">Linkarzu:</strong>  If you want to show it,</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="973.587000" data-stop="974.416000">I don't know.</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="975.576000" data-stop="976.497000"><strong class="speaker-name">Sacha:</strong>  It's on my phone.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="977.310000" data-stop="978.531000">I'm gonna say, okay, because</span> <span class="audio-time caption" data-speaker="Sacha" data-start="978.551000" data-stop="979.522000">this is what, Orgzly.</span> <p></p><span class="audio-time caption" data-speaker="Linkarzu" data-start="979.523000" data-stop="982.373000"><strong class="speaker-name">Linkarzu:</strong>  Is it like an app?</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="982.413000" data-stop="983.493000"><strong class="speaker-name">Sacha:</strong>  Yeah, so I use an</span> <span class="audio-time caption" data-speaker="Sacha" data-start="983.593000" data-stop="984.974000">Android phone. And now there</span> <span class="audio-time caption" data-speaker="Sacha" data-start="984.994000" data-stop="986.375000">are actually a gazillion apps</span> <span class="audio-time caption" data-speaker="Sacha" data-start="986.535000" data-stop="989.417000">that talk Org Mode and can</span> <span class="audio-time caption" data-speaker="Sacha" data-start="989.437000" data-stop="990.557000">synchronize with your files and</span> <span class="audio-time caption" data-speaker="Sacha" data-start="990.577000" data-stop="990.977000">whatever.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="991.438000" data-stop="992.918000">I'm currently still just using</span> <span class="audio-time caption" data-speaker="Sacha" data-start="992.979000" data-stop="994.699000">Orgzly Revived as an app</span> <span class="audio-time caption" data-speaker="Sacha" data-start="994.799000" data-stop="996.360000">on my phone with Syncthing,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="996.801000" data-stop="998.021000">With Syncthing being the</span> <span class="audio-time caption" data-speaker="Sacha" data-start="998.501000" data-stop="1000.643000">free synchronization that I can</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1000.783000" data-stop="1002.103000">use to just get my</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1002.123000" data-stop="1002.904000">files back and forth.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1004.267000" data-stop="1005.327000">But there are lots of</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1005.367000" data-stop="1006.488000">other alternatives, so you can</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1006.528000" data-stop="1007.728000">find something that fits you well.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1008.228000" data-stop="1010.069000">I am very tempted to figure out</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1010.449000" data-stop="1012.269000">finally how to use Emacs</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1012.349000" data-stop="1014.270000">native, because there's an Emacs</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1014.330000" data-stop="1015.250000">port for Android.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1016.330000" data-stop="1017.351000">Especially if I can get</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1017.451000" data-stop="1019.191000">my speech synthesis and speech</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1019.231000" data-stop="1020.351000">recognition working on it. I</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1020.371000" data-stop="1021.432000">think that would be amazing</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1021.472000" data-stop="1022.032000">to have this</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1022.412000" data-stop="1024.092000">kind of conversation with</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1024.793000" data-stop="1025.593000">Emacs along the way.</span> <p></p><div class="transcript-heading"><span class="audio-time" data-start="1025.000000">17:05</span> <strong>Capturing tasks by voice</strong></div><p></p><span class="audio-time caption" data-speaker="Sacha" data-start="1025.993000" data-stop="1026.913000"><strong class="speaker-name">Sacha:</strong> And then on the computer,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1026.973000" data-stop="1027.793000">if I need to capture</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1027.814000" data-stop="1028.954000">something quickly, oh, I can</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1028.994000" data-stop="1031.675000">show you this one. Let's see. Okay.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1033.555000" data-stop="1034.936000">"Remind me to put together</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1034.956000" data-stop="1036.917000">a quick description of my</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1038.718000" data-stop="1039.559000">to-do workflow."</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1041.545000" data-stop="1043.566000">And it will take that note</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1044.007000" data-stop="1044.887000">and it will stick it</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1045.047000" data-stop="1046.848000">into an inbox.</span> <p></p><a href="https://sachachua.com/blog/2026/10/clip-emacs-voice-control-describing-my-setup-during-linkarzu-s-livestream/Xk02luunlfc%20-%20Emacs%20Voice%20Control%20With%20Local%20AI%20on%20a%202018%20Laptop%20-%20Sacha%20Chua's%20Setup.vtt-00-17-36-180.jpg"><img loading="lazy" target="_blank" src="https://sachachua.com/blog/2026/10/clip-emacs-voice-control-describing-my-setup-during-linkarzu-s-livestream/Xk02luunlfc%20-%20Emacs%20Voice%20Control%20With%20Local%20AI%20on%20a%202018%20Laptop%20-%20Sacha%20Chua's%20Setup.vtt-00-17-36-180.jpg" alt="image from video 00:17:36.180" data-time="00:17:36.180"></a><span class="audio-time caption" data-speaker="Sacha" data-start="1047.529000" data-stop="1050.030000"><strong class="speaker-name">Sacha:</strong> Here I'm in live mode</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1050.751000" data-stop="1055.154000">so my public tasks don't get mixed in</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1055.194000" data-stop="1056.150000">with my private tasks.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1056.151000" data-stop="1056.874000">If I do an agenda,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1056.875000" data-stop="1057.835000">it should just be limited to</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1057.855000" data-stop="1058.476000">the public stuff.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1059.196000" data-stop="1060.657000">Anyway, so the remind me</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1060.953000" data-stop="1061.893000">created the note for me.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1062.093000" data-stop="1064.194000">It includes the audio</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1064.735000" data-stop="1067.091000">in case the speech recognition</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1067.092000" data-stop="1068.837000">didn't get anything right.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1069.217000" data-stop="1070.437000">And it includes a screenshot</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1070.537000" data-stop="1071.558000">so that in case I'm</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1071.598000" data-stop="1073.241000">doing this from a different application</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1073.242000" data-stop="1075.120000">because my keyboard shortcut is global,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1075.580000" data-stop="1076.280000">I can still see the</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1076.340000" data-stop="1077.761000">context and</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1077.801000" data-stop="1079.142000">find that sort of stuff.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1079.843000" data-stop="1080.764000">So yeah.</span> <p></p><div class="transcript-heading"><span class="audio-time" data-start="1081.000000">18:01</span> <strong>Building workflows out of little bits of time</strong></div><p></p><span class="audio-time caption" data-speaker="Linkarzu" data-start="1081.304000" data-stop="1082.185000"><strong class="speaker-name">Linkarzu:</strong>  Quite interesting.</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="1082.565000" data-stop="1084.467000">Quite advanced. Quite complex.</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="1084.847000" data-stop="1085.808000">It must have taken you</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="1086.068000" data-stop="1088.110000">months, years to set all</span> <span class="audio-time caption" data-speaker="Linkarzu" data-start="1088.130000" data-stop="1088.570000">of this up.</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="1089.371000" data-stop="1090.012000"><strong class="speaker-name">Sacha:</strong>  As I said, I can</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1090.052000" data-stop="1090.892000">only work in thirty</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1090.912000" data-stop="1091.813000">minutes or so. So this</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1091.933000" data-stop="1093.294000">one, I think was a</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1094.042000" data-stop="1095.263000">10, 15 minute hack.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1096.032000" data-stop="1099.515000">Okay. Little bits of time.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1099.896000" data-stop="1101.297000">This link here to whatever</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1101.317000" data-stop="1102.118000">I was looking at, you</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1102.138000" data-stop="1103.078000">got that free from Org</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1103.098000" data-stop="1105.120000">Mode. This thing here with</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1105.220000" data-stop="1105.921000">a recording,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1106.542000" data-stop="1108.103000">I got that because I</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1108.303000" data-stop="1109.384000">already wanted to save my</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1109.424000" data-stop="1110.565000">recordings anyway, so it was</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1110.605000" data-stop="1111.586000">just a matter of adding</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1111.626000" data-stop="1112.607000">a link to the file</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1112.647000" data-stop="1113.388000">name that I already had</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1113.448000" data-stop="1113.748000">saved.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1114.309000" data-stop="1116.170000">This screenshot, you know, another</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1116.210000" data-stop="1116.751000">five minutes,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1117.111000" data-stop="1118.432000">because I already had Spectacle</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1119.053000" data-stop="1120.494000">capturing the screenshot of both</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1120.534000" data-stop="1120.995000">screens.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1122.138000" data-stop="1123.441000">So it's fairly simple.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1124.102000" data-stop="1125.044000">It will even work for</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1125.084000" data-stop="1125.585000">things like,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1126.086000" data-stop="1127.088000">"remind me next month to</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1127.108000" data-stop="1128.151000">follow up with linkarzu to</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1128.191000" data-stop="1129.173000">see whether he's switched to</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1129.253000" data-stop="1129.573000">Emacs."</span> <p></p><a href="https://sachachua.com/blog/2026/10/clip-emacs-voice-control-describing-my-setup-during-linkarzu-s-livestream/Xk02luunlfc%20-%20Emacs%20Voice%20Control%20With%20Local%20AI%20on%20a%202018%20Laptop%20-%20Sacha%20Chua's%20Setup.vtt-00-18-50-296.jpg"><img loading="lazy" target="_blank" src="https://sachachua.com/blog/2026/10/clip-emacs-voice-control-describing-my-setup-during-linkarzu-s-livestream/Xk02luunlfc%20-%20Emacs%20Voice%20Control%20With%20Local%20AI%20on%20a%202018%20Laptop%20-%20Sacha%20Chua's%20Setup.vtt-00-18-50-296.jpg" alt="image from video 00:18:50.296" data-time="00:18:50.296"></a><span class="audio-time caption" data-speaker="Sacha" data-start="1129.588000" data-stop="1130.233000"><strong class="speaker-name">Sacha:</strong> So this one here, for</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1130.273000" data-stop="1131.575000">example, it says, remind me</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1131.975000" data-stop="1132.876000">next month, et cetera, et</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1132.916000" data-stop="1133.937000">cetera. And it has scheduled</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1133.977000" data-stop="1134.738000">it for next month.</span> <p></p><span class="audio-time caption" data-speaker="Linkarzu" data-start="1135.279000" data-stop="1136.060000"><strong class="speaker-name">Linkarzu:</strong>  That's pretty cool.</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="1137.649000" data-stop="1138.670000"><strong class="speaker-name">Sacha:</strong>  I'm not actually going to</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1138.710000" data-stop="1139.570000">pressure you to switch the</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1139.610000" data-stop="1140.971000">Emacs. You can keep using</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1140.991000" data-stop="1142.252000">Neovim and just borrow all</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1142.272000" data-stop="1143.193000">the interesting ideas.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1143.194000" data-stop="1145.154000">org.nvim is there,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1145.594000" data-stop="1146.715000">I can adapt it to</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1146.815000" data-stop="1147.715000">do this, you know?</span></div>
<p></p>


</details>

<p>
<a href="https://sachachua.com/blog/2026/10/clip-emacs-voice-control-describing-my-setup-during-linkarzu-s-livestream/Xk02luunlfc%20-%20Emacs%20Voice%20Control%20With%20Local%20AI%20on%20a%202018%20Laptop%20-%20Sacha%20Chua's%20Setup.vtt">Download the VTT</a>
</p>

</div>

<p>
He hasn't released a clip of this one yet, but this exchange was one of my favourite parts of the main conversation:
</p>

<blockquote>
<p>
[Linkarzu]: I don't know if like that's a particularity of Neovim users, we're all toxic and we just hate each other.
</p>

<p>
[Sacha]: Yeah, maybe you should just come over to the Emacs community. We have hot chocolate.
</p>

<p>
[Linkarzu]: If you go to the Emacs subreddit,
it's like rainbows and butterflies.
There's not a lot of hate.
I always wonder why does that happen?
It's not moderators, you know,
it's just people.
Is it just because it's old people?
Like the professor,
he doesn't want to fight any more.
He's old enough.
He retired already.
He's just ready to pass to the next life.
So what, what?
</p>

<p>
[Sacha]: Hypothesis number two,
maybe your editor makes you grumpy.
</p>
</blockquote>

<p>
That's at about 01:30:06 in this unlisted embed of the full conversation:
</p>

<p>
</p><div class="yt-video"><iframe width="456" height="315" title="YouTube video player" src="https://www.youtube-nocookie.com/embed/BlgtfOsXgCs?enablejsapi=1&start=5406" frameborder="0" allowfullscreen=""></iframe><a href="https://www.youtube.com/watch?v=BlgtfOsXgCs&t=5406">Watch on YouTube</a></div>
<p></p>
<div><a href="https://sachachua.com/blog/2026/10/clip-emacs-voice-control-describing-my-setup-during-linkarzu-s-livestream/index.org">View Org source for this post</a></div>
<p>You can <a href="mailto:sacha@sachachua.com?subject=Comment%20on%20https%3A%2F%2Fsachachua.com%2Fblog%2F2026%2F10%2Fclip-emacs-voice-control-describing-my-setup-during-linkarzu-s-livestream%2F&body=Name%20you%20want%20to%20be%20credited%20by%20(if%20any)%3A%20%0AMessage%3A%20%0ACan%20I%20share%20your%20comment%20so%20other%20people%20can%20learn%20from%20it%3F%20Yes%2FNo%0A">e-mail me at sacha@sachachua.com</a>.</p>]]></description>
		<dc:creator>Sacha Chua</dc:creator><enclosure length="21011" type="application/octet-stream" url="https://sachachua.com/blog/2026/10/clip-emacs-voice-control-describing-my-setup-during-linkarzu-s-livestream/emacsconf-subed.el"/></item><item>
		<title>EmacsConf: Using message-sent-hook to run buffer-specific code to keep track of e-mailed schedules</title>
		<link>https://sachachua.com/blog/2026/10/emacsconf-using-message-sent-hook-to-run-buffer-specific-code-to-keep-track-of-e-mailed-schedules/</link>
		
		<pubDate>Wed, 28 Oct 2026 14:13:35 GMT</pubDate>
    <category>emacs</category>
<category>org</category>
<category>emacsconf</category>
		<guid isPermaLink="false">https://sachachua.com/blog/2026/10/emacsconf-using-message-sent-hook-to-run-buffer-specific-code-to-keep-track-of-e-mailed-schedules/</guid>
		<description><![CDATA[<p>
I make lots of little <a href="https://emacsconf.org/2026/talks">EmacsConf schedule</a> updates based on the speakers' feedback.
I needed a way to keep track of the schedule that I've just sent the speaker so that I could calculate the differences and notify them again the next time I change the schedule for their talk.
I like the way that keeping track of this lets me include a summary of the change in the subject and in the body of the message. For example, one of the emails I sent today had the subject:
This blog post is about updating the <code>EMAILED_SCHEDULE</code> entry property in my Org Mode file that keeps track of this year's conference talks so that I can save the schedule that I've emailed. I want to set it only after I've successfully sent the email, because I might change my mind or forget to send the e-mail, and I want to make sure the entry property is based on what I've e-mailed.
</p>

<pre class="example" id="org1929970">
EmacsConf 2026: Schedule update as of 2026-10-28: svg: Sun ~2:20 PM EST (40 min earlier)
</pre>

<p>
I send the messages within Emacs, of course. This lets me use <a href="https://git.emacsconf.org/emacsconf-el/tree/emacsconf-mail.el">emacsconf-mail.el</a> to mail-merge using Emacs Lisp. I can then use <code>message-sent-hook</code> to run buffer-specific code once I've sent the message. This lets me set it up so that each message updates its own talk once I've used <code>C-c C-c</code> to send it.
</p>

<p>
First, I need a function that adds to a talk's logbook.
This is not specifically needed for the <code>message-sent-hook</code>, but it's useful for keeping track of the fact that I've sent this kind of email to that speaker on this date.
It's very helpful to be able to see who I've already sent the backstage information to or when was the last time I sent them a schedule update.
I can also filter the list of talks by the text in the logs so that if I partially send a mail merge and then cancel the rest because I want to tweak the code, I can send the new mail merge only to the remaining speakers.
This is in <a href="https://git.emacsconf.org/emacsconf-el/tree/emacsconf.el">emacsconf.el</a>.
</p>

<p>
</p><details><summary>emacsconf-add-to-talk-logbook: Add NOTE as a logbook entry for TALK.</summary><div class="org-src-container"><pre class="src src-emacs-lisp">(<span class="org-keyword">defun</span> <span class="org-function-name">emacsconf-add-to-talk-logbook</span> (talk note)
  <span class="org-doc">"Add NOTE as a logbook entry for TALK."</span>
  (<span class="org-keyword">interactive</span> (list (emacsconf-complete-talk) (read-string <span class="org-string">"Note: "</span>)))
  (<span class="org-keyword">save-window-excursion</span>
    (<span class="org-keyword">save-excursion</span>
      (<span class="org-keyword">emacsconf-with-talk-heading</span> talk
        (emacsconf-add-to-logbook
         (<span class="org-keyword">if</span> (functionp note)
             (funcall note)
           note))
        (bury-buffer (current-buffer))))))

</pre></div></details>
<p></p>

<p>
This function is the one that gets added to the message sent hook. It's in <a href="https://git.emacsconf.org/emacsconf-el/tree/emacsconf-mail.el">emacsconf-mail.el</a>:
</p>

<p>
</p><details><summary>emacsconf-mail-add-to-logbook: Add to logbook for all matching talks from this speaker.</summary><div class="org-src-container"><pre class="src src-emacs-lisp">(<span class="org-keyword">defun</span> <span class="org-function-name">emacsconf-mail-add-to-logbook</span> (email note)
  <span class="org-doc">"Add to logbook for all matching talks from this speaker."</span>
  (<span class="org-keyword">interactive</span>
   (<span class="org-keyword">let*</span> ((email (mail-strip-quoted-names
                  (plist-get (plist-get (notmuch-show-get-message-properties) <span class="org-builtin">:headers</span>)
                             <span class="org-builtin">:From</span>)))
          (talks (emacsconf-mail-talks email)))
     (list
      email
      (read-string (format <span class="org-string">"Note for %s: "</span>
                           (mapconcat (<span class="org-keyword">lambda</span> (o) (plist-get o <span class="org-builtin">:slug</span>))
                                      talks<span class="org-string">", "</span>))))))
  (<span class="org-keyword">condition-case</span> e
      (<span class="org-keyword">save-window-excursion</span>
        (mapc
         (<span class="org-keyword">lambda</span> (talk)
           (emacsconf-add-to-talk-logbook talk note))
         (emacsconf-mail-talks email)))
    (<span class="org-warning">error</span> (message <span class="org-string">"Error %s"</span> e))))

</pre></div></details>
<p></p>

<p>
And this function actually sets up the <code>message-sent-hook</code>:
</p>

<p>
</p><details><summary>emacsconf-mail-log-message-when-sent</summary><div class="org-src-container"><pre class="src src-emacs-lisp">(<span class="org-keyword">defun</span> <span class="org-function-name">emacsconf-mail-log-message-when-sent</span> (o message)
  (add-hook <span class="org-highlight-quoted-quote">'</span><span class="org-highlight-quoted-symbol">message-sent-hook</span>
            <span class="org-highlight-quoted-quote">`</span>(<span class="org-keyword">lambda</span> ()
               (<span class="org-keyword">save-window-excursion</span>
                 (emacsconf-add-to-talk-logbook
                  ,(plist-get o <span class="org-builtin">:slug</span>)
                  ,message))
               (<span class="org-keyword">when</span> (match-buffers <span class="org-string">"*unsent"</span>)
                 (switch-to-buffer (car (match-buffers <span class="org-string">"*unsent"</span>)))))
            nil t))

</pre></div></details>
<p></p>

<p>
Which gets called by this part of <code>emacsconf-mail-prepare</code>:
</p>


<div class="org-src-container">
<pre class="src src-emacs-lisp"><code>(<span class="org-keyword">when</span> (plist-get template <span class="org-builtin">:log-note</span>)
  (mapc (<span class="org-keyword">lambda</span> (talk)
          (emacsconf-mail-log-message-when-sent talk (plist-get template <span class="org-builtin">:log-note</span>)))
        (emacsconf-mail-talks email)))
</code></pre>
</div>


<p>
Then my <code>emacsconf-mail-interim-schedule-update</code> can specify the <code>:log-note</code> like this:
</p>


<div class="org-src-container">
<pre class="src src-emacs-lisp"><code>      <span class="org-builtin">:log-note</span>
      (<span class="org-keyword">lambda</span> ()
        (<span class="org-keyword">dolist</span> (talk (cdr group))
          (<span class="org-keyword">emacsconf-with-talk-heading</span> talk
            (emacsconf-schedule-save-emailed-time)))
        (concat <span class="org-string">"emacsconf-mail-interim-schedule-update"</span>
                (<span class="org-keyword">if</span> log-note (concat <span class="org-string">": "</span> log-note) <span class="org-string">""</span>) <span class="org-string">" - "</span> summary))
</code></pre>
</div>


<p>
This lets me run that code only when the mail gets sent.
</p>

<p>
Next automation idea: Someday I may even figure out how to attach an
iCalendar file (including updates to events) so that people can add it to their calendars.
</p>

<p>
If you find yourself wanting to run code when a message gets sent, then definitely take a look at <code>message-sent-hook</code>.
You can add a buffer-local hook with the fourth argument to add-hook (ex: <code>(add-hook 'message-sent-hook (lambda () ...) nil t)</code>) so that you can take actions specific to that message.
</p>

<p>
Have fun!
</p>
<div><a href="https://sachachua.com/blog/2026/10/emacsconf-using-message-sent-hook-to-run-buffer-specific-code-to-keep-track-of-e-mailed-schedules/index.org">View Org source for this post</a></div>
<p>You can <a href="mailto:sacha@sachachua.com?subject=Comment%20on%20https%3A%2F%2Fsachachua.com%2Fblog%2F2026%2F10%2Femacsconf-using-message-sent-hook-to-run-buffer-specific-code-to-keep-track-of-e-mailed-schedules%2F&body=Name%20you%20want%20to%20be%20credited%20by%20(if%20any)%3A%20%0AMessage%3A%20%0ACan%20I%20share%20your%20comment%20so%20other%20people%20can%20learn%20from%20it%3F%20Yes%2FNo%0A">e-mail me at sacha@sachachua.com</a>.</p>]]></description>
		<dc:creator>Sacha Chua</dc:creator><enclosure length="4164" type="application/octet-stream" url="https://sachachua.com/blog/2026/10/emacsconf-using-message-sent-hook-to-run-buffer-specific-code-to-keep-track-of-e-mailed-schedules/index.org"/></item><item>
		<title>2026-10-26 Emacs news</title>
		<link>https://sachachua.com/blog/2026/10/2026-10-26-emacs-news/</link>
		
		<pubDate>Mon, 26 Oct 2026 13:26:36 GMT</pubDate>
    <category>emacs</category>
<category>emacs-news</category>
		<guid isPermaLink="false">https://sachachua.com/blog/2026/10/2026-10-26-emacs-news/</guid>
		<description><![CDATA[<p>
The coolest thing I saw this week is <a href="https://handwritten.danieljanus.pl/2026-10-20-clerkenwell.html">Clerkenwell, a handwritten Clojure notebook</a> (<a href="https://github.com/nathell/clerkenwell">Github</a>).
</p>

<ul class="org-ul">
<li>Upcoming events (<a href="https://emacslife.com/calendar/emacs-calendar.ics">iCal file</a>, <a href="https://emacslife.com/calendar/">Org</a>):
<ul class="org-ul">
<li>Emacs Berlin: Emacs-Berlin Hybrid Meetup <a href="https://emacs-berlin.org/">https://emacs-berlin.org/</a> Wed Oct 28 1100 America/Vancouver - 1300 America/Chicago - 1400 America/Toronto - 1800 Etc/UTC - 1900 Europe/Berlin - 2330 Asia/Kolkata &ndash; Thu Oct 29 0200 Asia/Singapore</li>
<li>EmacsATX: Emacs Social <a href="https://www.meetup.com/emacsatx/events/316464081/">https://www.meetup.com/emacsatx/events/316464081/</a> Thu Nov 5 1600 America/Vancouver - 1800 America/Chicago - 1900 America/Toronto &ndash; Fri Nov 6 0000 Etc/UTC - 0100 Europe/Berlin - 0530 Asia/Kolkata - 0800 Asia/Singapore</li>
<li>M-x Research: TBA <a href="https://m-x-research.github.io/">https://m-x-research.github.io/</a> Fri Nov 6 0800 America/Vancouver - 1000 America/Chicago - 1100 America/Toronto - 1600 Etc/UTC - 1700 Europe/Berlin - 2130 Asia/Kolkata &ndash; Sat Nov 7 0000 Asia/Singapore</li>
<li><a href="https://www.youtube.com/watch?v=BlgtfOsXgCs">Why Sacha Chua Still Lives in Emacs After 20+ Years</a></li>
</ul></li>
<li>Emacs configuration:
<ul class="org-ul">
<li><a href="https://codeberg.org/jjba23/welkomscherm.el">welkomscherm v1.2.1: a small, calm, extensible dashboard for Emacs</a> (<a href="https://www.reddit.com/r/emacs/comments/1xdrqzb/welkomscherm_v121_a_small_calm_extensible/">Reddit</a>)</li>
</ul></li>
<li>Emacs Lisp:
<ul class="org-ul">
<li><a href="https://macadie.info/2026/10/21/i-updated-my-emacs-number-package/">Eric MacAdie: I Updated My Emacs Number Package</a></li>
<li><a href="https://github.com/benleis1/emacs-init/blob/main/docs/flymake.md">Flymake for Emacs Lisp</a> (<a href="https://mathstodon.xyz/@benleis/117504833640810631">@benleis@mathstodon.xyz</a>)</li>
<li><a href="https://www.youtube.com/watch?v=5qgXUH5pHOk">Better lisp editing with `tree-guide.el` (and other packages)</a> (28:53)</li>
</ul></li>
<li>Appearance:
<ul class="org-ul">
<li><a href="https://github.com/abidanBrito/region-cursors">region-cursors - Cursor overlays at both ends of the region</a> (<a href="https://www.reddit.com/r/emacs/comments/1xf9z53/regioncursors_cursor_overlays_at_both_ends_of_the/">Reddit</a>)</li>
<li><a href="https://gitlab.com/vegasharmon/flick">Flick: a quick and simple font picker</a> (<a href="https://www.reddit.com/r/emacs/comments/1xb242b/flick_a_quick_and_simple_font_picker/">Reddit</a>)</li>
<li><a href="https://protesilaos.com/codelog/2026-10-25-emacs-doric-themes-1-4-0/">Protesilaos: Emacs: doric-themes version 1.4.0</a></li>
</ul></li>
<li>Navigation:
<ul class="org-ul">
<li><a href="https://youtu.be/7okzjW_fZGg">Some recent changes I've made to tab-config my tabbing package for emacs built on top of tab-line</a> (<a href="https://mathstodon.xyz/@benleis/117481104430095288">@benleis@mathstodon.xyz</a>)</li>
<li><a href="https://jointhefreeworld.org/blog/articles/emacs/emacs-folding-kirigami/">Emacs finally folds to my liking - jointhefreeworld</a></li>
<li><a href="https://ripscope.com/docs/editors/emacs">Emacs - Ripscope</a> - search C symbol definitions</li>
</ul></li>
<li>Writing:
<ul class="org-ul">
<li><a href="https://lvajxi03.github.io/posts/2026-10-21/">Letters to Auntie: spell-checking in Emacs</a> (<a href="https://mastodon.social/@marcin_bielewicz/117479797618270995">@marcin_bielewicz</a>)</li>
<li><a href="https://www.youtube.com/watch?v=pS3MI9DRD44">Emacs for obsessive word lovers</a> (10:40)</li>
<li><a href="https://blog.davep.org/2026/10/22/blogmore-el-v5-4-0.html">Dave Pearson: blogmore.el v5.4.0</a></li>
<li><a href="https://sachachua.com/blog/2026/10/dictating-blog-posts-into-emacs/">Sacha Chua: Dictating blog posts into Emacs</a> (<a href="https://irreal.org/blog/?p=14169">Irreal</a>)</li>
</ul></li>
<li>Org Mode:
<ul class="org-ul">
<li><a href="https://modeorg.org/">modeorg.org: a human guide to Org Mode</a> (<a href="https://murad.social/@pablo/statuses/01M5EX6XX7Y488PY26PMA212FY">@pablo@murad.social</a>)</li>
<li><a href="https://martinschell.eu/blog/create_subtree_org_capture_dynamic/">Martin Schell: Using Org-Capture Templates with Elisp Evaluation to Set Values Depending on User Input</a> (<a href="https://irreal.org/blog/?p=14176">Irreal</a>)</li>
<li><a href="https://gist.github.com/olekenneth/1f49995c53f5e1ae4ad9e774afff7ab7">How to export your org-mode and org-agenda to Apple Reminders · GitHub</a></li>
<li><a href="https://peterprevos.com/praxis/publishing-websites-with-org-mode-01-principles/">Building a website with Org mode</a> (<a href="https://www.reddit.com/r/orgmode/comments/1xfr53s/building_a_website_with_org_mode/">Reddit</a>)</li>
<li><a href="https://idlip.in/log/denden/">Denden: Emacs Lisp SSG based on org-publish | Dilip's Log</a> (<a href="https://social.lol/@swrogers/117507706326339354">@swrogers@social.lol</a>)</li>
<li><a href="https://taingram.org/blog/org-publish-rss-caching.html">Adding Caching to org-publish-rss.el</a> (<a href="https://mastodon.social/@tiang/117499026239014230">@tiang</a>)</li>
<li><a href="https://github.com/senkireign/org-constellation">org-constellation</a> (<a href="https://www.reddit.com/r/emacs/comments/1xaktsn/orgconstellation/">Reddit</a>)</li>
</ul></li>
<li>Completion:
<ul class="org-ul">
<li><a href="https://github.com/redguardtoo/cmd-rewind">cmd-rewind: resume last completing-read with saved input</a> (<a href="https://www.reddit.com/r/emacs/comments/1xdehqe/rewind_is_published/">Reddit</a>)</li>
</ul></li>
<li>Coding:
<ul class="org-ul">
<li><a href="https://arunmozhi.in/2026/07/10/using-typescript-v7-with-emacs-eglot/">Using Typescript V7 With Emacs Eglot</a> (<a href="https://social.lol/@swrogers/117479961048981979">@swrogers@social.lol</a>)</li>
<li><a href="https://www.jamescherti.com/emacs-eglot-apply-code-actions-fixes-on-save/">Auto apply Emacs Eglot safe Code Actions (fixes) on Save</a></li>
<li><a href="https://www.youtube.com/watch?v=PEr-_MyBJ0Y">Video 3 - Configuring Emacs, Arrays, Slices, Vectors, and the Borrow Checker</a> (15:47)</li>
<li><a href="https://www.reddit.com/r/emacs/comments/1xas6a6/back_to_emacs_with_the_scss_workflow_i_always/">Back to Emacs with the SCSS workflow I always wanted</a></li>
<li><a href="https://youtu.be/42dvpr2BRqA?t=608">Writing an mTLS server in Go using Emacs</a> (<a href="https://www.reddit.com/r/emacs/comments/1xdo91q/writing_an_mtls_server_in_go_using_emacs/">Reddit</a>)</li>
<li><a href="https://handwritten.danieljanus.pl/2026-10-20-clerkenwell.html">Clerkenwell: a handwritten Clojure notebook</a> (<a href="https://github.com/nathell/clerkenwell">Github</a>)</li>
</ul></li>
<li>Shells:
<ul class="org-ul">
<li><a href="https://www.youtube.com/watch?v=jB17WtV9JCk">Ghostel integration in Emacs</a> (10:27)</li>
</ul></li>
<li>Mail, news, and chat:
<ul class="org-ul">
<li><a href="https://gitlab.com/emacs-vm/vm">VM 9.0.0, a mail reader for Emacs</a> (<a href="https://www.reddit.com/r/emacs/comments/1xaia4t/vm_900_a_mail_reader_for_emacs/">Reddit</a>)</li>
<li><a href="https://irreal.org/blog/?p=14163">Irreal: A Small Improvement</a> - deleting cookies after using elfeed-webkit</li>
</ul></li>
<li>Evil mode:
<ul class="org-ul">
<li><a href="https://github.com/redguardtoo/evil-matchit">evil-matchit 5.0.0 is published</a> (<a href="https://www.reddit.com/r/emacs/comments/1x9uscf/evilmatchit_500_is_published/">Reddit</a>) jumping between paired structures</li>
</ul></li>
<li>Multimedia:
<ul class="org-ul">
<li><a href="https://sachachua.com/blog/2026/10/subed-el-and-quoting-snippets-of-youtube-videos-from-the-auto-captions/">Sacha Chua: subed.el and quoting snippets of YouTube videos from the auto captions</a></li>
<li><a href="https://www.youtube.com/watch?v=HrvyY1x3lg4">Yay Emacs 44: More conversational voice interfaces</a> (01:11:04)</li>
</ul></li>
<li>LLMs:
<ul class="org-ul">
<li><a href="https://github.com/nmagko/gptel-web">nmagko/gptel-web: Web search tools for Emacs gptel · GitHub</a></li>
</ul></li>
<li>Community:
<ul class="org-ul">
<li><a href="https://www.reddit.com/r/emacs/comments/1xagzfp/fortnightly_tips_tricks_and_questions_20261020/">Fortnightly Tips, Tricks, and Questions — 2026-10-20 / week 42</a></li>
<li><a href="https://lists.gnu.org/archive/html/guix-devel/2026-10/msg00121.html">40c3 - organizing a Lisp assembly for self-organized workshops</a> (<a href="https://chaos.social/@nmeum/117473767401979292">@nmeum@chaos.social</a>)</li>
<li><a href="https://softwarepreservation.computerhistory.org/emacs/">Emacs Historical Archive</a> (<a href="https://sfba.social/@kickingvegas/117485881894213904">@kickingvegas@sfba.social</a>)</li>
<li><a href="https://macadie.info/2026/10/25/emacs-carnival-are-keyboards-and-m-x-here-to-stay/">Eric MacAdie: Emacs Carnival: Are keyboards and M-x here to stay?</a></li>
<li><a href="https://www.youtube.com/watch?v=CUYWAyCgzos">Can your Vim do that?  <b>starts beatboxing</b></a> (00:53) having fun with multiple cursors.</li>
<li><a href="https://sachachua.com/blog/2026/10/upcoming-chat-with-linkarzu-about-using-emacs-for-25-years/">Sacha Chua: Upcoming chat with linkarzu about using Emacs for 25 years</a></li>
<li><a href="https://www.youtube.com/watch?v=Qlxxe07CtC8">Github PR box * tech chats * conference outfits * Emacs Conf prep</a> (05:35:41)</li>
<li>Linkarzu clips:
<ul class="org-ul">
<li><a href="https://www.youtube.com/watch?v=dQ6X0-XCLIw">Emacs vs Neovim - Why Prot Won't Pick a Side</a> (01:30:34)</li>
<li><a href="https://www.youtube.com/watch?v=X23tIQSX6u8">Emacs vs Neovim - Why He Switched for Good</a> (12:27)</li>
<li><a href="https://www.youtube.com/watch?v=eqyAS5y_4Co">vim user admits emacs is better</a> (14:08)</li>
<li><a href="https://youtu.be/dQ6X0-XCLIw">Emacs vs Neovim - Why Prot Won't Pick a Side</a> (<a href="https://www.reddit.com/r/emacs/comments/1xfv0vp/emacs_vs_neovim_why_prot_wont_pick_a_side/">Reddit</a>)</li>
</ul></li>
<li><a href="https://sachachua.com/blog/2026/10/analyzing-emacs-news/">Sacha Chua: Analyzing Emacs News: 564 posts over 11 years, &gt; 34k items, ~60/post</a> (<a href="https://irreal.org/blog/?p=14178">Irreal</a>)</li>
</ul></li>
<li>Other:
<ul class="org-ul">
<li><a href="https://ray-on-emacs.blogspot.com/2026/10/a-point-based-tooltip-for-emacs.html">Raymond Zeitler: A Point-Based Tooltip for Emacs</a></li>
<li><a href="https://www.youtube.com/watch?v=Nfiu6cXLsb8">Chai v2.1.0: Read Books in Emacs, Highlight, Search &amp; Ask with Sources</a> (01:36)</li>
<li><a href="https://www.youtube.com/watch?v=61-uNV9N154">exc.el — Runs Excel in Emacs</a> (18:48, <a href="https://github.com/mhoye/moderntools">Github</a>)</li>
<li><a href="https://techhub.social/@lispwizard/117478600944786880">Comparing file with autosaved file (@lispwizard@techhub.social)</a></li>
<li><a href="https://github.com/kickingvegas/anju/discussions/193">anju 1.9: mouse menus for storing frameset, setting macro counter, fill functions</a> (<a href="https://sfba.social/@kickingvegas/117485654190161814">@kickingvegas@sfba.social</a>)</li>
<li><a href="https://github.com/twitchy-ears/buffer-snapshotter">buffer-snapshotter: keeps snapshots of changed versions buffers (visiting files or not) written to disk</a> (<a href="https://loci.onl/@morix/117503888090868115">@morix@loci.onl</a>)</li>
<li><a href="https://pretalx.seagl.org/2026/talk/ANUBN3/">Learning an Ancient Language with an Ancient Text Editor - SeaGL 2026 - pretalx</a></li>
<li><a href="https://jaded.xwx.moe/lib/emacs-backups-undo.html">Profound anguish and Emacs persistent undos — (^ω^)</a> (<a href="https://jam.xwx.moe/objects/316c544a-01d0-4375-a66b-dd5acb05393e">@jadedctrl@jam.xwx.moe</a>)</li>
<li><a href="https://ice.ch3.st/notes/asm610jjcwh00h50">returning nonzero exit code from emacsclient (@amy@ice.ch3.st)</a></li>
<li><a href="https://www.youtube.com/watch?v=T6_PQSeK38E">Emacs and rust on an ASUS Eee PC 1000HA</a> (03:51)</li>
</ul></li>
<li>Emacs development:
<ul class="org-ul">
<li><a href="https://lists.gnu.org/archive/html/emacs-devel/2026-10/msg00426.html">ekp-fill - line-breaking algorithm; some parts were LLM-generated, so the author is rewriting</a></li>
</ul></li>
<li>New packages:
<ul class="org-ul">
<li><a target="_blank" href="https://melpa.org/#/ctftime">ctftime</a>: CTFtime dashboard (MELPA)</li>
<li><a target="_blank" href="https://melpa.org/#/difflayer">difflayer</a>: Overlay diffs on selected regions (MELPA)</li>
<li><a target="_blank" href="https://melpa.org/#/elark">elark</a>: Emacs interface to Lark/Feishu via lark-cli (MELPA)</li>
<li><a target="_blank" href="https://melpa.org/#/fz-index">fz-index</a>: Sublime-style fuzzy file open with a native index (MELPA)</li>
<li><a target="_blank" href="https://elpa.gnu.org/packages/isbn.html">isbn</a>: ISBN library (GNU ELPA)</li>
<li><a target="_blank" href="https://melpa.org/#/modern-tab">modern-tab</a>: The common part of the two tab modes (MELPA)</li>
<li><a target="_blank" href="https://melpa.org/#/region-cursors">region-cursors</a>: Display point and active mark using overlays (MELPA)</li>
<li><a target="_blank" href="https://melpa.org/#/straight-overview">straight-overview</a>: Selective upgrade UI for straight.el packages (MELPA)</li>
<li><a target="_blank" href="https://melpa.org/#/typst-overlay">typst-overlay</a>: Overlay Typst equations (MELPA)</li>
<li><a target="_blank" href="https://elpa.gnu.org/packages/xc.html">xc</a>: Emacs interface for xc (GNU ELPA)</li>
</ul></li>
</ul>

<p>
Links from <a href="https://www.reddit.com/r/emacs">reddit.com/r/emacs</a>, <a href="https://www.reddit.com/r/orgmode">r/orgmode</a>, <a href="https://www.reddit.com/r/spacemacs">r/spacemacs</a>, <a href="https://mastodon.social/tags/emacs">Mastodon #emacs</a>, <a href="https://bsky.app/hashtag/emacs">Bluesky #emacs</a>, <a href="https://hn.algolia.com/?query=emacs&amp;sort=byDate&amp;prefix&amp;page=0&amp;dateRange=all&amp;type=story">Hacker News</a>, <a href="https://lobste.rs/search?q=emacs&amp;what=stories&amp;order=newest">lobste.rs</a>, <a href="https://programming.dev/c/emacs?dataType=Post&amp;page=1&amp;sort=New">programming.dev</a>, <a href="https://lemmy.world/c/emacs">lemmy.world</a>, <a href="https://lemmy.ml/c/emacs?dataType=Post&amp;page=1&amp;sort=New">lemmy.ml</a>, <a href="https://planet.emacslife.com">planet.emacslife.com</a>, <a href="https://www.youtube.com/playlist?list=PL4th0AZixyREOtvxDpdxC9oMuX7Ar7Sdt">YouTube</a>, <a href="http://git.savannah.gnu.org/cgit/emacs.git/log/etc/NEWS">the Emacs NEWS file</a>, <a href="https://emacslife.com/calendar/">Emacs Calendar</a>, and <a href="https://lists.gnu.org/archive/html/emacs-devel/2026-10">emacs-devel</a>. Thanks to Andrés Ramírez for emacs-devel links. Do you have an Emacs-related link or announcement? Please e-mail me at <a href="mailto:sacha@sachachua.com">sacha@sachachua.com</a>. Thank you!
</p>
<p>
*</p>
<div><a href="https://sachachua.com/blog/2026/10/2026-10-26-emacs-news/index.org">View Org source for this post</a></div>
<p>You can <a href="mailto:sacha@sachachua.com?subject=Comment%20on%20https%3A%2F%2Fsachachua.com%2Fblog%2F2026%2F10%2F2026-10-26-emacs-news%2F&body=Name%20you%20want%20to%20be%20credited%20by%20(if%20any)%3A%20%0AMessage%3A%20%0ACan%20I%20share%20your%20comment%20so%20other%20people%20can%20learn%20from%20it%3F%20Yes%2FNo%0A">e-mail me at sacha@sachachua.com</a>.</p>]]></description>
		<dc:creator>Sacha Chua</dc:creator><enclosure length="235261" type="application/octet-stream" url="https://emacslife.com/calendar/emacs-calendar.ics"/></item><item>
		<title>subed.el and quoting snippets of YouTube videos from the auto captions</title>
		<link>https://sachachua.com/blog/2026/10/subed-el-and-quoting-snippets-of-youtube-videos-from-the-auto-captions/</link>
		
		<pubDate>Mon, 26 Oct 2026 02:11:17 GMT</pubDate>
    <category>emacs</category>
<category>audio</category>
<category>subed</category>
		<guid isPermaLink="false">https://sachachua.com/blog/2026/10/subed-el-and-quoting-snippets-of-youtube-videos-from-the-auto-captions/</guid>
		<description><![CDATA[<p>
I'm preparing for a conversation with <a href="https://linkarzu.com/">linkarzu</a>.
It would be fun to quote snippets from some of the other videos he has.
I like the way he does a lot of reaction videos that build on what people have shared.
He tends to listen to things at 1.25 or 1.5x speed.
I'm not sure if I have the patience even for that,
so it'd be nice to be able to just quickly skim the text.
He also clips a lot of his own videos.
It might be interesting to play around with my workflows for listening to snippets and clipping them.
</p>

<p>
I've grabbed YouTube captions and reformatted them before:
</p>
<ul class="org-ul">
<li><a href="https://sachachua.com/blog/2021/04/grabbing-the-youtube-auto-generated-captions-is-pretty-useful-when-making-emacs-news/">Grabbing the Youtube auto-generated captions is pretty useful when making Emacs News</a> (2021)</li>
<li><a href="https://sachachua.com/blog/2021/04/org-mode-insert-youtube-video-with-separate-captions/">Org Mode: Insert YouTube video with separate captions</a> (2021)</li>
</ul>

<p>
This time around, I want to get the VTT format so that I can possibly use them with <a href="https://github.com/sachac/subed-record">subed-record</a> to clip audio or video.
</p>

<p>
From a YouTube link, I want to run a single command that gets me a VTT file with that as the media source and with the captions.
If there are any chapters in the description, it would be lovely to get them too. I can get them from the JSON, yay!
</p>

<p>
Now I can use <code>M-x sacha-subed-youtube</code> to open the VTT file, which is cached locally, and I can use <code>M-x sacha-subed-youtube-region-as-quote</code> after selecting a section. Well, actually, I have an Embark command <code>s</code> (for "subed") that I can run on a YouTube video link and a selected-mode shortcut for <code>y</code> that I can run when the region is selected. Results:
</p>

<p>
<a href="https://youtu.be/-1qS7Xiuh9E?t=586&end=619">I Asked Prot If I Should Switch to Emacs</a>
</p>
<blockquote>
<p>
<span class="media-time" data-start="586.000">00:09:46</span>: I think the value of Org is that it is in the context of Emacs, which can now do other things. It can be your email client. It can be your agenda. Of course, it can be your programming environment. All these sorts of things, like your RSS feed reader and so on. And in the context of all that, you also have Org. So for me, that's kind of the value. But otherwise, having Org elsewhere, it's great still, because the paradigm of Org, I think, is a portable paradigm.
</p>
</blockquote>

<p>
<a href="https://youtu.be/N95_UgZXPms?t=0&end=7">Org Mode in Neovim Is Finally Here - Full org.nvim Demo</a>
</p>
<blockquote>
<p>
<span class="media-time" data-start="0.000">00:00:00</span>: I think that I achieved like 100% of parity with the original Org Mode version on Emacs.
</p>
</blockquote>

<details><summary>Code for subed + YouTube</summary>
<div class="org-src-container">
<pre class="src src-emacs-lisp"><code>(<span class="org-keyword">defvar</span> <span class="org-variable-name">sacha-subed-youtube-dir</span> <span class="org-string">"~/proj/youtube-captions"</span>
  <span class="org-doc">"Directory with YouTube captions."</span>)
(<span class="org-keyword">defvar</span> <span class="org-variable-name">sacha-subed-youtube-temp-dir</span> <span class="org-string">"~/Downloads"</span> <span class="org-doc">"Snap installations need a workaround for permission."</span>)
<span class="org-comment-delimiter">;;;</span><span class="org-comment">###</span><span class="org-comment"><span class="org-warning">autoload</span></span>
(<span class="org-keyword">defun</span> <span class="org-function-name">sacha-subed-youtube</span> (url)
  <span class="org-doc">"Download the automatic subtitles or check my cache."</span>
  (<span class="org-keyword">interactive</span> <span class="org-string">"MURL: "</span>)
  (<span class="org-keyword">let*</span> ((id (sacha-org-yt-id url))
         (existing (car (directory-files sacha-subed-youtube-dir t
                                         (concat <span class="org-string">"^"</span> (regexp-quote id) <span class="org-string">".*\\.vtt\\'"</span>)))))
    (<span class="org-keyword">if</span> existing
        (<span class="org-keyword">progn</span>
          (find-file existing)
          (subed-mpv-play-from-url url))
      <span class="org-comment-delimiter">;; </span><span class="org-comment">Download</span>
      (<span class="org-keyword">let</span> ((directory (make-temp-file (expand-file-name <span class="org-string">"yt-dlp"</span> sacha-subed-youtube-temp-dir) t))
            filename
            json
            match
            chapters
            subtitles)
        (<span class="org-keyword">with-current-buffer</span> (get-buffer-create <span class="org-string">"*yt-dlp*"</span>)
          (<span class="org-keyword">let</span> ((default-directory directory))
            (call-process
             <span class="org-string">"yt-dlp"</span> nil t nil
             <span class="org-string">"&#45;&#45;skip-download"</span>
             <span class="org-string">"&#45;&#45;write-info-json"</span>
             <span class="org-string">"&#45;&#45;sub-format"</span>
             <span class="org-string">"vtt"</span>
             <span class="org-string">"&#45;&#45;write-subs"</span>
             <span class="org-string">"&#45;&#45;write-auto-subs"</span>
             url)))
        (<span class="org-keyword">when</span> (null (directory-files directory t <span class="org-string">"\\.json$"</span>))
          (<span class="org-warning">error</span> <span class="org-string">"Could not get data."</span>))
        (<span class="org-keyword">setq</span> json (json-read-file (car (directory-files directory t <span class="org-string">"\\.json$"</span>))))
        (<span class="org-keyword">setq</span> chapters (alist-get <span class="org-highlight-quoted-quote">'</span><span class="org-highlight-quoted-symbol">chapters</span> json))
        (<span class="org-keyword">setq</span> filename (expand-file-name
                        (concat id <span class="org-string">" - "</span> (alist-get <span class="org-highlight-quoted-quote">'</span><span class="org-highlight-quoted-symbol">title</span> json) <span class="org-string">".vtt"</span>)
                        sacha-subed-youtube-dir))
        (<span class="org-keyword">setq</span> subtitles (subed-parse-file (car (directory-files
                                                directory t
                                                <span class="org-string">"\\.vtt$"</span>))))
        (delete-directory directory t)
        <span class="org-comment-delimiter">;; </span><span class="org-comment">add the chapters as comments</span>
        (mapc
         (<span class="org-keyword">lambda</span> (sub)
           (<span class="org-keyword">when</span> (<span class="org-keyword">and</span> chapters
                      (&gt;= (elt sub 1)
                          (* (alist-get <span class="org-highlight-quoted-quote">'</span><span class="org-highlight-quoted-symbol">start_time</span> (car chapters)) 1000)))
             (<span class="org-keyword">setf</span> (elt sub 4) (alist-get <span class="org-highlight-quoted-quote">'</span><span class="org-highlight-quoted-symbol">title</span> (<span class="org-keyword">pop</span> chapters)))))
         subtitles)
        (subed-create-file
         filename
         subtitles
         t)
        (find-file filename)
        (subed-mpv-play-from-url url)))))

(<span class="org-keyword">defun</span> <span class="org-function-name">sacha-subed-youtube-id</span> ()
  <span class="org-doc">"Return the YouTube ID."</span>
  (<span class="org-keyword">or</span> (<span class="org-keyword">save-restriction</span>
        (<span class="org-keyword">save-excursion</span>
          (goto-char (point-min))
          (subed-forward-subtitle-text)
          (<span class="org-keyword">when</span> (subed-record-get-directive <span class="org-string">"YOUTUBE_URL"</span>)
            (sacha-org-yt-id
             (subed-record-get-directive <span class="org-string">"YOUTUBE_URL"</span>)))))
      (car (split-string (file-name-base (buffer-file-name)) <span class="org-string">" "</span>))))

<span class="org-comment-delimiter">;; </span><span class="org-comment">Now we just need a quick way to copy a YouTube URL.</span>
<span class="org-comment-delimiter">;;;</span><span class="org-comment">###</span><span class="org-comment"><span class="org-warning">autoload</span></span>
(<span class="org-keyword">defun</span> <span class="org-function-name">sacha-subed-youtube-url</span> (<span class="org-type">&amp;optional</span> start-msecs end-msecs)
  <span class="org-doc">"Copy YouTube URL for the current timestamp."</span>
  (<span class="org-keyword">interactive</span>)
  (<span class="org-keyword">when-let*</span>
      ((id (sacha-subed-youtube-id))
       (s
        (<span class="org-keyword">if</span> end-msecs
            (format <span class="org-string">"https://youtu.be/%s?t=%d&amp;end=%d"</span>
                    id
                    (/ (<span class="org-keyword">or</span> start-msecs (subed-subtitle-msecs-start))
                       1000)
                    (1+ (/ end-msecs
                           1000)))
          (format <span class="org-string">"https://youtu.be/%s?t=%d"</span>
                    id
                    (/ (<span class="org-keyword">or</span> start-msecs (subed-subtitle-msecs-start))
                       1000)))))
    (<span class="org-keyword">when</span> (called-interactively-p <span class="org-highlight-quoted-quote">'</span><span class="org-highlight-quoted-symbol">any</span>)
      (kill-new s)
      (message <span class="org-string">"%s"</span> s))
    s))

<span class="org-comment-delimiter">;;;</span><span class="org-comment">###</span><span class="org-comment"><span class="org-warning">autoload</span></span>
(<span class="org-keyword">defun</span> <span class="org-function-name">sacha-subed-youtube-play</span> ()
  <span class="org-doc">"Play this video from YouTube."</span>
  (<span class="org-keyword">interactive</span>)
  (<span class="org-keyword">when-let*</span>
      ((id (sacha-subed-youtube-id))
       (s (concat <span class="org-string">"https://youtu.be/"</span> id)))
    (<span class="org-keyword">when</span> (string= subed-mpv-media-file s)
      (subed-mpv-play-from-url s))
    (subed-mpv-jump-to-current-subtitle)
    (subed-mpv-unpause)))

<span class="org-comment-delimiter">;;;</span><span class="org-comment">###</span><span class="org-comment"><span class="org-warning">autoload</span></span>
(<span class="org-keyword">defun</span> <span class="org-function-name">sacha-subed-youtube-region-as-quote</span> (beg end <span class="org-type">&amp;optional</span> label)
  <span class="org-doc">"Format this as a quote."</span>
  (<span class="org-keyword">interactive</span> (list (region-beginning) (region-end) (<span class="org-keyword">when</span> current-prefix-arg (read-string <span class="org-string">"Label: "</span>))))
  (<span class="org-keyword">let*</span> ((id (sacha-subed-youtube-id))
         (url (sacha-subed-youtube-url
               (<span class="org-keyword">save-excursion</span>
                 (goto-char beg)
                 (subed-subtitle-msecs-start))
               (<span class="org-keyword">save-excursion</span>
                 (goto-char end)
                 (subed-subtitle-msecs-stop))))
         (base (file-name-base (buffer-file-name)))
         (text (subed-subtitle-list-text (subed-subtitle-list beg end)))
         (s (format
             <span class="org-string">"%s\n#+begin_quote\n%s: %s\n#+end_quote\n"</span>
             (org-link-make-string
              (concat <span class="org-string">"yt:"</span> url)
              (<span class="org-keyword">or</span> label
                  (<span class="org-keyword">and</span> (string-match (format <span class="org-string">"^%s - </span><span class="org-string"><span class="org-regexp-grouping-backslash">\\</span></span><span class="org-string"><span class="org-regexp-grouping-construct">(</span></span><span class="org-string">.+</span><span class="org-string"><span class="org-regexp-grouping-backslash">\\</span></span><span class="org-string"><span class="org-regexp-grouping-construct">)</span></span><span class="org-string">"</span> (regexp-quote id)) base)
                       (match-string 1 base))
                  (sacha-page-title url)))
             (org-link-make-string
              (concat <span class="org-string">"vtime:"</span>
                      (subed-msecs-to-timestamp
                       (<span class="org-keyword">save-excursion</span>
                         (goto-char beg)
                         (subed-subtitle-msecs-start))
                       t)))
             (<span class="org-keyword">with-temp-buffer</span>
               (insert text)
               (<span class="org-keyword">let</span> ((fill-column most-positive-fixnum))
                 (fill-region (point-min) (point-max))
                 (string-trim (buffer-string)))))))
      (<span class="org-keyword">when</span> (called-interactively-p <span class="org-highlight-quoted-quote">'</span><span class="org-highlight-quoted-symbol">any</span>)
        (kill-new s)
        (message <span class="org-string">"%s"</span> s))
      s))
</code></pre>
</div>

</details>

<p>
Some of this code hasn't been committed to <a href="https://github.com/sachac/subed">subed</a> yet, but I will commit it sometime this week.
</p>

<p>
My next steps might be to:
</p>

<ul class="org-ul">
<li>cache the video as a whole to make it easier to check the waveforms</li>
<li>extract the segment to a standalone video file so that it's easy for me to play back or include in another video</li>
<li>see if I can use my voice activity detection and semi-streaming speech recognition to get a VTT of my current OBS recording</li>
</ul>

<div class="note">This is part of my <a href="https://sachachua.com/dotemacs#subed">EmacsConfiguration.</a></div><div><a href="https://sachachua.com/blog/2026/10/subed-el-and-quoting-snippets-of-youtube-videos-from-the-auto-captions/index.org">View Org source for this post</a></div>
<p>You can <a href="mailto:sacha@sachachua.com?subject=Comment%20on%20https%3A%2F%2Fsachachua.com%2Fblog%2F2026%2F10%2Fsubed-el-and-quoting-snippets-of-youtube-videos-from-the-auto-captions%2F&body=Name%20you%20want%20to%20be%20credited%20by%20(if%20any)%3A%20%0AMessage%3A%20%0ACan%20I%20share%20your%20comment%20so%20other%20people%20can%20learn%20from%20it%3F%20Yes%2FNo%0A">e-mail me at sacha@sachachua.com</a>.</p>]]></description>
		<dc:creator>Sacha Chua</dc:creator><enclosure length="8788" type="application/octet-stream" url="https://sachachua.com/blog/2026/10/subed-el-and-quoting-snippets-of-youtube-videos-from-the-auto-captions/index.org"/></item><item>
		<title>Analyzing Emacs News: 564 posts over 11 years, &gt; 34k items, ~60/post</title>
		<link>https://sachachua.com/blog/2026/10/analyzing-emacs-news/</link>
		
		<pubDate>Sun, 25 Oct 2026 13:15:33 GMT</pubDate>
    <category>emacs</category>
<category>community</category>
		<guid isPermaLink="false">https://sachachua.com/blog/2026/10/analyzing-emacs-news/</guid>
		<description><![CDATA[<p>
<a href="https://sachachua.com/blog/2026/10/upcoming-chat-with-linkarzu-about-using-emacs-for-25-years/">While summarizing my history with Emacs</a>, I was curious about just how many <a href="https://sachachua.com/blog/category/emacs-news">Emacs News</a> posts I've written and how many links I've highlighted. 564 posts, &gt; 34000 items, an average of 60 items per posts.
</p>

<p>
Analysis: It turned out that my <a href="https://github.com/sachac/emacs-news">emacs-news/index.org</a> only went back to about 2016,
missing a few months of 2015.
To fill in the data, I needed to convert the old HTML files into Org format.
</p>


<div class="org-src-container">
<pre class="src src-:eval"><code>find -name \*news\*.html -exec zsh -c 'pandoc -f html -t org {} &#45;&#45;wrap=none -o $(basename {} .html).org' \;
</code></pre>
</div>


<p>
Then I inserted the old entries into my file.
<code>insert-file-contents</code> doesn't seem to move the point, but if I narrow to my Posts subtree (<code>org-narrow-to-subtree</code>), then I can go to the end of the narrowed part.
</p>


<div class="org-src-container">
<pre class="src src-emacs-lisp"><code>(<span class="org-keyword">defun</span> <span class="org-function-name">sacha-emacs-news-insert-old-ones</span> ()
  (<span class="org-keyword">interactive</span>)
  (<span class="org-keyword">let</span> ((dir <span class="org-string">"~/proj/static-blog/blog/2015/"</span>))
    (<span class="org-keyword">dolist</span> (f
             (sort
              (directory-files-recursively dir <span class="org-string">"news.*org$"</span>)
              <span class="org-builtin">:key</span> <span class="org-highlight-quoted-quote">#'</span><span class="org-highlight-quoted-symbol">file-name-base</span>
              <span class="org-builtin">:reverse</span> t))
      (insert <span class="org-string">"** "</span> (substring (file-name-base f) 0 10) <span class="org-string">" Emacs News\n\n"</span>)
      (insert-file-contents f)
      (goto-char (point-max)))))
</code></pre>
</div>


<p>
With all the entries in place, let's look at the list items that start with a link.
</p>

<details><summary>code for analysis</summary>
<div class="org-src-container">
<pre class="src src-emacs-lisp"><code><span class="org-comment-delimiter">;;;</span><span class="org-comment">###</span><span class="org-comment"><span class="org-warning">autoload</span></span>
(<span class="org-keyword">defun</span> <span class="org-function-name">sacha-emacs-news-count-links</span> ()
  <span class="org-doc">"Return the number of main links in this subtree."</span>
  (<span class="org-keyword">interactive</span>)
  (<span class="org-keyword">let</span> ((count 0))
    (<span class="org-keyword">save-excursion</span>
      (org-back-to-heading)
      (<span class="org-keyword">while</span> (re-search-forward <span class="org-string">"^ *- \\[\\["</span> (<span class="org-keyword">save-excursion</span> (org-end-of-subtree)) t)
        (<span class="org-keyword">incf</span> count)))
    (<span class="org-keyword">when</span> (called-interactively-p <span class="org-highlight-quoted-quote">'</span><span class="org-highlight-quoted-symbol">any</span>)
      (message <span class="org-string">"%d"</span> count))
    count))

<span class="org-comment-delimiter">;;;</span><span class="org-comment">###</span><span class="org-comment"><span class="org-warning">autoload</span></span>
(<span class="org-keyword">defun</span> <span class="org-function-name">sacha-emacs-news-analyze</span> ()
  <span class="org-doc">"Count how many entries and items. Make a table of entries."</span>
  (<span class="org-keyword">interactive</span>)
  (<span class="org-keyword">with-current-buffer</span> (find-file-noselect <span class="org-string">"~/sync/emacs-news/index.org"</span>)
    (goto-char (point-min))
    (<span class="org-keyword">let</span> (results)
      (org-map-entries
       (<span class="org-keyword">lambda</span> ()
         (<span class="org-keyword">let</span> ((title (org-entry-get (point) <span class="org-string">"ITEM"</span>)))
           (<span class="org-keyword">when</span> (string-match <span class="org-string">"</span><span class="org-string"><span class="org-regexp-grouping-backslash">\\</span></span><span class="org-string"><span class="org-regexp-grouping-construct">(</span></span><span class="org-string">[0-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9]</span><span class="org-string"><span class="org-regexp-grouping-backslash">\\</span></span><span class="org-string"><span class="org-regexp-grouping-construct">)</span></span><span class="org-string"> Emacs"</span> title)
             (<span class="org-keyword">push</span> (list (match-string 1 title)
                         (sacha-emacs-news-count-links))
                   results)))))
      (seq-uniq (sort results <span class="org-builtin">:key</span> <span class="org-highlight-quoted-quote">'</span><span class="org-highlight-quoted-symbol">car</span> <span class="org-builtin">:reverse</span> t)))))
</code></pre>
</div>

</details>


<div class="org-src-container">
<pre class="src src-emacs-lisp" id="orgd57c2cb"><code>(append <span class="org-highlight-quoted-quote">'</span>((<span class="org-string">"Date"</span> <span class="org-string">"Count"</span>) hline) (sacha-emacs-news-analyze))
</code></pre>
</div>



<div class="org-src-container">
<pre class="src src-gnuplot"><code><span class="org-constant">set</span> <span class="org-type">title</span> <span class="org-string">"Number of links in Emacs News per week"</span>
<span class="org-constant">set</span> xdata time
<span class="org-constant">set</span> timefmt <span class="org-string">"%Y-%m-%d"</span>
<span class="org-constant">set</span> format x <span class="org-string">"%Y"</span>
<span class="org-constant">set</span> xlabel <span class="org-string">"Year"</span>
<span class="org-constant">set</span> ylabel <span class="org-string">"Count"</span>
<span class="org-constant">set</span> grid
<span class="org-keyword">plot</span> data <span class="org-type">using</span> 1:2 <span class="org-type">with</span> <span class="org-function-name">lines</span> <span class="org-type">title</span> <span class="org-string">"Items"</span>
</code></pre>
</div>



<figure id="org9307c01">
<img src="https://sachachua.com/blog/2026/10/analyzing-emacs-news/emacs-news.png" alt="emacs-news.png">

</figure>

<p>
This probably tracks my availability more than anything else. The dip in 2017 and 2018 corresponds pretty well to the time that the kiddo needed more of my attention. Babies sleep a lot; toddlers, not so much.
</p>

<p>
I generally feel that there are so many interesting rabbit holes to go down each week,
and the Emacs community is active enough that there's always one or two things I want to add to my to-do list to explore further.
Putting together Emacs News is one of the highlights of my week. <a href="https://sachachua.com/blog/2023/12/analyzing-my-emacs-time-over-the-last-11-years-or-so/">It takes me about 1 - 2 hours</a>,
and some of that is just because I get distracted trying out the cool stuff I come across.
</p>

<p>
Learning from similar newsletters: <a href="https://alan.petitepomme.net/cwn/">OCaml Weekly News</a> has a single author as well and does a lot more summarization, but includes fewer links.
<a href="https://this-week-in-rust.org/">This Week in Rust</a> is a similar link-dump weekly newsletter.
It's written by a larger team and it has more commentary.
I think that for the Emacs community, I'm still leaning towards this large list of categorized links for easy skimming.
As I get the hang of writing more, I'd like to write more blog posts myself that Emacs News can also link to.
If your community doesn't already have a weekly or monthly newsletter, I highly recommend it as a way to <a href="https://sachachua.com/blog/2025/05/working-on-the-plumbing-in-a-small-web-community/">bring the community together</a>.
</p>

<p>
Here's the table, in case you're curious:
</p>

<details class="code-details"><summary>Data</summary>
<table>


<colgroup>
<col class="org-right">

<col class="org-right">
</colgroup>
<thead>
<tr>
<th scope="col" class="org-right">Date</th>
<th scope="col" class="org-right">Count</th>
</tr>
</thead>
<tbody>
<tr>
<td class="org-right">2026-10-19</td>
<td class="org-right">74</td>
</tr>

<tr>
<td class="org-right">2026-10-12</td>
<td class="org-right">74</td>
</tr>

<tr>
<td class="org-right">2026-10-05</td>
<td class="org-right">72</td>
</tr>

<tr>
<td class="org-right">2026-09-28</td>
<td class="org-right">55</td>
</tr>

<tr>
<td class="org-right">2026-09-21</td>
<td class="org-right">50</td>
</tr>

<tr>
<td class="org-right">2026-09-14</td>
<td class="org-right">53</td>
</tr>

<tr>
<td class="org-right">2026-09-07</td>
<td class="org-right">73</td>
</tr>

<tr>
<td class="org-right">2026-08-31</td>
<td class="org-right">86</td>
</tr>

<tr>
<td class="org-right">2026-08-24</td>
<td class="org-right">75</td>
</tr>

<tr>
<td class="org-right">2026-08-17</td>
<td class="org-right">71</td>
</tr>

<tr>
<td class="org-right">2026-08-10</td>
<td class="org-right">66</td>
</tr>

<tr>
<td class="org-right">2026-08-03</td>
<td class="org-right">74</td>
</tr>

<tr>
<td class="org-right">2026-07-27</td>
<td class="org-right">74</td>
</tr>

<tr>
<td class="org-right">2026-07-20</td>
<td class="org-right">99</td>
</tr>

<tr>
<td class="org-right">2026-07-13</td>
<td class="org-right">50</td>
</tr>

<tr>
<td class="org-right">2026-07-06</td>
<td class="org-right">78</td>
</tr>

<tr>
<td class="org-right">2026-06-29</td>
<td class="org-right">60</td>
</tr>

<tr>
<td class="org-right">2026-06-22</td>
<td class="org-right">72</td>
</tr>

<tr>
<td class="org-right">2026-06-15</td>
<td class="org-right">66</td>
</tr>

<tr>
<td class="org-right">2026-06-08</td>
<td class="org-right">93</td>
</tr>

<tr>
<td class="org-right">2026-06-01</td>
<td class="org-right">56</td>
</tr>

<tr>
<td class="org-right">2026-05-25</td>
<td class="org-right">56</td>
</tr>

<tr>
<td class="org-right">2026-05-18</td>
<td class="org-right">57</td>
</tr>

<tr>
<td class="org-right">2026-05-11</td>
<td class="org-right">94</td>
</tr>

<tr>
<td class="org-right">2026-05-04</td>
<td class="org-right">88</td>
</tr>

<tr>
<td class="org-right">2026-04-27</td>
<td class="org-right">71</td>
</tr>

<tr>
<td class="org-right">2026-04-20</td>
<td class="org-right">91</td>
</tr>

<tr>
<td class="org-right">2026-04-13</td>
<td class="org-right">86</td>
</tr>

<tr>
<td class="org-right">2026-04-06</td>
<td class="org-right">84</td>
</tr>

<tr>
<td class="org-right">2026-03-30</td>
<td class="org-right">69</td>
</tr>

<tr>
<td class="org-right">2026-03-23</td>
<td class="org-right">61</td>
</tr>

<tr>
<td class="org-right">2026-03-16</td>
<td class="org-right">75</td>
</tr>

<tr>
<td class="org-right">2026-03-09</td>
<td class="org-right">83</td>
</tr>

<tr>
<td class="org-right">2026-03-02</td>
<td class="org-right">86</td>
</tr>

<tr>
<td class="org-right">2026-02-23</td>
<td class="org-right">96</td>
</tr>

<tr>
<td class="org-right">2026-02-16</td>
<td class="org-right">89</td>
</tr>

<tr>
<td class="org-right">2026-02-09</td>
<td class="org-right">87</td>
</tr>

<tr>
<td class="org-right">2026-02-02</td>
<td class="org-right">109</td>
</tr>

<tr>
<td class="org-right">2026-01-26</td>
<td class="org-right">59</td>
</tr>

<tr>
<td class="org-right">2026-01-19</td>
<td class="org-right">84</td>
</tr>

<tr>
<td class="org-right">2026-01-12</td>
<td class="org-right">86</td>
</tr>

<tr>
<td class="org-right">2026-01-05</td>
<td class="org-right">88</td>
</tr>

<tr>
<td class="org-right">2026-01-04</td>
<td class="org-right">59</td>
</tr>

<tr>
<td class="org-right">2025-12-29</td>
<td class="org-right">63</td>
</tr>

<tr>
<td class="org-right">2025-12-22</td>
<td class="org-right">99</td>
</tr>

<tr>
<td class="org-right">2025-12-15</td>
<td class="org-right">65</td>
</tr>

<tr>
<td class="org-right">2025-12-08</td>
<td class="org-right">74</td>
</tr>

<tr>
<td class="org-right">2025-12-01</td>
<td class="org-right">62</td>
</tr>

<tr>
<td class="org-right">2025-11-24</td>
<td class="org-right">71</td>
</tr>

<tr>
<td class="org-right">2025-11-17</td>
<td class="org-right">57</td>
</tr>

<tr>
<td class="org-right">2025-11-10</td>
<td class="org-right">76</td>
</tr>

<tr>
<td class="org-right">2025-11-03</td>
<td class="org-right">69</td>
</tr>

<tr>
<td class="org-right">2025-10-27</td>
<td class="org-right">64</td>
</tr>

<tr>
<td class="org-right">2025-10-20</td>
<td class="org-right">51</td>
</tr>

<tr>
<td class="org-right">2025-10-13</td>
<td class="org-right">57</td>
</tr>

<tr>
<td class="org-right">2025-10-06</td>
<td class="org-right">62</td>
</tr>

<tr>
<td class="org-right">2025-09-29</td>
<td class="org-right">64</td>
</tr>

<tr>
<td class="org-right">2025-09-22</td>
<td class="org-right">66</td>
</tr>

<tr>
<td class="org-right">2025-09-15</td>
<td class="org-right">71</td>
</tr>

<tr>
<td class="org-right">2025-09-08</td>
<td class="org-right">61</td>
</tr>

<tr>
<td class="org-right">2025-09-01</td>
<td class="org-right">74</td>
</tr>

<tr>
<td class="org-right">2025-08-25</td>
<td class="org-right">82</td>
</tr>

<tr>
<td class="org-right">2025-08-18</td>
<td class="org-right">69</td>
</tr>

<tr>
<td class="org-right">2025-08-11</td>
<td class="org-right">84</td>
</tr>

<tr>
<td class="org-right">2025-08-04</td>
<td class="org-right">53</td>
</tr>

<tr>
<td class="org-right">2025-07-28</td>
<td class="org-right">82</td>
</tr>

<tr>
<td class="org-right">2025-07-21</td>
<td class="org-right">70</td>
</tr>

<tr>
<td class="org-right">2025-07-14</td>
<td class="org-right">65</td>
</tr>

<tr>
<td class="org-right">2025-07-07</td>
<td class="org-right">56</td>
</tr>

<tr>
<td class="org-right">2025-06-30</td>
<td class="org-right">67</td>
</tr>

<tr>
<td class="org-right">2025-06-23</td>
<td class="org-right">63</td>
</tr>

<tr>
<td class="org-right">2025-06-16</td>
<td class="org-right">62</td>
</tr>

<tr>
<td class="org-right">2025-06-09</td>
<td class="org-right">50</td>
</tr>

<tr>
<td class="org-right">2025-06-02</td>
<td class="org-right">68</td>
</tr>

<tr>
<td class="org-right">2025-05-26</td>
<td class="org-right">61</td>
</tr>

<tr>
<td class="org-right">2025-05-19</td>
<td class="org-right">74</td>
</tr>

<tr>
<td class="org-right">2025-05-12</td>
<td class="org-right">58</td>
</tr>

<tr>
<td class="org-right">2025-05-05</td>
<td class="org-right">57</td>
</tr>

<tr>
<td class="org-right">2025-04-28</td>
<td class="org-right">96</td>
</tr>

<tr>
<td class="org-right">2025-04-21</td>
<td class="org-right">70</td>
</tr>

<tr>
<td class="org-right">2025-04-14</td>
<td class="org-right">99</td>
</tr>

<tr>
<td class="org-right">2025-04-07</td>
<td class="org-right">64</td>
</tr>

<tr>
<td class="org-right">2025-03-31</td>
<td class="org-right">83</td>
</tr>

<tr>
<td class="org-right">2025-03-24</td>
<td class="org-right">74</td>
</tr>

<tr>
<td class="org-right">2025-03-17</td>
<td class="org-right">94</td>
</tr>

<tr>
<td class="org-right">2025-03-10</td>
<td class="org-right">102</td>
</tr>

<tr>
<td class="org-right">2025-03-03</td>
<td class="org-right">102</td>
</tr>

<tr>
<td class="org-right">2025-02-24</td>
<td class="org-right">74</td>
</tr>

<tr>
<td class="org-right">2025-02-17</td>
<td class="org-right">85</td>
</tr>

<tr>
<td class="org-right">2025-02-10</td>
<td class="org-right">64</td>
</tr>

<tr>
<td class="org-right">2025-02-03</td>
<td class="org-right">84</td>
</tr>

<tr>
<td class="org-right">2025-01-27</td>
<td class="org-right">78</td>
</tr>

<tr>
<td class="org-right">2025-01-20</td>
<td class="org-right">80</td>
</tr>

<tr>
<td class="org-right">2025-01-13</td>
<td class="org-right">59</td>
</tr>

<tr>
<td class="org-right">2025-01-06</td>
<td class="org-right">66</td>
</tr>

<tr>
<td class="org-right">2024-12-30</td>
<td class="org-right">92</td>
</tr>

<tr>
<td class="org-right">2024-12-23</td>
<td class="org-right">85</td>
</tr>

<tr>
<td class="org-right">2024-12-16</td>
<td class="org-right">72</td>
</tr>

<tr>
<td class="org-right">2024-12-09</td>
<td class="org-right">82</td>
</tr>

<tr>
<td class="org-right">2024-12-02</td>
<td class="org-right">63</td>
</tr>

<tr>
<td class="org-right">2024-11-25</td>
<td class="org-right">75</td>
</tr>

<tr>
<td class="org-right">2024-11-18</td>
<td class="org-right">67</td>
</tr>

<tr>
<td class="org-right">2024-11-11</td>
<td class="org-right">59</td>
</tr>

<tr>
<td class="org-right">2024-11-04</td>
<td class="org-right">73</td>
</tr>

<tr>
<td class="org-right">2024-10-28</td>
<td class="org-right">65</td>
</tr>

<tr>
<td class="org-right">2024-10-21</td>
<td class="org-right">52</td>
</tr>

<tr>
<td class="org-right">2024-10-14</td>
<td class="org-right">72</td>
</tr>

<tr>
<td class="org-right">2024-10-07</td>
<td class="org-right">80</td>
</tr>

<tr>
<td class="org-right">2024-09-30</td>
<td class="org-right">56</td>
</tr>

<tr>
<td class="org-right">2024-09-23</td>
<td class="org-right">93</td>
</tr>

<tr>
<td class="org-right">2024-09-16</td>
<td class="org-right">85</td>
</tr>

<tr>
<td class="org-right">2024-09-09</td>
<td class="org-right">52</td>
</tr>

<tr>
<td class="org-right">2024-09-02</td>
<td class="org-right">67</td>
</tr>

<tr>
<td class="org-right">2024-08-26</td>
<td class="org-right">56</td>
</tr>

<tr>
<td class="org-right">2024-08-19</td>
<td class="org-right">62</td>
</tr>

<tr>
<td class="org-right">2024-08-12</td>
<td class="org-right">48</td>
</tr>

<tr>
<td class="org-right">2024-08-05</td>
<td class="org-right">45</td>
</tr>

<tr>
<td class="org-right">2024-07-29</td>
<td class="org-right">51</td>
</tr>

<tr>
<td class="org-right">2024-07-22</td>
<td class="org-right">56</td>
</tr>

<tr>
<td class="org-right">2024-07-15</td>
<td class="org-right">60</td>
</tr>

<tr>
<td class="org-right">2024-07-08</td>
<td class="org-right">68</td>
</tr>

<tr>
<td class="org-right">2024-07-01</td>
<td class="org-right">67</td>
</tr>

<tr>
<td class="org-right">2024-06-24</td>
<td class="org-right">77</td>
</tr>

<tr>
<td class="org-right">2024-06-17</td>
<td class="org-right">86</td>
</tr>

<tr>
<td class="org-right">2024-06-10</td>
<td class="org-right">82</td>
</tr>

<tr>
<td class="org-right">2024-06-03</td>
<td class="org-right">79</td>
</tr>

<tr>
<td class="org-right">2024-05-27</td>
<td class="org-right">71</td>
</tr>

<tr>
<td class="org-right">2024-05-20</td>
<td class="org-right">66</td>
</tr>

<tr>
<td class="org-right">2024-05-13</td>
<td class="org-right">91</td>
</tr>

<tr>
<td class="org-right">2024-05-06</td>
<td class="org-right">73</td>
</tr>

<tr>
<td class="org-right">2024-04-29</td>
<td class="org-right">84</td>
</tr>

<tr>
<td class="org-right">2024-04-22</td>
<td class="org-right">63</td>
</tr>

<tr>
<td class="org-right">2024-04-15</td>
<td class="org-right">94</td>
</tr>

<tr>
<td class="org-right">2024-04-08</td>
<td class="org-right">67</td>
</tr>

<tr>
<td class="org-right">2024-04-01</td>
<td class="org-right">95</td>
</tr>

<tr>
<td class="org-right">2024-03-25</td>
<td class="org-right">91</td>
</tr>

<tr>
<td class="org-right">2024-03-18</td>
<td class="org-right">78</td>
</tr>

<tr>
<td class="org-right">2024-03-11</td>
<td class="org-right">79</td>
</tr>

<tr>
<td class="org-right">2024-03-04</td>
<td class="org-right">84</td>
</tr>

<tr>
<td class="org-right">2024-02-26</td>
<td class="org-right">72</td>
</tr>

<tr>
<td class="org-right">2024-02-19</td>
<td class="org-right">69</td>
</tr>

<tr>
<td class="org-right">2024-02-12</td>
<td class="org-right">78</td>
</tr>

<tr>
<td class="org-right">2024-02-05</td>
<td class="org-right">70</td>
</tr>

<tr>
<td class="org-right">2024-01-29</td>
<td class="org-right">96</td>
</tr>

<tr>
<td class="org-right">2024-01-22</td>
<td class="org-right">83</td>
</tr>

<tr>
<td class="org-right">2024-01-15</td>
<td class="org-right">70</td>
</tr>

<tr>
<td class="org-right">2024-01-08</td>
<td class="org-right">99</td>
</tr>

<tr>
<td class="org-right">2024-01-01</td>
<td class="org-right">76</td>
</tr>

<tr>
<td class="org-right">2023-12-25</td>
<td class="org-right">77</td>
</tr>

<tr>
<td class="org-right">2023-12-18</td>
<td class="org-right">74</td>
</tr>

<tr>
<td class="org-right">2023-12-11</td>
<td class="org-right">66</td>
</tr>

<tr>
<td class="org-right">2023-12-04</td>
<td class="org-right">56</td>
</tr>

<tr>
<td class="org-right">2023-11-27</td>
<td class="org-right">85</td>
</tr>

<tr>
<td class="org-right">2023-11-20</td>
<td class="org-right">76</td>
</tr>

<tr>
<td class="org-right">2023-11-13</td>
<td class="org-right">62</td>
</tr>

<tr>
<td class="org-right">2023-11-06</td>
<td class="org-right">52</td>
</tr>

<tr>
<td class="org-right">2023-10-30</td>
<td class="org-right">59</td>
</tr>

<tr>
<td class="org-right">2023-10-23</td>
<td class="org-right">69</td>
</tr>

<tr>
<td class="org-right">2023-10-16</td>
<td class="org-right">91</td>
</tr>

<tr>
<td class="org-right">2023-10-09</td>
<td class="org-right">93</td>
</tr>

<tr>
<td class="org-right">2023-10-02</td>
<td class="org-right">82</td>
</tr>

<tr>
<td class="org-right">2023-09-25</td>
<td class="org-right">73</td>
</tr>

<tr>
<td class="org-right">2023-09-18</td>
<td class="org-right">72</td>
</tr>

<tr>
<td class="org-right">2023-09-11</td>
<td class="org-right">90</td>
</tr>

<tr>
<td class="org-right">2023-09-04</td>
<td class="org-right">79</td>
</tr>

<tr>
<td class="org-right">2023-08-28</td>
<td class="org-right">83</td>
</tr>

<tr>
<td class="org-right">2023-08-21</td>
<td class="org-right">78</td>
</tr>

<tr>
<td class="org-right">2023-08-14</td>
<td class="org-right">84</td>
</tr>

<tr>
<td class="org-right">2023-08-07</td>
<td class="org-right">49</td>
</tr>

<tr>
<td class="org-right">2023-07-31</td>
<td class="org-right">69</td>
</tr>

<tr>
<td class="org-right">2023-07-24</td>
<td class="org-right">46</td>
</tr>

<tr>
<td class="org-right">2023-07-17</td>
<td class="org-right">53</td>
</tr>

<tr>
<td class="org-right">2023-07-10</td>
<td class="org-right">52</td>
</tr>

<tr>
<td class="org-right">2023-07-03</td>
<td class="org-right">67</td>
</tr>

<tr>
<td class="org-right">2023-06-26</td>
<td class="org-right">59</td>
</tr>

<tr>
<td class="org-right">2023-06-19</td>
<td class="org-right">53</td>
</tr>

<tr>
<td class="org-right">2023-06-12</td>
<td class="org-right">41</td>
</tr>

<tr>
<td class="org-right">2023-06-05</td>
<td class="org-right">52</td>
</tr>

<tr>
<td class="org-right">2023-05-29</td>
<td class="org-right">49</td>
</tr>

<tr>
<td class="org-right">2023-05-22</td>
<td class="org-right">64</td>
</tr>

<tr>
<td class="org-right">2023-05-15</td>
<td class="org-right">66</td>
</tr>

<tr>
<td class="org-right">2023-05-08</td>
<td class="org-right">57</td>
</tr>

<tr>
<td class="org-right">2023-05-01</td>
<td class="org-right">73</td>
</tr>

<tr>
<td class="org-right">2023-04-24</td>
<td class="org-right">67</td>
</tr>

<tr>
<td class="org-right">2023-04-17</td>
<td class="org-right">66</td>
</tr>

<tr>
<td class="org-right">2023-04-10</td>
<td class="org-right">49</td>
</tr>

<tr>
<td class="org-right">2023-04-03</td>
<td class="org-right">76</td>
</tr>

<tr>
<td class="org-right">2023-03-27</td>
<td class="org-right">92</td>
</tr>

<tr>
<td class="org-right">2023-03-20</td>
<td class="org-right">65</td>
</tr>

<tr>
<td class="org-right">2023-03-13</td>
<td class="org-right">85</td>
</tr>

<tr>
<td class="org-right">2023-03-06</td>
<td class="org-right">64</td>
</tr>

<tr>
<td class="org-right">2023-02-27</td>
<td class="org-right">62</td>
</tr>

<tr>
<td class="org-right">2023-02-20</td>
<td class="org-right">64</td>
</tr>

<tr>
<td class="org-right">2023-02-13</td>
<td class="org-right">65</td>
</tr>

<tr>
<td class="org-right">2023-02-06</td>
<td class="org-right">67</td>
</tr>

<tr>
<td class="org-right">2023-01-30</td>
<td class="org-right">70</td>
</tr>

<tr>
<td class="org-right">2023-01-23</td>
<td class="org-right">85</td>
</tr>

<tr>
<td class="org-right">2023-01-16</td>
<td class="org-right">83</td>
</tr>

<tr>
<td class="org-right">2023-01-09</td>
<td class="org-right">83</td>
</tr>

<tr>
<td class="org-right">2023-01-02</td>
<td class="org-right">89</td>
</tr>

<tr>
<td class="org-right">2022-12-26</td>
<td class="org-right">89</td>
</tr>

<tr>
<td class="org-right">2022-12-19</td>
<td class="org-right">83</td>
</tr>

<tr>
<td class="org-right">2022-12-12</td>
<td class="org-right">92</td>
</tr>

<tr>
<td class="org-right">2022-12-05</td>
<td class="org-right">69</td>
</tr>

<tr>
<td class="org-right">2022-11-28</td>
<td class="org-right">90</td>
</tr>

<tr>
<td class="org-right">2022-11-21</td>
<td class="org-right">82</td>
</tr>

<tr>
<td class="org-right">2022-11-14</td>
<td class="org-right">64</td>
</tr>

<tr>
<td class="org-right">2022-11-07</td>
<td class="org-right">75</td>
</tr>

<tr>
<td class="org-right">2022-10-31</td>
<td class="org-right">74</td>
</tr>

<tr>
<td class="org-right">2022-10-24</td>
<td class="org-right">37</td>
</tr>

<tr>
<td class="org-right">2022-10-17</td>
<td class="org-right">54</td>
</tr>

<tr>
<td class="org-right">2022-10-10</td>
<td class="org-right">77</td>
</tr>

<tr>
<td class="org-right">2022-10-03</td>
<td class="org-right">81</td>
</tr>

<tr>
<td class="org-right">2022-09-26</td>
<td class="org-right">75</td>
</tr>

<tr>
<td class="org-right">2022-09-19</td>
<td class="org-right">75</td>
</tr>

<tr>
<td class="org-right">2022-09-12</td>
<td class="org-right">77</td>
</tr>

<tr>
<td class="org-right">2022-09-05</td>
<td class="org-right">67</td>
</tr>

<tr>
<td class="org-right">2022-08-29</td>
<td class="org-right">73</td>
</tr>

<tr>
<td class="org-right">2022-08-22</td>
<td class="org-right">50</td>
</tr>

<tr>
<td class="org-right">2022-08-15</td>
<td class="org-right">45</td>
</tr>

<tr>
<td class="org-right">2022-08-08</td>
<td class="org-right">65</td>
</tr>

<tr>
<td class="org-right">2022-08-01</td>
<td class="org-right">69</td>
</tr>

<tr>
<td class="org-right">2022-07-25</td>
<td class="org-right">60</td>
</tr>

<tr>
<td class="org-right">2022-07-18</td>
<td class="org-right">55</td>
</tr>

<tr>
<td class="org-right">2022-07-11</td>
<td class="org-right">75</td>
</tr>

<tr>
<td class="org-right">2022-07-04</td>
<td class="org-right">56</td>
</tr>

<tr>
<td class="org-right">2022-06-27</td>
<td class="org-right">51</td>
</tr>

<tr>
<td class="org-right">2022-06-20</td>
<td class="org-right">60</td>
</tr>

<tr>
<td class="org-right">2022-06-13</td>
<td class="org-right">67</td>
</tr>

<tr>
<td class="org-right">2022-06-06</td>
<td class="org-right">65</td>
</tr>

<tr>
<td class="org-right">2022-05-30</td>
<td class="org-right">38</td>
</tr>

<tr>
<td class="org-right">2022-05-23</td>
<td class="org-right">68</td>
</tr>

<tr>
<td class="org-right">2022-05-16</td>
<td class="org-right">65</td>
</tr>

<tr>
<td class="org-right">2022-05-09</td>
<td class="org-right">67</td>
</tr>

<tr>
<td class="org-right">2022-05-02</td>
<td class="org-right">82</td>
</tr>

<tr>
<td class="org-right">2022-04-25</td>
<td class="org-right">59</td>
</tr>

<tr>
<td class="org-right">2022-04-18</td>
<td class="org-right">71</td>
</tr>

<tr>
<td class="org-right">2022-04-11</td>
<td class="org-right">69</td>
</tr>

<tr>
<td class="org-right">2022-04-04</td>
<td class="org-right">63</td>
</tr>

<tr>
<td class="org-right">2022-03-28</td>
<td class="org-right">67</td>
</tr>

<tr>
<td class="org-right">2022-03-21</td>
<td class="org-right">71</td>
</tr>

<tr>
<td class="org-right">2022-03-14</td>
<td class="org-right">64</td>
</tr>

<tr>
<td class="org-right">2022-03-07</td>
<td class="org-right">68</td>
</tr>

<tr>
<td class="org-right">2022-02-28</td>
<td class="org-right">65</td>
</tr>

<tr>
<td class="org-right">2022-02-21</td>
<td class="org-right">77</td>
</tr>

<tr>
<td class="org-right">2022-02-14</td>
<td class="org-right">88</td>
</tr>

<tr>
<td class="org-right">2022-02-07</td>
<td class="org-right">49</td>
</tr>

<tr>
<td class="org-right">2022-01-31</td>
<td class="org-right">75</td>
</tr>

<tr>
<td class="org-right">2022-01-24</td>
<td class="org-right">74</td>
</tr>

<tr>
<td class="org-right">2022-01-17</td>
<td class="org-right">83</td>
</tr>

<tr>
<td class="org-right">2022-01-10</td>
<td class="org-right">57</td>
</tr>

<tr>
<td class="org-right">2022-01-03</td>
<td class="org-right">67</td>
</tr>

<tr>
<td class="org-right">2021-12-27</td>
<td class="org-right">47</td>
</tr>

<tr>
<td class="org-right">2021-12-20</td>
<td class="org-right">56</td>
</tr>

<tr>
<td class="org-right">2021-12-13</td>
<td class="org-right">57</td>
</tr>

<tr>
<td class="org-right">2021-12-06</td>
<td class="org-right">69</td>
</tr>

<tr>
<td class="org-right">2021-11-29</td>
<td class="org-right">75</td>
</tr>

<tr>
<td class="org-right">2021-11-22</td>
<td class="org-right">55</td>
</tr>

<tr>
<td class="org-right">2021-11-15</td>
<td class="org-right">56</td>
</tr>

<tr>
<td class="org-right">2021-11-08</td>
<td class="org-right">94</td>
</tr>

<tr>
<td class="org-right">2021-11-01</td>
<td class="org-right">79</td>
</tr>

<tr>
<td class="org-right">2021-10-25</td>
<td class="org-right">66</td>
</tr>

<tr>
<td class="org-right">2021-10-18</td>
<td class="org-right">77</td>
</tr>

<tr>
<td class="org-right">2021-10-11</td>
<td class="org-right">70</td>
</tr>

<tr>
<td class="org-right">2021-10-04</td>
<td class="org-right">91</td>
</tr>

<tr>
<td class="org-right">2021-09-27</td>
<td class="org-right">86</td>
</tr>

<tr>
<td class="org-right">2021-09-20</td>
<td class="org-right">63</td>
</tr>

<tr>
<td class="org-right">2021-09-13</td>
<td class="org-right">79</td>
</tr>

<tr>
<td class="org-right">2021-09-06</td>
<td class="org-right">63</td>
</tr>

<tr>
<td class="org-right">2021-08-30</td>
<td class="org-right">68</td>
</tr>

<tr>
<td class="org-right">2021-08-23</td>
<td class="org-right">64</td>
</tr>

<tr>
<td class="org-right">2021-08-16</td>
<td class="org-right">77</td>
</tr>

<tr>
<td class="org-right">2021-08-09</td>
<td class="org-right">69</td>
</tr>

<tr>
<td class="org-right">2021-08-02</td>
<td class="org-right">59</td>
</tr>

<tr>
<td class="org-right">2021-07-26</td>
<td class="org-right">77</td>
</tr>

<tr>
<td class="org-right">2021-07-19</td>
<td class="org-right">65</td>
</tr>

<tr>
<td class="org-right">2021-07-12</td>
<td class="org-right">48</td>
</tr>

<tr>
<td class="org-right">2021-07-05</td>
<td class="org-right">64</td>
</tr>

<tr>
<td class="org-right">2021-06-28</td>
<td class="org-right">46</td>
</tr>

<tr>
<td class="org-right">2021-06-21</td>
<td class="org-right">65</td>
</tr>

<tr>
<td class="org-right">2021-06-14</td>
<td class="org-right">37</td>
</tr>

<tr>
<td class="org-right">2021-06-07</td>
<td class="org-right">65</td>
</tr>

<tr>
<td class="org-right">2021-05-31</td>
<td class="org-right">65</td>
</tr>

<tr>
<td class="org-right">2021-05-24</td>
<td class="org-right">46</td>
</tr>

<tr>
<td class="org-right">2021-05-17</td>
<td class="org-right">65</td>
</tr>

<tr>
<td class="org-right">2021-05-10</td>
<td class="org-right">58</td>
</tr>

<tr>
<td class="org-right">2021-05-03</td>
<td class="org-right">47</td>
</tr>

<tr>
<td class="org-right">2021-04-26</td>
<td class="org-right">57</td>
</tr>

<tr>
<td class="org-right">2021-04-19</td>
<td class="org-right">73</td>
</tr>

<tr>
<td class="org-right">2021-04-12</td>
<td class="org-right">52</td>
</tr>

<tr>
<td class="org-right">2021-04-05</td>
<td class="org-right">70</td>
</tr>

<tr>
<td class="org-right">2021-03-29</td>
<td class="org-right">65</td>
</tr>

<tr>
<td class="org-right">2021-03-22</td>
<td class="org-right">82</td>
</tr>

<tr>
<td class="org-right">2021-03-15</td>
<td class="org-right">64</td>
</tr>

<tr>
<td class="org-right">2021-03-08</td>
<td class="org-right">70</td>
</tr>

<tr>
<td class="org-right">2021-03-01</td>
<td class="org-right">55</td>
</tr>

<tr>
<td class="org-right">2021-02-22</td>
<td class="org-right">84</td>
</tr>

<tr>
<td class="org-right">2021-02-15</td>
<td class="org-right">96</td>
</tr>

<tr>
<td class="org-right">2021-02-08</td>
<td class="org-right">74</td>
</tr>

<tr>
<td class="org-right">2021-02-01</td>
<td class="org-right">73</td>
</tr>

<tr>
<td class="org-right">2021-01-25</td>
<td class="org-right">71</td>
</tr>

<tr>
<td class="org-right">2021-01-18</td>
<td class="org-right">58</td>
</tr>

<tr>
<td class="org-right">2021-01-11</td>
<td class="org-right">66</td>
</tr>

<tr>
<td class="org-right">2021-01-04</td>
<td class="org-right">76</td>
</tr>

<tr>
<td class="org-right">2020-12-28</td>
<td class="org-right">72</td>
</tr>

<tr>
<td class="org-right">2020-12-21</td>
<td class="org-right">73</td>
</tr>

<tr>
<td class="org-right">2020-12-14</td>
<td class="org-right">92</td>
</tr>

<tr>
<td class="org-right">2020-12-07</td>
<td class="org-right">76</td>
</tr>

<tr>
<td class="org-right">2020-11-30</td>
<td class="org-right">65</td>
</tr>

<tr>
<td class="org-right">2020-11-23</td>
<td class="org-right">51</td>
</tr>

<tr>
<td class="org-right">2020-11-16</td>
<td class="org-right">47</td>
</tr>

<tr>
<td class="org-right">2020-11-09</td>
<td class="org-right">57</td>
</tr>

<tr>
<td class="org-right">2020-11-02</td>
<td class="org-right">72</td>
</tr>

<tr>
<td class="org-right">2020-10-26</td>
<td class="org-right">51</td>
</tr>

<tr>
<td class="org-right">2020-10-19</td>
<td class="org-right">76</td>
</tr>

<tr>
<td class="org-right">2020-10-12</td>
<td class="org-right">70</td>
</tr>

<tr>
<td class="org-right">2020-10-05</td>
<td class="org-right">57</td>
</tr>

<tr>
<td class="org-right">2020-09-28</td>
<td class="org-right">71</td>
</tr>

<tr>
<td class="org-right">2020-09-21</td>
<td class="org-right">81</td>
</tr>

<tr>
<td class="org-right">2020-09-14</td>
<td class="org-right">79</td>
</tr>

<tr>
<td class="org-right">2020-09-07</td>
<td class="org-right">61</td>
</tr>

<tr>
<td class="org-right">2020-08-31</td>
<td class="org-right">64</td>
</tr>

<tr>
<td class="org-right">2020-08-24</td>
<td class="org-right">73</td>
</tr>

<tr>
<td class="org-right">2020-08-17</td>
<td class="org-right">80</td>
</tr>

<tr>
<td class="org-right">2020-08-10</td>
<td class="org-right">89</td>
</tr>

<tr>
<td class="org-right">2020-08-03</td>
<td class="org-right">70</td>
</tr>

<tr>
<td class="org-right">2020-07-27</td>
<td class="org-right">56</td>
</tr>

<tr>
<td class="org-right">2020-07-20</td>
<td class="org-right">60</td>
</tr>

<tr>
<td class="org-right">2020-07-13</td>
<td class="org-right">55</td>
</tr>

<tr>
<td class="org-right">2020-07-06</td>
<td class="org-right">48</td>
</tr>

<tr>
<td class="org-right">2020-06-29</td>
<td class="org-right">43</td>
</tr>

<tr>
<td class="org-right">2020-06-22</td>
<td class="org-right">56</td>
</tr>

<tr>
<td class="org-right">2020-06-15</td>
<td class="org-right">63</td>
</tr>

<tr>
<td class="org-right">2020-06-08</td>
<td class="org-right">66</td>
</tr>

<tr>
<td class="org-right">2020-06-01</td>
<td class="org-right">116</td>
</tr>

<tr>
<td class="org-right">2020-05-25</td>
<td class="org-right">64</td>
</tr>

<tr>
<td class="org-right">2020-05-18</td>
<td class="org-right">83</td>
</tr>

<tr>
<td class="org-right">2020-05-11</td>
<td class="org-right">62</td>
</tr>

<tr>
<td class="org-right">2020-05-04</td>
<td class="org-right">77</td>
</tr>

<tr>
<td class="org-right">2020-04-27</td>
<td class="org-right">63</td>
</tr>

<tr>
<td class="org-right">2020-04-20</td>
<td class="org-right">63</td>
</tr>

<tr>
<td class="org-right">2020-04-13</td>
<td class="org-right">62</td>
</tr>

<tr>
<td class="org-right">2020-04-06</td>
<td class="org-right">49</td>
</tr>

<tr>
<td class="org-right">2020-03-30</td>
<td class="org-right">62</td>
</tr>

<tr>
<td class="org-right">2020-03-23</td>
<td class="org-right">58</td>
</tr>

<tr>
<td class="org-right">2020-03-16</td>
<td class="org-right">52</td>
</tr>

<tr>
<td class="org-right">2020-03-09</td>
<td class="org-right">50</td>
</tr>

<tr>
<td class="org-right">2020-03-02</td>
<td class="org-right">43</td>
</tr>

<tr>
<td class="org-right">2020-02-24</td>
<td class="org-right">53</td>
</tr>

<tr>
<td class="org-right">2020-02-17</td>
<td class="org-right">65</td>
</tr>

<tr>
<td class="org-right">2020-02-10</td>
<td class="org-right">60</td>
</tr>

<tr>
<td class="org-right">2020-02-03</td>
<td class="org-right">67</td>
</tr>

<tr>
<td class="org-right">2020-01-27</td>
<td class="org-right">68</td>
</tr>

<tr>
<td class="org-right">2020-01-20</td>
<td class="org-right">65</td>
</tr>

<tr>
<td class="org-right">2020-01-13</td>
<td class="org-right">61</td>
</tr>

<tr>
<td class="org-right">2020-01-06</td>
<td class="org-right">70</td>
</tr>

<tr>
<td class="org-right">2019-12-30</td>
<td class="org-right">51</td>
</tr>

<tr>
<td class="org-right">2019-12-23</td>
<td class="org-right">76</td>
</tr>

<tr>
<td class="org-right">2019-12-16</td>
<td class="org-right">71</td>
</tr>

<tr>
<td class="org-right">2019-12-09</td>
<td class="org-right">53</td>
</tr>

<tr>
<td class="org-right">2019-12-02</td>
<td class="org-right">51</td>
</tr>

<tr>
<td class="org-right">2019-11-25</td>
<td class="org-right">57</td>
</tr>

<tr>
<td class="org-right">2019-11-18</td>
<td class="org-right">55</td>
</tr>

<tr>
<td class="org-right">2019-11-11</td>
<td class="org-right">62</td>
</tr>

<tr>
<td class="org-right">2019-11-04</td>
<td class="org-right">70</td>
</tr>

<tr>
<td class="org-right">2019-10-28</td>
<td class="org-right">32</td>
</tr>

<tr>
<td class="org-right">2019-10-21</td>
<td class="org-right">59</td>
</tr>

<tr>
<td class="org-right">2019-10-14</td>
<td class="org-right">76</td>
</tr>

<tr>
<td class="org-right">2019-10-07</td>
<td class="org-right">63</td>
</tr>

<tr>
<td class="org-right">2019-09-30</td>
<td class="org-right">68</td>
</tr>

<tr>
<td class="org-right">2019-09-23</td>
<td class="org-right">88</td>
</tr>

<tr>
<td class="org-right">2019-09-16</td>
<td class="org-right">51</td>
</tr>

<tr>
<td class="org-right">2019-09-09</td>
<td class="org-right">55</td>
</tr>

<tr>
<td class="org-right">2019-09-02</td>
<td class="org-right">47</td>
</tr>

<tr>
<td class="org-right">2019-08-26</td>
<td class="org-right">61</td>
</tr>

<tr>
<td class="org-right">2019-08-19</td>
<td class="org-right">84</td>
</tr>

<tr>
<td class="org-right">2019-08-12</td>
<td class="org-right">79</td>
</tr>

<tr>
<td class="org-right">2019-08-05</td>
<td class="org-right">58</td>
</tr>

<tr>
<td class="org-right">2019-07-29</td>
<td class="org-right">79</td>
</tr>

<tr>
<td class="org-right">2019-07-22</td>
<td class="org-right">96</td>
</tr>

<tr>
<td class="org-right">2019-07-15</td>
<td class="org-right">78</td>
</tr>

<tr>
<td class="org-right">2019-07-08</td>
<td class="org-right">49</td>
</tr>

<tr>
<td class="org-right">2019-07-01</td>
<td class="org-right">86</td>
</tr>

<tr>
<td class="org-right">2019-06-24</td>
<td class="org-right">76</td>
</tr>

<tr>
<td class="org-right">2019-06-17</td>
<td class="org-right">63</td>
</tr>

<tr>
<td class="org-right">2019-06-10</td>
<td class="org-right">51</td>
</tr>

<tr>
<td class="org-right">2019-06-03</td>
<td class="org-right">92</td>
</tr>

<tr>
<td class="org-right">2019-05-27</td>
<td class="org-right">69</td>
</tr>

<tr>
<td class="org-right">2019-05-20</td>
<td class="org-right">86</td>
</tr>

<tr>
<td class="org-right">2019-05-13</td>
<td class="org-right">100</td>
</tr>

<tr>
<td class="org-right">2019-05-06</td>
<td class="org-right">72</td>
</tr>

<tr>
<td class="org-right">2019-04-29</td>
<td class="org-right">92</td>
</tr>

<tr>
<td class="org-right">2019-04-22</td>
<td class="org-right">88</td>
</tr>

<tr>
<td class="org-right">2019-04-15</td>
<td class="org-right">97</td>
</tr>

<tr>
<td class="org-right">2019-04-08</td>
<td class="org-right">88</td>
</tr>

<tr>
<td class="org-right">2019-04-01</td>
<td class="org-right">94</td>
</tr>

<tr>
<td class="org-right">2019-03-25</td>
<td class="org-right">85</td>
</tr>

<tr>
<td class="org-right">2019-03-18</td>
<td class="org-right">53</td>
</tr>

<tr>
<td class="org-right">2019-03-11</td>
<td class="org-right">29</td>
</tr>

<tr>
<td class="org-right">2019-03-04</td>
<td class="org-right">70</td>
</tr>

<tr>
<td class="org-right">2019-02-25</td>
<td class="org-right">80</td>
</tr>

<tr>
<td class="org-right">2019-02-18</td>
<td class="org-right">72</td>
</tr>

<tr>
<td class="org-right">2019-02-11</td>
<td class="org-right">52</td>
</tr>

<tr>
<td class="org-right">2019-02-04</td>
<td class="org-right">65</td>
</tr>

<tr>
<td class="org-right">2019-01-28</td>
<td class="org-right">29</td>
</tr>

<tr>
<td class="org-right">2019-01-21</td>
<td class="org-right">27</td>
</tr>

<tr>
<td class="org-right">2019-01-14</td>
<td class="org-right">41</td>
</tr>

<tr>
<td class="org-right">2019-01-07</td>
<td class="org-right">63</td>
</tr>

<tr>
<td class="org-right">2018-12-31</td>
<td class="org-right">49</td>
</tr>

<tr>
<td class="org-right">2018-12-24</td>
<td class="org-right">41</td>
</tr>

<tr>
<td class="org-right">2018-12-17</td>
<td class="org-right">40</td>
</tr>

<tr>
<td class="org-right">2018-12-10</td>
<td class="org-right">43</td>
</tr>

<tr>
<td class="org-right">2018-12-03</td>
<td class="org-right">42</td>
</tr>

<tr>
<td class="org-right">2018-11-26</td>
<td class="org-right">40</td>
</tr>

<tr>
<td class="org-right">2018-11-19</td>
<td class="org-right">42</td>
</tr>

<tr>
<td class="org-right">2018-11-12</td>
<td class="org-right">58</td>
</tr>

<tr>
<td class="org-right">2018-11-05</td>
<td class="org-right">38</td>
</tr>

<tr>
<td class="org-right">2018-10-29</td>
<td class="org-right">31</td>
</tr>

<tr>
<td class="org-right">2018-10-22</td>
<td class="org-right">37</td>
</tr>

<tr>
<td class="org-right">2018-10-15</td>
<td class="org-right">31</td>
</tr>

<tr>
<td class="org-right">2018-10-08</td>
<td class="org-right">28</td>
</tr>

<tr>
<td class="org-right">2018-10-01</td>
<td class="org-right">49</td>
</tr>

<tr>
<td class="org-right">2018-09-24</td>
<td class="org-right">33</td>
</tr>

<tr>
<td class="org-right">2018-09-17</td>
<td class="org-right">28</td>
</tr>

<tr>
<td class="org-right">2018-09-03</td>
<td class="org-right">84</td>
</tr>

<tr>
<td class="org-right">2018-08-27</td>
<td class="org-right">23</td>
</tr>

<tr>
<td class="org-right">2018-08-20</td>
<td class="org-right">24</td>
</tr>

<tr>
<td class="org-right">2018-08-13</td>
<td class="org-right">26</td>
</tr>

<tr>
<td class="org-right">2018-08-06</td>
<td class="org-right">25</td>
</tr>

<tr>
<td class="org-right">2018-07-30</td>
<td class="org-right">24</td>
</tr>

<tr>
<td class="org-right">2018-07-23</td>
<td class="org-right">27</td>
</tr>

<tr>
<td class="org-right">2018-07-16</td>
<td class="org-right">25</td>
</tr>

<tr>
<td class="org-right">2018-07-09</td>
<td class="org-right">35</td>
</tr>

<tr>
<td class="org-right">2018-07-02</td>
<td class="org-right">26</td>
</tr>

<tr>
<td class="org-right">2018-06-25</td>
<td class="org-right">36</td>
</tr>

<tr>
<td class="org-right">2018-06-18</td>
<td class="org-right">35</td>
</tr>

<tr>
<td class="org-right">2018-06-11</td>
<td class="org-right">33</td>
</tr>

<tr>
<td class="org-right">2018-06-04</td>
<td class="org-right">56</td>
</tr>

<tr>
<td class="org-right">2018-05-28</td>
<td class="org-right">28</td>
</tr>

<tr>
<td class="org-right">2018-05-21</td>
<td class="org-right">33</td>
</tr>

<tr>
<td class="org-right">2018-05-14</td>
<td class="org-right">29</td>
</tr>

<tr>
<td class="org-right">2018-05-07</td>
<td class="org-right">33</td>
</tr>

<tr>
<td class="org-right">2018-04-30</td>
<td class="org-right">41</td>
</tr>

<tr>
<td class="org-right">2018-04-23</td>
<td class="org-right">40</td>
</tr>

<tr>
<td class="org-right">2018-04-16</td>
<td class="org-right">31</td>
</tr>

<tr>
<td class="org-right">2018-04-09</td>
<td class="org-right">44</td>
</tr>

<tr>
<td class="org-right">2018-04-02</td>
<td class="org-right">20</td>
</tr>

<tr>
<td class="org-right">2018-03-26</td>
<td class="org-right">22</td>
</tr>

<tr>
<td class="org-right">2018-03-20</td>
<td class="org-right">29</td>
</tr>

<tr>
<td class="org-right">2018-03-12</td>
<td class="org-right">37</td>
</tr>

<tr>
<td class="org-right">2018-03-04</td>
<td class="org-right">55</td>
</tr>

<tr>
<td class="org-right">2018-02-26</td>
<td class="org-right">23</td>
</tr>

<tr>
<td class="org-right">2018-02-19</td>
<td class="org-right">39</td>
</tr>

<tr>
<td class="org-right">2018-02-12</td>
<td class="org-right">20</td>
</tr>

<tr>
<td class="org-right">2018-02-05</td>
<td class="org-right">48</td>
</tr>

<tr>
<td class="org-right">2018-01-29</td>
<td class="org-right">26</td>
</tr>

<tr>
<td class="org-right">2018-01-23</td>
<td class="org-right">48</td>
</tr>

<tr>
<td class="org-right">2018-01-15</td>
<td class="org-right">18</td>
</tr>

<tr>
<td class="org-right">2018-01-09</td>
<td class="org-right">30</td>
</tr>

<tr>
<td class="org-right">2018-01-01</td>
<td class="org-right">26</td>
</tr>

<tr>
<td class="org-right">2017-12-26</td>
<td class="org-right">30</td>
</tr>

<tr>
<td class="org-right">2017-12-19</td>
<td class="org-right">28</td>
</tr>

<tr>
<td class="org-right">2017-12-11</td>
<td class="org-right">20</td>
</tr>

<tr>
<td class="org-right">2017-12-04</td>
<td class="org-right">41</td>
</tr>

<tr>
<td class="org-right">2017-11-27</td>
<td class="org-right">20</td>
</tr>

<tr>
<td class="org-right">2017-11-20</td>
<td class="org-right">34</td>
</tr>

<tr>
<td class="org-right">2017-11-13</td>
<td class="org-right">35</td>
</tr>

<tr>
<td class="org-right">2017-11-06</td>
<td class="org-right">35</td>
</tr>

<tr>
<td class="org-right">2017-10-30</td>
<td class="org-right">28</td>
</tr>

<tr>
<td class="org-right">2017-10-23</td>
<td class="org-right">28</td>
</tr>

<tr>
<td class="org-right">2017-08-21</td>
<td class="org-right">40</td>
</tr>

<tr>
<td class="org-right">2017-08-14</td>
<td class="org-right">55</td>
</tr>

<tr>
<td class="org-right">2017-08-07</td>
<td class="org-right">29</td>
</tr>

<tr>
<td class="org-right">2017-07-31</td>
<td class="org-right">53</td>
</tr>

<tr>
<td class="org-right">2017-07-24</td>
<td class="org-right">52</td>
</tr>

<tr>
<td class="org-right">2017-07-17</td>
<td class="org-right">54</td>
</tr>

<tr>
<td class="org-right">2017-07-10</td>
<td class="org-right">47</td>
</tr>

<tr>
<td class="org-right">2017-07-03</td>
<td class="org-right">35</td>
</tr>

<tr>
<td class="org-right">2017-06-26</td>
<td class="org-right">50</td>
</tr>

<tr>
<td class="org-right">2017-06-19</td>
<td class="org-right">21</td>
</tr>

<tr>
<td class="org-right">2017-06-12</td>
<td class="org-right">24</td>
</tr>

<tr>
<td class="org-right">2017-06-05</td>
<td class="org-right">33</td>
</tr>

<tr>
<td class="org-right">2017-05-29</td>
<td class="org-right">32</td>
</tr>

<tr>
<td class="org-right">2017-05-22</td>
<td class="org-right">35</td>
</tr>

<tr>
<td class="org-right">2017-05-15</td>
<td class="org-right">35</td>
</tr>

<tr>
<td class="org-right">2017-05-08</td>
<td class="org-right">40</td>
</tr>

<tr>
<td class="org-right">2017-05-01</td>
<td class="org-right">33</td>
</tr>

<tr>
<td class="org-right">2017-04-24</td>
<td class="org-right">32</td>
</tr>

<tr>
<td class="org-right">2017-04-17</td>
<td class="org-right">35</td>
</tr>

<tr>
<td class="org-right">2017-04-10</td>
<td class="org-right">41</td>
</tr>

<tr>
<td class="org-right">2017-04-03</td>
<td class="org-right">35</td>
</tr>

<tr>
<td class="org-right">2017-03-27</td>
<td class="org-right">31</td>
</tr>

<tr>
<td class="org-right">2017-03-20</td>
<td class="org-right">40</td>
</tr>

<tr>
<td class="org-right">2017-03-13</td>
<td class="org-right">41</td>
</tr>

<tr>
<td class="org-right">2017-03-06</td>
<td class="org-right">38</td>
</tr>

<tr>
<td class="org-right">2017-02-27</td>
<td class="org-right">44</td>
</tr>

<tr>
<td class="org-right">2017-02-20</td>
<td class="org-right">35</td>
</tr>

<tr>
<td class="org-right">2017-02-06</td>
<td class="org-right">23</td>
</tr>

<tr>
<td class="org-right">2017-01-30</td>
<td class="org-right">30</td>
</tr>

<tr>
<td class="org-right">2017-01-23</td>
<td class="org-right">43</td>
</tr>

<tr>
<td class="org-right">2017-01-16</td>
<td class="org-right">32</td>
</tr>

<tr>
<td class="org-right">2017-01-13</td>
<td class="org-right">55</td>
</tr>

<tr>
<td class="org-right">2017-01-09</td>
<td class="org-right">34</td>
</tr>

<tr>
<td class="org-right">2017-01-02</td>
<td class="org-right">25</td>
</tr>

<tr>
<td class="org-right">2016-12-26</td>
<td class="org-right">37</td>
</tr>

<tr>
<td class="org-right">2016-12-19</td>
<td class="org-right">44</td>
</tr>

<tr>
<td class="org-right">2016-12-12</td>
<td class="org-right">36</td>
</tr>

<tr>
<td class="org-right">2016-12-05</td>
<td class="org-right">37</td>
</tr>

<tr>
<td class="org-right">2016-11-28</td>
<td class="org-right">27</td>
</tr>

<tr>
<td class="org-right">2016-11-21</td>
<td class="org-right">34</td>
</tr>

<tr>
<td class="org-right">2016-11-14</td>
<td class="org-right">50</td>
</tr>

<tr>
<td class="org-right">2016-11-07</td>
<td class="org-right">40</td>
</tr>

<tr>
<td class="org-right">2016-10-31</td>
<td class="org-right">35</td>
</tr>

<tr>
<td class="org-right">2016-10-24</td>
<td class="org-right">35</td>
</tr>

<tr>
<td class="org-right">2016-10-17</td>
<td class="org-right">36</td>
</tr>

<tr>
<td class="org-right">2016-10-10</td>
<td class="org-right">34</td>
</tr>

<tr>
<td class="org-right">2016-10-03</td>
<td class="org-right">41</td>
</tr>

<tr>
<td class="org-right">2016-09-26</td>
<td class="org-right">32</td>
</tr>

<tr>
<td class="org-right">2016-09-19</td>
<td class="org-right">39</td>
</tr>

<tr>
<td class="org-right">2016-09-12</td>
<td class="org-right">27</td>
</tr>

<tr>
<td class="org-right">2016-09-05</td>
<td class="org-right">32</td>
</tr>

<tr>
<td class="org-right">2016-08-29</td>
<td class="org-right">78</td>
</tr>

<tr>
<td class="org-right">2016-08-22</td>
<td class="org-right">19</td>
</tr>

<tr>
<td class="org-right">2016-08-15</td>
<td class="org-right">17</td>
</tr>

<tr>
<td class="org-right">2016-08-08</td>
<td class="org-right">19</td>
</tr>

<tr>
<td class="org-right">2016-08-01</td>
<td class="org-right">32</td>
</tr>

<tr>
<td class="org-right">2016-07-25</td>
<td class="org-right">33</td>
</tr>

<tr>
<td class="org-right">2016-07-18</td>
<td class="org-right">26</td>
</tr>

<tr>
<td class="org-right">2016-07-10</td>
<td class="org-right">32</td>
</tr>

<tr>
<td class="org-right">2016-07-04</td>
<td class="org-right">48</td>
</tr>

<tr>
<td class="org-right">2016-06-27</td>
<td class="org-right">32</td>
</tr>

<tr>
<td class="org-right">2016-06-20</td>
<td class="org-right">33</td>
</tr>

<tr>
<td class="org-right">2016-06-13</td>
<td class="org-right">34</td>
</tr>

<tr>
<td class="org-right">2016-06-06</td>
<td class="org-right">29</td>
</tr>

<tr>
<td class="org-right">2016-05-30</td>
<td class="org-right">39</td>
</tr>

<tr>
<td class="org-right">2016-05-23</td>
<td class="org-right">47</td>
</tr>

<tr>
<td class="org-right">2016-05-16</td>
<td class="org-right">43</td>
</tr>

<tr>
<td class="org-right">2016-05-09</td>
<td class="org-right">60</td>
</tr>

<tr>
<td class="org-right">2016-05-02</td>
<td class="org-right">45</td>
</tr>

<tr>
<td class="org-right">2016-04-25</td>
<td class="org-right">40</td>
</tr>

<tr>
<td class="org-right">2016-04-18</td>
<td class="org-right">35</td>
</tr>

<tr>
<td class="org-right">2016-04-11</td>
<td class="org-right">40</td>
</tr>

<tr>
<td class="org-right">2016-04-04</td>
<td class="org-right">42</td>
</tr>

<tr>
<td class="org-right">2016-03-28</td>
<td class="org-right">47</td>
</tr>

<tr>
<td class="org-right">2016-03-21</td>
<td class="org-right">42</td>
</tr>

<tr>
<td class="org-right">2016-03-14</td>
<td class="org-right">93</td>
</tr>

<tr>
<td class="org-right">2016-02-22</td>
<td class="org-right">72</td>
</tr>

<tr>
<td class="org-right">2016-02-15</td>
<td class="org-right">55</td>
</tr>

<tr>
<td class="org-right">2016-02-15</td>
<td class="org-right">55</td>
</tr>

<tr>
<td class="org-right">2016-02-08</td>
<td class="org-right">57</td>
</tr>

<tr>
<td class="org-right">2016-02-01</td>
<td class="org-right">55</td>
</tr>

<tr>
<td class="org-right">2016-01-25</td>
<td class="org-right">55</td>
</tr>

<tr>
<td class="org-right">2016-01-18</td>
<td class="org-right">37</td>
</tr>

<tr>
<td class="org-right">2016-01-11</td>
<td class="org-right">51</td>
</tr>

<tr>
<td class="org-right">2015-12-28</td>
<td class="org-right">55</td>
</tr>

<tr>
<td class="org-right">2015-12-21</td>
<td class="org-right">33</td>
</tr>

<tr>
<td class="org-right">2015-12-14</td>
<td class="org-right">45</td>
</tr>

<tr>
<td class="org-right">2015-12-07</td>
<td class="org-right">50</td>
</tr>

<tr>
<td class="org-right">2015-11-30</td>
<td class="org-right">56</td>
</tr>

<tr>
<td class="org-right">2015-11-23</td>
<td class="org-right">47</td>
</tr>

<tr>
<td class="org-right">2015-11-16</td>
<td class="org-right">54</td>
</tr>

<tr>
<td class="org-right">2015-11-09</td>
<td class="org-right">40</td>
</tr>

<tr>
<td class="org-right">2015-11-02</td>
<td class="org-right">25</td>
</tr>

<tr>
<td class="org-right">2015-10-26</td>
<td class="org-right">32</td>
</tr>
</tbody>
</table>


</details>
<div><a href="https://sachachua.com/blog/2026/10/analyzing-emacs-news/index.org">View Org source for this post</a></div>
<p>You can <a href="mailto:sacha@sachachua.com?subject=Comment%20on%20https%3A%2F%2Fsachachua.com%2Fblog%2F2026%2F10%2Fanalyzing-emacs-news%2F&body=Name%20you%20want%20to%20be%20credited%20by%20(if%20any)%3A%20%0AMessage%3A%20%0ACan%20I%20share%20your%20comment%20so%20other%20people%20can%20learn%20from%20it%3F%20Yes%2FNo%0A">e-mail me at sacha@sachachua.com</a>.</p>]]></description>
		<dc:creator>Sacha Chua</dc:creator><enclosure length="18045" type="application/octet-stream" url="https://sachachua.com/blog/2026/10/analyzing-emacs-news/index.org"/></item><item>
		<title>Upcoming chat with linkarzu about using Emacs for 25 years</title>
		<link>https://sachachua.com/blog/2026/10/upcoming-chat-with-linkarzu-about-using-emacs-for-25-years/</link>
		
		<pubDate>Sat, 24 Oct 2026 13:39:16 GMT</pubDate>
    <category>community</category>
<category>emacs</category>
		<guid isPermaLink="false">https://sachachua.com/blog/2026/10/upcoming-chat-with-linkarzu-about-using-emacs-for-25-years/</guid>
		<description><![CDATA[<div class="update" id="org7534346">
<ul class="org-ul">
<li><span class="timestamp-wrapper"><time class="timestamp" datetime="2026-10-26">[2026-10-26 Mon]</time></span>: Added more notes based on topics in the description</li>
<li><span class="timestamp-wrapper"><time class="timestamp" datetime="2026-10-25">[2026-10-25 Sun]</time></span>: Ha, I accidentally left in some raw transcription output. Serves me right for not scrolling down.</li>
</ul>
<p>
Also, I've added a summary image.
</p>

</div>

<p>
I'm going to be chatting with <a href="https://linkarzu.com/">linkarzu</a> about Emacs and life.
He's more of a Vim person than an Emacs person, so I'll try to share things that are generally useful. He's called it: "Why Sacha Chua Still Lives in Emacs After 20+ Years."
</p>

<p>
</p><div class="yt-video"><iframe width="456" height="315" title="YouTube video player" src="https://www.youtube-nocookie.com/embed/BlgtfOsXgCs?enablejsapi=1" frameborder="0" allowfullscreen=""></iframe><a href="https://www.youtube.com/watch?v=BlgtfOsXgCs">Watch on YouTube</a></div>
<p></p>

<p>
I am not sure my eyebrows have ever done that, but linkarzu does like his AI-generated thumbnails, so we'll let that pass. =)
</p>

<p>
<span class="timestamp-wrapper"><time class="timestamp" datetime="2026-10-29T08:00:00-0400">[2026-10-29 Thu 08:00]</time></span> (America/Toronto, -0400) = Thu Oct 29 0800H EDT / 0700H CDT / 0600H MDT / 0500H PDT / 1200H UTC / 1300H CET / 1400H EET / 1730H IST / 2000H +08 / 2100H JST
</p>

<p>
His description:
</p>

<blockquote>
<p>
Sacha Chua joins me to talk about Emacs. She has been living in it for
decades, and she shares the Emacs world with all of us through Emacs News,
Emacs Chat and EmacsConf.
</p>

<p>
I want to see how she runs her life in Org Mode and how she uses her speech and audio braindump workflows, and to ask her what she thinks of what Prot and I have been doing with Emacs.
</p>

<p>
We'll also be discussing Neovim and other usual tech related topics
</p>
</blockquote>

<p>
As a backup and so that it shows up on my YouTube feed, it's also going to be streamed at:
</p>

<p>
</p><div class="yt-video"><iframe width="456" height="315" title="YouTube video player" src="https://www.youtube-nocookie.com/embed/czhp_oFx1po?enablejsapi=1" frameborder="0" allowfullscreen=""></iframe><a href="https://youtube.com/live/czhp_oFx1po">Watch on YouTube</a></div>
<p></p>

<p>
(but watch it on his channel instead for the stats boost!)
</p>

<p>
<b>Note: Both videos will become unlisted afterwards.</b> I think that means you'll still be able to reach it from my blog post or from a direct link, but you won't see it on his channel or mine, at least until he posts the edited video publicly. Also, to encourage people to sign up for his memberships (and to keep things more focused during the conversation), Linkarzu limits chat during the livestream to members of his channel. That's totally fine, he's allowed to experiment with ways to make a living, so please don't give him any grief about it. =) If you have any questions about what we talk about, or would like to continue the conversation, feel free to leave a comment or email me at <a href="mailto:sacha@sachachua.com">sacha@sachachua.com</a> and I will check it afterwards.
</p>

<p>
I like making things available and searchable long-term.
I plan to post the transcript of either the full conversation or excerpts of it on my blog, and I'll probably also post screenshots or clips of the video or audio where it makes sense.
It might be something like the transcript I posted in <a href="https://sachachua.com/blog/2026/07/chatting-with-john-wiegley-about-personal-information-management-and-karthik-chikmagalur/">Chatted with John Wiegley and Karthik Chikmagalur about personal information management</a>.
</p>

<p>
I am looking forward to learning more about the NeoVim community.
I think the NeoVim community does the YouTube thing really well, and
I'm hoping that the new <a href="https://org-nvim.com/">org.nvim</a> stuff might encourage people to do
more literate programming and blogging.
<a href="https://sachachua.com/blog/2026/10/upcoming-chat-with-linkarzu-about-using-emacs-for-25-years/">I put together some notes on my Emacs history</a>, building on from the
title that Linkarzu put on his event ("Why Sacha Chua Still Lives in
Emacs After 20+ Years").
I'll probably add a little bit more over the next two days.
I am more curious about where the conversation can take us rather than
switching into presentation mode, since I can write blog posts and
make videos whenever I want. =)
</p>

<p>
I put together some sketches to help me organize my thoughts.
His channel uses dark mode, so let's experiment with dark mode in my sketches too.
I want to think about things so that the relevant resources are readily available and so that I can express myself more concisely.
I can put together a presentation or write a blog post by myself, so I'm more curious about the kinds of things he wants to explore in the conversation.
</p>
<div id="outline-container-upcoming-chat-with-linkarzu-about-using-emacs-for-25-years-about-me" class="outline-3">
<h3 id="upcoming-chat-with-linkarzu-about-using-emacs-for-25-years-about-me"><a href="https://sachachua.com/blog/feed/index.xml#upcoming-chat-with-linkarzu-about-using-emacs-for-25-years-about-me">About me</a></h3>
<div class="outline-text-3" id="text-upcoming-chat-with-linkarzu-about-using-emacs-for-25-years-about-me">
<p>
I'll probably need to do a brief introduction to set the context
so that people know where I'm coming from.
Let's disclaim my professional irrelevance up front.
</p>

<p>
</p><div class="sketch-full"><a class="photoswipe" href="https://sketches.sachachua.com/filename/2026-10-24-03%20About%20me%20&#45;&#45;%20life%20darkmode.svg" data-src="https://sketches.sachachua.com/static/2026-10-24-03%20About%20me%20&#45;&#45;%20life%20darkmode.svg" data-title="2026-10-24-03 About me &#45;&#45; life darkmode.svg" data-w="791" data-h="559"><picture>
      <img src="https://sketches.sachachua.com/static/2026-10-24-03%20About%20me%20&#45;&#45;%20life%20darkmode.svg" width="791" height="559" alt="2026-10-24-03 About me &#45;&#45; life darkmode.svg" class="dark" loading="lazy" style="max-height: 90vw; height: auto; width: auto" decoding="async">
      <figcaption>2026-10-24-03 About me &#45;&#45; life darkmode.svg</figcaption>
    </picture></a></div>
<p></p>

<details class="code-details"><summary>Image text and links</summary>
<p>
About me
2026-10-24-03
</p>

<ul class="org-ul">
<li><a href="https://sachachua.com">sachachua.com</a> (since 2001 :) )</li>
<li><a href="https://sachachua.com/blog/category/emacs-news">Emacs News</a></li>
<li><a href="https://planet.emacslife.com">planet.emacslife.com</a></li>
<li><a href="https://emacsconf.org/organizers-notebook/">EmacsConf</a></li>
<li>Where: Manila, Philippines to Toronto, Canada in 2005</li>
<li>Now:
<ul class="org-ul">
<li>Continuing with hanging out with A+ (kiddo) and W- (husband)</li>
<li>Experimenting with retirement</li>
</ul></li>
<li>Previously: web prototypes, data analysis, sketchnoting, computer science</li>
<li>Currently tinkering with: learning French, hybrid speech interfaces, community sharing</li>
</ul>


</details>

<p>
It turns out that I've been using Emacs for at least 25 years, which is pretty cool. I am 43, so that's more than half my life.
</p>
</div>
</div>
<div id="outline-container-upcoming-chat-with-linkarzu-about-using-emacs-for-25-years-quick-notes-on-the-stuff-he-mentioned-in-the-description" class="outline-3">
<h3 id="upcoming-chat-with-linkarzu-about-using-emacs-for-25-years-quick-notes-on-the-stuff-he-mentioned-in-the-description"><a href="https://sachachua.com/blog/feed/index.xml#upcoming-chat-with-linkarzu-about-using-emacs-for-25-years-quick-notes-on-the-stuff-he-mentioned-in-the-description">Quick notes on the stuff he mentioned in the description</a></h3>
<div class="outline-text-3" id="text-upcoming-chat-with-linkarzu-about-using-emacs-for-25-years-quick-notes-on-the-stuff-he-mentioned-in-the-description">
<ul class="org-ul">
<li>How I run my life in Org Mode
<ul class="org-ul">
<li>Capture into an inbox on my computer or on my phone (Orgzly Revived + Syncthing),</li>
<li>Agenda on either Orgzly or my computer.</li>
<li>Several large files that I add a lot of ideas to and slowly chip away at when I have time. I'm still the primary parent for our ten-year-old. Although I have a little bit more focus time now that she (usually) attends virtual school, I still find myself capturing ideas and knowing that I will get to them maybe sometime over the next few years.</li>
</ul></li>

<li>It's a lot of fun to be able to make tiny improvements that add up.</li>

<li>Speech and audio brain dump workflow
<ul class="org-ul">
<li>On my computer
<ul class="org-ul">
<li>I use dictation to quickly grab some snippets.</li>
<li>I can put each sentence on its own line and then use Org Mode to move things around.</li>
<li>could demo: fill paragraph cycling, one sentence per line, paragraph mode,</li>
<li>For more complicated things, then I'll use Org Mode outlines or maybe start with some kind of sketch.</li>
<li>I also type too. It's nice to have that option, especially when there's code.</li>
<li><a href="https://sachachua.com/blog/2025/07/finding-the-shape-of-my-thoughts/">Finding the shape of my thoughts</a></li>
<li><a href="https://sachachua.com/blog/2026/10/dictating-blog-posts-into-emacs/">Dictating blog posts into Emacs</a></li>
<li><a href="https://sachachua.com/blog/2026/10/emacs-carnival-oct-2026-exploring-keys-and-voice-input-in-emacs/">Emacs Carnival Oct 2026: Exploring keys and voice input in Emacs</a>
<ul class="org-ul">
<li>Voice commands are great when you've run out of keyboard shortcuts or you can't remember them</li>
</ul></li>
</ul></li>
<li>On my phone
<ul class="org-ul">
<li><a href="https://sachachua.com/blog/2023/12/audio-braindump-workflow-tweaks-adding-org-mode-hyperlinks-to-recordings-based-on-keywords/">Audio braindump workflow tweaks: Adding Org Mode hyperlinks to recordings based on keywords</a>
<ul class="org-ul">
<li>I prefer this kind of thinking out loud at my computer, though, because being able to read and restructure the text right away helps me.</li>
</ul></li>
<li>My mobile use has shifted to <a href="https://sachachua.com/blog/2026/09/practising-french-pronunciation-on-the-go-experimenting-with-a-bluetooth-phone-controller-ring/">practising French</a> with my tongue twisters and audio recordings.</li>
</ul></li>
</ul></li>

<li>What I think of Linkarzu and Prot's conversations
<ul class="org-ul">
<li>It's totally okay if you want to stick with NeoVim. I'm looking forward to seeing what people come up with!</li>
<li>I think the discussions we can have about workflows can cross editor boundaries. =)</li>
</ul></li>
</ul>
</div>
</div>
<div id="outline-container-upcoming-chat-with-linkarzu-about-using-emacs-for-25-years-summary-of-other-important-things" class="outline-3">
<h3 id="upcoming-chat-with-linkarzu-about-using-emacs-for-25-years-summary-of-other-important-things"><a href="https://sachachua.com/blog/feed/index.xml#upcoming-chat-with-linkarzu-about-using-emacs-for-25-years-summary-of-other-important-things">Summary of other important things</a></h3>
<div class="outline-text-3" id="text-upcoming-chat-with-linkarzu-about-using-emacs-for-25-years-summary-of-other-important-things">
<p>
Let's start with a summary so that we don't worry about running out of time and so that people don't have to listen to two hours before getting to the good stuff.
I want people to be able to get something out of this, whether they're a Vim diehard or experimenting with Helix, or even if they're passionate about things other than text editors.
Here are some of the things I'm learning about that I think are important.
</p>

<p>
</p><div class="sketch-full"><a class="photoswipe" href="https://sketches.sachachua.com/filename/2026-10-24-08%20Some%20things%20that%20work%20really%20well%20&#45;&#45;%20emacs%20community%20darkmode.svg" data-src="https://sketches.sachachua.com/static/2026-10-24-08%20Some%20things%20that%20work%20really%20well%20&#45;&#45;%20emacs%20community%20darkmode.svg" data-title="2026-10-24-08 Some things that work really well &#45;&#45; emacs community darkmode.svg" data-w="791" data-h="559"><picture>
      <img src="https://sketches.sachachua.com/static/2026-10-24-08%20Some%20things%20that%20work%20really%20well%20&#45;&#45;%20emacs%20community%20darkmode.svg" width="791" height="559" alt="2026-10-24-08 Some things that work really well &#45;&#45; emacs community darkmode.svg" class="dark" loading="lazy" style="max-height: 90vw; height: auto; width: auto" decoding="async">
      <figcaption>2026-10-24-08 Some things that work really well &#45;&#45; emacs community darkmode.svg</figcaption>
    </picture></a></div>
<p></p>

<ul class="org-ul">
<li><b>Community:</b>
<ul class="org-ul">
<li>It's really hard to learn Emacs all by yourself. It's obscure, arcane, and overwhelming.
<ul class="org-ul">
<li><a href="https://web.archive.org/web/20080726054506/http://blogs.msdn.com/steverowe/archive/2004/11/17/code-editor-learning-curves.aspx">Steve Rowe's Blog : Code Editor Learning Curves</a></li>
<li><a href="https://www.reddit.com/r/emacs/comments/1uf0d2k/the_learning_cliff_and_the_view_from_the_top/">the learning cliff and the View from the Top</a></li>
</ul></li>
<li>Fortunately, we have a strong culture of sharing, starting with the GNU General Public License and continuing through things like literate programming. We have mailing lists, blog posts, videos, meetups, and conferences. One of the best ways to learn Emacs is to learn out loud. Another way is to look over someone's shoulder. It doesn't take a lot of time or money to do the kinds of things that I enjoy doing to connect the Emacs community, and I'd love to see other tech communities experiment with things like that too.
<ul class="org-ul">
<li><a href="https://sachachua.com/blog/2025/05/working-on-the-plumbing-in-a-small-web-community/">Working on the plumbing in a small web community</a></li>
</ul></li>
</ul></li>
<li><b>Adaptability:</b> You can customize Emacs to really fit the way you want to work. The more people do this, the easier it gets to adapt Emacs to even more workflows.</li>
<li><b>Incremental improvements:</b> Even small changes add up, and code turns out to be surprisingly reusable. It often pays off beyond the recommendations of <a href="https://xkcd.com/1205/">xkcd: Is It Worth the Time?</a>.</li>
<li><b>Imagination and play:</b> Tweaking Emacs can be lots of fun. Fun is important.</li>
</ul>


<p>
Quick notes on the stuff he mentioned in the description:
</p>

<ul class="org-ul">
<li>How I run my life in Org Mode
<ul class="org-ul">
<li>Capture into an inbox on my computer or on my phone (Orgzly Revived + Syncthing),</li>
<li>Agenda on either Orgzly or my computer.</li>
<li>Several large files that I add a lot of ideas to and slowly chip away at when I have time. I'm still the primary parent for our ten-year-old. Although I have a little bit more focus time now that she (usually) attends virtual school, I still find myself capturing ideas and knowing that I will get to them maybe sometime over the next few years.</li>
</ul></li>
<li>It's a lot of fun to be able to make tiny improvements that add up.</li>
<li>Speech and audio brain dump workflow
<ul class="org-ul">
<li>On my computer
<ul class="org-ul">
<li>I use dictation to quickly grab some snippets.</li>
<li>I can put each sentence on its own line and then use Org Mode to move things around.</li>
<li>For more complicated things, then I'll use Org Mode outlines or maybe start with some kind of sketch.</li>
<li>I also type too. It's nice to have that option, especially when there's code.</li>
<li><a href="https://sachachua.com/blog/2025/07/finding-the-shape-of-my-thoughts/">Finding the shape of my thoughts</a></li>
<li><a href="https://sachachua.com/blog/2026/10/dictating-blog-posts-into-emacs/">Dictating blog posts into Emacs</a></li>
<li><a href="https://sachachua.com/blog/2026/10/emacs-carnival-oct-2026-exploring-keys-and-voice-input-in-emacs/">Emacs Carnival Oct 2026: Exploring keys and voice input in Emacs</a>
<ul class="org-ul">
<li>Voice commands are great when you've run out of keyboard shortcuts or you can't remember them</li>
</ul></li>
</ul></li>
<li>On my phone
<ul class="org-ul">
<li><a href="https://sachachua.com/blog/2023/12/audio-braindump-workflow-tweaks-adding-org-mode-hyperlinks-to-recordings-based-on-keywords/">Audio braindump workflow tweaks: Adding Org Mode hyperlinks to recordings based on keywords</a>
<ul class="org-ul">
<li>I prefer this kind of thinking out loud at my computer, though, because being able to read and restructure the text right away helps me.</li>
</ul></li>
<li>My mobile use has shifted to <a href="https://sachachua.com/blog/2026/09/practising-french-pronunciation-on-the-go-experimenting-with-a-bluetooth-phone-controller-ring/">practising French</a> with my tongue twisters and audio recordings.</li>
</ul></li>
</ul></li>
<li>What I think of Linkarzu and Prot's conversations
<ul class="org-ul">
<li>It's totally okay if you want to stick with NeoVim. I'm looking forward to seeing what people come up with!</li>
<li>I think the discussions we can have about workflows can cross editor boundaries. =)</li>
</ul></li>
</ul>
</div>
</div>
<div id="outline-container-upcoming-chat-with-linkarzu-about-using-emacs-for-25-years-history" class="outline-3">
<h3 id="upcoming-chat-with-linkarzu-about-using-emacs-for-25-years-history"><a href="https://sachachua.com/blog/feed/index.xml#upcoming-chat-with-linkarzu-about-using-emacs-for-25-years-history">History</a></h3>
<div class="outline-text-3" id="text-upcoming-chat-with-linkarzu-about-using-emacs-for-25-years-history">
<p>
Here's a brief overview of my history with Emacs, in case anything sparks curiosity.
</p>

<p>
</p><div class="sketch-full"><a class="photoswipe" href="https://sketches.sachachua.com/filename/2026-10-24-01%2025%20years%20of%20growing%20with%20Emacs%20&#45;&#45;%20community%20emacs%20life%20darkmode.svg" data-src="https://sketches.sachachua.com/static/2026-10-24-01%2025%20years%20of%20growing%20with%20Emacs%20&#45;&#45;%20community%20emacs%20life%20darkmode.svg" data-title="2026-10-24-01 25 years of growing with Emacs &#45;&#45; community emacs life darkmode.svg" data-w="1054" data-h="745"><picture>
      <img src="https://sketches.sachachua.com/static/2026-10-24-01%2025%20years%20of%20growing%20with%20Emacs%20&#45;&#45;%20community%20emacs%20life%20darkmode.svg" width="1054" height="745" alt="2026-10-24-01 25 years of growing with Emacs &#45;&#45; community emacs life darkmode.svg" class="dark" loading="lazy" style="max-height: 90vw; height: auto; width: auto" decoding="async">
      <figcaption>2026-10-24-01 25 years of growing with Emacs &#45;&#45; community emacs life darkmode.svg</figcaption>
    </picture></a></div>
<p></p>

<p>
The details are a little bit fuzzy, but fortunately I've written about some things in previous blog posts. I'd like to flesh this out with an outline and maybe even some sentences or paragraphs later on.
I love the way that different themes recur. I find myself building on things that I started exploring years ago.
For example, my current interest in hybrid speech interfaces echoes all the way back to M-x doctor and Emacspeak from the beginning.
</p>

<ul class="org-ul">
<li>M-x doctor:
<ul class="org-ul">
<li><p>
From "Unix Power Tools":
</p>
<blockquote>
<p>
If you have time to waste (and I mean <i>really</i> waste), Emacs has things to keep you occupied. &hellip; If you think you might be in need of a psychotherapist, save your money and try ESC-x doctor RETURN.
</p>
</blockquote>
<p>
I was not actually looking for a psychotherapist.
I think I was seventeen or eighteen, and I was trying to go through all the interesting computer science books in my university's library in the Philippines. I thought it was funny that someone put in that kind of Easter egg. The more I dug around in the source code, the more I was amazed by the things that people had added to Emacs. Anyway, it's interesting how the fun, inconsequential stuff turned out to be the thing that caught my attention.
</p></li>
</ul></li>
<li>Planner Mode: <a href="https://sachachua.com/blog/2008/01/how-i-got-hooked/">How I got hooked</a>
<ul class="org-ul">
<li>I loved seeing how people customized Emacs in so many different ways to fit the way that their particular brain worked, and getting it to fit my brain too.</li>
<li>One time, when I was the maintainer of Planner Mode, I got an email from someone who said something like: "Thank you for maintaining this. By the way, one of your recent changes lost my data and I didn't have any backups, but that's okay, just please fix it, here are some ideas." That kindness mattered a lot to me.</li>
</ul></li>
<li>Emacspeak:
<ul class="org-ul">
<li>In my third or fourth year of university, my laptop screen started glitching. Sometimes it got really low in brightness and contrast, and you could only read it if you tilted it at an extreme angle and looked very carefully. But the Emacspeak folks had figured out how to make it perfectly usable just with speech synthesis, because they needed that as blind or visually impaired users. This turned out to be pretty handy. I not only used that for a fair chunk of my regular writing and coding, but also for my experiments with wearable computing, and for the <a href="https://sachachua.com/blog/2003/02/emacspeak-and-irc-linux/">occasional alert</a> when I was paying attention to something else. Speech synthesis was a lot more discreet than the <a href="https://sachachua.com/blog/wp-content/uploads/2013/05/sacha-014.jpg">head-mounted display</a> that I experimented with in 2003.</li>
</ul></li>
<li>flashcard.el:
<ul class="org-ul">
<li>The fun part about this was rigging up my flashcard.el so that it would show me funny cat pictures from ICanHasCheezburger when I answered enough questions correctly. Fun matters.</li>
<li><a href="https://sachachua.com/blog/2005/01/japanese-flashcards/">Japanese flashcards</a></li>
<li><a href="https://sachachua.com/blog/2005/01/more-emacs-evangelization-flashcard/">More Emacs evangelization: flashcard</a></li>
</ul></li>
<li>ledger:
<ul class="org-ul">
<li><a href="https://sachachua.com/blog/2014/11/keeping-financial-score-ledger/">Keeping (financial) score with Ledger</a></li>
<li><a href="https://sachachua.com/blog/2009/04/my-financial-network-map-and-virtual-envelope-system/">My financial network map and virtual envelope system</a></li>
</ul></li>
<li>Org Mode: <a href="https://sachachua.com/blog/2010/09/new-note-taking-workflow-with-emacs-org-mode/">New note-taking workflow with Emacs Org-mode</a>
<ul class="org-ul">
<li>I started using Org Mode as part of research for a book on Emacs. I didn't finish the book, but I stuck with Org Mode. I like the way it fits the way I think and what I want to do.</li>
</ul></li>
<li>Work: <a href="https://sachachua.com/blog/category/drupal/all/">Drupal</a>, <a href="https://sachachua.com/blog/category/rails/all/">Rails</a>, blogging, data analysis, literate programming</li>
<li>Semi-retirement:
<ul class="org-ul">
<li><a href="https://sachachua.com/blog/2017/03/what-did-i-learn-from-this-experiment-with-semi-retirement/">What did I learn from this experiment with semi-retirement?</a></li>
<li><a href="https://sachachua.com/blog/2026/10/continuing-my-experiment-with-semi-retirement/">Continuing my experiment with (semi-)retirement</a></li>
<li><a href="https://sachachua.com/blog/category/experiment/all/">category - experiment</a></li>
</ul></li>
<li><a href="https://emacsconf.org/organizers-notebook/">EmacsConf</a>
<ul class="org-ul">
<li>I helped organize the first one in 2013 in London.
I watched the 2015 one remotely.
Amin Bandali reached out to me in 2019 to get EmacsConf going again, and we've been organizing it yearly since.</li>
<li><a href="https://sachachua.com/blog/2023/12/analyzing-my-emacs-time-over-the-last-11-years-or-so/">Analyzing my Emacs time over the last 11 years or so</a></li>
</ul></li>
<li><a href="https://sachachua.com/blog/category/emacs-chat/all/">Emacs Chat</a></li>
<li><a href="https://sachachua.com/blog/category/emacs-news">Emacs News</a>: Great way to see all the cool things that people are working on
<ul class="org-ul">
<li><a href="https://sachachua.com/blog/2026/10/analyzing-emacs-news/">Analyzing Emacs News: 564 posts over 11 years, &gt; 34k items, ~60/post</a></li>
</ul></li>
<li>Parenting:
<ul class="org-ul">
<li><a href="https://sachachua.com/blog/2023/12/braindump-from-radiostudent-si-interview-with-lio-novelli-and-jurij-podgorsek-emacs-focused-time/">Braindump from radiostudent.si interview with Lio Novelli and Jurij Podgorsek: Emacs, focused time</a> - parenting, using fragmented time</li>
<li>Orgzly Revived helped me stay sane by capturing ideas and making it easy to postpone them for years.</li>
<li>Incremental improvements in fragments of time</li>
</ul></li>
<li>Captions: I can even use them to edit videos and audio files in Emacs
<ul class="org-ul">
<li><a href="https://sachachua.com/blog/2020/12/editing-subtitles-in-emacs-with-subed-with-synchronized-video-playback-through-mpv/">Editing subtitles in Emacs with subed, with synchronized video playback through mpv</a></li>
<li><a href="https://sachachua.com/blog/category/subed/all/">category - subed</a></li>
</ul></li>
<li>SVGs:
<ul class="org-ul">
<li><a href="https://sachachua.com/blog/2023/09/emacsconf-backstage-scheduling-with-svgs/">EmacsConf backstage: scheduling with SVGs</a></li>
<li><a href="https://sachachua.com/blog/2026/10/visualizing-the-balance-of-speaking-in-my-french-conversations-with-tutors/">Visualizing the balance of speaking in my French conversations with tutors</a></li>
<li><a href="https://sachachua.com/blog/2026/10/using-emacs-to-visualize-speaking-and-target-words-phrases-in-real-ish-time/">Using Emacs to visualize speaking and target words/phrases in real-ish time</a></li>
</ul></li>
<li>Minecraft, cubing
<ul class="org-ul">
<li>The kiddo wanted to play Minecraft, but she wasn't comfortable enough with typing yet, so I made her some command books so that she could just click on things in order to teleport back to us or give herself equipment. Now she can type very quickly, but it was helpful back then.
<ul class="org-ul">
<li><a href="https://sachachua.com/blog/2023/04/updating-my-minecraft-command-book-using-emacs-tramp-and-mcf-el/">Updating my Minecraft command book using Emacs, TRAMP, and mcf.el</a></li>
<li><a href="https://sachachua.com/blog/2023/04/using-org-mode-tables-and-emacs-lisp-to-create-minecraft-java-json-command-books/">Using Org Mode tables and Emacs Lisp to create Minecraft Java JSON command books</a></li>
</ul></li>
<li>Rubik's cubes:
<ul class="org-ul">
<li><a href="https://sachachua.com/blog/2023/02/using-org-babel-to-learn-rubik-s-cube-algorithms/">Using Org Babel to learn Rubik's cube algorithms</a></li>
</ul></li>
</ul></li>
<li><a href="https://sachachua.com/blog/category/yay-emacs/">Streaming</a></li>
<li><a href="https://sachachua.com/topic/french/#mes-outils">French</a>, LLMs</li>
<li><a href="https://sachachua.com/blog/category/speech/">Speech</a>: speech recognition, speech synthesis, hybrid speech interfaces
<ul class="org-ul">
<li><a href="https://www.youtube.com/live/HrvyY1x3lg4?t=70">M-x doctor demonstration</a></li>
<li><a href="https://sachachua.com/blog/2026/10/emacs-carnival-oct-2026-exploring-keys-and-voice-input-in-emacs/">Emacs Carnival Oct 2026: Exploring keys and voice input in Emacs</a></li>
</ul></li>
</ul>
</div>
</div>
<div id="outline-container-upcoming-chat-with-linkarzu-about-using-emacs-for-25-years-large-language-models-and-artificial-intelligence" class="outline-3">
<h3 id="upcoming-chat-with-linkarzu-about-using-emacs-for-25-years-large-language-models-and-artificial-intelligence"><a href="https://sachachua.com/blog/feed/index.xml#upcoming-chat-with-linkarzu-about-using-emacs-for-25-years-large-language-models-and-artificial-intelligence">Large language models and artificial intelligence</a></h3>
<div class="outline-text-3" id="text-upcoming-chat-with-linkarzu-about-using-emacs-for-25-years-large-language-models-and-artificial-intelligence">
<p>
linkarzu mentioned wanting to talk about artificial intelligence.
I don't know nearly as much as lots of other people do.
Maybe I can just share <a href="https://sachachua.com/blog/category/ai/">the things that I've been experimenting with</a>, and also what I care about from a community perspective.
I would like to help figure out how to deal with this turbulence and come out the other side happier.
</p>

<p>
</p><div class="sketch-full"><a class="photoswipe" href="https://sketches.sachachua.com/filename/2026-10-24-02%20Large%20language%20models%20and%20other%20things%20&#45;&#45;%20llm%20ai%20darkmode.svg" data-src="https://sketches.sachachua.com/static/2026-10-24-02%20Large%20language%20models%20and%20other%20things%20&#45;&#45;%20llm%20ai%20darkmode.svg" data-title="2026-10-24-02 Large language models and other things &#45;&#45; llm ai darkmode.svg" data-w="791" data-h="559"><picture>
      <img src="https://sketches.sachachua.com/static/2026-10-24-02%20Large%20language%20models%20and%20other%20things%20&#45;&#45;%20llm%20ai%20darkmode.svg" width="791" height="559" alt="2026-10-24-02 Large language models and other things &#45;&#45; llm ai darkmode.svg" class="dark" loading="lazy" style="max-height: 90vw; height: auto; width: auto" decoding="async">
      <figcaption>2026-10-24-02 Large language models and other things &#45;&#45; llm ai darkmode.svg</figcaption>
    </picture></a></div>
<p></p>

<details class="code-details"><summary>Text from sketch</summary>
<p>
Large language models and other things
2026-10-24-02
</p>

<ul class="org-ul">
<li>Y'all know much more than I do. You have more at stake.</li>
<li>Me: tiny steps, using it for tightly scoped tools
<ul class="org-ul">
<li>grammar/fixing literal translations, explanations</li>
<li>troubleshooting</li>
<li>prototypes (ex: Python servers)</li>
</ul></li>
<li>Next:
<ul class="org-ul">
<li>help people who want to connect and experiment
<ul class="org-ul">
<li>human-focused</li>
<li>LLM-assisted (only if you want)</li>
</ul></li>
</ul></li>
<li>Keep exploring what I'm curious about: experiments &gt; hype</li>
<li>Yay:
<ul class="org-ul">
<li>more people learning about and customizing things</li>
<li>more capable local models</li>
<li>adding up fragments of time</li>
</ul></li>
<li>Boo:
<ul class="org-ul">
<li>flood of slop, "content", spam</li>
<li>overwhelmed developers</li>
<li>centralization</li>
<li>polarization</li>
<li>externalized costs</li>
<li>non-deterministic</li>
</ul></li>
</ul>


</details>
</div>
</div>
<div><a href="https://sachachua.com/blog/2026/10/upcoming-chat-with-linkarzu-about-using-emacs-for-25-years/index.org">View Org source for this post</a></div>
<p>You can <a href="mailto:sacha@sachachua.com?subject=Comment%20on%20https%3A%2F%2Fsachachua.com%2Fblog%2F2026%2F10%2Fupcoming-chat-with-linkarzu-about-using-emacs-for-25-years%2F&body=Name%20you%20want%20to%20be%20credited%20by%20(if%20any)%3A%20%0AMessage%3A%20%0ACan%20I%20share%20your%20comment%20so%20other%20people%20can%20learn%20from%20it%3F%20Yes%2FNo%0A">e-mail me at sacha@sachachua.com</a>.</p>]]></description>
		<dc:creator>Sacha Chua</dc:creator><enclosure length="11272" type="application/octet-stream" url="https://sachachua.com/blog/2026/10/upcoming-chat-with-linkarzu-about-using-emacs-for-25-years/index.org"/></item><item>
		<title>Dictating blog posts into Emacs</title>
		<link>https://sachachua.com/blog/2026/10/dictating-blog-posts-into-emacs/</link>
		
		<pubDate>Thu, 22 Oct 2026 19:13:18 GMT</pubDate>
    <category>emacs</category>
<category>speech-recognition</category>
		<guid isPermaLink="false">https://sachachua.com/blog/2026/10/dictating-blog-posts-into-emacs/</guid>
		<description><![CDATA[<p>
<a href="https://mtwb.blog/posts/2026/blogging/a-different-type-of-blog-post/">Matt is experimenting with dictating his blog posts.</a> He says:
</p>

<blockquote>
<p>
I write really well. I have very good grammatical skills, for the most part, when I’m typing. But when I speak, I don’t speak like that. My grammar is not very good. I say words out of order a lot. I have filler words. And I say things that don’t make any sense.
</p>
</blockquote>

<p>
This is totally me too!
It's one of the reasons why I want to get used to dictation, because it'll give me a lot more practice in saying things, which can only help when I'm making videos or talking to people.
</p>

<blockquote>
<p>
While I’m talking, the text that’s outputted has no punctuation or paragraphs or anything like that.
</p>
</blockquote>

<p>
Oh yeah, no, that's mostly a matter of picking the right speech recognition engine.
For example, I'm using a local instance of <a href="https://sachachua.com/blog/2026/09/experimenting-with-orukeet-for-speech-recognition/">Orukeet</a>, and it seems to do a reasonable job of dividing my thoughts into properly-capitalized and punctuated sentences in both English and French.
In fact, I have some code in Emacs that wraps it to one sentence per line (as part of <a href="https://sachachua.com/dotemacs#multimedia-whisper">sacha-whisper-insert</a> which uses <a href="https://github.com/sachac/whisper.el/">sachac/whisper.el</a>).
This allows me to use Org shortcuts to move lines around in order to reorganize them into something that makes more sense.
</p>

<p>
Some people use large language models to clean up raw transcripts and remove false starts or filler words.
I don't quite trust large language models to leave my wording alone.
I have some code that uses <code>replace-regexp-in-string</code> to take out some of my filler words and fix commonly misrecognized words that I've saved with <code>substitute.el</code>.
</p>

<p>
I'm not sure if I was ever any good at multitasking, but nowadays at 43 years old, I find that talking and typing at the same time has gotten a little bit harder for me.
I type much more slowly if I want to narrate things at the same time,
like when I'm recording a video or live streaming.
When I'm just thinking on my own, I type quickly enough that my computer sometimes jumbles the keystrokes up because it doesn't handle keyboard interrupts well when it's busy.
It's not just my fingers; it sometimes happens even when I was trying to use wdotool to simulate typing.
Speech recognition is surprisingly reliable, even though I have to correct it from time to time.
The broad strokes are there, and I save the recordings so that I can fix misrecognized words.
</p>

<p>
I also love the way that speech recognition opens up so many more possibilities
for commands I would never be able to memorize keyboard shortcuts for. "Remind me today to&hellip;" is now one of my favourite ways to capture an Org Mode task.
</p>

<p>
Besides, I think it's a good idea to plan ahead just in case I can't type very well in the future. All sorts of things can happen: accidents, disease, old age.
I wrote about that a bit more in <a href="https://sachachua.com/blog/2026/10/emacs-carnival-oct-2026-exploring-keys-and-voice-input-in-emacs/">Emacs Carnival Oct 2026: Exploring keys and voice input in Emacs</a>.
</p>

<p>
All that to say: exciting times ahead.
I think it would be pretty amazing if this sort of thing allows more people to write and share.
Looking forward to reading (and possibly listening to) what people have been learning about!
</p>
<div><a href="https://sachachua.com/blog/2026/10/dictating-blog-posts-into-emacs/index.org">View Org source for this post</a></div>
<p>You can <a href="mailto:sacha@sachachua.com?subject=Comment%20on%20https%3A%2F%2Fsachachua.com%2Fblog%2F2026%2F10%2Fdictating-blog-posts-into-emacs%2F&body=Name%20you%20want%20to%20be%20credited%20by%20(if%20any)%3A%20%0AMessage%3A%20%0ACan%20I%20share%20your%20comment%20so%20other%20people%20can%20learn%20from%20it%3F%20Yes%2FNo%0A">e-mail me at sacha@sachachua.com</a>.</p>]]></description>
		<dc:creator>Sacha Chua</dc:creator><enclosure length="3828" type="application/octet-stream" url="https://sachachua.com/blog/2026/10/dictating-blog-posts-into-emacs/index.org"/></item>
	</channel>
</rss>