<?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>Sat, 04 Jul 2026 13:46:21 GMT</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>daily</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>11ty</generator>
  <item>
		<title>Semaine du 22 au 28 juin</title>
		<link>https://sachachua.com/blog/2026/07/semaine-du-22-au-28-juin/</link>
		
		<pubDate>Sat, 04 Jul 2026 13:46:21 GMT</pubDate>
    <category>french</category>
		<guid isPermaLink="false">https://sachachua.com/blog/2026/07/semaine-du-22-au-28-juin/</guid>
		<description><![CDATA[<div id="outline-container-org21092ac" class="outline-3">
<h3 id="org21092ac"><a href="https://sachachua.com/blog/feed/index.xml#org21092ac">lundi 22</a></h3>
<div class="outline-text-3" id="text-org21092ac">
<p>
L'école avait encore un remplaçant. J'ai dit à ma fille que j'avais besoin de temps pour la paperasse aujourd'hui, donc elle a participé à l'école virtuelle, quoique grincheuse. 
</p>

<p>
Après l'école, j'ai emmené ma fille à son dernier cours de gymnastique pour cette période. Cet été, elle veut continuer ce cours et ajouter un cours de gymnastique aérienne, donc je l'ai inscrite pour les deux. On va voir combien de fois elle voudra y aller. 
</p>

<p>
Une fois rentrées, je me suis dépêchée d'aller au supermarché pour acheter des aliments pour le dîner ce soir. 
</p>

<p>
Ma belle-fille et son ami nous ont rendu visite pour signer ma paperasse comme témoin. Nous leur avons servi des rouleaux de printemps et des nouilles vietnamiennes. On s'est régalés. Après le dîner, nous sommes allées au parc pour jouer à Pokemon Go (à l'exception de mon mari, qui est resté à la maison). 
</p>

<p>
J'ai mis à jour tous les documents pour l'assurance-vie Sunlife. La paperasse était un peu stressante, mais c'était nécessaire. Je pense que les entreprises d'assurance-vie le rendent plus difficile pour éviter d'avoir à payer. 
</p>

<p>
Je me suis réveillée en pleine nuit parce que j'ai eu un appel concernant la paperasse. L'entreprise de l'assurance-vie nous demande des signatures originales. Il faut que ma sœur m'envoie ses documents signés par courriel. Je vais ajouter mes signatures et je vais les envoyer à Manille. En même temps je dois corriger les documents avant que ma sœur les apporte à l'ambassade des Philippines pour les faire notarier avec deux témoins. 
</p>

<p>
C'était bien que j'aie vérifié les courriels de ma mère parce qu'il y avait un abonnement dont elle ne se souvenait pas. J'ai dû réinitialiser le mot de passe de ma mère pour annuler l'abonnement. 
</p>
</div>
</div>
<div id="outline-container-org195dac0" class="outline-3">
<h3 id="org195dac0"><a href="https://sachachua.com/blog/feed/index.xml#org195dac0">mardi 23</a></h3>
<div class="outline-text-3" id="text-org195dac0">
<p>
Je me suis levée à 04h00 pour aider ma sœur avec la paperasse. Heureusement, j'ai remarqué une erreur dans un document imprimé avant l'authentification. Après avoir fait ça, j'ai participé à un appel avec la banquière, l'agent de l'assurance-vie et notre responsable pour confirmer les détails pour le dépôt en banque. Je suis un peu fatiguée parce que c'est la deuxième nuit de mauvais sommeil de suite, mais ça en valait la peine. 
</p>

<p>
L'école avait encore un remplaçant, donc ma fille a voulu sécher les cours. J'ai prévenu l'école de son absence. 
</p>

<p>
Ma fille s'est barricadée dans sa chambre. Je ne suis pas sûre de la raison. &hellip; Elle est réapparue une fois que je lui ai demandé si elle voulait rejoindre ses amies. 
</p>

<p>
J'ai apporté un petit conteneur de crème glacée aux fraises au parc pour ma fille et ses amies. Il a été bien reçu. Ma fille était un peu surstimulée à cause du bruit et des questions répétées de son amie, donc elle s'est parfois isolée. 
</p>

<p>
Ma fille a perdu un de mes écouteurs à cause de sa colère contre moi. Elle me les avait empruntés pour gérer sa surstimulation en bloquant le bruit des amies. Elle est devenue grincheuse parce qu'elle avait voulu dîner dehors avec ses amies, mais elles ont eu d'autres projets. Elle est partie en trombe et elle s'est encore barricadée dans sa chambre. Je n'avais pas voulu lui poser de questions à ce sujet pendant qu'elle était grincheuse parce que je ne veux pas lui donner l'impression que l'écouteur est plus important pour moi qu'elle. Une fois qu'elle s'est déridée et que je lui ai demandé, elle avait oublié complètement où elle avait mis l'écouteur. Ça ne me dérange pas. C'est plus important qu'elle apprenne à gérer ce genre de situations sans honte. Je consacre une portion de mon budget à ce genre d'erreurs. Je pense que je peux continuer avec un seul écouteur car c'est ma manière préférée après tout, et elle peut choisir, acheter, et faire attention à ses propres écouteurs. 
</p>

<p>
Ma fille est réapparue une fois qu'elle a eu faim. Pendant un dîner tardif, elle s'est amusée en faisant des exercices mathématiques. 
</p>
</div>
</div>
<div id="outline-container-org9a932ef" class="outline-3">
<h3 id="org9a932ef"><a href="https://sachachua.com/blog/feed/index.xml#org9a932ef">mercredi 24</a></h3>
<div class="outline-text-3" id="text-org9a932ef">
<p>
Le bulletin de ma fille est arrivé. À mon grand soulagement, elle a obtenu des notes élevées dans toutes les matières, de B+ en danse à A+ en mathématiques. Son enseignant a aussi rempli le questionnaire sur le TDAH que je lui ai demandé. Il a remarqué quelques difficultés que ma fille semblait avoir. 
</p>

<p>
Ma fille et moi sommes allées au glacier en patinette pour célébrer mon travail sur la paperasse et son travail sur l'école virtuelle. Une fois qu'elle a fait sa commande, je lui ai demandé si elle pouvait vraiment finir une boule au chocolat toute seule. Elle a dit qu'elle pouvait le faire, du coup j'ai acheté ma propre boule à la pâte à biscuits aux pépites de chocolat. À mi-chemin, elle a dit qu'elle avait changé d'avis. Eh bien, ce n'était pas grave. Heureusement, j'ai commandé ma boule dans une tasse au lieu du cornet, donc je peux apporter le reste jusqu'à chez nous même si la crème glacée a fondu. La prochaine fois, nous partagerons une boule. 
</p>

<p>
J'ai participé à la réunion générale annuelle de la Bike Brigade, où j'ai posé une question sur les finances. Ils y ont répondu en les présentant. J'ai suggéré d'utiliser une portion des donations afin de  fournir des sacs aux organisations plutôt que demander aux bénévoles d'apporter les leurs. 
</p>

<p>
Ma fille a fait une carte d'anniversaire pour son amie en utilisant des crayons d'aquarelle. 
</p>

<p>
Dans notre monde de Donjons et Dragons, le nouveau personnage de ma fille (la magicienne tieffeline) et son amie Holga (ma guerrière) ont aidé quelqu'un dans la forêt qui avait été mordu par un rat géant. Elle a aussi gagné un concours de cuisine. Après le jeu, elle a dessiné la tourte aux pommes que son personnage a faite. 
</p>
</div>
</div>
<div id="outline-container-orgc965d31" class="outline-3">
<h3 id="orgc965d31"><a href="https://sachachua.com/blog/feed/index.xml#orgc965d31">jeudi 25</a></h3>
<div class="outline-text-3" id="text-orgc965d31">
<p>
Ma fille a eu sa dernière journée d'école de sa quatrième année. Ils ont regardé des vidéos. Elle se prélassait sur le canapé avec une couverture et du maïs soufflé. Nous avons regardé le reste du film Wild Robot. Son enseignant principal ne va pas revenir à l'école virtuelle l'année scolaire prochaine, mais son enseignant de français va continuer. J'espère que ses prochains enseignants seront gentils comme ceux-ci. 
</p>

<p>
J'ai écrit des fonctions pour copier mes entrées de journal et pour les mettre à jour. 
</p>

<p>
J'ai corrigé le code de mon journal pour inclure les entrées sans photos quand je les randomise. 
</p>

<p>
Ma fille a scrollé dans mes entrées de journal qui sont accompagnées de photos. Elle les a aimées. 
</p>

<p>
J'ai fait une promenade seule pendant que j'écoutais un podcast français. Je l'ai compris sans les sous-titres. 
</p>

<p>
Ma fille et moi avons joué à la pâte à modeler. J'ai abaissé la pâte et elle a fait des fleurs. 
</p>

<p>
Mon mari et ma fille ont construit un lit mezzanine de carton pour son mouton en peluche. 
</p>

<p>
Je suis ravie de voir les entrées récentes de Protesilaos en français. Moi, j'ai commencé à apprendre le français pour aider ma fille qui l'apprend à l'école. Une langue qui est limitée à la salle de classe ne peut pas prendre racine, particulièrement car le rythme de la classe est tellement plus lent qu'elle ne le voudrait. Maintenant, j'adore la sensation du progrès en écoutant et en parlant avec mes tuteurs et d'autres personnes. Ce sera merveilleux si je peux apprendre le français en parlant d'Emacs et d'autres sujets passionnants. 
</p>
</div>
</div>
<div id="outline-container-org72f5652" class="outline-3">
<h3 id="org72f5652"><a href="https://sachachua.com/blog/feed/index.xml#org72f5652">vendredi 26</a></h3>
<div class="outline-text-3" id="text-org72f5652">
<p>
Ma fille a aidé mon mari à peindre les balustrades du porche. Pour son travail, il lui a payé 4 dollars. 
</p>

<p>
J'ai eu une autre séance de conversation avec mon tuteur. J'aime beaucoup cette session parce que malgré mes hésitations sur l'expression orale, nous avons eu une conversation sur quelques sujets techniques comme des outils d'apprentissage des langues. Il a recommandé Lute qui est un serveur libre pour la gestion de la lecture. 
</p>

<p>
Ma fille et moi sommes allées au parc pour jouer avec son amie et le père de son amie. C'était une célébration de la fin de l'année scolaire et c'était aussi une petite fête d'anniversaire avancée pour son amie. Elle lui a donné un bracelet fait main comme cadeau. 
</p>

<p>
Pendant que ma fille jouait avec son amie et le père de son amie faisait courir sa chienne, j'écoutais des épisodes de podcasts pour les étudiants intermédiaires en français. 
</p>

<p>
Ma fille a encore lu les entrées de mon journal qui sont accompagnées de photos. Je devrais probablement mettre à jour mon système pour copier et réduire la taille des photos actuelles. 
</p>

<p>
Dans notre histoire improvisée de Donjons et Dragons, le personnage de
ma fille (la magicienne tieffeline) a rencontré un magicien nain
excentrique. Elle a aussi improvisé une histoire sur Clonker, l'ogre
que nous avons rencontré hier. 
</p>
</div>
</div>
<div id="outline-container-org05c5e3a" class="outline-3">
<h3 id="org05c5e3a"><a href="https://sachachua.com/blog/feed/index.xml#org05c5e3a">samedi 27</a></h3>
<div class="outline-text-3" id="text-org05c5e3a">
<p>
J'ai préparé des crêpes à la mangue pour le petit-déjeuner. 
</p>

<p>
Ma fille et moi avons fait du vélo jusqu'à l'événement communautaire près de la station de métro. Il y avait quelques vendeurs, un peu comme un grand vide-grenier pour les habitants des bâtiments. Ma fille a choisi un kit d'expériences scientifiques et un autocollant.  
</p>

<p>
Ma fille s'est amusée avec le sable hydrophobique.  
</p>

<p>
J'ai écouté des podcasts de Félix sur l'apprentissage du français. Dans l'épisode sur la valeur de lire des livres français, j'ai trouvé une astuce qui consiste à lire des livres professionnels parce qu'ils ont une tendance à utiliser le passé composé au lieu du passé simple qui est utilisé dans les livres plus littéraires comme Le petit prince. L'épisode sur des cours particuliers avec des tuteurs confirme ma décision d'investir dans cette façon de pratiquer l'expression orale. Je suis aussi d'accord avec un autre épisode qui plaide en faveur du vocabulaire plutôt qu'en faveur de la grammaire. 
</p>

<p>
Ma fille a aidé mon mari à peindre les contremarches d'escalier. Il lui a payé un dollar. 
</p>

<p>
Ma nièce m'a appelée parce que sa machine à coudre n'avait pas marché. Je lui ai conseillé de renfiler la machine. Une fois qu'elle l'a fait, la machine a bien fonctionné. 
</p>

<p>
Ma fille et moi avons joué à Donjons et Dragons. Elle a retrouvé le chaudron de Clonker (notre ami ogre) des Gobelins qui l'avait volé. Nous sommes aussi allées à la première caverne en compagnie de Clonker. Nous avons combattu facilement des mille-pattes géants et nous avons libéré le petit dragon des kobolds. 
</p>

<p>
J'ai fait les courses à vélo. J'ai préparé des grillades coréennes pour le dîner. 
</p>

<p>
J'étais très fatiguée et j'ai fait une sieste avant le dîner. 
</p>

<p>
J'ai appelé ma mère pour lui parler de l'assurance-vie, d'une caméra et de la nécessité d'une autre auxiliaire de vie. Ma mère était confuse au sujet de ma fille, qu'elle croyait que j'avais adoptée.  
</p>
</div>
</div>
<div id="outline-container-org38bfc59" class="outline-3">
<h3 id="org38bfc59"><a href="https://sachachua.com/blog/feed/index.xml#org38bfc59">dimanche 28</a></h3>
<div class="outline-text-3" id="text-org38bfc59">
<p>
J'ai configuré Lute sur mon serveur local et j'ai téléversé toutes mes entrées de journal jusqu'à ce moment. J'ai automatisé l'ajout de mes mots aux données. J'ai aussi importé des textes philosophiques comme De la brièveté de la vie.  
</p>

<p>
J'ai découvert que Google Photos ne me permet pas d'accéder à mes propres photos via l'API. J'ai créé un raccourci clavier pour faire pivoter une photo et pour avancer automatiquement à la suivante. Il a remplacé un processus qui demande au moins 5 clics.  
</p>

<p>
Ma fille et moi sommes allées à la piscine. Elle a travaillé sur la natation.  
</p>

<p>
Ma fille et moi avons mangé de la crème glacée.  
</p>

<p>
Ma fille a dépoussiéré Pokémon Jaune et elle y a joué. 
</p>
</div>
</div>
<div><a href="https://sachachua.com/blog/2026/07/semaine-du-22-au-28-juin/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%2F07%2Fsemaine-du-22-au-28-juin%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="48833" type="application/octet-stream" url="https://sachachua.com/blog/2026/07/semaine-du-22-au-28-juin/index.org"/></item><item>
		<title>Re: React to Sacha and Prot Newbies and Starter Kits Emacs Video - linkarzu</title>
		<link>https://sachachua.com/blog/2026/07/re-react-to-sacha-and-prot-newbies-and-starter-kits-emacs-video-linkarzu/</link>
		
		<pubDate>Fri, 03 Jul 2026 12:24:23 GMT</pubDate>
    <category>emacs</category>
<category>community</category>
		<guid isPermaLink="false">https://sachachua.com/blog/2026/07/re-react-to-sacha-and-prot-newbies-and-starter-kits-emacs-video-linkarzu/</guid>
		<description><![CDATA[<div class="update" id="org1c58ff0">
<p>
<span class="timestamp-wrapper"><time class="timestamp" datetime="2026-07-03">[2026-07-03 Fri]</time></span>: All right, quick video form of this post is at <a href="https://www.youtube.com/live/Ar4c0EU4rIs">Yay Emacs 35: Reacting to Linkarzu's reaction to my video with Prot about newbies and starter kits - YouTube</a> in case anyone wants. That's how it works, right? =)
</p>

</div>

<p>
Hey hey hey, now I'm linkarzu-famous. =) Linkarzu (Christian Arzu) posted a <a href="https://www.youtube.com/watch?v=q9nHArgkqMA">reaction video</a> to the first part of <a href="https://sachachua.com/blog/2026/04/yay-emacs-sacha-and-prot-talk-emacs-newbies-starter-kits/">YE24: Sacha and Prot Talk Emacs - Newbies/Starter Kits</a>. Here's his vid:
</p>

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

<p>
YouTube might be holding my comment for moderation because I tried to add too many links to it. I also realized my timestamps were off in my YT comment, so here it is along with other stuff I've just added.
</p>

<div class="sticky-toc" id="orgffee1ea">
<div id="text-table-of-contents" role="doc-toc">
<ul>
<li><a href="https://sachachua.com/blog/feed/index.xml#re-react-to-sacha-and-prot-newbies-and-starter-kits-emacs-video-linkarzu-on-my-newbies-starter-kits-chat-with-prot">On my Newbies/Starter Kits chat with Prot</a></li>
<li><a href="https://sachachua.com/blog/feed/index.xml#re-react-to-sacha-and-prot-newbies-and-starter-kits-emacs-video-linkarzu-learning-emacs-in-order-to-organize-your-life">Learning Emacs in order to organize your life</a></li>
<li><a href="https://sachachua.com/blog/feed/index.xml#re-react-to-sacha-and-prot-newbies-and-starter-kits-emacs-video-linkarzu-learning-emacs-with-people">Learning Emacs with people</a></li>
<li><a href="https://sachachua.com/blog/feed/index.xml#re-react-to-sacha-and-prot-newbies-and-starter-kits-emacs-video-linkarzu-reddit-links">Reddit links</a></li>
<li><a href="https://sachachua.com/blog/feed/index.xml#re-react-to-sacha-and-prot-newbies-and-starter-kits-emacs-video-linkarzu-timestamps">Timestamps</a></li>
<li><a href="https://sachachua.com/blog/feed/index.xml#re-react-to-sacha-and-prot-newbies-and-starter-kits-emacs-video-linkarzu-my-evil-plan">My evil plan</a></li>
</ul>
</div>

</div>
<div id="outline-container-re-react-to-sacha-and-prot-newbies-and-starter-kits-emacs-video-linkarzu-on-my-newbies-starter-kits-chat-with-prot" class="outline-3">
<h3 id="re-react-to-sacha-and-prot-newbies-and-starter-kits-emacs-video-linkarzu-on-my-newbies-starter-kits-chat-with-prot"><a href="https://sachachua.com/blog/feed/index.xml#re-react-to-sacha-and-prot-newbies-and-starter-kits-emacs-video-linkarzu-on-my-newbies-starter-kits-chat-with-prot">On my Newbies/Starter Kits chat with Prot</a></h3>
<div class="outline-text-3" id="text-re-react-to-sacha-and-prot-newbies-and-starter-kits-emacs-video-linkarzu-on-my-newbies-starter-kits-chat-with-prot">
<p>
It's definitely more of a meta-discussion (how can we make the
newcomer experience better?) than something directly focused on
helping newbies, but I hope you're getting something out of it. Think
of it like a live coaching session for me so that I can figure out
what to prioritize on my TODO list to make the newcomer experience
better, with some ideas and questions thrown out there in case other
people want to work on things too.
</p>
</div>
</div>
<div id="outline-container-re-react-to-sacha-and-prot-newbies-and-starter-kits-emacs-video-linkarzu-learning-emacs-in-order-to-organize-your-life" class="outline-3">
<h3 id="re-react-to-sacha-and-prot-newbies-and-starter-kits-emacs-video-linkarzu-learning-emacs-in-order-to-organize-your-life"><a href="https://sachachua.com/blog/feed/index.xml#re-react-to-sacha-and-prot-newbies-and-starter-kits-emacs-video-linkarzu-learning-emacs-in-order-to-organize-your-life">Learning Emacs in order to organize your life</a></h3>
<div class="outline-text-3" id="text-re-react-to-sacha-and-prot-newbies-and-starter-kits-emacs-video-linkarzu-learning-emacs-in-order-to-organize-your-life">
<blockquote>
<p>
<span class="media-time" data-start="8413.000">02:20:13</span> What do I want to do with Emacs? I think, like I've said it before, organize my life a little bit better. Try Org, pretty much. I don't care about Emacs for editing Markdown files. That wouldn't make sense, you know, because I can do that in Neovim quite well. And I don't want to replicate that in Emacs. That's just going to be a waste of time. Something that I don't do in Neovim. This is something that the professor said as well: Just use Emacs for something that you don't do in Neovim right now.
</p>
</blockquote>

<p>
If you want to learn Emacs so you can use it to organize your life,
there are more direct paths than my video about newbies/starter kits.
You might be just fine with the basic tutorial (<code>Ctrl+h t</code> within
Emacs), the <a href="https://orgmode.org/guide/">Org Mode compact guide</a>, maybe another Org Mode tutorial
that matches the way you think, and some time experimenting with the
basics until you figure out the kinds of things you'd like to improve.
The idea is to quickly get to the point where this is useful, and then
start using some of the time/energy saved to learn more. A simple
progression might start with something like this:
</p>

<ul class="org-ul">
<li><b>Opening</b>: Use Emacs to open and close your todo.org. No keyboard shortcuts needed, just open the file, type, and use the toolbar or menu bar to save. If you're in a console Emacs and you don't want to use the mouse, you can use F10 to open the menu.</li>
<li><b>Leaving Emacs open</b>: Realize you can save time by just leaving Emacs open with the file instead of opening/closing it all the time. This is probably more of a mindset change for Vim users. Set up your window manager so that you can switch to Emacs with a convenient keyboard shortcut. I use super+1.</li>
<li><b>Themes</b>? If the default theme gets on your nerves, figure out how to change it. <code>M-x customize-themes</code> is a good starting point. If you're not sure what that means, go through the tutorial (Help - Emacs Tutorial).</li>
<li><b>Keyboard shortcuts</b>: Get annoyed with using the toolbar or menu bar to save. Get the hang of <code>C-x C-s</code> (<code>save-buffer</code>). Start to get your mind used to the idea of keyboard shortcuts being different in different apps. Try not to give in to the temptation to make this <code>C-s</code> like in other apps. <code>C-s</code> is <code>isearch-forward</code>, which you will probably eventually find really useful, and if you move <i>that</i> you will end up needing to move whatever you are moving it to. Use sticky notes to remind yourself of the handful of keyboard shortcuts you're learning.</li>
<li><b>Basic Org Mode tutorial:</b> Read an Org Mode tutorial, maybe <a href="https://orgmode.org/worg/org-tutorials/org4beginners.html">this one</a>. Start with <code>* TODO ...</code> headings. You can manually type them. Change <code>TODO</code> to <code>DONE</code>. Again, this can be pretty manual.</li>
<li><b>Org markup</b>: Learn how to open links, make subheadings (<code>**</code>, <code>***</code>), etc.</li>
<li><b>Shift</b>: Get annoyed with manually typing TODO keywords. Experiment how to use shift left and shift right. (Might not work on console Emacs, depending on what keyboard shortcuts your terminal supports.)</li>
</ul>

<p>
Feel free to switch steps around depending on where the friction is.
Depending on what you want to do from here, you might want to learn
about <a href="https://orgmode.org/manual/Dates-and-Times.html">scheduling things</a> and <a href="https://orgmode.org/manual/Agenda-Views.html">displaying an agenda</a> or <a href="https://orgmode.org/manual/Capture.html">setting up capture</a>
(which gets even more useful as you do more things within Emacs, since
it can automatically pick up links to whatever you're looking at).
</p>

<p>
Also, along the way, it could be worth flipping through the
<a href="https://www.emacswiki.org/emacs/StarterKits">StarterKits page on the EmacsWiki</a> to see if one of those options
matches the way you think (totally optional), or maybe <a href="http://protesilaos.com/coaching">chat with Prot</a>
so he can help translate what you want into the keywords you can use
to find stuff or the priority to learn things in. <a href="https://www.emacswiki.org/emacs/Usergroups">Meetups are great
too</a>.
</p>
</div>
</div>
<div id="outline-container-re-react-to-sacha-and-prot-newbies-and-starter-kits-emacs-video-linkarzu-learning-emacs-with-people" class="outline-3">
<h3 id="re-react-to-sacha-and-prot-newbies-and-starter-kits-emacs-video-linkarzu-learning-emacs-with-people"><a href="https://sachachua.com/blog/feed/index.xml#re-react-to-sacha-and-prot-newbies-and-starter-kits-emacs-video-linkarzu-learning-emacs-with-people">Learning Emacs with people</a></h3>
<div class="outline-text-3" id="text-re-react-to-sacha-and-prot-newbies-and-starter-kits-emacs-video-linkarzu-learning-emacs-with-people">
<blockquote>
<ul class="org-ul">
<li><span class="media-time" data-start="2000.000">00:33:20</span> I need a daddy that holds my hand and guides me through the process. I'm lost. And chat is even way looser. Even more lost, you know, because they're like, try Doom, try Evil and try this and try the other one, you know, and run Neovim inside Kitty and no, run Emacs inside Kitty or no, use the GUI. No. So it's pretty confusing.</li>

<li><span class="media-time" data-start="5325.000">01:28:45</span> You know what we should do, okay? We should pay Prot for his coaching sessions. He's in Greece, right? He's in Cyprus. To give something back to him. But I don't know if he's okay in transmitting this live because all of these cheap ass MFers watching that would be watching this live stream will not pay Prot. So that's bad business, brother, because the live streams are just going to stay there. But if I do it for myself, if I pay to him, we have the one-on-ones and I don't post them and I learn Emacs, you know, that is not&hellip; That's going to leave you guys behind.</li>
</ul>
</blockquote>

<p>
Yup, mentorship/coaching is totally a great way to learn Emacs. Prot is okay with people livestreaming or posting a recording of the coaching session. This livestream is actually one of those instances - I set it up as a coaching session with him! =) Amin Bandali has also posted some of his sessions with Prot (<a href="https://kelar.org/~bandali/gnu/emacs/ffs-emacs-ext-prot.html">FFS code review and Emacs extensibility with Protesilaos</a>, <a href="https://kelar.org/~bandali/gnu/emacs/ffs-code-review-prot.html">FFS code review with Protesilaos - bandali</a>). I love your recent livestreams about exploring Emacs. Learning out loud is fantastic. It lets other people help out, and you help lots of people along the way. If you're comfortable with the idea, I think livestreaming or posting a recording of a coaching session with Prot would be wonderful. You've mentioned wanting to use Emacs to organize your life, so it's of course totally okay to chat privately. That way you don't have to worry about leaking any private information. Either way works!
</p>

<p>
This thing about balancing learning from resources and learning from people is an interesting one to think about. On one hand, we don't want a flood of generic requests from help from people who haven't bothered to look things up for themselves. On the other hand, because Emacs is so large and so many things are possible (and also oddly-named), it really helps to be able to talk to people. It's like the way you <b>could</b> learn how to play the piano or speak a different language by yourself, but a piano teacher could help you pick the right pieces for your level, and a tutor can help you with the nuances and pronunciation feedback that a dictionary or a textbook can't. I think learning how to learn from both resources and people is definitely a good skill worth working on during the early days, which could include:
</p>

<ul class="org-ul">
<li>taking notes and sharing them - great way to solidify your knowledge and pay it forward</li>
<li>learning how to skim tutorials and references to pick up ideas and terminology without feeling like you're progressing too slowly</li>
<li>learning how to break the things you want into bite-sized chunks so that they can actually fit into your brain; use sticky notes and text files to help you</li>
<li>connecting with people, learning how to ask questions</li>
</ul>
</div>
</div>
<div id="outline-container-re-react-to-sacha-and-prot-newbies-and-starter-kits-emacs-video-linkarzu-reddit-links" class="outline-3">
<h3 id="re-react-to-sacha-and-prot-newbies-and-starter-kits-emacs-video-linkarzu-reddit-links"><a href="https://sachachua.com/blog/feed/index.xml#re-react-to-sacha-and-prot-newbies-and-starter-kits-emacs-video-linkarzu-reddit-links">Reddit links</a></h3>
<div class="outline-text-3" id="text-re-react-to-sacha-and-prot-newbies-and-starter-kits-emacs-video-linkarzu-reddit-links">
<blockquote>
<p>
<span class="media-time" data-start="2132.000">00:35:32</span> I'm not an Emacs user. I'm an Emacs, I don't know, tester or trier, whatever.
If I come to the Emacs subreddit, for me, it's just a waste of time because I will not be able to find anything.
I don't know where to find stuff. Maybe if I go to the about page, but who does that? Okay. Who in their
sane mind comes here to the about page?
</p>

<p>
&hellip; Getting started, maybe here. Get Emacs. Emacs resources. Okay, but if I go to the EmacsWiki&hellip; How to edit Elisp area. Like there's a thousand links here and that is just the first link, brother. Then I have this other one. WikEmacs. OK, I trust it, so I'm just going to hit continue. WikEmacs.org. That one doesn't even load. Emacs reference. Not found. OK, so you see what I'm saying? This one has a thousand links and I just by looking at the amount of them, I'm like, nope, don't want to look at that. Maybe this one. The book, OK, the book, this is the book that Aaron recommends.
</p>

<p>
&hellip; So I think the suggestion that Prot is sharing there is quite useful, to be honest. Have them pinned here.
I have something like that in my subreddit, you know, things that I want people to see when they get there.
So when they get to the server, the first
thing that I want them to see is this: The Discord information that the podcast has been moved to a different YouTube channel. This is useful as well. &hellip; So yeah, this is actual information that I want people to know.
If those would be updated on the Emacs subreddit, I think it would be a good idea.
</p>
</blockquote>

<p>
Oooh, good catch. I've messaged the r/emacs mods about the dead links, suggested direct links to <a href="https://www.emacswiki.org/emacs/EmacsNewbie">Emacs Newbie</a> and <a href="https://www.emacswiki.org/emacs/StarterKits">Starter Kits</a> on the EmacsWiki, and suggested adding Doom Emacs and Spacemacs if Better Defaults is listed. The sidebar isn't very visible (most people miss it, especially on mobile), but every little bit helps. Usually what happens is a newbie posts about their question on r/emacs and someone replies with some helpful resources. An Automod or a sticky might help. I sent your video + timestamp to the r/emacs mods.
</p>
</div>
</div>
<div id="outline-container-re-react-to-sacha-and-prot-newbies-and-starter-kits-emacs-video-linkarzu-timestamps" class="outline-3">
<h3 id="re-react-to-sacha-and-prot-newbies-and-starter-kits-emacs-video-linkarzu-timestamps"><a href="https://sachachua.com/blog/feed/index.xml#re-react-to-sacha-and-prot-newbies-and-starter-kits-emacs-video-linkarzu-timestamps">Timestamps</a></h3>
<div class="outline-text-3" id="text-re-react-to-sacha-and-prot-newbies-and-starter-kits-emacs-video-linkarzu-timestamps">
<blockquote>
<ul class="org-ul">
<li><span class="media-time" data-start="2641.000">44:01</span> So how does she add those timestamps? &hellip; Oh, she typed some magic there. She typed something and then a timestamp was added.</li>
<li><span class="media-time" data-start="5425.000">01:30:25</span> We could see what she typed there. Let's see. Is she in normal mode? Does she use modal navigation or something? Let's see. OT. She typed OT and then she&hellip; OT and then she presses a key, which probably expands the snippet or something.</li>
</ul>
</blockquote>

<p>
I have an abbreviation "ot" that expands to the timestamp after I press space, comma, other punctuation, tab, whatever. This is convenient for me to type because it's home-row on Dvorak. Here's the <a href="https://sachachua.com/dotemacs#completion-define-abbreviations">relevant part of my config</a>:
</p>


<div class="org-src-container">
<pre class="src src-emacs-lisp"><code>(<span class="org-keyword">setq-default</span> abbrev-mode 1)
(define-abbrev global-abbrev-table <span class="org-string">"ot"</span> <span class="org-string">""</span>
  (<span class="org-keyword">lambda</span> () (insert (format-time-string <span class="org-string">"[%Y-%m-%d %a %H:%M]"</span>))))
</code></pre>
</div>


<p>
Big picture: I added this abbreviation for timestamps because I wanted a quick way to keep track of highlights, things to clip, possible chapter markers, etc. I <mark>could</mark> calculate it as a relative time using org-timer (there's a built-in feature), but wall-clock time is easier to use in calculations in case I want to adjust it later on. So, for example, I now have a little bit of code (<a href="https://sachachua.com/dotemacs#streaming-make-chapter-markers-and-video-time-hyperlinks-easier-to-note-while-i-livestream-calculate-an-org-timestamp-s-offset-into-a-youtube-stream">sacha-stream-org-convert-timestamps-to-youtube-offsets in my config</a>) that replaces all the timestamps in a selected region with the offsets based on the start time of the livestream that includes those timestamps. I can export the selection into a plain-text format that I can paste into the YouTube video description for quick chapter markers. Then I can bulk-add comments with those timestamps into the VTT transcription produced by WhisperX (<code>subed-vtt-insert-chapter-comments</code> in <a href="https://github.com/sachac/subed">subed</a>), move them earlier or later to match the actual times, copy the corrected chapter markers into YouTube (<code>subed-section-comments-as-chapters</code>), and use those chapter markers when publishing the transcript (using Org Mode and a custom link type). This is because I don't usually have the patience to listen to my whole video again and I don't expect people to have the patience to listen to my whole video either, so I want people to be able to quickly jump to the parts that might be interesting for them. =) I'm not sure this is a workflow you can easily pick up if you're starting from scratch (&hellip; haven't confirmed that it actually works for anyone other than me&hellip;), but I'm mentioning it to give kind of the big picture of why I have that snippet and what else it enables. Because Emacs!
</p>

<p>
Timestamps are very handy. I even have some code that schedules a YouTube livestream for the Org timestamp at point (<a href="https://sachachua.com/dotemacs##streaming-create-youtube-livestream-broadcasts-from-emacs-lisp">sacha-stream-org-schedule-livestream-for-entry-at-point</a>), using the title and body of the Org subtree and uploading the thumbnail from the Org entry <code>:THUMBNAIL:</code> property (or a default property). It inserts the YT embed. I have another function for setting up a Google Calendar entry so I can invite the guest (<a href="https://sachachua.com/dotemacs#streaming-create-a-google-calendar-event-from-an-org-mode-timestamp">sacha-emacs-chat-schedule</a>). I mess up times and timezones all the time, so the less I have to manually click on stuff, the better.
</p>
</div>
</div>
<div id="outline-container-re-react-to-sacha-and-prot-newbies-and-starter-kits-emacs-video-linkarzu-my-evil-plan" class="outline-3">
<h3 id="re-react-to-sacha-and-prot-newbies-and-starter-kits-emacs-video-linkarzu-my-evil-plan"><a href="https://sachachua.com/blog/feed/index.xml#re-react-to-sacha-and-prot-newbies-and-starter-kits-emacs-video-linkarzu-my-evil-plan">My evil plan</a></h3>
<div class="outline-text-3" id="text-re-react-to-sacha-and-prot-newbies-and-starter-kits-emacs-video-linkarzu-my-evil-plan">
<blockquote>
<p>
<span class="media-time" data-start="5496.000">1:31:36</span> Now why is she interested in doing all this, brother? This is a pretty good person, actually. Why is she so concerned about the experience for newcomers in Emacs? On the Neovim side of things, it's like, brother, you're just on your own. "F* yourself, go and watch some videos, and if you get it, awesome." Now, there's really amazing people as well on the Neovim side of things. I'm just talking shit, but I'm honestly curious, like&hellip; She's really concerned about new people joining into the Emacs church. Is this a church really? Like, okay, do we have to pay after once we're part of the church? Like, do we need to give like 10% of our income to the Emacs church?
</p>
</blockquote>

<p>
Hah, it's all part of my Evil Plan. (Not to be confused with evil-mode.) Sure, Emacs isn't a good fit for everyone. I think the people who seem to really click with it and with other people who use it are the ones who enjoy tinkering and who can (mostly) find the balance between getting stuff done and tweaking their setup. =) If this might be your jam, I hope you can get past the initial hump and get to the point where it gets to be fun and useful! Sometimes it takes several tries for it to stick. We have lots of stories of people who didn't get Emacs the first time around, but who eventually figured it out later. I love that there are so many people who've used Emacs to make a TODO system that actually works for them. (It's usually Org Mode, but sometimes it's something else, that's all cool.) I love that people can do little tweaks to remove friction or make new things possible step by step.
</p>

<p>
So, the evil plan:
</p>

<ol class="org-ol">
<li>If people learning Emacs can connect with resources and people who can help them enjoy figuring things out, then&hellip;</li>
<li>they'll get to the point where they can come up with ideas and make things better for themselves.</li>
<li>This often turns out to be useful for other people too,</li>
<li>and then people can bounce ideas around and make things even better.</li>
<li>So, years down the line, I'll want to do something crazy with Emacs and someone will already have written a function for doing it. ;)</li>
</ol>

<p>
See? I'm just planning ahead. Bwahaha! Also, I love seeing the kinds of cool things people come up with and share, even if I might not personally need it (yet). It's fun. I hope you get the hang of it. I think that could lead to lots of interesting conversations. Even if you decide to use something else, that's cool too. The important thing is that you're figuring out stuff that works for you! =)
</p>
</div>
</div>
<div><a href="https://sachachua.com/blog/2026/07/re-react-to-sacha-and-prot-newbies-and-starter-kits-emacs-video-linkarzu/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%2F07%2Fre-react-to-sacha-and-prot-newbies-and-starter-kits-emacs-video-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="17950" type="application/octet-stream" url="https://sachachua.com/blog/2026/07/re-react-to-sacha-and-prot-newbies-and-starter-kits-emacs-video-linkarzu/index.org"/></item><item>
		<title>2026-06-29 Emacs news</title>
		<link>https://sachachua.com/blog/2026/06/2026-06-29-emacs-news/</link>
		
		<pubDate>Mon, 29 Jun 2026 17:04:18 GMT</pubDate>
    <category>emacs</category>
<category>emacs-news</category>
		<guid isPermaLink="false">https://sachachua.com/blog/2026/06/2026-06-29-emacs-news/</guid>
		<description><![CDATA[<p>
This week, lots of people were talking about FSF's policy of not
accepting LLM contributions to Emacs core (see the last two items in
the AI category). Comments seem generally supportive of FSF's caution.
</p>

<ul class="org-ul">
<li>Help wanted:
<ul class="org-ul">
<li><a href="https://emacsconf.org/2026/cfp/">EmacsConf - 2026 - Call for Participation</a></li>
<li><a href="https://monadicsheep.org/blog/call-for-canvas-patch-testers.html">Monadic Sheep: Canvas patch: we need testers!</a> (<a href="https://lobste.rs/s/dkky2i/canvas_patch_we_need_testers">lobste.rs</a>, <a href="https://yhetil.org/emacs-devel/87ldc6bfje.fsf@subvertising.org/">emacs-devel</a>)</li>
</ul></li>
<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>EmacsATX: Emacs Social <a href="https://www.meetup.com/emacsatx/events/315091677/">https://www.meetup.com/emacsatx/events/315091677/</a> Thu Jul 2 1600 America/Vancouver - 1800 America/Chicago - 1900 America/Toronto - 2300 Etc/GMT &ndash; Fri Jul 3 0100 Europe/Berlin - 0430 Asia/Kolkata - 0700 Asia/Singapore</li>
<li>M-x Research: TBA <a href="https://m-x-research.github.io/">https://m-x-research.github.io/</a> Fri Jul 3 0800 America/Vancouver - 1000 America/Chicago - 1100 America/Toronto - 1500 Etc/GMT - 1700 Europe/Berlin - 2030 Asia/Kolkata - 2300 Asia/Singapore</li>
<li>Emacs.si (in person): Emacs.si meetup #7 2026 (v #živo) <a href="https://dogodki.kompot.si/events/88d59360-d89a-42cc-b567-ed39ac5186fb">https://dogodki.kompot.si/events/88d59360-d89a-42cc-b567-ed39ac5186fb</a> Mon Jul 6 1900 CET</li>
<li>OrgMeetup (virtual) <a href="https://orgmode.org/worg/orgmeetup.html">https://orgmode.org/worg/orgmeetup.html</a> Wed Jul 8 0900 America/Vancouver - 1100 America/Chicago - 1200 America/Toronto - 1600 Etc/GMT - 1800 Europe/Berlin - 2130 Asia/Kolkata &ndash; Thu Jul 9 0000 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 Jul 10 1800 Europe/Paris</li>
</ul></li>
<li>Emacs configuration:
<ul class="org-ul">
<li><a href="https://github.com/melpa/melpa/pull/10057">New transitional MELPA channels: snapshots and releases</a> (<a href="https://mastodon.world/@minad/116824647604682588">@minad@mastodon.world</a>) - version numbers will be release.0.date.count, which will be compatible with other package archives</li>
<li><a href="https://ray-on-emacs.blogspot.com/2026/06/emacs-disabled-commands.html">Raymond Zeitler: Emacs disabled Commands</a></li>
<li><a href="https://amiorin.github.io/.emacs.d/">From Doom Emacs to Vanilla/Custom Emacs — Saved by Claude Code</a> (<a href="https://www.reddit.com/r/emacs/comments/1ufifue/from_doom_emacs_to_vanillacustom_emacs_saved_by/">Reddit</a>) - annotated config</li>
<li><a href="https://v.redd.it/uwvr3fzo5v9h1">Firemacs Update</a> (<a href="https://www.reddit.com/r/emacs/comments/1uh97um/firemacs_update/">Reddit</a>)</li>
</ul></li>
<li>Emacs Lisp:
<ul class="org-ul">
<li><a href="https://dev.to/vindarel/emacs-lispy-mode-convolute-real-world-example-fe1">Emacs' lispy-mode: Convolute real-world example! - DEV Community</a> (<a href="https://framapiaf.org/@vindarel/116800661731742317">@vindarel@framapiaf.org</a>)</li>
<li><a href="https://www.johndcook.com/blog/2026/06/23/regex-everywhere/">Regular expressions that work “everywhere”</a> (<a href="https://news.ycombinator.com/item?id=48672232">HN</a>, <a href="https://lobste.rs/s/mq245g/regular_expressions_work_everywhere">lobste.rs</a>)</li>
<li><a href="http://yummymelon.com/devnull/scheduling-future-tasks-in-emacs.html">Scheduling Future Tasks in Emacs</a> (<a href="https://www.reddit.com/r/emacs/comments/1uenp4p/scheduling_future_tasks_in_emacs/">Reddit</a>, <a href="https://irreal.org/blog/?p=13901">Irreal</a>)</li>
<li><a href="https://github.com/kn66/commonmark-gfm.el">commonmark-gfm.el: a pure Emacs Lisp CommonMark/GFM renderer</a> (<a href="https://www.reddit.com/r/emacs/comments/1uhwed7/commonmarkgfmel_a_pure_emacs_lisp_commonmarkgfm/">Reddit</a>)</li>
<li><a href="https://github.com/d12frosted/vui.el">vui.el: declarative, React-style UIs in Emacs buffers (v1.2, now with inline forms and flex layout)</a> (<a href="https://www.reddit.com/r/emacs/comments/1ue7r9f/vuiel_declarative_reactstyle_uis_in_emacs_buffers/">Reddit</a>)</li>
</ul></li>
<li>Appearance:
<ul class="org-ul">
<li><a href="https://github.com/Senka07/nerv_theme.el">an attempt to create a theme inspired by Nerv from Evangelion</a> (<a href="https://www.reddit.com/r/emacs/comments/1ughyjg/an_attempt_to_create_a_theme_inspired_by_nerv/">Reddit</a>)</li>
<li><a href="https://github.com/LionyxML/kusanagi-theme">Kusanagi: a Ghost in the Shell-inspired dark theme for Emacs</a> (<a href="https://www.reddit.com/r/emacs/comments/1ugexb8/kusanagi_a_ghost_in_the_shellinspired_dark_theme/">Reddit</a>)</li>
<li><a href="https://github.com/larrasket/emacs-liquid-glass">Emacs with Ghostty-like Liquid Glass Effect</a> (<a href="https://www.reddit.com/r/emacs/comments/1uepn3x/emacs_with_ghosttylike_liquid_glass_effect/">Reddit</a>)</li>
<li><a href="https://www.chiply.dev/post-svg-margin">svg-margin: Better Gutters for Emacs</a> (<a href="https://www.reddit.com/r/emacs/comments/1ueb70t/svgmargin_better_gutters_for_emacs/">Reddit</a>)</li>
<li><a href="https://protesilaos.com/codelog/2026-06-28-emacs-doric-tiger-doric-lion/">Protesilaos: Emacs: new ‘doric-tiger’ and ‘doric-lion’ for the ‘doric-themes’</a></li>
<li><a href="https://protesilaos.com/codelog/2026-06-29-emacs-fontaine-3-1-0/">Protesilaos: Emacs: fontaine version 3.1.0</a></li>
</ul></li>
<li>Navigation:
<ul class="org-ul">
<li><a href="https://ray-on-emacs.blogspot.com/2026/06/preventing-errant-navigation.html">Raymond Zeitler: Preventing Errant Navigation</a></li>
<li><a href="https://shallowsky.com/blog/linux/editors/emacs-bookmarks-position.html">Overriding Emacs' Broken Bookmark Position Code (Updated) (Shallow Thoughts)</a> (<a href="https://fosstodon.org/@akkana/116829324463088316">@akkana@fosstodon.org</a>)</li>
<li><a href="https://randyridenour.net/posts/2026-06-23-toggle-ghostel.html">Randy Ridenour: Toggle Ghostel</a> (<a href="https://irreal.org/blog/?p=13905">Irreal</a>)</li>
</ul></li>
<li>Dired:
<ul class="org-ul">
<li><a href="https://github.com/kn66/dired-clipboard.el">dired-clipboard.el: Copy and paste files in Dired with M-w / C-y</a> (<a href="https://www.reddit.com/r/emacs/comments/1ufq0uk/diredclipboardel_copy_and_paste_files_in_dired/">Reddit</a>)</li>
</ul></li>
<li>Org Mode:
<ul class="org-ul">
<li><a href="https://ray-on-emacs.blogspot.com/2026/06/link-diary-event-to-org-heading.html">Raymond Zeitler: Link diary Event to Org Heading</a> (<a href="https://irreal.org/blog/?p=13907">Irreal</a>)</li>
<li><a href="https://github.com/yibie/chai">Chai 2.0 — Emacs reading workflow, stripped down to what actually matters</a> (<a href="https://www.reddit.com/r/emacs/comments/1ue8jvz/chai_20_emacs_reading_workflow_stripped_down_to/">Reddit</a>)</li>
<li><a href="https://www.cyan.sh/blog/posts/org-roam-orphans.html">Jakub Nowak: org-roam Orphans</a></li>
<li><a href="https://github.com/GerardoCendejas/org-roam-stats.git">I built a stats dashboard for org-roam (org-roam-stats)</a> (<a href="https://www.reddit.com/r/OrgRoam/comments/1uet3g4/i_built_a_stats_dashboard_for_orgroam_orgroamstats/">Reddit</a>)</li>
<li><a href="https://www.d12frosted.io/posts/2026-06-19-vulpea-v2-4">Vulpea v2.4: unlinked mentions, schemas, and renaming - Boris Buliga</a> (<a href="https://github.com/d12frosted/vulpea/blob/master/CHANGELOG.org">changelog</a>, <a href="https://www.reddit.com/r/emacs/comments/1ug8rkh/vulpea_24/">Reddit</a>)</li>
</ul></li>
<li>Coding:
<ul class="org-ul">
<li><a href="https://codeberg.org/gemmaro/flymake-sqlite/releases/tag/v0.3.0">flymake-sqlite v0.3.0</a> (<a href="https://mastodon.social/@gemmaro/116830158525129994">@gemmaro</a>)</li>
<li><a href="https://batsov.com/articles/2026/06/24/neocaml-0-9-repl-completion-and-robustness/">Bozhidar Batsov: Neocaml 0.9: A Better REPL, Dune/Opam Completion, and More Robustness</a></li>
<li><a href="https://ankit.earth/microblog/1782413285/">Ankit Gadiya: which-function-mode displays the current function in the mode line</a></li>
</ul></li>
<li>Web:
<ul class="org-ul">
<li><a href="http://github.com/dmgerman/browsel">Browsel: a two way communication between the web browser and emacs</a> (<a href="https://www.youtube.com/watch?v=8nSiG_hMZWI">YouTube</a> 10:28, (<a href="https://www.reddit.com/r/emacs/comments/1ugg083/browsel_a_two_way_communication_between_the_web/">Reddit</a>)</li>
</ul></li>
<li>Mail, news, and chat:
<ul class="org-ul">
<li><a href="https://www.cyan.sh/blog/posts/new-package-gomuks-el.html">Jakub Nowak: New Package: Gomuks.el</a> - Matrix client written in Go</li>
</ul></li>
<li>Multimedia:
<ul class="org-ul">
<li><a href="https://github.com/Nuno69/as-sound-switch">as-sound-switch: blazingly fast audio i/o switcher for Emacs</a> (<a href="https://www.reddit.com/r/emacs/comments/1ufn6rf/assoundswitch_blazingly_fast_audio_io_switcher/">Reddit</a>) MacOS</li>
<li><a href="https://github.com/luqtas/csound-score-emacs">luqtas/csound-score-emacs: my take on navigating the Csound score paradigm with Emacs · GitHub</a></li>
</ul></li>
<li>Fun:
<ul class="org-ul">
<li><a href="https://i.redd.it/9l1hon0a0d9h1.png">the learning cliff and the View from the Top</a> (<a href="https://www.reddit.com/r/emacs/comments/1uf0d2k/the_learning_cliff_and_the_view_from_the_top/">Reddit</a>)</li>
</ul></li>
<li>AI:
<ul class="org-ul">
<li><a href="https://i.redd.it/zmr1fdobqf9h1.jpeg">For scientists and learners: agent-shell renders equations as you chat</a> (<a href="https://www.reddit.com/r/emacs/comments/1ufbipv/for_scientists_and_learners_agentshell_renders/">Reddit</a>, <a href="https://www.youtube.com/watch?v=wGM3xH06Wso">YouTube</a>)</li>
<li><a href="https://github.com/jdormit/emacs-opencode">emacs-opencode: native Emacs client for OpenCode</a> (<a href="https://www.reddit.com/r/emacs/comments/1udlrp4/emacsopencode_native_emacs_client_for_opencode/">Reddit</a>)</li>
<li><a href="https://github.com/gavv/emacs-jail-mcp">emacs-jail-mcp: MCP server with disposable Emacs sandbox</a> (<a href="https://www.reddit.com/r/emacs/comments/1ug8u46/emacsjailmcp_mcp_server_with_disposable_emacs/">Reddit</a>)</li>
<li><a href="https://github.com/elij/macher-agent">macher-agent updates (emacs native agent orchestration)</a> (<a href="https://www.reddit.com/r/emacs/comments/1udhcnj/macheragent_updates_emacs_native_agent/">Reddit</a>)</li>
<li><a href="https://metaredux.com/posts/2026/06/26/copilot-el-0-7.html">Meta Redux: copilot.el 0.7</a></li>
<li><a href="http://en.andros.dev/blog/4b707a03/how-i-built-a-gpu-backend-for-emacs/">Andros Fenollosa: How I built a GPU backend for Emacs</a> (<a href="https://www.reddit.com/r/emacs/comments/1ufiyu3/how_i_built_a_gpu_backend_for_emacs/">Reddit</a>, <a href="https://news.ycombinator.com/item?id=48642503">HN</a>)</li>
<li><a href="https://xlii.space/eng/honesty-gets-emacs-patch-rejected/#fnref:2">Honesty gets Emacs patch rejected</a> (<a href="https://www.reddit.com/r/emacs/comments/1uhb06f/honesty_gets_emacs_patch_rejected/">Reddit</a>, <a href="https://news.ycombinator.com/item?id=48681557">HN</a>, <a href="https://lobste.rs/s/omq8rt/vibecoding_gets_emacs_patch_rejected">lobste.rs</a>)</li>
</ul></li>
<li>Community:
<ul class="org-ul">
<li><a href="https://plaindrops.de/blog/2026/emacscarnival2607/">Emacs Blog Carnival July 2026 "Programming" | Plain DrOps</a> (<a href="https://chaos.social/@SpaceCadet/116832844194274430">@SpaceCadet@chaos.social</a>)</li>
<li><a href="https://www.eliasstorms.net/notes/emacs-anniversary.html">Emacs anniversary</a> (<a href="https://mastodon.social/@EFLS/116806578556818263">@EFLS</a>)</li>
<li><a href="https://willemvandenende.com/blog/engineering/an-example-would-be-handy-right-now">An example would be handy right about now - how to shave yaks with great efficiency . — Willem van den Ende</a> (<a href="https://mastodon.social/@mostalive/116821163748437793">@mostalive</a>)</li>
<li><a href="https://www.reddit.com/r/emacs/comments/1udwq2v/do_all_emacs_veterans_that_started_from_doom/">Do all emacs veterans that started from doom eventually roll out their own vanilla config?</a></li>
<li><a href="https://www.hristos.co/blog/ten-years-of-emacs/">Hristos N. Triantafillou: Ten Years Of Emacs</a></li>
<li><a href="https://youtu.be/EnwG2zRT7BA">Neovim user trying to learn Vanilla Emacs properly, what should I focus on first?</a> (<a href="https://www.reddit.com/r/emacs/comments/1udtytx/neovim_user_trying_to_learn_vanilla_emacs/">Reddit</a>) - linkarzu
<ul class="org-ul">
<li><a href="https://www.youtube.com/watch?v=ooyn60c5UbA">Ok, so Now we're Really Installing it</a> (01:50:14)</li>
<li><a href="https://www.youtube.com/watch?v=iXCDQlGM_j4">Follow The Emacs Tutorial (Day 3)</a> (01:25:38)</li>
<li><a href="https://www.youtube.com/watch?v=bDVopQNscNM">Emacs Tutorial part 2 (Day 4)</a> (02:07:00)</li>
<li><a href="https://www.youtube.com/watch?v=hsPHmIMURqw">0012 | Learning Emacs with The Professor from University of Victoria</a> (01:34:35)
<ul class="org-ul">
<li><a href="https://www.youtube.com/watch?v=xVmqPzYnqaw">Learning Emacs with The Professor from University of Victoria</a> (12:50)</li>
</ul></li>
</ul></li>
<li><a href="https://www.youtube.com/watch?v=HnL77t4IsBY">Doom Emacs: Why I Chose It Over Vim and Never Looked Back</a> (27:03)</li>
</ul></li>
<li>Other:
<ul class="org-ul">
<li><a href="https://github.com/jixiuf/helixel-mode">Helixel - Another Helix Emulation Layer</a> (<a href="https://www.reddit.com/r/emacs/comments/1uegy1h/helixel_another_helix_emulation_layer/">Reddit</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=268e055e0515ccec8159b13d4b2e97428bd63b5e">Limit VC-Dir status process output processing</a></li>
</ul></li>
<li>New packages:
<ul class="org-ul">
<li><a target="_blank" href="https://melpa.org/#/fzfa">fzfa</a>: Async fuzzy completion via `fzf-native' (MELPA)</li>
<li><a target="_blank" href="https://melpa.org/#/git-overleaf">git-overleaf</a>: Clone, push, and pull full Overleaf projects with Git (MELPA)</li>
<li><a target="_blank" href="https://elpa.gnu.org/packages/lisp-ts-mode.html">lisp-ts-mode</a>: lisp-mode with tree-sitter support (GNU ELPA)</li>
<li><a target="_blank" href="https://melpa.org/#/musicbrainz-interactive">musicbrainz-interactive</a>: Interactive commands for MusicBrainz related things (MELPA)</li>
<li><a target="_blank" href="https://melpa.org/#/youtube-music">youtube-music</a>: YouTube Music client (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-06">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/06/2026-06-29-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%2F06%2F2026-06-29-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="239811" type="application/octet-stream" url="https://emacslife.com/calendar/emacs-calendar.ics"/></item><item>
		<title>La semaine du 15 juin au 21 juin</title>
		<link>https://sachachua.com/blog/2026/06/la-semaine-du-15-juin-au-21-juin/</link>
		
		<pubDate>Thu, 25 Jun 2026 15:04:10 GMT</pubDate>
    <category>french</category>
		<guid isPermaLink="false">https://sachachua.com/blog/2026/06/la-semaine-du-15-juin-au-21-juin/</guid>
		<description><![CDATA[<div id="outline-container-orgb7284e2" class="outline-3">
<h3 id="orgb7284e2"><a href="https://sachachua.com/blog/feed/index.xml#orgb7284e2">lundi 15</a></h3>
<div class="outline-text-3" id="text-orgb7284e2">
<p>
Ma fille avait fait une sieste hier soir, donc elle s'était couchée très tard. Eh ben, on va voir. Elle a un examen ce matin. 
</p>

<p>
Ma fille était fière d'obtenir la note maximale à son quiz sur la conjugaison du verbe aller. Nous l'avons révisée au fil de la conversation avant son quiz. 
</p>

<p>
J'ai corrigé et segmenté le sous-titrage de ma conversation avec Prot la semaine précédente. J'ai fait une diffusion en direct pendant que je le faisais. 
</p>

<p>
Après l'école, j'ai emmené ma fille au cours de gymnastique. Nous étions un peu en retard, mais elle s'est amusée. Elle s'est exercée au deuxième étage au lieu d'utiliser le trampoline au rez-de-chaussée. 
</p>

<p>
Ma mère a du mal à signer de la paperasse à cause de la maladie de Parkinson, donc c'est une bonne idée de préparer une procuration durable pour me permettre de signer en son nom. J'ai lu la paperasse que j'avais demandée aux avocats de préparer pour ma mère et j'ai demandé à la responsable de l'imprimer avant ma conversation avec ma mère pour lui expliquer. 
</p>

<p>
Ma mère s'est inquiétée pour les revenus d'entreprise et elle a voulu agrandir l'entreprise malgré ses difficultés physiques et cognitives. À mon avis, c'est une mauvaise idée parce qu'elle ne peut pas encore gérer des décisions compliquées à cause de son manque d'énergie et du Parkinson qui rend beaucoup de choses difficiles. 
</p>
</div>
</div>
<div id="outline-container-org112d915" class="outline-3">
<h3 id="org112d915"><a href="https://sachachua.com/blog/feed/index.xml#org112d915">mardi 16</a></h3>
<div class="outline-text-3" id="text-org112d915">
<p>
Ma fille s'est réveillée trop tard et elle a séché les cours. Elle est allée en cours l'après-midi. 
</p>

<p>
J'ai analysé les statistiques sur la remise des devoirs de ma fille. Cette année scolaire (la quatrième année), elle en avait rendu 43 pour cent à temps et 32 pour cent en retard, et elle n'a pas rendu 25 pour cent des devoirs. Ses enseignants ne semblaient pas trop inquiets. 
</p>

<p>
J'ai rendez-vous avec mon tuteur Raphaël. Nous avons parlé des animaux de compagnie, des voyages, de nos familles et de ses études. Je m'habitue à converser petit à petit. 
</p>

<p>
J'ai relu les procurations durables pour ma sœur et ma mère. J'ai encore envoyé des questions à l'avocat. 
</p>

<p>
Après avoir joué à Donjons et Dragons chez nous, ma fille et moi sommes allées au parc pour jouer ensemble. Nous avons joué encore à Donjons et Dragons dans la vraie vie. 
</p>

<p>
Ma fille a fait un cauchemar sur une mouffette la nuit dernière. Elle a dit qu'elle ne voulait pas dormir. Elle a eu peur d'en faire encore un. 
</p>
</div>
</div>
<div id="outline-container-org4cb4367" class="outline-3">
<h3 id="org4cb4367"><a href="https://sachachua.com/blog/feed/index.xml#org4cb4367">mercredi 17</a></h3>
<div class="outline-text-3" id="text-org4cb4367">
<p>
Il y avait encore un remplaçant à l'école. Ma fille n'a pas voulu travailler sur ses devoirs qui sont à rendre demain. Je n'avais pas l'énergie pour la convaincre de les faire. Elle avait passé une mauvaise nuit l'autre jour, donc elle n'avait pas voulu aller se coucher jusqu'à ce qu'il soit très tard. J'étais encore fatiguée. 
</p>

<p>
Ma fille et moi sommes allées au parc pour jouer à Donjons et Dragons grandeur nature. 
</p>

<p>
J'ai fait les courses et je suis allée à la bibliothèque pour emprunter des livres. 
</p>
</div>
</div>
<div id="outline-container-org33bd3fb" class="outline-3">
<h3 id="org33bd3fb"><a href="https://sachachua.com/blog/feed/index.xml#org33bd3fb">jeudi 18</a></h3>
<div class="outline-text-3" id="text-org33bd3fb">
<p>
Ma fille a fait deux présentations (une sur la musique et une sur la science). Elle a dit qu'elle avait réussi les deux. 
</p>

<p>
J'ai interviewé Ross A. Baker sur ses expériences et ses flux de travail d'Emacs. 
</p>

<p>
Ma fille et moi avons peint à l'aquarelle. J'ai peint les mots à partir de sa feuille de vocabulaire à l'école. Elle portait sur les vêtements. 
</p>

<p>
Ma fille a dit qu'elle ne mange parfois pas le dîner parce qu'elle ne peut pas choisir. Je dois offrir moins de choix. 
</p>
</div>
</div>
<div id="outline-container-org6e28a9f" class="outline-3">
<h3 id="org6e28a9f"><a href="https://sachachua.com/blog/feed/index.xml#org6e28a9f">vendredi 19</a></h3>
<div class="outline-text-3" id="text-org6e28a9f">
<p>
J'ai corrigé la transcription de ma conversation avec Ross A. Baker sur Emacs. 
</p>

<p>
J'ai rendez-vous avec un nouveau tuteur français qui habite au Cameroun. Il m'a donné des épreuves du DELF A2. J'ai lu à voix haute et j'ai répondu à presque tout à l'exception d'un peu de confusion sur le faire-part de mariage, parce que c'est habituel ici d'envoyer un message pour réserver la date avant l'invitation réelle. La prochaine fois, nous allons faire l'épreuve de compréhension. Je pense qu'il s'exprime un peu plus clairement que mon tuteur habituel. À mon avis, cela vaudrait la peine de continuer avec les deux tuteurs pour m'habituer aux différents interlocuteurs. Mon tuteur initial semblait plus aimable et nous partageons un intérêt pour la technologie, et cet autre tuteur semblait plus sérieux et plus structuré. Les vacances d'été arriveront bientôt. Je ne sais pas quel type de programme j'aurai parce que ma fille veut jouer avec moi. Je veux continuer mon apprentissage du français. 
</p>

<p>
Je suis passée à l'écriture de mon journal principal en français. J'ai aussi essayé de dicter mon journal. La reconnaissance vocale ne peut pas saisir tous mes mots, donc je pense que c'est mieux que je tape mes mots tout en les disant pour m'habituer. 
</p>

<p>
J'ai appris qu'il faut que le témoin pour la paperasse de l'assurance-vie soumette une copie de son passeport. Oh, dommage. Je ne sais pas à quel point je connais bien mon témoin initial, qui est un voisin, pour oser lui demander une copie de son passeport. 
</p>

<p>
J'ai emmené ma fille au cours collectif de gymnastique aérienne. Elle a participé au spectacle. Elle était très fière. 
</p>

<p>
Après le cours, nous sommes allées au parc des asperges (c'est notre diminutif pour ce parc) pour jouer là-bas. Elle a descendu le toboggan de nombreuses fois. J'étais un peu stressée parce que d'autres enfants ont essayé d'escalader le toboggan même si quelqu'un allait descendre. 
</p>

<p>
Ma fille s'est blottie contre moi toute la nuit. 
</p>
</div>
</div>
<div id="outline-container-org1d07879" class="outline-3">
<h3 id="org1d07879"><a href="https://sachachua.com/blog/feed/index.xml#org1d07879">samedi 20</a></h3>
<div class="outline-text-3" id="text-org1d07879">
<p>
Il faisait chaud. Nous sommes allées à la piscine pour la première fois cette saison. C'était rafraîchissant. L'eau n'était pas trop froide parce que la piscine est chauffée. 
</p>
</div>
</div>
<div id="outline-container-orgfc24d25" class="outline-3">
<h3 id="orgfc24d25"><a href="https://sachachua.com/blog/feed/index.xml#orgfc24d25">dimanche 21</a></h3>
<div class="outline-text-3" id="text-orgfc24d25">
<p>
Mon mari a préparé des grillades coréennes pour le dîner. 
</p>

<p>
Ma fille et moi sommes allées à pied jusqu'à la piscine près de chez nous, mais l'eau était froide parce que la piscine n'a pas de système de chauffage. Une fois rentrées, je l'ai emmenée à vélo à l'autre piscine qui a un système de chauffage et un toboggan. Nous sommes arrivées là 10 minutes avant la pause, donc nous nous sommes baignées brièvement. Nous avons joué à l'aire de jeu jusqu'à la réouverture de la piscine. Puis, nous avons nagé pendant une heure. Ma fille se fatigue trop vite pour réussir un test de natation. Si elle s'entraîne, elle s'améliore. 
</p>

<p>
J'ai transféré de l'argent du compte de ma mère à mon compte pour me permettre de gérer la situation au cas où quelque chose surviendrait. 
</p>

<p>
Ma fille m'a apporté tous les livres philippins à lire. 
</p>

<p>
À l'heure du coucher, nous avons eu une longue conversation sur la neurodivergence. 
</p>
</div>
</div>
<div><a href="https://sachachua.com/blog/2026/06/la-semaine-du-15-juin-au-21-juin/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%2F06%2Fla-semaine-du-15-juin-au-21-juin%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="34478" type="application/octet-stream" url="https://sachachua.com/blog/2026/06/la-semaine-du-15-juin-au-21-juin/index.org"/></item><item>
		<title>La semaine du 7 au 14 juin</title>
		<link>https://sachachua.com/blog/2026/06/la-semaine-du-7-au-14-juin/</link>
		
		<pubDate>Wed, 24 Jun 2026 15:09:32 GMT</pubDate>
    <category>french</category>
		<guid isPermaLink="false">https://sachachua.com/blog/2026/06/la-semaine-du-7-au-14-juin/</guid>
		<description><![CDATA[<div id="outline-container-org90da411" class="outline-3">
<h3 id="org90da411"><a href="https://sachachua.com/blog/feed/index.xml#org90da411">lundi 8</a></h3>
<div class="outline-text-3" id="text-org90da411">
<p>
Pendant la routine matinale, j'ai remarqué qu'une des nouvelles boucles d'oreilles de ma fille était perdue. J'ai cherché dans son lit et sa chambre, mais je ne l'ai pas trouvée. Pendant que j'expliquais à mon mari, je l'ai remarquée sur le sol dans la cuisine. J'ai réussi ! C'est ma vie de pie.
</p>

<p>
L'école a eu un remplaçant, donc je l'ai prévenue de son absence. Ma fille et moi sommes assises dehors et nous avons fait quelques devoirs comme un jeu de Donjons et Dragons. Par exemple, il fallait que ma fille récapitule le chapitre de son devoir de lecture pendant qu'elle était à l'envers à cause d'un piège que mon roublard a dû désamorcer. Je pense que c'est plus facile de faire ses devoirs si ma fille peut bouger.
</p>

<p>
Nous avons alterné entre les devoirs et notre propre partie de Donjons et Dragons. Nous avons essayé le module gratuit qui s'appelle Dagger Danger. L'interface virtuelle de D&amp;D Beyond était un peu difficile à apprendre. Nous avons préféré utiliser les dés physiques.
</p>

<p>
J'ai emmené ma fille à son cours de gymnastique. Son entraîneur habituel n'était pas là. Il y avait une remplaçante qui s'appelle Ashley. Ma fille n'aime pas s'habituer aux nouvelles personnes, mais à mon soulagement, elle a continué la séance.
</p>

<p>
Après le cours, elle a eu très chaud. Je l'ai emmenée au glacier pour essayer leur crème glacée. Ils ont une ristourne pour les enfants entre 15h00 et 17h00. Elle a commandé la crème glacée à la fraise dans un cornet sucré et elle a payé cash.
</p>

<p>
Ma fille a cueilli des petites fraises dans la cour avant. Il y avait quelques fraises que les insectes ont mangées, mais il y avait certaines fraises qui étaient meilleures que celles que nous achetons au supermarché. J'étais surprise que les écureuils ne les aient pas mangées.
</p>

<p>
Mon mari a grillé du poulet au miel et à l'ail. C'était délicieux.
</p>

<p>
Avant de faire la vaisselle, ma fille et moi avons eu un très long câlin. Je lui ai dit que je ne veux pas la lâcher en premier, donc j'ai pensé qu'elle avait aussi décidé de ne pas lâcher d'abord. C'était une merveilleuse impasse. Finalement, elle m'a dit qu'elle voulait m'aider avec la vaisselle, donc nous l'avons faite.
</p>

<p>
J'ai acheté les livres de mathématiques Beast Academy 4, et nous les avons reçus tard le soir. Ma fille est restée debout tard parce qu'elle a voulu lire tous les livres.
</p>
</div>
</div>
<div id="outline-container-org04a035e" class="outline-3">
<h3 id="org04a035e"><a href="https://sachachua.com/blog/feed/index.xml#org04a035e">mardi 9</a></h3>
<div class="outline-text-3" id="text-org04a035e">
<p>
Ma fille a décidé de sécher les cours aujourd'hui. Elle était fatiguée et grincheuse parce que j'étais préoccupée par de la paperasse.
</p>

<p>
Mon mari, ma fille et moi avons livré des dons pour la Bike Brigade.
</p>

<p>
J'ai travaillé sur la paperasse pour les assurances-vie. Je les ai revérifiées contre les confirmations parce que les bénéficiaires irrévocables diffèrent.
</p>

<p>
Sur Tileman Reworked dans Stardew Valley : enfin, j'ai accédé au forgeron et au musée le 11 de l'hiver de la quatrième année. J'ai amélioré mon arrosoir. J'ai aussi pêché à la fête du calmar pendant que j'écoutais l'enregistrement de mon rendez-vous avec mon tuteur.
</p>
</div>
</div>
<div id="outline-container-org09758a3" class="outline-3">
<h3 id="org09758a3"><a href="https://sachachua.com/blog/feed/index.xml#org09758a3">mercredi 10</a></h3>
<div class="outline-text-3" id="text-org09758a3">
<p>
J'ai vérifié que j'avais reçu le virement bancaire, et j'ai envoyé quelques questions sur les assurances-vie.
</p>

<p>
J'ai travaillé comme consultante. J'ai mis à jour mon logiciel pour copier des données parce que j'avais remarqué que les nouvelles données avaient changé l'identifiant. Je dois le vérifier après l'avoir exécuté. J'ai aussi ajouté la capacité d'afficher des vidéos à la galerie.
</p>

<p>
Pendant que ma fille jouait avec ses amies à la pataugeoire, j'ai corrigé la transcription de la conversation entre ma sœur et notre cousine, une de ses meilleures amies depuis l'enfance. Elles sont toujours allées à la même école, et quand sa famille était notre voisine, ma sœur allait souvent chez elles. La reconnaissance vocale a fait plusieurs erreurs parce que ma sœur et notre cousine avaient utilisé deux langues. La majorité des histoires étaient en anglais, mais il y avait aussi des phrases en filipino. WhisperX peut transcrire quelques phrases philippines, mais d'autres phrases étaient traduites en anglais. Ce n'était pas grave. J'ai écouté l'enregistrement sur mon smartphone et j'ai écrit mes corrections sur ma tablette, et j'ai passé un bon moment.
</p>

<p>
J'ai perdu momentanément mon Apple Pencil. Je l'ai trouvé dans mon gilet à nombreuses poches.
</p>
</div>
</div>
<div id="outline-container-org18f4eab" class="outline-3">
<h3 id="org18f4eab"><a href="https://sachachua.com/blog/feed/index.xml#org18f4eab">jeudi 11</a></h3>
<div class="outline-text-3" id="text-org18f4eab">
<p>
J'ai parlé d'Emacs avec Prot.
</p>

<p>
J'ai eu rendez-vous chez le dentiste pour faire des plombages. Je lui ai expliqué ma situation avec les limites du petit compte gestion-santé et mon budget pour les frais dentaires par année. C'est définitivement une grande dépense cette année, mais je pense que c'est mieux que je trouve un dentiste qui prend les bonnes précautions contre le COVID.
</p>

<p>
Ma fille et moi avons lu ensemble deux livres illustrés sur le TDAH et sur l'autisme.
</p>

<p>
Ma fille n'a pas déjeuné parce qu'elle a eu besoin de la salle de bain.
</p>
</div>
</div>
<div id="outline-container-org3b6f62b" class="outline-3">
<h3 id="org3b6f62b"><a href="https://sachachua.com/blog/feed/index.xml#org3b6f62b">vendredi 12</a></h3>
<div class="outline-text-3" id="text-org3b6f62b">
<p>
Ma fille n'a pas voulu participer à l'école parce qu'il y avait encore un remplaçant. Nous avons fait deux exercices de ses devoirs ensemble.
</p>

<p>
J'ai eu rendez-vous avec mon tuteur pour m'entraîner à la conversation. Nous avons parlé du temps, des voyages et des réseaux.
</p>

<p>
J'ai transféré l'argent que j'avais reçu de ma sœur aînée à l'autre banque.
</p>

<p>
Ma fille et moi sommes allées à la banque. J'ai payé l'amende et elle a déposé de l'argent.
</p>

<p>
Elle a perdu une de ses boucles d'oreilles. Heureusement, je l'ai retrouvée près de sa chaise. La prochaine fois, je dois les resserrer en les nettoyant.
</p>
</div>
</div>
<div id="outline-container-org60305c4" class="outline-3">
<h3 id="org60305c4"><a href="https://sachachua.com/blog/feed/index.xml#org60305c4">samedi 13</a></h3>
<div class="outline-text-3" id="text-org60305c4">
<p>
J'ai travaillé sur la paperasse de l'assurance-vie.
</p>

<p>
Sur Donjons et Dragons, nous avons gardé les prisonniers.
</p>

<p>
Sur Stardew, j'ai amélioré ma pioche et ma hache.
</p>

<p>
Mon mari, ma fille et moi avons regardé le film Donjons et Dragons parce que maintenant ma fille peut comprendre toutes les blagues. Nous nous sommes amusés. #fr
</p>
</div>
</div>
<div id="outline-container-org9436709" class="outline-3">
<h3 id="org9436709"><a href="https://sachachua.com/blog/feed/index.xml#org9436709">dimanche 14</a></h3>
<div class="outline-text-3" id="text-org9436709">
<p>
Mon tuteur français habituel va prendre des vacances la semaine prochaine. Je pense à trouver un autre tuteur pour explorer d'autres méthodes d'apprentissage. Si l'un d'eux me plaît, je peux replanifier mes rendez-vous pour faire une alternance. C'est mieux que je m'entraîne à écouter des personnes variées.
</p>

<p>
Ma fille était déçue parce que nous n'avions pas d'œufs pour préparer une grande omelette comme d'habitude. Elle s'est assise contre sa porte.
</p>

<p>
J'ai travaillé comme consultante. J'ai corrigé des erreurs après la mise à jour du système.
</p>

<p>
Malgré la pluie, ma fille et moi sommes allées au supermarché à pied pour acheter des œufs et d'autres aliments.
</p>

<p>
Sur Donjons et Dragons, ma fille a commencé un nouveau personnage qui s'appelle Celesti, une magicienne tieffeline. J'ai créé une guerrière qui s'appelle Olga pour l'accompagner. Nous avons collecté les chèvres perdues de Cornflower.
</p>

<p>
J'ai mis à jour le mot de passe de ma fille avec l'aide de son enseignant.
</p>
</div>
</div>
<div><a href="https://sachachua.com/blog/2026/06/la-semaine-du-7-au-14-juin/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%2F06%2Fla-semaine-du-7-au-14-juin%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="31794" type="application/octet-stream" url="https://sachachua.com/blog/2026/06/la-semaine-du-7-au-14-juin/index.org"/></item><item>
		<title>Considering my time balance this schoolyear, and getting ready for summer</title>
		<link>https://sachachua.com/blog/2026/06/considering-my-time-balance-this-schoolyear-and-getting-ready-for-summer/</link>
		
		<pubDate>Wed, 24 Jun 2026 14:55:30 GMT</pubDate>
    <category>time</category>
<category>quantified</category>
<category>parenting</category>
<category>life</category>
		<guid isPermaLink="false">https://sachachua.com/blog/2026/06/considering-my-time-balance-this-schoolyear-and-getting-ready-for-summer/</guid>
		<description><![CDATA[<p>
It's <abbr title="our 10-year-old" tabindex="0">A+'s</abbr> last week of virtual Grade 4 before summer vacation.
This time of the year, when the teachers turn to filler activities
like games and movies, she tends to find the pace excruciatingly slow
and of little interest to her. There was a substitute teacher on
Monday. She's not keen on having a substitute teacher since they tend
to run into technical issues or go at a much slower pace. She already
finds the regular class pace agonizingly slow. Her classmates goof off
a bit more around a sub, too. But I needed some time for paperwork, so
she begrudgingly signed into class. She reported that, as predicted,
they got absolutely nothing done. The students played games and
watched a movie. On Tuesday, there was another substitute. I'd done my
paperwork for now, so I called the school to let them know she'd be
absent. We were about to head out for some ice cream after breakfast,
but she got upset about something and decided to stay in her room for
a bit. I finished putting together Emacs News and played a bit of
<a href="https://www.stardewvalley.net/">Stardew Valley</a> with the <a href="https://www.nexusmods.com/stardewvalley/mods/41830">Tileman Reworked</a> mod to destress after the
last few days of paperwork, and then I started on this reflection.
</p>

<p>
(Wednesday update: Back to the regular teacher, but now there's a Zoom
update that's making it hard for the students to connect to class, so
the teacher is switching back to Google Meet for a bit. It sounds like
A+ managed to make it back on. This afternoon, they're going to play
some more games and watch a movie, so I think I'll take A+ out if she
wants to do some math or go shop for earbuds to replace the one she
lost.)
</p>

<p>
The change of routines to summer is a bit challenging for us. Well, the schoolyear is challenging for us too. I suppose summer is challenging in a different way. The playgrounds are busier and louder. The sun is brighter and hotter. The usual rhythms of playdates with her friends changes as they go to sumgmer camps or other activities. I move from having medium-sized chunks of fairly predictable focus time to playing everything by ear.
</p>
<div id="outline-container-considering-my-time-balance-this-schoolyear-and-getting-ready-for-summer-time-analysis" class="outline-3">
<h3 id="considering-my-time-balance-this-schoolyear-and-getting-ready-for-summer-time-analysis"><a href="https://sachachua.com/blog/feed/index.xml#considering-my-time-balance-this-schoolyear-and-getting-ready-for-summer-time-analysis">Time analysis</a></h3>
<div class="outline-text-3" id="text-considering-my-time-balance-this-schoolyear-and-getting-ready-for-summer-time-analysis">
<p>
Before we officially head into summer, I want to think about how I used my time this schoolyear, and how I can prepare for summer and next schoolyear. How to read this graph: gray is sleep, pink is childcare, blue is more focused time, orange is consulting. If you click on the image, it opens an SVG with tooltips.
</p>


<figure id="org8d3cab6">
<a href="https://sachachua.com/blog/2026/06/considering-my-time-balance-this-schoolyear-and-getting-ready-for-summer/2024-2025.svg"><img src="https://sachachua.com/blog/2026/06/considering-my-time-balance-this-schoolyear-and-getting-ready-for-summer/2024-2025.png" alt="2024-2025.png"></a>

<figcaption><span class="figure-number">Figure 1: </span>2024-2025 (grade 3)</figcaption>
</figure>


<figure id="org764fc92">
<a href="https://sachachua.com/blog/2026/06/considering-my-time-balance-this-schoolyear-and-getting-ready-for-summer/2025-2026.svg"><img src="https://sachachua.com/blog/2026/06/considering-my-time-balance-this-schoolyear-and-getting-ready-for-summer/2025-2026.png" alt="2025-2026.png"></a>

<figcaption><span class="figure-number">Figure 2: </span>2025-2026 (grade 4)</figcaption>
</figure>

<p>
The biggest difference was that A+ wanted to exert more independence and autonomy when it came to school. In Grade 3, she wanted me to stay in her room so that she could ask me for help or hang out with me when she was bored. In grade 4, she preferred to have her room all to herself. <abbr title="my husband" tabindex="0">W-</abbr> helped me set up a little desk in the corner of another room on the same floor, so I could still be close by, but A+ mostly did things independently. Or didn't do things, as the case may be; I learned not to push her on schoolwork, since the only thing that accomplished was grumpiness all around. I've been practising stepping back. It's her experiment, after all, and the teachers can give her feedback on school things. I can keep myself busy with my own focused-time stuff so that I don't fret at her. After I got through my initial anxieties, I settled into doing more of my stuff during the schoolday.
</p>

<table>


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

<col class="org-right">

<col class="org-right">

<col class="org-right">

<col class="org-right">

<col class="org-right">
</colgroup>
<thead>
<tr>
<th scope="col" class="org-left">Category</th>
<th scope="col" class="org-right">2024-2025 %</th>
<th scope="col" class="org-right">2025-2026 %</th>
<th scope="col" class="org-right">Diff %</th>
<th scope="col" class="org-right">h/wk</th>
<th scope="col" class="org-right">Diff h/wk</th>
</tr>
</thead>
<tbody>
<tr>
<td class="org-left">Personal</td>
<td class="org-right">9.2</td>
<td class="org-right">13.8</td>
<td class="org-right">4.6</td>
<td class="org-right">23.2</td>
<td class="org-right">7.7</td>
</tr>

<tr>
<td class="org-left">Discretionary - Productive</td>
<td class="org-right">13.9</td>
<td class="org-right">18.4</td>
<td class="org-right">4.6</td>
<td class="org-right">30.9</td>
<td class="org-right">7.6</td>
</tr>

<tr>
<td class="org-left">Unpaid work</td>
<td class="org-right">4.1</td>
<td class="org-right">4.6</td>
<td class="org-right">0.5</td>
<td class="org-right">7.7</td>
<td class="org-right">0.8</td>
</tr>

<tr>
<td class="org-left">Discretionary - Family</td>
<td class="org-right">0.3</td>
<td class="org-right">0.7</td>
<td class="org-right">0.4</td>
<td class="org-right">1.1</td>
<td class="org-right">0.6</td>
</tr>

<tr>
<td class="org-left">Discretionary - Play</td>
<td class="org-right">1.9</td>
<td class="org-right">1.1</td>
<td class="org-right">-0.8</td>
<td class="org-right">1.9</td>
<td class="org-right">-1.3</td>
</tr>

<tr>
<td class="org-left">Business</td>
<td class="org-right">2.1</td>
<td class="org-right">1.1</td>
<td class="org-right">-1.0</td>
<td class="org-right">1.8</td>
<td class="org-right">-1.7</td>
</tr>

<tr>
<td class="org-left">Sleep</td>
<td class="org-right">33.4</td>
<td class="org-right">32.2</td>
<td class="org-right">-1.1</td>
<td class="org-right">54.2</td>
<td class="org-right">-1.9</td>
</tr>

<tr>
<td class="org-left">A+</td>
<td class="org-right">35.1</td>
<td class="org-right">28.1</td>
<td class="org-right">-7.1</td>
<td class="org-right">47.1</td>
<td class="org-right">-11.9</td>
</tr>
</tbody>
</table>

<p>
In grade 4, A+ started learning French. I started learning French too so that I could help her. I practised pronounciation with a virtual tutor once or twice a week, and I wrote journal entries in French too. (These images are just screenshots.) There were other discretionary activities, of course.
</p>

<table>


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

<col class="org-right">

<col class="org-right">

<col class="org-right">

<col class="org-right">

<col class="org-right">
</colgroup>
<thead>
<tr>
<th scope="col" class="org-left">Category</th>
<th scope="col" class="org-right">2024-2025 %</th>
<th scope="col" class="org-right">2025-2026 %</th>
<th scope="col" class="org-right">Diff %</th>
<th scope="col" class="org-right">h/wk</th>
<th scope="col" class="org-right">Diff h/wk</th>
</tr>
</thead>
<tbody>
<tr>
<td class="org-left">Discretionary - Productive - French</td>
<td class="org-right">0.0</td>
<td class="org-right">5.2</td>
<td class="org-right">5.2</td>
<td class="org-right">8.8</td>
<td class="org-right">8.8</td>
</tr>

<tr>
<td class="org-left">Discretionary - Productive - Emacs</td>
<td class="org-right">4.5</td>
<td class="org-right">7.3</td>
<td class="org-right">2.8</td>
<td class="org-right">12.2</td>
<td class="org-right">4.8</td>
</tr>

<tr>
<td class="org-left">Discretionary - Play - Stardew Valley</td>
<td class="org-right">1.2</td>
<td class="org-right">0.7</td>
<td class="org-right">-0.5</td>
<td class="org-right">1.2</td>
<td class="org-right">-0.8</td>
</tr>

<tr>
<td class="org-left">Business - Earn - Consulting</td>
<td class="org-right">2.0</td>
<td class="org-right">0.8</td>
<td class="org-right">-1.1</td>
<td class="org-right">1.4</td>
<td class="org-right">-1.9</td>
</tr>

<tr>
<td class="org-left">Discretionary - Productive - Writing</td>
<td class="org-right">2.9</td>
<td class="org-right">1.3</td>
<td class="org-right">-1.6</td>
<td class="org-right">2.2</td>
<td class="org-right">-2.6</td>
</tr>
</tbody>
</table>


<figure id="org8a7effe">
<a href="https://sachachua.com/blog/2026/06/considering-my-time-balance-this-schoolyear-and-getting-ready-for-summer/2026-06-23_12-35-42.png"><img src="https://sachachua.com/blog/2026/06/considering-my-time-balance-this-schoolyear-and-getting-ready-for-summer/2026-06-23_12-35-42.png" alt="2026-06-23_12-35-42.png"></a>

<figcaption><span class="figure-number">Figure 3: </span>Heatmap of time I spent on French (370 hours since Oct 23, 2025)</figcaption>
</figure>

<p>
I tended to turn to Stardew Valley for de-stressing or <a href="https://en.wikipedia.org/wiki/Bedtime_procrastination">revenge bedtime procrastination</a>. Interestingly, my nascent fixation on French pretty much replaced Stardew Valley until it got slowed down by other things happening in my life starting April, which also coincided with my time on Stardew Valley picking up again in April in order to unwind.
</p>


<figure id="org090dfd0">
<a href="https://sachachua.com/blog/2026/06/considering-my-time-balance-this-schoolyear-and-getting-ready-for-summer/2026-06-23_21-33-10.png"><img src="https://sachachua.com/blog/2026/06/considering-my-time-balance-this-schoolyear-and-getting-ready-for-summer/2026-06-23_21-33-10.png" alt="2026-06-23_21-33-10.png"></a>

<figcaption><span class="figure-number">Figure 4: </span>Heatmap of the time I spent on Stardew Valley (175 hours since June 23, 2025)</figcaption>
</figure>

<p>
Emacs continued to be another good way to unwind. I gave myself permission to spend more time just having fun with Emacs. Following up on my reflection for <a href="https://sachachua.com/blog/2026/03/emacs-carnival-march-2026-mistakes-and-learning-to-reach-out/">Emacs Carnival March 2026: Mistakes and learning to reach out</a>, I started scheduling conversations during A+'s schoolday. I did some <a href="https://sachachua.com/topic/live">Yay Emacs livestreams</a> and <a href="https://sachachua.com/blog/category/emacs-chat-podcast/all/">Emacs Chat</a> interviews as an experiment. I think it was a good way to get lots of tips out of people's heads and into videos/transcripts/screenshots, and I also improved my workflow for editing transcripts and extracting images.
Not counting <a href="https://sachachua.com/blog/category/emacs-news">Emacs News</a>, I wrote 47 Emacs-related posts during the previous schoolyear and 65 posts during the current schoolyear.
</p>

<p>
Other changes this schoolyear:
</p>

<ul class="org-ul">
<li><b>Pre-adolescence:</b> A+'s been having a harder time with her feelings. I think this might be related to pre-adolescence. Totally normal. One of my goals is to keep myself calm and regulated, and another one is to help her connect with more people she likes so that she can feel supported even when she's grumpy with me. She can chat with her aunts and cousins via Stars Messenger without needing to go through me, so that's good.</li>
<li><b>Gymnastics:</b> We figured out how to get one-on-one gymnastics classes going, and A+ has been enjoying them.</li>
<li><b>Pokemon:</b> A+ and I started playing Pokemon Go. We play it pretty casually, and we've joined a couple of the meetups. It's been a good excuse to go for the occasional walk, and it's also a good way to take advantage of a bike ride. She's also gone deep into the lore (so many books!) and has watched more than a dozen seasons of the Pokemon TV series. She occasionally plays Pokemon on W-'s old Game Boy Advance.</li>
<li><b>Dungeons &amp; Dragons:</b> We've also been playing D&amp;D. We started playing in virtual sessions with my sisters and nieces. A+'s really taken to it, including experimenting with DMing. We've gone through much of the <a href="https://geektogeekmedia.com/geekery/reviews/dnd-5e-heroes-of-the-borderlands-starter-set-review/">Keep on the Borderlands Starter Set</a> (thanks to my sister) as a duet adventure, except for a number of the Caves of Chaos which were too scary for A+ even though I tried to balance things differently. She's more into roleplaying than combat, so we mostly improvise our own adventures. I keep a d20 and a d6 in my vest, and my phone has virtual dice too for when we're walking around.</li>
<li><b>W-:</b> W- retired, yay! He's been enjoying biking and working on personal projects. A+ still hangs out with me more than with him, but that's fine.</li>
</ul>

<p>
Thoughts for next year:
</p>

<ul class="org-ul">
<li><b>Neurodivergence:</b> A+ and I find it a little challenging to adapt to changes in routine
and also to handle boredom. I think I'll talk to our doctor about
considering a neuropsych assessment in case knowing more about our
brains can help make things a little bit easier for us. I think
she'll still have a bit of leeway at school for the next few years,
so it's a good time to experiment and figure out things that work
better for us. We've been talking about neurodivergent strategies, too.</li>
<li><b>Pre-adolescence:</b> It's probably going to be a little tougher next year
(pre-adolescence, extended family challenges, etc.), but this is
fine. We signed up for all of this, and this is where we get to see
how our preparations work out. It's also good equanimity practice.
The turbulence is natural. I want to stay loving, patient, and
supportive.</li>
<li><b>Emacs:</b> For now, Emacs Chats (and the transcription thereof) might actually
be more useful to the wider Emacs community than my hacking around
with idiosyncratic Emacs Lisp code, especially since I still have a
hard time getting my brain to cooperate with the extra bit of polish
needed to finish an idea and/or properly contribute things upstream.
Livestreaming while I'm tweaking Emacs is an interesting trade-off
which I think ends up being mostly positive: I'm slightly distracted
because I have to talk out loud, but on the plus side, people's
suggestions and questions (and the feeling that other people are
watching) also help me focus on the current task instead of going
down a different rabbit-hole. Or at least it encourages me to either
capture the TODO for the next idea or leave myself some breadcrumbs
if I really do want to go down that other rabbit-hole on stream.
I'll pause these for summer. I'm looking forward to experimenting
with them more next schoolyear, especially if I can balance it with
the work I put into organizing EmacsConf.</li>
<li><b>Virtual school:</b> Virtual school continues to feel like the right
choice for us both in terms of health and the ability to manage
stimulation levels. When she finds her classmates too noisy, she can
lower the volume. When she needs a break, she can sign out and we
can work independently. We hope next year will be a good fit too.
This year, the Toronto District School Board consolidated all its
virtual students into one virtual elementary school, which was nice
because they didn't feel left out of hybrid activities. We still had
the usual transition pains this schoolyear, but maybe next year will
be smoother.</li>
</ul>
</div>
</div>
<div id="outline-container-considering-my-time-balance-this-schoolyear-and-getting-ready-for-summer-getting-ready-for-summer" class="outline-3">
<h3 id="considering-my-time-balance-this-schoolyear-and-getting-ready-for-summer-getting-ready-for-summer"><a href="https://sachachua.com/blog/feed/index.xml#considering-my-time-balance-this-schoolyear-and-getting-ready-for-summer-getting-ready-for-summer">Getting ready for summer</a></h3>
<div class="outline-text-3" id="text-considering-my-time-balance-this-schoolyear-and-getting-ready-for-summer-getting-ready-for-summer">
<p>
Here's what my time looked like last summer:
</p>


<figure id="org3a3448c">
<a href="https://sachachua.com/blog/2026/06/considering-my-time-balance-this-schoolyear-and-getting-ready-for-summer/2025-summer.svg"><img src="https://sachachua.com/blog/2026/06/considering-my-time-balance-this-schoolyear-and-getting-ready-for-summer/2025-summer.png" alt="2025-summer.png"></a>

<figcaption><span class="figure-number">Figure 5: </span>Summer 2025</figcaption>
</figure>

<p>
Unsurprisingly, it's mostly childcare. A+ had a series of private
swimming lessons (too short to do much during) and one afternoon
summer camp (during which I did a lot of consulting). Aside from that,
we basically hung out with each other unless she was grumpy with me or
one of us was in the bathroom. She tended to wake up early, so I
didn't usually get focus time during the morning. Or any time during
the day, really. But now I can practise French in my head, so that's
good. A+ is thinking of getting her own Bluetooth earbuds since
they're helpful for managing overstimulation at the playground, so
I'll be able to get mine back and maybe even listen to comprehensible
input podcasts when she's not directly interacting with me.
</p>

<p>
Comparing summer 2025 with schoolyear 2025-2026:
</p>

<table>


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

<col class="org-right">

<col class="org-right">

<col class="org-right">

<col class="org-right">

<col class="org-right">
</colgroup>
<thead>
<tr>
<th scope="col" class="org-left">Category</th>
<th scope="col" class="org-right">Summer 2025 %</th>
<th scope="col" class="org-right">SY 2025-2026 %</th>
<th scope="col" class="org-right">Diff %</th>
<th scope="col" class="org-right">h/wk</th>
<th scope="col" class="org-right">Diff h/wk</th>
</tr>
</thead>
<tbody>
<tr>
<td class="org-left">Discretionary - Productive</td>
<td class="org-right">10.5</td>
<td class="org-right">18.4</td>
<td class="org-right">7.9</td>
<td class="org-right">30.9</td>
<td class="org-right">13.2</td>
</tr>

<tr>
<td class="org-left">Personal</td>
<td class="org-right">9.8</td>
<td class="org-right">13.8</td>
<td class="org-right">4.0</td>
<td class="org-right">23.2</td>
<td class="org-right">6.7</td>
</tr>

<tr>
<td class="org-left">Sleep</td>
<td class="org-right">30.7</td>
<td class="org-right">32.2</td>
<td class="org-right">1.6</td>
<td class="org-right">54.2</td>
<td class="org-right">2.6</td>
</tr>

<tr>
<td class="org-left">Discretionary - Family</td>
<td class="org-right">0.1</td>
<td class="org-right">0.7</td>
<td class="org-right">0.6</td>
<td class="org-right">1.1</td>
<td class="org-right">1.0</td>
</tr>

<tr>
<td class="org-left">Unpaid work</td>
<td class="org-right">4.3</td>
<td class="org-right">4.6</td>
<td class="org-right">0.2</td>
<td class="org-right">7.7</td>
<td class="org-right">0.4</td>
</tr>

<tr>
<td class="org-left">Business</td>
<td class="org-right">1.5</td>
<td class="org-right">1.1</td>
<td class="org-right">-0.4</td>
<td class="org-right">1.8</td>
<td class="org-right">-0.7</td>
</tr>

<tr>
<td class="org-left">Discretionary - Play</td>
<td class="org-right">6.2</td>
<td class="org-right">1.1</td>
<td class="org-right">-5.1</td>
<td class="org-right">1.9</td>
<td class="org-right">-8.5</td>
</tr>

<tr>
<td class="org-left">A+</td>
<td class="org-right">36.8</td>
<td class="org-right">28.1</td>
<td class="org-right">-8.8</td>
<td class="org-right">47.1</td>
<td class="org-right">-14.8</td>
</tr>
</tbody>
</table>

<p>
As expected, the schoolyear means less time with A+ compared to summer (-14h / week), which mostly gets shifted to productive time (+13h/week). I actually get a little more time to sleep during the schoolyear, too.
So, preparing for this upcoming summer, I can anticipate less sleep and more time with a possibly tetchy kiddo, but if I can take advantage of little moments here and there (like when she's in the bathroom for an unpredictable length of time, or when she needs space for me), then I can take care of whatever I need to stay sane.
</p>

<p>
I'd like to continue with my sessions with French tutors, although I might have to experiment with the timing to see what works. Shortly after lunch might still be nice, since it's probably going to be too bright and hot to enjoy being at the playground. If I keep improving, then I can use little snippets of idle time (like when she's playing with her friends) to rehearse sentences, listen to comprehensible input, or write my journal entries.
</p>

<p>
Let's compare summer 2024 with summer 2025:
</p>

<table>


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

<col class="org-right">

<col class="org-right">

<col class="org-right">

<col class="org-right">

<col class="org-right">
</colgroup>
<thead>
<tr>
<th scope="col" class="org-left">Category</th>
<th scope="col" class="org-right">Summer 2024 %</th>
<th scope="col" class="org-right">Summer 2025 %</th>
<th scope="col" class="org-right">Diff %</th>
<th scope="col" class="org-right">h/wk</th>
<th scope="col" class="org-right">Diff h/wk</th>
</tr>
</thead>
<tbody>
<tr>
<td class="org-left">Discretionary - Productive</td>
<td class="org-right">2.5</td>
<td class="org-right">10.5</td>
<td class="org-right">8.0</td>
<td class="org-right">17.7</td>
<td class="org-right">13.5</td>
</tr>

<tr>
<td class="org-left">Discretionary - Play</td>
<td class="org-right">1.6</td>
<td class="org-right">6.2</td>
<td class="org-right">4.6</td>
<td class="org-right">10.4</td>
<td class="org-right">7.7</td>
</tr>

<tr>
<td class="org-left">Personal</td>
<td class="org-right">7.5</td>
<td class="org-right">9.8</td>
<td class="org-right">2.3</td>
<td class="org-right">16.5</td>
<td class="org-right">3.9</td>
</tr>

<tr>
<td class="org-left">Unpaid work</td>
<td class="org-right">4.1</td>
<td class="org-right">4.3</td>
<td class="org-right">0.2</td>
<td class="org-right">7.3</td>
<td class="org-right">0.4</td>
</tr>

<tr>
<td class="org-left">Discretionary - Family</td>
<td class="org-right">0.6</td>
<td class="org-right">0.1</td>
<td class="org-right">-0.5</td>
<td class="org-right">0.1</td>
<td class="org-right">-0.9</td>
</tr>

<tr>
<td class="org-left">Business</td>
<td class="org-right">4.5</td>
<td class="org-right">1.5</td>
<td class="org-right">-3.0</td>
<td class="org-right">2.5</td>
<td class="org-right">-5.1</td>
</tr>

<tr>
<td class="org-left">A+</td>
<td class="org-right">42.5</td>
<td class="org-right">36.8</td>
<td class="org-right">-5.6</td>
<td class="org-right">61.9</td>
<td class="org-right">-9.5</td>
</tr>

<tr>
<td class="org-left">Sleep</td>
<td class="org-right">36.6</td>
<td class="org-right">30.7</td>
<td class="org-right">-6.0</td>
<td class="org-right">51.5</td>
<td class="org-right">-10.0</td>
</tr>
</tbody>
</table>

<p>
Some thoughts for this upcoming summer:
</p>

<ul class="org-ul">
<li><b>Sleep:</b> I probably want to get back to about 8 hours of sleep a day (33%),
which is totally doable if I resist the temptation to squeeze in
gaming or coding. This probably means I need to take better care of
myself during the day so that I don't feel the urge to indulge in
revenge bedtime procrastination, which probably means (1) finding
ways to spend time with A+ that I enjoy more, like D&amp;D, biking, or
swimming, and (2) using French or other portable
pick-up-and-put-down activities to take advantage of little snippets
of free time.</li>
<li><b>Childcare:</b> A+ might want to spend lots of time with me, but less than the
previous year as she becomes more independent, and the sharp drop in
the time kids want to spend with their parents is coming inexorably.
I can probably keep the discretionary stuff to just whatever keeps
me sane, and focus on enjoying time with A+. Maybe more D&amp;D,
especially since we're figuring out ways to improvise on the go.
Swimming is nice, too.</li>
</ul>

<p>
FAQ:
</p>

<ul class="org-ul">
<li>How much time does it take to track and analyze your time?
<ul class="org-ul">
<li>Hardly any time to track it, maybe a couple of seconds between
activities. I made a home-made web-based system for tracking my
time, and I can easily update it by tapping buttons on my
smartphone or specifying a less common category. It doesn't have
to be super precise. Most of the analysis reuses code from
previous years, including the web-based graphs. I generate the
tables with Emacs Lisp in an Org Mode Babel block. Thinking about
how I've been using the time takes time and reflection, but it's
good for me.</li>
</ul></li>
<li>Can you share your tracking system?
<ul class="org-ul">
<li>I used to let other people use it, but bots kept hammering it, so
now it's just for me. Here's the <a href="https://github.com/sachac/quantified">source code</a> just in case you want
to try self-hosting.</li>
</ul></li>
</ul>
</div>
</div>
<div><a href="https://sachachua.com/blog/2026/06/considering-my-time-balance-this-schoolyear-and-getting-ready-for-summer/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%2F06%2Fconsidering-my-time-balance-this-schoolyear-and-getting-ready-for-summer%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="19797" type="application/octet-stream" url="https://sachachua.com/blog/2026/06/considering-my-time-balance-this-schoolyear-and-getting-ready-for-summer/index.org"/></item><item>
		<title>2026-06-22 Emacs news</title>
		<link>https://sachachua.com/blog/2026/06/2026-06-22-emacs-news/</link>
		
		<pubDate>Tue, 23 Jun 2026 02:30:26 GMT</pubDate>
    <category>emacs</category>
<category>emacs-news</category>
		<guid isPermaLink="false">https://sachachua.com/blog/2026/06/2026-06-22-emacs-news/</guid>
		<description><![CDATA[<p>
There was lots of discussion around Rahul's post on Emacs 31. It's the
first link in the list below, so I won't repeat the links here. Also,
I like visualizations, so I thought these <a href="https://github.com/elij/grove-extra">force-directed graphs</a>
(<a href="https://www.reddit.com/r/emacs/comments/1u9vvt3/emacs_svg_rendering_in_force_directed_graph_sims/">Reddit</a>) and <a href="https://github.com/krvkir/org-mindmap">text-based mindmaps</a> (<a href="https://www.reddit.com/r/emacs/comments/1u82429/orgmindmap_v030/">Reddit</a>, <a href="https://lobste.rs/s/sqiyga/org_mindmap_editable_mindmaps_for_org">lobste.rs</a>) were pretty cool.
Enjoy!
</p>

<ul class="org-ul">
<li>Emacs 31:
<ul class="org-ul">
<li><a href="https://www.rahuljuliato.com/posts/emacs-31-around-the-corner">Emacs 31 Is Around the Corner: The Changes I'm Already Daily Driving</a> (<a href="https://www.reddit.com/r/emacs/comments/1u8vr3e/emacs_31_is_around_the_corner_the_changes_im/">Reddit</a>, <a href="https://news.ycombinator.com/item?id=48584135">HN</a>, <a href="https://lobste.rs/s/b0mp2e/changes_emacs_31_i_m_already_daily_driving">lobste.rs</a>, <a href="https://irreal.org/blog/?p=13889">Irreal</a>)</li>
</ul></li>
<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 Jun 24 1000 America/Vancouver - 1200 America/Chicago - 1300 America/Toronto - 1700 Etc/GMT - 1900 Europe/Berlin - 2230 Asia/Kolkata &ndash; Thu Jun 25 0100 Asia/Singapore</li>
<li>Emacs APAC: Emacs APAC meetup (virtual) <a href="https://emacs-apac.gitlab.io/announcements/">https://emacs-apac.gitlab.io/announcements/</a> Sat Jun 27 0130 America/Vancouver - 0330 America/Chicago - 0430 America/Toronto - 0830 Etc/GMT - 1030 Europe/Berlin - 1400 Asia/Kolkata - 1630 Asia/Singapore</li>
<li>EmacsATX: Emacs Social <a href="https://www.meetup.com/emacsatx/events/315091677/">https://www.meetup.com/emacsatx/events/315091677/</a> Thu Jul 2 1600 America/Vancouver - 1800 America/Chicago - 1900 America/Toronto - 2300 Etc/GMT &ndash; Fri Jul 3 0100 Europe/Berlin - 0430 Asia/Kolkata - 0700 Asia/Singapore</li>
<li>M-x Research: TBA <a href="https://m-x-research.github.io/">https://m-x-research.github.io/</a> Fri Jul 3 0800 America/Vancouver - 1000 America/Chicago - 1100 America/Toronto - 1500 Etc/GMT - 1700 Europe/Berlin - 2030 Asia/Kolkata - 2300 Asia/Singapore</li>
<li>Emacs.si (in person): Emacs.si meetup #7 2026 (v #živo) <a href="https://dogodki.kompot.si/events/88d59360-d89a-42cc-b567-ed39ac5186fb">https://dogodki.kompot.si/events/88d59360-d89a-42cc-b567-ed39ac5186fb</a> Mon Jul 6 1900 CET</li>
</ul></li>
<li>Beginner:
<ul class="org-ul">
<li><a href="https://www.chiply.dev/post-ask-emacs">Emacs Teaches Emacs: The Missing README</a> (<a href="https://www.youtube.com/watch?v=5ZZvQA0Ceb4">YouTube</a> 13:57, <a href="https://www.reddit.com/r/emacs/comments/1u9k3td/emacs_teaches_emacs_the_missing_readme/">Reddit</a>, <a href="https://irreal.org/blog/?p=13891">Irreal</a>, <a href="https://fosstodon.org/@chiply/116773411167976275">@chiply@fosstodon.org</a>)</li>
<li><a href="https://www.chiply.dev/post-june-emacs-carnival">Charlie Holland: Juneau Something? Emacs Teaches You How to Fish!</a> (<a href="https://www.youtube.com/watch?v=vnJhd-AgOBE">YouTube</a> 01:13:19, <a href="https://www.reddit.com/r/emacs/comments/1u8b0we/juneau_something_emacs_teaches_you_how_to_fish/">Reddit</a>, <a href="https://irreal.org/blog/?p=13884">Irreal</a>, <a href="https://fosstodon.org/@chiply/116766579307318213">@chiply@fosstodon.org</a>)</li>
</ul></li>
<li>Emacs configuration:
<ul class="org-ul">
<li><a href="https://mbork.pl/2026-06-22_Disabling_minor_modes_with_local_variables">Marcin Borkowski: Disabling minor modes with local variables</a></li>
<li><a href="https://github.com/alberti42/straight-overview">For straight.el people: an overview of outdated packages, and control over what gets updated</a> (<a href="https://www.reddit.com/r/emacs/comments/1u9unvy/for_straightel_people_an_overview_of_outdated/">Reddit</a>)</li>
<li><a href="https://github.com/Borderliner/Chadmacs">Updated Chadmacs</a> (<a href="https://www.reddit.com/r/emacs/comments/1u9sbki/updated_chadmacs/">Reddit</a>)</li>
<li><a href="https://github.com/66-firebat/emacs">Firemacs Review</a> (<a href="https://www.reddit.com/r/emacs/comments/1uctzm3/firemacs_review/">Reddit</a>)</li>
</ul></li>
<li>Emacs Lisp:
<ul class="org-ul">
<li><a href="https://fosstodon.org/@lucashtns/116796404126391963">Tip: debug-on-variable-change (@lucashtns)</a></li>
<li><a href="https://www.youtube.com/watch?v=WO00BWgvWro">Xah Talk Show Ep795. emacs lisp. add width height to html image thumbnails. part 2</a> (01:01:50), <a href="https://www.youtube.com/watch?v=-PpAGJ5_IsY">part 3</a> (02:19:51)</li>
<li><a href="https://www.youtube.com/watch?v=MjO74sC_10Q">Construindo um pacote do Emacs como um asteca</a> (01:33:45)</li>
</ul></li>
<li>Appearance:
<ul class="org-ul">
<li><a href="https://www.reddit.com/r/emacs/comments/1ubltvy/ghosting_cursor_effect/">Ghosting cursor effect</a></li>
<li><a href="https://github.com/barrulus/forge-cursor">Some cursor flare</a> (<a href="https://www.reddit.com/r/emacs/comments/1uavdc5/some_cursor_flare/">Reddit</a>)</li>
<li><a href="https://blog.davep.org/2026/06/15/more-mode-line-tweaking.html">Dave Pearson: More mode line tweaking</a></li>
<li><a href="https://www.reddit.com/gallery/1u9867g">Modus Nordic (Mid-)Night: high-contrast themes using the Nord color palette using Modus Themes as the base</a></li>
<li><a href="https://protesilaos.com/codelog/2026-06-17-emacs-testing-doric-themes-common-colour-values/">Protesilaos: Emacs: testing common colour values with the doric-themes</a></li>
<li><a href="https://protesilaos.com/codelog/2026-06-21-emacs-ef-themes-2-2-0/">Protesilaos: Emacs: ef-themes version 2.2.0</a></li>
<li><a href="https://protesilaos.com/codelog/2026-06-21-emacs-modus-themes-5-3-0/">Protesilaos: Emacs: modus-themes version 5.3.0</a></li>
</ul></li>
<li>Navigation:
<ul class="org-ul">
<li><a href="https://emacsredux.com/blog/2026/06/20/essential-structured-navigation-and-editing-commands/">Emacs Redux: Essential Structured Navigation and Editing Commands</a> (<a href="https://irreal.org/blog/?p=13893">Irreal</a>)</li>
<li><a href="https://www.reddit.com/r/emacs/comments/1uafbsn/underappreciated_emacs_builtins_hideshow_60/">Underappreciated Emacs built-ins: hideshow 6.0</a></li>
<li><a href="https://www.youtube.com/watch?v=ITR_gXnV9wo">Emacs HideShow Minor Mode For Folding And Unfolding 2026_06_21_03:01:51</a> (07:02)</li>
<li><a href="https://github.com/dalanicolai/jerboa">Amazing bookmarks (or quick keymaps)</a> (<a href="https://www.reddit.com/r/emacs/comments/1uc9a9i/amazing_bookmarks_or_quick_keymaps/">Reddit</a>)</li>
<li><a href="https://mbork.pl/2026-06-15_Scrolling_pdfs_in_other_windows">Marcin Borkowski: Scrolling pdfs in other windows</a> (<a href="https://irreal.org/blog/?p=13880">Irreal</a>)</li>
<li><a href="https://www.youtube.com/watch?v=-u0xfy5JMdU">How to Split the Screen in Emacs</a> (02:02)</li>
</ul></li>
<li>Dired:
<ul class="org-ul">
<li><a href="https://www.reddit.com/r/emacs/comments/1u9nbbg/dired_global_script_runner_a_yaziinspired_global/">Dired Global Script Runner: A Yazi-inspired global file marking system for Dired</a></li>
</ul></li>
<li>Writing:
<ul class="org-ul">
<li><a href="https://github.com/luqtas/log-mode">luqtas/log-mode: cheap copy of Logseq with some extra goods · GitHub</a></li>
</ul></li>
<li>Org Mode:
<ul class="org-ul">
<li>RFC: <a href="https://i.redd.it/p05xlhzi9i7h1.png">Ideas for clearer Org clock idle resolution prompts?</a> (<a href="https://www.reddit.com/r/orgmode/comments/1u6sewx/ideas_for_clearer_org_clock_idle_resolution/">Reddit</a>)</li>
<li><a href="https://list.orgmode.org/CH3PR84MB3424DDF3E642AB403B70D177C50F2@CH3PR84MB3424.NAMPRD84.PROD.OUTLOOK.COM">[RFC] org-agenda log-mode is very confusing - Morgan Smith</a> (<a href="https://www.reddit.com/r/orgmode/comments/1u6sewx/ideas_for_clearer_org_clock_idle_resolution/">Reddit</a>)</li>
<li><a href="https://list.orgmode.org/CAL1eYuJMqwZNPxnoGhWGSp63=Gg1iToHzKrcgVdpJfWhiS83kg@mail.gmail.com">[FR] add :company-doc-buffer, :company-kind etc properties for pcomplete in org-mode - stardiviner</a></li>
<li><a href="https://github.com/kpassapk/devops.el">devops.el - Infrastructure as an org file</a> (<a href="https://www.reddit.com/r/emacs/comments/1ucu6xp/devopsel_infrastructure_as_an_org_file/">Reddit</a>)</li>
<li><a href="https://github.com/kickingvegas/anju/discussions/156">v1.6.0 · kickingvegas/anju · context menu support for Org agenda</a> (<a href="https://sfba.social/@kickingvegas/116767945517592307">@kickingvegas@sfba.social</a>)</li>
<li><a href="https://ray-on-emacs.blogspot.com/2026/06/emacs-carnival-diary-part-2.html">Raymond Zeitler: Emacs Carnival: diary, Part 2</a> (<a href="https://irreal.org/blog/?p=13882">Irreal</a>)</li>
<li><a href="https://github.com/krvkir/org-mindmap">org-mindmap v0.3.0</a> (<a href="https://www.reddit.com/r/emacs/comments/1u82429/orgmindmap_v030/">Reddit</a>, <a href="https://lobste.rs/s/sqiyga/org_mindmap_editable_mindmaps_for_org">lobste.rs</a>)</li>
<li><a href="https://www.macs.hw.ac.uk/~rs46/posts/2026-06-12-eisvogel-org-export-pdf.html">Exporting org files to PDF with the Eisvogel latex template</a> (<a href="https://www.reddit.com/r/emacs/comments/1u7eq0g/exporting_org_files_to_pdf_with_the_eisvogel/">Reddit</a>)</li>
<li><a href="https://list.orgmode.org/87zf0me6so.fsf@gmail.com">Org Mode requests: [FR] Exporter for ltx-talk</a></li>
<li><a href="https://list.orgmode.org/8733ygi64t.fsf@localhost/T/#u">Notes on recent OrgDevMeetup</a> (<a href="https://www.reddit.com/r/orgmode/comments/1u7nntz/new_orgdevmeetup_on_saturday_lets_contribute_to/">Reddit</a>)</li>
<li>Org development: <a href="https://git.savannah.gnu.org/cgit/emacs/org-mode.git/commit/etc/ORG-NEWS?id=07c6db9bc8f4626e21e3c6a275b1640f6202cf14">org-colview: Add quick help for column view</a></li>
</ul></li>
<li>Completion:
<ul class="org-ul">
<li><a href="https://www.reddit.com/r/emacs/comments/1ub7h89/underappreciated_emacs_builtins/">Underappreciated Emacs built-ins: completion-preview-mode</a></li>
</ul></li>
<li>Coding:
<ul class="org-ul">
<li><a href="https://metaredux.com/posts/2026/06/16/cider-1-22.html">Meta Redux: CIDER 1.22 (“São Miguel”)</a></li>
<li><a href="http://box.matto.nl/start-guile-shell-script-that-listens-on-a-port-for-repl-client.html">Start Guile shell script that listens on a port for REPL client - box.matto.nl</a> (<a href="https://snac.lab8.cz/mattof/p/1781641221.269522">@mattof@snac.lab8.cz</a>)</li>
<li><a href="https://codeberg.org/hgrsd/ztags">hgrsd/ztags: Generate ctags-based tags for your Zig project, including Zig sources and stdlib.</a> (<a href="https://hachyderm.io/@hgrsd/116798677831846923">@hgrsd@hachyderm.io</a>) - now supports etags output</li>
<li><a href="https://git.sr.ht/~shoshin/ruby-khipu">~shoshin/ruby-khipu - Implementation of the Inka Khipu as a data structure in Ruby. - sourcehut git</a> (<a href="https://buzz.cicadas.surf/@shoshin/116757888253657531">@shoshin@buzz.cicadas.surf</a>) - literate programming</li>
</ul></li>
<li>Shells:
<ul class="org-ul">
<li><a href="https://www.reddit.com/r/emacs/comments/1u9l3fp/ghostel_is_fantastic/">Ghostel is Fantastic</a> (<a href="https://github.com/dakra/ghostel">Github</a>)</li>
<li><a href="https://github.com/csheaff/tmux-control">tmux-control : control-mode client for tmux</a> (<a href="https://www.reddit.com/r/emacs/comments/1u7wgfz/tmuxcontrol_controlmode_client_for_tmux/">Reddit</a>)</li>
<li><a href="https://cashmere.rs/blog/kitty-graphicsel-v100-document-zoom-pan-and-doctor/">kitty-graphics.el 1.0.0: images, video, and documents in terminal Emacs</a> (<a href="https://www.reddit.com/r/emacs/comments/1u7f5lw/kittygraphicsel_100_images_video_and_documents_in/">Reddit</a>)</li>
<li><a href="https://www.reddit.com/r/emacs/comments/1u78ufn/eatserial_an_eat_term_based_serial_terminal/">eat-serial: An eat term based serial terminal</a></li>
</ul></li>
<li>Web:
<ul class="org-ul">
<li><a href="https://ohyecloudy.com/emacsian/2024/05/11/web-archive/">URL로부터 Title을 가져오고 Web Archive 링크를 생성하는 Emacs 함수 - (emacsian ohyecloudy)</a></li>
</ul></li>
<li>Mail, news, and chat:
<ul class="org-ul">
<li><a href="https://github.com/parenworks/clatter.el">Clatter: An IRCv3-compliant IRC client</a> (<a href="https://www.reddit.com/r/emacs/comments/1ucq5vy/clatter_an_ircv3compliant_irc_client/">Reddit</a>)</li>
<li><a href="https://www.youtube.com/watch?v=HlEuXpG992A">Elfeed 4 0 0 使用分享</a> (49:47)</li>
</ul></li>
<li>Evil mode:
<ul class="org-ul">
<li><a href="https://fosstodon.org/@rogerfarrell/116772158102613873">evil-mode tip: make \ allow one-off normal state execution (@rogerfarrell)</a></li>
</ul></li>
<li>Multimedia:
<ul class="org-ul">
<li><a href="https://en.andros.dev/blog/4b707a03/how-i-built-a-gpu-backend-for-emacs/">How I built a GPU backend for Emacs | Andros Fenollosa</a> (<a href="https://activity.andros.dev/@andros/statuses/01KVSY47V3RWJRE42MJWA6214E">@andros@activity.andros.dev</a>)
<ul class="org-ul">
<li><a href="https://andros.dev/blog/ea7a1527/como-construi-un-backend-de-gpu-para-emacs/">Cómo construí un backend de GPU para Emacs | Andros Fenollosa</a></li>
</ul></li>
<li><a href="https://github.com/elij/grove-extra">Emacs SVG rendering in force directed graph sims revisited</a> (<a href="https://www.reddit.com/r/emacs/comments/1u9vvt3/emacs_svg_rendering_in_force_directed_graph_sims/">Reddit</a>)</li>
<li><a href="https://www.youtube.com/watch?v=Btrw8g8GTjQ">Speech to text with Whisper-cpp Emacs and whisper.el</a> (55:56)</li>
<li><a href="https://xenodium.com/ytr-youtube-radio-for-emacs">Alvaro Ramirez: ytr: YouTube radio for Emacs</a> (<a href="https://www.reddit.com/r/emacs/comments/1ucwbi8/ytr_youtube_radio_for_emacs/">Reddit</a>, <a href="https://news.ycombinator.com/item?id=48636380">HN</a>, <a href="https://irreal.org/blog/?p=13895">Irreal</a>)</li>
</ul></li>
<li>AI:
<ul class="org-ul">
<li><a href="https://www.youtube.com/watch?v=7fdHeUoRRgg">Bending Emacs Episode 14: Prototyping iOS apps with agent-shell, artist-mode, and Claude Skills</a> (<a href="https://www.youtube.com/watch?v=7fdHeUoRRgg">YouTube</a> 26:39, <a href="https://www.reddit.com/r/emacs/comments/1u9eage/bending_emacs_episode_14_prototyping_ios_apps/">Reddit</a>)</li>
</ul></li>
<li>Community:
<ul class="org-ul">
<li><a href="https://www.reddit.com/r/emacs/comments/1u71nm1/fortnightly_tips_tricks_and_questions_20260616/">Fortnightly Tips, Tricks, and Questions — 2026-06-16 / week 24</a></li>
<li><a href="https://blogsystem5.substack.com/p/is-anyone-still-using-emacs">Is anyone still using Emacs? - by Julio Merino</a>  (<a href="https://lobste.rs/s/s1ep1w/is_anyone_still_using_emacs">lobste.rs</a>, <a href="https://news.ycombinator.com/item?id=48615739">HN</a>, <a href="https://news.ycombinator.com/item?id=48615739">HN</a>)</li>
<li><a href="https://xvw.lol/en/articles/emacs-start.html">xvw.lol - Emacs, how it all started (for me)</a> (<a href="https://news.ycombinator.com/item?id=48542784">HN</a>, <a href="https://merveilles.town/@xvw/116754855899834357">@xvw@merveilles.town</a>)
<ul class="org-ul">
<li><a href="https://xvw.lol/pages/emacs-start.html">xvw.lol - Emacs, comment tout a démarré (pour moi)</a></li>
</ul></li>
<li><a href="https://sachachua.com/blog/2026/06/emacs-chat-with-ross-a-baker/">Sacha Chua: Emacs Chat 26: Ross A. Baker</a> (<a href="https://www.youtube.com/watch?v=_tEcqbi_2o8">YouTube</a> 01:02:45)</li>
</ul></li>
<li>Other:
<ul class="org-ul">
<li><a href="https://ray-on-emacs.blogspot.com/2026/06/emacs-carnival-diary-part-1.html">Raymond Zeitler: Emacs Carnival: diary, Part 1</a></li>
<li><a href="https://blog.davep.org/2026/06/16/become-el-v1-4-0.html">Dave Pearson: become.el v1.4.0</a> - tidying files before saving</li>
<li><a href="https://www.gnu.org/software/emacs/manual/html_node/emacs/Document-View.html">Document View (GNU Emacs Manual)</a> (<a href="https://mathstodon.xyz/@annamalai/116758228616242732">@annamalai@mathstodon.xyz</a>) - can open PDFs as plain text</li>
<li><a href="https://monadicsheep.org/blog/hello.html">Monadic Sheep: Hello there!</a> - Emacs Reader, PALE (picture and animation), canvas patch, Insidious YouTube client</li>
<li><a href="https://masutaka.net/en/2026-06-21-1/">Switching from the Mac port Build of Emacs to the Standard NS Build | Masutaka's ChangeLog Memo</a>
<ul class="org-ul">
<li><a href="https://masutaka.net/2026-06-21-1/">Mac port 版 Emacs から、標準の NS 版に乗り換えられた | マスタカの ChangeLog メモ</a></li>
</ul></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=c7b156dce38a51aff3096fb34a8fbfccfb6c077c">gv.el: Allow use of `ignore` as a place (bug#81217)</a></li>
<li><a href="https://git.savannah.gnu.org/cgit/emacs.git/commit/etc/NEWS?id=e13fb667a2179548a1b57bf1e345b5a1dc00bb24">Support OSC 8 hyperlinks in man pages</a></li>
<li><a href="https://git.savannah.gnu.org/cgit/emacs.git/commit/etc/NEWS?id=3e0915c68825ca88244ddf1f670f6dd62dcd131c">; * etc/NEWS: Document 'newsticker-treeview-copy-url' (bug#81013).</a></li>
<li><a href="https://git.savannah.gnu.org/cgit/emacs.git/commit/etc/NEWS?id=08f02cbae08ccd945fc09d48c3ee02dce628bee8">VC-Dir shows key binding hints</a></li>
</ul></li>
<li>New packages:
<ul class="org-ul">
<li><a target="_blank" href="https://melpa.org/#/clatter">clatter</a>: An IRCv3-compliant IRC client (MELPA)</li>
<li><a target="_blank" href="https://melpa.org/#/countdown-modeline">countdown-modeline</a>: Display a color-coded countdown in the modeline (MELPA)</li>
<li><a target="_blank" href="https://melpa.org/#/leadkey">leadkey</a>: Translate leader keys to key sequences (MELPA)</li>
<li><a target="_blank" href="https://melpa.org/#/notmuch-multi">notmuch-multi</a>: Prettified Notmuch UI For Multiple Accounts (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-06">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/06/2026-06-22-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%2F06%2F2026-06-22-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="239811" type="application/octet-stream" url="https://emacslife.com/calendar/emacs-calendar.ics"/></item><item>
		<title>Emacs Chat 26: Ross A. Baker</title>
		<link>https://sachachua.com/blog/2026/06/emacs-chat-with-ross-a-baker/</link>
		
		<pubDate>Thu, 18 Jun 2026 18:28:45 GMT</pubDate>
    <category>emacs</category>
<category>emacs-chat-podcast</category>
<category>emacs-chat</category>
		<guid isPermaLink="false">https://sachachua.com/blog/2026/06/emacs-chat-with-ross-a-baker/</guid>
		<description><![CDATA[<div class="update" id="org74dd95d">
<p>
<span class="timestamp-wrapper"><time class="timestamp" datetime="2026-06-19">[2026-06-19 Fri]</time></span>: Added transcript.
</p>

</div>

<p>
I chatted with <a href="https://rossabaker.com/">Ross Baker</a> about Emacs (including running Emacs 28), his Emacs config, and life.
<video preload="none" controls="1" src="https://archive.org/download/emacs-chat-26-ross-a-baker/emacs-chat-26-ross-a-baker.mp4" poster="https://sachachua.com/blog/2026/06/emacs-chat-with-ross-a-baker/2026-04-22-14-14-12%20emacs-chat-ross-a-baker.png" type="video/mp4"><track kind="subtitles" label="Captions" src="https://sachachua.com/blog/2026/06/emacs-chat-with-ross-a-baker/emacs-chat-26-ross-a-baker.vtt" srclang="en" default=""><span>Video not supported. Thumbnail:<br><img src="https://sachachua.com/blog/2026/06/emacs-chat-with-ross-a-baker/2026-04-22-14-14-12%20emacs-chat-ross-a-baker.png" alt="Thumbnail"></span></video>
</p>

<p>
<a href="https://archive.org/details/emacs-chat-26-ross-a-baker/">View in the Internet Archive</a>, <a href="https://youtube.com/live/_tEcqbi_2o8">watch or comment on YouTube</a>, <a href="https://sachachua.com/blog/feed/index.xml#ID-emacs-chat-26-ross-a-baker-transcript">read the transcript online</a>, <a href="https://sachachua.com/blog/2026/06/emacs-chat-with-ross-a-baker/emacs-chat-26-ross-a-baker.vtt">download the transcript</a>, or <a href="mailto:sacha@sachachua.com">e-mail me</a>.
</p>

<p>
Related links:
</p>

<ul class="org-ul">
<li><a href="https://rossabaker.com/blog/">Blog</a>
<ul class="org-ul">
<li><a href="https://rossabaker.com/tags/emacs/">Posts tagged #emacs</a></li>
<li><a href="https://rossabaker.com/blog/take-two-coming-home-to-emacs/">Ross A. Baker: Take Two: Coming Home to Emacs</a></li>
</ul></li>
<li><a href="https://rossabaker.com/configs/emacs/">Emacs config</a>
<ul class="org-ul">
<li><a href="https://rossabaker.com/configs/emacs/early-init/">Emacs Early Init</a></li>
<li><a href="https://rossabaker.com/configs/emacs/khlav-kalash/">Khlav Kalash Emacs</a></li>
<li><a href="https://rossabaker.com/configs/emacs/crab-juice/">Crab Juice Emacs</a></li>
<li><a href="https://rossabaker.com/configs/emacs/rab-starter/">Starter Emacs configuration</a></li>
</ul></li>
<li><a href="https://github.com/matthewbauer/bauer">matthewbauer/bauer: An Emacs+Nix IDE · GitHub</a></li>
<li><a href="https://rossabaker.com/blog/multilingualism_in_a_global_web/">Ross A. Baker: Multilingualism in a Global Web</a> (<a href="https://rossabaker.com/blog/multilingualism_in_a_global_web/">DE</a>, <a href="https://es.rossabaker.com/blog/multiling%C3%BCismo_en_una_web_global/">ES</a>)</li>
</ul>

<p>
Find more Emacs Chats or join the fun: <a href="https://sachachua.com/emacs-chat">https://sachachua.com/emacs-chat</a>
</p>
<div id="outline-container-emacs-chat-26-ross-a-baker-chapters" class="outline-3">
<h3 id="emacs-chat-26-ross-a-baker-chapters"><a href="https://sachachua.com/blog/feed/index.xml#emacs-chat-26-ross-a-baker-chapters">Chapters</a></h3>
<div class="outline-text-3" id="text-emacs-chat-26-ross-a-baker-chapters">
<p>
</p><ul class="org-ul">
<li><span class="audio-time" data-start="0.588" data-stop="12.608">0:00</span> Opening</li>
<li><span class="audio-time" data-start="46.369" data-stop="48.513">0:46</span> What Ross does</li>
<li><span class="audio-time" data-start="126.593" data-stop="130.518">2:06</span> How Ross got into Emacs, used other editors, and then came back to Emacs</li>
<li><span class="audio-time" data-start="298.280" data-stop="304.213">4:58</span> Config focusing on built-ins</li>
<li><span class="audio-time" data-start="612.276" data-stop="614.479">10:12</span> simple-orderless</li>

<li><span class="audio-time" data-start="869.245" data-stop="870.967">14:29</span> Size indicator</li>
<li><span class="audio-time" data-start="1000.719" data-stop="1004.344">16:40</span> Graceful degradation</li>
<li><span class="audio-time" data-start="1068.860" data-stop="1071.006">17:48</span> emacs-lock-mode</li>

<li><span class="audio-time" data-start="1192.334" data-stop="1194.177">19:52</span> exiting Emacs: yes-or-no-p</li>
<li><span class="audio-time" data-start="1246.791" data-stop="1248.072">20:46</span> yes-or-no-p</li>
<li><span class="audio-time" data-start="1305.548" data-stop="1307.451">21:45</span> Processes</li>
<li><span class="audio-time" data-start="1338.359" data-stop="1341.264">22:18</span> Moving keymaps</li>
<li><span class="audio-time" data-start="1463.726" data-stop="1467.313">24:23</span> Writing in Org Mode and Markdown</li>
<li><span class="audio-time" data-start="1669.170" data-stop="1672.596">27:49</span> Ethersync?</li>
<li><span class="audio-time" data-start="1756.171" data-stop="1759.435">29:16</span> Managing Github with Forge</li>

<li><span class="audio-time" data-start="2149.501" data-stop="2152.185">35:49</span> Committing with work addresses vs personal</li>
<li><span class="audio-time" data-start="2233.533" data-stop="2235.496">37:13</span> Emacs tinkering as stress relief</li>
<li><span class="audio-time" data-start="2466.157" data-stop="2468.303">41:06</span> Under-appreciated Emacs built-ins</li>
<li><span class="audio-time" data-start="2540.502" data-stop="2543.907">42:20</span> gptel</li>
<li><span class="audio-time" data-start="2764.997" data-stop="2767.179">46:04</span> Getting older</li>
<li><span class="audio-time" data-start="2806.799" data-stop="2810.423">46:46</span> Lindy's Law and tool longevity</li>
<li><span class="audio-time" data-start="2991.000" data-stop="2994.726">49:51</span> Nix is good at managing package versions and customizing them; Matthew Bauer (Bauer IDE)</li>

<li><span class="audio-time" data-start="3205.336" data-stop="3207.501">53:25</span> Custom fonts</li>
<li><span class="audio-time" data-start="3270.913" data-stop="3272.037">54:30</span> Starter kits versus configs</li>
<li><span class="audio-time" data-start="3334.711" data-stop="3335.912">55:34</span> Nix vs Guix; Mac</li>
<li><span class="audio-time" data-start="3386.894" data-stop="3390.137">56:26</span> Non-work interests: Org for documenting; ox-hugo and multiple languages</li>
</ul>

<p></p>
</div>
</div>
<div id="outline-container-emacs-chat-26-ross-a-baker-transcript-section" class="outline-3">
<h3 id="emacs-chat-26-ross-a-baker-transcript-section"><a href="https://sachachua.com/blog/feed/index.xml#emacs-chat-26-ross-a-baker-transcript-section">Transcript</a></h3>
<div class="outline-text-3" id="text-emacs-chat-26-ross-a-baker-transcript-section">
<details class="code-details"><a name="ID-emacs-chat-26-ross-a-baker-transcript"></a><summary>Expand this to read the transcript</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>Opening</strong></div><p></p><span class="audio-time caption" data-speaker="" data-start="0.588000" data-stop="12.608000">[opening stuff]</span> <span class="audio-time caption" data-speaker="" data-start="14.070000" data-stop="16.835000">Emacs Chat 26 is Ross A. Baker.</span> <span class="audio-time caption" data-speaker="" data-start="17.616000" data-stop="20.181000">You can find him at rossabaker.com.</span> <span class="audio-time caption" data-speaker="" data-start="20.201000" data-stop="22.364000">Today, we've got a lot of interesting things</span> <span class="audio-time caption" data-speaker="" data-start="22.404000" data-stop="24.748000">to dig into, including his two-part Emacs</span> <span class="audio-time caption" data-speaker="" data-start="24.788000" data-stop="25.870000">configuration,</span> <span class="audio-time caption" data-speaker="" data-start="25.850000" data-stop="29.017000">plus of course, all the things that he does.</span> <span class="audio-time caption" data-speaker="" data-start="29.037000" data-stop="31.964000">The goal with Emacs Chat is to show some of</span> <span class="audio-time caption" data-speaker="" data-start="32.024000" data-stop="33.568000">the things that aren't obvious from the</span> <span class="audio-time caption" data-speaker="" data-start="33.628000" data-stop="35.533000">configuration, like how the different pieces</span> <span class="audio-time caption" data-speaker="" data-start="35.613000" data-stop="38.199000">actually work together or what the workflow feels like.</span> <span class="audio-time caption" data-speaker="" data-start="38.560000" data-stop="40.885000">But before we dive into that, Ross, can you tell</span> <span class="audio-time caption" data-speaker="" data-start="40.925000" data-stop="42.549000">us a little bit about your background?</span> <span class="audio-time caption" data-speaker="" data-start="42.569000" data-stop="43.391000">What's the context here?</span> <span class="audio-time caption" data-speaker="" data-start="43.411000" data-stop="44.213000">What do you like to do?</span> <p></p><span class="audio-time caption" data-speaker="Ross" data-start="45.307000" data-stop="45.788000"><strong class="speaker-name">Ross:</strong>  Oh, sure.</span> <p></p><div class="transcript-heading"><span class="audio-time" data-start="46.000000">0:46</span> <strong>What Ross does</strong></div><p></p><span class="audio-time caption" data-speaker="Ross" data-start="46.369000" data-stop="48.513000"><strong class="speaker-name">Ross:</strong> So for work, I'm a backend engineer.</span> <span class="audio-time caption" data-speaker="Ross" data-start="48.814000" data-stop="51.679000">I'm somewhat well known in the Scala community.</span> <span class="audio-time caption" data-speaker="Ross" data-start="51.699000" data-stop="54.504000">I've done that for a long time on an open-source basis.</span> <span class="audio-time caption" data-speaker="Ross" data-start="54.524000" data-stop="56.709000">I've taken an interest in Rust here recently.</span> <span class="audio-time caption" data-speaker="Ross" data-start="56.769000" data-stop="59.915000">Those are the two primary languages I work in.</span> <span class="audio-time caption" data-speaker="Ross" data-start="59.935000" data-stop="62.940000">I work for a financial company.</span> <span class="audio-time caption" data-speaker="Ross" data-start="63.001000" data-stop="65.866000">We maintain the apps for small- and regional-sized</span> <span class="audio-time caption" data-speaker="Ross" data-start="65.906000" data-stop="67.990000">banks in the United States.</span> <span class="audio-time caption" data-speaker="Ross" data-start="67.970000" data-stop="69.391000">Fairly fun work there.</span> <span class="audio-time caption" data-speaker="Ross" data-start="69.412000" data-stop="71.994000">It's kept me quite busy here lately.</span> <span class="audio-time caption" data-speaker="Ross" data-start="72.234000" data-stop="74.217000">For other things I like to do for fun, like to go</span> <span class="audio-time caption" data-speaker="Ross" data-start="74.277000" data-stop="76.118000">for a jog, like to push away from the computer</span> <span class="audio-time caption" data-speaker="Ross" data-start="76.179000" data-stop="76.699000">now and then.</span> <span class="audio-time caption" data-speaker="Ross" data-start="76.839000" data-stop="79.002000">So I go jogging every day, try to run about nine</span> <span class="audio-time caption" data-speaker="Ross" data-start="79.042000" data-stop="79.882000">miles every day.</span> <span class="audio-time caption" data-speaker="Ross" data-start="82.745000" data-stop="87.911000">My two big de-stressors are the running</span> <span class="audio-time caption" data-speaker="Ross" data-start="88.091000" data-stop="90.373000">and the fiddling with my Emacs configuration,</span> <span class="audio-time caption" data-speaker="Ross" data-start="90.574000" data-stop="92.115000">kind of opposite sides of the coin.</span> <span class="audio-time caption" data-speaker="Ross" data-start="92.135000" data-stop="94.838000">But I need them both to stay happy, I think.</span> <span class="audio-time caption" data-speaker="Ross" data-start="95.847000" data-stop="97.029000">That makes sense.</span> <span class="audio-time caption" data-speaker="Ross" data-start="97.649000" data-stop="99.171000">Also a soccer coach.</span> <span class="audio-time caption" data-speaker="Ross" data-start="99.452000" data-stop="101.274000">My kid is in high school and coached his</span> <span class="audio-time caption" data-speaker="Ross" data-start="101.314000" data-stop="102.336000">recreational team.</span> <span class="audio-time caption" data-speaker="Ross" data-start="102.676000" data-stop="104.118000">They have a lot of fun with that as well.</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="105.139000" data-stop="105.840000"><strong class="speaker-name">Sacha:</strong>  Yeah.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="105.900000" data-stop="107.603000">One of your blog posts mentions that you've been</span> <span class="audio-time caption" data-speaker="Sacha" data-start="107.623000" data-stop="110.967000">publishing your youth soccer webpage in ox-hugo.</span> <p></p><span class="audio-time caption" data-speaker="Ross" data-start="112.029000" data-stop="112.469000"><strong class="speaker-name">Ross:</strong>  That's right.</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="113.310000" data-stop="114.472000"><strong class="speaker-name">Sacha:</strong>  Emacs can be used for everything.</span> <p></p><span class="audio-time caption" data-speaker="Ross" data-start="115.413000" data-stop="116.054000"><strong class="speaker-name">Ross:</strong>  It can, yeah.</span> <span class="audio-time caption" data-speaker="Ross" data-start="116.254000" data-stop="117.636000">That's right.</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="117.903000" data-stop="121.708000"><strong class="speaker-name">Sacha:</strong>  We're also very curious about how</span> <span class="audio-time caption" data-speaker="Sacha" data-start="121.768000" data-stop="124.491000">people get into Emacs and what makes them stick</span> <span class="audio-time caption" data-speaker="Sacha" data-start="124.531000" data-stop="125.192000">with Emacs.</span> <p></p><div class="transcript-heading"><span class="audio-time" data-start="126.000000">2:06</span> <strong>How Ross got into Emacs, used other editors, and then came back to Emacs</strong></div><p></p><span class="audio-time caption" data-speaker="Sacha" data-start="126.593000" data-stop="130.518000"><strong class="speaker-name">Sacha:</strong> In your story for the Emacs Carnival in Take 2,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="130.878000" data-stop="132.681000">you shared how you got into Emacs.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="132.741000" data-stop="136.425000">Well, you were introduced to Emacs in 1997, but</span> <span class="audio-time caption" data-speaker="Sacha" data-start="136.465000" data-stop="137.366000">you actually left.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="137.567000" data-stop="140.350000">You used other editors for a while because of work,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="140.718000" data-stop="142.440000">and then you came back to Emacs.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="142.460000" data-stop="145.244000">Was it primarily for Haskell and Clojure, or were</span> <span class="audio-time caption" data-speaker="Sacha" data-start="145.284000" data-stop="150.411000">there other reasons that got you interested in it?</span> <p></p><span class="audio-time caption" data-speaker="Ross" data-start="150.431000" data-stop="153.039000"><strong class="speaker-name">Ross:</strong>  Yeah, when I was at the Haskell shop,</span> <span class="audio-time caption" data-speaker="Ross" data-start="153.040000" data-stop="155.477000">it was something that a lot... When</span> <span class="audio-time caption" data-speaker="Ross" data-start="155.497000" data-stop="157.360000">you get out into the workplace, there's very few</span> <span class="audio-time caption" data-speaker="Ross" data-start="157.500000" data-stop="159.763000">Emacs users, relatively speaking, in most</span> <span class="audio-time caption" data-speaker="Ross" data-start="159.783000" data-stop="160.344000">workplaces.</span> <span class="audio-time caption" data-speaker="Ross" data-start="160.364000" data-stop="161.746000">But when you're in a Haskell shop, that's what</span> <span class="audio-time caption" data-speaker="Ross" data-start="161.806000" data-stop="162.947000">almost everybody uses.</span> <span class="audio-time caption" data-speaker="Ross" data-start="162.967000" data-stop="165.531000">So being surrounded by that, that was a good</span> <span class="audio-time caption" data-speaker="Ross" data-start="165.851000" data-stop="167.113000">reason to get back into it.</span> <span class="audio-time caption" data-speaker="Ross" data-start="167.173000" data-stop="168.694000">I'd been dabbling in it a little bit</span> <span class="audio-time caption" data-speaker="Ross" data-start="168.695000" data-stop="170.337000">before that, even.</span> <span class="audio-time caption" data-speaker="Ross" data-start="170.317000" data-stop="173.199000">I had a really good time with it originally.</span> <span class="audio-time caption" data-speaker="Ross" data-start="173.200000" data-stop="175.563000">I got into it like so many people did back then.</span> <span class="audio-time caption" data-speaker="Ross" data-start="175.583000" data-stop="177.506000">I got into it in college, showed up, and that's</span> <span class="audio-time caption" data-speaker="Ross" data-start="177.546000" data-stop="178.867000">what the professor was using.</span> <span class="audio-time caption" data-speaker="Ross" data-start="178.887000" data-stop="180.509000">The first language that we learned there was</span> <span class="audio-time caption" data-speaker="Ross" data-start="180.569000" data-stop="182.872000">Scheme, which is a Lisp dialect, so it's a</span> <span class="audio-time caption" data-speaker="Ross" data-start="182.932000" data-stop="183.933000">natural fit there.</span> <span class="audio-time caption" data-speaker="Ross" data-start="184.734000" data-stop="187.938000">Back then Emacs and Vim were the two dominant</span> <span class="audio-time caption" data-speaker="Ross" data-start="188.018000" data-stop="189.881000">editors at that point, so it was pretty much one</span> <span class="audio-time caption" data-speaker="Ross" data-start="189.921000" data-stop="190.421000">or the other.</span> <span class="audio-time caption" data-speaker="Ross" data-start="190.441000" data-stop="192.083000">If you were learning a Lisp dialect in</span> <span class="audio-time caption" data-speaker="Ross" data-start="192.123000" data-stop="193.905000">school, the professor was going to guide you</span> <span class="audio-time caption" data-speaker="Ross" data-start="193.945000" data-stop="195.227000">toward Emacs.</span> <span class="audio-time caption" data-speaker="Ross" data-start="195.207000" data-stop="196.828000">I got that initial shove</span> <span class="audio-time caption" data-speaker="Ross" data-start="196.829000" data-stop="198.171000">and fell in love with it there.</span> <span class="audio-time caption" data-speaker="Ross" data-start="198.351000" data-stop="200.134000">Then I got out into the workplace, and in the</span> <span class="audio-time caption" data-speaker="Ross" data-start="200.154000" data-stop="202.817000">workplace back then, it was very rigid.</span> <span class="audio-time caption" data-speaker="Ross" data-start="202.837000" data-stop="204.960000">You would have to use the commercial editor that</span> <span class="audio-time caption" data-speaker="Ross" data-start="205.000000" data-stop="207.363000">was integrated with all the IBM software,</span> <span class="audio-time caption" data-speaker="Ross" data-start="207.364000" data-stop="210.086000">so I had to use these specific things</span> <span class="audio-time caption" data-speaker="Ross" data-start="210.087000" data-stop="211.870000">and I couldn't use Emacs anymore.</span> <span class="audio-time caption" data-speaker="Ross" data-start="213.011000" data-stop="215.875000">I did dabble in Vim a little bit as well and I</span> <span class="audio-time caption" data-speaker="Ross" data-start="215.935000" data-stop="217.958000">liked the efficiency of editing</span> <span class="audio-time caption" data-speaker="Ross" data-start="217.938000" data-stop="220.081000">that came from both Emacs and Vim.</span> <span class="audio-time caption" data-speaker="Ross" data-start="220.221000" data-stop="222.204000">Vim was easier to emulate than these other</span> <span class="audio-time caption" data-speaker="Ross" data-start="222.265000" data-stop="223.426000">editors that I had to use.</span> <span class="audio-time caption" data-speaker="Ross" data-start="223.446000" data-stop="226.771000">That had me on a Vim path for a little while.</span> <span class="audio-time caption" data-speaker="Ross" data-start="226.791000" data-stop="228.895000">But then scripting it just wasn't as satisfying</span> <span class="audio-time caption" data-speaker="Ross" data-start="228.955000" data-stop="229.896000">as Emacs.</span> <span class="audio-time caption" data-speaker="Ross" data-start="231.198000" data-stop="232.620000">It was always really calling to me.</span> <span class="audio-time caption" data-speaker="Ross" data-start="232.680000" data-stop="235.445000">I felt like I was in exile while I was outside of</span> <span class="audio-time caption" data-speaker="Ross" data-start="235.525000" data-stop="235.965000">Emacs.</span> <span class="audio-time caption" data-speaker="Ross" data-start="235.985000" data-stop="237.668000">Then, when I had a chance to start picking my</span> <span class="audio-time caption" data-speaker="Ross" data-start="237.728000" data-stop="239.971000">own editor and customizing things again and</span> <span class="audio-time caption" data-speaker="Ross" data-start="240.072000" data-stop="241.794000">getting up to speed with other people who were</span> <span class="audio-time caption" data-speaker="Ross" data-start="241.874000" data-stop="244.017000">using Emacs, it was just natural to come home,</span> <span class="audio-time caption" data-speaker="Ross" data-start="244.078000" data-stop="245.700000">and here I am again.</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="246.440000" data-stop="247.081000"><strong class="speaker-name">Sacha:</strong>  Nice.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="248.623000" data-stop="251.687000">Many people haven't had the experience of working</span> <span class="audio-time caption" data-speaker="Sacha" data-start="251.747000" data-stop="254.291000">with other Emacs users in the same company.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="254.391000" data-stop="255.613000">So what is it like?</span> <span class="audio-time caption" data-speaker="Sacha" data-start="255.813000" data-stop="260.039000">Were you swapping lots of config around, pair</span> <span class="audio-time caption" data-speaker="Sacha" data-start="260.079000" data-stop="261.380000">programming, that sort of thing?</span> <p></p><span class="audio-time caption" data-speaker="Ross" data-start="262.563000" data-stop="264.264000"><strong class="speaker-name">Ross:</strong>  Yeah, pair programming,</span> <span class="audio-time caption" data-speaker="Ross" data-start="264.265000" data-stop="265.567000">sharing config.</span> <span class="audio-time caption" data-speaker="Ross" data-start="265.787000" data-stop="268.511000">I am fortunate at my current workplace, even</span> <span class="audio-time caption" data-speaker="Ross" data-start="268.571000" data-stop="270.334000">though it's a much smaller percentage than it's</span> <span class="audio-time caption" data-speaker="Ross" data-start="270.374000" data-stop="271.635000">been in some other workplaces.</span> <span class="audio-time caption" data-speaker="Ross" data-start="271.655000" data-stop="273.678000">It's also a large company, and we have an active</span> <span class="audio-time caption" data-speaker="Ross" data-start="273.758000" data-stop="276.362000">Emacs channel there within the company Slack.</span> <span class="audio-time caption" data-speaker="Ross" data-start="276.663000" data-stop="278.725000">A lot of people are interested in it there, so</span> <span class="audio-time caption" data-speaker="Ross" data-start="278.785000" data-stop="281.429000">I've got my little inside community in addition</span> <span class="audio-time caption" data-speaker="Ross" data-start="281.469000" data-stop="283.271000">to the outside Emacs community as well.</span> <span class="audio-time caption" data-speaker="Ross" data-start="284.572000" data-stop="286.555000">Fortunately, I still get that even to this day,</span> <span class="audio-time caption" data-speaker="Ross" data-start="286.735000" data-stop="287.856000">so that's pretty fun.</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="288.757000" data-stop="289.677000"><strong class="speaker-name">Sacha:</strong>  You're the second person has described</span> <span class="audio-time caption" data-speaker="Sacha" data-start="289.678000" data-stop="293.181000">the wonders of having a company internet channel</span> <span class="audio-time caption" data-speaker="Sacha" data-start="293.182000" data-stop="297.928000">on Slack, just about Emacs. Yes. Very awesome.</span> <p></p><div class="transcript-heading"><span class="audio-time" data-start="298.000000">4:58</span> <strong>Config focusing on built-ins</strong></div><p></p><span class="audio-time caption" data-speaker="Sacha" data-start="298.280000" data-stop="304.213000"><strong class="speaker-name">Sacha:</strong> I'm wondering, with your current company, is that</span> <span class="audio-time caption" data-speaker="Sacha" data-start="304.233000" data-stop="308.862000">the reason why you have so many "gotta run with</span> <span class="audio-time caption" data-speaker="Sacha" data-start="310.125000" data-stop="312.911000">just the built-ins", "gotta run even if you've got</span> <span class="audio-time caption" data-speaker="Sacha" data-start="313.011000" data-stop="315.557000">Emacs 28"... Is that the reason for those kinds of</span> <span class="audio-time caption" data-speaker="Sacha" data-start="316.438000" data-stop="318.583000">considerations in your base config?</span> <p></p><span class="audio-time caption" data-speaker="Ross" data-start="319.559000" data-stop="321.382000"><strong class="speaker-name">Ross:</strong>  That was kind of a premature</span> <span class="audio-time caption" data-speaker="Ross" data-start="321.522000" data-stop="323.966000">optimization that worked out very well for me.</span> <span class="audio-time caption" data-speaker="Ross" data-start="323.986000" data-stop="327.613000">I used to run a very extensive config.</span> <span class="audio-time caption" data-speaker="Ross" data-start="327.633000" data-stop="329.616000">I'd look at all the classic configs that would go</span> <span class="audio-time caption" data-speaker="Ross" data-start="329.676000" data-stop="332.320000">out there and install all the packages from MELPA.</span> <span class="audio-time caption" data-speaker="Ross" data-start="333.042000" data-stop="335.165000">I'd try them all out. I'd just accumulate</span> <span class="audio-time caption" data-speaker="Ross" data-start="335.205000" data-stop="336.768000">these things. I went through some Emacs</span> <span class="audio-time caption" data-speaker="Ross" data-start="336.808000" data-stop="337.990000">bankruptcies.</span> <span class="audio-time caption" data-speaker="Ross" data-start="337.970000" data-stop="339.693000">Then people in the community started talking</span> <span class="audio-time caption" data-speaker="Ross" data-start="339.753000" data-stop="343.138000">about, okay, Emacs 29, it added <code>use-package</code> out</span> <span class="audio-time caption" data-speaker="Ross" data-start="343.178000" data-stop="343.658000">of the box.</span> <span class="audio-time caption" data-speaker="Ross" data-start="343.758000" data-stop="347.544000">It added... I can't remember when project.el came</span> <span class="audio-time caption" data-speaker="Ross" data-start="347.604000" data-stop="350.228000">along, but it added these things that started...</span> <span class="audio-time caption" data-speaker="Ross" data-start="350.308000" data-stop="352.852000">You used to have to get them from outside, or you</span> <span class="audio-time caption" data-speaker="Ross" data-start="352.872000" data-stop="355.456000">used to have these other libraries, and Emacs got</span> <span class="audio-time caption" data-speaker="Ross" data-start="355.496000" data-stop="357.058000">a lot better out of the box.</span> <span class="audio-time caption" data-speaker="Ross" data-start="357.138000" data-stop="358.560000">I started to say, okay,</span> <span class="audio-time caption" data-speaker="Ross" data-start="358.540000" data-stop="360.043000">I'm going to do one more bankruptcy.</span> <span class="audio-time caption" data-speaker="Ross" data-start="360.083000" data-stop="361.967000">I'm going to see what I can do with built-ins.</span> <span class="audio-time caption" data-speaker="Ross" data-start="362.027000" data-stop="364.832000">I started experimenting down those lines, even</span> <span class="audio-time caption" data-speaker="Ross" data-start="364.853000" data-stop="367.137000">though I was always using that extended config.</span> <span class="audio-time caption" data-speaker="Ross" data-start="367.157000" data-stop="369.241000">I was challenging myself. How much can I get from</span> <span class="audio-time caption" data-speaker="Ross" data-start="369.301000" data-stop="372.147000">a built-in config and then just have a little bit</span> <span class="audio-time caption" data-speaker="Ross" data-start="372.207000" data-stop="374.872000">of extra for those gaps? Because there are gaps.</span> <span class="audio-time caption" data-speaker="Ross" data-start="375.173000" data-stop="377.918000">I do love Emacs built-ins, but I am more</span> <span class="audio-time caption" data-speaker="Ross" data-start="377.979000" data-stop="379.722000">comfortable with the regular one.</span> <span class="audio-time caption" data-speaker="Ross" data-start="379.853000" data-stop="381.976000">But I challenge myself that way.</span> <span class="audio-time caption" data-speaker="Ross" data-start="382.256000" data-stop="384.199000">This month, I got put on a project where</span> <span class="audio-time caption" data-speaker="Ross" data-start="384.239000" data-stop="386.022000">I have to work in a sandbox environment.</span> <span class="audio-time caption" data-speaker="Ross" data-start="386.042000" data-stop="388.646000">So it's not regular operating procedure, but I</span> <span class="audio-time caption" data-speaker="Ross" data-start="388.686000" data-stop="390.709000">have to do all my work in the sandbox environment.</span> <span class="audio-time caption" data-speaker="Ross" data-start="390.729000" data-stop="392.531000">There's no network egress.</span> <span class="audio-time caption" data-speaker="Ross" data-start="392.551000" data-stop="396.116000">I have to say, okay, if I want packages in here,</span> <span class="audio-time caption" data-speaker="Ross" data-start="396.217000" data-stop="398.179000">I have to talk to the admins of that system and</span> <span class="audio-time caption" data-speaker="Ross" data-start="398.239000" data-stop="400.242000">say, I want these packages.</span> <span class="audio-time caption" data-speaker="Ross" data-start="400.262000" data-stop="401.644000">I lobbied for Emacs on it.</span> <span class="audio-time caption" data-speaker="Ross" data-start="401.725000" data-stop="403.247000">They thought, well, that's kind of weird, but</span> <span class="audio-time caption" data-speaker="Ross" data-start="403.307000" data-stop="405.029000">it's just one more line of apt-get in the</span> <span class="audio-time caption" data-speaker="Ross" data-start="405.049000" data-stop="405.931000">Docker container,</span> <span class="audio-time caption" data-speaker="Ross" data-start="405.971000" data-stop="407.633000">so they're fine with it.</span> <span class="audio-time caption" data-speaker="Ross" data-start="407.613000" data-stop="411.133000">It was an old version of Debian Bookworm.</span> <span class="audio-time caption" data-speaker="Ross" data-start="411.134000" data-stop="413.267000">I was running Emacs 28. I'm like,</span> <span class="audio-time caption" data-speaker="Ross" data-start="413.268000" data-stop="416.167000">okay, well, I've got this built-in configuration.</span> <span class="audio-time caption" data-speaker="Ross" data-start="416.168000" data-stop="417.567000">This is its moment to shine.</span> <span class="audio-time caption" data-speaker="Ross" data-start="417.568000" data-stop="419.967000">I tried to run it on there.</span> <span class="audio-time caption" data-speaker="Ross" data-start="419.968000" data-stop="423.300000">I was able to copy the file up there. I tried</span> <span class="audio-time caption" data-speaker="Ross" data-start="423.301000" data-stop="425.200000">running it on there, and I run into things</span> <span class="audio-time caption" data-speaker="Ross" data-start="425.201000" data-stop="427.309000">I’ve been using <code>setopt</code>. I’ve been using</span> <span class="audio-time caption" data-speaker="Ross" data-start="427.289000" data-stop="431.876000">one of the XDG packages for setting your X desktop</span> <span class="audio-time caption" data-speaker="Ross" data-start="431.896000" data-stop="432.817000">group directories,</span> <span class="audio-time caption" data-speaker="Ross" data-start="432.837000" data-stop="435.922000">so to have a standard place to put your config</span> <span class="audio-time caption" data-speaker="Ross" data-start="435.982000" data-stop="437.743000">files versus your cache files</span> <span class="audio-time caption" data-speaker="Ross" data-start="437.744000" data-stop="439.527000">versus your state files.</span> <span class="audio-time caption" data-speaker="Ross" data-start="439.547000" data-stop="441.910000">In Emacs 28, they had most of those variables,</span> <span class="audio-time caption" data-speaker="Ross" data-start="441.950000" data-stop="444.134000">but one of those variables didn't exist yet.</span> <span class="audio-time caption" data-speaker="Ross" data-start="444.174000" data-stop="446.137000">So I felt a few paper cuts that way.</span> <span class="audio-time caption" data-speaker="Ross" data-start="446.777000" data-stop="449.121000">Up near the top of my config, I've got a</span> <span class="audio-time caption" data-speaker="Ross" data-start="449.161000" data-stop="450.563000">compatibility layer.</span> <span class="audio-time caption" data-speaker="Ross" data-start="451.015000" data-stop="452.978000">The compatibility layer, there's a nice</span> <span class="audio-time caption" data-speaker="Ross" data-start="453.018000" data-stop="454.339000">compat package out there.</span> <span class="audio-time caption" data-speaker="Ross" data-start="454.379000" data-stop="454.960000">I can't remember.</span> <span class="audio-time caption" data-speaker="Ross" data-start="455.281000" data-stop="457.143000">I think Omar, who you interviewed recently, I</span> <span class="audio-time caption" data-speaker="Ross" data-start="457.263000" data-stop="459.246000">believe he's one of the people behind it.</span> <span class="audio-time caption" data-speaker="Ross" data-start="459.266000" data-stop="461.669000">And tarsius, I think he's involved in that too.</span> <span class="audio-time caption" data-speaker="Ross" data-start="461.809000" data-stop="463.131000">I could be misquoting on that.</span> <span class="audio-time caption" data-speaker="Ross" data-start="463.772000" data-stop="465.294000">Maybe I'm misattributing that.</span> <span class="audio-time caption" data-speaker="Ross" data-start="465.414000" data-stop="467.697000">But anyway, there's this wonderful compat package</span> <span class="audio-time caption" data-speaker="Ross" data-start="467.777000" data-stop="468.138000">out there.</span> <span class="audio-time caption" data-speaker="Ross" data-start="468.598000" data-stop="470.180000">If you're a package author and you want to have</span> <span class="audio-time caption" data-speaker="Ross" data-start="470.220000" data-stop="472.243000">your Emacs package running on older versions,</span> <span class="audio-time caption" data-speaker="Ross" data-start="472.824000" data-stop="473.665000">it's great for that.</span> <span class="audio-time caption" data-speaker="Ross" data-start="473.645000" data-stop="475.869000">But the whole point of this is I don't have any</span> <span class="audio-time caption" data-speaker="Ross" data-start="475.929000" data-stop="476.951000">external packages.</span> <span class="audio-time caption" data-speaker="Ross" data-start="476.971000" data-stop="478.954000">So where I need this compatibility layer the</span> <span class="audio-time caption" data-speaker="Ross" data-start="478.994000" data-stop="481.799000">most, I can't use this lovely compat package out</span> <span class="audio-time caption" data-speaker="Ross" data-start="481.839000" data-stop="482.360000">of the box.</span> <span class="audio-time caption" data-speaker="Ross" data-start="482.840000" data-stop="485.705000">So I had to reinvent a few shims.</span> <span class="audio-time caption" data-speaker="Ross" data-start="485.725000" data-stop="487.068000">I think I could bring that up.</span> <span class="audio-time caption" data-speaker="Ross" data-start="487.088000" data-stop="488.250000">Am I sharing my screen?</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="488.390000" data-stop="489.592000"><strong class="speaker-name">Sacha:</strong>  Yes, you're sharing your screen.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="490.473000" data-stop="492.677000">That was one of the things that immediately</span> <span class="audio-time caption" data-speaker="Sacha" data-start="492.717000" data-stop="494.099000">struck me about your config.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="494.139000" data-stop="496.303000">You're so hardcore about not using</span> <span class="audio-time caption" data-speaker="Sacha" data-start="496.323000" data-stop="498.066000">external packages that even your</span> <span class="audio-time caption" data-speaker="Sacha" data-start="498.333000" data-stop="499.935000">adapting to older versions,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="499.955000" data-stop="503.299000">you're re-implementing things yourself in order</span> <span class="audio-time caption" data-speaker="Sacha" data-start="503.339000" data-stop="506.644000">to be able to stick with your constraints.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="506.664000" data-stop="508.326000">I think that's hilarious, by the way.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="508.366000" data-stop="510.268000">You started it off with it as a personal</span> <span class="audio-time caption" data-speaker="Sacha" data-start="510.328000" data-stop="512.211000">challenge because, of course, people are allowed</span> <span class="audio-time caption" data-speaker="Sacha" data-start="512.251000" data-stop="514.933000">to set arbitrary challenges for themselves,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="514.995000" data-stop="517.798000">and then it turned out to be surprisingly useful</span> <span class="audio-time caption" data-speaker="Sacha" data-start="517.857000" data-stop="520.542000">for you in this limited environment.</span> <p></p><span class="audio-time caption" data-speaker="Ross" data-start="520.802000" data-stop="522.164000"><strong class="speaker-name">Ross:</strong>  Yeah, that's one that really saved</span> <span class="audio-time caption" data-speaker="Ross" data-start="522.203000" data-stop="522.683000">my bacon.</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="523.005000" data-stop="524.647000"><strong class="speaker-name">Sacha:</strong>  Yeah, this is great.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="524.667000" data-stop="526.990000">So even things like <code>setopt</code>… Then you have</span> <span class="audio-time caption" data-speaker="Sacha" data-start="527.155000" data-stop="532.333000"><code>keymap-set</code>. You’ve got some replacements</span> <span class="audio-time caption" data-speaker="Sacha" data-start="532.334000" data-stop="535.633000">for these modern niceties to make it still work</span> <span class="audio-time caption" data-speaker="Sacha" data-start="535.634000" data-stop="538.233000">in Emacs 28.</span> <p></p><span class="audio-time caption" data-speaker="Ross" data-start="538.234000" data-stop="541.500000"><strong class="speaker-name">Ross:</strong>  Yeah, I leaned into the new keybindings.</span> <span class="audio-time caption" data-speaker="Ross" data-start="541.501000" data-stop="543.655000">There’s <code>keymap-set</code>, <code>keymap-global-set</code>,</span> <span class="audio-time caption" data-speaker="Ross" data-start="543.675000" data-stop="547.467000"><code>keymap-global-unset</code>. Those are roughly the same as</span> <span class="audio-time caption" data-speaker="Ross" data-start="547.468000" data-stop="549.367000">what you had in older Emacs versions</span> <span class="audio-time caption" data-speaker="Ross" data-start="549.368000" data-stop="551.667000">but you don't need to pass the keyboard macro</span> <span class="audio-time caption" data-speaker="Ross" data-start="551.668000" data-stop="554.648000">around all the things, so it's a little bit more concise.</span> <span class="audio-time caption" data-speaker="Ross" data-start="554.881000" data-stop="556.645000">There were a few more advantages to it and I'd</span> <span class="audio-time caption" data-speaker="Ross" data-start="556.685000" data-stop="559.029000">already been on Emacs 29 or Emacs 30</span> <span class="audio-time caption" data-speaker="Ross" data-start="559.030000" data-stop="559.993000">everywhere else.</span> <span class="audio-time caption" data-speaker="Ross" data-start="560.013000" data-stop="562.137000">I'd already leaned into those, and then I got</span> <span class="audio-time caption" data-speaker="Ross" data-start="562.198000" data-stop="563.039000">into this environment.</span> <span class="audio-time caption" data-speaker="Ross" data-start="564.342000" data-stop="566.307000">But as you can see, they're fairly easy.</span> <span class="audio-time caption" data-speaker="Ross" data-start="566.367000" data-stop="568.692000">This is not a 100% full fidelity.</span> <span class="audio-time caption" data-speaker="Ross" data-start="568.712000" data-stop="571.558000">There's a few nuances that get missed in doing this,</span> <span class="audio-time caption" data-speaker="Ross" data-start="571.559000" data-stop="573.463000">but for the most part, it works pretty well.</span> <span class="audio-time caption" data-speaker="Ross" data-start="575.536000" data-stop="577.199000">I'm not aiming for perfect here.</span> <span class="audio-time caption" data-speaker="Ross" data-start="577.299000" data-stop="580.003000">I'm aiming for "this works well enough at Emacs 28</span> <span class="audio-time caption" data-speaker="Ross" data-start="580.264000" data-stop="582.066000">for the life of this project, which should last</span> <span class="audio-time caption" data-speaker="Ross" data-start="582.127000" data-stop="582.687000">about a month."</span> <span class="audio-time caption" data-speaker="Ross" data-start="582.788000" data-stop="585.592000">And otherwise, I've got the nice full glory Emacs</span> <span class="audio-time caption" data-speaker="Ross" data-start="585.652000" data-stop="586.714000">for my daily driver.</span> <span class="audio-time caption" data-speaker="Ross" data-start="587.535000" data-stop="590.239000">It's straddling that divide fairly well.</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="590.259000" data-stop="594.566000"><strong class="speaker-name">Sacha:</strong>  I just looked up when Emacs 28 was released.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="594.606000" data-stop="597.291000">This is 2022, so four years ago.</span> <p></p><span class="audio-time caption" data-speaker="Ross" data-start="597.912000" data-stop="598.172000"><strong class="speaker-name">Ross:</strong>  Yes.</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="598.653000" data-stop="600.556000"><strong class="speaker-name">Sacha:</strong>  A lot of Emacs has changed since then.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="600.736000" data-stop="602.539000">But of course, Emacs being Emacs,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="603.363000" data-stop="605.747000">there's a lot of effort put into making sure the</span> <span class="audio-time caption" data-speaker="Sacha" data-start="605.847000" data-stop="609.232000">old stuff keeps working, which is handy for these cases.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="609.993000" data-stop="610.574000">That's great.</span> <p></p><div class="transcript-heading"><span class="audio-time" data-start="612.000000">10:12</span> <strong>simple-orderless
</strong></div><p></p><a href="https://sachachua.com/blog/2026/06/emacs-chat-with-ross-a-baker/emacs-chat-26-ross-a-baker-00-11-23-700.jpg"><img loading="lazy" target="_blank" src="https://sachachua.com/blog/2026/06/emacs-chat-with-ross-a-baker/emacs-chat-26-ross-a-baker-00-11-23-700.jpg" alt="image from video 00:11:23.700" data-time="00:11:23.700"></a><span class="audio-time caption" data-speaker="Sacha" data-start="612.276000" data-stop="614.479000"><strong class="speaker-name">Sacha:</strong> So you have a lot of these shims,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="614.480000" data-stop="616.483000">and one of the things that you've ended up</span> <span class="audio-time caption" data-speaker="Sacha" data-start="616.843000" data-stop="621.530000">re-implementing along these ways is a version of</span> <span class="audio-time caption" data-speaker="Sacha" data-start="621.650000" data-stop="623.894000">orderless that works without having to take the</span> <span class="audio-time caption" data-speaker="Sacha" data-start="623.954000" data-stop="625.356000">entire orderless package in there.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="625.676000" data-stop="627.639000">Can you tell us a little bit more about what you</span> <span class="audio-time caption" data-speaker="Sacha" data-start="627.679000" data-stop="628.881000">like about your setup?</span> <p></p><span class="audio-time caption" data-speaker="Ross" data-start="630.447000" data-stop="633.912000"><strong class="speaker-name">Ross:</strong>  I wasn't happy with any of the</span> <span class="audio-time caption" data-speaker="Ross" data-start="634.513000" data-stop="636.496000">built-in completion styles.</span> <span class="audio-time caption" data-speaker="Ross" data-start="636.516000" data-stop="639.220000">Well, some of them are okay, but the overall...</span> <span class="audio-time caption" data-speaker="Ross" data-start="639.221000" data-stop="641.945000">I had used orderless in my more extensive config.</span> <span class="audio-time caption" data-speaker="Ross" data-start="642.466000" data-stop="644.889000">Orderless, for people who don't know, is a way</span> <span class="audio-time caption" data-speaker="Ross" data-start="644.949000" data-stop="645.831000">of completing things.</span> <span class="audio-time caption" data-speaker="Ross" data-start="645.931000" data-stop="647.153000">Let's see if I can show it off.</span> <span class="audio-time caption" data-speaker="Ross" data-start="647.293000" data-stop="655.286000">So I can do... If I do "file" and "find"...</span> <span class="audio-time caption" data-speaker="Ross" data-start="655.306000" data-stop="657.208000">Well, I thought it would work.</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="657.829000" data-stop="658.851000"><strong class="speaker-name">Sacha:</strong>  Do you need a space?</span> <p></p><span class="audio-time caption" data-speaker="Ross" data-start="660.772000" data-stop="661.884000"><strong class="speaker-name">Ross:</strong>  Yeah, I don't know why the space</span> <span class="audio-time caption" data-speaker="Ross" data-start="661.925000" data-stop="662.734000">wasn't completing.</span> <span class="audio-time caption" data-speaker="Ross" data-start="662.754000" data-stop="664.453000">So I can do "file".</span> <span class="audio-time caption" data-speaker="Ross" data-start="664.720000" data-stop="665.922000">"find file".</span> <span class="audio-time caption" data-speaker="Ross" data-start="666.002000" data-stop="666.743000">I could do the space.</span> <span class="audio-time caption" data-speaker="Ross" data-start="666.823000" data-stop="669.026000">I could do it in any order as well.</span> <span class="audio-time caption" data-speaker="Ross" data-start="669.046000" data-stop="671.148000">Or I saw there was an "ido" in there.</span> <span class="audio-time caption" data-speaker="Ross" data-start="671.228000" data-stop="673.151000">If I do it in reverse order, that's the idea of</span> <span class="audio-time caption" data-speaker="Ross" data-start="673.251000" data-stop="675.634000">orderless is if I'm using the space, I got thrown</span> <span class="audio-time caption" data-speaker="Ross" data-start="675.714000" data-stop="675.974000">off there.</span> <span class="audio-time caption" data-speaker="Ross" data-start="676.015000" data-stop="678.117000">It was auto-completing a hyphen on me I didn't</span> <span class="audio-time caption" data-speaker="Ross" data-start="678.157000" data-stop="678.518000">expect.</span> <span class="audio-time caption" data-speaker="Ross" data-start="679.139000" data-stop="681.081000">Anyway, if I remember some tokens and things,</span> <span class="audio-time caption" data-speaker="Ross" data-start="681.101000" data-stop="683.664000">let’s say I’m looking for <code>ido-find-file</code>, but I</span> <span class="audio-time caption" data-speaker="Ross" data-start="683.704000" data-stop="685.266000">type "find" first and then I do...</span> <span class="audio-time caption" data-speaker="Ross" data-start="685.387000" data-stop="689.211000">What orderless does is it takes the input and it</span> <span class="audio-time caption" data-speaker="Ross" data-start="689.252000" data-stop="690.272000">splits it by space</span> <span class="audio-time caption" data-speaker="Ross" data-start="690.273000" data-stop="691.855000">and it will find them in any order.</span> <span class="audio-time caption" data-speaker="Ross" data-start="692.716000" data-stop="695.300000">It's a nicer completion style than I think any of</span> <span class="audio-time caption" data-speaker="Ross" data-start="695.340000" data-stop="696.743000">the ones that come out of the box are.</span> <span class="audio-time caption" data-speaker="Ross" data-start="696.903000" data-stop="698.325000">I got used to it.</span> <span class="audio-time caption" data-speaker="Ross" data-start="698.345000" data-stop="700.167000">But if I'm in this lean config,</span> <span class="audio-time caption" data-speaker="Ross" data-start="700.168000" data-stop="701.210000">orderless is something...</span> <span class="audio-time caption" data-speaker="Ross" data-start="701.230000" data-stop="702.252000">It is not a built-in.</span> <span class="audio-time caption" data-speaker="Ross" data-start="702.292000" data-stop="704.095000">That's something that I was leaving behind.</span> <span class="audio-time caption" data-speaker="Ross" data-start="704.115000" data-stop="706.879000">That was one that was really starting to itch.</span> <span class="audio-time caption" data-speaker="Ross" data-start="706.899000" data-stop="709.363000">Then I found this blog post by James Dyer</span> <span class="audio-time caption" data-speaker="Ross" data-start="709.404000" data-stop="711.968000">where he'd implemented a very slimmed-down</span> <span class="audio-time caption" data-speaker="Ross" data-start="712.008000" data-stop="713.931000">version of orderless.</span> <span class="audio-time caption" data-speaker="Ross" data-start="713.911000" data-stop="715.912000">It wasn't the full features that you get,</span> <span class="audio-time caption" data-speaker="Ross" data-start="715.913000" data-stop="717.614000">but it was something that was good enough</span> <span class="audio-time caption" data-speaker="Ross" data-start="717.615000" data-stop="720.819000">that captured the basic principles of it.</span> <span class="audio-time caption" data-speaker="Ross" data-start="720.839000" data-stop="721.560000">I took that.</span> <span class="audio-time caption" data-speaker="Ross" data-start="721.620000" data-stop="722.841000">I found a few bugs in it,</span> <span class="audio-time caption" data-speaker="Ross" data-start="722.842000" data-stop="724.043000">and I found a few more things.</span> <span class="audio-time caption" data-speaker="Ross" data-start="724.163000" data-stop="726.807000">It was a very, very simple version of orderless,</span> <span class="audio-time caption" data-speaker="Ross" data-start="726.827000" data-stop="728.649000">and I wanted a couple more bells and whistles.</span> <span class="audio-time caption" data-speaker="Ross" data-start="728.669000" data-stop="730.851000">The completions weren't quite right to my tastes.</span> <span class="audio-time caption" data-speaker="Ross" data-start="731.372000" data-stop="732.513000">I took that blog post.</span> <span class="audio-time caption" data-speaker="Ross" data-start="732.553000" data-stop="733.655000">I ended up with a middle ground.</span> <span class="audio-time caption" data-speaker="Ross" data-start="733.695000" data-stop="735.836000">It's not as good as the full orderless,</span> <span class="audio-time caption" data-speaker="Ross" data-start="735.837000" data-stop="737.438000">and it's a little bit more extensive</span> <span class="audio-time caption" data-speaker="Ross" data-start="737.439000" data-stop="739.682000">than the blog post that I found.</span> <span class="audio-time caption" data-speaker="Ross" data-start="739.662000" data-stop="741.324000">But I'm able to run that,</span> <span class="audio-time caption" data-speaker="Ross" data-start="741.325000" data-stop="742.867000">and I don't really miss</span> <span class="audio-time caption" data-speaker="Ross" data-start="742.868000" data-stop="744.851000">the full features of orderless that much.</span> <span class="audio-time caption" data-speaker="Ross" data-start="745.252000" data-stop="747.316000">There are all sorts of cool things that it does</span> <span class="audio-time caption" data-speaker="Ross" data-start="747.376000" data-stop="750.301000">where you can say, okay, these are regexp tokens.</span> <span class="audio-time caption" data-speaker="Ross" data-start="750.361000" data-stop="751.703000">These are literal tokens.</span> <span class="audio-time caption" data-speaker="Ross" data-start="751.804000" data-stop="754.028000">These are NOT filters.</span> <span class="audio-time caption" data-speaker="Ross" data-start="754.048000" data-stop="756.151000">You could do all sorts of combinatorial logic</span> <span class="audio-time caption" data-speaker="Ross" data-start="756.211000" data-stop="757.754000">with it with various syntax.</span> <span class="audio-time caption" data-speaker="Ross" data-start="757.774000" data-stop="759.898000">You can customize the syntax for it.</span> <span class="audio-time caption" data-speaker="Ross" data-start="760.334000" data-stop="762.858000">It's all great, but I wasn't using those extended</span> <span class="audio-time caption" data-speaker="Ross" data-start="762.898000" data-stop="765.222000">features of that package that much. I am happy</span> <span class="audio-time caption" data-speaker="Ross" data-start="765.262000" data-stop="767.205000">with this lighter-weight version. That way</span> <span class="audio-time caption" data-speaker="Ross" data-start="767.245000" data-stop="769.789000">I'm able to use it even when I'm off here in the</span> <span class="audio-time caption" data-speaker="Ross" data-start="769.850000" data-stop="770.931000">security sandbox.</span> <span class="audio-time caption" data-speaker="Ross" data-start="770.971000" data-stop="772.233000">I'm able to do it there too.</span> <span class="audio-time caption" data-speaker="Ross" data-start="773.095000" data-stop="775.177000">It exposes the underlying tension</span> <span class="audio-time caption" data-speaker="Ross" data-start="775.178000" data-stop="776.841000">of this setup.</span> <span class="audio-time caption" data-speaker="Ross" data-start="777.023000" data-stop="779.366000">I would recommend 100% use orderless.</span> <span class="audio-time caption" data-speaker="Ross" data-start="779.426000" data-stop="780.367000">It's better maintained.</span> <span class="audio-time caption" data-speaker="Ross" data-start="780.387000" data-stop="781.949000">The maintainer is a lovely person.</span> <span class="audio-time caption" data-speaker="Ross" data-start="782.409000" data-stop="783.511000">It's more full-featured.</span> <span class="audio-time caption" data-speaker="Ross" data-start="783.531000" data-stop="784.712000">You can customize it.</span> <span class="audio-time caption" data-speaker="Ross" data-start="784.732000" data-stop="786.593000">I ran into a little bit of a hiccup here</span> <span class="audio-time caption" data-speaker="Ross" data-start="786.594000" data-stop="787.836000">and it's my own config.</span> <span class="audio-time caption" data-speaker="Ross" data-start="788.697000" data-stop="791.079000">This is something, it's going to be more</span> <span class="audio-time caption" data-speaker="Ross" data-start="791.119000" data-stop="792.481000">professionally maintained if you're using</span> <span class="audio-time caption" data-speaker="Ross" data-start="792.561000" data-stop="792.962000">orderless.</span> <span class="audio-time caption" data-speaker="Ross" data-start="792.982000" data-stop="794.322000">So if you're not adapting</span> <span class="audio-time caption" data-speaker="Ross" data-start="794.323000" data-stop="796.885000">to my built-ins only method,</span> <span class="audio-time caption" data-speaker="Ross" data-start="796.886000" data-stop="800.230000">I would 100% recommend using orderless instead.</span> <span class="audio-time caption" data-speaker="Ross" data-start="800.210000" data-stop="801.972000">But because I have this constraint,</span> <span class="audio-time caption" data-speaker="Ross" data-start="801.973000" data-stop="802.894000">I'm building this up.</span> <span class="audio-time caption" data-speaker="Ross" data-start="803.395000" data-stop="804.657000">What I built up is kind of nice.</span> <span class="audio-time caption" data-speaker="Ross" data-start="804.697000" data-stop="806.018000">It's one of the more interesting parts</span> <span class="audio-time caption" data-speaker="Ross" data-start="806.019000" data-stop="808.143000">of my package, or of my config.</span> <span class="audio-time caption" data-speaker="Ross" data-start="808.303000" data-stop="810.125000">I could spin it off as its own package,</span> <span class="audio-time caption" data-speaker="Ross" data-start="810.126000" data-stop="812.008000">but if I spun it off as its own package,</span> <span class="audio-time caption" data-speaker="Ross" data-start="812.009000" data-stop="814.312000">it's just a strictly worse version of orderless</span> <span class="audio-time caption" data-speaker="Ross" data-start="814.313000" data-stop="817.338000">at that point, so what's the point?</span> <span class="audio-time caption" data-speaker="Ross" data-start="817.358000" data-stop="818.820000">That's one of the tensions that you have in these</span> <span class="audio-time caption" data-speaker="Ross" data-start="818.860000" data-stop="821.144000">built-ins, is anytime that you build something</span> <span class="audio-time caption" data-speaker="Ross" data-start="821.204000" data-stop="823.227000">that is really interesting, you want to spin it</span> <span class="audio-time caption" data-speaker="Ross" data-start="823.328000" data-stop="825.030000">off and share it, but at that point, you've</span> <span class="audio-time caption" data-speaker="Ross" data-start="825.070000" data-stop="827.314000">defeated the purpose of being built-ins only.</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="829.117000" data-stop="834.905000"><strong class="speaker-name">Sacha:</strong>  I think the idea then of looking at</span> <span class="audio-time caption" data-speaker="Sacha" data-start="834.925000" data-stop="837.008000">the packages that you really like and if you find</span> <span class="audio-time caption" data-speaker="Sacha" data-start="837.048000" data-stop="838.570000">that you're only using a subset of their</span> <span class="audio-time caption" data-speaker="Sacha" data-start="838.590000" data-stop="841.534000">functionality, being able to strip it down or</span> <span class="audio-time caption" data-speaker="Sacha" data-start="841.634000" data-stop="843.276000">take advantage of somebody else's work and</span> <span class="audio-time caption" data-speaker="Sacha" data-start="843.316000" data-stop="845.740000">stripping it down to the subset that you use</span> <span class="audio-time caption" data-speaker="Sacha" data-start="846.240000" data-stop="848.403000">makes it a lot easier for you to put it all</span> <span class="audio-time caption" data-speaker="Sacha" data-start="848.423000" data-stop="851.187000">together in your batteries included, built-in</span> <span class="audio-time caption" data-speaker="Sacha" data-start="851.908000" data-stop="853.050000">only configuration.</span> <p></p><span class="audio-time caption" data-speaker="Ross" data-start="854.131000" data-stop="854.652000"><strong class="speaker-name">Ross:</strong>  Right.</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="854.800000" data-stop="855.824000"><strong class="speaker-name">Sacha:</strong>  It's not super long.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="856.105000" data-stop="858.353000">It can be understood if you go through the</span> <span class="audio-time caption" data-speaker="Sacha" data-start="858.393000" data-stop="858.774000">function.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="859.236000" data-stop="860.460000">So that's great.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="861.825000" data-stop="863.813000">Are there other things like that that you find</span> <span class="audio-time caption" data-speaker="Sacha" data-start="863.853000" data-stop="867.004000">yourself wanting to extract from other packages?</span> <p></p><div class="transcript-heading"><span class="audio-time" data-start="869.000000">14:29</span> <strong>Size indicator</strong></div><p></p><span class="audio-time caption" data-speaker="Ross" data-start="869.245000" data-stop="870.967000"><strong class="speaker-name">Ross:</strong>  I did this really weird little</span> <span class="audio-time caption" data-speaker="Ross" data-start="871.028000" data-stop="873.171000">thing called size indicator mode.</span> <span class="audio-time caption" data-speaker="Ross" data-start="873.391000" data-stop="874.573000">I'd already spun that off.</span> <span class="audio-time caption" data-speaker="Ross" data-start="874.673000" data-stop="876.375000">I don't know if it was worthwhile or not.</span> <span class="audio-time caption" data-speaker="Ross" data-start="877.076000" data-stop="880.021000">One thing is all of your list commands, they run</span> <span class="audio-time caption" data-speaker="Ross" data-start="880.121000" data-stop="883.025000">things in binary bytes.</span> <span class="audio-time caption" data-speaker="Ross" data-start="883.185000" data-stop="885.569000">When we say a kilobyte, what does a kilobyte mean?</span> <span class="audio-time caption" data-speaker="Ross" data-start="885.589000" data-stop="889.775000">Does that mean 1,000 bytes or 1,024 bytes?</span> <span class="audio-time caption" data-speaker="Ross" data-start="889.895000" data-stop="891.577000">Most of the commands that you run, they're going</span> <span class="audio-time caption" data-speaker="Ross" data-start="891.617000" data-stop="895.523000">to be in these binary units.</span> <span class="audio-time caption" data-speaker="Ross" data-start="896.752000" data-stop="899.459000">What you get out of the box in Emacs is</span> <span class="audio-time caption" data-speaker="Ross" data-start="899.460000" data-stop="903.067000">the decimal unit. Their definition is 1000 instead</span> <span class="audio-time caption" data-speaker="Ross" data-start="903.068000" data-stop="906.700000">of 1024. I thought, well, that's kind of weird.</span> <span class="audio-time caption" data-speaker="Ross" data-start="906.701000" data-stop="909.667000">I built this size-indicator-mode where it goes</span> <span class="audio-time caption" data-speaker="Ross" data-start="909.668000" data-stop="912.300000">and it translates things so it's unified across</span> <span class="audio-time caption" data-speaker="Ross" data-start="912.301000" data-stop="915.133000">the way the coreutils work. It's the 1024 base</span> <span class="audio-time caption" data-speaker="Ross" data-start="915.134000" data-stop="916.400000">instead of the 1000 base.</span> <span class="audio-time caption" data-speaker="Ross" data-start="916.401000" data-stop="918.933000">Trivial little package, but it was a lot of fun</span> <span class="audio-time caption" data-speaker="Ross" data-start="918.934000" data-stop="920.767000">I threw it out there. It's up on my Codeberg</span> <span class="audio-time caption" data-speaker="Ross" data-start="920.768000" data-stop="922.422000">if anybody wants to pull that in.</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="923.718000" data-stop="925.861000"><strong class="speaker-name">Sacha:</strong>  Yeah, so it just reduces the</span> <span class="audio-time caption" data-speaker="Sacha" data-start="925.921000" data-stop="928.666000">friction of having to think, okay, is this in</span> <span class="audio-time caption" data-speaker="Sacha" data-start="928.746000" data-stop="930.448000">this unit or is that unit?</span> <span class="audio-time caption" data-speaker="Sacha" data-start="930.468000" data-stop="932.411000">It'll always be in the units that you like to use</span> <span class="audio-time caption" data-speaker="Sacha" data-start="932.451000" data-stop="934.595000">when you're talking about files.</span> <p></p><span class="audio-time caption" data-speaker="Ross" data-start="934.615000" data-stop="935.516000"><strong class="speaker-name">Ross:</strong>  Exactly, yeah.</span> <span class="audio-time caption" data-speaker="Ross" data-start="935.556000" data-stop="937.179000">It keeps things consistent that way.</span> <span class="audio-time caption" data-speaker="Ross" data-start="937.199000" data-stop="938.761000">That's a package that I spun off.</span> <span class="audio-time caption" data-speaker="Ross" data-start="938.821000" data-stop="939.822000">Is that something that...</span> <span class="audio-time caption" data-speaker="Ross" data-start="939.823000" data-stop="941.505000">It's a very lightweight configuration.</span> <span class="audio-time caption" data-speaker="Ross" data-start="941.525000" data-stop="942.846000">It probably could have stayed here</span> <span class="audio-time caption" data-speaker="Ross" data-start="942.847000" data-stop="943.669000">in my built-ins.</span> <span class="audio-time caption" data-speaker="Ross" data-start="944.129000" data-stop="945.751000">I doubt anybody else has that itch,</span> <span class="audio-time caption" data-speaker="Ross" data-start="945.752000" data-stop="946.512000">but I shared it out there</span> <span class="audio-time caption" data-speaker="Ross" data-start="946.513000" data-stop="947.975000">and a lot of people thought, ooh, neat.</span> <span class="audio-time caption" data-speaker="Ross" data-start="947.995000" data-stop="949.598000">I think a few people did install it.</span> <span class="audio-time caption" data-speaker="Ross" data-start="949.618000" data-stop="951.801000">I'm glad I spun that one off, I suppose.</span> <span class="audio-time caption" data-speaker="Ross" data-start="952.253000" data-stop="953.756000">There's always that fuzzy line.</span> <span class="audio-time caption" data-speaker="Ross" data-start="953.797000" data-stop="955.460000">Where does it grow into something that you think</span> <span class="audio-time caption" data-speaker="Ross" data-start="955.521000" data-stop="957.686000">other people are going to be interested in, versus</span> <span class="audio-time caption" data-speaker="Ross" data-start="957.726000" data-stop="959.169000">what are the ones that you should just keep</span> <span class="audio-time caption" data-speaker="Ross" data-start="959.289000" data-stop="961.414000">in-house and they can always copy it out of your</span> <span class="audio-time caption" data-speaker="Ross" data-start="961.434000" data-stop="962.577000">config if they're interested?</span> <span class="audio-time caption" data-speaker="Ross" data-start="963.419000" data-stop="965.203000">It's a hard line to walk in this style.</span> <span class="audio-time caption" data-speaker="Ross" data-start="965.223000" data-stop="967.749000">I haven't exactly found the balance yet, I don't</span> <span class="audio-time caption" data-speaker="Ross" data-start="967.789000" data-stop="968.170000">think.</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="968.892000" data-stop="970.614000"><strong class="speaker-name">Sacha:</strong>  A lot of your config isn't so much</span> <span class="audio-time caption" data-speaker="Sacha" data-start="972.256000" data-stop="974.517000">new functionality as it is</span> <span class="audio-time caption" data-speaker="Sacha" data-start="974.518000" data-stop="975.919000">just filing off the corners</span> <span class="audio-time caption" data-speaker="Sacha" data-start="975.920000" data-stop="978.603000">or making something a little bit nicer to use.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="979.624000" data-stop="981.326000">For example, when I was going through your</span> <span class="audio-time caption" data-speaker="Sacha" data-start="981.987000" data-stop="984.329000">config, both the base config as well as the</span> <span class="audio-time caption" data-speaker="Sacha" data-start="984.369000" data-stop="986.131000">extended one where you have more packages and</span> <span class="audio-time caption" data-speaker="Sacha" data-start="986.151000" data-stop="989.275000">things set up, I was like, oh yeah, okay.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="989.836000" data-stop="992.639000">You fiddle with your visual-bell, but you also,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="993.299000" data-stop="994.540000">in your extended config,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="994.541000" data-stop="996.163000">set it to mode-line-bell instead.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="996.323000" data-stop="998.375000">That sounds interesting.</span> <p></p><span class="audio-time caption" data-speaker="Ross" data-start="999.357000" data-stop="999.637000"><strong class="speaker-name">Ross:</strong>  Right.</span> <p></p><div class="transcript-heading"><span class="audio-time" data-start="1000.000000">16:40</span> <strong>Graceful degradation</strong></div><p></p><span class="audio-time caption" data-speaker="Ross" data-start="1000.719000" data-stop="1004.344000"><strong class="speaker-name">Ross:</strong> I go for graceful degradation. When I was doing</span> <span class="audio-time caption" data-speaker="Ross" data-start="1004.424000" data-stop="1007.128000">web pages as far back as the 90s,</span> <span class="audio-time caption" data-speaker="Ross" data-start="1007.168000" data-stop="1008.408000">when I was first into Emacs,</span> <span class="audio-time caption" data-speaker="Ross" data-start="1008.409000" data-stop="1010.191000">everything was about graceful degradation</span> <span class="audio-time caption" data-speaker="Ross" data-start="1010.192000" data-stop="1012.515000">as you had these new browser features.</span> <span class="audio-time caption" data-speaker="Ross" data-start="1012.535000" data-stop="1014.758000">You're trying to use these new shiny things.</span> <span class="audio-time caption" data-speaker="Ross" data-start="1014.959000" data-stop="1015.459000">I'm old enough.</span> <span class="audio-time caption" data-speaker="Ross" data-start="1015.499000" data-stop="1017.462000">I've been doing web pages since before there were</span> <span class="audio-time caption" data-speaker="Ross" data-start="1017.502000" data-stop="1018.744000">cascading style sheets.</span> <span class="audio-time caption" data-speaker="Ross" data-start="1018.764000" data-stop="1021.167000">But anyway, as we were starting to do CSS and as</span> <span class="audio-time caption" data-speaker="Ross" data-start="1021.207000" data-stop="1022.810000">we were starting to do JavaScript, it was all</span> <span class="audio-time caption" data-speaker="Ross" data-start="1022.850000" data-stop="1024.531000">about progressive enhancement:</span> <span class="audio-time caption" data-speaker="Ross" data-start="1024.512000" data-stop="1026.616000">do the shiny things for the browsers that can</span> <span class="audio-time caption" data-speaker="Ross" data-start="1026.675000" data-stop="1029.320000">support it, but also have this nice baseline of</span> <span class="audio-time caption" data-speaker="Ross" data-start="1029.361000" data-stop="1031.965000">functionality for those that can't. I've tried</span> <span class="audio-time caption" data-speaker="Ross" data-start="1031.986000" data-stop="1035.292000">to do that with this base level config.</span> <span class="audio-time caption" data-speaker="Ross" data-start="1035.473000" data-stop="1037.958000">I've got the visual-bell that's built into Emacs</span> <span class="audio-time caption" data-speaker="Ross" data-start="1038.018000" data-stop="1039.681000">and it flashes the screen. It puts up this</span> <span class="audio-time caption" data-speaker="Ross" data-start="1039.800000" data-stop="1041.864000">annoying triangle sign.</span> <span class="audio-time caption" data-speaker="Ross" data-start="1041.865000" data-stop="1043.568000">I don't like that that much.</span> <span class="audio-time caption" data-speaker="Ross" data-start="1043.569000" data-stop="1046.875000">This one, if I can make the bell ring...</span> <span class="audio-time caption" data-speaker="Ross" data-start="1047.412000" data-stop="1048.574000">Oh, this would make the bell ring.</span> <span class="audio-time caption" data-speaker="Ross" data-start="1049.496000" data-stop="1050.137000">Why is it not?</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="1050.498000" data-stop="1052.282000"><strong class="speaker-name">Sacha:</strong>  I guess <code>C-g</code> doesn’t just</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1052.322000" data-stop="1053.384000">automatically make it...</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1053.745000" data-stop="1056.150000">Oh, <code>C-g</code> works for me, so I don’t know.</span> <p></p><span class="audio-time caption" data-speaker="Ross" data-start="1056.230000" data-stop="1058.234000"><strong class="speaker-name">Ross:</strong>  It usually works for me, too.</span> <span class="audio-time caption" data-speaker="Ross" data-start="1058.314000" data-stop="1061.079000">I don't know why it's not triggering a bell here.</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="1063.284000" data-stop="1063.805000"><strong class="speaker-name">Sacha:</strong>  That's OK.</span> <p></p><span class="audio-time caption" data-speaker="Ross" data-start="1064.807000" data-stop="1065.669000"><strong class="speaker-name">Ross:</strong>  Curse of the demo.</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="1066.130000" data-stop="1066.350000"><strong class="speaker-name">Sacha:</strong>  Yeah, yeah.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1066.370000" data-stop="1067.833000">Anyone interested can go look it up.</span> <p></p><div class="transcript-heading"><span class="audio-time" data-start="1068.000000">17:48</span> <strong>emacs-lock-mode
</strong></div><p></p><a href="https://sachachua.com/blog/2026/06/emacs-chat-with-ross-a-baker/emacs-chat-26-ross-a-baker-00-19-01-733.jpg"><img loading="lazy" target="_blank" src="https://sachachua.com/blog/2026/06/emacs-chat-with-ross-a-baker/emacs-chat-26-ross-a-baker-00-19-01-733.jpg" alt="image from video 00:19:01.733" data-time="00:19:01.733"></a><span class="audio-time caption" data-speaker="Sacha" data-start="1068.860000" data-stop="1071.006000"><strong class="speaker-name">Sacha:</strong> Then you have a couple of other things</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1071.067000" data-stop="1074.256000">around, for example, making it easier to not kill</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1074.316000" data-stop="1077.565000">a buffer. I hadn't known about</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1077.566000" data-stop="1078.870000"><code>emacs-lock-mode</code> either.</span> <p></p><span class="audio-time caption" data-speaker="Ross" data-start="1079.070000" data-stop="1080.996000"><strong class="speaker-name">Ross:</strong>  Oh yes, Emacs lock.</span> <span class="audio-time caption" data-speaker="Ross" data-start="1085.785000" data-stop="1088.532000">Yeah, so there’s this <code>emacs-lock-mode</code></span> <span class="audio-time caption" data-speaker="Ross" data-start="1088.533000" data-stop="1089.557000">and it is not the same.</span> <span class="audio-time caption" data-speaker="Ross" data-start="1089.657000" data-stop="1092.084000">It's easy to confuse this with the lock files.</span> <span class="audio-time caption" data-speaker="Ross" data-start="1092.105000" data-stop="1095.395000">You know those files that you get the hash signs,</span> <span class="audio-time caption" data-speaker="Ross" data-start="1095.415000" data-stop="1099.086000">like you get ".#name-of-the-file#".</span> <span class="audio-time caption" data-speaker="Ross" data-start="1099.353000" data-stop="1101.816000">That's something from when Emacs was used more on</span> <span class="audio-time caption" data-speaker="Ross" data-start="1101.896000" data-stop="1103.218000">multi-user environments.</span> <span class="audio-time caption" data-speaker="Ross" data-start="1103.258000" data-stop="1106.202000">Whenever you had a modified file, it would create</span> <span class="audio-time caption" data-speaker="Ross" data-start="1106.242000" data-stop="1108.425000">these lock files, and it would prevent two users</span> <span class="audio-time caption" data-speaker="Ross" data-start="1108.465000" data-stop="1110.608000">who were editing the same file on their own Emacs</span> <span class="audio-time caption" data-speaker="Ross" data-start="1111.128000" data-stop="1112.350000">from stepping over each other.</span> <span class="audio-time caption" data-speaker="Ross" data-start="1112.911000" data-stop="1114.994000">How often in modern times are we working on a</span> <span class="audio-time caption" data-speaker="Ross" data-start="1115.034000" data-stop="1116.055000">multi-user system?</span> <span class="audio-time caption" data-speaker="Ross" data-start="1116.075000" data-stop="1118.318000">If it is a multi-user system, are they both</span> <span class="audio-time caption" data-speaker="Ross" data-start="1118.418000" data-stop="1120.000000">using Emacs on the same file?</span> <span class="audio-time caption" data-speaker="Ross" data-start="1120.080000" data-stop="1122.063000">That's something that was very important in the</span> <span class="audio-time caption" data-speaker="Ross" data-start="1122.123000" data-stop="1124.466000">late 90s and is not very important now.</span> <span class="audio-time caption" data-speaker="Ross" data-start="1124.868000" data-stop="1126.430000">This is not those file locks.</span> <span class="audio-time caption" data-speaker="Ross" data-start="1126.510000" data-stop="1128.632000">This is a buffer locking,</span> <span class="audio-time caption" data-speaker="Ross" data-start="1128.633000" data-stop="1130.376000">and with the scratch buffer...</span> <span class="audio-time caption" data-speaker="Ross" data-start="1130.636000" data-stop="1132.920000">I've got this turned on.</span> <span class="audio-time caption" data-speaker="Ross" data-start="1132.940000" data-stop="1133.561000">Evaluate it.</span> <span class="audio-time caption" data-speaker="Ross" data-start="1133.841000" data-stop="1135.443000">Make sure it worked.</span> <span class="audio-time caption" data-speaker="Ross" data-start="1135.463000" data-stop="1137.146000">Let's go to our scratch buffer.</span> <span class="audio-time caption" data-speaker="Ross" data-start="1137.446000" data-stop="1138.628000">Here's my scratch buffer.</span> <span class="audio-time caption" data-speaker="Ross" data-start="1138.708000" data-stop="1140.711000">I don't want to accidentally kill it.</span> <span class="audio-time caption" data-speaker="Ross" data-start="1140.731000" data-stop="1142.713000">If I try to kill it, it's going to say</span> <span class="audio-time caption" data-speaker="Ross" data-start="1142.714000" data-stop="1144.857000">"Buffer *scratch​* is locked and cannot be killed."</span> <span class="audio-time caption" data-speaker="Ross" data-start="1145.618000" data-stop="1149.103000">I'll use this for notes all over the place.</span> <span class="audio-time caption" data-speaker="Ross" data-start="1150.771000" data-stop="1153.454000">I've accidentally killed things too many times.</span> <span class="audio-time caption" data-speaker="Ross" data-start="1153.494000" data-stop="1156.176000">The scratch buffer is not typically backed by a</span> <span class="audio-time caption" data-speaker="Ross" data-start="1156.256000" data-stop="1158.999000">file, and I've lost too many things.</span> <span class="audio-time caption" data-speaker="Ross" data-start="1159.019000" data-stop="1162.122000">This way, I know this scratch buffer is always</span> <span class="audio-time caption" data-speaker="Ross" data-start="1162.182000" data-stop="1163.924000">going to be a persistent place.</span> <span class="audio-time caption" data-speaker="Ross" data-start="1164.404000" data-stop="1165.365000">There are other approaches to it.</span> <span class="audio-time caption" data-speaker="Ross" data-start="1165.385000" data-stop="1167.147000">I think there’s a <code>persistent-scratch</code> package</span> <span class="audio-time caption" data-speaker="Ross" data-start="1167.167000" data-stop="1167.667000">that's out there.</span> <span class="audio-time caption" data-speaker="Ross" data-start="1167.687000" data-stop="1169.829000">But again, that gets me out of the built-in zone.</span> <span class="audio-time caption" data-speaker="Ross" data-start="1169.949000" data-stop="1171.531000">That might be a progressive enhancement,</span> <span class="audio-time caption" data-speaker="Ross" data-start="1171.551000" data-stop="1173.513000">something that takes your scratch buffer and</span> <span class="audio-time caption" data-speaker="Ross" data-start="1173.553000" data-stop="1174.514000">backs it with a file.</span> <span class="audio-time caption" data-speaker="Ross" data-start="1174.534000" data-stop="1175.875000">That would probably be a good thing to do.</span> <span class="audio-time caption" data-speaker="Ross" data-start="1175.975000" data-stop="1177.557000">So that's one of the packages I'll be looking at</span> <span class="audio-time caption" data-speaker="Ross" data-start="1177.657000" data-stop="1178.938000">adding in the other config.</span> <span class="audio-time caption" data-speaker="Ross" data-start="1179.121000" data-stop="1181.087000">But emacs-lock is built in.</span> <span class="audio-time caption" data-speaker="Ross" data-start="1181.107000" data-stop="1182.793000">It's one of those things that's so obscure you</span> <span class="audio-time caption" data-speaker="Ross" data-start="1182.833000" data-stop="1184.699000">can't even find it in the Emacs manual.</span> <span class="audio-time caption" data-speaker="Ross" data-start="1185.301000" data-stop="1186.064000">It's just out there.</span> <span class="audio-time caption" data-speaker="Ross" data-start="1186.084000" data-stop="1187.107000">I don't remember where I picked it up.</span> <span class="audio-time caption" data-speaker="Ross" data-start="1187.127000" data-stop="1189.154000">I think just scanning somebody else's config I</span> <span class="audio-time caption" data-speaker="Ross" data-start="1189.174000" data-stop="1190.900000">picked it up somewhere, but I couldn't find it in</span> <span class="audio-time caption" data-speaker="Ross" data-start="1190.940000" data-stop="1191.983000">the manual at all.</span> <p></p><div class="transcript-heading"><span class="audio-time" data-start="1192.000000">19:52</span> <strong>exiting Emacs: yes-or-no-p</strong></div><p></p><span class="audio-time caption" data-speaker="Sacha" data-start="1192.334000" data-stop="1194.177000"><strong class="speaker-name">Sacha:</strong>  I was going to ask you where you found it.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1194.217000" data-stop="1196.381000">You occasionally read other people's</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1196.441000" data-stop="1198.926000">configurations for interesting ideas.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1200.529000" data-stop="1205.177000">And then you have a bunch of niceties.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1206.279000" data-stop="1207.400000">Actually, before I go into that,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1207.401000" data-stop="1208.924000">@Ray-On-Emacs has a question.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1208.944000" data-stop="1210.447000">"How do you exit Emacs then?</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1210.507000" data-stop="1214.293000">Or do you never exit Emacs?"</span> <p></p><span class="audio-time caption" data-speaker="Ross" data-start="1214.754000" data-stop="1216.317000"><strong class="speaker-name">Ross:</strong>  I almost never exit it.</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="1216.803000" data-stop="1219.108000"><strong class="speaker-name">Sacha:</strong>  I think the <code>emacs-lock-mode</code> for the</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1219.128000" data-stop="1222.135000">Scratch doesn't kick in if you're closing Emacs</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1222.376000" data-stop="1222.877000">as a whole?</span> <p></p><span class="audio-time caption" data-speaker="Ross" data-start="1223.940000" data-stop="1224.721000"><strong class="speaker-name">Ross:</strong>  Correct.</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="1224.741000" data-stop="1226.145000"><strong class="speaker-name">Sacha:</strong>  If you're closing Emacs as a whole, it will</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1226.686000" data-stop="1229.312000">happily still discard your Scratch buffer, but as</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1229.372000" data-stop="1232.820000">Ross says, you could also not exit Emacs.</span> <p></p><span class="audio-time caption" data-speaker="Ross" data-start="1234.066000" data-stop="1237.352000"><strong class="speaker-name">Ross:</strong>  Yeah, I've got the flippant line in</span> <span class="audio-time caption" data-speaker="Ross" data-start="1237.392000" data-stop="1238.575000">here: ¨Exit Emacs?</span> <span class="audio-time caption" data-speaker="Ross" data-start="1238.595000" data-stop="1240.499000">Surely there's been a terrible misunderstanding,¨</span> <span class="audio-time caption" data-speaker="Ross" data-start="1240.519000" data-stop="1242.723000">But I do configure the way that I do it.</span> <span class="audio-time caption" data-speaker="Ross" data-start="1242.883000" data-stop="1245.689000">I want to make sure that the confirmation of it,</span> <span class="audio-time caption" data-speaker="Ross" data-start="1245.749000" data-stop="1246.671000">it's the yes or no.</span> <p></p><div class="transcript-heading"><span class="audio-time" data-start="1246.000000">20:46</span> <strong>yes-or-no-p</strong></div><p></p><span class="audio-time caption" data-speaker="Ross" data-start="1246.791000" data-stop="1248.072000"><strong class="speaker-name">Ross:</strong> I don't want to accidentally hit that</span> <span class="audio-time caption" data-speaker="Ross" data-start="1248.073000" data-stop="1252.041000">key binding, so I will use the full fledged yes-or-no-p`.</span> <span class="audio-time caption" data-speaker="Ross" data-start="1252.021000" data-stop="1254.164000">That's one area that I diverge from a lot of</span> <span class="audio-time caption" data-speaker="Ross" data-start="1254.204000" data-stop="1256.628000">people's common things. One of the very early</span> <span class="audio-time caption" data-speaker="Ross" data-start="1256.688000" data-stop="1258.551000">things a lot of people set in their config is</span> <span class="audio-time caption" data-speaker="Ross" data-start="1258.591000" data-stop="1260.773000">they’ll rebind this <code>yes-or-no-p</code></span> <span class="audio-time caption" data-speaker="Ross" data-start="1260.774000" data-stop="1264.079000">to the <code>y-or-n-p</code> so that way, they only have to type</span> <span class="audio-time caption" data-speaker="Ross" data-start="1264.119000" data-stop="1265.661000">the one character.</span> <span class="audio-time caption" data-speaker="Ross" data-start="1265.681000" data-stop="1268.025000">Emacs is fairly thoughtful about which ones that</span> <span class="audio-time caption" data-speaker="Ross" data-start="1268.065000" data-stop="1270.969000">it makes you do "yes" or "no" versus the "y" or "n". The</span> <span class="audio-time caption" data-speaker="Ross" data-start="1271.009000" data-stop="1273.172000">things that are quick and inconsequential, those</span> <span class="audio-time caption" data-speaker="Ross" data-start="1273.213000" data-stop="1274.815000">are the ones where it gives you the prompt that</span> <span class="audio-time caption" data-speaker="Ross" data-start="1274.835000" data-stop="1276.898000">it's just a "y" or "n" answer.</span> <span class="audio-time caption" data-speaker="Ross" data-start="1276.878000" data-stop="1278.540000">The ones that are going to be more</span> <span class="audio-time caption" data-speaker="Ross" data-start="1278.600000" data-stop="1280.682000">destructive and you really want to stop and slow</span> <span class="audio-time caption" data-speaker="Ross" data-start="1280.722000" data-stop="1282.002000">down and think about, that's what the</span> <span class="audio-time caption" data-speaker="Ross" data-start="1282.003000" data-stop="1282.984000"><code>yes-or-no-p</code> is for.</span> <span class="audio-time caption" data-speaker="Ross" data-start="1283.445000" data-stop="1285.767000">People stomp all over that in their configs,</span> <span class="audio-time caption" data-speaker="Ross" data-start="1285.787000" data-stop="1287.589000">and I think that's one area where I'm a little</span> <span class="audio-time caption" data-speaker="Ross" data-start="1287.649000" data-stop="1289.151000">bit out of the mainstream.</span> <span class="audio-time caption" data-speaker="Ross" data-start="1289.291000" data-stop="1291.333000">I like the defaults on Emacs there.</span> <span class="audio-time caption" data-speaker="Ross" data-start="1291.834000" data-stop="1293.676000">It is thoughtful about which ones it prompts you</span> <span class="audio-time caption" data-speaker="Ross" data-start="1293.716000" data-stop="1294.316000">for that on.</span> <span class="audio-time caption" data-speaker="Ross" data-start="1294.897000" data-stop="1297.079000">But if I remember right, <code>confirm-kill-emacs</code> was</span> <span class="audio-time caption" data-speaker="Ross" data-start="1297.199000" data-stop="1299.181000">one that was just a "y" or "n". That's one of the</span> <span class="audio-time caption" data-speaker="Ross" data-start="1299.221000" data-stop="1300.743000">more dramatic ones that's out there.</span> <span class="audio-time caption" data-speaker="Ross" data-start="1301.484000" data-stop="1304.086000">So I did customize that to make sure, yes, I</span> <span class="audio-time caption" data-speaker="Ross" data-start="1304.147000" data-stop="1305.568000">really mean that.</span> <p></p><div class="transcript-heading"><span class="audio-time" data-start="1305.000000">21:45</span> <strong>Processes</strong></div><p></p><span class="audio-time caption" data-speaker="Ross" data-start="1305.548000" data-stop="1307.451000"><strong class="speaker-name">Ross:</strong> Then there's some annoyances where</span> <span class="audio-time caption" data-speaker="Ross" data-start="1307.452000" data-stop="1309.374000">if you've got a bunch of inferior processes</span> <span class="audio-time caption" data-speaker="Ross" data-start="1309.375000" data-stop="1310.857000">running after I've already confirmed</span> <span class="audio-time caption" data-speaker="Ross" data-start="1310.858000" data-stop="1312.040000">that I want to kill Emacs,</span> <span class="audio-time caption" data-speaker="Ross" data-start="1312.060000" data-stop="1313.763000">well I just said I want to kill Emacs,</span> <span class="audio-time caption" data-speaker="Ross" data-start="1313.764000" data-stop="1316.087000">so I didn't want to be prompted about the processes.</span> <span class="audio-time caption" data-speaker="Ross" data-start="1316.088000" data-stop="1319.434000">I do quit Emacs enough I've customized how it shuts</span> <span class="audio-time caption" data-speaker="Ross" data-start="1319.495000" data-stop="1322.960000">down. I don't do it that often.</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="1322.961000" data-stop="1325.025000"><strong class="speaker-name">Sacha:</strong>  I imagine if you really want to stop yourself from</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1325.377000" data-stop="1328.122000">closing Emacs, you might just</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1329.003000" data-stop="1333.531000">change the key binding and make you M-x it</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1334.052000" data-stop="1335.554000">instead in order to exit it,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1335.574000" data-stop="1337.858000">so you really absolutely don't run into that.</span> <p></p><div class="transcript-heading"><span class="audio-time" data-start="1338.000000">22:18</span> <strong>Moving keymaps</strong></div><p></p><span class="audio-time caption" data-speaker="Sacha" data-start="1338.359000" data-stop="1341.264000"><strong class="speaker-name">Sacha:</strong> In fact, your config has some of these lambdas</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1341.364000" data-stop="1344.710000">where you are telling yourself, okay, this</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1344.770000" data-stop="1346.473000">keyboard shortcut has changed.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1346.909000" data-stop="1349.115000">You have this thing in Magit, I think, where</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1349.156000" data-stop="1352.345000">you're like, I moved the key map and now</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1352.445000" data-stop="1354.411000">it's somewhere else.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1354.431000" data-stop="1355.554000">I thought that was interesting too.</span> <p></p><span class="audio-time caption" data-speaker="Ross" data-start="1355.574000" data-stop="1359.265000"><strong class="speaker-name">Ross:</strong>  I'm trying to remember what that one was called.</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="1359.717000" data-stop="1361.440000"><strong class="speaker-name">Sacha:</strong>  There you go.</span> <p></p><span class="audio-time caption" data-speaker="Ross" data-start="1362.201000" data-stop="1363.262000"><strong class="speaker-name">Ross:</strong>  Yeah, the <code>crab-juice&#45;&#45;moved-to</code>.</span> <span class="audio-time caption" data-speaker="Ross" data-start="1363.503000" data-stop="1366.547000">I'll bind my old key map as I'm trying</span> <span class="audio-time caption" data-speaker="Ross" data-start="1366.647000" data-stop="1368.009000">to move things around.</span> <span class="audio-time caption" data-speaker="Ross" data-start="1368.851000" data-stop="1371.094000">I used to use Spacemacs for a while.</span> <span class="audio-time caption" data-speaker="Ross" data-start="1371.174000" data-stop="1372.797000">I used Doom Emacs for a while.</span> <span class="audio-time caption" data-speaker="Ross" data-start="1372.837000" data-stop="1374.639000">I've looked at a lot of the other configs and</span> <span class="audio-time caption" data-speaker="Ross" data-start="1374.679000" data-stop="1377.343000">I've said, okay, this architecture makes a little</span> <span class="audio-time caption" data-speaker="Ross" data-start="1377.444000" data-stop="1378.024000">bit more sense.</span> <span class="audio-time caption" data-speaker="Ross" data-start="1378.085000" data-stop="1381.049000">I want to rebind my prefixes that way, but still,</span> <span class="audio-time caption" data-speaker="Ross" data-start="1381.169000" data-stop="1382.712000">for the ones that are deeply ingrained,</span> <span class="audio-time caption" data-speaker="Ross" data-start="1382.932000" data-stop="1384.735000">it's sort of like a deprecation warning, except</span> <span class="audio-time caption" data-speaker="Ross" data-start="1384.775000" data-stop="1385.956000">for key bindings.</span> <span class="audio-time caption" data-speaker="Ross" data-start="1388.202000" data-stop="1398.879000">It looks like I used to run on <code>C-c g</code>.</span> <span class="audio-time caption" data-speaker="Ross" data-start="1398.979000" data-stop="1401.503000">So if I try to do that, it's going to say, nope,</span> <span class="audio-time caption" data-speaker="Ross" data-start="1401.624000" data-stop="1402.665000">moved to <code>C-c v c</code>.</span> <span class="audio-time caption" data-speaker="Ross" data-start="1402.886000" data-stop="1403.747000">And now I can do that.</span> <span class="audio-time caption" data-speaker="Ross" data-start="1403.927000" data-stop="1407.493000"><code>C-c v c</code>, and there’s my Magit command.</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="1408.368000" data-stop="1410.731000"><strong class="speaker-name">Sacha:</strong>  Yeah, I like that you actually</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1410.791000" data-stop="1413.114000">ended up mapping the whole keyboard shortcut</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1413.274000" data-stop="1415.697000">instead of just the <code>C-c g</code> one because, of</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1415.737000" data-stop="1420.023000">course, your muscle memory is getting you to put</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1420.143000" data-stop="1423.127000">in the whole <code>C-c g</code> and then something.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1424.008000" data-stop="1429.835000">This one lets you have the full keyboard</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1429.875000" data-stop="1432.138000">shortcut before it tells you the message.</span> <p></p><span class="audio-time caption" data-speaker="Ross" data-start="1434.389000" data-stop="1435.991000"><strong class="speaker-name">Ross:</strong>  This is using user error.</span> <span class="audio-time caption" data-speaker="Ross" data-start="1436.011000" data-stop="1437.633000">So I thought when I hit that one, I thought I</span> <span class="audio-time caption" data-speaker="Ross" data-start="1437.654000" data-stop="1439.396000">would flash my mode line, but the mode line is</span> <span class="audio-time caption" data-speaker="Ross" data-start="1439.436000" data-stop="1440.117000">not flashing.</span> <span class="audio-time caption" data-speaker="Ross" data-start="1440.217000" data-stop="1441.999000">I know it flashes on my other machine.</span> <span class="audio-time caption" data-speaker="Ross" data-start="1442.881000" data-stop="1444.062000">It flashes on my work machine.</span> <span class="audio-time caption" data-speaker="Ross" data-start="1444.082000" data-stop="1445.364000">It doesn't flash on this one.</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="1447.908000" data-stop="1449.330000"><strong class="speaker-name">Sacha:</strong>  The challenge is getting a config</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1449.370000" data-stop="1451.292000">to work in many different environments.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1451.352000" data-stop="1452.774000">You've got your work machine, you've got this</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1452.814000" data-stop="1455.899000">personal machine, and then you've got the sandbox</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1456.039000" data-stop="1458.542000">one that's got a really old version of Emacs on it.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1459.617000" data-stop="1461.721000">Okay, so a couple of other things that you've</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1461.782000" data-stop="1462.303000">mentioned.</span> <p></p><div class="transcript-heading"><span class="audio-time" data-start="1463.000000">24:23</span> <strong>Writing in Org Mode and Markdown</strong></div><p></p><span class="audio-time caption" data-speaker="Sacha" data-start="1463.726000" data-stop="1467.313000"><strong class="speaker-name">Sacha:</strong> You do a lot of writing in Org Mode as well, right?</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1467.353000" data-stop="1469.197000">You've mentioned using the literal programming</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1469.237000" data-stop="1470.901000">part of it a lot.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1470.921000" data-stop="1472.524000">You do a lot of work with Markdown.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1473.547000" data-stop="1475.812000">Do you have any interesting workflow tips for</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1475.872000" data-stop="1477.816000">people who are finding themselves writing with</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1477.896000" data-stop="1479.820000">either Org Mode or Markdown in a work environment?</span> <p></p><span class="audio-time caption" data-speaker="Ross" data-start="1481.588000" data-stop="1484.092000"><strong class="speaker-name">Ross:</strong>  That's always a tension as well.</span> <span class="audio-time caption" data-speaker="Ross" data-start="1484.212000" data-stop="1486.296000">I would rather be in Org Mode.</span> <span class="audio-time caption" data-speaker="Ross" data-start="1486.356000" data-stop="1488.279000">Org Mode has more bells and whistles.</span> <span class="audio-time caption" data-speaker="Ross" data-start="1488.359000" data-stop="1490.963000">You can program more things in it.</span> <span class="audio-time caption" data-speaker="Ross" data-start="1491.905000" data-stop="1494.709000">It's a programmable Markdown in a sense.</span> <span class="audio-time caption" data-speaker="Ross" data-start="1495.891000" data-stop="1497.794000">I'm much more comfortable in Org Mode in general.</span> <span class="audio-time caption" data-speaker="Ross" data-start="1497.934000" data-stop="1501.139000">Now, I don't use Org as a personal organizer as much.</span> <span class="audio-time caption" data-speaker="Ross" data-start="1501.220000" data-stop="1501.881000">I would like to.</span> <span class="audio-time caption" data-speaker="Ross" data-start="1501.981000" data-stop="1503.343000">I've dabbled in it a little bit.</span> <span class="audio-time caption" data-speaker="Ross" data-start="1503.323000" data-stop="1505.046000">I've seen some of your previous interviews and</span> <span class="audio-time caption" data-speaker="Ross" data-start="1505.066000" data-stop="1506.750000">people doing mind-blowing things with that.</span> <span class="audio-time caption" data-speaker="Ross" data-start="1506.790000" data-stop="1507.992000">I'm jealous of what they're doing.</span> <span class="audio-time caption" data-speaker="Ross" data-start="1508.012000" data-stop="1509.455000">I would love to get to that level.</span> <span class="audio-time caption" data-speaker="Ross" data-start="1509.956000" data-stop="1512.721000">I'm still a relative newcomer to Org versus how</span> <span class="audio-time caption" data-speaker="Ross" data-start="1513.583000" data-stop="1514.705000">old I am at Emacs.</span> <span class="audio-time caption" data-speaker="Ross" data-start="1514.745000" data-stop="1516.429000">I'm a relative newcomer to Org.</span> <span class="audio-time caption" data-speaker="Ross" data-start="1516.869000" data-stop="1518.913000">So I haven't embraced that yet, but I do use it</span> <span class="audio-time caption" data-speaker="Ross" data-start="1518.974000" data-stop="1521.318000">as my general, if I'm writing a document by</span> <span class="audio-time caption" data-speaker="Ross" data-start="1521.378000" data-stop="1523.863000">myself, it will 100% be in Org.</span> <span class="audio-time caption" data-speaker="Ross" data-start="1523.843000" data-stop="1526.586000">This document that we're in, it's my entire website.</span> <span class="audio-time caption" data-speaker="Ross" data-start="1526.606000" data-stop="1528.488000">My Emacs config is in here.</span> <span class="audio-time caption" data-speaker="Ross" data-start="1528.688000" data-stop="1531.471000">My Nix configuration for how my systems work is</span> <span class="audio-time caption" data-speaker="Ross" data-start="1531.571000" data-stop="1531.992000">in here.</span> <span class="audio-time caption" data-speaker="Ross" data-start="1532.733000" data-stop="1534.074000">I like to do barbecue.</span> <span class="audio-time caption" data-speaker="Ross" data-start="1534.114000" data-stop="1536.317000">Some of my barbecue recipes are in here.</span> <span class="audio-time caption" data-speaker="Ross" data-start="1536.997000" data-stop="1538.979000">Just general blog posts about things that have</span> <span class="audio-time caption" data-speaker="Ross" data-start="1539.040000" data-stop="1541.282000">nothing to do with technology are in here.</span> <span class="audio-time caption" data-speaker="Ross" data-start="1542.043000" data-stop="1543.805000">It's all one big Org file.</span> <span class="audio-time caption" data-speaker="Ross" data-start="1544.145000" data-stop="1545.967000">That style is emphasized.</span> <span class="audio-time caption" data-speaker="Ross" data-start="1546.047000" data-stop="1549.351000">I'm using ox-hugo to take this document and export</span> <span class="audio-time caption" data-speaker="Ross" data-start="1549.391000" data-stop="1550.492000">it to the website.</span> <span class="audio-time caption" data-speaker="Ross" data-start="1550.860000" data-stop="1554.826000">They encourage having one big large file for that.</span> <span class="audio-time caption" data-speaker="Ross" data-start="1554.906000" data-stop="1556.388000">I followed suit on that.</span> <span class="audio-time caption" data-speaker="Ross" data-start="1556.428000" data-stop="1559.893000">That's why I have just this one giant document.</span> <span class="audio-time caption" data-speaker="Ross" data-start="1560.033000" data-stop="1562.717000">In the work context, if I'm starting a small</span> <span class="audio-time caption" data-speaker="Ross" data-start="1562.777000" data-stop="1564.540000">document, I'll start it in Org Mode.</span> <span class="audio-time caption" data-speaker="Ross" data-start="1564.600000" data-stop="1566.583000">But then when I started in Org Mode, if other</span> <span class="audio-time caption" data-speaker="Ross" data-start="1566.623000" data-stop="1569.147000">people want to edit it, we got a small Emacs community,</span> <span class="audio-time caption" data-speaker="Ross" data-start="1569.167000" data-stop="1571.430000">so depending who I'm sharing it with, that might be fine.</span> <span class="audio-time caption" data-speaker="Ross" data-start="1571.470000" data-stop="1573.393000">There's a couple people I can pair with on that.</span> <span class="audio-time caption" data-speaker="Ross" data-start="1573.433000" data-stop="1575.255000">If I'm working with them, everything is great.</span> <span class="audio-time caption" data-speaker="Ross" data-start="1575.356000" data-stop="1577.779000">But that's not something...</span> <span class="audio-time caption" data-speaker="Ross" data-start="1577.928000" data-stop="1580.451000">There are Org implementations that work in other</span> <span class="audio-time caption" data-speaker="Ross" data-start="1580.531000" data-stop="1582.895000">editors, but it isn't as good anywhere else as it</span> <span class="audio-time caption" data-speaker="Ross" data-start="1582.975000" data-stop="1584.056000">is in Emacs.</span> <span class="audio-time caption" data-speaker="Ross" data-start="1584.116000" data-stop="1586.439000">That's what everybody's going to typically use.</span> <span class="audio-time caption" data-speaker="Ross" data-start="1586.459000" data-stop="1588.202000">And if they're not using Emacs, they're not going</span> <span class="audio-time caption" data-speaker="Ross" data-start="1588.222000" data-stop="1590.605000">to be that warm to Org.</span> <span class="audio-time caption" data-speaker="Ross" data-start="1590.905000" data-stop="1593.669000">I hate to say the dreaded two-letter acronym, but</span> <span class="audio-time caption" data-speaker="Ross" data-start="1593.709000" data-stop="1595.992000">with AI, you're seeing a lot more Markdown.</span> <span class="audio-time caption" data-speaker="Ross" data-start="1596.132000" data-stop="1597.954000">People are starting to program in Markdown.</span> <span class="audio-time caption" data-speaker="Ross" data-start="1597.994000" data-stop="1599.897000">Markdown is bigger than it's ever been before.</span> <span class="audio-time caption" data-speaker="Ross" data-start="1599.977000" data-stop="1602.180000">It's just unavoidable at this point.</span> <span class="audio-time caption" data-speaker="Ross" data-start="1602.160000" data-stop="1604.542000">So what I'll do is I'll start a document in Org</span> <span class="audio-time caption" data-speaker="Ross" data-start="1604.622000" data-stop="1606.564000">and then I can export the Org document to</span> <span class="audio-time caption" data-speaker="Ross" data-start="1606.604000" data-stop="1609.767000">Markdown if I'm going to put it into GitHub or</span> <span class="audio-time caption" data-speaker="Ross" data-start="1610.008000" data-stop="1611.189000">sometimes I'll just use Google.</span> <span class="audio-time caption" data-speaker="Ross" data-start="1611.289000" data-stop="1613.551000">It really depends on how the collaboration model is.</span> <span class="audio-time caption" data-speaker="Ross" data-start="1613.591000" data-stop="1615.213000">If I'm going to be collaborating with a lot of</span> <span class="audio-time caption" data-speaker="Ross" data-start="1615.253000" data-stop="1617.093000">people up front and iterating real quickly,</span> <span class="audio-time caption" data-speaker="Ross" data-start="1617.094000" data-stop="1619.817000">I'll do that in a Google Doc and I'll export that to Markdown.</span> <span class="audio-time caption" data-speaker="Ross" data-start="1620.077000" data-stop="1621.798000">If I'm writing it myself as a first draft,</span> <span class="audio-time caption" data-speaker="Ross" data-start="1621.799000" data-stop="1623.801000">I'll start it in Org and export that to Markdown.</span> <span class="audio-time caption" data-speaker="Ross" data-start="1624.221000" data-stop="1626.063000">Markdown ends up being the target in the</span> <span class="audio-time caption" data-speaker="Ross" data-start="1626.083000" data-stop="1628.185000">workplace for anything that's permanent though.</span> <span class="audio-time caption" data-speaker="Ross" data-start="1628.317000" data-stop="1628.958000">I don't love it.</span> <span class="audio-time caption" data-speaker="Ross" data-start="1629.038000" data-stop="1631.724000">I wish Org had won. All my personal projects,</span> <span class="audio-time caption" data-speaker="Ross" data-start="1631.744000" data-stop="1633.647000">they'll have a README.org on them rather than</span> <span class="audio-time caption" data-speaker="Ross" data-start="1633.687000" data-stop="1636.633000">README.md, but it is what it is and you've got to</span> <span class="audio-time caption" data-speaker="Ross" data-start="1636.653000" data-stop="1638.056000">play nice with your co-workers too.</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="1639.298000" data-stop="1641.142000"><strong class="speaker-name">Sacha:</strong>  Yeah, I find myself having a hard</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1641.182000" data-stop="1643.385000">time remembering to switch the link syntax.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1643.386000" data-stop="1647.213000">I have a "do what I mean", just insert the link.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1647.214000" data-stop="1648.415000">I don't care what syntax it's in,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1648.416000" data-stop="1649.017000">just make it work.</span> <p></p><span class="audio-time caption" data-speaker="Ross" data-start="1650.019000" data-stop="1650.460000"><strong class="speaker-name">Ross:</strong>  Nice.</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="1652.245000" data-stop="1654.088000"><strong class="speaker-name">Sacha:</strong>  You mentioned sometimes</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1654.188000" data-stop="1656.952000">in your Zoom calls when you need to exchange</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1657.032000" data-stop="1658.775000">notes with people faster, then you have to use</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1658.815000" data-stop="1660.297000">Google Docs for that one because that's what</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1660.317000" data-stop="1661.138000">they're familiar with.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1661.659000" data-stop="1664.023000">But there might be some easy ways for you to ship</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1664.063000" data-stop="1669.010000">that back and forth between Org and Google Docs.</span> <p></p><div class="transcript-heading"><span class="audio-time" data-start="1669.000000">27:49</span> <strong>Ethersync?</strong></div><p></p><span class="audio-time caption" data-speaker="Ross" data-start="1669.170000" data-stop="1672.596000"><strong class="speaker-name">Ross:</strong>  One thing I'm really looking</span> <span class="audio-time caption" data-speaker="Ross" data-start="1672.676000" data-stop="1674.959000">forward to is there's this project.</span> <span class="audio-time caption" data-speaker="Ross" data-start="1674.979000" data-stop="1676.261000">I can't remember what it's called.</span> <span class="audio-time caption" data-speaker="Ross" data-start="1676.341000" data-stop="1679.586000">Ethersync. Yes, thank you.</span> <span class="audio-time caption" data-speaker="Ross" data-start="1680.460000" data-stop="1682.683000">I've seen some various attempts at that and</span> <span class="audio-time caption" data-speaker="Ross" data-start="1682.723000" data-stop="1684.406000">I had a little bit of success with them, but none</span> <span class="audio-time caption" data-speaker="Ross" data-start="1684.426000" data-stop="1685.227000">of them have lasted.</span> <span class="audio-time caption" data-speaker="Ross" data-start="1685.267000" data-stop="1686.609000">I'm really rooting for that team.</span> <span class="audio-time caption" data-speaker="Ross" data-start="1687.129000" data-stop="1688.972000">I feel like Emacs got rejuvenated.</span> <span class="audio-time caption" data-speaker="Ross" data-start="1688.992000" data-stop="1691.456000">It used to be, okay, it was hard to use Emacs</span> <span class="audio-time caption" data-speaker="Ross" data-start="1691.496000" data-stop="1693.478000">because if you're in a niche language and you're</span> <span class="audio-time caption" data-speaker="Ross" data-start="1693.538000" data-stop="1695.822000">using a niche editor, you had to find a community</span> <span class="audio-time caption" data-speaker="Ross" data-start="1695.862000" data-stop="1698.165000">that used both of those to have decent support.</span> <span class="audio-time caption" data-speaker="Ross" data-start="1698.145000" data-stop="1699.688000">Then LSP came along.</span> <span class="audio-time caption" data-speaker="Ross" data-start="1699.708000" data-stop="1700.990000">You have your language servers.</span> <span class="audio-time caption" data-speaker="Ross" data-start="1701.010000" data-stop="1703.475000">So now I can write in these niche languages that</span> <span class="audio-time caption" data-speaker="Ross" data-start="1703.515000" data-stop="1705.358000">not everybody's writing Emacs, but I still have a</span> <span class="audio-time caption" data-speaker="Ross" data-start="1705.398000" data-stop="1707.863000">good experience thanks to Eglot and thanks to the</span> <span class="audio-time caption" data-speaker="Ross" data-start="1707.923000" data-stop="1710.007000">language server provided by those communities.</span> <span class="audio-time caption" data-speaker="Ross" data-start="1710.348000" data-stop="1713.093000">Emacs became viable again for doing a lot of</span> <span class="audio-time caption" data-speaker="Ross" data-start="1713.173000" data-stop="1714.315000">development.</span> <span class="audio-time caption" data-speaker="Ross" data-start="1714.295000" data-stop="1718.201000">And I'm hoping that Ethersync kind of becomes</span> <span class="audio-time caption" data-speaker="Ross" data-start="1718.281000" data-stop="1720.844000">like the LSP of collaborative editing, where it's</span> <span class="audio-time caption" data-speaker="Ross" data-start="1720.925000" data-stop="1723.148000">not something where it's only Emacs users sharing</span> <span class="audio-time caption" data-speaker="Ross" data-start="1723.168000" data-stop="1725.571000">with each other, but it works across editors and</span> <span class="audio-time caption" data-speaker="Ross" data-start="1725.631000" data-stop="1727.494000">people can collaborate in real time that way.</span> <span class="audio-time caption" data-speaker="Ross" data-start="1727.634000" data-stop="1730.098000">That would replace that Google Docs use case</span> <span class="audio-time caption" data-speaker="Ross" data-start="1730.178000" data-stop="1730.519000">I have.</span> <span class="audio-time caption" data-speaker="Ross" data-start="1730.959000" data-stop="1732.742000">The only reason I use Google Docs is we can see</span> <span class="audio-time caption" data-speaker="Ross" data-start="1732.782000" data-stop="1734.825000">each other typing and edit things on the fly</span> <span class="audio-time caption" data-speaker="Ross" data-start="1734.865000" data-stop="1735.265000">together.</span> <span class="audio-time caption" data-speaker="Ross" data-start="1735.386000" data-stop="1737.729000">So I'm very excited about that Ethersync project.</span> <span class="audio-time caption" data-speaker="Ross" data-start="1737.789000" data-stop="1738.770000">I hope that takes off.</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="1739.632000" data-stop="1742.936000"><strong class="speaker-name">Sacha:</strong>  Yeah, I think that will probably be</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1742.997000" data-stop="1745.778000">more feasible than hoping people will switch to Emacs</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1745.779000" data-stop="1746.840000">and then use CRDT.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1751.586000" data-stop="1754.109000">There are other interesting</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1754.309000" data-stop="1756.151000">collaboration things in your config.</span> <p></p><div class="transcript-heading"><span class="audio-time" data-start="1756.000000">29:16</span> <strong>Managing Github with Forge
</strong></div><p></p><a href="https://sachachua.com/blog/2026/06/emacs-chat-with-ross-a-baker/emacs-chat-26-ross-a-baker-00-30-35-700.jpg"><img loading="lazy" target="_blank" src="https://sachachua.com/blog/2026/06/emacs-chat-with-ross-a-baker/emacs-chat-26-ross-a-baker-00-30-35-700.jpg" alt="image from video 00:30:35.700" data-time="00:30:35.700"></a><span class="audio-time caption" data-speaker="Sacha" data-start="1756.171000" data-stop="1759.435000"><strong class="speaker-name">Sacha:</strong> You've mentioned Forge. You have some things</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1759.535000" data-stop="1761.878000">in here for cloning to different directories</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1761.958000" data-stop="1764.180000">depending on the repository, committing with</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1764.200000" data-stop="1766.383000">different addresses, confirming before merging</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1766.483000" data-stop="1767.264000">pull requests.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1767.664000" data-stop="1769.346000">Can you tell us a little bit about these quality</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1769.366000" data-stop="1770.728000">of life improvements for you?</span> <p></p><span class="audio-time caption" data-speaker="Ross" data-start="1771.552000" data-stop="1776.182000"><strong class="speaker-name">Ross:</strong>  Let me see if I can come up with an example here,</span> <span class="audio-time caption" data-speaker="Ross" data-start="1776.242000" data-stop="1776.944000">first of all.</span> <span class="audio-time caption" data-speaker="Ross" data-start="1778.367000" data-stop="1781.994000">So this is Forge for people who have not seen it.</span> <span class="audio-time caption" data-speaker="Ross" data-start="1782.014000" data-stop="1783.738000">Let's do...</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="1789.642000" data-stop="1790.803000"><strong class="speaker-name">Sacha:</strong>  So when you don't need something</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1790.863000" data-stop="1793.566000">like real-time collaboration, for the people who</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1793.606000" data-stop="1796.910000">are watching, Forge lets you manage your Git</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1796.950000" data-stop="1801.575000">repositories with the pull requests and other</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1801.615000" data-stop="1802.957000">changes and things like that, right?</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1803.337000" data-stop="1804.659000">I don't use it yet, so... Yes.</span> <p></p><span class="audio-time caption" data-speaker="Ross" data-start="1805.299000" data-stop="1807.902000"><strong class="speaker-name">Ross:</strong>  Yeah, so it's essentially a GitHub client.</span> <span class="audio-time caption" data-speaker="Ross" data-start="1807.922000" data-stop="1811.786000">So I was looking... I'm here in my Forge test directory.</span> <span class="audio-time caption" data-speaker="Ross" data-start="1812.167000" data-stop="1814.349000">I'm trying not to share any of my work repositories.</span> <span class="audio-time caption" data-speaker="Ross" data-start="1814.389000" data-stop="1815.711000">I use this primarily at work.</span> <span class="audio-time caption" data-speaker="Ross" data-start="1815.731000" data-stop="1818.754000">I just set it up on this machine last night.</span> <span class="audio-time caption" data-speaker="Ross" data-start="1819.021000" data-stop="1821.183000">Still probably a couple of rough edges.</span> <span class="audio-time caption" data-speaker="Ross" data-start="1821.203000" data-stop="1822.744000">I can list the topics.</span> <span class="audio-time caption" data-speaker="Ross" data-start="1823.945000" data-stop="1826.387000">And if I list the topics, I can see I've got pull</span> <span class="audio-time caption" data-speaker="Ross" data-start="1826.407000" data-stop="1827.969000">request 20 open.</span> <span class="audio-time caption" data-speaker="Ross" data-start="1828.549000" data-stop="1831.372000">I can hit enter on it and I can see, okay, it's open.</span> <span class="audio-time caption" data-speaker="Ross" data-start="1831.412000" data-stop="1832.673000">It's in state pending.</span> <span class="audio-time caption" data-speaker="Ross" data-start="1832.753000" data-stop="1833.934000">This is where it's going.</span> <span class="audio-time caption" data-speaker="Ross" data-start="1834.134000" data-stop="1835.095000">These are the commits.</span> <span class="audio-time caption" data-speaker="Ross" data-start="1835.696000" data-stop="1838.558000">I can look at the commit and see, okay, what is</span> <span class="audio-time caption" data-speaker="Ross" data-start="1838.638000" data-stop="1839.619000">this person doing?</span> <span class="audio-time caption" data-speaker="Ross" data-start="1839.799000" data-stop="1843.722000">Oh, they're trying to add another line to this file.</span> <span class="audio-time caption" data-speaker="Ross" data-start="1844.323000" data-stop="1846.245000">And if I say, okay, that looks good.</span> <span class="audio-time caption" data-speaker="Ross" data-start="1846.565000" data-stop="1848.927000">I can do, what is it?</span> <span class="audio-time caption" data-speaker="Ross" data-start="1853.513000" data-stop="1860.043000">I can look at this and I can say... This works</span> <span class="audio-time caption" data-speaker="Ross" data-start="1860.103000" data-stop="1863.107000">better if it is in a full screen editor.</span> <span class="audio-time caption" data-speaker="Ross" data-start="1864.349000" data-stop="1867.554000">Let's do... I thought I was tracking this repo</span> <span class="audio-time caption" data-speaker="Ross" data-start="1867.634000" data-stop="1868.055000">already.</span> <span class="audio-time caption" data-speaker="Ross" data-start="1871.640000" data-stop="1872.882000">I had this working last night.</span> <span class="audio-time caption" data-speaker="Ross" data-start="1872.942000" data-stop="1874.164000">Curse of the demo again.</span> <span class="audio-time caption" data-speaker="Ross" data-start="1874.945000" data-stop="1878.551000">Anyway, I'm able to approve pull requests from</span> <span class="audio-time caption" data-speaker="Ross" data-start="1878.591000" data-stop="1878.771000">this.</span> <span class="audio-time caption" data-speaker="Ross" data-start="1878.831000" data-stop="1880.854000">I'm able to...</span> <span class="audio-time caption" data-speaker="Ross" data-start="1881.998000" data-stop="1883.000000">Reject pull requests.</span> <span class="audio-time caption" data-speaker="Ross" data-start="1883.020000" data-stop="1884.763000">I'm able to comment on pull requests.</span> <span class="audio-time caption" data-speaker="Ross" data-start="1884.823000" data-stop="1885.784000">I can look at the diffs.</span> <span class="audio-time caption" data-speaker="Ross" data-start="1885.805000" data-stop="1889.731000">So all of my integration with GitHub is done</span> <span class="audio-time caption" data-speaker="Ross" data-start="1889.791000" data-stop="1891.154000">through this.</span> <span class="audio-time caption" data-speaker="Ross" data-start="1891.174000" data-stop="1894.519000">I'm in an environment right now, I'm a staff engineer.</span> <span class="audio-time caption" data-speaker="Ross" data-start="1894.660000" data-stop="1896.283000">I participate on a lot of teams.</span> <span class="audio-time caption" data-speaker="Ross" data-start="1896.363000" data-stop="1898.847000">I get over a thousand GitHub notifications a day.</span> <span class="audio-time caption" data-speaker="Ross" data-start="1899.127000" data-stop="1901.211000">The GitHub notifications that are built into</span> <span class="audio-time caption" data-speaker="Ross" data-start="1901.231000" data-stop="1902.994000">the browser are just not sufficient.</span> <span class="audio-time caption" data-speaker="Ross" data-start="1903.295000" data-stop="1905.940000">That's something I was able to pull it in with</span> <span class="audio-time caption" data-speaker="Ross" data-start="1906.020000" data-stop="1908.585000">Forge. I'm able to tag things. I'm able to</span> <span class="audio-time caption" data-speaker="Ross" data-start="1908.685000" data-stop="1909.687000">mass mark the things.</span> <span class="audio-time caption" data-speaker="Ross" data-start="1909.787000" data-stop="1911.951000">I get a lot of infrastructure things that they're</span> <span class="audio-time caption" data-speaker="Ross" data-start="1911.991000" data-stop="1914.014000">important, but they're not important to me. I</span> <span class="audio-time caption" data-speaker="Ross" data-start="1914.054000" data-stop="1916.419000">get notified on them all the time through the</span> <span class="audio-time caption" data-speaker="Ross" data-start="1916.459000" data-stop="1918.162000">various automations. I'll get them.</span> <span class="audio-time caption" data-speaker="Ross" data-start="1918.242000" data-stop="1920.947000">I'll get a hundred of those at a time and I can</span> <span class="audio-time caption" data-speaker="Ross" data-start="1920.987000" data-stop="1922.770000">just mark a region of those and knock out a</span> <span class="audio-time caption" data-speaker="Ross" data-start="1922.830000" data-stop="1925.455000">hundred and say, okay, that's off my plate.</span> <span class="audio-time caption" data-speaker="Ross" data-start="1925.435000" data-stop="1928.798000">Moving it into Emacs, as awkward as this demo is,</span> <span class="audio-time caption" data-speaker="Ross" data-start="1929.139000" data-stop="1930.720000">it works great on my work machine.</span> <span class="audio-time caption" data-speaker="Ross" data-start="1931.201000" data-stop="1933.243000">I'm able to keep up with things so much better</span> <span class="audio-time caption" data-speaker="Ross" data-start="1933.283000" data-stop="1935.465000">than I was before.</span> <span class="audio-time caption" data-speaker="Ross" data-start="1935.485000" data-stop="1935.985000">Let's see.</span> <span class="audio-time caption" data-speaker="Ross" data-start="1936.326000" data-stop="1938.908000">I should be able to, if I want to look a little</span> <span class="audio-time caption" data-speaker="Ross" data-start="1938.968000" data-stop="1941.190000">bit deeper and see things in the GitHub, at least</span> <span class="audio-time caption" data-speaker="Ross" data-start="1941.230000" data-stop="1941.751000">this works.</span> <p></p><a href="https://sachachua.com/blog/2026/06/emacs-chat-with-ross-a-baker/emacs-chat-26-ross-a-baker-00-32-21-833.jpg"><img loading="lazy" target="_blank" src="https://sachachua.com/blog/2026/06/emacs-chat-with-ross-a-baker/emacs-chat-26-ross-a-baker-00-32-21-833.jpg" alt="image from video 00:32:21.833" data-time="00:32:21.833"></a><span class="audio-time caption" data-speaker="Ross" data-start="1941.811000" data-stop="1943.893000"><strong class="speaker-name">Ross:</strong> I can open it and see this directly.</span> <span class="audio-time caption" data-speaker="Ross" data-start="1943.913000" data-stop="1945.795000">Then if I want to merge it from here, I can.</span> <span class="audio-time caption" data-speaker="Ross" data-start="1946.616000" data-stop="1951.020000">Or I should be able to merge.</span> <span class="audio-time caption" data-speaker="Ross" data-start="1951.777000" data-stop="1953.820000">Now I can do a regular merge or a squash</span> <span class="audio-time caption" data-speaker="Ross" data-start="1953.860000" data-stop="1956.084000">merge or a rebase just the same as I have this</span> <span class="audio-time caption" data-speaker="Ross" data-start="1956.144000" data-stop="1956.665000">button here.</span> <span class="audio-time caption" data-speaker="Ross" data-start="1956.705000" data-stop="1957.967000">That's all built in here.</span> <span class="audio-time caption" data-speaker="Ross" data-start="1958.087000" data-stop="1967.543000">Let's go ahead and merge this pull request.</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="1967.563000" data-stop="1967.903000"><strong class="speaker-name">Sacha:</strong>  All right.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1967.923000" data-stop="1970.968000">That little detail about you dealing with like a</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1971.088000" data-stop="1974.107000">thousand notifications a day?</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1975.249000" data-stop="1979.195000">It makes the guardrails that you added to Forge</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1979.216000" data-stop="1981.499000">in your config even more interesting because you</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1982.060000" data-stop="1984.585000">can stop yourself from accidentally automatically</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1984.665000" data-stop="1986.668000">merging in things that need more review or</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1986.708000" data-stop="1989.473000">whatever, which of course is difficult to</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1989.513000" data-stop="1991.095000">demonstrate at the moment because</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1991.096000" data-stop="1993.680000">work stuff, private.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1993.660000" data-stop="1997.305000">But if other people are listening and thinking,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1997.345000" data-stop="1999.426000">they're dealing with a similar volume,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1999.427000" data-stop="2003.733000">you can modify Emacs to stop you from making mistakes</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2004.173000" data-stop="2004.614000">like that.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2005.595000" data-stop="2008.499000">You can add just enough friction for the cases</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2008.559000" data-stop="2011.503000">where you need to pay more attention.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2011.523000" data-stop="2014.246000">And @PuercoPop, there's a gh-notify</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2014.286000" data-stop="2016.669000">package specifically for high-volume GitHub</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2016.750000" data-stop="2017.571000">notifications.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2018.332000" data-stop="2021.035000">I'm not sure... Have you come across that one yet?</span> <p></p><span class="audio-time caption" data-speaker="Ross" data-start="2022.230000" data-stop="2024.758000"><strong class="speaker-name">Ross:</strong>  I'm curious what that looks.</span> <span class="audio-time caption" data-speaker="Ross" data-start="2024.798000" data-stop="2029.753000">The term "notify" concerns me, like if</span> <span class="audio-time caption" data-speaker="Ross" data-start="2029.793000" data-stop="2032.079000">it's helping me manage notifications in bulk,</span> <span class="audio-time caption" data-speaker="Ross" data-start="2032.080000" data-stop="2034.087000">I'm interested. If it's going to pop up something</span> <span class="audio-time caption" data-speaker="Ross" data-start="2034.147000" data-stop="2036.170000">every time I get a new notification,</span> <span class="audio-time caption" data-speaker="Ross" data-start="2036.190000" data-stop="2037.372000">I'm very much disinterested.</span> <span class="audio-time caption" data-speaker="Ross" data-start="2037.393000" data-stop="2040.177000">I don't know whether to be excited or horrified,</span> <span class="audio-time caption" data-speaker="Ross" data-start="2040.197000" data-stop="2041.800000">but I'll take a look.</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="2041.820000" data-stop="2043.263000"><strong class="speaker-name">Sacha:</strong>  I think because @PuercoPop is</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2043.343000" data-stop="2045.206000">recommending it specifically in the context of</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2045.286000" data-stop="2048.172000">high-volume notifications, it might provide you</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2048.212000" data-stop="2050.576000">that inboxing where you can filter.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2050.636000" data-stop="2054.322000">I haven't looked into it myself, but I'm getting</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2054.422000" data-stop="2056.505000">the sense that this is a problem that many people</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2056.887000" data-stop="2058.028000">who use Emacs face</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2058.029000" data-stop="2060.353000">and who solve it a very Emacs-y way.</span> <p></p><span class="audio-time caption" data-speaker="Ross" data-start="2061.210000" data-stop="2068.296000"><strong class="speaker-name">Ross:</strong>  Yes. Forge has all these nice things built into it already,</span> <span class="audio-time caption" data-speaker="Ross" data-start="2068.297000" data-stop="2069.940000">but I wanted to customize the workflow a</span> <span class="audio-time caption" data-speaker="Ross" data-start="2069.980000" data-stop="2070.400000">little bit.</span> <span class="audio-time caption" data-speaker="Ross" data-start="2070.760000" data-stop="2072.601000">It's right here in the comments, the things that</span> <span class="audio-time caption" data-speaker="Ross" data-start="2072.641000" data-stop="2072.882000">it does.</span> <span class="audio-time caption" data-speaker="Ross" data-start="2072.942000" data-stop="2074.463000">It makes sure that it's mergeable,</span> <span class="audio-time caption" data-speaker="Ross" data-start="2074.464000" data-stop="2076.445000">there's no merge conflicts,</span> <span class="audio-time caption" data-speaker="Ross" data-start="2076.446000" data-stop="2078.546000">makes sure that all the status checks ran,</span> <span class="audio-time caption" data-speaker="Ross" data-start="2078.547000" data-stop="2080.830000">makes sure that all the approval is done.</span> <span class="audio-time caption" data-speaker="Ross" data-start="2081.070000" data-stop="2083.671000">One thing that the Forge does not do is</span> <span class="audio-time caption" data-speaker="Ross" data-start="2083.672000" data-stop="2087.877000">it does not show you comments on your pull request.</span> <span class="audio-time caption" data-speaker="Ross" data-start="2088.667000" data-stop="2090.951000">There's a code-review package that's out there.</span> <span class="audio-time caption" data-speaker="Ross" data-start="2091.172000" data-stop="2092.875000">It's been through a lot of forks.</span> <span class="audio-time caption" data-speaker="Ross" data-start="2093.014000" data-stop="2094.958000">I'm still integrating that into my workflow.</span> <span class="audio-time caption" data-speaker="Ross" data-start="2094.978000" data-stop="2097.644000">I've got a fork of a fork of a fork that I have.</span> <span class="audio-time caption" data-speaker="Ross" data-start="2098.125000" data-stop="2100.369000">This is life in Emacs, for better or for worse.</span> <span class="audio-time caption" data-speaker="Ross" data-start="2100.790000" data-stop="2102.994000">I've got a fork of a fork of a fork of a fork so</span> <span class="audio-time caption" data-speaker="Ross" data-start="2103.034000" data-stop="2104.096000">I can see those comments.</span> <span class="audio-time caption" data-speaker="Ross" data-start="2104.116000" data-stop="2105.919000">I haven't fully integrated it with Forge yet.</span> <span class="audio-time caption" data-speaker="Ross" data-start="2105.939000" data-stop="2107.502000">That's a work in progress.</span> <span class="audio-time caption" data-speaker="Ross" data-start="2107.718000" data-stop="2109.941000">But anyway, I didn't want to be merging these</span> <span class="audio-time caption" data-speaker="Ross" data-start="2110.001000" data-stop="2112.405000">things and ignoring if somebody's taking the time</span> <span class="audio-time caption" data-speaker="Ross" data-start="2112.425000" data-stop="2113.346000">to give me feedback.</span> <span class="audio-time caption" data-speaker="Ross" data-start="2113.386000" data-stop="2115.048000">I don't want to merge things because sometimes</span> <span class="audio-time caption" data-speaker="Ross" data-start="2115.089000" data-stop="2116.991000">people will approve things, but they'll say, hey,</span> <span class="audio-time caption" data-speaker="Ross" data-start="2117.031000" data-stop="2117.993000">just a little nit to pick.</span> <span class="audio-time caption" data-speaker="Ross" data-start="2118.033000" data-stop="2119.034000">You got a typo here.</span> <span class="audio-time caption" data-speaker="Ross" data-start="2119.395000" data-stop="2121.257000">Don't want to slow down progress, but you might</span> <span class="audio-time caption" data-speaker="Ross" data-start="2121.297000" data-stop="2123.060000">want to take a look at this.</span> <span class="audio-time caption" data-speaker="Ross" data-start="2123.080000" data-stop="2125.584000">If I'm just sitting here entirely inside of</span> <span class="audio-time caption" data-speaker="Ross" data-start="2125.604000" data-stop="2126.605000">this, I'll never see that.</span> <span class="audio-time caption" data-speaker="Ross" data-start="2126.625000" data-stop="2129.389000">So this also checks for unresolved threads.</span> <span class="audio-time caption" data-speaker="Ross" data-start="2129.369000" data-stop="2131.753000">I've got some embedded GraphQL inside of here</span> <span class="audio-time caption" data-speaker="Ross" data-start="2131.793000" data-stop="2134.578000">that makes it all work and we grab that data from</span> <span class="audio-time caption" data-speaker="Ross" data-start="2134.638000" data-stop="2137.303000">the GraphQL and then I'm able to just do this</span> <span class="audio-time caption" data-speaker="Ross" data-start="2137.383000" data-stop="2139.807000">inside a list and prompt on these things and if</span> <span class="audio-time caption" data-speaker="Ross" data-start="2139.867000" data-stop="2141.570000">it finds there's anything that isn't right it</span> <span class="audio-time caption" data-speaker="Ross" data-start="2141.630000" data-stop="2144.936000">gives me these safety checks along the way and</span> <span class="audio-time caption" data-speaker="Ross" data-start="2144.956000" data-stop="2148.542000">yeah it's really nice.</span> <p></p><div class="transcript-heading"><span class="audio-time" data-start="2149.000000">35:49</span> <strong>Committing with work addresses vs personal</strong></div><p></p><span class="audio-time caption" data-speaker="Ross" data-start="2149.501000" data-stop="2152.185000"><strong class="speaker-name">Ross:</strong> One other issue that I had was we had this</span> <span class="audio-time caption" data-speaker="Ross" data-start="2152.245000" data-stop="2153.987000">requirement at work where we needed to start</span> <span class="audio-time caption" data-speaker="Ross" data-start="2154.448000" data-stop="2156.571000">committing with our work email addresses rather</span> <span class="audio-time caption" data-speaker="Ross" data-start="2156.611000" data-stop="2157.552000">than our personal addresses.</span> <span class="audio-time caption" data-speaker="Ross" data-start="2157.592000" data-stop="2160.596000">I use my same GitHub account for work and personal.</span> <span class="audio-time caption" data-speaker="Ross" data-start="2160.656000" data-stop="2162.178000">I needed to get that moved over.</span> <span class="audio-time caption" data-speaker="Ross" data-start="2162.699000" data-stop="2165.423000">To do that with GitHub, you need to do those</span> <span class="audio-time caption" data-speaker="Ross" data-start="2165.483000" data-stop="2167.285000">merges via the API.</span> <span class="audio-time caption" data-speaker="Ross" data-start="2167.305000" data-stop="2168.487000">I've got things configured.</span> <span class="audio-time caption" data-speaker="Ross" data-start="2168.567000" data-stop="2170.750000">All of my work repositories are</span> <span class="audio-time caption" data-speaker="Ross" data-start="2170.730000" data-stop="2173.895000">partitioned off into their own subdirectory of my</span> <span class="audio-time caption" data-speaker="Ross" data-start="2173.935000" data-stop="2174.896000">projects directory.</span> <span class="audio-time caption" data-speaker="Ross" data-start="2174.996000" data-stop="2177.320000">I've got a git config that sets my email address</span> <span class="audio-time caption" data-speaker="Ross" data-start="2177.340000" data-stop="2177.821000">to that.</span> <span class="audio-time caption" data-speaker="Ross" data-start="2177.881000" data-stop="2180.405000">So if I'm doing things locally, it works.</span> <span class="audio-time caption" data-speaker="Ross" data-start="2180.425000" data-stop="2182.908000">But if I'm doing these API merges that are</span> <span class="audio-time caption" data-speaker="Ross" data-start="2182.989000" data-stop="2185.272000">necessary for certain repositories with certain</span> <span class="audio-time caption" data-speaker="Ross" data-start="2185.332000" data-stop="2188.657000">safety checks, I needed to be able to thread that along.</span> <span class="audio-time caption" data-speaker="Ross" data-start="2188.697000" data-stop="2190.921000">I've got a bug fix in here for that, where I'm</span> <span class="audio-time caption" data-speaker="Ross" data-start="2190.961000" data-stop="2192.944000">threading along that email address that reads my</span> <span class="audio-time caption" data-speaker="Ross" data-start="2192.984000" data-stop="2195.808000">git config and passes that along to the API</span> <span class="audio-time caption" data-speaker="Ross" data-start="2195.968000" data-stop="2196.930000">endpoint.</span> <span class="audio-time caption" data-speaker="Ross" data-start="2196.950000" data-stop="2199.133000">Otherwise, it was committed as the wrong identity.</span> <span class="audio-time caption" data-speaker="Ross" data-start="2199.113000" data-stop="2200.514000">There's a few things here that I'd like to</span> <span class="audio-time caption" data-speaker="Ross" data-start="2200.574000" data-stop="2201.936000">contribute upstream to Forge.</span> <span class="audio-time caption" data-speaker="Ross" data-start="2201.976000" data-stop="2203.777000">Some of it is very bespoke to me,</span> <span class="audio-time caption" data-speaker="Ross" data-start="2203.778000" data-stop="2205.920000">and some of it I think would be useful to everybody.</span> <span class="audio-time caption" data-speaker="Ross" data-start="2205.940000" data-stop="2209.363000">I need to tease that apart still.</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="2209.383000" data-stop="2211.866000"><strong class="speaker-name">Sacha:</strong>  I like your technique of separating</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2212.066000" data-stop="2214.288000">things into different subdirectories and so that</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2214.909000" data-stop="2216.691000">all of your work stuff goes in the work directory</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2216.771000" data-stop="2219.033000">or all of your personal stuff goes into projects</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2219.093000" data-stop="2219.534000">or whatever.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2219.974000" data-stop="2221.936000">Then you can change your settings based on</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2221.976000" data-stop="2223.838000">the location of the project.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2223.818000" data-stop="2227.644000">Even cloning a project will automatically pick</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2228.065000" data-stop="2229.787000">the right directory to put it in.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2229.807000" data-stop="2231.009000">I saw that in your config.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2231.210000" data-stop="2232.612000">That's pretty clever.</span> <p></p><div class="transcript-heading"><span class="audio-time" data-start="2233.000000">37:13</span> <strong>Emacs tinkering as stress relief</strong></div><p></p><span class="audio-time caption" data-speaker="Sacha" data-start="2233.533000" data-stop="2235.496000"><strong class="speaker-name">Sacha:</strong> I'm curious because a lot of people find it</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2235.637000" data-stop="2239.923000">challenging to balance the workflow improvement I</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2239.963000" data-stop="2242.047000">get to tinker with Emacs versus actually getting</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2242.087000" data-stop="2244.330000">work done, the time balance between those two.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2244.370000" data-stop="2246.113000">It's a little hard to figure out sometimes.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2246.093000" data-stop="2247.735000">What is this like for you when you're</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2247.775000" data-stop="2249.498000">sitting down, you're doing some work, and you</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2249.518000" data-stop="2251.801000">realize "There's probably something</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2251.821000" data-stop="2254.225000">that I can write to make this</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2254.265000" data-stop="2255.826000">smoother?"</span> <p></p><span class="audio-time caption" data-speaker="Ross" data-start="2255.827000" data-stop="2257.770000"><strong class="speaker-name">Ross:</strong>  I've been doing Emacs off and on</span> <span class="audio-time caption" data-speaker="Ross" data-start="2257.830000" data-stop="2259.893000">for about 30 years now, and when I get that</span> <span class="audio-time caption" data-speaker="Ross" data-start="2259.953000" data-stop="2262.836000">balance right, I'll let you know.</span> <span class="audio-time caption" data-speaker="Ross" data-start="2262.837000" data-stop="2264.760000">I don't have it right yet.</span> <span class="audio-time caption" data-speaker="Ross" data-start="2265.668000" data-stop="2268.472000">I know I spend more time tweaking</span> <span class="audio-time caption" data-speaker="Ross" data-start="2268.572000" data-stop="2269.913000">things than I probably should.</span> <span class="audio-time caption" data-speaker="Ross" data-start="2269.914000" data-stop="2272.698000">It's a stress reliever for me.</span> <span class="audio-time caption" data-speaker="Ross" data-start="2272.718000" data-stop="2276.563000">I get tired of doing the other things.</span> <span class="audio-time caption" data-speaker="Ross" data-start="2276.983000" data-stop="2278.946000">I still love computers.</span> <span class="audio-time caption" data-speaker="Ross" data-start="2278.986000" data-stop="2281.129000">I've loved computers since I was six years old.</span> <span class="audio-time caption" data-speaker="Ross" data-start="2281.189000" data-stop="2284.033000">Got my first computer then.</span> <span class="audio-time caption" data-speaker="Ross" data-start="2284.093000" data-stop="2286.597000">My aunt got me a book on programming when I was six.</span> <span class="audio-time caption" data-speaker="Ross" data-start="2286.637000" data-stop="2288.900000">I started going through that book, and I was off</span> <span class="audio-time caption" data-speaker="Ross" data-start="2288.940000" data-stop="2290.562000">to the races on that.</span> <span class="audio-time caption" data-speaker="Ross" data-start="2290.542000" data-stop="2293.747000">I relax by doing computers. Some of</span> <span class="audio-time caption" data-speaker="Ross" data-start="2293.767000" data-stop="2296.451000">the open source chaos is a lot to deal with, and</span> <span class="audio-time caption" data-speaker="Ross" data-start="2296.772000" data-stop="2298.775000">using the same languages that I use at work that</span> <span class="audio-time caption" data-speaker="Ross" data-start="2298.835000" data-stop="2300.678000">feels too much like work, so being able to</span> <span class="audio-time caption" data-speaker="Ross" data-start="2300.718000" data-stop="2303.042000">withdraw and just tweak things... "Okay, this</span> <span class="audio-time caption" data-speaker="Ross" data-start="2303.162000" data-stop="2308.550000">irritated me." It's a combination... From a pure</span> <span class="audio-time caption" data-speaker="Ross" data-start="2308.590000" data-stop="2311.415000">productivity perspective, I overdo it for sure, but</span> <span class="audio-time caption" data-speaker="Ross" data-start="2311.695000" data-stop="2313.718000">I guess the stress relief if I would burn out</span> <span class="audio-time caption" data-speaker="Ross" data-start="2313.798000" data-stop="2316.102000">otherwise... Maybe I'm getting it right after</span> <span class="audio-time caption" data-speaker="Ross" data-start="2316.182000" data-stop="2317.444000">all. It's hard to say.</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="2318.403000" data-stop="2320.590000"><strong class="speaker-name">Sacha:</strong>  Besides, you might also be able</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2320.670000" data-stop="2323.900000">to say to yourself, well, I do have some Emacs</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2323.980000" data-stop="2327.431000">co-workers. I'm sure they can benefit from this too.</span> <p></p><span class="audio-time caption" data-speaker="Ross" data-start="2327.451000" data-stop="2327.812000"><strong class="speaker-name">Ross:</strong>  I do.</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="2330.059000" data-stop="2331.222000"><strong class="speaker-name">Sacha:</strong>  You're helping them out too.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2331.242000" data-stop="2334.370000">Okay, I want to dig into some of the things that</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2334.410000" data-stop="2338.074000">you have around improving Emacs' capabilities as</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2338.155000" data-stop="2339.436000">a self-documenting editor.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2339.456000" data-stop="2342.320000">You have some configuration snippets that make</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2342.380000" data-stop="2343.561000">getting help easier.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2344.202000" data-stop="2346.806000">I hadn't come across them before, so I wanted to</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2347.266000" data-stop="2348.708000">make sure other people knew about them too.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2349.108000" data-stop="2352.533000">Like your thing about making apropos look at all</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2352.573000" data-stop="2354.936000">the things and sort by scores.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2355.396000" data-stop="2356.278000">It can sort by scores?</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2356.378000" data-stop="2359.041000">What kind of scores are we talking about?</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2359.021000" data-stop="2370.639000">How does this work?</span> <p></p><span class="audio-time caption" data-speaker="Ross" data-start="2370.640000" data-stop="2372.080000"><strong class="speaker-name">Ross:</strong>  One thing that I have done,</span> <span class="audio-time caption" data-speaker="Ross" data-start="2372.081000" data-stop="2374.565000">a little bit off-topic for the question that you've</span> <span class="audio-time caption" data-speaker="Ross" data-start="2374.825000" data-stop="2377.289000">asked, but I have linked everything very</span> <span class="audio-time caption" data-speaker="Ross" data-start="2377.329000" data-stop="2381.836000">aggressively to the info manual where I found things.</span> <span class="audio-time caption" data-speaker="Ross" data-start="2381.856000" data-stop="2385.602000">Sorry, I got caught in a recursive edit here.</span> <span class="audio-time caption" data-speaker="Ross" data-start="2386.932000" data-stop="2391.100000">So let's open this.</span> <span class="audio-time caption" data-speaker="Ross" data-start="2393.044000" data-stop="2398.094000">What was that doing?</span> <span class="audio-time caption" data-speaker="Ross" data-start="2398.134000" data-stop="2401.099000">I'm also struggling because I've been very busy</span> <span class="audio-time caption" data-speaker="Ross" data-start="2401.140000" data-stop="2403.163000">at work lately. I'm used to the Mac key</span> <span class="audio-time caption" data-speaker="Ross" data-start="2403.204000" data-stop="2405.007000">bindings again. I'm back here on my Linux</span> <span class="audio-time caption" data-speaker="Ross" data-start="2405.047000" data-stop="2408.113000">machine. I haven't adapted to the Ctrl versus the Cmd.</span> <span class="audio-time caption" data-speaker="Ross" data-start="2409.038000" data-stop="2411.561000">So yeah, all apropos commands will sort their</span> <span class="audio-time caption" data-speaker="Ross" data-start="2411.621000" data-stop="2413.904000">lists or results in alphabetical order.</span> <span class="audio-time caption" data-speaker="Ross" data-start="2413.924000" data-stop="2416.186000">If sort by scores is non-null, they try to guess</span> <span class="audio-time caption" data-speaker="Ross" data-start="2416.226000" data-stop="2419.811000">the relevance of each result.</span> <span class="audio-time caption" data-speaker="Ross" data-start="2419.831000" data-stop="2421.412000">My comment looks like it's a little bit obsolete</span> <span class="audio-time caption" data-speaker="Ross" data-start="2421.472000" data-stop="2423.695000">here because it looks like for the documentation,</span> <span class="audio-time caption" data-speaker="Ross" data-start="2423.815000" data-stop="2426.538000">I do like the sorting by scores, but for regular</span> <span class="audio-time caption" data-speaker="Ross" data-start="2426.578000" data-stop="2427.860000">apropos, I did not.</span> <span class="audio-time caption" data-speaker="Ross" data-start="2427.920000" data-stop="2430.643000">I think I tweaked something and didn't update</span> <span class="audio-time caption" data-speaker="Ross" data-start="2430.663000" data-stop="2431.584000">the documentation.</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="2431.604000" data-stop="2433.787000"><strong class="speaker-name">Sacha:</strong>  That's okay. I was just curious about it.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2434.267000" data-stop="2438.252000">Then you also have some things like,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2438.654000" data-stop="2443.584000">if it's an autoloaded symbol, then go ahead and</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2443.624000" data-stop="2446.229000">load the library so that you can get help for it.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2446.510000" data-stop="2449.415000">If there's a shortdoc example, include that</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2449.475000" data-stop="2453.764000">as well in the documentation of a function.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2454.165000" data-stop="2457.391000">So if people are reading configs for ideas, I</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2457.451000" data-stop="2459.315000">thought I would call attention to this part</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2459.335000" data-stop="2460.898000">because it sounds really handy.</span> <p></p><span class="audio-time caption" data-speaker="Ross" data-start="2462.566000" data-stop="2463.449000"><strong class="speaker-name">Ross:</strong>  Yeah, I found these.</span> <span class="audio-time caption" data-speaker="Ross" data-start="2463.569000" data-stop="2464.912000">I've just been going through...</span> <span class="audio-time caption" data-speaker="Ross" data-start="2464.913000" data-stop="2466.137000">Part of my relaxation...</span> <p></p><div class="transcript-heading"><span class="audio-time" data-start="2466.000000">41:06</span> <strong>Under-appreciated Emacs built-ins</strong></div><p></p><span class="audio-time caption" data-speaker="Ross" data-start="2466.157000" data-stop="2468.303000"><strong class="speaker-name">Ross:</strong> This is such a dorky thing to say, but part of</span> <span class="audio-time caption" data-speaker="Ross" data-start="2468.343000" data-stop="2470.430000">the relaxation is I'll go through the Emacs</span> <span class="audio-time caption" data-speaker="Ross" data-start="2470.470000" data-stop="2471.774000">manual looking for things.</span> <span class="audio-time caption" data-speaker="Ross" data-start="2471.794000" data-stop="2474.362000">The overall structure of this document follows</span> <span class="audio-time caption" data-speaker="Ross" data-start="2474.422000" data-stop="2476.508000">the Emacs manual fairly closely, and that's</span> <span class="audio-time caption" data-speaker="Ross" data-start="2476.825000" data-stop="2478.087000">not by coincidence.</span> <span class="audio-time caption" data-speaker="Ross" data-start="2478.147000" data-stop="2480.191000">I've just been going through chapter by chapter.</span> <span class="audio-time caption" data-speaker="Ross" data-start="2480.311000" data-stop="2483.476000">Okay, well, I started with Emacs 19 or whatever.</span> <span class="audio-time caption" data-speaker="Ross" data-start="2483.576000" data-stop="2485.600000">Emacs 31 is around the corner.</span> <span class="audio-time caption" data-speaker="Ross" data-start="2485.620000" data-stop="2487.243000">I better at least catch up to all the goodies</span> <span class="audio-time caption" data-speaker="Ross" data-start="2487.263000" data-stop="2487.924000">that are in 30.</span> <span class="audio-time caption" data-speaker="Ross" data-start="2488.024000" data-stop="2490.368000">I'll read the manual, and I'm</span> <span class="audio-time caption" data-speaker="Ross" data-start="2490.408000" data-stop="2491.690000">finding a lot of these things there.</span> <span class="audio-time caption" data-speaker="Ross" data-start="2491.730000" data-stop="2493.473000">That's why I have so many links back to the</span> <span class="audio-time caption" data-speaker="Ross" data-start="2493.533000" data-stop="2496.678000">manual inside of my code, just because I'm going</span> <span class="audio-time caption" data-speaker="Ross" data-start="2496.719000" data-stop="2497.320000">through that.</span> <span class="audio-time caption" data-speaker="Ross" data-start="2497.340000" data-stop="2499.964000">That's where you can find a lot of these hidden gems.</span> <span class="audio-time caption" data-speaker="Ross" data-start="2500.180000" data-stop="2502.423000">I'm hosting the Emacs Carnival this month, and</span> <span class="audio-time caption" data-speaker="Ross" data-start="2502.463000" data-stop="2504.546000">it's the underappreciated Emacs built-ins.</span> <span class="audio-time caption" data-speaker="Ross" data-start="2504.566000" data-stop="2506.649000">I said, if you want to find any of them, go</span> <span class="audio-time caption" data-speaker="Ross" data-start="2506.729000" data-stop="2507.530000">in the manual.</span> <span class="audio-time caption" data-speaker="Ross" data-start="2507.570000" data-stop="2509.473000">They're there by the bushel.</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="2509.493000" data-stop="2513.098000"><strong class="speaker-name">Sacha:</strong>  It feels almost like a book club.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2513.118000" data-stop="2514.600000">We're going through the manual together and</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2514.660000" data-stop="2518.846000">finding all these gems that I wouldn't have come</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2518.866000" data-stop="2520.929000">across otherwise, because Emacs source code is too</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2520.989000" data-stop="2522.071000">big and all that.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2522.151000" data-stop="2525.035000">I've been really appreciating the Emacs Carnival</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2525.055000" data-stop="2526.357000">submissions thus far.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2527.585000" data-stop="2532.371000">Of course, there are lots of other things that</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2532.452000" data-stop="2535.436000">are not in Emacs that you've also been exploring</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2536.176000" data-stop="2538.480000">and checking out.</span> <p></p><div class="transcript-heading"><span class="audio-time" data-start="2540.000000">42:20</span> <strong>gptel</strong></div><p></p><span class="audio-time caption" data-speaker="Sacha" data-start="2540.502000" data-stop="2543.907000"><strong class="speaker-name">Sacha:</strong> Am I allowed to ask about the gptel stuff?</span> <p></p><span class="audio-time caption" data-speaker="Ross" data-start="2544.808000" data-stop="2545.128000"><strong class="speaker-name">Ross:</strong>  Of course.</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="2545.169000" data-stop="2551.457000"><strong class="speaker-name">Sacha:</strong>  I was curious about how the quick lookup stuff</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2551.497000" data-stop="2552.518000">has been working out for you.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2552.538000" data-stop="2554.521000">What kinds of things do you like to use that for?</span> <p></p><span class="audio-time caption" data-speaker="Ross" data-start="2556.290000" data-stop="2558.640000"><strong class="speaker-name">Ross:</strong>  That's one that it was pretty</span> <span class="audio-time caption" data-speaker="Ross" data-start="2558.680000" data-stop="2560.689000">exciting and I haven't really fully worked it</span> <span class="audio-time caption" data-speaker="Ross" data-start="2560.769000" data-stop="2561.954000">into my workflow yet.</span> <span class="audio-time caption" data-speaker="Ross" data-start="2562.055000" data-stop="2563.842000">I tried it. I liked it. I haven't</span> <span class="audio-time caption" data-speaker="Ross" data-start="2563.902000" data-stop="2564.726000">internalized it.</span> <span class="audio-time caption" data-speaker="Ross" data-start="2564.746000" data-stop="2566.654000">I was trying that one night.</span> <span class="audio-time caption" data-speaker="Ross" data-start="2567.562000" data-stop="2570.425000">what what is capable of is you can just highlight</span> <span class="audio-time caption" data-speaker="Ross" data-start="2570.485000" data-stop="2573.809000">something and do. It's almost like a quick</span> <span class="audio-time caption" data-speaker="Ross" data-start="2573.829000" data-stop="2575.711000">Google search, except it'll bounce it off the</span> <span class="audio-time caption" data-speaker="Ross" data-start="2575.751000" data-stop="2578.754000">model of your choice. It will pop up things a</span> <span class="audio-time caption" data-speaker="Ross" data-start="2578.794000" data-stop="2580.977000">little bit faster that way. For the most part, I'm</span> <span class="audio-time caption" data-speaker="Ross" data-start="2581.017000" data-stop="2583.520000">just using stock gptel, where I've just got the</span> <span class="audio-time caption" data-speaker="Ross" data-start="2583.540000" data-stop="2586.022000">chatbot window. I'll copy a region and I'll</span> <span class="audio-time caption" data-speaker="Ross" data-start="2586.042000" data-stop="2588.986000">put it into gptel. I'll run it off the model, say</span> <span class="audio-time caption" data-speaker="Ross" data-start="2589.026000" data-stop="2591.348000">hey, I got a question about this, help me with this</span> <span class="audio-time caption" data-speaker="Ross" data-start="2591.388000" data-stop="2594.671000">compile error, help me with that, and so forth.</span> <span class="audio-time caption" data-speaker="Ross" data-start="2594.672000" data-stop="2595.713000">I don't...</span> <span class="audio-time caption" data-speaker="Ross" data-start="2597.110000" data-stop="2599.853000">Talking about AI is always difficult because it's</span> <span class="audio-time caption" data-speaker="Ross" data-start="2599.893000" data-stop="2603.236000">such a controversial thing and to use it at all,</span> <span class="audio-time caption" data-speaker="Ross" data-start="2603.276000" data-stop="2604.457000">you offend a lot of people.</span> <span class="audio-time caption" data-speaker="Ross" data-start="2604.598000" data-stop="2606.479000">I'll say, I don't really buy into the</span> <span class="audio-time caption" data-speaker="Ross" data-start="2606.539000" data-stop="2607.500000">agentic workflow.</span> <span class="audio-time caption" data-speaker="Ross" data-start="2607.560000" data-stop="2609.723000">I'm happy just using things as a chatbot and</span> <span class="audio-time caption" data-speaker="Ross" data-start="2610.163000" data-stop="2611.945000">little snippets here and there where I'm still</span> <span class="audio-time caption" data-speaker="Ross" data-start="2612.005000" data-stop="2612.746000">firmly driving.</span> <span class="audio-time caption" data-speaker="Ross" data-start="2612.786000" data-stop="2614.828000">So the people who are fully bought into it, they</span> <span class="audio-time caption" data-speaker="Ross" data-start="2614.888000" data-stop="2616.369000">don't think I'm using it right.</span> <span class="audio-time caption" data-speaker="Ross" data-start="2616.890000" data-stop="2619.733000">Then there are a lot of ethical concerns that</span> <span class="audio-time caption" data-speaker="Ross" data-start="2619.793000" data-stop="2620.253000">I share.</span> <span class="audio-time caption" data-speaker="Ross" data-start="2620.453000" data-stop="2622.055000">I don't have the gptel on this.</span> <span class="audio-time caption" data-speaker="Ross" data-start="2622.355000" data-stop="2623.216000">I use it for work.</span> <span class="audio-time caption" data-speaker="Ross" data-start="2623.276000" data-stop="2625.058000">I don't use it personally.</span> <span class="audio-time caption" data-speaker="Ross" data-start="2625.038000" data-stop="2627.422000">That's just the way I've been able to</span> <span class="audio-time caption" data-speaker="Ross" data-start="2627.442000" data-stop="2629.465000">compartmentalize all my concerns with it.</span> <span class="audio-time caption" data-speaker="Ross" data-start="2629.565000" data-stop="2631.989000">But just being a technologist, being a principal</span> <span class="audio-time caption" data-speaker="Ross" data-start="2632.049000" data-stop="2634.192000">staff engineer, I do need to get up to speed with</span> <span class="audio-time caption" data-speaker="Ross" data-start="2634.212000" data-stop="2634.733000">these tools.</span> <span class="audio-time caption" data-speaker="Ross" data-start="2634.753000" data-stop="2637.958000">So I have had to get used to them and keep up</span> <span class="audio-time caption" data-speaker="Ross" data-start="2637.978000" data-stop="2639.981000">with what they're capable of and what they're not.</span> <span class="audio-time caption" data-speaker="Ross" data-start="2640.001000" data-stop="2643.626000">At least for my... Setting aside all the</span> <span class="audio-time caption" data-speaker="Ross" data-start="2643.706000" data-stop="2647.733000">concerns around environment and whatnot, all the</span> <span class="audio-time caption" data-speaker="Ross" data-start="2647.773000" data-stop="2649.375000">other concerns that we have with it
,</span> <span class="audio-time caption" data-speaker="Ross" data-start="2649.355000" data-stop="2651.738000">I find that GPTel is that sweet spot where I've</span> <span class="audio-time caption" data-speaker="Ross" data-start="2651.758000" data-stop="2654.020000">just got this pair programmer where I can run</span> <span class="audio-time caption" data-speaker="Ross" data-start="2654.080000" data-stop="2656.804000">things off, bounce a few questions off it, get</span> <span class="audio-time caption" data-speaker="Ross" data-start="2656.864000" data-stop="2659.387000">things, but it's not getting write access to my</span> <span class="audio-time caption" data-speaker="Ross" data-start="2659.447000" data-stop="2660.268000">file system.</span> <span class="audio-time caption" data-speaker="Ross" data-start="2660.828000" data-stop="2662.390000">I have a security background. Worked at a</span> <span class="audio-time caption" data-speaker="Ross" data-start="2662.410000" data-stop="2664.292000">security company for several years.</span> <span class="audio-time caption" data-speaker="Ross" data-start="2664.572000" data-stop="2667.115000">Just the access that people are giving to these</span> <span class="audio-time caption" data-speaker="Ross" data-start="2667.236000" data-stop="2669.758000">agents, I find absolutely terrifying.</span> <span class="audio-time caption" data-speaker="Ross" data-start="2669.778000" data-stop="2672.021000">There's a lot of work that goes into using that</span> <span class="audio-time caption" data-speaker="Ross" data-start="2672.081000" data-stop="2673.743000">properly, I think.</span> <span class="audio-time caption" data-speaker="Ross" data-start="2673.723000" data-stop="2676.187000">I get most of the benefit. I feel like I'm</span> <span class="audio-time caption" data-speaker="Ross" data-start="2676.268000" data-stop="2679.133000">de-skilling myself a little bit less than I do</span> <span class="audio-time caption" data-speaker="Ross" data-start="2679.213000" data-stop="2681.577000">when I try the agentic workflows elsewhere.</span> <span class="audio-time caption" data-speaker="Ross" data-start="2681.597000" data-stop="2683.019000">So I love gptel.</span> <span class="audio-time caption" data-speaker="Ross" data-start="2683.861000" data-stop="2686.626000">Now gptel, it does have this interesting agent mode.</span> <span class="audio-time caption" data-speaker="Ross" data-start="2686.666000" data-stop="2687.968000">I haven't tried it yet.</span> <span class="audio-time caption" data-speaker="Ross" data-start="2688.489000" data-stop="2691.675000">Again, I have some security concerns around that.</span> <span class="audio-time caption" data-speaker="Ross" data-start="2691.695000" data-stop="2693.518000">I need to figure out how to make sure that</span> <span class="audio-time caption" data-speaker="Ross" data-start="2693.558000" data-stop="2695.782000">whatever I give it write access to...</span> <span class="audio-time caption" data-speaker="Ross" data-start="2695.762000" data-stop="2697.685000">It's not getting too much write access to</span> <span class="audio-time caption" data-speaker="Ross" data-start="2697.785000" data-stop="2700.009000">anything. But that is a project that's on my</span> <span class="audio-time caption" data-speaker="Ross" data-start="2700.049000" data-stop="2702.533000">radar as well, to try to do things that really do</span> <span class="audio-time caption" data-speaker="Ross" data-start="2702.593000" data-stop="2704.857000">benefit from this unattended work.</span> <span class="audio-time caption" data-speaker="Ross" data-start="2705.658000" data-stop="2706.640000">I'll dabble in that as well.</span> <span class="audio-time caption" data-speaker="Ross" data-start="2706.680000" data-stop="2708.543000">There's a whole gptel ecosystem.</span> <span class="audio-time caption" data-speaker="Ross" data-start="2708.964000" data-stop="2713.511000">Karthik does an amazing job with that.</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="2713.531000" data-stop="2715.434000"><strong class="speaker-name">Sacha:</strong>  I like that you have a very</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2715.474000" data-stop="2716.676000">considerate approach to it.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2716.776000" data-stop="2719.281000">I also like the humor with which you describe</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2719.641000" data-stop="2722.005000">this and other things in your config.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2723.892000" data-stop="2729.347000">You aren't buying into the hype. You're like,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2729.407000" data-stop="2732.014000">this is your least unfavorite way</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2732.055000" data-stop="2732.957000">of doing things.</span> <p></p><span class="audio-time caption" data-speaker="Ross" data-start="2733.494000" data-stop="2737.899000"><strong class="speaker-name">Ross:</strong>  Yes, exactly. There's some commentary</span> <span class="audio-time caption" data-speaker="Ross" data-start="2737.999000" data-stop="2740.843000">out on one of the nuclear test sites about "No</span> <span class="audio-time caption" data-speaker="Ross" data-start="2740.943000" data-stop="2743.045000">deed of honor is performed here." I've quoted</span> <span class="audio-time caption" data-speaker="Ross" data-start="2743.085000" data-stop="2744.826000">some of that in this part of the config too,</span> <span class="audio-time caption" data-speaker="Ross" data-start="2744.827000" data-stop="2747.830000">just kind of my protest of doing this.</span> <span class="audio-time caption" data-speaker="Ross" data-start="2747.831000" data-stop="2750.273000">I've got to do this and there are certain ways...</span> <span class="audio-time caption" data-speaker="Ross" data-start="2750.274000" data-stop="2754.558000">If I have to do this, these are the ways that work for me.</span> <span class="audio-time caption" data-speaker="Ross" data-start="2754.559000" data-stop="2756.120000">I'm getting some benefits out of this,</span> <span class="audio-time caption" data-speaker="Ross" data-start="2756.121000" data-stop="2759.383000">but also I don't entirely feel great about this either.</span> <span class="audio-time caption" data-speaker="Ross" data-start="2759.384000" data-stop="2760.446000">That's kind of how I've</span> <span class="audio-time caption" data-speaker="Ross" data-start="2761.146000" data-stop="2762.488000">compartmentalized that.</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="2763.295000" data-stop="2764.977000"><strong class="speaker-name">Sacha:</strong>  Yeah, that makes sense.</span> <p></p><div class="transcript-heading"><span class="audio-time" data-start="2764.000000">46:04</span> <strong>Getting older</strong></div><p></p><span class="audio-time caption" data-speaker="Sacha" data-start="2764.997000" data-stop="2767.179000"><strong class="speaker-name">Sacha:</strong> One of the other things that you joke about a</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2767.339000" data-stop="2769.681000">couple of times in your config is getting older.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2770.662000" data-stop="2772.864000">So with things like your <code>repeat-exit-timeout</code> and</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2772.884000" data-stop="2774.806000">your <code>mode-line-bell-flash-time</code>, you’re like,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2774.826000" data-stop="2778.209000">okay, might change it to track my senescence.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2782.272000" data-stop="2783.454000">I appreciate your sense of humor.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2784.615000" data-stop="2786.016000">Are you finding that there are things that you</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2786.036000" data-stop="2789.559000">like to tweak about Emacs in anticipation of</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2789.799000" data-stop="2791.581000">change as you get older?</span> <p></p><span class="audio-time caption" data-speaker="Ross" data-start="2792.776000" data-stop="2795.867000"><strong class="speaker-name">Ross:</strong>  Well, my font size is definitely bigger than it</span> <span class="audio-time caption" data-speaker="Ross" data-start="2795.987000" data-stop="2796.509000">used to be.</span> <span class="audio-time caption" data-speaker="Ross" data-start="2796.650000" data-stop="2799.681000">I guess that's something that has changed over</span> <span class="audio-time caption" data-speaker="Ross" data-start="2799.701000" data-stop="2800.002000">the years.</span> <span class="audio-time caption" data-speaker="Ross" data-start="2800.042000" data-stop="2802.109000">I used to be able to operate on a tiny font, no</span> <span class="audio-time caption" data-speaker="Ross" data-start="2802.149000" data-stop="2804.558000">longer on that.</span> <p></p><div class="transcript-heading"><span class="audio-time" data-start="2806.000000">46:46</span> <strong>Lindy's Law and tool longevity</strong></div><p></p><span class="audio-time caption" data-speaker="Ross" data-start="2806.799000" data-stop="2810.423000"><strong class="speaker-name">Ross:</strong> I guess Emacs and aging just feels like I made a</span> <span class="audio-time caption" data-speaker="Ross" data-start="2810.523000" data-stop="2812.665000">really good... I wish I'd stuck with it for the</span> <span class="audio-time caption" data-speaker="Ross" data-start="2812.725000" data-stop="2813.486000">full 30 years.</span> <span class="audio-time caption" data-speaker="Ross" data-start="2813.506000" data-stop="2815.848000">I'd be fumbling around a little bit less in this demo.</span> <span class="audio-time caption" data-speaker="Ross" data-start="2815.868000" data-stop="2817.650000">I'm not as smooth as somebody who'd been on it</span> <span class="audio-time caption" data-speaker="Ross" data-start="2817.690000" data-stop="2819.932000">for the full 30 years, so I regret that time.</span> <span class="audio-time caption" data-speaker="Ross" data-start="2820.473000" data-stop="2822.795000">I've just seen so many editors come and go.</span> <span class="audio-time caption" data-speaker="Ross" data-start="2822.815000" data-stop="2826.239000">And when I talk to junior developers, I do a lot</span> <span class="audio-time caption" data-speaker="Ross" data-start="2826.279000" data-stop="2826.999000">of mentoring.</span> <span class="audio-time caption" data-speaker="Ross" data-start="2827.600000" data-stop="2829.802000">Like, I'm not necessarily going to say that you</span> <span class="audio-time caption" data-speaker="Ross" data-start="2829.842000" data-stop="2832.485000">should go down this road, but if you do go down</span> <span class="audio-time caption" data-speaker="Ross" data-start="2832.525000" data-stop="2834.427000">this road, it is something.</span> <span class="audio-time caption" data-speaker="Ross" data-start="2834.778000" data-stop="2837.533000">that is probably going to be richly rewarding</span> <span class="audio-time caption" data-speaker="Ross" data-start="2837.534000" data-stop="2838.967000">for you for a long time.</span> <span class="audio-time caption" data-speaker="Ross" data-start="2838.968000" data-stop="2840.800000">There's this thing... I think it's called</span> <span class="audio-time caption" data-speaker="Ross" data-start="2840.801000" data-stop="2843.833000">Lindy's Law. I'm sure I've quoted it here somewhere.</span> <span class="audio-time caption" data-speaker="Ross" data-start="2843.834000" data-stop="2845.851000">The expected lifetime of something is</span> <span class="audio-time caption" data-speaker="Ross" data-start="2845.912000" data-stop="2848.720000">proportional to how long it's already existed.</span> <span class="audio-time caption" data-speaker="Ross" data-start="2848.852000" data-stop="2851.433000">And with Emacs... Emacs has been around...</span> <span class="audio-time caption" data-speaker="Ross" data-start="2851.434000" data-stop="2854.167000">I'm very old. I'm 47. But Emacs is a little bit</span> <span class="audio-time caption" data-speaker="Ross" data-start="2854.168000" data-stop="2856.133000">older than I am, depending on how you start counting.</span> <span class="audio-time caption" data-speaker="Ross" data-start="2856.134000" data-stop="2859.333000">Emacs has been around for a long time.</span> <span class="audio-time caption" data-speaker="Ross" data-start="2859.334000" data-stop="2862.621000">It doesn't have the market share that it used to,</span> <span class="audio-time caption" data-speaker="Ross" data-start="2862.741000" data-stop="2864.284000">but it's something that still has a viable</span> <span class="audio-time caption" data-speaker="Ross" data-start="2864.304000" data-stop="2865.527000">community.</span> <span class="audio-time caption" data-speaker="Ross" data-start="2866.081000" data-stop="2867.463000">You do the Emacs News every week.</span> <span class="audio-time caption" data-speaker="Ross" data-start="2867.523000" data-stop="2869.326000">You know probably better than anybody else how</span> <span class="audio-time caption" data-speaker="Ross" data-start="2869.386000" data-stop="2870.748000">viable the community is right now.</span> <span class="audio-time caption" data-speaker="Ross" data-start="2870.808000" data-stop="2872.271000">It's still an exciting place to be.</span> <span class="audio-time caption" data-speaker="Ross" data-start="2872.371000" data-stop="2875.095000">I don't see that changing anytime soon, whereas</span> <span class="audio-time caption" data-speaker="Ross" data-start="2875.135000" data-stop="2877.759000">I've seen so much hype over... Everybody wanted to</span> <span class="audio-time caption" data-speaker="Ross" data-start="2877.800000" data-stop="2881.065000">get on Atom, and now Atom is a basically dead editor.</span> <span class="audio-time caption" data-speaker="Ross" data-start="2881.165000" data-stop="2883.589000">Sublime had this rise and fall.</span> <span class="audio-time caption" data-speaker="Ross" data-start="2883.609000" data-stop="2884.650000">So many other editors.</span> <span class="audio-time caption" data-speaker="Ross" data-start="2884.751000" data-stop="2887.515000">Now I see people... VS Code was dominant for a</span> <span class="audio-time caption" data-speaker="Ross" data-start="2887.575000" data-stop="2889.418000">while, and now I see a lot of people abandoning</span> <span class="audio-time caption" data-speaker="Ross" data-start="2889.478000" data-stop="2890.139000">VS Code.</span> <span class="audio-time caption" data-speaker="Ross" data-start="2890.239000" data-stop="2892.082000">It's still the dominant editor, but you can start</span> <span class="audio-time caption" data-speaker="Ross" data-start="2892.122000" data-stop="2893.945000">to see people moving away from that.</span> <span class="audio-time caption" data-speaker="Ross" data-start="2893.925000" data-stop="2896.107000">Emacs is always going to be here.</span> <span class="audio-time caption" data-speaker="Ross" data-start="2896.127000" data-stop="2899.731000">So just as I've aged, I appreciate that Emacs,</span> <span class="audio-time caption" data-speaker="Ross" data-start="2900.312000" data-stop="2902.274000">that same thing that I was using back when I was</span> <span class="audio-time caption" data-speaker="Ross" data-start="2902.314000" data-stop="2904.696000">18, a freshman in college, it's still working for</span> <span class="audio-time caption" data-speaker="Ross" data-start="2904.736000" data-stop="2905.257000">me at 47.</span> <span class="audio-time caption" data-speaker="Ross" data-start="2905.677000" data-stop="2908.160000">And by the time I hang up my keyboard, pretty</span> <span class="audio-time caption" data-speaker="Ross" data-start="2908.220000" data-stop="2910.162000">sure I'm still going to be using it.</span> <span class="audio-time caption" data-speaker="Ross" data-start="2910.402000" data-stop="2912.884000">It's done a remarkable job aging gracefully.</span> <span class="audio-time caption" data-speaker="Ross" data-start="2913.305000" data-stop="2915.447000">Would I want to use the Emacs 19 today?</span> <span class="audio-time caption" data-speaker="Ross" data-start="2915.467000" data-stop="2916.448000">Absolutely not.</span> <span class="audio-time caption" data-speaker="Ross" data-start="2916.808000" data-stop="2919.451000">Am I fully comfortable using Emacs 28 in the</span> <span class="audio-time caption" data-speaker="Ross" data-start="2919.511000" data-stop="2920.993000">sandbox environment?</span> <span class="audio-time caption" data-speaker="Ross" data-start="2921.013000" data-stop="2923.375000">Yeah, there's certain things that I miss.</span> <span class="audio-time caption" data-speaker="Ross" data-start="2923.355000" data-stop="2925.297000">But yeah, Emacs 30 is great.</span> <span class="audio-time caption" data-speaker="Ross" data-start="2925.377000" data-stop="2926.979000">Emacs 31 is around the corner.</span> <span class="audio-time caption" data-speaker="Ross" data-start="2927.579000" data-stop="2929.261000">It's kept up with the times.</span> <span class="audio-time caption" data-speaker="Ross" data-start="2929.622000" data-stop="2930.903000">We just talked about AI.</span> <span class="audio-time caption" data-speaker="Ross" data-start="2931.423000" data-stop="2934.006000">Emacs and AI, for all my concerns about AI, Emacs</span> <span class="audio-time caption" data-speaker="Ross" data-start="2934.026000" data-stop="2936.068000">and AI are a great fit for each other because so</span> <span class="audio-time caption" data-speaker="Ross" data-start="2936.108000" data-stop="2937.810000">much of the AI stuff that we're doing is</span> <span class="audio-time caption" data-speaker="Ross" data-start="2937.870000" data-stop="2938.991000">text-based.</span> <span class="audio-time caption" data-speaker="Ross" data-start="2939.031000" data-stop="2941.394000">Emacs is the best text processing platform that</span> <span class="audio-time caption" data-speaker="Ross" data-start="2941.414000" data-stop="2942.115000">there's ever been.</span> <span class="audio-time caption" data-speaker="Ross" data-start="2942.155000" data-stop="2945.058000">They fit each other so well.</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="2945.078000" data-stop="2945.478000"><strong class="speaker-name">Sacha:</strong>  Yeah, yeah.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2945.498000" data-stop="2949.242000">And I find it very amusing that with you at 47</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2949.282000" data-stop="2952.045000">years old and I'm 43, assuming math is right,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2952.346000" data-stop="2955.738000">There are people in the Emacs community who would</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2955.778000" data-stop="2958.247000">consider us still young whippersnappers.</span> <p></p><span class="audio-time caption" data-speaker="Ross" data-start="2958.267000" data-stop="2959.572000"><strong class="speaker-name">Ross:</strong>  That's right, yes.</span> <span class="audio-time caption" data-speaker="Ross" data-start="2960.362000" data-stop="2962.464000">Different demographics around here, that's for sure.</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="2963.285000" data-stop="2965.408000"><strong class="speaker-name">Sacha:</strong>  As well as, of course, the other</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2965.548000" data-stop="2968.592000">end where you have high school students and fresh</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2968.632000" data-stop="2971.215000">grads still enjoying it, still exploring it.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2972.236000" data-stop="2975.199000">And so it's great that we can customize this with</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2975.360000" data-stop="2977.903000">larger font sizes or different key bindings or</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2978.383000" data-stop="2982.468000">other ways to catch us from making careless</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2982.508000" data-stop="2987.554000">mistakes to adapt to us and the things that we're</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2987.574000" data-stop="2988.495000">working on.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2989.218000" data-stop="2990.219000">So all this is very interesting.</span> <p></p><div class="transcript-heading"><span class="audio-time" data-start="2991.000000">49:51</span> <strong>Nix is good at managing package versions and customizing them; Matthew Bauer (Bauer IDE)
</strong></div><p></p><a href="https://sachachua.com/blog/2026/06/emacs-chat-with-ross-a-baker/emacs-chat-26-ross-a-baker-00-53-01-300.jpg"><img loading="lazy" target="_blank" src="https://sachachua.com/blog/2026/06/emacs-chat-with-ross-a-baker/emacs-chat-26-ross-a-baker-00-53-01-300.jpg" alt="image from video 00:53:01.300" data-time="00:53:01.300"></a><span class="audio-time caption" data-speaker="Sacha" data-start="2991.000000" data-stop="2994.726000"><strong class="speaker-name">Sacha:</strong> Oh, actually, on a different tangent, one of the</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2994.746000" data-stop="2996.788000">things I was curious about is a lot of your</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2996.849000" data-stop="2999.773000">configuration is set up to work well with Nix.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3000.534000" data-stop="3002.737000">Since a lot of people in Emacs are curious</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3002.777000" data-stop="3005.501000">about reproducible configurations and systems,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3005.521000" data-stop="3007.083000">could you tell us more about Nix and your</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3007.123000" data-stop="3008.745000">experience with it in Emacs?</span> <p></p><span class="audio-time caption" data-speaker="Ross" data-start="3009.535000" data-stop="3013.423000"><strong class="speaker-name">Ross:</strong>  Yes, so I'm using that as some</span> <span class="audio-time caption" data-speaker="Ross" data-start="3013.463000" data-stop="3016.630000">people use straight.el to pin their packages.</span> <span class="audio-time caption" data-speaker="Ross" data-start="3016.650000" data-stop="3018.434000">Some people, they don't bother pinning their</span> <span class="audio-time caption" data-speaker="Ross" data-start="3018.474000" data-stop="3019.616000">packages at all.</span> <span class="audio-time caption" data-speaker="Ross" data-start="3019.636000" data-stop="3023.344000">I'm using Nix for people who are unfamiliar.</span> <span class="audio-time caption" data-speaker="Ross" data-start="3023.384000" data-stop="3024.827000">Nix is...</span> <span class="audio-time caption" data-speaker="Ross" data-start="3025.820000" data-stop="3027.662000">Boy, the elevator pitch for Nix.</span> <span class="audio-time caption" data-speaker="Ross" data-start="3029.203000" data-stop="3030.945000">It's a package manager, but it's more than an</span> <span class="audio-time caption" data-speaker="Ross" data-start="3031.065000" data-stop="3032.366000">Emacs package manager.</span> <span class="audio-time caption" data-speaker="Ross" data-start="3032.526000" data-stop="3035.208000">It can manage all of your packages for you.</span> <span class="audio-time caption" data-speaker="Ross" data-start="3035.228000" data-stop="3037.370000">So I'm building Emacs with Nix.</span> <span class="audio-time caption" data-speaker="Ross" data-start="3037.450000" data-stop="3039.773000">I'm declaring all of my packages that way.</span> <span class="audio-time caption" data-speaker="Ross" data-start="3039.973000" data-stop="3042.955000">Then that's specifying... I have a very</span> <span class="audio-time caption" data-speaker="Ross" data-start="3043.015000" data-stop="3046.459000">repeatable build of Emacs and it has this version</span> <span class="audio-time caption" data-speaker="Ross" data-start="3046.579000" data-stop="3048.000000">of these packages.</span> <span class="audio-time caption" data-speaker="Ross" data-start="3048.020000" data-stop="3050.182000">One thing that Nix is very good at is it's very</span> <span class="audio-time caption" data-speaker="Ross" data-start="3050.242000" data-stop="3052.444000">good at customizing certain things.</span> <span class="audio-time caption" data-speaker="Ross" data-start="3052.464000" data-stop="3054.486000">So if you want to run a patched version of a</span> <span class="audio-time caption" data-speaker="Ross" data-start="3054.546000" data-stop="3055.827000">particular package,</span> <span class="audio-time caption" data-speaker="Ross" data-start="3055.807000" data-stop="3059.473000">you're able to specify, okay, I want this</span> <span class="audio-time caption" data-speaker="Ross" data-start="3059.533000" data-stop="3062.137000">package, I want to use this package definition,</span> <span class="audio-time caption" data-speaker="Ross" data-start="3062.177000" data-stop="3065.302000">but I want to overlay these files on top of it.</span> <span class="audio-time caption" data-speaker="Ross" data-start="3065.322000" data-stop="3066.343000">Nix excels at that.</span> <span class="audio-time caption" data-speaker="Ross" data-start="3066.424000" data-stop="3068.407000">I'm running a lot of customized versions of</span> <span class="audio-time caption" data-speaker="Ross" data-start="3068.447000" data-stop="3070.169000">various packages, things that I've tried to</span> <span class="audio-time caption" data-speaker="Ross" data-start="3070.209000" data-stop="3072.613000">submit upstream, and the Emacs package might be</span> <span class="audio-time caption" data-speaker="Ross" data-start="3072.653000" data-stop="3075.578000">abandoned, or they might be a slow maintainer.</span> <span class="audio-time caption" data-speaker="Ross" data-start="3075.678000" data-stop="3078.022000">I need to use it today, and they'll get around to</span> <span class="audio-time caption" data-speaker="Ross" data-start="3078.062000" data-stop="3079.143000">it, and they'll merge it in a month.</span> <span class="audio-time caption" data-speaker="Ross" data-start="3079.163000" data-stop="3081.046000">So on a temporary basis, I'll want to run a</span> <span class="audio-time caption" data-speaker="Ross" data-start="3081.086000" data-stop="3082.168000">patched version.</span> <span class="audio-time caption" data-speaker="Ross" data-start="3082.300000" data-stop="3085.206000">Nix makes that workflow very smooth for me where</span> <span class="audio-time caption" data-speaker="Ross" data-start="3085.246000" data-stop="3087.330000">I'm able to run patched versions of certain</span> <span class="audio-time caption" data-speaker="Ross" data-start="3087.350000" data-stop="3089.234000">packages, like I'm running a patched version of</span> <span class="audio-time caption" data-speaker="Ross" data-start="3089.274000" data-stop="3090.838000">Forge like I showed off.</span> <span class="audio-time caption" data-speaker="Ross" data-start="3090.858000" data-stop="3092.641000">Some of the things I want to contribute upstream,</span> <span class="audio-time caption" data-speaker="Ross" data-start="3092.682000" data-stop="3093.664000">I've got those pulled out.</span> <span class="audio-time caption" data-speaker="Ross" data-start="3093.724000" data-stop="3096.329000">I just need to sit down and actually submit them upstream.</span> <span class="audio-time caption" data-speaker="Ross" data-start="3096.970000" data-stop="3099.175000">But I've got those ready to go and I'm able to</span> <span class="audio-time caption" data-speaker="Ross" data-start="3099.255000" data-stop="3101.800000">run those out of the box.</span> <span class="audio-time caption" data-speaker="Ross" data-start="3101.801000" data-stop="3104.567000">It's able to run... It's not just managing Emacs.</span> <span class="audio-time caption" data-speaker="Ross" data-start="3104.568000" data-stop="3106.067000">That's the real magic of it.</span> <span class="audio-time caption" data-speaker="Ross" data-start="3106.068000" data-stop="3109.833000">If I need certain binaries to support my Emacs config,</span> <span class="audio-time caption" data-speaker="Ross" data-start="3109.834000" data-stop="3112.800000">I can declare those, and that all comes together</span> <span class="audio-time caption" data-speaker="Ross" data-start="3112.801000" data-stop="3115.067000">and if I pull down Emacs packages,</span> <span class="audio-time caption" data-speaker="Ross" data-start="3115.068000" data-stop="3117.767000">those are all going to be there together.</span> <span class="audio-time caption" data-speaker="Ross" data-start="3117.768000" data-stop="3120.883000">There's a really fantastic example of this.</span> <span class="audio-time caption" data-speaker="Ross" data-start="3121.243000" data-stop="3124.187000">Matthew Bauer has something out there.</span> <span class="audio-time caption" data-speaker="Ross" data-start="3126.361000" data-stop="3128.023000">It's Bauer, I-D-E.</span> <span class="audio-time caption" data-speaker="Ross" data-start="3128.364000" data-stop="3130.908000">B-A-U-E-R is his last name.</span> <span class="audio-time caption" data-speaker="Ross" data-start="3131.128000" data-stop="3133.451000">He has one of the very inspiring configurations</span> <span class="audio-time caption" data-speaker="Ross" data-start="3133.511000" data-stop="3136.055000">to me where he builds everything in Nix and he</span> <span class="audio-time caption" data-speaker="Ross" data-start="3136.135000" data-stop="3138.759000">bundles all of his binaries that he needs in Nix</span> <span class="audio-time caption" data-speaker="Ross" data-start="3138.839000" data-stop="3142.504000">and then he configures his Emacs variables to</span> <span class="audio-time caption" data-speaker="Ross" data-start="3142.545000" data-stop="3144.868000">point, not at the git that happens to be on the</span> <span class="audio-time caption" data-speaker="Ross" data-start="3144.928000" data-stop="3147.652000">file system, but to the git that he installs via Nix.</span> <span class="audio-time caption" data-speaker="Ross" data-start="3147.692000" data-stop="3151.117000">So he knows that the entire thing is</span> <span class="audio-time caption" data-speaker="Ross" data-start="3151.177000" data-stop="3151.958000">self-contained.</span> <span class="audio-time caption" data-speaker="Ross" data-start="3152.098000" data-stop="3154.562000">That's something I've taken a lot of inspiration from.</span> <span class="audio-time caption" data-speaker="Ross" data-start="3155.015000" data-stop="3159.502000">If I'm on a machine that has Nix, I'm able to run this.</span> <span class="audio-time caption" data-speaker="Ross" data-start="3159.522000" data-stop="3162.487000">If I want to run my standalone config, I can run</span> <span class="audio-time caption" data-speaker="Ross" data-start="3162.527000" data-stop="3165.051000">this command and I can run this command on any</span> <span class="audio-time caption" data-speaker="Ross" data-start="3165.111000" data-stop="3166.873000">machine that I have Nix installed on.</span> <span class="audio-time caption" data-speaker="Ross" data-start="3167.595000" data-stop="3169.658000">It will run very fast here.</span> <span class="audio-time caption" data-speaker="Ross" data-start="3170.239000" data-stop="3171.741000">Should run very fast here.</span> <span class="audio-time caption" data-speaker="Ross" data-start="3172.835000" data-stop="3176.083000">and this popped up and this is my base config and</span> <span class="audio-time caption" data-speaker="Ross" data-start="3176.144000" data-stop="3180.836000">I could have run this on any machine or the my</span> <span class="audio-time caption" data-speaker="Ross" data-start="3181.277000" data-stop="3182.079000">packages are named.</span> <span class="audio-time caption" data-speaker="Ross" data-start="3182.159000" data-stop="3184.967000">It's an old Simpsons joke when Homer is stuck in</span> <span class="audio-time caption" data-speaker="Ross" data-start="3185.027000" data-stop="3185.428000">New York.</span> <span class="audio-time caption" data-speaker="Ross" data-start="3186.090000" data-stop="3188.937000">So that's the khlav kalash and crab juice.</span> <span class="audio-time caption" data-speaker="Ross" data-start="3188.917000" data-stop="3190.581000">I think I've got a link to the YouTube video</span> <span class="audio-time caption" data-speaker="Ross" data-start="3190.621000" data-stop="3192.185000">somewhere in my config.</span> <span class="audio-time caption" data-speaker="Ross" data-start="3192.205000" data-stop="3194.390000">And there's the fully built in one.</span> <span class="audio-time caption" data-speaker="Ross" data-start="3194.410000" data-stop="3196.716000">That's something I can get on a new machine.</span> <span class="audio-time caption" data-speaker="Ross" data-start="3197.157000" data-stop="3198.019000">I install Nix.</span> <span class="audio-time caption" data-speaker="Ross" data-start="3198.199000" data-stop="3199.843000">All of my dot files are there.</span> <span class="audio-time caption" data-speaker="Ross" data-start="3199.863000" data-stop="3202.068000">If I want to just run Emacs or if somebody</span> <span class="audio-time caption" data-speaker="Ross" data-start="3202.128000" data-stop="3204.213000">else wants to run my Emacs, anybody can take that</span> <span class="audio-time caption" data-speaker="Ross" data-start="3204.253000" data-stop="3205.356000">config and run it.</span> <p></p><div class="transcript-heading"><span class="audio-time" data-start="3205.000000">53:25</span> <strong>Custom fonts</strong></div><p></p><span class="audio-time caption" data-speaker="Ross" data-start="3205.336000" data-stop="3207.501000"><strong class="speaker-name">Ross:</strong> Now if you do that, a word of warning.</span> <span class="audio-time caption" data-speaker="Ross" data-start="3207.521000" data-stop="3210.146000">One thing that I've done is this font that you</span> <span class="audio-time caption" data-speaker="Ross" data-start="3210.186000" data-stop="3211.709000">see is a custom font.</span> <span class="audio-time caption" data-speaker="Ross" data-start="3212.010000" data-stop="3215.918000">I took the Iosevka font and I customized a lot of</span> <span class="audio-time caption" data-speaker="Ross" data-start="3215.938000" data-stop="3216.720000">the glyphs on it.</span> <span class="audio-time caption" data-speaker="Ross" data-start="3216.820000" data-stop="3218.824000">When I do that, I build that in Nix as well.</span> <span class="audio-time caption" data-speaker="Ross" data-start="3218.985000" data-stop="3220.628000">You can use Nix to build your fonts.</span> <span class="audio-time caption" data-speaker="Ross" data-start="3220.608000" data-stop="3222.552000">That's part of my derivation.</span> <span class="audio-time caption" data-speaker="Ross" data-start="3222.572000" data-stop="3225.558000">My Emacs config depends on my fonts.</span> <span class="audio-time caption" data-speaker="Ross" data-start="3225.979000" data-stop="3228.304000">If you try to run these, you're going to have</span> <span class="audio-time caption" data-speaker="Ross" data-start="3228.324000" data-stop="3229.406000">to compile the fonts.</span> <span class="audio-time caption" data-speaker="Ross" data-start="3229.427000" data-stop="3231.751000">I compile a lot of variants of these fonts.</span> <span class="audio-time caption" data-speaker="Ross" data-start="3231.812000" data-stop="3233.635000">I compile a lot of alphabets.</span> <span class="audio-time caption" data-speaker="Ross" data-start="3233.655000" data-stop="3235.058000">Linguistics is one of my hobbies.</span> <span class="audio-time caption" data-speaker="Ross" data-start="3235.078000" data-stop="3237.183000">I love to work in these other alphabets and</span> <span class="audio-time caption" data-speaker="Ross" data-start="3237.243000" data-stop="3237.944000">things like that.</span> <span class="audio-time caption" data-speaker="Ross" data-start="3237.964000" data-stop="3240.169000">I'm very opinionated on these things.</span> <span class="audio-time caption" data-speaker="Ross" data-start="3240.149000" data-stop="3242.552000">Even in languages that I don't speak, I like the</span> <span class="audio-time caption" data-speaker="Ross" data-start="3242.732000" data-stop="3243.813000">text to look a certain way.</span> <span class="audio-time caption" data-speaker="Ross" data-start="3243.853000" data-stop="3245.956000">Just one of the other ways I blow off steam.</span> <span class="audio-time caption" data-speaker="Ross" data-start="3245.976000" data-stop="3248.459000">But anyway, I've got this custom font that I use</span> <span class="audio-time caption" data-speaker="Ross" data-start="3248.519000" data-stop="3248.819000">everywhere.</span> <span class="audio-time caption" data-speaker="Ross" data-start="3248.839000" data-stop="3250.121000">It's the font on my website.</span> <span class="audio-time caption" data-speaker="Ross" data-start="3250.161000" data-stop="3252.163000">It's the font that you see in my editor and my</span> <span class="audio-time caption" data-speaker="Ross" data-start="3252.203000" data-stop="3252.804000">terminal.</span> <span class="audio-time caption" data-speaker="Ross" data-start="3253.345000" data-stop="3255.307000">If you pull this package, you'll get my font and</span> <span class="audio-time caption" data-speaker="Ross" data-start="3255.327000" data-stop="3257.270000">you'll have to compile that and you're going to</span> <span class="audio-time caption" data-speaker="Ross" data-start="3257.310000" data-stop="3259.532000">heat the room with your CPU for about 30 minutes</span> <span class="audio-time caption" data-speaker="Ross" data-start="3259.612000" data-stop="3260.353000">if you do so.</span> <span class="audio-time caption" data-speaker="Ross" data-start="3260.373000" data-stop="3261.715000">So beware on that.</span> <span class="audio-time caption" data-speaker="Ross" data-start="3262.396000" data-stop="3264.799000">Otherwise, if you want to run my config, it's all</span> <span class="audio-time caption" data-speaker="Ross" data-start="3264.859000" data-stop="3266.781000">out there if you have Nix.</span> <span class="audio-time caption" data-speaker="Ross" data-start="3267.824000" data-stop="3269.609000">I don't know how practical that is, but it makes</span> <span class="audio-time caption" data-speaker="Ross" data-start="3269.650000" data-stop="3270.191000">me feel good.</span> <p></p><div class="transcript-heading"><span class="audio-time" data-start="3270.000000">54:30</span> <strong>Starter kits versus configs</strong></div><p></p><span class="audio-time caption" data-speaker="Sacha" data-start="3270.913000" data-stop="3272.037000"><strong class="speaker-name">Sacha:</strong>  Now I'm curious, have you heard</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3272.077000" data-stop="3274.464000">from people using your base config or your</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3274.524000" data-stop="3275.186000">extended one?</span> <p></p><span class="audio-time caption" data-speaker="Ross" data-start="3278.737000" data-stop="3280.382000"><strong class="speaker-name">Ross:</strong>  I've heard of people</span> <span class="audio-time caption" data-speaker="Ross" data-start="3280.666000" data-stop="3281.567000">copying out of it.</span> <span class="audio-time caption" data-speaker="Ross" data-start="3281.607000" data-stop="3283.149000">I haven't heard of people depending on it</span> <span class="audio-time caption" data-speaker="Ross" data-start="3283.189000" data-stop="3283.670000">directly.</span> <span class="audio-time caption" data-speaker="Ross" data-start="3283.690000" data-stop="3285.112000">I would generally discourage people.</span> <span class="audio-time caption" data-speaker="Ross" data-start="3285.232000" data-stop="3287.896000">That's kind of the difference between a starter kit and a config.</span> <span class="audio-time caption" data-speaker="Ross" data-start="3287.996000" data-stop="3292.442000">You did an excellent series here on starter kits recently.</span> <span class="audio-time caption" data-speaker="Ross" data-start="3292.462000" data-stop="3294.785000">I don't see this necessarily as a starter kit.</span> <span class="audio-time caption" data-speaker="Ross" data-start="3294.805000" data-stop="3297.049000">This is very opinionated to the way I do things.</span> <span class="audio-time caption" data-speaker="Ross" data-start="3297.109000" data-stop="3298.030000">I hope people look at it.</span> <span class="audio-time caption" data-speaker="Ross" data-start="3298.090000" data-stop="3300.393000">I hope people draw inspiration from it, copy from it.</span> <span class="audio-time caption" data-speaker="Ross" data-start="3300.513000" data-stop="3301.154000">Absolutely.</span> <span class="audio-time caption" data-speaker="Ross" data-start="3301.635000" data-stop="3303.237000">But I'm going to change things on a whim.</span> <span class="audio-time caption" data-speaker="Ross" data-start="3303.257000" data-stop="3305.100000">If you're using this as a base layer, you're</span> <span class="audio-time caption" data-speaker="Ross" data-start="3305.140000" data-stop="3307.122000">going to find my opinions thrust upon you.</span> <span class="audio-time caption" data-speaker="Ross" data-start="3307.163000" data-stop="3308.985000">You're probably not going to like half of them.</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="3310.180000" data-stop="3312.543000"><strong class="speaker-name">Sacha:</strong>  Well, your config is very nicely</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3312.603000" data-stop="3315.106000">documented and rather enjoyable to read.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3315.206000" data-stop="3319.111000">So I can imagine people will get a lot by reading</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3319.191000" data-stop="3321.074000">it for the things they can copy and paste to</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3321.094000" data-stop="3321.975000">their config.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3321.995000" data-stop="3323.997000">I also particularly like how even your code</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3324.017000" data-stop="3327.742000">snippets, you've customized it to include the license.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3328.263000" data-stop="3331.627000">So it's like every little bit of that is easy for</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3331.687000" data-stop="3334.451000">people to copy from confidently.</span> <p></p><div class="transcript-heading"><span class="audio-time" data-start="3334.000000">55:34</span> <strong>Nix vs Guix; Mac</strong></div><p></p><span class="audio-time caption" data-speaker="Sacha" data-start="3334.711000" data-stop="3335.912000"><strong class="speaker-name">Sacha:</strong> Trevok has a question.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3335.992000" data-stop="3338.095000">Hopefully without starting a philosophical war,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3338.155000" data-stop="3339.597000">why Nix over Guix?</span> <p></p><span class="audio-time caption" data-speaker="Ross" data-start="3340.943000" data-stop="3343.647000"><strong class="speaker-name">Ross:</strong>  I would love to run Guix, but I</span> <span class="audio-time caption" data-speaker="Ross" data-start="3343.727000" data-stop="3346.210000">have a Mac for work and Guix doesn't have a good</span> <span class="audio-time caption" data-speaker="Ross" data-start="3346.251000" data-stop="3348.434000">Mac story. I'm sharing a lot, not just my</span> <span class="audio-time caption" data-speaker="Ross" data-start="3348.574000" data-stop="3350.296000">Emacs configuration, but a lot of other</span> <span class="audio-time caption" data-speaker="Ross" data-start="3350.356000" data-stop="3354.042000">configurations, because Nix is more broadly scoped.</span> <span class="audio-time caption" data-speaker="Ross" data-start="3354.122000" data-stop="3356.004000">I'm able to share a bunch of things between those</span> <span class="audio-time caption" data-speaker="Ross" data-start="3356.044000" data-stop="3357.727000">two operating systems.</span> <span class="audio-time caption" data-speaker="Ross" data-start="3357.747000" data-stop="3360.090000">So the server that I run, the rossabaker.com,</span> <span class="audio-time caption" data-speaker="Ross" data-start="3360.110000" data-stop="3361.272000">that runs on NixOS.</span> <span class="audio-time caption" data-speaker="Ross" data-start="3361.352000" data-stop="3363.635000">This laptop that I'm on runs on NixOS, and then I</span> <span class="audio-time caption" data-speaker="Ross" data-start="3363.675000" data-stop="3364.977000">have the Darwin machine.</span> <span class="audio-time caption" data-speaker="Ross" data-start="3364.957000" data-stop="3367.121000">There are certain things that are compatible</span> <span class="audio-time caption" data-speaker="Ross" data-start="3367.181000" data-stop="3367.962000">between Linux.</span> <span class="audio-time caption" data-speaker="Ross" data-start="3367.982000" data-stop="3369.384000">There are certain things that are compatible</span> <span class="audio-time caption" data-speaker="Ross" data-start="3369.424000" data-stop="3370.807000">between the workstations.</span> <span class="audio-time caption" data-speaker="Ross" data-start="3370.827000" data-stop="3372.810000">And then Darwin has its own weird area.</span> <span class="audio-time caption" data-speaker="Ross" data-start="3373.211000" data-stop="3374.753000">I'm able to manage all of that with Nix.</span> <span class="audio-time caption" data-speaker="Ross" data-start="3374.813000" data-stop="3376.516000">I couldn't do that with Guix.</span> <span class="audio-time caption" data-speaker="Ross" data-start="3376.536000" data-stop="3378.780000">If Guix gets a good Darwin story, I will switch</span> <span class="audio-time caption" data-speaker="Ross" data-start="3378.840000" data-stop="3379.902000">tomorrow,</span> <span class="audio-time caption" data-speaker="Ross" data-start="3379.922000" data-stop="3381.444000">because I would love to be configuring with</span> <span class="audio-time caption" data-speaker="Ross" data-start="3381.464000" data-stop="3381.805000">Scheme.</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="3382.887000" data-stop="3386.593000"><strong class="speaker-name">Sacha:</strong>  Totally different tangent yet again.</span> <p></p><div class="transcript-heading"><span class="audio-time" data-start="3386.000000">56:26</span> <strong>Non-work interests: Org for documenting; ox-hugo and multiple languages</strong></div><p></p><span class="audio-time caption" data-speaker="Sacha" data-start="3386.894000" data-stop="3390.137000"><strong class="speaker-name">Sacha:</strong> Do you use Emacs for your other interests?</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3390.177000" data-stop="3392.579000">You've mentioned things like you use it to</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3392.659000" data-stop="3396.203000">publish your youth soccer homepage.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3396.923000" data-stop="3399.025000">What about for your aquarium or linguistics or</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3399.105000" data-stop="3400.206000">other things you're interested in?</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3402.108000" data-stop="3404.650000">Tell us about the non-work uses of Emacs in your life.</span> <p></p><span class="audio-time caption" data-speaker="Ross" data-start="3406.212000" data-stop="3407.373000"><strong class="speaker-name">Ross:</strong>  That would mostly be just</span> <span class="audio-time caption" data-speaker="Ross" data-start="3407.473000" data-stop="3410.275000">documenting things in Org Mode.</span> <span class="audio-time caption" data-speaker="Ross" data-start="3410.916000" data-stop="3412.998000">Like I mentioned, it's a big Org doc, and if you</span> <span class="audio-time caption" data-speaker="Ross" data-start="3413.038000" data-stop="3414.699000">read this doc, you'll see that it's a very</span> <span class="audio-time caption" data-speaker="Ross" data-start="3414.760000" data-stop="3416.361000">sprawling thing.</span> <span class="audio-time caption" data-speaker="Ross" data-start="3416.476000" data-stop="3421.203000">For the linguistics, one thing with ox-hugo is</span> <span class="audio-time caption" data-speaker="Ross" data-start="3421.243000" data-stop="3422.425000">that integrates nicely.</span> <span class="audio-time caption" data-speaker="Ross" data-start="3422.505000" data-stop="3424.648000">I know you've been learning French.</span> <span class="audio-time caption" data-speaker="Ross" data-start="3425.009000" data-stop="3426.812000">I think that's cool how you're doing that.</span> <span class="audio-time caption" data-speaker="Ross" data-start="3426.852000" data-stop="3428.574000">Spanish and German are my two hobbies.</span> <span class="audio-time caption" data-speaker="Ross" data-start="3428.614000" data-stop="3430.197000">I've actually got a trilingual site.</span> <span class="audio-time caption" data-speaker="Ross" data-start="3430.698000" data-stop="3433.262000">The English is way more populated than Spanish</span> <span class="audio-time caption" data-speaker="Ross" data-start="3433.302000" data-stop="3433.822000">and the German.</span> <span class="audio-time caption" data-speaker="Ross" data-start="3433.842000" data-stop="3435.565000">Those are afterthoughts.</span> <span class="audio-time caption" data-speaker="Ross" data-start="3435.764000" data-stop="3438.347000">I learned Spanish in college and I learned German</span> <span class="audio-time caption" data-speaker="Ross" data-start="3438.387000" data-stop="3440.389000">in high school. I just try to keep current</span> <span class="audio-time caption" data-speaker="Ross" data-start="3440.429000" data-stop="3442.531000">with that, but I'm not particularly fluent in</span> <span class="audio-time caption" data-speaker="Ross" data-start="3442.631000" data-stop="3443.692000">either.</span> <span class="audio-time caption" data-speaker="Ross" data-start="3443.712000" data-stop="3446.035000">There was a wonderful IndieWeb Carnival that</span> <span class="audio-time caption" data-speaker="Ross" data-start="3446.075000" data-stop="3446.455000">came up.</span> <span class="audio-time caption" data-speaker="Ross" data-start="3446.515000" data-stop="3448.798000">It was called Multilingualism on the Web and</span> <span class="audio-time caption" data-speaker="Ross" data-start="3448.818000" data-stop="3450.880000">that's when I sat down and I'm like, okay, I want</span> <span class="audio-time caption" data-speaker="Ross" data-start="3450.940000" data-stop="3452.061000">to do this.</span> <span class="audio-time caption" data-speaker="Ross" data-start="3452.081000" data-stop="3454.044000">I'm going to write this article and I'm not just</span> <span class="audio-time caption" data-speaker="Ross" data-start="3454.084000" data-stop="3455.265000">going to write it in one language.</span> <span class="audio-time caption" data-speaker="Ross" data-start="3455.285000" data-stop="3457.087000">I'm going to write it in all three languages that</span> <span class="audio-time caption" data-speaker="Ross" data-start="3457.147000" data-stop="3458.148000">I speak.</span> <span class="audio-time caption" data-speaker="Ross" data-start="3458.168000" data-stop="3460.631000">Hugo has these facilities for taking the same</span> <span class="audio-time caption" data-speaker="Ross" data-start="3460.731000" data-stop="3463.233000">article and publishing them on all three sites</span> <span class="audio-time caption" data-speaker="Ross" data-start="3463.293000" data-stop="3464.775000">and linking them across each other.</span> <span class="audio-time caption" data-speaker="Ross" data-start="3465.430000" data-stop="3468.974000">And ox-hugo, that passes through.</span> <span class="audio-time caption" data-speaker="Ross" data-start="3468.994000" data-stop="3471.856000">ox-hugo uses Hugo as a compilation target.</span> <span class="audio-time caption" data-speaker="Ross" data-start="3471.996000" data-stop="3476.061000">ox-hugo, I was able to set the metadata on there.</span> <span class="audio-time caption" data-speaker="Ross" data-start="3476.081000" data-stop="3478.462000">If you've noticed my file name in this editor...</span> <span class="audio-time caption" data-speaker="Ross" data-start="3478.463000" data-stop="3484.169000">I name everything after Simpsons puns: cromulent.en.org.</span> <span class="audio-time caption" data-speaker="Ross" data-start="3484.189000" data-stop="3489.073000">And then I also have... I do have them separated by language.</span> <span class="audio-time caption" data-speaker="Ross" data-start="3490.415000" data-stop="3492.737000">Here's my Spanish document and then,</span> <span class="audio-time caption" data-speaker="Ross" data-start="3493.983000" data-stop="3496.507000">very predictably, here's my German document.</span> <span class="audio-time caption" data-speaker="Ross" data-start="3497.007000" data-stop="3499.850000">By doing this in Org Mode with ox-hugo,</span> <span class="audio-time caption" data-speaker="Ross" data-start="3499.851000" data-stop="3502.035000">I'm able to link together the posts that are</span> <span class="audio-time caption" data-speaker="Ross" data-start="3502.075000" data-stop="3504.378000">translated into multiple languages.</span> <span class="audio-time caption" data-speaker="Ross" data-start="3504.398000" data-stop="3506.040000">And then those all appear, if you go out to the</span> <span class="audio-time caption" data-speaker="Ross" data-start="3506.101000" data-stop="3509.085000">Hugo site, like the rossabaker.com, you can go</span> <span class="audio-time caption" data-speaker="Ross" data-start="3509.165000" data-stop="3510.787000">there and anything that's available in multiple</span> <span class="audio-time caption" data-speaker="Ross" data-start="3510.827000" data-stop="3512.450000">languages, that'll show up.</span> <span class="audio-time caption" data-speaker="Ross" data-start="3512.470000" data-stop="3514.052000">You can click through the Spanish or German</span> <span class="audio-time caption" data-speaker="Ross" data-start="3514.092000" data-stop="3515.434000">translation of those.</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="3515.617000" data-stop="3517.019000"><strong class="speaker-name">Sacha:</strong>  I didn't notice any shortcuts in</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3517.039000" data-stop="3519.363000">your config for quickly switching to another,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3519.503000" data-stop="3522.407000">like the Org mode source in a different language</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3522.468000" data-stop="3523.309000">for the same post.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3523.389000" data-stop="3526.373000">Would you happen to have any conveniences like</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3526.414000" data-stop="3526.614000">that,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3527.095000" data-stop="3529.078000">or do you just manually switch to the other file</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3529.138000" data-stop="3530.520000">and then find it?</span> <p></p><span class="audio-time caption" data-speaker="Ross" data-start="3530.540000" data-stop="3532.763000"><strong class="speaker-name">Ross:</strong>  I just manually switch to that, but</span> <span class="audio-time caption" data-speaker="Ross" data-start="3532.843000" data-stop="3533.965000">the data is all there.</span> <span class="audio-time caption" data-speaker="Ross" data-start="3534.025000" data-stop="3538.933000">The file names have to line up, so that's</span> <span class="audio-time caption" data-speaker="Ross" data-start="3538.973000" data-stop="3540.195000">definitely a helper I could write.</span> <span class="audio-time caption" data-speaker="Ross" data-start="3540.515000" data-stop="3542.518000">If I can find time to get back into this, that</span> <span class="audio-time caption" data-speaker="Ross" data-start="3542.558000" data-stop="3544.341000">would be an excellent. I love your idea.</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="3544.827000" data-stop="3545.989000"><strong class="speaker-name">Sacha:</strong>  Yeah, because I figured,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3546.029000" data-stop="3547.832000">if you're going to write something, you might</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3547.872000" data-stop="3549.775000">want to switch between languages very quickly.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3549.795000" data-stop="3552.860000">If you make an edit, okay, "I'm going to add this thought to it.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3553.140000" data-stop="3554.162000">I want to switch to the other ones."</span> <p></p><span class="audio-time caption" data-speaker="Ross" data-start="3554.422000" data-stop="3555.944000"><strong class="speaker-name">Ross:</strong>  Yeah, typically I'll just take care</span> <span class="audio-time caption" data-speaker="Ross" data-start="3555.984000" data-stop="3557.927000">of that with a split window and I'll have the two</span> <span class="audio-time caption" data-speaker="Ross" data-start="3557.988000" data-stop="3558.849000">up there that way.</span> <span class="audio-time caption" data-speaker="Ross" data-start="3559.610000" data-stop="3561.513000">That way, I'm comparing them side by side.</span> <span class="audio-time caption" data-speaker="Ross" data-start="3561.573000" data-stop="3563.777000">That's probably why I haven't had that yet,</span> <span class="audio-time caption" data-speaker="Ross" data-start="3563.817000" data-stop="3566.200000">but it would still be nice to see, okay, "I do</span> <span class="audio-time caption" data-speaker="Ross" data-start="3566.260000" data-stop="3567.583000">want to make a quick edit in there."</span> <span class="audio-time caption" data-speaker="Ross" data-start="3567.603000" data-stop="3569.365000">It would at least scroll me to that point in the</span> <span class="audio-time caption" data-speaker="Ross" data-start="3569.405000" data-stop="3570.447000">other window quicker.</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="3571.523000" data-stop="3573.466000"><strong class="speaker-name">Sacha:</strong>  If you add more language-related</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3573.486000" data-stop="3576.291000">stuff to your extended config, I'm very</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3576.351000" data-stop="3579.516000">interested in what people use to look up</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3579.577000" data-stop="3581.440000">dictionaries, look up example sentences, and</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3581.460000" data-stop="3582.722000">things like that.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3582.802000" data-stop="3585.527000">@blaiseutube says, "Recovering linguist here.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3585.667000" data-stop="3587.690000">English, Spanish, and French for work.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3587.730000" data-stop="3590.595000">Japanese, Portuguese, Sanskrit, and Swedish for fun."</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3590.575000" data-stop="3594.720000">So I'm guessing there are a lot of linguists or</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3595.320000" data-stop="3598.363000">people who do language learning as a hobby who</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3598.384000" data-stop="3599.345000">use Emacs.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3599.365000" data-stop="3601.267000">It's great because you can switch to all the</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3601.427000" data-stop="3603.309000">different input methods very easily too.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3603.489000" data-stop="3605.311000">It's all text.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3608.214000" data-stop="3609.035000">Oh, this is fantastic.</span> <p></p><span class="audio-time caption" data-speaker="Ross" data-start="3609.115000" data-stop="3610.617000"><strong class="speaker-name">Ross:</strong>  For all the diacritics that we</span> <span class="audio-time caption" data-speaker="Ross" data-start="3610.657000" data-stop="3613.839000">don't have on the US layout keyboard,</span> <span class="audio-time caption" data-speaker="Ross" data-start="3613.840000" data-stop="3617.224000">the <code>C-x 8</code> key binding.</span> <span class="audio-time caption" data-speaker="Ross" data-start="3617.592000" data-stop="3621.817000">Autocomplete if you need an obscure Unicode</span> <span class="audio-time caption" data-speaker="Ross" data-start="3621.857000" data-stop="3624.240000">character, and it'll autocomplete on all those.</span> <span class="audio-time caption" data-speaker="Ross" data-start="3625.141000" data-stop="3629.186000">So, okay, I want nice little built-in there.</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="3630.488000" data-stop="3632.090000"><strong class="speaker-name">Sacha:</strong>  Yeah, on Linux, I've just been</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3632.170000" data-stop="3634.673000">using <code>setxkbmap</code> to switch my layout</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3634.693000" data-stop="3637.697000">temporarily, but I also like just being able to</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3637.777000" data-stop="3641.361000">set the input method in Emacs in case I just want</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3641.401000" data-stop="3643.704000">to write something quickly, then I can just</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3643.744000" data-stop="3646.268000"><code>C-\</code>, I think.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3646.548000" data-stop="3651.816000">Okay, I've got about one minute</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3651.856000" data-stop="3653.599000">before the kid does lunch break.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3653.619000" data-stop="3654.761000">Thank you so much for doing this.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3655.442000" data-stop="3658.667000">Was there anything that you wanted to pass on as</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3658.728000" data-stop="3663.195000">a key tip that you'd like people to know from</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3663.235000" data-stop="3667.362000">your experience with using Emacs?</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3667.763000" data-stop="3671.309000">What's something we haven't mentioned that you'd</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3671.329000" data-stop="3671.950000">like to share?</span> <p></p><span class="audio-time caption" data-speaker="Ross" data-start="3673.246000" data-stop="3677.159000"><strong class="speaker-name">Ross:</strong>  I guess I didn't mention the things that I think</span> <span class="audio-time caption" data-speaker="Ross" data-start="3677.279000" data-stop="3678.483000">are exciting outside.</span> <span class="audio-time caption" data-speaker="Ross" data-start="3678.503000" data-stop="3680.289000">We talked about the built-in configs, so the</span> <span class="audio-time caption" data-speaker="Ross" data-start="3680.349000" data-stop="3684.522000">things that I missed the most, I would say...</span> <span class="audio-time caption" data-speaker="Ross" data-start="3685.480000" data-stop="3687.602000">Well, I guess look at my crab juice config.</span> <span class="audio-time caption" data-speaker="Ross" data-start="3687.743000" data-stop="3689.685000">Those are the packages that I found that I</span> <span class="audio-time caption" data-speaker="Ross" data-start="3689.765000" data-stop="3691.307000">absolutely cannot live without.</span> <span class="audio-time caption" data-speaker="Ross" data-start="3691.867000" data-stop="3693.589000">Magit, a few language modes.</span> <span class="audio-time caption" data-speaker="Ross" data-start="3694.651000" data-stop="3696.673000">You can get by on the built-in thing a lot better</span> <span class="audio-time caption" data-speaker="Ross" data-start="3696.713000" data-stop="3698.315000">than you think, but there are a few things that</span> <span class="audio-time caption" data-speaker="Ross" data-start="3698.335000" data-stop="3700.417000">are out there that are the really special ones,</span> <span class="audio-time caption" data-speaker="Ross" data-start="3700.437000" data-stop="3702.339000">and I think that's the distilled essence of that.</span> <span class="audio-time caption" data-speaker="Ross" data-start="3702.580000" data-stop="3704.482000">Just take a look at that package.</span> <span class="audio-time caption" data-speaker="Ross" data-start="3704.502000" data-stop="3706.504000">Those are the ones that, yeah, I tried really</span> <span class="audio-time caption" data-speaker="Ross" data-start="3706.544000" data-stop="3708.427000">hard on the built-ins and I failed.</span> <span class="audio-time caption" data-speaker="Ross" data-start="3708.467000" data-stop="3710.269000">These are the ones I really need.</span> <span class="audio-time caption" data-speaker="Ross" data-start="3710.289000" data-stop="3711.951000">I'd encourage people to take a look at that as well.</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="3712.772000" data-stop="3713.192000"><strong class="speaker-name">Sacha:</strong>  All right.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3713.493000" data-stop="3716.745000">For folks who are watching, you can find all</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3716.765000" data-stop="3718.893000">of that stuff at rossabaker.com.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3719.615000" data-stop="3720.378000">Thank you so much.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3720.659000" data-stop="3724.212000">You've got links to your GitHub and Berg.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3724.883000" data-stop="3730.188000">Thanks to everyone on the stream for hanging out</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3730.268000" data-stop="3731.890000">and for sharing your questions and comments.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3732.471000" data-stop="3737.716000">I almost forgot to mention [@ispringle] had a tip</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3737.776000" data-stop="3743.242000">about putting emacs-lock-mode on a keyboard</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3743.262000" data-stop="3747.606000">shortcut so you can toggle it if you wanted to.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3748.307000" data-stop="3749.147000">Nice idea.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3749.428000" data-stop="3750.329000">Again, thank you everyone.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3750.349000" data-stop="3751.650000">We're going to end the stream here.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3751.630000" data-stop="3753.494000">I will work on the transcripts and all that stuff.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3753.574000" data-stop="3756.500000">Thanks again Ross for doing this, and I'll see</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3756.540000" data-stop="3758.905000">everyone around probably in September or October</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3758.945000" data-stop="3764.998000">because I have to be on summer vacation.</span></div>
<p></p>


<a name="end-emacs-chat-26-ross-a-baker-transcript"></a></details>
</div>
</div>
<div id="outline-container-emacs-chats-emacs-chat-26-ross-a-baker-chat" class="outline-3">
<h3 id="emacs-chats-emacs-chat-26-ross-a-baker-chat"><a href="https://sachachua.com/blog/feed/index.xml#emacs-chats-emacs-chat-26-ross-a-baker-chat">Chat</a></h3>
<div class="outline-text-3" id="text-emacs-chats-emacs-chat-26-ross-a-baker-chat">
<ul class="org-ul">
<li><span class="nick">Ray-On-Emacs:</span> ​​How do you exit Emacs, then? Or do you never exit Emacs?</li>
<li><span class="nick">pratikmishra4073:</span> ​i stealing that lock mode hack. i too have killed scratch buffer accidentally before.</li>
<li><span class="nick">ispringle:</span> ​`(global-set-key (kbd "C-c l") #'emacs-lock-mode)` is handy for one off locks too</li>
<li><span class="nick">PuercoPop:</span> ​​There is a gh-notify package specifically for high volume GitHub notifications</li>
<li><span class="nick">blaiseutube:</span> ​​I keep procrastinating my return to emacs 😔</li>
<li><span class="nick">gr1maldi:</span> ​​Yo, and stuff. Sorry I'm late.</li>
<li><span class="nick">Ray-On-Emacs:</span> ​​Getting older! Oh boy! more tell me, please</li>
<li><span class="nick">dubstepandlovee:</span> ​​fantastic chat so far! as a local agent user, gptel-agent looks like an interesting project</li>
<li><span class="nick">Trevoke:</span> ​​Hopefully without starting a philosophical war, why nix over guix?</li>
<li><span class="nick">dubstepandlovee:</span> ​why nix over lix</li>
<li><span class="nick">dubstepandlovee:</span> ​(joke)</li>
<li><span class="nick">Trevoke:</span> ​​<b>shakes fist in F/OSS</b> Thanks for the answer</li>
<li><span class="nick">blaiseutube:</span> ​​recovering linguist here. English Spanish and French for work. Japanese Portuguese, Sanskrit and Swedish for fun.</li>
<li><span class="nick">blaiseutube:</span> ​​c-x h ? I love it</li>
<li><span class="nick">sachactube:</span> ​​Maybe C-x 8 RET</li>
<li><span class="nick">blaiseutube:</span> ​oh! thank you</li>
<li><span class="nick">Ray-On-Emacs:</span> Thank you!</li>
</ul>
</div>
</div>
<div><a href="https://sachachua.com/blog/2026/06/emacs-chat-with-ross-a-baker/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%2F06%2Femacs-chat-with-ross-a-baker%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="111444" type="application/octet-stream" url="https://sachachua.com/blog/2026/06/emacs-chat-with-ross-a-baker/emacs-chat-26-ross-a-baker.vtt"/></item><item>
		<title>2026-06-15 Emacs news</title>
		<link>https://sachachua.com/blog/2026/06/2026-06-15-emacs-news/</link>
		
		<pubDate>Mon, 15 Jun 2026 13:54:28 GMT</pubDate>
    <category>emacs</category>
<category>emacs-news</category>
		<guid isPermaLink="false">https://sachachua.com/blog/2026/06/2026-06-15-emacs-news/</guid>
		<description><![CDATA[<p>
Lots of discussion around Karthik's latest blog post <a href="https://karthinks.com/software/even-more-batteries-included-with-emacs/">Even More Batteries Included with Emacs</a> (<a href="https://www.reddit.com/r/emacs/comments/1u5pago/even_more_batteries_included_with_emacs_karthinks/">Reddit</a>, <a href="https://news.ycombinator.com/item?id=48535886">HN</a>, <a href="https://lobste.rs/s/wwbl1n/even_more_batteries_included_with_emacs">lobste.rs</a>). Check it out!
</p>

<ul class="org-ul">
<li>Emacs updates:
<ul class="org-ul">
<li><a href="https://copr.fedorainfracloud.org/coprs/bhavin192/emacs-pretest/">Emacs 31.0.90 pretest packages for Fedora</a> (<a href="https://www.reddit.com/r/emacs/comments/1u17dmp/emacs_31090_pretest_packages_for_fedora/">Reddit</a>)</li>
<li><a href="https://f-droid.org/en/packages/org.gnu.emacs/">Emacs 31.0.90 pretest packages for Android, via F-Droid</a> (<a href="https://www.reddit.com/r/emacs/comments/1u6ed1e/emacs_31090_pretest_packages_for_android_via/">Reddit</a>)</li>
</ul></li>
<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>M-x Research: TBA <a href="https://m-x-research.github.io/">https://m-x-research.github.io/</a> Wed Jun 17 0800 America/Vancouver - 1000 America/Chicago - 1100 America/Toronto - 1500 Etc/GMT - 1700 Europe/Berlin - 2030 Asia/Kolkata - 2300 Asia/Singapore</li>
<li>OrgDevMeetup <a href="https://bbb.emacsverse.org/rooms/orgdevmeetup">https://bbb.emacsverse.org/rooms/orgdevmeetup</a> Sat Jun 20 0900 America/Vancouver - 1100 America/Chicago - 1200 America/Toronto - 1600 Etc/GMT - 1800 Europe/Berlin - 2130 Asia/Kolkata &ndash; Sun Jun 21 0000 Asia/Singapore</li>
<li>EmacsSF (in person): coffee.el in SF <a href="https://www.meetup.com/emacs-sf/events/315192115/">https://www.meetup.com/emacs-sf/events/315192115/</a> Sat Jun 20 1100 America/Los_Angeles</li>
<li>Emacs Berlin: Emacs-Berlin Hybrid Meetup <a href="https://emacs-berlin.org/">https://emacs-berlin.org/</a> Wed Jun 24 1000 America/Vancouver - 1200 America/Chicago - 1300 America/Toronto - 1700 Etc/GMT - 1900 Europe/Berlin - 2230 Asia/Kolkata &ndash; Thu Jun 25 0100 Asia/Singapore</li>
<li>Emacs APAC: Emacs APAC meetup (virtual) <a href="https://emacs-apac.gitlab.io/announcements/">https://emacs-apac.gitlab.io/announcements/</a> Sat Jun 27 0130 America/Vancouver - 0330 America/Chicago - 0430 America/Toronto - 0830 Etc/GMT - 1030 Europe/Berlin - 1400 Asia/Kolkata - 1630 Asia/Singapore</li>
</ul></li>
<li>Beginner:
<ul class="org-ul">
<li><a href="https://www.youtube.com/watch?v=Lnj45uzDcLc">How to Install a Package on Emacs From Melpa</a> (04:09)</li>
</ul></li>
<li>Emacs configuration:
<ul class="org-ul">
<li><a href="https://rtzptz.xyz/posts/eat-replace-shell-pop.html">Replace shell-pop with built-in display-buffer-alist</a> (<a href="https://www.reddit.com/r/emacs/comments/1u1fmm5/replace_shellpop_with_builtin_displaybufferalist/">Reddit</a>)</li>
<li><a href="https://codeberg.org/salvari/emacs30_elpaca_public">salvari/emacs30_elpaca_public: My new configuration for Emacs using Elpaca as package manager - Codeberg.org</a> (<a href="https://mastodon.gal/@salvari/116720718764088405">@salvari@mastodon.gal</a>)</li>
</ul></li>
<li>Emacs Lisp:
<ul class="org-ul">
<li><a href="https://lars.ingebrigtsen.no/2026/06/11/web-scraping-is-getting-harder-all-the-time/">Lars Ingebrigtsen: Web scraping is getting harder all the time</a></li>
<li><a href="https://tv.dyne.org/w/d38i5Gmk4xpHEHdFq8mGfW">[22] Integrating Emacs Reader with Canvas - Dyne.org TV</a> (<a href="https://mathstodon.xyz/@divyaranjan/116737776379893396">@divyaranjan@mathstodon.xyz</a>)</li>
</ul></li>
<li>Appearance:
<ul class="org-ul">
<li><a href="https://github.com/kn66/halo.el">halo.el: an experimental minor mode for keeping point centered and dimming distant lines</a> (<a href="https://www.reddit.com/r/emacs/comments/1u5i881/haloel_an_experimental_minor_mode_for_keeping/">Reddit</a>)</li>
<li><a href="https://github.com/gonewest818/dimmer.el">dimmer.el &ndash; after a hiatus, new development underway</a> (<a href="https://www.reddit.com/r/emacs/comments/1u2af5n/dimmerel_after_a_hiatus_new_development_underway/">Reddit</a>) - dims inactive buffers; updates: reset when theme changes, handle child frames</li>
<li><a href="https://blog.davep.org/2026/06/12/simplifying-my-mode-line.html">Dave Pearson: Simplifying my mode line</a></li>
<li><a href="https://blog.davep.org/2026/06/13/it-got-darker.html">Dave Pearson: It got darker</a> - switched to a dark-mode</li>
<li><a href="https://github.com/kn66/vertico-buffer-frame">Inspired by nano-emacs: vertico-buffer-frame with nano-vertico</a> (<a href="https://www.reddit.com/r/emacs/comments/1u2zyp7/inspired_by_nanoemacs_verticobufferframe_with/">Reddit</a>)</li>
</ul></li>
<li>Navigation:
<ul class="org-ul">
<li><a href="https://github.com/dmgerman/bookmark-plusplus">modernizing bookmark+</a> (<a href="https://www.reddit.com/r/emacs/comments/1u4uzop/modernizing_bookmark/">Reddit</a>)- trying to get in touch with Drew Adams</li>
<li><a href="https://github.com/jamescherti/outline-indent.el">outline-indent, a modern Indentation-based Text Folding Mode for Emacs (Release 1.2.0)</a> (<a href="https://www.reddit.com/r/emacs/comments/1u18jlq/outlineindent_a_modern_indentationbased_text/">Reddit</a>)</li>
</ul></li>
<li>Dired:
<ul class="org-ul">
<li><a href="https://protesilaos.com/codelog/2026-06-13-emacs-flat-dired-for-regexp-since-days/">Protesilaos: Emacs: flat Dired listing for REGEXP, optionally up to DAYS since last  modification</a> (<a href="https://irreal.org/blog/?p=13875">Irreal</a>)</li>
</ul></li>
<li>Writing:
<ul class="org-ul">
<li><a href="https://batsov.com/articles/2026/06/11/emacs-loves-asciidoc/">Bozhidar Batsov: Emacs loves AsciiDoc</a> (<a href="https://irreal.org/blog/?p=13871">Irreal</a>)</li>
<li><a href="https://blog.davep.org/2026/06/14/blogmore-el-v5-3-0.html">Dave Pearson: blogmore.el v5.3.0</a> - adds blogmore-link-series</li>
<li><a href="https://gitlab.com/smaller-infinity/bibtex-format">New, Fast, BibTex Formatter</a> (<a href="https://www.reddit.com/r/emacs/comments/1u2djgg/new_fast_bibtex_formatter/">Reddit</a>) - Uses rust</li>
</ul></li>
<li>Denote:
<ul class="org-ul">
<li><a href="https://taonaw.com/2026/06/14/meta-journal-notes-in-denotejournal.html">TAONAW - Emacs and Org Mode: Meta Journal notes in Denote-Journal with Journelly</a></li>
</ul></li>
<li>Org Mode:
<ul class="org-ul">
<li><a href="https://sachachua.com/blog/2026/06/from-dc-toedt-copy-org-mode-as-markdown/">Sacha Chua: From DC Toedt: Copy Org Mode as Markdown</a></li>
<li><a href="https://ray-on-emacs.blogspot.com/2026/06/creating-reference-to-webpage-in-org.html">Raymond Zeitler: Creating a Reference to a Webpage in Org</a></li>
<li><a href="https://www.reddit.com/r/orgmode/comments/1u5gpmb/a_day_with_orgsupertag_one_persons_complete/">A Day with Org-SuperTag — One Person's Complete Workflow</a></li>
<li><a href="https://www.reddit.com/r/emacs/comments/1u31nrb/org_export_dispatcher_to_eisvogel_latex_template/">Org export dispatcher to Eisvogel LaTeX template</a></li>
<li><a href="https://tilde.town/~cryptk/blog/yaob.html">YAOB – Yet Another Org Blog · (interzone)</a> (<a href="https://mastodon.social/@cryptk/116722167175985830">@cryptk</a>)</li>
<li><a href="https://www.youtube.com/watch?v=t_mi-H9iFXA">Emacs Org-Roam: Gestione della Conoscenza a Grafi e Metodo Zettelkasten</a> (06:39)</li>
<li>Org development:
<ul class="org-ul">
<li><a href="https://git.savannah.gnu.org/cgit/emacs/org-mode.git/commit/etc/ORG-NEWS?id=0a7387385710c708d54af89ebcd3835eb8a2eb7a">ob-core: Obsolete `org-babel-remote-temporary-directory'</a></li>
<li><a href="https://git.savannah.gnu.org/cgit/emacs/org-mode.git/commit/etc/ORG-NEWS?id=4dc39c7eb3d481984fabfe2bfe578da51fb9c779">org-agenda-timerange-leaders: Allow functions as element values</a></li>
</ul></li>
</ul></li>
<li>Completion:
<ul class="org-ul">
<li><a href="https://utcc.utoronto.ca/~cks/space/blog/programming/EmacsUnderstandingEmbark">Chris's Wiki - blog/programming/EmacsUnderstandingEmbark</a> (<a href="https://lobste.rs/s/secptg/understanding_embark_gnu_emacs_bit_some">lobste.rs</a>, <a href="https://lemmy.ml/post/48522563?scrollToComments=true">lemmy.ml</a>)</li>
</ul></li>
<li>Coding:
<ul class="org-ul">
<li><a href="https://emacs.dyerdwelling.family/emacs/20260610061920-emacs&#45;&#45;the-hidden-git-stash-keys-in-emacs-vc-directory-mode/">James Dyer: The Hidden Git Stash Keys in Emacs VC Directory Mode</a></li>
<li><a href="https://www.swift.org/documentation/articles/zero-to-swift-emacs.html">Configuring Emacs for Swift Development | Swift.org</a> (<a href="https://sfba.social/@kickingvegas/116734370211177731">@kickingvegas@sfba.social</a>)</li>
<li><a href="https://codeberg.org/zshaftel/tree-sitter-cl-syntax">Common Lisp tree-sitter grammar with a major-mode and Sly powered semantic highlighting</a> (<a href="https://www.reddit.com/r/emacs/comments/1u0pyfj/common_lisp_treesitter_grammar_with_a_majormode/">Reddit</a>)</li>
<li><a href="https://www.youtube.com/watch?v=i6i1omycw0Y">Corrigindo divergências entre arquivos de configuração do emacs</a> (01:37:06)</li>
</ul></li>
<li>Mail, news, and chat:
<ul class="org-ul">
<li><a href="https://github.com/laurynas-biveinis/mu4e-autotask/">mu4e-based email automation package</a> (<a href="https://www.reddit.com/r/emacs/comments/1u0iqtm/mu4ebased_email_automation_package/">Reddit</a>)</li>
<li><a href="https://git.securityops.co/cristiancmoises/whatsappel">Whatsappel - Run WhatsApp inside Emacs</a> (<a href="https://www.reddit.com/r/emacs/comments/1u58hb8/whatsappel_run_whatsapp_inside_emacs/">Reddit</a>)</li>
</ul></li>
<li>Doom Emacs:
<ul class="org-ul">
<li><a href="https://github.com/orgs/doomemacs/discussions/114">doom emacs 项目拆分为core和modules, doom emacs 将进入快速发展期</a> (<a href="https://www.reddit.com/r/DoomEmacs/comments/1u13u8o/doom_emacs_%E9%A1%B9%E7%9B%AE%E6%8B%86%E5%88%86%E4%B8%BAcore%E5%92%8Cmodules_doom_emacs_%E5%B0%86%E8%BF%9B%E5%85%A5%E5%BF%AB%E9%80%9F%E5%8F%91%E5%B1%95%E6%9C%9F/">Reddit</a>)</li>
</ul></li>
<li>Fun:
<ul class="org-ul">
<li><a href="https://www.youtube.com/watch?v=7tURkbpdUmo">The World Cup&hellip; in emacs! ⚽️💻</a> (04:41, <a href="https://www.reddit.com/r/emacs/comments/1u2q0o9/the_world_cup_in_emacs/">Reddit</a>)</li>
<li><a href="https://www.chiply.dev/post-emacs-svg-benchmark">Emacs SVG Benchmark Reveals Gaming-Caliber Frame Rates</a> (<a href="https://www.reddit.com/r/emacs/comments/1u2ycqp/emacs_svg_benchmark_reveals_gamingcaliber_frame/">Reddit</a>)</li>
</ul></li>
<li>AI:
<ul class="org-ul">
<li><a href="https://xenodium.com/agent-shell-0-55-updates">Alvaro Ramirez: agent-shell 0.55 updates</a> (<a href="https://lobste.rs/s/qulbgz/agent_shell_0_55_updates">lobste.rs</a>, <a href="https://www.reddit.com/r/emacs/comments/1u2x3ur/agentshell_055_updates/">Reddit</a>)</li>
<li><a href="https://github.com/dnouri/pi-coding-agent/releases/tag/v2.5.0">New Pi Emacs coding harness release has no trust issues!</a> (<a href="https://www.reddit.com/r/emacs/comments/1u4s8ks/new_pi_emacs_coding_harness_release_has_no_trust/">Reddit</a>)</li>
<li><a href="https://codeberg.org/martenlienen/emcp">EMCP - Emacs an an MCP server</a> (<a href="https://www.reddit.com/r/emacs/comments/1u5ef0v/emcp_emacs_an_an_mcp_server/">Reddit</a>)</li>
<li><a href="https://www.youtube.com/watch?v=8JgIE48vh6c">Vibe Coding with Emacs' Built-In AI - System Crafters Live!</a> (01:47:29)</li>
</ul></li>
<li>Community:
<ul class="org-ul">
<li><a href="https://v.redd.it/uxwyavj7646h1">Joshua Blais on Doom Emacs, Vanilla Emacs, Guix, and 34-Key Keyboards</a> (<a href="https://www.reddit.com/r/emacs/comments/1u0iy6b/joshua_blais_on_doom_emacs_vanilla_emacs_guix_and/">Reddit</a>)</li>
<li><a href="https://ray-on-emacs.blogspot.com/2026/05/emacs-its-worth-revealing-oneself-for.html">Raymond Zeitler: Emacs &ndash; It's Worth Revealing Oneself For</a></li>
<li><a href="https://www.rahuljuliato.com/posts/blog-on-gemini">My Blog Now Has a Gemini Mirror</a> (<a href="https://www.reddit.com/r/emacs/comments/1u1hxyf/my_blog_now_has_a_gemini_mirror/">Reddit</a>) - Rahul Juliato</li>
</ul></li>
<li><a href="https://rossabaker.com/blog/underappreciated-emacs-built-ins/">Emacs Carnival: Underappreciated Built-ins</a>:
<ul class="org-ul">
<li><a href="https://karthinks.com/software/even-more-batteries-included-with-emacs/">Even More Batteries Included With Emacs (Karthinks)</a> (<a href="https://www.reddit.com/r/emacs/comments/1u5pago/even_more_batteries_included_with_emacs_karthinks/">Reddit</a>, <a href="https://news.ycombinator.com/item?id=48535886">HN</a>, <a href="https://lobste.rs/s/wwbl1n/even_more_batteries_included_with_emacs">lobste.rs</a>)</li>
<li><a href="https://www.youtube.com/watch?v=yuJYEua0ZwA">Yay Emacs 33: Sacha and Prot Talk Emacs: Built-ins</a> (01:01:36)</li>
<li><a href="https://www.homepages.ucl.ac.uk/~ucecesf/blog/20260602.html">Emacs carnival: rec mode, an all-text database system</a> (<a href="https://lobste.rs/s/p78ttt/emacs_rec_mode_all_text_database_system">lobste.rs</a>)</li>
</ul></li>
<li>Other:
<ul class="org-ul">
<li><a href="https://github.com/tanrax/emacs-gpu">tanrax/emacs-gpu: GNU Emacs with a GPU-accelerated display backend · GitHub</a> (<a href="https://activity.andros.dev/@andros/statuses/01KTZV88P5V4VCQ2M9293R9BTZ">@andros@activity.andros.dev</a>)</li>
<li><a href="https://www.youtube.com/watch?v=imAgBN3brns">Xah Talk Show Ep793. emacs, install Xah Fly Keys in WSL linux emacs</a> (02:18:11)</li>
<li><a href="https://www.youtube.com/watch?v=teAgI3aoIpU">Xah Talk Show Ep792. install emacs on wsl Windows Subsystem for Linux</a> (01:47:31)</li>
<li><a href="https://sachachua.com/blog/2026/06/june-11-sacha-and-prot-talk-emacs-built-ins/">Sacha Chua: Yay Emacs 33: Sacha and Prot Talk Emacs: Built-ins</a> (<a href="https://protesilaos.com/codelog/2026-06-09-emacs-live-sacha-chua-built-ins/">Prot</a>)</li>
<li><a href="https://chrismaiorana.com/tmux-wm-emacs-no-gui/">Chris Maiorana: When tmux is your window manager</a> (<a href="https://irreal.org/blog/?p=13868">Irreal</a>)</li>
</ul></li>
<li>Emacs development:
<ul class="org-ul">
<li>emacs-devel:
<ul class="org-ul">
<li><a href="https://yhetil.org/emacs-devel/ed53dc2f-d0e2-427d-9415-45901f95ffcf@gutov.dev/">Re: master 1d91d9b717d: project-vc-dir: Use truenames - Dmitry Gutov</a> - discussion of when to use symlinks and when to use truenames</li>
<li><a href="https://yhetil.org/emacs-devel/87zf0y8w0y.fsf@linabee.uk/">Re: SDL terminal type - Lina</a> - anyone interested in trying to port Emacs UI to SDL rendering?</li>
</ul></li>
<li><a href="https://git.savannah.gnu.org/cgit/emacs.git/commit/etc/NEWS?id=15e5f404f05f7a1ca5bdd8eb6a7579e0546472da">Optional display of overlay-arrow in margin (bug#81109)</a></li>
<li><a href="https://git.savannah.gnu.org/cgit/emacs.git/commit/etc/NEWS?id=87133286d6b7ed20c2d6aa41c9bf00c10bc80d30">Revert "project-vc-dir: Use truenames"</a></li>
<li><a href="https://git.savannah.gnu.org/cgit/emacs.git/commit/etc/NEWS?id=78a10d17c69970687f8330f6c896170bcf936ef3">Convert outline-search-function to defcustom</a></li>
<li><a href="https://git.savannah.gnu.org/cgit/emacs.git/commit/etc/NEWS?id=194c28aaf22979d46f22cc424ba8f1bc78db27b3">Add outline-search-from-regexp generic helper</a></li>
<li><a href="https://git.savannah.gnu.org/cgit/emacs.git/commit/etc/NEWS?id=c6c4888ced296b6bda7752066df44d95f591cb06">'work-buffer&ndash;release' kill locals silently and reset the buffer (bug#81111)</a></li>
<li><a href="https://git.savannah.gnu.org/cgit/emacs.git/commit/etc/NEWS?id=725120ca3de9f30c8c6bbaeb237f9c803c12b442">Set user options in file/directory locals like 'setopt-local' (bug#81120)</a></li>
<li><a href="https://git.savannah.gnu.org/cgit/emacs.git/commit/etc/NEWS?id=e7e9c55ba745e5499dc4d2370fda481b7270d74a">Add outline-show-entry-and-parents to reveal entry hierarchy</a></li>
<li><a href="https://git.savannah.gnu.org/cgit/emacs.git/commit/etc/NEWS?id=f343f20b9449c14deceb9fed1a062687c1d52d38">Mark vc-dir-show-outgoing-count obsolete</a></li>
<li><a href="https://git.savannah.gnu.org/cgit/emacs.git/commit/etc/NEWS?id=1d91d9b717df1781c07d28f46af4ac2af19c16b4">project-vc-dir: Use truenames</a></li>
</ul></li>
<li>New packages:
<ul class="org-ul">
<li><a target="_blank" href="https://melpa.org/#/pure-light-theme">pure-light-theme</a>: A light colored theme for e-ink color monitors (MELPA)</li>
<li><a target="_blank" href="https://melpa.org/#/shexc-ts-mode">shexc-ts-mode</a>: Tree-sitter major mode for ShExC (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-06">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/06/2026-06-15-emacs-news/index.org">View Org source for this post</a></div>
<p>You can <a href="https://social.sachachua.com/@sacha/statuses/01KV5XYWFASX9YDD8MN7QEGEC0" 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%2F06%2F2026-06-15-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="241079" type="application/octet-stream" url="https://emacslife.com/calendar/emacs-calendar.ics"/></item><item>
		<title>La semaine du 1 au 7 juin</title>
		<link>https://sachachua.com/blog/2026/06/la-semaine-du-1-au-7-juin/</link>
		
		<pubDate>Wed, 10 Jun 2026 15:05:24 GMT</pubDate>
    <category>french</category>
		<guid isPermaLink="false">https://sachachua.com/blog/2026/06/la-semaine-du-1-au-7-juin/</guid>
		<description><![CDATA[<div id="outline-container-entr-es-de-journal-la-semaine-du-1-au-6-juin-lundi-le-premier-juin" class="outline-3">
<h3 id="entr-es-de-journal-la-semaine-du-1-au-6-juin-lundi-le-premier-juin"><a href="https://sachachua.com/blog/feed/index.xml#entr-es-de-journal-la-semaine-du-1-au-6-juin-lundi-le-premier-juin">lundi 1er juin</a></h3>
<div class="outline-text-3" id="text-entr-es-de-journal-la-semaine-du-1-au-6-juin-lundi-le-premier-juin">
<p>
Ma fille a séché les cours et elle n'a pas non plus voulu aller à son cours de gymnastique parce qu'elle a eu une mauvaise nuit et elle était toujours grincheuse.
</p>

<p>
Au lieu de la harceler, j'ai travaillé sur des transcriptions et sur mon bulletin d'information sur Emacs.
</p>

<p>
Après avoir lu dans sa chambre pendant longtemps, elle a finalement réapparu de bonne humeur. Elle et moi avons préparé des sushis pour le dîner. Ensuite, nous avons joué au Scrabble dehors.
</p>

<p>
Elle a porté sa prothèse oculaire toute seule. Elle a dit qu'elle l'a fait pour elle-même. Je pense que l'autonomie est très importante pour ma fille.
</p>
</div>
</div>
<div id="outline-container-org7718372" class="outline-3">
<h3 id="org7718372"><a href="https://sachachua.com/blog/feed/index.xml#org7718372">mardi 2</a></h3>
<div class="outline-text-3" id="text-org7718372">
<p>
J'ai travaillé sur des fonctions pour comparer les données de mots avec le sous-titrage révisé pour effacer des mots dans l'enregistrement si je veux le faire.
</p>

<p>
Ma fille, son amie, le père de son amie, et moi sommes allés à l'aire de jeu à vélo, où nous avons joué avec d'autres amies. Ma fille était un peu surstimulée, donc elle a joué au Scrabble avec moi et la nourrice de ses amies pour se calmer avant qu'elle joue avec ses amies. Nous avons partagé les glaces à l'eau que nous avons apportées. Après qu'une de ses amies est partie avec son père, nous sommes allées à l'autre aire de jeu pour jouer encore.
</p>
</div>
</div>
<div id="outline-container-org3ada09b" class="outline-3">
<h3 id="org3ada09b"><a href="https://sachachua.com/blog/feed/index.xml#org3ada09b">mercredi 3</a></h3>
<div class="outline-text-3" id="text-org3ada09b">
<p>
Ma fille est allée à l'école ce matin même s'il y avait un remplaçant, mais elle n'a pas voulu y aller l'après-midi. Nous nous sommes assises dehors et nous avons travaillé sur ses devoirs. Nous avons vu des pics.
</p>

<p>
J'ai emmené ma fille au parc pour jouer avec ses amis. Elle a aimé faire du vélo autour du parc avec ses amis et sans adultes. Ils ont aussi fait du vélo autour de la pataugeoire qui était sèche parce qu'elle n'était pas encore ouverte. Ils tournaient en rond.
</p>

<p>
J'ai fait l'erreur de jouer à mon jeu de Tileman Reworked près de ma fille. Elle a voulu m'aider, bien. Elle a recueilli les citrouilles et les canneberges, super. Elle a commencé à couper l'herbe près des récoltes, euh&hellip; J'ai essayé d'expliquer qu'il ne fallait pas la couper, mais elle est devenue grincheuse parce que je la corrigeais. Elle m'a dit qu'elle voulait seulement m'aider et elle est partie furieuse. Ce n'est pas grave. Je pense que cette ferme est trop compliquée pour elle pour le moment. Notre ferme habituelle est meilleure. J'apprécie qu'elle ait voulu m'aider, et c'était juste un jeu. C'est aussi bien si elle apprend comment coopérer.
</p>

<p>
J'ai commencé à réécrire la transcription de la conversation entre ma sœur et notre cousine.
</p>
</div>
</div>
<div id="outline-container-orgc0466bc" class="outline-3">
<h3 id="orgc0466bc"><a href="https://sachachua.com/blog/feed/index.xml#orgc0466bc">jeudi 4</a></h3>
<div class="outline-text-3" id="text-orgc0466bc">
<p>
J'ai discuté d'Emacs avec Ben Zanin. Il a partagé sa configuration sur elfeed, la musique, et d'autres sujets.
</p>

<p>
J'ai travaillé comme consultante. J'ai pris un cours de formation.
</p>

<p>
Ma fille et moi avons fait du vélo au parc. Nous avons joué à la pataugeoire et au bac à sable. Nous avons improvisé des histoires de Donjons et Dragons avec les dés sur mon smartphone.
</p>

<p>
J'ai discuté avec mes sœurs et quelques personnes des assurances-vie de ma mère. Notre accès au compte bancaire sera limité si ma sœur décède, donc il vaut mieux que nous fassions la paperasse maintenant.
</p>
</div>
</div>
<div id="outline-container-org273276c" class="outline-3">
<h3 id="org273276c"><a href="https://sachachua.com/blog/feed/index.xml#org273276c">vendredi 5</a></h3>
<div class="outline-text-3" id="text-org273276c">
<p>
J'ai eu ma première session de conversation avec mon tuteur aujourd'hui ! À mon grand étonnement, j'ai pu suivre ce qu'il disait et j'ai pu expliquer mes pensées ( avec une mauvaise grammaire, bien sûr ). Je sais qu'il fallait que je m'entraîne à penser en français au lieu de traduire de l'anglais, donc parler plus pour apprendre plus. C'est un exercice intense. J'en ai transpiré. Nous avons réussi à parler de la programmation, des études à l'université, du travail, de la vie, et d'autres sujets.
</p>

<p>
J'ai augmenté le stockage pour les vidéos de ma sœur.
</p>

<p>
J'ai signé la paperasse pour les assurances-vie.
</p>

<p>
J'ai appelé ma mère et je l'ai informée de la paperasse.
</p>
</div>
</div>
<div id="outline-container-org28b43f1" class="outline-3">
<h3 id="org28b43f1"><a href="https://sachachua.com/blog/feed/index.xml#org28b43f1">samedi 6</a></h3>
<div class="outline-text-3" id="text-org28b43f1">
<p>
J'ai téléchargé encore d'autres vidéos de ma sœur.
</p>

<p>
Nous avons joué à Donjons et Dragons avec ses tantes et ses cousines. Ma fille était la meneuse de jeu pour une partie de la session. Nous avons cherché une petite chèvre perdue, et nous avons combattu quatre bandits déguisés en gardes.
</p>

<p>
Nous avons fait des mochis.
</p>

<p>
J'ai payé la pénalité pour la soumission en retard du bilan de vérification du revenu étranger que je n'ai pas pu finir l'année précédente parce que le banquier était peu communicatif. Tant pis. Je pense que si ça arrive encore, je dois le soumettre avec ma meilleure estimation.
</p>

<p>
Dans mon jeu Tileman Reworked de Stardew Valley, j'ai finalement accédé à la boutique de Willy, le pêcheur. C'était le dernier jour d'automne de la quatrième année.
</p>

<p>
J'ai travaillé comme consultante. J'ai analysé des mises à jour.
</p>
</div>
</div>
<div id="outline-container-org3d9d1af" class="outline-3">
<h3 id="org3d9d1af"><a href="https://sachachua.com/blog/feed/index.xml#org3d9d1af">dimanche 7</a></h3>
<div class="outline-text-3" id="text-org3d9d1af">
<p>
J'ai emmené ma fille chez le perceur pour examiner ses oreilles. Le perceur nous a dit qu'elle avait l'autorisation de changer pour de nouvelles boucles d'oreilles. Sur le chemin du retour, nous avons fait une promenade dans le parc.
</p>

<p>
J'ai emmené ma fille au Dufferin Mall pour sélectionner des boucles d'oreilles. Après quelques comparaisons, ma fille a opté pour des clous d'oreilles en acier plaqué or avec des pierres moyennes chez New Steel. C'était bon marché.
</p>

<p>
J'ai fini de coudre la robe de ma fille. Elle voulait me coudre une robe, donc j'ai préparé des pièces pour elle. Il vaut mieux que j'utilise beaucoup d'épingles et que je trace une ligne à la craie.
</p>
</div>
</div>
<div><a href="https://sachachua.com/blog/2026/06/la-semaine-du-1-au-7-juin/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%2F06%2Fla-semaine-du-1-au-7-juin%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="25511" type="application/octet-stream" url="https://sachachua.com/blog/2026/06/la-semaine-du-1-au-7-juin/index.org"/></item>
	</channel>
</rss>